Questben számláló (K)

Indította szabcsi2222, 2014-05-04, 11:28:00

2014-05-04, 11:28:00 Utolsó szerkesztés: 2014-05-11, 21:27:47 Szerző: [MOD]Aegist
Sziasztok. Lenne hozzátok 2 kérdésem.

1.: Hogy lehet azt megoldani egy questben, hogy számolja a megölt mobokat. (Lehet úgy is hogy azt írja ki amennyi még hátra van.)
Gondolok itt pl. arra hogy van 1 vadász küldetésem, és abban 4 fajta szörnyből kell megölni többet. Pl.: Ölj 3 főorkot, 4 pókkirálynőt, 5 démon királyt és 2 kaszást. Ilyenkor hogy tudom számlálni a megölt mobokat, és mikor mind az összeset megölte, akkor kapja meg a jutalmat.

2.: Ha van 1 küldetésem, aminek a megszerzéséhez több feltételnek teljesülnie kell, akkor így jó a quest? :

if pc.get_level >= 30 then
if pc.count_item(30024) >= 1 then
if pc.count_item(50050) >= 1 then
if pc.get_gold >= 200000 then
say_title(Lovászinas:)
say(Gratulálok. A lovad elérte a 11-es szintet.)
horse.unride()
horse.advance()
horse.ride()
end
else
say_title(Lovászinas:)
say(Sajnos valami hiányzik a felsoroltak közül.)
say(Kérlek nézd végig mégegyszer, hogy megvan-e mindened.)
say(Gyere vissza, ha mindened megvan.)
end

konkrét megoldást nem tudok adni ez lehet tök hülyeség de ez jutott először eszembe és gondoltam leírom úgyis kevés oltást kaptam mostanában  ;D
1., csinálnék egy változot hogy mennyit kell megölni pl.:


kaszas=2

2., egy questflag-el számolnám mennyit öl meg
when 101.kill begin
pc.setqf("szamlalo", +1)

3., egy változóba kiszámolnám mennyi van még hátra :D (ez nem tudom működik-e)

hatravan= kaszas - pc.getqf(szamlalo)
say("neked még hátravan ennyi kaszás:"..hatravan.."")


persze ez így nem teljesen jó mert ugye ha eléri a számláló az értéket akkor ugye nem kell tovább számolnia :D

ui.: mint mondtam ez jutott legelőször az eszembe ne kövezzetek meg érte :D

Alapnak jó. Próbálom még átvariálni majd..

repeat until ciklust használj és és addig ismételje amíg el nem éri az XY mob ölésszáma az általad megadott mennyiséget
ha megvan ugye kilép és utána írasd ki, hogy kaptál XY-t

Ehez tudnál adni egy példát? :) Nem volt még dolgom repeat-untillal..

repeat
kaszas=kaszas+1
until kaszas==4

repet until közé berakod amit csináljon a ciklus az until után meg h meddig

Ezt a módszert nem értem.. Inkább próbálgatom mással. :D Azért köszi.

Minek bonyolítani?

Ahány mob annyi questflag. Ha megölöd mondjuk a 2022-es mobot, akkor pc.setqf("2022, pc.getqf("2022")+1)

Ha 5-ször szeretnéd hogy megölje, akkor egy if ciklussal megnézed, hogy a flag elérte-e már az 5öt. Ha igen akkor nem történik semmi, ha nem akkor növeled egyel.

Majd minden flaget egy if cikluson belül leellenőrzöl.
Ha gondolod a quest végére tehetsz egy ilyet: pc.delqf("2022"). Törli a questflaget.

Köszönöm a segítséget, sikerült megoldanom.