Du hast immernoch trigger in einem trigger Block... (When Login begin, when Button or Info begin)
----------------------------------
-- 거미굴 3층과 보스룸 관련 전부
-- 2012.2.3 김용욱
----------------------------------
define lair_time 1200
define lair_enter_wait_time 300
define king_kill_wait_time 180
define access_limit_time 3600
quest spider_dungeon_3floor_boss begin
state start begin
--2, 던전 끝 시간.
when spider_end_timer.server_timer with game.get_event_flag("spider_dead"..get_channel_id()) == 0 begin --
warp_all_in_area_to_area(82700, 612700, 93700,625700, 69100, 614800, 69100, 614800)
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(),0)
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
game.set_event_flag("spider_dead"..get_channel_id(),0)
purge_area(82700, 612700, 93700,625700)
end
when spider_dead_timer.server_timer begin
warp_all_in_area_to_area(82700, 612700, 93700,625700, 69100, 614800, 69100, 614800)
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(), 0)
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
game.set_event_flag("spider_dead"..get_channel_id(),0)
purge_area(82700, 612700, 93700,625700)
end
when login or levelup or enter with pc.get_level() >= 50 begin
set_state( step1 )
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
end
state step1 begin
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
when 20355.chat."Spinnendungeon 3 " begin --경비대장에게 말을 걸어 퀘스트를 시작한다.
say_title(mob_name(20355))
----"12345678901234567890123456789012345678901234567890"|
say("Ah, da bist du ja! Ein Sp?trupp hat im[ENTER]Spinnendungeon eine dritte Ebene entdeckt. In[ENTER]dieser bisher verborgenen H?le sollen sich[ENTER]einige ??rst monstr?e und heimt?kische[ENTER]Spinnen eingenistet haben. Au?rdem fanden meine[ENTER]M?ner einen alten Grabstein mit einer[ENTER]eingravierten Inschrift, doch sie konnten diese[ENTER]nicht entziffern. Begib dich auf die Suche nach[ENTER]diesem Stein und bringe mir eine Kopie der[ENTER]Inschrift. Hier, dieser Passierschein verschafft[ENTER]dir ungehinderten Zutritt zum Spinnendungeon. ")
set_state( step2 )
pc.give_item2(76019)
end
end
state step2 begin --비석에 탁본을 뜨러 가야한다.
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
-----------퀘스트편지2------------
when letter begin
send_letter("Die Inschrift ")
local v = find_npc_by_vnum(30130)
if 0 != v then
target.vid("__TARGET__", v, mob_name(30130))
end
end
when button or info begin
say_title("Die Inschrift ")
say("Auf der dritten Ebene des Spinnendungeons findest[ENTER]du einen alten Grabstein mit einer eingravierten[ENTER]Inschrift. Fertige eine Kopie davon an und bringe[ENTER]sie dem Hauptmann. ")
say("")
end
when 30130.chat."Die Inschrift " begin
target.delete("__TARGET__")
say_title(pc.getname())
----"12345678901234567890123456789012345678901234567890"|
say("Perfekt, du hast den alten Grabstein gefunden und[ENTER]eine Kopie der Inschrift angefertigt! Geh zur?k[ENTER]zum Hauptmann und zeige sie ihm. ")
set_state(step3)
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
when 20355.chat."Spinnendungeon 3 " begin
say_title(mob_name(20355))
----"12345678901234567890123456789012345678901234567890"|
say("Du willst mir doch nicht erz?len, dass du dich[ENTER]nicht in den Spinnendungeon getraut hast? Du bist[ENTER]ein erfahrener K?pfer mit einer ausgefeilten[ENTER]Technik - so ein paar Krabbeltierchen sollten f?[ENTER]dich kein gro?s Problem darstellen. Aber dir ist[ENTER]bekannt, dass du den Passierschein ben?igst, um[ENTER]die H?le zu betreten? ")
end
end
state step3 begin --탁본을 떴으니 경비에게 돌아간다.
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
when letter begin
send_letter("Neue Gefahr ")
--경비대장을 가리킨다.
local v = find_npc_by_vnum(20355)
if 0 != v then
target.vid("__TARGET__", v, mob_name(20355))
end
end
when button or info begin
say_title("Neue Gefahr ")
say("Du hast eine genaue Kopie der Inschrift[ENTER]angefertigt. Zeige sie nun dem Hauptmann. ")
say("")
end
--을두지를 선택하면 해당 퀘스트에 관련된 대화를 나눌 수 있다.
when 20355.chat."Neue Gefahr " begin
say_title(mob_name(20355))
say("Sehr gut, du hast es geschafft! Zeig mal her ...[ENTER]Hm, diese Schriftzeichen sind mir fremd, ich kann[ENTER]kein Wort verstehen. Du solltest vielleicht den[ENTER]Gelehrten Uriel um Rat fragen. ")
set_state(step4)
end
end
state step4 begin --을두지에게 탁본을 맡기자.
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
-----------퀘스트편지2------------
when letter begin
send_letter("Neue Gefahr ")
-- 을두지를 가리킨다.
local v = find_npc_by_vnum(20011)
if 0 != v then
target.vid("__TARGET__", v, mob_name(20011))
end
end
when button or info begin
say_title("Neue Gefahr ")
say("Gehe zum Gelehrten Uriel und zeige ihm die[ENTER]Inschrift. Er wird sie sicherlich ?ersetzen[ENTER]k?nen. ")
say("")
end
when 20011.chat."Neue Gefahr " begin
target.delete("__TARGET__")
say_title(mob_name(20011))
say("Der Hauptmann bittet mich, diese geheimnisvolle[ENTER]Inschrift zu entziffern? Selbstverst?dlich. Ich[ENTER]liebe geistige Herausforderungen. Zeig her.[ENTER]Das ist ... Also das ist ja ungeheuerlich. Hier,[ENTER]ich schreibe dir die ?ersetzung auf dieses[ENTER]Papier. Bringe es so schnell wie m?lich zum[ENTER]Hauptmann und kehre anschlie?nd zu mir zur?k.[ENTER]Wenn das stimmt, was hier steht, dann befinden[ENTER]wir alle uns in gro?r Gefahr! Los, los! ")
say("")
set_state(step5)
end
when 20355.chat."Neue Gefahr " begin
say_title(mob_name(20355))
say("Sehr gut, du hast es geschafft! Zeig mal her ...[ENTER]Hm, diese Schriftzeichen sind mir fremd, ich kann[ENTER]kein Wort verstehen. Du solltest vielleicht den[ENTER]Gelehrten Uriel um Rat fragen. ")
end
end
state step5 begin --경비한테 편지 배달
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
when letter begin
send_letter("Neue Gefahr ")
-- 을두지를 가리킨다.
local v = find_npc_by_vnum(20355)
if 0 != v then
target.vid("__TARGET__", v, mob_name(20355))
end
end
when button or info begin
say_title("?erbringe Uriels Brief ")
say("Dieser starrk?fige alte Mann ... W?e ein[ENTER]kleines Dankesch? zu viel verlangt? Aber gut. Er[ENTER]sagte, die Informationen seien ??rst wichtig,[ENTER]also werde ich sie rasch dem Hauptmann[ENTER]?ermitteln. ")
say("")
end
when 20355.chat."Uriels Brief " begin
target.delete("__TARGET__")
say_title(mob_name(20355))
----"12345678901234567890123456789012345678901234567890"|
say("Oh je! In der dritten Ebene des Spinnendungeons[ENTER]hat sich ein gewaltiger Arachniden-D?on[ENTER]eingenistet - die Spinnenbaroness. Der Inschrift[ENTER]zufolge braucht man einen speziellen Schl?sel,[ENTER]um in diese verborgene H?le zu gelangen.[ENTER]Gehe zun?hst zu Uriel und frage ihn nach diesem[ENTER]Schl?sel. Stelle dir anschlie?nd einen Trupp[ENTER]aus f?igen K?pfern zusammen und st?mt[ENTER]gemeinsam das Versteck der Spinnenbaroness! Hier,[ENTER]ich habe einen weiteren Passierschein f? dich. ")
say("")
set_state(step6) pc.give_item2(76019)
end
when 20011.chat."Neue Gefahr " begin
say_title(mob_name(20011))
say("Du warst noch nicht beim Hauptmann? Bitte, du[ENTER]musst dich beeilen. Wir haben keine Zeit zu[ENTER]verlieren. Er muss diesen Brief unbedingt lesen! ")
say("")
end
end
state step6 begin --경비는 나만 일시킨다. 을두지와 상의하자.
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
when letter begin
send_letter("Uriels Brief ")
-- 을두지를 가리킨다.
local v = find_npc_by_vnum(20011)
if 0 != v then
target.vid("__TARGET__", v, mob_name(20011))
end
end
when button or info begin
say_title("Uriels Brief ")
say("Oh je! In der dritten Ebene des Spinnendungeons[ENTER]hat sich ein gewaltiger Arachniden-D?on[ENTER]eingenistet - die Spinnenbaroness. Der Inschrift[ENTER]zufolge braucht man einen speziellen Schl?sel,[ENTER]um in diese verborgene H?le zu gelangen.[ENTER]Gehe zun?hst zu Uriel und frage ihn nach diesem[ENTER]Schl?sel. Stelle dir anschlie?nd einen Trupp[ENTER]aus f?igen K?pfern zusammen und st?mt[ENTER]gemeinsam das Versteck der Spinnenbaroness! Hier,[ENTER]ich habe einen weiteren Passierschein f? dich. ")
say("")
end
--을두지를 선택하면 해당 퀘스트에 관련된 대화를 나눌 수 있다.
when 20011.chat."Uriels Brief " begin
target.delete("__TARGET__")
say_title(mob_name(20011))
say("Ah, du bist zur?k. Dann hat der Hauptmann dir[ENTER]also den Befehl erteilt, die Spinnenbaroness zu[ENTER]vernichten? Doch der Zugang zur Bruth?le der[ENTER]Baroness ist verschlossen und l?st sich[ENTER]nur mit dem Arachnidenschl?sel ?fnen. Seine[ENTER]Herstellung ist sehr aufwendig. Aber wenn du mir[ENTER]einen Spinnen-Giftsack, einen Spinnen-Eiersack,[ENTER]ein Spinnennetz, Spinnenaugen, Spinnenbeine sowie[ENTER]das Gift der K?iginnenspinne bringst, werde ich[ENTER]einen f? dich anfertigen. ")
set_state(boss_ok)
end
end
state boss_ok begin -- 열쇠를 만들수 있게 된 최종상태. 이제부터 거미굴 보스룸에 입장할 수 있다.
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 20011.chat."Der Arachnidenschl?sel " begin
if pc.count_item(30025) > 0 and pc.count_item(30056) > 0 and pc.count_item(30057) > 0 and pc.count_item(30058) > 0 and pc.count_item(30059) > 0 and pc.count_item(30326) > 0 then
say_title(mob_name(20011))
say("Gro?rtig! Du hast alle ben?igten Elemente f?[ENTER]den Arachnidenschl?sel gefunden. Warte einen[ENTER]Moment. Seine Herstellung sollte nicht allzu[ENTER]lange dauern ... ")
pc.remove_item(30025, 1)
pc.remove_item(30056, 1)
pc.remove_item(30057, 1)
pc.remove_item(30058, 1)
pc.remove_item(30059, 1)
pc.remove_item(30326, 1)
if math.random(1,2000) <= 1000 then
say("Ha, geschafft! Hier hast du den[ENTER]Arachnidenschl?sel. Er ?fnet dir den Zugang zum[ENTER]Versteck der Spinnenbaroness. Ich w?sche dir und[ENTER]deinen Kameraden viel Erfolg f? den Kampf gegen[ENTER]diese langbeinige Bestie! Doch ihr m?st euch[ENTER]beeilen - der Schl?sel ist sehr instabil. Nach[ENTER]24 Stunden zerf?lt er in seine Bestandteile. ")
pc.give_item2(30324, 1)
else
say("Oh oh! Ich f?chte, es ist noch kein Meister[ENTER]vom Himmel gefallen. Du musst wissen, das[ENTER]Verfahren zum Schmieden dieses Schl?sels ist[ENTER]??rst kompliziert. Schon ein winziger Fehler[ENTER]f?rt zum Scheitern. Leider habe ich damit auch[ENTER]alle Spinnensubstanzen, die du m?evoll[ENTER]gesammelt hast, vergeudet. Beim n?hsten[ENTER]Versuch funktioniert es bestimmt! ")
end
else
say_title(mob_name(20011))
say("Es fehlt noch etwas, so kann ich den[ENTER]Arachnidenschl?sel nicht herstellen. Hier[ENTER]noch einmal zur Erinnerung, was wir alles[ENTER]brauchen: einen Spinnen-Giftsack, einen[ENTER]Spinnen-Eiersack, ein Spinnennetz, Spinnenaugen,[ENTER]Spinnenbeine sowie das Gift der K?iginnenspinne. ")
end
end
when 30130.chat."Zugang zur Bruth?le " begin
if game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
local starttime = game.get_event_flag("spider_lair_start_time_"..get_channel_id())
local current_time = get_global_time()
if party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if starttime + lair_enter_wait_time >= current_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) and game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
say("Dein Gruppenanf?rer hat den Dungeon betreten.[ENTER]M?htest du ihm folgen? ") -- 테스트용
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
pc.setqf("firstIn",1)
pc.setqf("retry_limit_time", starttime + lair_time + access_limit_time )
set_state(inLair)
pc.warp(88100,614800)
return
end
else
say("Du hast zu lange gebraucht. Der Schl?sel ist[ENTER]bereits zerfallen. Lass einen neuen anfertigen,[ENTER]um hier Zutritt zu erhalten. ") -- 테스트용
return
end
else
local remain_time = (game.get_event_flag("spider_lair_end_time_"..get_channel_id() ) - get_global_time()) / 60
if remain_time < 0 then
say("Das hat nicht geklappt. Versuch es bitte noch[ENTER]einmal! ")
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(),0)
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
game.set_event_flag("spider_dead"..get_channel_id(),0)
return
end
say("In der Bruth?le der Baroness befindet sich[ENTER]bereits eine Gruppe und greift die[ENTER]Spinnenbaroness an. ")
--- here we should change to string.format %s key
say(string.format("Du kannst erst eintreten, wenn die vorherige[ENTER]Gruppe ihre Aufgabe beendet hat. Kehre in %s[ENTER]Minuten zur?k. ", math.ceil(remain_time)))
return
end
elseif pc.getqf("retry_limit_time") > get_global_time() then
local access_limit = (pc.getqf("retry_limit_time") - get_global_time()) / 60
say("Wartezeit, bis sich das Tor zur Bruth?le der[ENTER]Baroness erneut ?fnen l?st: ")
-- here we should also change to string.format %s key
say(string.format("%s Minuten ", math.ceil(access_limit)))
return
elseif party.is_leader() then
if false == pc.can_warp() then
say("Der K?pfer, der die H?le vor dir betreten hat,[ENTER]kann sich erst nach zehn Sekunden wieder bewegen.[ENTER]Bitte warte einen Moment. ")
return
end
if pc.count_item(30324) > 0 then
say("M?htest du eine Eroberung starten? Du hast daf?[ENTER]20 Minuten. Vor Ablauf dieser Zeit kann niemand[ENTER]die Bruth?le der Baroness verlassen.[ENTER]Eine erneute Eroberung kann nach einer Stunde[ENTER]durchgef?rt werden. ")
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
set_state(inLair)
pc.remove_item(30324, 1)
mob.spawn(2094,369,551,0,0)
--값 설정.
game.set_event_flag("spider_lair_ongoing_"..get_channel_id() , 1)
game.set_event_flag("spider_lair_start_time_"..get_channel_id() , get_global_time())
game.set_event_flag("spider_lair_end_time_"..get_channel_id() , get_global_time() + lair_time)
game.set_event_flag("spider_lair_leader_"..get_channel_id() , party.get_leader_pid())
pc.setqf("retry_limit_time", get_global_time() + lair_time + access_limit_time )
pc.setqf("firstIn",1)
server_timer("spider_end_timer", lair_time )
pc.warp(88100,614800)
end
return
else
say("Um den Zugang zu ?fnen, ben?igst du den[ENTER]Arachnidenschl?sel. ")
return
end
else --리더 아니다.
say("Nur der Anf?rer einer Gruppe kann den[ENTER]Arachnidenschl?sel verwenden. ")
return
end
end
end
state inLair begin
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when login begin
-- 정상적으로 보스룸에 입장.
--if pc.getqf("firstIn") == 1 and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if get_global_time() < pc.getqf("retry_limit_time") - access_limit_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
pc.setqf("firstIn",0)
elseif pc.getx() >= 827 and pc.getx() <= 937 and pc.gety() >= 6127 and pc.gety() <= 6257 then
pc.warp(95900,571000)
pc.remove_item(30327, 1)
else -- 위에서 팅겨낸 유저가 밖에서 로그인 하게 되면, 접근 제한 시간을 셋팅해줌.
pc.remove_item(30327, 1)
set_state( boss_ok )
local limit = pc.getqf("retry_limit_time")
if limit > ( get_global_time() + access_limit_time ) then
limit = ( get_global_time() + access_limit_time )
end
pc.setqf("retry_limit_time", limit )
local duration = limit - get_global_time()
end
end
when 30130.chat."Zugang zur Bruth?le " begin
if game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
local starttime = game.get_event_flag("spider_lair_start_time_"..get_channel_id())
local current_time = get_global_time()
if party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if starttime + lair_enter_wait_time >= current_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) and game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
say("Dein Gruppenanf?rer hat den Dungeon betreten.[ENTER]M?htest du ihm folgen? ") -- 테스트용
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
pc.warp(88100,614800)
return
end
end
end
end
end
when 2092.kill begin --대왕거미 죽임
server_timer("spider_dead_timer", king_kill_wait_time)
game.set_event_flag("spider_dead"..get_channel_id(), 1)
notice_multiline("Die Spinnenbaroness wurde vernichtet! In drei[ENTER]Minuten werden alle K?pfer aus der H?le[ENTER]teleportiert. ",notice_in_map)
end
when 2095.kill begin --거미알 죽임
local kingVid = game.get_event_flag("king_vid")
local remain_egg = game.get_event_flag("remain_egg"..get_channel_id())
notice_multiline("Vorsicht: Die Spinnenbaroness wird w?end! Ihr[ENTER]Angriff wird st?ker, jedoch wird ihre[ENTER]Verteidigung dadurch geschw?ht. ",notice_in_map)
if remain_egg > 0 then
remain_egg = remain_egg - 1
game.set_event_flag("remain_egg"..get_channel_id(), remain_egg)
end
--거미의 공격력 보정
npc.set_vid_attack_mul(kingVid, 10/(remain_egg + 1))
--거미가 받는 피해량 보정
npc.set_vid_damage_mul(kingVid, 10/(remain_egg + 1))
end
-- 2012.4.5 이상현 리젠위치 수정
when 30327.use with pc.getx() >= 827 and pc.get_map_index() == 193 and pc.getx() <= 937 and pc.gety() >= 6127 and pc.gety() <= 6257 begin
pc.remove_item(30327, 1)
i = mob.spawn(2095,400,566,0,0)
mob.spawn(2095,400,594,0,0)
mob.spawn(2095,362,600,0,0)
mob.spawn(2095,337,599,0,0)
mob.spawn(2095,335,581,0,0)
mob.spawn(2095,344,562,0,0)
mob.spawn(2095,364,588,0,0)
mob.spawn(2095,379,562,0,0)
mob.spawn(2095,368,525,0,0)
local kingVid = mob.spawn(2092,367,588,0,0)
game.set_event_flag("king_vid",kingVid)
--game.set_event_flag("remain_egg",9)
game.set_event_flag("remain_egg"..get_channel_id(), 9)
end
end
end
----------------------------------
-- °Å¹Ì±¼ 3Ãþ°ú º¸½º·ë °ü·Ã ÀüºÎ
-- 2012.2.3 ±è¿ë¿í
----------------------------------
define lair_time 1200
define lair_enter_wait_time 300
define king_kill_wait_time 180
define access_limit_time 3600
quest spider_dungeon_3floor_boss begin
state start begin
when 30130.chat."Zugang zur Bruthöhle " begin
if game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
local starttime = game.get_event_flag("spider_lair_start_time_"..get_channel_id())
local current_time = get_global_time()
if party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if starttime + lair_enter_wait_time >= current_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) and game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
say("Dein Gruppenanführer hat den Dungeon betreten.[ENTER]Möchtest du ihm folgen? ") -- Å×½ºÆ®¿ë
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
pc.setqf("firstIn",1)
pc.setqf("retry_limit_time", starttime + lair_time + access_limit_time )
pc.warp(88100,614800)
return
end
else
say("Du hast zu lange gebraucht. Der Schlüssel ist[ENTER]bereits zerfallen. Lass einen neuen anfertigen,[ENTER]um hier Zutritt zu erhalten. ") -- Å×½ºÆ®¿ë
return
end
else
local remain_time = (game.get_event_flag("spider_lair_end_time_"..get_channel_id() ) - get_global_time()) / 60
if remain_time < 0 then
say("Das hat nicht geklappt. Versuch es bitte noch[ENTER]einmal! ")
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(),0)
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
game.set_event_flag("spider_dead"..get_channel_id(),0)
return
end
say("In der Bruthöhle der Baroness befindet sich[ENTER]bereits eine Gruppe und greift die[ENTER]Spinnenbaroness an. ")
--- here we should change to string.format %s key
say(string.format("Du kannst erst eintreten, wenn die vorherige[ENTER]Gruppe ihre Aufgabe beendet hat. Kehre in %s[ENTER]Minuten zurück. ", math.ceil(remain_time)))
return
end
elseif pc.getqf("retry_limit_time") > get_global_time() then
local access_limit = (pc.getqf("retry_limit_time") - get_global_time()) / 60
say("Wartezeit, bis sich das Tor zur Bruthöhle der[ENTER]Baroness erneut öffnen lässt: ")
-- here we should also change to string.format %s key
say(string.format("%s Minuten ", math.ceil(access_limit)))
return
elseif party.is_leader() then
if false == pc.can_warp() then
say("Der Kämpfer, der die Höhle vor dir betreten hat,[ENTER]kann sich erst nach zehn Sekunden wieder bewegen.[ENTER]Bitte warte einen Moment. ")
return
end
if party.is_leader() then
say("Möchtest du eine Eroberung starten? Du hast dafür[ENTER]20 Minuten. Vor Ablauf dieser Zeit kann niemand[ENTER]die Bruthöhle der Baroness verlassen.[ENTER]Eine erneute Eroberung kann nach einer Stunde[ENTER]durchgeführt werden. ")
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
mob.spawn(2094,369,551,0,0)
--°ª ¼³Á¤.
game.set_event_flag("spider_lair_ongoing_"..get_channel_id() , 1)
game.set_event_flag("spider_lair_start_time_"..get_channel_id() , get_global_time())
game.set_event_flag("spider_lair_end_time_"..get_channel_id() , get_global_time() + lair_time)
game.set_event_flag("spider_lair_leader_"..get_channel_id() , party.get_leader_pid())
pc.setqf("retry_limit_time", get_global_time() + lair_time + access_limit_time )
pc.setqf("firstIn",1)
server_timer("spider_end_timer", lair_time )
pc.warp(88100,614800)
end
end
end
end
when login begin
-- Á¤»óÀûÀ¸·Î º¸½º·ë¿¡ ÀÔÀå.
--if pc.getqf("firstIn") == 1 and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if get_global_time() < pc.getqf("retry_limit_time") - access_limit_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
pc.setqf("firstIn",0)
elseif pc.getx() >= 827 and pc.getx() <= 937 and pc.gety() >= 6127 and pc.gety() <= 6257 then
pc.warp(95900,571000)
else -- À§¿¡¼* ÆÃ°Ü³½ À¯Àú°¡ ¹Û¿¡¼* ·Î±×ÀÎ ÇÏ°Ô µÇ¸é, Á¢±Ù Á¦ÇÑ ½Ã°£À» ¼ÂÆÃÇØÁÜ.
local limit = pc.getqf("retry_limit_time")
if limit > ( get_global_time() + access_limit_time ) then
limit = ( get_global_time() + access_limit_time )
end
pc.setqf("retry_limit_time", limit )
local duration = limit - get_global_time()
end
end
when 30130.chat."Zugang zur Bruthöhle " begin
if game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
local starttime = game.get_event_flag("spider_lair_start_time_"..get_channel_id())
local current_time = get_global_time()
if party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if starttime + lair_enter_wait_time >= current_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) and game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
say("Dein Gruppenanführer hat den Dungeon betreten.[ENTER]Möchtest du ihm folgen? ") -- Å×½ºÆ®¿ë
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
pc.warp(88100,614800)
return
end
end
end
end
end
when 2092.kill begin --´ë¿Õ°Å¹Ì Á×ÀÓ
server_timer("spider_dead_timer", king_kill_wait_time)
game.set_event_flag("spider_dead"..get_channel_id(), 1)
notice_multiline("Die Spinnenbaroness wurde vernichtet! In drei[ENTER]Minuten werden alle Kämpfer aus der Höhle[ENTER]teleportiert. ",notice_in_map)
end
when 2095.kill begin --°Å¹Ì¾Ë Á×ÀÓ
local kingVid = game.get_event_flag("king_vid")
local remain_egg = game.get_event_flag("remain_egg"..get_channel_id())
notice_multiline("Vorsicht: Die Spinnenbaroness wird wütend! Ihr[ENTER]Angriff wird stärker, jedoch wird ihre[ENTER]Verteidigung dadurch geschwächt. ",notice_in_map)
if remain_egg > 0 then
remain_egg = remain_egg - 1
game.set_event_flag("remain_egg"..get_channel_id(), remain_egg)
end
--°Å¹ÌÀÇ °ø°Ý·Â º¸Á¤
npc.set_vid_attack_mul(kingVid, 10/(remain_egg + 1))
--°Å¹Ì°¡ ¹Þ´Â ÇÇÇØ·® º¸Á¤
npc.set_vid_damage_mul(kingVid, 10/(remain_egg + 1))
end
end
end
quest aom_pvp_vmp begin
state start begin
when 20011.chat."Quero inscrever-me no torneio" begin
local player_id = pc.get_player_id()
local player_job = pc.get_job
say_title("Uriel:")
if pc.getf("painel_gm", "pvp_reg") == 0 then
say("Registos fechados!")
return
elseif pc.getf("painel_gm", "pvp_aberto") == 0 then
say("Evento PvP fechado!")
return
elseif pc.getf("painel_gm", "pvp_aberto") == 1 and if pc.getf("painel_gm", "pvp_reg") == 1 then
say("")
say("Olá!")
say("Queres inscrever-te no Evento PvP?")
if pc.getf("inscrito_pvp") == 1 then
say("Já estás inscrito!")
return
else
local opzioni =select ("Sim","Não")
if opzioni == 1 then
mysql_query("INSERT INTO aom_db.aom_pvp_event (player_id, player_job) VALUES ('".. player_id .."', '".. player_job .."')")
pc.give_item(10)
say("Foste inscrito para o torneio!")
pc.setf("inscrito_pvp", 1)
elseif opzioni == 2 then
return
end
end
end
end
end
end
should work like thisQuote:
Any fix for this quest?
[Only registered and activated users can see links. Click Here To Register...]Code:quest aom_pvp_vmp begin state start begin when 20011.chat."Quero inscrever-me no torneio" begin local player_id = pc.get_player_id() local player_job = pc.get_job say_title("Uriel:") if pc.getf("painel_gm", "pvp_reg") == 0 then say("Registos fechados!") return elseif pc.getf("painel_gm", "pvp_aberto") == 0 then say("Evento PvP fechado!") return elseif pc.getf("painel_gm", "pvp_aberto") == 1 and if pc.getf("painel_gm", "pvp_reg") == 1 then say("") say("Olá!") say("Queres inscrever-te no Evento PvP?") if pc.getf("inscrito_pvp") == 1 then say("Já estás inscrito!") return else local opzioni =select ("Sim","Não") if opzioni == 1 then mysql_query("INSERT INTO aom_db.aom_pvp_event (player_id, player_job) VALUES ('".. player_id .."', '".. player_job .."')") pc.give_item(10) say("Foste inscrito para o torneio!") pc.setf("inscrito_pvp", 1) elseif opzioni == 2 then return end end end end end end
quest aom_pvp_vmp begin
state start begin
when 20011.chat."Quero inscrever-me no torneio" begin
local player_id = pc.get_player_id()
local player_job = pc.get_job
say_title("Uriel:")
if pc.getf("painel_gm", "pvp_reg") == 0 then
say("Registos fechados!")
return
elseif pc.getf("painel_gm", "pvp_aberto") == 0 then
say("Evento PvP fechado!")
return
elseif pc.getf("painel_gm", "pvp_aberto") == 1 and pc.getf("painel_gm", "pvp_reg") == 1 then
say("")
say("Olá!")
say("Queres inscrever-te no Evento PvP?")
if pc.getf("inscrito_pvp") == 1 then
say("Já estás inscrito!")
return
else
local opzioni =select ("Sim","Não")
if opzioni == 1 then
mysql_query("INSERT INTO aom_db.aom_pvp_event (player_id, player_job) VALUES ('".. player_id .."', '".. player_job .."')")
pc.give_item(10)
say("Foste inscrito para o torneio!")
pc.setf("inscrito_pvp", 1)
elseif opzioni == 2 then
return
end
end
end
end
end
end
quest test begin
state start begin
when 20355.chat."STONEWHEEL" with pc.is_gm() begin
cmdchat("STONEWHEEL")
return
end
end
end
Hab das auch immer, wenn ich kein say oder sonstiges reinmache. Probiers mal.Quote:
Hallo Leuts ^-^
Ich versuche das Stonewheel Dings von Kilroy. per Quest
zu öffnen.
Undzwar so
Jedoch bleibt es so stehenCode:quest test begin state start begin when 20355.chat."STONEWHEEL" with pc.is_gm() begin cmdchat("STONEWHEEL") return end end end
[Only registered and activated users can see links. Click Here To Register...]
Kann mir jemand helfen? :D
quest test begin
state start begin
when 20355.chat."STONEWHEEL" with pc.is_gm() begin
cmdchat("STONEWHEEL")
say("Stonewheel aktiv")
return
end
end
end
Das ist nicht einzige Problem, was er hat, wenn er STONEWHEEL sendet wird trotzdem nichts passieren. Des Weiteren kann man in der Quest einfach setskin(NOWINDOW) machen.Quote:
Hab das auch immer, wenn ich kein say oder sonstiges reinmache. Probiers mal.
Code:quest test begin state start begin when 20355.chat."STONEWHEEL" with pc.is_gm() begin cmdchat("STONEWHEEL") say("Stonewheel aktiv") return end end end
quest test begin
state start begin
when 20355.chat."Stonewheel oeffnen" with pc.is_gm() begin
cmdchat("StonewheelOpen")
setskin(NOWINDOW)
end
end
end
def __ServerCommand_Build(self)
"StonewheelOpen" : self.__StonewheelOpen,
def __StonewheelOpen(self): self.StoneWheel.Open()
:(Quote:
Suche Hilfe bei der Originalen Baroness Quest. Und zwar will ich, dass die lästigen Vorquests entfernt werden. Man soll den Raum einfach ohne Schlüssel und ohne Vorquests betreten können.
Hier die Quest (sehr komplex)
PHP Code:----------------------------------
-- 거미굴 3층과 보스룸 관련 전부
-- 2012.2.3 김용욱
----------------------------------
define lair_time 1200
define lair_enter_wait_time 300
define king_kill_wait_time 180
define access_limit_time 3600
quest spider_dungeon_3floor_boss begin
state start begin
--2, 던전 끝 시간.
when spider_end_timer.server_timer with game.get_event_flag("spider_dead"..get_channel_id()) == 0 begin --
warp_all_in_area_to_area(82700, 612700, 93700,625700, 69100, 614800, 69100, 614800)
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(),0)
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
game.set_event_flag("spider_dead"..get_channel_id(),0)
purge_area(82700, 612700, 93700,625700)
end
when spider_dead_timer.server_timer begin
warp_all_in_area_to_area(82700, 612700, 93700,625700, 69100, 614800, 69100, 614800)
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(), 0)
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
game.set_event_flag("spider_dead"..get_channel_id(),0)
purge_area(82700, 612700, 93700,625700)
end
when login or levelup or enter with pc.get_level() >= 50 begin
set_state( step1 )
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
end
state step1 begin
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
when 20355.chat."Spinnendungeon 3 " begin --경비대장에게 말을 걸어 퀘스트를 시작한다.
say_title(mob_name(20355))
----"12345678901234567890123456789012345678901234567890"|
say("Ah, da bist du ja! Ein Sp?trupp hat im[ENTER]Spinnendungeon eine dritte Ebene entdeckt. In[ENTER]dieser bisher verborgenen H?le sollen sich[ENTER]einige ??rst monstr?e und heimt?kische[ENTER]Spinnen eingenistet haben. Au?rdem fanden meine[ENTER]M?ner einen alten Grabstein mit einer[ENTER]eingravierten Inschrift, doch sie konnten diese[ENTER]nicht entziffern. Begib dich auf die Suche nach[ENTER]diesem Stein und bringe mir eine Kopie der[ENTER]Inschrift. Hier, dieser Passierschein verschafft[ENTER]dir ungehinderten Zutritt zum Spinnendungeon. ")
set_state( step2 )
pc.give_item2(76019)
end
end
state step2 begin --비석에 탁본을 뜨러 가야한다.
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
-----------퀘스트편지2------------
when letter begin
send_letter("Die Inschrift ")
local v = find_npc_by_vnum(30130)
if 0 != v then
target.vid("__TARGET__", v, mob_name(30130))
end
end
when button or info begin
say_title("Die Inschrift ")
say("Auf der dritten Ebene des Spinnendungeons findest[ENTER]du einen alten Grabstein mit einer eingravierten[ENTER]Inschrift. Fertige eine Kopie davon an und bringe[ENTER]sie dem Hauptmann. ")
say("")
end
when 30130.chat."Die Inschrift " begin
target.delete("__TARGET__")
say_title(pc.getname())
----"12345678901234567890123456789012345678901234567890"|
say("Perfekt, du hast den alten Grabstein gefunden und[ENTER]eine Kopie der Inschrift angefertigt! Geh zur?k[ENTER]zum Hauptmann und zeige sie ihm. ")
set_state(step3)
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
when 20355.chat."Spinnendungeon 3 " begin
say_title(mob_name(20355))
----"12345678901234567890123456789012345678901234567890"|
say("Du willst mir doch nicht erz?len, dass du dich[ENTER]nicht in den Spinnendungeon getraut hast? Du bist[ENTER]ein erfahrener K?pfer mit einer ausgefeilten[ENTER]Technik - so ein paar Krabbeltierchen sollten f?[ENTER]dich kein gro?s Problem darstellen. Aber dir ist[ENTER]bekannt, dass du den Passierschein ben?igst, um[ENTER]die H?le zu betreten? ")
end
end
state step3 begin --탁본을 떴으니 경비에게 돌아간다.
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
when letter begin
send_letter("Neue Gefahr ")
--경비대장을 가리킨다.
local v = find_npc_by_vnum(20355)
if 0 != v then
target.vid("__TARGET__", v, mob_name(20355))
end
end
when button or info begin
say_title("Neue Gefahr ")
say("Du hast eine genaue Kopie der Inschrift[ENTER]angefertigt. Zeige sie nun dem Hauptmann. ")
say("")
end
--을두지를 선택하면 해당 퀘스트에 관련된 대화를 나눌 수 있다.
when 20355.chat."Neue Gefahr " begin
say_title(mob_name(20355))
say("Sehr gut, du hast es geschafft! Zeig mal her ...[ENTER]Hm, diese Schriftzeichen sind mir fremd, ich kann[ENTER]kein Wort verstehen. Du solltest vielleicht den[ENTER]Gelehrten Uriel um Rat fragen. ")
set_state(step4)
end
end
state step4 begin --을두지에게 탁본을 맡기자.
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
-----------퀘스트편지2------------
when letter begin
send_letter("Neue Gefahr ")
-- 을두지를 가리킨다.
local v = find_npc_by_vnum(20011)
if 0 != v then
target.vid("__TARGET__", v, mob_name(20011))
end
end
when button or info begin
say_title("Neue Gefahr ")
say("Gehe zum Gelehrten Uriel und zeige ihm die[ENTER]Inschrift. Er wird sie sicherlich ?ersetzen[ENTER]k?nen. ")
say("")
end
when 20011.chat."Neue Gefahr " begin
target.delete("__TARGET__")
say_title(mob_name(20011))
say("Der Hauptmann bittet mich, diese geheimnisvolle[ENTER]Inschrift zu entziffern? Selbstverst?dlich. Ich[ENTER]liebe geistige Herausforderungen. Zeig her.[ENTER]Das ist ... Also das ist ja ungeheuerlich. Hier,[ENTER]ich schreibe dir die ?ersetzung auf dieses[ENTER]Papier. Bringe es so schnell wie m?lich zum[ENTER]Hauptmann und kehre anschlie?nd zu mir zur?k.[ENTER]Wenn das stimmt, was hier steht, dann befinden[ENTER]wir alle uns in gro?r Gefahr! Los, los! ")
say("")
set_state(step5)
end
when 20355.chat."Neue Gefahr " begin
say_title(mob_name(20355))
say("Sehr gut, du hast es geschafft! Zeig mal her ...[ENTER]Hm, diese Schriftzeichen sind mir fremd, ich kann[ENTER]kein Wort verstehen. Du solltest vielleicht den[ENTER]Gelehrten Uriel um Rat fragen. ")
end
end
state step5 begin --경비한테 편지 배달
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
when letter begin
send_letter("Neue Gefahr ")
-- 을두지를 가리킨다.
local v = find_npc_by_vnum(20355)
if 0 != v then
target.vid("__TARGET__", v, mob_name(20355))
end
end
when button or info begin
say_title("?erbringe Uriels Brief ")
say("Dieser starrk?fige alte Mann ... W?e ein[ENTER]kleines Dankesch? zu viel verlangt? Aber gut. Er[ENTER]sagte, die Informationen seien ??rst wichtig,[ENTER]also werde ich sie rasch dem Hauptmann[ENTER]?ermitteln. ")
say("")
end
when 20355.chat."Uriels Brief " begin
target.delete("__TARGET__")
say_title(mob_name(20355))
----"12345678901234567890123456789012345678901234567890"|
say("Oh je! In der dritten Ebene des Spinnendungeons[ENTER]hat sich ein gewaltiger Arachniden-D?on[ENTER]eingenistet - die Spinnenbaroness. Der Inschrift[ENTER]zufolge braucht man einen speziellen Schl?sel,[ENTER]um in diese verborgene H?le zu gelangen.[ENTER]Gehe zun?hst zu Uriel und frage ihn nach diesem[ENTER]Schl?sel. Stelle dir anschlie?nd einen Trupp[ENTER]aus f?igen K?pfern zusammen und st?mt[ENTER]gemeinsam das Versteck der Spinnenbaroness! Hier,[ENTER]ich habe einen weiteren Passierschein f? dich. ")
say("")
set_state(step6) pc.give_item2(76019)
end
when 20011.chat."Neue Gefahr " begin
say_title(mob_name(20011))
say("Du warst noch nicht beim Hauptmann? Bitte, du[ENTER]musst dich beeilen. Wir haben keine Zeit zu[ENTER]verlieren. Er muss diesen Brief unbedingt lesen! ")
say("")
end
end
state step6 begin --경비는 나만 일시킨다. 을두지와 상의하자.
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 30130.chat."Zugang zur Bruth?le " begin
say("Dieses Tor l?st sich nur mit dem[ENTER]Arachnidenschl?sel ?fnen. ")
end
when letter begin
send_letter("Uriels Brief ")
-- 을두지를 가리킨다.
local v = find_npc_by_vnum(20011)
if 0 != v then
target.vid("__TARGET__", v, mob_name(20011))
end
end
when button or info begin
say_title("Uriels Brief ")
say("Oh je! In der dritten Ebene des Spinnendungeons[ENTER]hat sich ein gewaltiger Arachniden-D?on[ENTER]eingenistet - die Spinnenbaroness. Der Inschrift[ENTER]zufolge braucht man einen speziellen Schl?sel,[ENTER]um in diese verborgene H?le zu gelangen.[ENTER]Gehe zun?hst zu Uriel und frage ihn nach diesem[ENTER]Schl?sel. Stelle dir anschlie?nd einen Trupp[ENTER]aus f?igen K?pfern zusammen und st?mt[ENTER]gemeinsam das Versteck der Spinnenbaroness! Hier,[ENTER]ich habe einen weiteren Passierschein f? dich. ")
say("")
end
--을두지를 선택하면 해당 퀘스트에 관련된 대화를 나눌 수 있다.
when 20011.chat."Uriels Brief " begin
target.delete("__TARGET__")
say_title(mob_name(20011))
say("Ah, du bist zur?k. Dann hat der Hauptmann dir[ENTER]also den Befehl erteilt, die Spinnenbaroness zu[ENTER]vernichten? Doch der Zugang zur Bruth?le der[ENTER]Baroness ist verschlossen und l?st sich[ENTER]nur mit dem Arachnidenschl?sel ?fnen. Seine[ENTER]Herstellung ist sehr aufwendig. Aber wenn du mir[ENTER]einen Spinnen-Giftsack, einen Spinnen-Eiersack,[ENTER]ein Spinnennetz, Spinnenaugen, Spinnenbeine sowie[ENTER]das Gift der K?iginnenspinne bringst, werde ich[ENTER]einen f? dich anfertigen. ")
set_state(boss_ok)
end
end
state boss_ok begin -- 열쇠를 만들수 있게 된 최종상태. 이제부터 거미굴 보스룸에 입장할 수 있다.
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when 20011.chat."Der Arachnidenschl?sel " begin
if pc.count_item(30025) > 0 and pc.count_item(30056) > 0 and pc.count_item(30057) > 0 and pc.count_item(30058) > 0 and pc.count_item(30059) > 0 and pc.count_item(30326) > 0 then
say_title(mob_name(20011))
say("Gro?rtig! Du hast alle ben?igten Elemente f?[ENTER]den Arachnidenschl?sel gefunden. Warte einen[ENTER]Moment. Seine Herstellung sollte nicht allzu[ENTER]lange dauern ... ")
pc.remove_item(30025, 1)
pc.remove_item(30056, 1)
pc.remove_item(30057, 1)
pc.remove_item(30058, 1)
pc.remove_item(30059, 1)
pc.remove_item(30326, 1)
if math.random(1,2000) <= 1000 then
say("Ha, geschafft! Hier hast du den[ENTER]Arachnidenschl?sel. Er ?fnet dir den Zugang zum[ENTER]Versteck der Spinnenbaroness. Ich w?sche dir und[ENTER]deinen Kameraden viel Erfolg f? den Kampf gegen[ENTER]diese langbeinige Bestie! Doch ihr m?st euch[ENTER]beeilen - der Schl?sel ist sehr instabil. Nach[ENTER]24 Stunden zerf?lt er in seine Bestandteile. ")
pc.give_item2(30324, 1)
else
say("Oh oh! Ich f?chte, es ist noch kein Meister[ENTER]vom Himmel gefallen. Du musst wissen, das[ENTER]Verfahren zum Schmieden dieses Schl?sels ist[ENTER]??rst kompliziert. Schon ein winziger Fehler[ENTER]f?rt zum Scheitern. Leider habe ich damit auch[ENTER]alle Spinnensubstanzen, die du m?evoll[ENTER]gesammelt hast, vergeudet. Beim n?hsten[ENTER]Versuch funktioniert es bestimmt! ")
end
else
say_title(mob_name(20011))
say("Es fehlt noch etwas, so kann ich den[ENTER]Arachnidenschl?sel nicht herstellen. Hier[ENTER]noch einmal zur Erinnerung, was wir alles[ENTER]brauchen: einen Spinnen-Giftsack, einen[ENTER]Spinnen-Eiersack, ein Spinnennetz, Spinnenaugen,[ENTER]Spinnenbeine sowie das Gift der K?iginnenspinne. ")
end
end
when 30130.chat."Zugang zur Bruth?le " begin
if game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
local starttime = game.get_event_flag("spider_lair_start_time_"..get_channel_id())
local current_time = get_global_time()
if party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if starttime + lair_enter_wait_time >= current_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) and game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
say("Dein Gruppenanf?rer hat den Dungeon betreten.[ENTER]M?htest du ihm folgen? ") -- 테스트용
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
pc.setqf("firstIn",1)
pc.setqf("retry_limit_time", starttime + lair_time + access_limit_time )
set_state(inLair)
pc.warp(88100,614800)
return
end
else
say("Du hast zu lange gebraucht. Der Schl?sel ist[ENTER]bereits zerfallen. Lass einen neuen anfertigen,[ENTER]um hier Zutritt zu erhalten. ") -- 테스트용
return
end
else
local remain_time = (game.get_event_flag("spider_lair_end_time_"..get_channel_id() ) - get_global_time()) / 60
if remain_time < 0 then
say("Das hat nicht geklappt. Versuch es bitte noch[ENTER]einmal! ")
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(),0)
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
game.set_event_flag("spider_dead"..get_channel_id(),0)
return
end
say("In der Bruth?le der Baroness befindet sich[ENTER]bereits eine Gruppe und greift die[ENTER]Spinnenbaroness an. ")
--- here we should change to string.format %s key
say(string.format("Du kannst erst eintreten, wenn die vorherige[ENTER]Gruppe ihre Aufgabe beendet hat. Kehre in %s[ENTER]Minuten zur?k. ", math.ceil(remain_time)))
return
end
elseif pc.getqf("retry_limit_time") > get_global_time() then
local access_limit = (pc.getqf("retry_limit_time") - get_global_time()) / 60
say("Wartezeit, bis sich das Tor zur Bruth?le der[ENTER]Baroness erneut ?fnen l?st: ")
-- here we should also change to string.format %s key
say(string.format("%s Minuten ", math.ceil(access_limit)))
return
elseif party.is_leader() then
if false == pc.can_warp() then
say("Der K?pfer, der die H?le vor dir betreten hat,[ENTER]kann sich erst nach zehn Sekunden wieder bewegen.[ENTER]Bitte warte einen Moment. ")
return
end
if pc.count_item(30324) > 0 then
say("M?htest du eine Eroberung starten? Du hast daf?[ENTER]20 Minuten. Vor Ablauf dieser Zeit kann niemand[ENTER]die Bruth?le der Baroness verlassen.[ENTER]Eine erneute Eroberung kann nach einer Stunde[ENTER]durchgef?rt werden. ")
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
set_state(inLair)
pc.remove_item(30324, 1)
mob.spawn(2094,369,551,0,0)
--값 설정.
game.set_event_flag("spider_lair_ongoing_"..get_channel_id() , 1)
game.set_event_flag("spider_lair_start_time_"..get_channel_id() , get_global_time())
game.set_event_flag("spider_lair_end_time_"..get_channel_id() , get_global_time() + lair_time)
game.set_event_flag("spider_lair_leader_"..get_channel_id() , party.get_leader_pid())
pc.setqf("retry_limit_time", get_global_time() + lair_time + access_limit_time )
pc.setqf("firstIn",1)
server_timer("spider_end_timer", lair_time )
pc.warp(88100,614800)
end
return
else
say("Um den Zugang zu ?fnen, ben?igst du den[ENTER]Arachnidenschl?sel. ")
return
end
else --리더 아니다.
say("Nur der Anf?rer einer Gruppe kann den[ENTER]Arachnidenschl?sel verwenden. ")
return
end
end
end
state inLair begin
when 20011.chat."SD3 Quest zur?ksetzen " with is_test_server() begin --테스트용
set_state(start)
say("Vor Herstellung des Schl?sels ")
end
when login begin
-- 정상적으로 보스룸에 입장.
--if pc.getqf("firstIn") == 1 and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if get_global_time() < pc.getqf("retry_limit_time") - access_limit_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
pc.setqf("firstIn",0)
elseif pc.getx() >= 827 and pc.getx() <= 937 and pc.gety() >= 6127 and pc.gety() <= 6257 then
pc.warp(95900,571000)
pc.remove_item(30327, 1)
else -- 위에서 팅겨낸 유저가 밖에서 로그인 하게 되면, 접근 제한 시간을 셋팅해줌.
pc.remove_item(30327, 1)
set_state( boss_ok )
local limit = pc.getqf("retry_limit_time")
if limit > ( get_global_time() + access_limit_time ) then
limit = ( get_global_time() + access_limit_time )
end
pc.setqf("retry_limit_time", limit )
local duration = limit - get_global_time()
end
end
when 30130.chat."Zugang zur Bruth?le " begin
if game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
local starttime = game.get_event_flag("spider_lair_start_time_"..get_channel_id())
local current_time = get_global_time()
if party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if starttime + lair_enter_wait_time >= current_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) and game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
say("Dein Gruppenanf?rer hat den Dungeon betreten.[ENTER]M?htest du ihm folgen? ") -- 테스트용
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
pc.warp(88100,614800)
return
end
end
end
end
end
when 2092.kill begin --대왕거미 죽임
server_timer("spider_dead_timer", king_kill_wait_time)
game.set_event_flag("spider_dead"..get_channel_id(), 1)
notice_multiline("Die Spinnenbaroness wurde vernichtet! In drei[ENTER]Minuten werden alle K?pfer aus der H?le[ENTER]teleportiert. ",notice_in_map)
end
when 2095.kill begin --거미알 죽임
local kingVid = game.get_event_flag("king_vid")
local remain_egg = game.get_event_flag("remain_egg"..get_channel_id())
notice_multiline("Vorsicht: Die Spinnenbaroness wird w?end! Ihr[ENTER]Angriff wird st?ker, jedoch wird ihre[ENTER]Verteidigung dadurch geschw?ht. ",notice_in_map)
if remain_egg > 0 then
remain_egg = remain_egg - 1
game.set_event_flag("remain_egg"..get_channel_id(), remain_egg)
end
--거미의 공격력 보정
npc.set_vid_attack_mul(kingVid, 10/(remain_egg + 1))
--거미가 받는 피해량 보정
npc.set_vid_damage_mul(kingVid, 10/(remain_egg + 1))
end
-- 2012.4.5 이상현 리젠위치 수정
when 30327.use with pc.getx() >= 827 and pc.get_map_index() == 193 and pc.getx() <= 937 and pc.gety() >= 6127 and pc.gety() <= 6257 begin
pc.remove_item(30327, 1)
i = mob.spawn(2095,400,566,0,0)
mob.spawn(2095,400,594,0,0)
mob.spawn(2095,362,600,0,0)
mob.spawn(2095,337,599,0,0)
mob.spawn(2095,335,581,0,0)
mob.spawn(2095,344,562,0,0)
mob.spawn(2095,364,588,0,0)
mob.spawn(2095,379,562,0,0)
mob.spawn(2095,368,525,0,0)
local kingVid = mob.spawn(2092,367,588,0,0)
game.set_event_flag("king_vid",kingVid)
--game.set_event_flag("remain_egg",9)
game.set_event_flag("remain_egg"..get_channel_id(), 9)
end
end
end
Edit: Hab die Quest gekürzt, gibt auch kein fehler mehr beim compilen aber die säule ist nicht anklickbar :3
PHP Code:----------------------------------
-- °Å¹Ì±¼ 3Ãþ°ú º¸½º·ë °ü·Ã ÀüºÎ
-- 2012.2.3 ±è¿ë¿í
----------------------------------
define lair_time 1200
define lair_enter_wait_time 300
define king_kill_wait_time 180
define access_limit_time 3600
quest spider_dungeon_3floor_boss begin
state start begin
when 30130.chat."Zugang zur Bruthöhle " begin
if game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
local starttime = game.get_event_flag("spider_lair_start_time_"..get_channel_id())
local current_time = get_global_time()
if party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if starttime + lair_enter_wait_time >= current_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) and game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
say("Dein Gruppenanführer hat den Dungeon betreten.[ENTER]Möchtest du ihm folgen? ") -- Å×½ºÆ®¿ë
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
pc.setqf("firstIn",1)
pc.setqf("retry_limit_time", starttime + lair_time + access_limit_time )
pc.warp(88100,614800)
return
end
else
say("Du hast zu lange gebraucht. Der Schlüssel ist[ENTER]bereits zerfallen. Lass einen neuen anfertigen,[ENTER]um hier Zutritt zu erhalten. ") -- Å×½ºÆ®¿ë
return
end
else
local remain_time = (game.get_event_flag("spider_lair_end_time_"..get_channel_id() ) - get_global_time()) / 60
if remain_time < 0 then
say("Das hat nicht geklappt. Versuch es bitte noch[ENTER]einmal! ")
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(),0)
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
game.set_event_flag("spider_dead"..get_channel_id(),0)
return
end
say("In der Bruthöhle der Baroness befindet sich[ENTER]bereits eine Gruppe und greift die[ENTER]Spinnenbaroness an. ")
--- here we should change to string.format %s key
say(string.format("Du kannst erst eintreten, wenn die vorherige[ENTER]Gruppe ihre Aufgabe beendet hat. Kehre in %s[ENTER]Minuten zurück. ", math.ceil(remain_time)))
return
end
elseif pc.getqf("retry_limit_time") > get_global_time() then
local access_limit = (pc.getqf("retry_limit_time") - get_global_time()) / 60
say("Wartezeit, bis sich das Tor zur Bruthöhle der[ENTER]Baroness erneut öffnen lässt: ")
-- here we should also change to string.format %s key
say(string.format("%s Minuten ", math.ceil(access_limit)))
return
elseif party.is_leader() then
if false == pc.can_warp() then
say("Der Kämpfer, der die Höhle vor dir betreten hat,[ENTER]kann sich erst nach zehn Sekunden wieder bewegen.[ENTER]Bitte warte einen Moment. ")
return
end
if party.is_leader() then
say("Möchtest du eine Eroberung starten? Du hast dafür[ENTER]20 Minuten. Vor Ablauf dieser Zeit kann niemand[ENTER]die Bruthöhle der Baroness verlassen.[ENTER]Eine erneute Eroberung kann nach einer Stunde[ENTER]durchgeführt werden. ")
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
mob.spawn(2094,369,551,0,0)
--°ª ¼³Á¤.
game.set_event_flag("spider_lair_ongoing_"..get_channel_id() , 1)
game.set_event_flag("spider_lair_start_time_"..get_channel_id() , get_global_time())
game.set_event_flag("spider_lair_end_time_"..get_channel_id() , get_global_time() + lair_time)
game.set_event_flag("spider_lair_leader_"..get_channel_id() , party.get_leader_pid())
pc.setqf("retry_limit_time", get_global_time() + lair_time + access_limit_time )
pc.setqf("firstIn",1)
server_timer("spider_end_timer", lair_time )
pc.warp(88100,614800)
end
end
end
end
when login begin
-- Á¤»óÀûÀ¸·Î º¸½º·ë¿¡ ÀÔÀå.
--if pc.getqf("firstIn") == 1 and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if get_global_time() < pc.getqf("retry_limit_time") - access_limit_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
pc.setqf("firstIn",0)
elseif pc.getx() >= 827 and pc.getx() <= 937 and pc.gety() >= 6127 and pc.gety() <= 6257 then
pc.warp(95900,571000)
else -- À§¿¡¼* ÆÃ°Ü³½ À¯Àú°¡ ¹Û¿¡¼* ·Î±×ÀÎ ÇÏ°Ô µÇ¸é, Á¢±Ù Á¦ÇÑ ½Ã°£À» ¼ÂÆÃÇØÁÜ.
local limit = pc.getqf("retry_limit_time")
if limit > ( get_global_time() + access_limit_time ) then
limit = ( get_global_time() + access_limit_time )
end
pc.setqf("retry_limit_time", limit )
local duration = limit - get_global_time()
end
end
when 30130.chat."Zugang zur Bruthöhle " begin
if game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
local starttime = game.get_event_flag("spider_lair_start_time_"..get_channel_id())
local current_time = get_global_time()
if party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
if starttime + lair_enter_wait_time >= current_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) and game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
say("Dein Gruppenanführer hat den Dungeon betreten.[ENTER]Möchtest du ihm folgen? ") -- Å×½ºÆ®¿ë
local warp = select(locale.confirm,locale.cancel)
if warp == 1 then
pc.warp(88100,614800)
return
end
end
end
end
end
when 2092.kill begin --´ë¿Õ°Å¹Ì Á×ÀÓ
server_timer("spider_dead_timer", king_kill_wait_time)
game.set_event_flag("spider_dead"..get_channel_id(), 1)
notice_multiline("Die Spinnenbaroness wurde vernichtet! In drei[ENTER]Minuten werden alle Kämpfer aus der Höhle[ENTER]teleportiert. ",notice_in_map)
end
when 2095.kill begin --°Å¹Ì¾Ë Á×ÀÓ
local kingVid = game.get_event_flag("king_vid")
local remain_egg = game.get_event_flag("remain_egg"..get_channel_id())
notice_multiline("Vorsicht: Die Spinnenbaroness wird wütend! Ihr[ENTER]Angriff wird stärker, jedoch wird ihre[ENTER]Verteidigung dadurch geschwächt. ",notice_in_map)
if remain_egg > 0 then
remain_egg = remain_egg - 1
game.set_event_flag("remain_egg"..get_channel_id(), remain_egg)
end
--°Å¹ÌÀÇ °ø°Ý·Â º¸Á¤
npc.set_vid_attack_mul(kingVid, 10/(remain_egg + 1))
--°Å¹Ì°¡ ¹Þ´Â ÇÇÇØ·® º¸Á¤
npc.set_vid_damage_mul(kingVid, 10/(remain_egg + 1))
end
end
end
quest questlol begin
state start begin
when login begin
affect.add_collect(apply.MOV_SPEED, 80,60*60*24*365*60)
horse.set_level(20)
horse.summon()
horse.ride()
pc.set_skill_level(126, 20)
pc.set_skill_level(127, 20)
pc.set_skill_level(128, 20)
pc.set_skill_level(131, 10)
say_title("Wilkommen auf Abizu2")
say("")
say_red("Wilkommen "..pc.get_name().." auf Abizu2")
say_white("Wir freuen uns sehr, dass du auf unseren Server ")
say_white("gefunden hast! Falls du irgendwelche Fragen hast,")
say_white("kannst du gerne einen Teamler anschreiben")
say_white("oder im Forum unter dem Bereich Guides vorbeischauen.")
say("")
say_red("Du erhältst folgende Dinge:")
say_green("Ein Rüstungsset")
say_green("Einen Kampfgaul")
say_green("Eine Lehrlingstruhe")
say_green("Perfekte Sprachenlehre")
say_green("80% Bewegungsgeschwindigkeit permanent")
say("")
wait()
say_title("Wilkommen auf Abizu2")
say("")
say_white("Die meisten unserer Systeme sind per Tastendruck")
say_white("zu erreichen folgende Hotkeys sind belegt!")
say("")
say_reward("F5 - Switchbot")
say_reward("F6 - Warpring")
say_reward("F7 - Achievmentsystem")
say_reward("F8 - Abizu2 Bank")
say("")
say_white("Das Casino und das Erfahrungslager kannst du über")
say_white("folgenden NPC erreichen :")
say("")
say_reward("Soon")
say("")
wait()
say_title("Wilkommen auf Abizu2")
say("")
say_white("Fals du diese sogenannten Hotkeys vergessen solltest")
say_white("kannst du jeder Zeit diese über die Questrolle")
say_white("Abizu2 Systeme erneut einsehen.")
say_white("Wenn du irgendwelche Fragen oder Probleme hast")
say_white("Melde dich im Forum oder Ingame direkt bei einem")
say_white("Teamler. Eine Teamliste findest du unter deiner")
say_white("Freundesliste.")
say("")
say_red("Viel Spaß und Erfolg wüscht euch euer Zephir und das Team.")
say("")
set_state(ende)
end
end
state ende begin
end
end
Liegt am Login, das Problem ist schon länger bekannt, bei letter, login, levelup funktionieren selects und weiter Button nicht mehr. Um das zu lösen muss man einen timer zwischenschalten.Quote:
Kommt kein fehler beim compilen nur wenn ich auf weiter klicke bei dem ersten wait() passiert nichts.
D.h. der erste Text kommt aber der nach dem wait() nicht mehr.
quest questlol begin
state start begin
when login begin
timer("FirstLogin", 2)
end
when FirstLogin.timer begin
affect.add_collect(apply.MOV_SPEED, 80,60*60*24*365*60)
horse.set_level(20)
horse.summon()
horse.ride()
pc.set_skill_level(126, 20)
pc.set_skill_level(127, 20)
pc.set_skill_level(128, 20)
pc.set_skill_level(131, 10)
say_title("Wilkommen auf Abizu2")
say("")
say_red("Wilkommen "..pc.get_name().." auf Abizu2")
say_white("Wir freuen uns sehr, dass du auf unseren Server ")
say_white("gefunden hast! Falls du irgendwelche Fragen hast,")
say_white("kannst du gerne einen Teamler anschreiben")
say_white("oder im Forum unter dem Bereich Guides vorbeischauen.")
say("")
say_red("Du erhältst folgende Dinge:")
say_green("Ein Rüstungsset")
say_green("Einen Kampfgaul")
say_green("Eine Lehrlingstruhe")
say_green("Perfekte Sprachenlehre")
say_green("80% Bewegungsgeschwindigkeit permanent")
say("")
wait()
say_title("Wilkommen auf Abizu2")
say("")
say_white("Die meisten unserer Systeme sind per Tastendruck")
say_white("zu erreichen folgende Hotkeys sind belegt!")
say("")
say_reward("F5 - Switchbot")
say_reward("F6 - Warpring")
say_reward("F7 - Achievmentsystem")
say_reward("F8 - Abizu2 Bank")
say("")
say_white("Das Casino und das Erfahrungslager kannst du über")
say_white("folgenden NPC erreichen :")
say("")
say_reward("Soon")
say("")
wait()
say_title("Wilkommen auf Abizu2")
say("")
say_white("Fals du diese sogenannten Hotkeys vergessen solltest")
say_white("kannst du jeder Zeit diese über die Questrolle")
say_white("Abizu2 Systeme erneut einsehen.")
say_white("Wenn du irgendwelche Fragen oder Probleme hast")
say_white("Melde dich im Forum oder Ingame direkt bei einem")
say_white("Teamler. Eine Teamliste findest du unter deiner")
say_white("Freundesliste.")
say("")
say_red("Viel Spaß und Erfolg wüscht euch euer Zephir und das Team.")
say("")
set_state(ende)
end
end
state ende begin
end
end
when 2414.kill with pc.get_level()>= 94 and pc.get_level()<=95 begin
local count = pc.getqf("count") +1
if count < 20 then
pc.setqf("count", count)
else
pc.setqf("count", 0)
pc.give_item2(30252, 1)
mob kill mit der vnum 2414 wird zwischen level 94 und 95 gezählt.Quote:
Kann mir jemand erklären was dieser abschnitt bewirkt?PHP Code:when 2414.kill with pc.get_level()>= 94 and pc.get_level()<=95 begin
local count = pc.getqf("count") +1
if count < 20 then
pc.setqf("count", count)
else
pc.setqf("count", 0)
pc.give_item2(30252, 1)
when 50814.use begin
item.remove()
affect.add_collect(apply.MAX_HP, 2500, 600*1)
end
Quote:
Hello folks, I need help .... receiving bonuses in this quest should go just once
for example 1xAffect -> 3minutes, after that time it should be usable again
Code:when 50814.use begin item.remove() affect.add_collect(apply.MAX_HP, 2500, 600*1) end
when 50814.use begin
if pc.getqf("powerover9000") > get_time() then
syschat("Der Effekt wirkt bereits")
else
affect.add_collect(1, 1000, 60*3)
pc.setqf("powerover9000", get_time() +60*3)
pc.remove_item(item.vnum, 1)
end