Aber warum wird mein Gegner immer weggeportet (auf meinem Server). Wähle Duell, geben seinen Namen ein. Werden beide geportet in diese Duelarena, dann wird er wieder weggeportet, erst map1, dann sofort map2. Ich selber(GM), habe nicht das Problem...hier meine quest:
PHP Code:
quest arena_manager begin
state start begin
when 20017.chat."Duell" begin
if game.get_event_flag("arena_close") > 0 then
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Die Trainingshalle wurde durch einen furchtbaren")
say("Kampf zerstört! Sorry")
say("")
return
end
if not npc.lock() then
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Jemand anderes ist ins Duell gegangen")
say("")
say("")
return
end
local useMinLevel = game.get_event_flag("arena_use_min_level")
if useMinLevel == 0 then
useMinLevel = 25 ;
end
if pc.get_level() < useMinLevel then
say_title("Yuhwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Wenn du nicht Level "..useMinLevel.." erreicht hast")
say("Kannst du dem Kampf nicht beitreten")
say("")
npc.unlock()
return
else
say_title("Yuhwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Bitte wähle die Person mit der du kämpfen möchtest")
say("")
say("")
local sname = input()
if sname == "" then
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say(" Weißt du nicht gegen wen du kämpfen willst?")
say("")
npc.unlock()
return
else
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say(pc.name.." ist dem Kampf beigetreten")
say(sname.." ")
wait("")
local opp_vid = find_pc_by_name(sname)
if opp_vid == 0 then
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say(sname.." ist derzeit nicht verfügbar.")
say("")
npc.unlock()
return
elseif opp_vid == pc.get_vid() then
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Möchtest du dich selbst bekämpfen?")
say("")
say("")
npc.unlock()
return
end
local old = pc.select(opp_vid)
local opp_level = pc.get_level()
pc.select(old)
if opp_level < useMinLevel then
say_title("Yuhwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Der Status der anderen Gruppe ist niedriger als "..useMinLevel.." .")
say("")
npc.unlock()
return
end
if not npc.is_near_vid(opp_vid, 10) then
say_title("Yuhwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Um den Kampf erfolgreich zu starten muss sich :")
say(sname.." bei mir melden")
say("")
npc.unlock()
return ;
end
local a = arena.is_in_arena(opp_vid)
if a == 0 then
say_title("Yuhwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say(sname.." ist derzeit in nem Training")
say("")
npc.unlock()
return ;
end
say_title("Annehmen")
say("")
say(pc.name.." Warte auf die akzeptanz des Duells")
say("of "..sname.." ")
local agree = confirm(opp_vid, sname.." Möchtest du gegen "..pc.name.." kämpfen", 30)
if agree!= CONFIRM_OK then
say_title("Yuhwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say(sname.." möchte nicht kämpfen")
say("")
say("")
npc.unlock()
return
end
s = arena.start_duel(sname, 3)
if s == 0 then
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Da ist ein Problem")
say("Möchtest du später beitreten?")
say("")
elseif s == 2 then
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Eine andere Gruppe ist derzeit im Kampf.")
say("")
elseif s == 3 then
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Die Kampfarena ist derzeit voll")
say("Bitte komme später wieder")
say("")
end
end
end
npc.unlock()
end
when 20017.chat."Schaue bei einem Trainingskampf zu" begin
local g = arena.get_duel_list()
local arena_name = {}
local arena_observer = {}
table.foreachi(g,
function(n, p)
arena_name[n] = p[1].." against "..p[2]
arena_observer[n] = { p[3], p[4], p[5] }
end
)
table.insert(arena_name, "Close")
table.insert(arena_observer, 0)
local count = table.getn(g)
if count == 0 then
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Derzeit kein Trainingskampf")
say("")
return ;
else
say_title("Yu-Hwan:")
say("")
----"12345678901234567890123456789012345678901234567890"|
say("Derzeit finden "..count.." Trainingskämpfe statt")
say("")
wait()
end
if table.getn(g)!= 0 then
local s = select_table(arena_name)
if table.getn(arena_observer) == s then
return ;
end
if table.getn(arena_observer) >= s then
arena.add_observer(arena_observer[s][1], arena_observer[s][2], arena_observer[s][3])
end
end
end
end
end
dann mein 2tes anliegen. Habe ein Problem das im blauen reich bei allen npc's von denen es in der db nur einen gibt das Reich net stimmt. Die habe die roten Flaggen übern kopf. Wo wird das definiert im welchen reich sie welchen status annehmen sollen?