mapra csak egy ember tudjon belépni (K)

Indította Madridista, 2013-03-28, 13:26:52

2013-03-28, 13:26:52 Utolsó szerkesztés: 2013-04-04, 09:33:39 Szerző: [MOD]Aegist
Sziasztok olyan kérdésem lenne, hogy hogy kell azt beleírni egy questbe, hogy az adott mapon csak 1 ember lehessen és addig ne engedjen be mást?

jobb, ha generáltatod a map indexet, így akárhány ember bemehet, de nem látják egymást a playerek se egymás szörnyeit....

mindenki külön mapon lesz de ugyan úgy néz ki a map, ha érdekel így is akkor írj.. és küldök egy olyan questet

2013-03-28, 13:41:50 #2 Utolsó szerkesztés: 2013-03-28, 13:43:29 Szerző: Distraught
Szia.
quest xy begin
state start begin
when NPCID.chat."Belépés a mapra" begin
if pc.getqf("vb") != 0 then
say("Már vannak bent.")
return
end
say("Be akarsz menni?")
local bm = select("Igen","Nem")
if bm == 1 then
pc.setqf("vb", 1)
pc.warp(x, y)
else
return
end
end
when NPCID.chat."Kilepes" with pc.get_map_index() == MAPINDEX begin
say("Ki akarsz menni?")
local bm = select("Igen","Nem")
if bm == 1 then
pc.setqf("vb", 0)
pc.warp(x, y)
else
return
end
end
end
end

Írd be a koordinátákat, meg az NPC ID-jét. Meg szövegeket is írd át, mivel telefonrol nem írnék bele egy regényt.

C++ programmer at Gameloft

És ebbe azt bele lehet írni, hogy 3 óránként lehessen belépni és csak 10 percig maradhasson bent a játékos utána rakja ki?


quest xy begin
state start begin
when NPCID.chat."Belépés a mapra" begin
if pc.getqf("vb") != 0 then
say("Már vannak bent.")
return
end
say("Be akarsz menni?")
local bm = select("Igen","Nem")
if bm == 1 then
pc.setqf("vb", 1)
pc.setqf("ido", get_time())
timer("kivisz", 60*10)
pc.warp(x, y)
else
return
end
end
when NPCID.chat."Kilepes" with pc.get_map_index() == MAPINDEX begin
say("Ki akarsz menni?")
local bm = select("Igen","Nem")
if bm == 1 then
pc.setqf("vb", 0)
pc.warp(x, y)
else
return
end
end
when kivisz.timer begin
pc.setqf("vb", 0)
pc.warp(x, y)
end
when login with pc.getqf("ido")+60*10 => get_time() begin
pc.setqf("vb", 0)
pc.warp(x, y)
end
end
end

C++ programmer at Gameloft

Nem működik, ezt írja ki:

syntax error : [string "startpc . getqf ( "ido" ) + 60 * 10 = > get_time ( )"]:1: `then' expected near `='
bossrun.quest:33:Abort (core dumped)

quest xy begin
state start begin
when NPCID.chat."Belépés a mapra" begin
if pc.getqf("vb") != 0 then
say("Már vannak bent.")
return
end
say("Be akarsz menni?")
local bm = select("Igen","Nem")
if bm == 1 then
pc.setqf("vb", 1)
pc.setqf("ido", get_time()+60*10)
timer("kivisz", 60*10)
pc.warp(x, y)
else
return
end
end
when NPCID.chat."Kilepes" with pc.get_map_index() == MAPINDEX begin
say("Ki akarsz menni?")
local bm = select("Igen","Nem")
if bm == 1 then
pc.setqf("vb", 0)
pc.warp(x, y)
else
return
end
end
when kivisz.timer begin
pc.setqf("vb", 0)
pc.warp(x, y)
end
when login with pc.get_map_index() == MAPINDEX begin
if get_time() >= pc.getqf("ido") then
pc.setqf("vb", 0)
pc.warp(x, y)
return
end
timer("kivisz", pc.getqf("ido") - get_time())
end
end
end

Talán így, nem tudom mi a hiba, nem látom benne.

C++ programmer at Gameloft

Jah igen, elfelejtettem. Akkor eventflag.


quest xy begin
state start begin
when NPCID.chat."Belépés a mapra" begin
if game.get_event_flag("vb") != 0 then
say("Már vannak bent.")
return
end
say("Be akarsz menni?")
local bm = select("Igen","Nem")
if bm == 1 then
game.set_event_flag("vb", 1)
pc.setqf("ido", get_time()+60*10)
timer("kivisz", 60*10)
pc.warp(x, y)
else
return
end
end
when NPCID.chat."Kilepes" with pc.get_map_index() == MAPINDEX begin
say("Ki akarsz menni?")
local bm = select("Igen","Nem")
if bm == 1 then
game.set_event_flag("vb", 0)
pc.warp(x, y)
else
return
end
end
when kivisz.timer begin
game.set_event_flag("vb", 0)
pc.warp(x, y)
end
when login with pc.get_map_index() == MAPINDEX begin
if get_time() >= pc.getqf("ido") then
game.set_event_flag("vb", 0)
pc.warp(x, y)
return
end
timer("kivisz", pc.getqf("ido") - get_time())
end
end
end

C++ programmer at Gameloft

Működik, köszönöm, zárom! Ment a plusz.