- Mesaj
- 97
- Çözümler
- 9
- Beğeni
- 36
- Puan
- 469
- Ticaret Puanı
- 0
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ı
Guest
Guest
Lua (Quest):
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