Npc spawn

Started by farmmedal, 2022-08-23, 18:43:30

Sziasztok!

A problémám a következő:
Úgy szeretnék spawnolni egy npc-t, hogy csak az léphessen vele interakcióba, aki maga "megidézte". Még abban az esetben is, hogyha ketten, egyidejűleg, egy helyen, ugyanazt a questet csinálják és ketten idézik le egyszerre az adott lényt. A következő módon próbáltam megoldani eddig:


quest npcspawn begin
state start begin
when letter begin
send_letter("NpcSpawn")
end
when button or info begin
local x = (pc.get_local_x())
local y = (pc.get_local_y())
mob.spawn(4001, x+2, y+2, 2, 2, 1)
game.set_event_flag("player", pc.get_player_id())
end
when 4001.click begin
if game.get_event_flag("player") == (pc.get_player_id()) then
say("jonapot")
wait()
say("aviszontlátásra")
wait()
game.set_event_flag("player", 0)
npc.purge()
else
return
end
end
end
end


Próbáltam már a pc.get_player_id()-t lokálisként kezelni, azonban ez sem hozta meg a kívánt ereményt - lefutott a quest, de nem tudtam "eltüntetni" az npc-t.
local i = (pc.get_player_id()) )

Az első megoldás működött - mindaddig, míg két karakterrel ki nem próbáltam. Az egyik még ígyis képes a másikét eltüntetni, holott a player id-k nem egyeznek. Mit rontok el?

Előre is köszönöm a segítséget!
Ki mint vet..

quest npcspawn begin
state start begin
when letter begin
send_letter("NpcSpawn")
end
when button or info begin
local x = (pc.get_local_x())
local y = (pc.get_local_y())
local vid = mob.spawn(4001, x+2, y+2, 2, 2, 1)
--game.set_event_flag("player", pc.get_player_id())
pc.setqf("4001_vid", vid)
end
when 4001.click begin
--if game.get_event_flag("player") == (pc.get_player_id()) then
if pc.getqf("4001_vid") == npc.get_vid() then
say("jonapot")
wait()
say("aviszontlátásra")
wait()
--game.set_event_flag("player", 0)
pc.setqf("4001_vid", 0)
npc.purge()
--else
--return
end
end
end
end