mavzermete 1
mavzermete
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

Cevaplanmadı NP SİSTEMİNDE SORUN!

  • Konuyu başlatan Konuyu başlatan Alemji21
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 2
  • Görüntüleme Görüntüleme 280

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

arkadaşlar np sistemini ekledim guestini sorunsuz okuttum fakat ne görevler kısmına geldi nede boss kesince alta bir yazı çıktı nedeni ne olabilir quest_functions larınıda ekledim ama olmadı

cmd.PNG


GUEST

Kod:
quest npsistem begin
    state start begin
        when login begin
            local np = pc.theprnce_np_bak()
            cmdchat("np "..np)
            send_letter("NP Sistemi ")
        end

        when button or info begin
            say_title("Merhaba "..pc.get_name())
            local np = pc.theprnce_np_bak()
            say_reward("Mevcut NP Puanın : "..np)
            say("Ne yapmak istiyorsun ?")
            say("")
            local menu
            if pc.is_gm() then
                menu = select("Bilgi Al ", "Ödüller ", "Ödül Al ", "Ödül Geçmişi ", "Kapat ", "Yönetim ")
            else
                menu = select("Bilgi Al ", "Ödüller ", "Ödül Al ", "Ödül Geçmişi ", "Kapat ")
            end
            if menu == 6 then
                say_title("Yönetim Paneline Hoş Geldin "..pc.get_name())
                say("Ne yapmak istiyorsun ?")
                say("")
                local islem = select("İtem Ekle ", "İtem Sil ", "Vazgeç ")
                if islem == 4 then
                    -- send_letter("NP Sistemi ")
                elseif islem == 2 then
                    say_title("NP Sistemi : ")
                    say("")
                    say("Silmek istediğin ödülü seç.")
                    local vnum, count, price, isim, id = npsistem.odul_al_sil()
                    table.insert(isim,"Vazgeç ")
                    local sirala = select_table(isim)
                    if(table.getn(isim) == sirala) then
                        -- send_letter("NP Sistemi ")
                        return
                    end
                    say_reward(item_name(vnum[sirala]))
                    say_reward("Adet : "..count[sirala])
                    say_reward("Gerekli NP : "..price[sirala])
                    say_item_vnum(vnum[sirala])
                    say("")
                    say("")
                    say("")
                    local al_id = tonumber(id[sirala])
                    local al = select("Sil ","Vazgeç ")
                    if al == 2 then
                        -- send_letter("NP Sistemi ")
                    else
                        say("Ödül silindi.")
                        npsistem.odul_sil(al_id)
                        -- wait()
                        -- send_letter("NP Sistemi ")
                    end
                elseif islem == 1 then
                    say_title("NP Sistemi : ")
                    say("")
                    say("Item vnum girin lütfen : ")
                    say("")
                    local v_giris = tonumber(input(''))
                    local kontrol = npsistem.item_bilgi(v_giris)
                    if kontrol == "bos" then
                        say("Geçersiz item kodu.")
                        -- wait()
                        -- send_letter("NP Sistemi ")
                        return
                    else
                        say("Adet Girin : ")
                        say("")
                        local a_giris = tonumber(input(''))
                        if a_giris < 0 or nil then
                            say("Geçersiz değer.")
                            -- wait()
                            -- send_letter("NP Sistemi ")
                            return
                        else
                            say("Değer (NP) Girin : ")
                            say("")
                            local d_giris = tonumber(input(''))
                            if d_giris < 0 or nil then
                                say("Geçersiz değer.")
                                -- wait()
                                -- send_letter("NP Sistemi ")
                                return
                            else
                                say_item_vnum(v_giris)
                                say_reward("Adet : "..a_giris)
                                say_reward("Değer (NP) : "..d_giris)
                                say("")
                                say("")
                                say("")
                                say("")
                                local a = select(locale.yes, locale.no)
                                if a == 1 then
                                    say("Item eklendi.")
                                    npsistem.item_ekle(v_giris,a_giris,d_giris)
                                    -- wait()
                                    -- send_letter("NP Sistemi ")
                                else
                                    -- send_letter("NP Sistemi ")
                                end
                            end
                        end
                    end
                end
            elseif menu == 5 then
                -- send_letter("NP Sistemi ")
            elseif menu == 4 then
                say_title("NP Sistemi : ")
                say("")
                say("Ödül geçmişin aşağıda sıralandı.")
                local vnum, count, price, isim, zaman = npsistem.loglar(pc.get_name())
                table.insert(isim,"Vazgeç ")
                local sirala = select_table(isim)
                if(table.getn(isim) == sirala) then
                    -- send_letter("NP Sistemi ")
                    return;
                end
                say("Satın Aldığın İteme Dair Ayrıntılar : ")
                say_reward(item_name(vnum[sirala]))
                say_reward("Adet : "..count[sirala])
                say_reward("NP : "..price[sirala])
                say_reward("Tarih : "..zaman[sirala])
                say_item_vnum(vnum[sirala])
                say("")
                -- wait()
                -- send_letter("NP Sistemi ")               
            elseif menu == 1 then
                say_title("NP Sistemi : ")
                say("")
                say("Belli başlı bossları keserek ve ")
                say("oyuncuları keserek NP puanı kazanabilirsin.")
                say("Her boss farklı NP puanı verir.")
                say("Bu puanları kullanarak ödüller ")
                say("kazanabilirsin. Aynı oyuncuyu tekrar ")
                say("tekrar öldürmek avantaj kazandırmıyor.")
                say("Aynı oyuncuyu 3 kere kestikten sonra o ")
                say("oyuncudan 1 saat boyunca NP kazanamaz ")
                say("hale geliyorsun.")
                say("")
                -- wait()
                -- send_letter("NP Sistemi ")
            elseif menu == 2 then
                say_title("NP Sistemi : ")
                say("Ödül listesi aşağıda sıralandı.")
                local vnum, count, price, isim = npsistem.oduller()
                local toplam = table.getn(isim)
                if toplam > 8 then
                    say_size(350,300)
                end
                for num1, str1 in ipairs(isim) do
                    if num1 <= 10 then
                        say_reward(isim[num1])
                    end
                end
                wait()
                for num1, str1 in ipairs(isim) do
                    if num1 > 10 then
                        say_reward(isim[num1])
                    end
                end
                -- wait()
                -- send_letter("NP Sistemi ")
            elseif menu == 3 then
                say_title("NP Sistemi : ")
                say("")
                say("Almak istediğin ödülü seç.")
                local vnum, count, price, isim = npsistem.oduller()
                local toplam = table.getn(isim)
                if toplam > 8 then
                    say_size(350,350)
                end
                table.insert(isim,"Vazgeç ")
                local sirala = select_table(isim)
                if(table.getn(isim) == sirala) then
                    -- send_letter("NP Sistemi ")
                    return;
                end
                say_reward(item_name(vnum[sirala]))
                say_reward("Adet : "..count[sirala])
                say_reward("Gerekli NP : "..price[sirala])
                say_item_vnum(vnum[sirala])
                say("")
                say("")
                say("")
                local al_vnum, al_count, al_price, al_isim = tonumber(vnum[sirala]), tonumber(count[sirala]), tonumber(price[sirala]), isim[sirala]
                local al = select("Ödülü Al ","Vazgeç ")
                if al == 2 then
                    -- send_letter("NP Sistemi ")
                else
                    local np = pc.theprnce_np_bak()
                    if np < al_price then
                        say("Yeterli NP'ye sahip değilsin.")
                        say("")
                        say_reward("Gereken NP Puanı : "..al_price)
                        say_reward("Mevcut NP Puanı : "..np)
                        -- wait()
                        -- send_letter("NP Sistemi ")
                        return
                    end
                    pc.theprnce_np_ver(np-al_price,pc.get_player_id())
                    cmdchat("np "..tonumber(np-al_price))
                    pc.give_item2(al_vnum, al_count)
                    say(al_price.." NP karşılığında ")
                    say(al_count.." adet "..item_name(al_vnum).." kazandın.")
                    say("")
                    say("Daha önce satın aldığın ödülleri ")
                    say("Ödül Geçmişi sekmesinden görebilirsin.")
                    npsistem.np_log_gir(pc.get_name(), al_vnum, al_count, al_price)
                    -- wait()
                    -- send_letter("NP Sistemi ")
                end
            end
        end
        
        
        when kill with npc.is_pc() == false begin
            local boss = npc.get_race()
            local bos = npsistem.bosslar(boss)
            local id = pc.get_player_id()
            local np = pc.theprnce_np_bak()
            if null == bos then
                return
            else
                local np_bos = bos[1]
                pc.theprnce_np_ver(np+bos[1],id)
                cmdchat("np "..np+bos[1])
                chat(mob_name(boss).." kestiğin için "..bos[1].." NP kazandın. Toplam NP Puanın : "..pc.theprnce_np_bak())
            end
        end
        when kill with npc.is_pc() and pc.get_map_index() != 28 and pc.get_map_index() != 200 begin
            local krallik_modu = 0 -- 0 Kapalı 1 Aktif (Aktif olduğunda bayrak farketmeksizin np kazanılır.)
            local ip_kontrol = 0 -- 0 Kapalı 1 Aktif (Aktif olduğunda ip taraması yapar.)
            ----Ben-----------------
            local m_lv = pc.get_level()
            local m_emp = pc.get_empire()
            local m_np = pc.theprnce_np_bak()
            local m_id = pc.get_player_id()
            local m_name = pc.get_name()
            local m_ip = pc.get_ip()
            --------------------------
            local vid = npc.get_vid()
            local old_pc = pc.select(vid)
            if old_pc != 0 then
                ------Rakip--------------
                local r_lv = pc.get_level()
                local r_name = pc.get_name()
                local r_emp = pc.get_empire()
                local r_np = pc.theprnce_np_bak()
                local r_id = pc.get_player_id()
                local r_ip = pc.get_ip()
                ------------------------
                if r_emp != m_emp and krallik_modu == 0 then
                    if m_ip == r_ip and ip_kontrol == 1 then
                        syschat("Aynı IP'den giriş yapmış bir oyuncuya öldün. NP kaybetmedin.")
                        pc.select(old_pc)
                        syschat("Aynı IP'den giriş yapmış bir oyuncu kestin. NP kazanamadın.")
                        return
                    end
                    if r_lv < 90 or m_lv < 90 then
                        pc.select(old_pc)
                        syschat("90 seviye ve üstü olduğunda NP kazanabilirsin.")
                        return
                    end
                    if r_lv - m_lv < 10 or m_lv - r_lv < 10 then
                        local sure, sayi = npsistem.kisi_bilgi(m_name, r_name)
                        if sure == "bos" then
                            npsistem.np_bilgi_gir(m_name, r_name)
                        end
                        local sure, sayi = npsistem.kisi_bilgi(m_name, r_name)
                        if get_time() > tonumber(sure) then
                            npsistem.np_log_sifirla(m_name, r_name)
                            if sayi >= 2 then
                                npsistem.np_blok(m_name, r_name)
                                chat("Aynı oyuncuya çok sık öldüğün için 60 dakika boyuncu bu oyuncudan NP kaybetmeyeceksin.")
                                pc.select(old_pc)
                                chat("Aynı oyuncuyu çok sık öldürdüğün için 60 dakika boyuncu bu oyuncudan NP kazanamayacaksın.")
                                return
                            else
                                npsistem.np_spam(m_name, r_name)
                                if r_np-1 <= 0 then
                                    chat("Sıfır puana düştüğün için artık NP kaybetmeyeceksin.")
                                    pc.theprnce_np_ver(0,r_id)
                                    cmdchat("np 0")
                                else
                                    chat(m_name.." oyuncusuna ölerek 1 NP puanı kaybettin. Mevcut puan : "..r_np-1)
                                    pc.theprnce_np_ver(r_np-1,r_id)
                                    cmdchat("np "..r_np-1)
                                end
                                pc.select(old_pc)
                                chat(r_lv.." seviye "..r_name.." oyuncusunu öldürerek 1 NP kazandın. Mevcut puanın : "..(m_np+1))
                                pc.theprnce_np_ver(m_np+1,m_id)
                                cmdchat("np "..m_np+1)
                            end
                        else
                            npsistem.np_blok(m_name, r_name)
                            chat("Aynı oyuncuyu çok sık öldüğün için artık bu oyuncuda NP kaybetmeyeceksin.")
                            chat("Kalan süre "..npsistem.kalan_sure(sure - get_time()).." ")
                            pc.select(old_pc)
                            chat("Aynı oyuncuyu çok sık öldürdüğün için 60 dakika boyuncu bu oyuncudan NP kazanamayacaksın.")
                            chat("Kalan süre "..npsistem.kalan_sure(sure - get_time()).." ")
                            return
                        end
                    end
                else
                    pc.select(old_pc)
                    chat("Kendi krallığından birini öldürerek NP kazanamazsın.")
                    return
                end
            end
        end
        
        function oduller()
            local query=[[SELECT * FROM player.np_odul ORDER BY id DESC;]]
            local res1, res2 = mysql_direct_query2(query)
            if(res1 == 0) then
                return -1
            end
            local vnum, count, price, isim  = {},{},{},{}
            table.foreachi(res2,
                function(n,p)
                    vnum[n],count[n],price[n],isim[n] = res2[n].vnum, res2[n].count, res2[n].price, item_name(res2[n].vnum).."x"..res2[n].count.."    NP:"..res2[n].price
            end)
            return vnum, count, price, isim
        end
        
        function loglar(ben)
            local query=[[SELECT * FROM player.np_odul_log WHERE name = '"..ben.."' ORDER BY timee DESC;]]
            local res1, res2 = mysql_direct_query2(query)
            if(res1 == 0) then
                return -1
            end
            local vnum, count, price, isim, zaman  = {},{},{},{},{}
            table.foreachi(res2,
                function(n,p)
                    vnum[n],count[n],price[n],isim[n],zaman[n] = res2[n].vnum, res2[n].count, res2[n].price, item_name(res2[n].vnum).."    NP:"..res2[n].price, res2[n].timee
            end)
            return vnum, count, price, isim, zaman
        end
        
        function odul_al_sil()
            local query=[[SELECT * FROM player.np_odul ORDER BY id desc;]]
            local res1, res2 = mysql_direct_query2(query)
            if(res1 == 0) then
                return -1
            end
            local vnum, count, price, isim, id  = {},{},{},{},{}
            table.foreachi(res2,
                function(n,p)
                    vnum[n],count[n],price[n],isim[n],id[n] = res2[n].vnum, res2[n].count, res2[n].price, item_name(res2[n].vnum).."    NP:"..res2[n].price, res2[n].id
            end)
            return vnum, count, price, isim, id
        end
        
        
        function kalan_sure(ipe)             
            if ipe >= get_global_time() then
                seconds = ipe - get_global_time()
            else
                seconds = (get_global_time() + ipe) - get_global_time()
            end
            
            
            local days = 0
            local hours = math.floor(seconds / 3600)
            local mins = math.floor((seconds - (hours*3600)) / 60)
            local secs = math.floor(seconds - hours*3600 - mins*60 )
            local t = ""
            if tonumber(hours) >= 24 then
                days = math.floor(hours / 24)
                hours = math.floor(hours - (days*24))
            end
            if tonumber(days) == 1 then
                t = t..days.." Gun "
            elseif tonumber(days) >= 1 then
                t = t..days.." Gun "
            end
            if tonumber(hours) == 1 then
                t = t..hours.." Saat "
            elseif tonumber(hours) >= 1 then
                t = t..hours.." Saat "
            end
            if tonumber(mins) == 1 then
                t = t..mins.." Dakika "
            elseif tonumber(mins) >= 1 then
                t = t..mins.." Dakika "
            end
            if tonumber(secs) == 1 then
                t = t..secs.." Saniye "
            elseif tonumber(secs) >= 1 then
                t = t..secs.." Saniye "
            end
            if t == "" then
                return "(!)"
            end
            return t
        end
        
        function np_blok(ben, rakip)
            local ekle = get_time()+60*60
            local query=[[UPDATE player.np_log SET sure = '"..ekle.."', sayi = 0 WHERE olduren = '"..ben.."' and olen = '"..rakip.."';]]
            local res1, res2 = mysql_direct_query2(query)
        end
        
        function np_bilgi_gir(ben, rakip)
            local query=[[INSERT INTO player.np_log (olduren, olen, sayi, sure) VALUES ('"..ben.."', '"..rakip.."', 0,0);]]
            local res1, res2 = mysql_direct_query2(query)
        end
        
        function item_ekle(vnum, count, price)
            local query=[[INSERT INTO player.np_odul (vnum, count, price) VALUES ('"..vnum.."', '"..count.."', '"..price.."');]]
            local res1, res2 = mysql_direct_query2(query)
        end
        
        function np_log_gir(name, vnum, count, price)
            local query=[[INSERT INTO player.np_odul_log (name, vnum, count, price, timee) VALUES ('"..name.."', '"..vnum.."', '"..count.."','"..price.."', now());]]
            local res1, res2 = mysql_direct_query2(query)
        end
        
        function np_log_sifirla(ben, rakip)
            local query=[[UPDATE player.np_log SET sure = 0 WHERE olduren = '"..ben.."' and olen = '"..rakip.."';]]
            local res1, res2 = mysql_direct_query2(query)
        end
        
        function odul_sil(id)
            local query=[[DELETE FROM player.np_odul WHERE id = '"..id.."';]]
            local res1, res2 = mysql_direct_query2(query)
        end
        
        function np_spam(ben, rakip)
            local query=[[UPDATE player.np_log SET sayi = sayi+1 WHERE olduren = '"..ben.."' and olen = '"..rakip.."';]]
            local res1, res2 = mysql_direct_query2(query)
        end
        
        function odul_al()
            local query=[[SELECT * FROM player.np_odul ORDER BY id desc;]]
            local res1, res2 = mysql_direct_query2(query)
            local odul = res2[1].vnum
            local adet = res2[1].count
            local deger = res2[1].count
            return odul, adet, deger
        end
        
        function kisi_bilgi(ben, rakip)
            local query=[[SELECT * FROM player.np_log WHERE olduren = '"..ben.."' and olen = '"..rakip.."';]]
            local res1, res2 = mysql_direct_query2(query)
            local sure, sayi
            if res1 == nil or res1 == 0 then
                sure = "bos"
            else
                sure = res2[1].sure
                sayi = res2[1].sayi
            end
            
            return sure, sayi
        end
        
function item_bilgi(vnum)
   local durum
   if vnum == nil or vnum == " " or vnum == "" then
    durum = "bos"
   end
   local query=[[SELECT * FROM player.item_proto WHERE vnum = '"..vnum.."';]]
   local res1, res2 = mysql_direct_query2(query)
  
   if res1 == nil or res1 == 0 then
    durum = "bos"
   else
    durum = "dolu"
   end
  
   return durum
  end
        function bosslar(boss)
            bosslar = {
                [691]        = {1},
                [1901]        = {1},
                [2206]        = {1},
                [2091]        = {1},
                [2191]        = {1},
                [792]        = {1},
                [1304]        = {1},
                [2306]        = {1},
                [1192]        = {1},
                [2492]        = {1},
                [2493]        = {1},
                [1093]        = {1},
                [2598]        = {1},
                [8054]        = {1},
                [2493]        = {10},
            }

            boss = tonumber(boss)

            return bosslar[boss]
        end
    end
end
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst