Quest ne lehessen többször megcsinálni [Frissítve]

Indította ddani700, 2017-11-18, 17:48:08

2017-11-18, 17:48:08 Utolsó szerkesztés: 2017-11-20, 20:13:11 Szerző: ddani700
Sziasztok!

Írtam egy küldetéses questet egyedül, működni működik csak az a baj hogy valamiért megtudod többször is csinálni és olyanra szeretném mint a biológus. Tehát megkapod a küldit 5 -ös szinten csinálod de már elérted a 10 szintet ne kapd meg a 2. küldetést csak ha teljesítetted az elsőt. Érthető mire akarok kijukadni?:D

1. küldetés:
quest kuldetes_01 begin
state start begin
when login or levelup with pc.get_level() >= 5 begin
set_state(information)
end
end

state information begin
when letter begin
send_letter("Metinkövek 1. küldetés")
end
when button or info begin
say_title("Metinkövek  1. küldetés")
say("")
say("")
say("Üss le 10db Bánat metint (lv5)")
say("")
say("Jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
say("")
say("Sok sikert!")
say("")
set_state(kuldetes1)
end
end
state kuldetes1 begin
when letter begin
q.set_counter( ""..mob_name("8001").."", 10-pc.getqf("kill_count"))
end
when 8001.kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter( ""..mob_name("8001").."", 10-pc.getqf("kill_count"))
end
when 8001.kill with pc.getqf("kill_count") == 10 and pc.getqf("kill_count") == 10 begin
notice("Metinkövek 1. küldetése befejeződött!")
set_state(successful)
end
end

state successful begin
when letter begin
send_letter("Metinkövek 1. küldetés Teljesítve!")
end
when button or info begin
say_title("Metinkövek 1. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("1000")
clear_letter()
wait()
set_skin(NOWINDOW)
set_quest_state("kuldetes_02", "run")
set_state(__COMPLETE__)
end
end

state __COMPLETE__ begin
end
end


2. küldetés:
quest kuldetes_02 begin
state start begin
when login or levelup with pc.get_level() >= 10 begin
set_state(information)
end
end

state information begin
when letter begin
send_letter("Metinkövek 2. küldetés")
end
when button or info begin
say_title("Metinkövek  2. küldetés")
say("")
say("")
say("Üss le 10db Harc metint (lv10)")
say("")
say("Jutalmad:")
say("10.000 Yang")
say("7.000 Tapasztalat pont")
say("")
say("Sok sikert!")
say("")
set_state(kuldetes2)
end
end
state kuldetes2 begin
when letter begin
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
end
when 8002.kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
end
when 8002.kill with pc.getqf("kill_count") == 10 and pc.getqf("kill_count") == 10 begin
notice("Metinkövek 2. küldetése befejeződött!")
set_state(successful)
end
end

state successful begin
when letter begin
send_letter("Metinkövek 2. küldetés Teljesítve!")
end
when button or info begin
say_title("Metinkövek 2. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("7.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("7000")
clear_letter()
wait()
set_skin(NOWINDOW)
set_state(__COMPLETE__)
end
end

state __COMPLETE__ begin
end
end


Segítséget előre is köszönöm! :)

2017-11-18, 18:27:31 #1 Utolsó szerkesztés: 2017-11-18, 18:37:39 Szerző: 5310pati
Kezdésnél ellenőrzöl 1et:
if pc.getqf("asd") == 1 then
    say("Már megcsináltad!")
    return
end

majd mikor megcsinálta 1-re állítod a flag-et.

Üzenet összefésülés: 2017-11-18, 18:37:39

Vagy egybe rakod a 2 questet, és mikor az elsőt megcsinálta beadod neki a kövinek a state-jét.

2017-11-18, 18:53:26 #2 Utolsó szerkesztés: 2017-11-18, 19:03:36 Szerző: ddani700
Valahogy így?

quest kuldetes_01 begin
state start begin
when login or levelup with pc.get_level() >= 5 begin
set_state(information)
end
end

state information begin
when letter begin
send_letter("Metinkövek 1. küldetés")
end
when button or info begin
say_title("Metinkövek  1. küldetés")
say("")
say("")
say("Üss le 10db Bánat metint (lv5)")
say("")
say("Jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
say("")
say("Sok sikert!")
say("")
set_state(kuldetes1)
end
end
state kuldetes1 begin
when letter begin
q.set_counter( ""..mob_name("8001").."", 10-pc.getqf("kill_count"))
end
when 8001.kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter( ""..mob_name("8001").."", 10-pc.getqf("kill_count"))
end
when 8001.kill with pc.getqf("kill_count") == 10 and pc.getqf("kill_count") == 10 begin
notice("Metinkövek 1. küldetése befejeződött!")
set_state(successful)
end
end

state successful begin
when letter begin
send_letter("Metinkövek 1. küldetés Teljesítve!")
end
when button or info begin
say_title("Metinkövek 1. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("1000")
clear_letter()
wait()
set_skin(NOWINDOW)
set_quest_state("start2", "run")
set_state(__COMPLETE__)
end
end

state __COMPLETE__ begin
end

state start2 begin
when login or levelup with pc.get_level() >= 10 begin
set_state(information)
end
end

state information begin
when letter begin
send_letter("Metinkövek 2. küldetés")
end
when button or info begin
say_title("Metinkövek  2. küldetés")
say("")
say("")
say("Üss le 10db Harc metint (lv10)")
say("")
say("Jutalmad:")
say("10.000 Yang")
say("7.000 Tapasztalat pont")
say("")
say("Sok sikert!")
say("")
set_state(kuldetes2)
end
end
state kuldetes2 begin
when letter begin
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
end
when 8002.kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
end
when 8002.kill with pc.getqf("kill_count") == 10 and pc.getqf("kill_count") == 10 begin
notice("Metinkövek 2. küldetése befejeződött!")
set_state(successful)
end
end

state successful begin
when letter begin
send_letter("Metinkövek 2. küldetés Teljesítve!")
end
when button or info begin
say_title("Metinkövek 2. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("7.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("7000")
clear_letter()
wait()
set_skin(NOWINDOW)
set_state(__COMPLETE__)
end
end

state __COMPLETE__ begin
end
end


Nem igazán értem hogy mondod kezdő vagyok etéren :/ :D
Azt szeretném hogy egyben legyen amúgy, csak nem értek hozzá az a baj :/

vagy state váltással tudod lezárni szebben.


.
.
.
set_state(vege)
.
.
.
state vege begin
end

Az a baj már csak hogy az összes megjelenik megcsináltam 6-ig és ez lett belőle ha már nagy szinten vagy hogy mind meg jelenik de én azt szeretném hogy ne jelenjen meg csak ha az elsőt megcsináltad jön a második és így tovább..
Most már működik ha restartolok vagy /reload vagy /reload q -zok nem jön elő még 1x és meglehet csinálni.

quest metinkovek_01 begin
state start begin
when login or levelup with pc.get_level() >= 5 begin
set_state(information)
end
end

state information begin
when letter begin
send_letter("Metinkövek 1. küldetés")
end
when button or info begin
say_title("Metinkövek  1. küldetés")
say("")
say("")
say("Üss le 10db Bánat metint (lv5)")
say("")
say("Jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
say("")
say("Sok sikert!")
say("")
set_state(kuldetes1)
end
end
state kuldetes1 begin
when letter begin
q.set_counter( ""..mob_name("8001").."", 10-pc.getqf("kill_count"))
end
when 8001.kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter( ""..mob_name("8001").."", 10-pc.getqf("kill_count"))
end
when 8001.kill with pc.getqf("kill_count") == 10 and pc.getqf("kill_count") == 10 begin
notice("Metinkövek 1. küldetése befejeződött!")
set_state(successful)
end
end

state successful begin
when letter begin
send_letter("Metinkövek 1. küldetés Teljesítve!")
end
when button or info begin
say_title("Metinkövek 1. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("1000")
clear_letter()
wait()
set_skin(NOWINDOW)
set_quest_state("metinkovek_02", "run")
set_state(__COMPLETE__)
end
end

state __COMPLETE__ begin
end
end


quest metinkovek_02 begin
state start begin
when login or levelup with pc.get_level() >= 10 begin
set_state(information)
end
end

state information begin
when letter begin
send_letter("Metinkövek 2. küldetés")
end
when button or info begin
say_title("Metinkövek  2. küldetés")
say("")
say("")
say("Üss le 10db Harc metint (lv10)")
say("")
say("Jutalmad:")
say("10.000 Yang")
say("7.000 Tapasztalat pont")
say("")
say("Sok sikert!")
say("")
set_state(kuldetes2)
end
end
state kuldetes2 begin
when letter begin
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
end
when 8002.kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
end
when 8002.kill with pc.getqf("kill_count") == 10 and pc.getqf("kill_count") == 10 begin
notice("Metinkövek 2. küldetése befejeződött!")
set_state(successful)
end
end

state successful begin
when letter begin
send_letter("Metinkövek 2. küldetés Teljesítve!")
end
when button or info begin
say_title("Metinkövek 2. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("7.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("7000")
clear_letter()
wait()
set_skin(NOWINDOW)
set_quest_state("metinkovek_03", "run")
set_state(__COMPLETE__)
end
end

state __COMPLETE__ begin
end
end


Próbáltam a biológus küldiket nézegetni de nem látom mi az ami gátolná hogy ne jöjjön elő annál is a többi.

collect_quest_lv40.quest


and then collect_quest_lv50.quest


Ennyi

2017-11-19, 09:35:29 #6 Utolsó szerkesztés: 2017-11-19, 12:34:39 Szerző: ddani700
Hát továbbra sem működik. Ott van az összes küldetés.

quest metinkovek_01 begin
state start begin
when login or levelup with pc.get_level() >= 5 begin
set_state(information)
end
end

state information begin
when letter begin
send_letter("Metinkövek 1. küldetés")
end
when button or info begin
say_title("Metinkövek  1. küldetés")
say("")
say("")
say("Üss le 10db Bánat metint (lv5)")
say("")
say("Jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
say("")
say("Sok sikert!")
say("")
set_state(kuldetes1)
end
end
state kuldetes1 begin
when letter begin
q.set_counter( ""..mob_name("8001").."", 10-pc.getqf("kill_count"))
end
when 8001.kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter( ""..mob_name("8001").."", 10-pc.getqf("kill_count"))
end
when 8001.kill with pc.getqf("kill_count") == 10 and pc.getqf("kill_count") == 10 begin
notice("Metinkövek 1. küldetése befejeződött!")
set_state(successful)
end
end

state successful begin
when letter begin
send_letter("Metinkövek 1. küldetés Teljesítve!")
end
when button or info begin
say_title("Metinkövek 1. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("1000")
clear_letter()
wait()
set_skin(NOWINDOW)
set_quest_state("metinkovek_02", "run")
set_state(__COMPLETE__)
end
end

state __COMPLETE__ begin
end
end


quest metinkovek_02 begin
state start begin
end
state run begin
when login or levelup with pc.get_level() >= 10 begin
set_state(information)
end
end

state information begin
when letter begin
send_letter("Metinkövek 2. küldetés")
end
when button or info begin
say_title("Metinkövek  2. küldetés")
say("")
say("")
say("Üss le 10db Harc metint (lv10)")
say("")
say("Jutalmad:")
say("10.000 Yang")
say("7.000 Tapasztalat pont")
say("")
say("Sok sikert!")
say("")
set_state(kuldetes2)
end
end
state kuldetes2 begin
when letter begin
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
end
when 8002.kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
end
when 8002.kill with pc.getqf("kill_count") == 10 and pc.getqf("kill_count") == 10 begin
notice("Metinkövek 2. küldetése befejeződött!")
set_state(successful)
end
end

state successful begin
when letter begin
send_letter("Metinkövek 2. küldetés Teljesítve!")
end
when button or info begin
say_title("Metinkövek 2. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("7.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("7000")
clear_letter()
wait()
set_skin(NOWINDOW)
set_quest_state("metinkovek_03", "run")
set_state(__COMPLETE__)
end
end

state __COMPLETE__ begin
end
end


Senkinek nincs ötlete???? Én kifogytam az ötletekből :/

quest metinkovek_01 begin
state start begin
when login or levelup with pc.get_level() >= 5 begin
set_state(information)
end
end

state information begin
when letter begin
send_letter("Metinkövek 1. küldetés")
end
when button or info begin
say_title("Metinkövek  1. küldetés")
say("")
say("")
say("Üss le 10db Bánat metint (lv5)")
say("")
say("Jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
say("")
say("Sok sikert!")
say("")
set_state(kuldetes1)
end
end
state kuldetes1 begin
when letter begin
q.set_counter( ""..mob_name("8001").."", 10-pc.getqf("kill_count"))
end
when 8001.kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter( ""..mob_name("8001").."", 10-pc.getqf("kill_count"))
end
when 8001.kill with pc.getqf("kill_count") == 10 and pc.getqf("kill_count") == 10 begin
notice("Metinkövek 1. küldetése befejeződött!")
set_state(successful)
end
end

state successful begin
when letter begin
send_letter("Metinkövek 1. küldetés Teljesítve!")
end
when button or info begin
say_title("Metinkövek 1. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("1000")
clear_letter()
wait()
set_skin(NOWINDOW)
set_quest_state("metinkovek_02", "run")
set_state(run2)
end
end

-- 2. quest
state run2 begin
when login or levelup with pc.get_level() >= 10 begin
set_state(information2)
end
end

state information2 begin
when letter begin
send_letter("Metinkövek 2. küldetés")
end
when button or info begin
say_title("Metinkövek  2. küldetés")
say("")
say("")
say("Üss le 10db Harc metint (lv10)")
say("")
say("Jutalmad:")
say("10.000 Yang")
say("7.000 Tapasztalat pont")
say("")
say("Sok sikert!")
say("")
set_state(kuldetes2)
end
end
state kuldetes2 begin
when letter begin
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
end
when 8002.kill begin
pc.setqf("kill_count", pc.getqf("kill_count")+1)
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
end
when 8002.kill with pc.getqf("kill_count") == 10 and pc.getqf("kill_count") == 10 begin
notice("Metinkövek 2. küldetése befejeződött!")
set_state(successful2)
end
end

state successful2 begin
when letter begin
send_letter("Metinkövek 2. küldetés Teljesítve!")
end
when button or info begin
say_title("Metinkövek 2. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("7.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("7000")
clear_letter()
wait()
set_skin(NOWINDOW)
set_quest_state("metinkovek_03", "run")
set_state(__COMPLETE__)
end
end

state __COMPLETE__ begin
end
end

Nem teszteltem.

Valami nem okés ha lv5 vagy megkapod a küldetést megcsinálod megkapod a jutalmat ha megvan a 10 -es szint megkapod viszont hibásan jön be mert nem tudod megcsinálni a küldetést.
Még valami ötlet?

Próbáld meg h más nevet adsz a 2. küldetésben lévő flagnek, gondolom összeakad a 2.
Mert az elsőt megcsinálod akk 10-ig megy ugye és mikor indul a 2. küldi:
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count"))
itt azt mondja h 0 lesz a számláló.

Pontosan hogy érted?
Valahogy így?
state kuldetes2 begin
when letter begin
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count2"))
end
when 8002.kill begin
pc.setqf("kill_count2", pc.getqf("kill_count2")+1)
q.set_counter( ""..mob_name("8002").."", 10-pc.getqf("kill_count2"))
end
when 8002.kill with pc.getqf("kill_count2") == 10 and pc.getqf("kill_count2") == 10 begin
notice("Metinkövek 2. küldetése befejeződött!")
set_state(successful2)
end
end

Vagy csak én nem értem ?:D

Azaz :D
Vagy amikor az elsőt teljesíti a set_state előtt töröld azt a flag-et.

ezt??
set_quest_state("metinkovek_02", "run")

clear_letter()
Én ez elé/mögé raknám be a flag törlést, vagy hagyod átnvezve a dolgot.

Talán így gondolod?

when button or info begin
say_title("Metinkövek 1. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("1000")
wait()
set_skin(NOWINDOW)
set_quest_state("metinkovek_02", "run")
                        clear_letter()
set_state(run2)
end
end


Vagy hogy érted?:D

Flaget kéne törölni, nem sorrendet cserélni
pc.delqf("kill_count")
utána meg akkor nem kell átnevezni a 2. questben lévő flageket és esetleg annak a végére is rakhatsz 1 törlést.

Akkor így gondolod?

when button or info begin
say_title("Metinkövek 1. küldetés Teljesítve!")
say("")
say("Sikeresen befejezted a küldtést!")
say("A munkád ért a jutalmad:")
say("10.000 Yang")
say("1.000 Tapasztalat pont")
pc.changegold("10000")
pc.give_exp2("1000")
clear_letter()
pc.delqf("kill_count")
wait()
set_skin(NOWINDOW)
set_quest_state("metinkovek_02", "run1")
set_state(__COMPLETE__)
end
end


Bocsi azért nem vagyok egy nagy quest író bár ez látszik is :D


2017-11-19, 20:09:06 #18 Utolsó szerkesztés: 2017-11-20, 20:23:14 Szerző: ddani700
Valami még mindig nem okés :/
Elértem az 5 -ös szintet megnyitom a küldit edig jó majd ha a küldetéseknél rákattintok nem jön elő újra relognál sem.
Ha elérem a 10 -es szintet akkor meg már a küldetéseknél el is csúszik és nem lehet rá kattintani szintén.

Lehet maradnék a külön questnél annál csak annyi volt a gond hogy ha elérted a 10 -es szintet vagy a 20 -as szintet a 10 -nél megjelenik az 1,2 a 20 -nál meg 1,2,3,4 küldi jelenik meg.

~Témát Zártam!~