Quest segítség

Indította BRics97, 2017-02-05, 15:38:17

Sziasztok!

Írtam egy questet, amelynek az lenne a lényege, hogyha megölik a map1-es bosst, akkor jelenjen meg egy láda, ugye villogjon felette a nyíl, majd, ha rákattintanak akkor kiírja, hogy a jutalmad a leltáradban megtalálod, majd 2 perc múlva tűnjön el a láda. Azonban! Nem tudom, hogy működik-e rendesen. Eléggé kezdő vagyok még quest írásban, ezért, ha valami hiányzik belőle kérlek jelezzétek, viszont, ha úgy jeleztek vissza, hogy már csatoljátok is az általatok jónak vélt változatot, azt nagyon megköszönném!

Szóval. Azt szeretném, hogy a láda mindig jelenjen meg, és mindenki feltudja belőle venni a jutalmát, DE CSAK EGYSZER, ha leverik a bosst. Valamint ez a quest ne legyen csoporthoz kötve. Ha 20-an ölték egyszerre, akkor mind a 20 ember feltudja venni a jutalmát. De mivel egyáltalán nem tudom, hogy így működne-e a quest amit írtam, így mielőtt beraknám megmutatom nektek, hátha találtok benne hibát, javítani valót.

Röviden azt szeretném, hogy akárhányszor leverik a bosst, jelenjen meg a láda, és mindenki feltudja venni a jutalmát, de csak 1x. Mert már jártam úgy, hogy akárhányszor rákattintottak, annyiszor tudták felvenni a jutalmat. Majd 2 perc múlva tűnjön el a láda.

A válaszokat előre is nagyon várom, és köszönöm!

quest MambaKiralyno begin
state Kiralyno begin
when 106.kill begin
notice_all(""..pc.get_name().." és társai sikeresen megölték a Mamba Királynőt!");
d.spawn_mob(20359, 673, 1173)
local v=find_npc_by_vnum(20359)
if v!=0 then target.vid("__TARGET__", l, "Lada")
end

when __TARGET__.target.click or 20359.chat."Szerezd meg a jutalmad!" begin
target.delete("__TARGET__")
say_reward("A jutalmadat megtalálod a leltáradban!")
pc.give_item2(50070, 1)
timer("eltunes", 120)
end

when eltunes.timer begin
npc.purge(20359)
set_state(vege)
end
end

state vege begin
end
end

Szerintem futtas le egy szerver időt, amikor megölik a bosst, ne pedig egyesével mindig, amikor rákattintanak.
Az ember csak fiatalon találhat ki igazán új dolgokat. Utána már túl tapasztalt, túl híres (...) és túl ostoba.

Idézetet írta: TheSLESH Dátum 2017-02-05, 16:11:27
Szerintem futtas le egy szerver időt, amikor megölik a bosst, ne pedig egyesével mindig, amikor rákattintanak.

Mint említettem kezdő vagyok quest írás terén. Szóval amit írtál azt se tudom, hogy egyem vagy igyam. :) Viszont átalakítottam, és így lefutott hiba nélkül.

Kérdés, hogy játékban úgy működik-e, ahogy kell. Mindjárt ki is próbálom.

quest MambaKiralyno begin
state start begin
when 106.kill begin
timer("eltunes", 120)
notice_all(""..pc.get_name().." és társai sikeresen megölték a Mamba Királynőt!");
d.spawn_mob(20359, 673, 1173)
say_reward("A jutalmadat megtalálod a leltáradban!")
pc.give_item2(50070, 1)
end

when eltunes.timer begin
npc.purge(20359)
set_state(__VEGE__)
end
end

state __VEGE__ begin
end
end

Így csak az kapja meg a tárgyat, aki megölte, illetve neki számolja a timert.
Az ember csak fiatalon találhat ki igazán új dolgokat. Utána már túl tapasztalt, túl híres (...) és túl ostoba.

Idézetet írta: TheSLESH Dátum 2017-02-05, 16:36:09
Így csak az kapja meg a tárgyat, aki megölte, illetve neki számolja a timert.

Igen rájöttem. :( Remélem akad majd valaki aki kiegészíti azzal ami hiányzik belőle.. :) De addig is próbálkozok. Egyszer csak jó lesz.

Talán:

quest mambakirayno begin
state start begin
when 106.kill begin
server_timer("eltunes", 120)
notice_all(""..pc.get_name().." és társai sikeresen megölték a Mamba Királynőt!");
d.spawn_mob(20359, 673, 1173)
end

when 20359.chat."Szerezd meg a jutalmad!" begin
say_reward("A jutalmadat megtalálod a leltáradban!")
pc.give_item2(50070, 1)
end

when eltunes.server_timer() begin
npc.purge(20359)
set_state(__VEGE__)
end
end

state __VEGE__ begin
end
end
Az ember csak fiatalon találhat ki igazán új dolgokat. Utána már túl tapasztalt, túl híres (...) és túl ostoba.

Idézetet írta: TheSLESH Dátum 2017-02-05, 16:48:43
Talán:

quest mambakirayno begin
state start begin
when 106.kill begin
server_timer("eltunes", 120)
notice_all(""..pc.get_name().." és társai sikeresen megölték a Mamba Királynőt!");
d.spawn_mob(20359, 673, 1173)
end

when 20359.chat."Szerezd meg a jutalmad!" begin
say_reward("A jutalmadat megtalálod a leltáradban!")
pc.give_item2(50070, 1)
end

when eltunes.server_timer() begin
npc.purge(20359)
set_state(__VEGE__)
end
end

state __VEGE__ begin
end
end


Nem jó. Valamiért nem rakja le a ládát. :(

2017-02-05, 19:45:36 #7 Utolsó szerkesztés: 2017-02-05, 19:49:49 Szerző: TheSLESH
Az  viszont d.spawn_mob hibája. Miért dungeonban akarod spawnoltatni? az a d betű azt jelenti elötte.

Üzenet összefésülés: 2017-02-05, 19:49:49

Plusz még annyit hozzá tennék, hogy így többször is fel tudja venni a jutalmat, ahányszor rákattint.
quest mambakirayno begin
state start begin
when 106.kill begin
server_timer("eltunes", 120)
notice_all(""..pc.get_name().." és társai sikeresen megölték a Mamba Királynőt!");
d.spawn_mob(20359, 673, 1173)
end

when 20359.chat."Szerezd meg a jutalmad!" begin
if pc.getqf("ladavan") == 1 then
say("Te már fel vetted a ládát!")
else
pc.setqf("ladavan", 1)
say_reward("A jutalmadat megtalálod a leltáradban!")
pc.give_item2(50070, 1)
end

when eltunes.server_timer() begin
npc.purge(20359)
set_state(__VEGE__)
end
end

state __VEGE__ begin
end
end


így viszont már nem. Így csak 1x
Az ember csak fiatalon találhat ki igazán új dolgokat. Utána már túl tapasztalt, túl híres (...) és túl ostoba.