Pár Questem

Indította Distraught, 2012-09-07, 20:10:08

2012-09-07, 20:10:08 Utolsó szerkesztés: 2012-10-19, 16:16:46 Szerző: Distraught
Sziasztok!
Mai nap eltávoztam egy szervertől. Nevet nem írok, erre megkért a tulaj, de gondolom mindenkinek leesett, hogy melyik az a szerver. Íme néhány quest, amit én írtam.

SÉ adó tárgy + dropp :

quest seadonpc begin
state start begin
when 9004.chat."Nap érmék beváltása" with game.get_event_flag("setargy") == 1 begin
say_title("Event rendező:")
say_title("Üdvözöllek Kalandor!")
say("Nálam beválthatod a tárgyat Sárkány Érmére!")
say(" ")
say_reward("10 tárgy = 100 SÉ ")
say(" ")
say("Szeretnéd beváltani?")
local s=select("Igen", "Nem")
if s==2 then
return
end
if pc.count_item(tárgyID) >= 10 then
local SE = 100
local ID = pc.get_account_id()
mysql_query("UPDATE account.account SET cash = cash + "..SE.." WHERE id = "..ID..";")
pc.remove_item(tárgyID, 10)
say("Megkaptad a Sárkány Érméket!")
else
say("Nincs 10 db tárgyad!")
end
end
when kill with game.get_event_flag("setargy") == 1 begin
local talan = math.random(1,500)
if talan == 2 then
game.drop_item_with_ownership(tárgyID, 1)
end
end
end
end


questlib.lua-ba (Köszi ATAG) :

function mysql_query(text)
local tmp=number(11111111,99999999)
os.execute('mysql -h localhost -user root -pJELSZÓ -N -e '..string.format("%q",text)..' 2>&1 > /tmp/'..tmp)
local f,e=io.open("/tmp/"..tmp)
if f then
return function()
local l=f:read("*l")
if l then
return l
else
f:close()
os.execute("rm /tmp/"..tmp)
end
end
else
return nil, e
end
end

quest_functions-ba :

mysql_query





M skill küldetés:

quest mskill begin
state start begin
when levelup with pc.get_level() == 15 begin
set_state(information)
end
end
state information begin
when letter with pc.getqf("elfogad") == 0 begin
send_letter("Uriel képzése, a Mester képességek!")
end
when button or info begin
say_title("Uriel üzent neked: ")
say("Elérted a 15. szintedet! Gratulálok!")
say("Itt az ideje, hogy új képességeket tanulj!")
say("Szerezz a szörnyektől 30 darab Mester Követ")
say("és ha megvan hozd el nekem! Sok szerencsét!")
say_reward("Gyűjts össze 30 darab Mester Követ Urielnek!")
say_item("Mester kő ", TÁRGYID, "")
pc.setqf("mesterko", 1)
end
when kill with pc.getqf("mesterko") == 1 begin
local szam = math.random(1, 30)
if szam == 1 then
game.drop_item_with_ownership(TÁRGYID, 1)
end
if pc.countitem(TÁRGYID) >= 30 then
pc.setqf("elfogad", 1)
set_state(letter1)
end
end
end
state letter1 begin
when letter or login with pc.getqf("elfogad") == 1 begin
send_letter("Begyűjtötted a köveket!")
local v = find_npc_by_vnum(20011)
if v != 0 then
target.vid("__uriel__", v, "Uriel")
end
end
when button or info begin
say_title("A kövek beszerezve: ")
say("Gratulálok "..pc.get_name().." !")
say("Megszerezted a Mester köveket!")
say("Ne késlekedj, menj Urielhez és add oda neki őket!")
say("")
say_reward("Menj a városba és keresd meg Urielt!")
end
when 20011.chat."Mester képességek" with pc.getqf("kesz") == 0 begin
if pc.skillgroup ==0 then
target.delete("__uriel__")
say("Nincsenek még képességeid amiket mester")
say("szintre emelhetnék!")
say("Először keresd fel az oktatókat!")
set_state(letter1)
else
target.delete("__uriel__")
say_title("Uriel: ")
say("Üdvözöllek "..pc.get_name().." !")
say("Látom megszerezted a Mester Köveket!")
say("Most megpróbálom megtanítani neked")
say("a mester szintű képességeket!")
say_reward("Koncentrálj erősen mert nem lesz könnyű!")
wait()
if pc.countitem(TÁRGYID) >= 30 then
say("Uriel halkan mormol valami furcsa nyelven...")
say("Alig értessz belőle valamit, de érzed, hogy valami")
say("különleges fog történni...")
wait()
if pc.get_job() == 0 then
pc.set_skill_level (1,20)
pc.set_skill_level (2,20)
pc.set_skill_level (3,20)
pc.set_skill_level (4,20)
pc.set_skill_level (5,20)
pc.set_skill_level (16,20)
pc.set_skill_level (17,20)
pc.set_skill_level (18,20)
pc.set_skill_level (19,20)
pc.set_skill_level (20,20)
pc.removeitem(TÁRGYID, 30)
pc.setqf("elfogad", 2)
end
if pc.get_job() == 1 then
pc.set_skill_level (31,20)
pc.set_skill_level (32,20)
pc.set_skill_level (33,20)
pc.set_skill_level (34,20)
pc.set_skill_level (35,20)
pc.set_skill_level (46,20)
pc.set_skill_level (47,20)
pc.set_skill_level (48,20)
pc.set_skill_level (49,20)
pc.set_skill_level (50,20)
pc.removeitem(TÁRGYID, 30)
pc.setqf("elfogad", 2)
end
if pc.get_job() == 2 then
pc.set_skill_level (61,20)
pc.set_skill_level (62,20)
pc.set_skill_level (63,20)
pc.set_skill_level (64,20)
pc.set_skill_level (65,20)
pc.set_skill_level (66,20)
pc.set_skill_level (76,20)
pc.set_skill_level (77,20)
pc.set_skill_level (78,20)
pc.set_skill_level (79,20)
pc.set_skill_level (80,20)
pc.set_skill_level (81,20)
pc.removeitem(TÁRGYID, 30)
pc.setqf("elfogad", 2)
end
if pc.get_job() == 3 then
pc.set_skill_level (91,20)
pc.set_skill_level (92,20)
pc.set_skill_level (93,20)
pc.set_skill_level (94,20)
pc.set_skill_level (95,20)
pc.set_skill_level (96,20)
pc.set_skill_level (106,20)
pc.set_skill_level (107,20)
pc.set_skill_level (108,20)
pc.set_skill_level (109,20)
pc.set_skill_level (110,20)
pc.set_skill_level (111,20)
pc.removeitem(TÁRGYID, 30)
pc.setqf("elfogad", 2)
end
pc.setqf("kesz", 1)
clear_letter()
set_quest_state("gskill", "run")
set_state(vege)
else
say("Nincs is nálad a 30 Mester Kő...")
say("Amíg nem szerzed meg a Mester képességeidet,")
say("addig nem küzdhetsz meg a Nagymesterekért")
say("sem!")
end
end
end
end
state vege begin
end
end


G skill:

quest gskill begin
state start begin
end
state run begin
when login or levelup with pc.get_level() >= 35 begin
set_state(information)
end
end
state information begin
when letter with pc.getqf("elfogad") == 0 begin
send_letter("Uriel képzése, a Nagyester képességek!")
end
when button or info begin
say_title("Uriel üzent neked: ")
say("Elérted a 35. szintedet! Gratulálok!")
say("Itt az ideje, hogy új képességeket tanulj!")
say("Szerezz a szörnyektől 100 darab Mester Követ")
say("és ha megvan hozd el nekem! Sok szerencsét!")
say_reward("Gyűjts össze 100 darab Mester Követ Urielnek!")
say_item("Mester kő ", TÁRGYID, "")
pc.setqf("mesterko", 1)
end
when kill with pc.getqf("mesterko") == 1 begin
local szam = math.random(1, 40)
if szam == 1 then
game.drop_item_with_ownership(TÁRGYID, 1)
end
if pc.countitem(TÁRGYID) >= 100 then
pc.setqf("elfogad", 1)
set_state(letter1)
end
end
end
state letter1 begin
when letter or login with pc.getqf("elfogad") == 1 begin
send_letter("Begyűjtötted a köveket!")
local v = find_npc_by_vnum(20011)
if v != 0 then
target.vid("__uriel__", v, "Uriel")
end
end
when button or info begin
say_title("A kövek beszerezve: ")
say("Gratulálok "..pc.get_name().." !")
say("Megszerezted a Mester Köveket!")
say("Ne késlekedj, menj Urielhez és add oda neki őket!")
say("")
say_reward("Menj a városba és keresd meg Urielt!")
end
when 20011.chat."Nagymester képességek" with pc.getqf("kesz") == 0 begin
if pc.skillgroup ==0 then
target.delete("__uriel__")
say("Nincsenek még képességeid amiket Nagymester")
say("szintre emelhetnék!")
say("Először keresd fel az oktatókat!")
set_state(letter1)
else
target.delete("__uriel__")
say_title("Uriel: ")
say("Üdvözöllek "..pc.get_name().." !")
say("Látom megszerezted a Mester Köveket!")
say("Most megpróbálom megtanítani neked")
say("a nagymester szintű képességeket!")
say_reward("Koncentrálj erősen mert nem lesz könnyű!")
wait()
if pc.countitem(TÁRGYID) >= 100 then
say("Uriel halkan mormol valami furcsa nyelven...")
say("Alig értessz belőle valamit, de érzed, hogy valami")
say("különleges fog történni...")
wait()
if pc.get_job() == 0 then
pc.set_skill_level (1,30)
pc.set_skill_level (2,30)
pc.set_skill_level (3,30)
pc.set_skill_level (4,30)
pc.set_skill_level (5,30)
pc.set_skill_level (16,30)
pc.set_skill_level (17,30)
pc.set_skill_level (18,30)
pc.set_skill_level (19,30)
pc.set_skill_level (20,30)
pc.removeitem(TÁRGYID, 100)
pc.setqf("elfogad", 2)
end
if pc.get_job() == 1 then
pc.set_skill_level (31,30)
pc.set_skill_level (32,30)
pc.set_skill_level (33,30)
pc.set_skill_level (34,30)
pc.set_skill_level (35,30)
pc.set_skill_level (46,30)
pc.set_skill_level (47,30)
pc.set_skill_level (48,30)
pc.set_skill_level (49,30)
pc.set_skill_level (50,30)
pc.removeitem(TÁRGYID, 100)
pc.setqf("elfogad", 2)
end
if pc.get_job() == 2 then
pc.set_skill_level (61,30)
pc.set_skill_level (62,30)
pc.set_skill_level (63,30)
pc.set_skill_level (64,30)
pc.set_skill_level (65,30)
pc.set_skill_level (66,30)
pc.set_skill_level (76,30)
pc.set_skill_level (77,30)
pc.set_skill_level (78,30)
pc.set_skill_level (79,30)
pc.set_skill_level (80,30)
pc.set_skill_level (81,30)
pc.removeitem(TÁRGYID, 100)
pc.setqf("elfogad", 2)
end
if pc.get_job() == 3 then
pc.set_skill_level (91,30)
pc.set_skill_level (92,30)
pc.set_skill_level (93,30)
pc.set_skill_level (94,30)
pc.set_skill_level (95,30)
pc.set_skill_level (96,30)
pc.set_skill_level (106,30)
pc.set_skill_level (107,30)
pc.set_skill_level (108,30)
pc.set_skill_level (109,30)
pc.set_skill_level (110,30)
pc.set_skill_level (111,30)
pc.removeitem(TÁRGYID, 100)
pc.setqf("elfogad", 2)
end
pc.setqf("kesz", 1)
set_quest_state("pskill", "run")
clear_letter()
set_state(vege)
else
say("Nincs is nálad a 100 Mester Kő...")
say("Amíg nem szerzed meg a Mester képességeidet,")
say("addig nem küzdhetsz meg a Nagymesterekért")
say("sem!")
end
end
end
end
state vege begin
end
end


Event mutató quest (9004 npc-nél) :
A mintájára tudtok saját eventeket beletenni.

quest eventek begin
state start begin
when 9004.chat."Jelenleg tartó eventek" with game.get_event_flag("seevent") == 1 or game.get_event_flag("oxevent") == 1 or game.get_event_flag("naperme") == 1 or game.get_event_flag("nyitoevent") == 1 or game.get_event_flag("tanevnyito") == 1 or game.get_event_flag("halloween") == 1  begin
say_title("Üdvözöllek "..pc.get_name().." !")
if game.get_event_flag("seevent") == 1 then
say_title("SÉ Event:")
say("Jelenleg minden Sárkány Érme vásárlásod")
say("után dupla mennyiségű Sárkány Érmét írunk jóvá!")
say("Így most féláron megszerezheted az extra felszereléseidet!")
end
if game.get_event_flag("oxevent") == 1 then
say_title("OX event:")
say("A mai napon számos OX eventet tartunk!")
say("Figyeld az öreg Uriel hirdetéseit, hogy")
say("nehogy le maradj róluk!")
end
if game.get_event_flag("naperme") == 1 then
say_title("Napérme event:")
say("Jelenleg, a játékban lévő összes szörny")
say("dobhat Nap Érmét!")
say("Ha összegyűjtöd")
say("és elhozod nekem, beváltom neked Sárkány Érmére!")
end
if game.get_event_flag("nyitoevent") == 1 then
say_title("Nyitó event:")
say("Nagyon örülök, hogy a Metin2Flame-et")
say("választottad! Hálám jeléül fogadd ezt a kis")
say("nyitó eventet el tőlem:")
say("Jelenleg, a játékban lévő összes szörny")
say("dobhat Nap Érmét! Ha kinyitod értékes")
say("tárgyakra tehetsz szert, vagy ha összegyűjtöd")
say("és elhozod nekem, beváltom neked Sárkány Érmére!")
say("Jó játékot kíván az M2F Team!")
end
if game.get_event_flag("tanevnyito") == 1 then
say_title("Tanév-nyitó event:")
say("Kevesek örömére, sokak bánatára elérkezett")
say("az iskola kezdés ideje. Hogy megkönnyítsük")
say("nektek a tábla koptatását, jelenleg a játékban ")
say("lévő összes szörny dobhat különböző színű krétákat.")
say("A krétákat színük szerint hármasával vidd el")
say("a varázslónőhöz, és a jutalmad nem marad el!")
end
if game.get_event_flag("halloween") == 1 then
say_title("Halloween event:")
say("Elérkezett az ősi kelták tiszteletére")
say("rendezett Halloween éjjele! A boszorkányok,")
say("kísértetek, és egyéb szellemek ünnepe!")
say("Arlandriát is ellepték a túlvilági lények")
say("az event ideje alatt. Keresd meg a holtak")
say("hírnökét és szedd össze az összes bátorságodat!")
end
end
when 9004.chat."Jelenleg tartó eventek" with game.get_event_flag("seevent") == 0 and game.get_event_flag("oxevent") == 0 and game.get_event_flag("naperme") == 0 and game.get_event_flag("nyitoevent") == 0 and game.get_event_flag("tanevnyito") == 0 and game.get_event_flag("halloween") == 0 begin
say_title("Üdvözöllek "..pc.get_name().." !")
say("Jelenleg nincs event.")
end
when 9004.chat."ADMIN: Event kódok" with pc.is_gm() begin
say("SÉ event - /e seevent 1 ")
say("Napérme event - /e naperme 1 ")
say("Nyitó event - /e nyitoevent 1 ")
say("Tanévnyitó - /e tanevnyito 1 ")
say("Halloween - /e halloween 1 ")
end
end
end


Jelenleg lévő eventek automatikus kiírása:
Annyit kell tenni, hogy ugye az előző questben kiírja az eventes, hogy melyik gm kóddal melyik eventet indítod. Ha elindítottad, rákattintasz az eventek kiírása gombra, és magától 10 percenként irogatja, ameddig tart az event.

quest eventir begin
state start begin
when 9004.chat."EVENT KIÍRÁSA" with pc.is_gm() begin
timer("seevent", 1)
timer("naperme", 1)
timer("nyitoevent", 1)
timer("tanevnyito", 1)
timer("halloween", 1)
say("Kiírás elindítva.")
end
when seevent.timer begin
if game.get_event_flag("seevent") == 1 then
notice_all("Jelenleg SÉ Event van!")
timer("seevent2", 60*10)
end
end
when naperme.timer begin
if game.get_event_flag("naperme") == 1 then
notice_all("Jelenleg a játékban Napérme Event van!")
notice_all("Az összegyűjtött Napérméket az Event szervező-nél")
notice_all("beválthatjátok Sárkány Érmékre!")
timer("naperme2", 60*10)
end
end
when nyitoevent.timer begin
if game.get_event_flag("nyitoevent") == 1 then
notice_all("Jelenleg nyitóevent van!")
timer("nyitoeven2t", 60*10)
end
end
when tanevnyito.timer begin
if game.get_event_flag("tanevnyito") == 1 then
notice_all("Jelenleg a játékban Tanévnyitó Event van!")
notice_all("Gyűjtsétek a krétákat, és váltsátok be értékes nyereményekre!")
timer("tanevnyito2", 60*10)
end
end
when halloween.timer begin
if game.get_event_flag("halloween") == 1 then
notice_all("Jelenleg halloween Event van!")
timer("halloween2", 60*10)
end
end
when seevent2.timer begin
if game.get_event_flag("seevent") == 1 then
notice_all("Jelenleg SÉ Event van!")
timer("seevent", 60*10)
end
end
when naperme2.timer begin
if game.get_event_flag("naperme") == 1 then
notice_all("Jelenleg a játékban Napérme Event van!")
notice_all("Az összegyűjtött Napérméket az Event szervező-nél")
notice_all("beválthatjátok Sárkány Érmékre!")
timer("naperme", 60*10)
end
end
when nyitoevent2.timer begin
if game.get_event_flag("nyitoevent") == 1 then
notice_all("Jelenleg nyitóevent van!")
timer("nyitoevent", 60*10)
end
end
when tanevnyito2.timer begin
if game.get_event_flag("tanevnyito") == 1 then
notice_all("Jelenleg a játékban Tanévnyitó Event van!")
notice_all("Gyűjtsétek a krétákat, és váltsátok be értékes nyereményekre!")
timer("tanevnyito", 60*10)
end
end
when halloween2.timer begin
if game.get_event_flag("halloween") == 1 then
notice_all("Jelenleg halloween Event van!")
timer("halloween", 60*10)
end
end
end
end


Lehetséges, hogy később majd teszek még ki!

C++ programmer at Gameloft