hat wieder nichts mit einer Quest zum anschauen zu tun, aber wieder 2 neue Fragen.
- wie gebe ich innerhalb eine Quest die EXP in Prozenten?
D.h. anstatt "Du erhälst 3.000EXP" , "Du erhälst 3% EXP"
- Ich will mehrere monster als kill counter bestimmen, d.h. "Töte 200 Setaou Monster",
eingezogen in diesen kill counter sind dann die values 2401, 2402, 2403 und 2404.
Wie krieg ich es dazu, das diese 4Values zusammen in einen Counter gehören?
quest player_kill1 begin
state start begin
when login with pc.level >= 100 begin
set_state(player_kill1)
end
end
state player_kill1 begin
when letter begin
send_letter("Töte Gegner aus anderen Reichen")
end
when button or info begin
say("Es wird Zeit dass du zeigst")
say("was in dir steckt!")
say("Zeige es uns indem du 500")
say("Spieler aus anderen Reichen tötest!")
say_reward("Töte 500 andere Spieler aus anderen Reichen!")
say("")
pc.setqf("state", 0)
q.set_counter("kills", 500)
set_state (kill1)
end
end
state kill1 begin
when letter begin
send_letter("Elite Rang 1")
end
when button or info begin
say_title("Spieler:")
say_reward( "Du musst noch ".." "..pc.getqf("state").."von 500 töten")
say("")
end
when kill begin
if npc.is_pc() and npc.empire != pc.empire then
local count = pc.getqf("state") - 1
if count <= 500 then
pc.setqf("state", count)
q.set_counter("kills", -count)
end
if count == 0 then
say_title("Du hast es geschafft!")
say("500 Spieler aus anderen Reichen zu töten!")
say("Du erhälst für deine Mühen:")
say_reward("5.000.000 Yang")
say_reward("5.000.000 EXP")
pc.change_money(5000000)
pc.give_item2(71051, 1)
pc.give_item2(71051, 1)
pc.give_item2(71051, 1)
pc.give_item2(71052, 1)
pc.give_item2(25041, 1)
pc.give_item2(25041, 1)
pc.give_item2(25041, 1)
pc.give_exp2(5000000)
notice_all("".. pc.get_name() .." hat soeben die PvP Quest abgeschlossen!")
notice_all("Sie haben Elite Rang 1 erhalten, Glückwunsch!")
clear_letter()
set_state(playerkill2)
end
end
end
end
state playerkill2 begin
when letter begin
send_letter("Töte Gegner aus anderen Reichen")
end
when button or info begin
say("Es wird Zeit dass du zeigst")
say("was in dir steckt!")
say("Zeige es uns indem du 1000")
say("Spieler aus anderen Reichen tötest!")
say_reward("Töte 1000 andere Spieler aus anderen Reichen!")
say("")
pc.setqf("state", 1000)
q.set_counter("kills", 1000)
set_state (kill2)
end
end
state kill2 begin
when letter begin
send_letter("Elite Rang 2")
end
when button or info begin
say_title("Spieler:")
say_reward( "Du musst noch ".." "..pc.getqf("state").."von 1000 töten")
say("")
end
when kill begin
if npc.is_pc() and npc.empire != pc.empire then
local count = pc.getqf("state") - 1
if count <= 1000 then
pc.setqf("state", count)
q.set_counter("kills", -count)
end
if count == 0 then
say_title("Du hast es geschafft!")
say("1000 Spieler aus anderen Reichen zu töten!")
say("Du erhälst für deine Mühen:")
say_reward("5.000.000 Yang")
say_reward("5.000.000 EXP")
pc.change_money(5000000)
pc.give_item2(71051, 1)
pc.give_item2(71051, 1)
pc.give_item2(71051, 1)
pc.give_item2(71052, 1)
pc.give_item2(25041, 1)
pc.give_item2(25041, 1)
pc.give_item2(25041, 1)
pc.give_exp2(5000000)
notice_all("".. pc.get_name() .." hat soeben die PvP Quest abgeschlossen!")
notice_all("Sie haben Elite Rang 2 erhalten, Glückwunsch!")
clear_letter()
set_state(playerkill3)
end
end
end
end
state playerkill3 begin
when letter begin
send_letter("Töte Gegner aus anderen Reichen")
end
when button or info begin
say("Es wird Zeit dass du zeigst")
say("was in dir steckt!")
say("Zeige es uns indem du 2000")
say("Spieler aus anderen Reichen tötest!")
say_reward("Töte 2000 andere Spieler aus anderen Reichen!")
say("")
pc.setqf("state", 2000)
q.set_counter("kills", 2000)
set_state (kill3)
end
end
state kill3 begin
when letter begin
send_letter("Elite Rang 3")
end
when button or info begin
say_title("Spieler:")
say_reward( "Du musst noch ".." "..pc.getqf("state").."von 2000 töten")
say("")
end
when kill begin
if npc.is_pc() and npc.empire != pc.empire then
local count = pc.getqf("state") - 1
if count <= 2000 then
pc.setqf("state", count)
q.set_counter("kills", -count)
end
if count == 0 then
say_title("Du hast es geschafft!")
say("2000 Spieler aus anderen Reichen zu töten!")
say("Du erhälst für deine Mühen:")
say_reward("6.000.000 Yang")
say_reward("6.000.000 EXP")
pc.change_money(6000000)
pc.give_item2(71051, 1)
pc.give_item2(71051, 1)
pc.give_item2(71051, 1)
pc.give_item2(71052, 1)
pc.give_item2(25041, 2)
pc.give_item2(25041, 2)
pc.give_item2(25041, 2)
pc.give_exp2(6000000)
notice_all("".. pc.get_name() .." hat soeben die PvP Quest abgeschlossen!")
notice_all("Sie haben Elite Rang 3 erhalten, Glückwunsch!")
clear_letter()
end
end
end
end
state __COMPLETE__ begin
end
end
Delta hatte mir die Quest schonmal entbuggt.
Aber mir ist sie leider durch nen fehler abhanden gekommen.
Delta fals du das liest wärst du nochmal so nett?
Kann mir jemand die Quest entbuggen?
Sie zeigt alle Quests in einer an obwohl das nicht so sein soll.
Er counted die getöteten spieler im minus bereich o
Hätte eine Frage und zwar wie ich diese Quest hier:
PHP Code:
when kill with game.get_event_flag("kuerbis_drop") == 1 and not npc.is_pc() begin local s=number(1, 200) if 5 == s then game.drop_item(50095,1) end end
So mache das ich erst ab einem bestimmten Level etwas droppe und ohne das ein Event sein muss. Sprich wie ein alternativdropp
___________________________________________
@Event150
vllt geht das so habe eine funktionierende einfach geändert
PHP Code:
quest player_kill1 begin state start begin when login with pc.level >= 100 begin set_state(player_kill1) end end
state player_kill1 begin when letter begin send_letter("Töte Gegner aus anderen Reichen") end
when button or info begin say("Es wird Zeit dass du zeigst") say("was in dir steckt!") say("Zeige es uns indem du 2000") say("Spieler aus anderen Reichen tötest!") say_reward("Töte 2000 andere Spieler aus anderen Reichen!") say("") pc.setqf("state", 2000) q.set_counter("kills", 2000) set_state (kill) end end
state kill begin when letter begin send_letter("Töte Spieler") end
when button or info begin say_title("Spieler:") say_reward( "Du musst noch ".." "..pc.getqf("state").."von 2000 töten") say("") end
when kill begin if npc.is_pc() and npc.empire != pc.empire then local count = pc.getqf("state") - 1 if count <= 2000 then pc.setqf("state", count) q.set_counter("kills", -count) end if count == 0 then say_title("Du hast es geschafft!") say("2000 Spieler aus anderen Reichen zu töten!") say("Du erhälst für deine Mühen:") say_reward("6.000.000 Yang") say_reward("6.000.000 EXP") pc.change_money(6000000) pc.give_item2(71051, 1) pc.give_item2(71051, 1) pc.give_item2(71051, 1) pc.give_item2(71052, 1) pc.give_item2(25041, 2) pc.give_item2(25041, 2) pc.give_item2(25041, 2) pc.give_exp2(6000000) notice_all("".. pc.get_name() .." hat soeben die PvP Quest abgeschlossen!") notice_all("Sie haben Elite Rang 3 erhalten, Glückwunsch!") clear_letter() set_state(__COMPLETE__)
um es gleich vorweg zu nehmen die Quest ist nicht von mir.
Sie wurde schon auf Seite 194 publiziert, aber es wurde keine Lösung gepostet.
Könnte die jemand bitte korrigieren?
PHP Code:
quest anti_shop begin
state start begin
when 50200.use begin
if pc.get_map_index == 1 or pc.get_map_index == 21 or pc.get_map_index == 41 then
set_state( "map1" )
end --If ende
end --When ende
end --State ende
state map1 begin
when enter begin
say_title("Bitte keine Läden auf Map1")
say("")
say("Wir haben eine Handelsmap,")
say(" bitte eröffne deine Läden dort")
say("")
say("Du erreichst diese über die Alte Dame")
say("")
say("Möchtest du jetzt dorthin teleportiert werden?")
local s select = ("Ja, gerne", "Nein, ich laufe lieber")
if s == 1 then
say("Gute Entscheidung!")
say("Du wirst jetzt teleportiert")
wait()
pc.warp(9593, 9762)
else
say("Nagut wenn du meinst")
return
end -- If ende
end -- When ende
end --State ende
end --Quest ende
Fehler:
PHP Code:
QUEST : anti_shop
STATE : start
WHEN : 50200.use
STATE : map1
WHEN : enter
say_title ( "Bitte keine Läden auf Map1" )
say ( "" )
say ( "Wir haben eine Handelsmap," )
say ( " bitte eröffne deine Läden dort" )
say ( "" )
say ( "Du erreichst diese über die Alte Dame" )
say ( "" )
say ( "Möchtest du jetzt dorthin teleportiert werden?" )
local s select = ( "Ja, gerne" , "Nein, ich laufe lieber" )
if s == 1 then
say ( "Gute Entscheidung!" )
say ( "Du wirst jetzt teleportiert" )
wait ( )
pc . warp ( 9593 , 9762 )
else
say ( "Nagut wenn du meinst" )
return
end
quest anti_shop begin state start begin when 50200.use with pc.get_map_index == 1 or pc.get_map_index == 21 or pc.get_map_index == 41 begin say_title("Bitte keine Läden auf Map1") say("") say("Wir haben eine Handelsmap,") say(" bitte eröffne deine Läden dort") say("") say("Du erreichst diese über die Alte Dame") say("") say("Möchtest du jetzt dorthin teleportiert werden?") local s = select("Ja, gerne", "Nein, ich laufe lieber") if s == 1 then say("Gute Entscheidung!") say("Du wirst jetzt teleportiert") wait() pc.warp(959300, 976200) else say("Nagut wenn du meinst") return end -- If ende end -- When ende end --State ende end --Quest ende
hey. i translated marriage_manage.quest and put it back to hongkong/quest in filezilla
but when i made make.sh i got this error:
syntax error : [string "startpc . is_married ()"]:24 ')' expected (to close "(" at line 23( near 'local'
Any idea why?
PHP Code:
quest marriage_manage begin
state start begin
when oldwoman.chat."I want to get married" with not pc.is_engaged_or_married() begin
if not npc.lock() then
say("Good day")
say("You want to get married?")
return
end
if pc.level < 25 then
say("Unfortunately I have bad news..")
say("It looks like you can't")
say("get married before you")
say("reach level 25.")
say("")
say_reward("Come back when you've reached level 25.")
say("")
npc.unlock()
return
end
local m_ring_num = pc.countitem(70301)
local m_has_ring = m_ring_num > 0
if not m_has_ring then
say("You need to have a special item to get married.")
say("")
say_item("You need a", 70301, "")
say_reward("Come back when you have an engagement ring.")
say("")
npc.unlock()
return
end
local m_sex = pc.get_sex()
if not marriage_manage.is_equip_wedding_dress() then
say("You can;t get married now." )
say("You have to wear the necessary clothing to get married.")
say("")
if m_sex==0 then
say_item("Clothing", marriage_manage.get_wedding_dress(pc.get_job()), "")
say_reward("Well...")
say_reward("One of you has no wedding dress")
else
say_item("Clothing", marriage_manage.get_wedding_dress(pc.get_job()), "")
say_reward("Well...")
say_reward("One of you has no wedding dress.")
end
say("")
npc.unlock()
return
end
local NEED_MONEY = 1000000
if pc.get_money() < NEED_MONEY then
say("Well...")
say("It seems that you don't have")
say("enough gold to get married.")
say("Come back when you have 1.000.000 Gold.")
say("")
say_reward(string.format("??¡ÓB?O????*n %d?U??", NEED_MONEY/10000))
say("")
npc.unlock()
return
end
say("Old Lady:")
say("Now you have enough level")
say("to get married")
say("Who do you want to marry?")
say("")
say_reward("Bitte gib den Namen ein:")
local sname = input()
if sname == "" then
say("Old Lady:")
say("You must have no fear")
say("of getting married.")
say("Come back when you've")
say("made the right decision.")
say("")
npc.unlock()
return
end
local u_vid = find_pc_by_name(sname)
local m_vid = pc.get_vid()
if u_vid == 0 then
say("Old Lady:")
say("Do you know the name?")
say("Well, come back when you")
say("know the correct name.")
say("")
say_reward(string.format("%s similar name as", sname))
say("")
npc.unlock()
return
end
if not npc.is_near_vid(u_vid, 10) then
say("Old Lady:")
say("The person who you want to")
say("marry also should be here.")
say("Find the person and")
say("then come back both here.")
say("" )
say_reward(string.format("%s is the distance to", sname))
say("")
npc.unlock()
return
end
local old = pc.select(u_vid)
local u_level = pc.get_level()
local u_job = pc.get_job()
local u_sex = pc.get_sex()
local u_name = pc.name
local u_gold = pc.get_money()
local u_married = pc.is_married()
local u_has_ring = pc.countitem(70301) > 0
local u_wear = marriage_manage.is_equip_wedding_dress()
pc.select(old)
local m_level = pc.get_level()
if u_vid == m_vid then
say("Old Lady:")
say("That's your own name.")
say("")
say_reward("You cannot marry yourself.")
say("")
npc.unlock()
return
end
if u_sex == m_sex then
say("Old Lady:")
say("I'm sorry but")
say("you can't marry someone")
say("of the same sex as you.")
say("")
say_reward("No same-sex marriage possible.")
say("")
npc.unlock()
return
end
if u_married then
say("Old Lady:")
say("Did you know that the")
say("person is still married?")
say("You should not be too hasty.")
say("" )
say_reward(string.format("%s been married", sname))
say("")
npc.unlock()
return
end
if u_level < 25 then
say("Old Lady:")
say("The person hasn't passed the level.")
say("requirement to marry.")
say("")
say_reward("Ths person needs to reach")
say_reward("level 25 before he can marry")
say("")
npc.unlock()
return
end
if m_level - u_level > 15 or u_level - m_level > 15 then
say("Old Lady:")
say("Your level difference is too high.")
say("")
say_reward("Characters with more than 15 levels")
say_reward("difference can not marry")
say("")
npc.unlock()
return
end
if not u_has_ring then
if m_ring_num >= 2 then
say("Old Lady:")
say("To get married you need")
say("a sign of love.")
say("Come back when")
say("you have one.")
else
say("Old Lady:")
say("Remember to wear a")
say("sign of love.")
say("")
end
say_item("As a sign of love, use .", 70301, "")
say_reward("The other person must also")
say_reward("have a sign of love.")
say("")
npc.unlock()
return
end
if not u_wear then
say ("Old Lady:")
say ("You have no wedding clothes.")
say ("It would be embarrassing to")
say ("marry with an armor.")
say ("Come back when you've")
say ("dressed appropriately.")
say("")
if u_sex==0 then
say_item("Clothing", marriage_manage.get_wedding_dress(u_job), "")
say_reward("To get marriedm you need to")
say_reward("wear these clothes.")
else
say_item("Clothing", marriage_manage.get_wedding_dress(u_job), "")
say_reward("To get married, you need to")
say_reward("wear a wedding dress.")
end
say("")
npc.unlock()
return
end
local ok_sign = confirm( u_vid, "Willst du"..pc.name.. "heiraten?", 30)
if ok_sign == CONFIRM_OK then
local m_name = pc.name
if pc.get_gold()>=NEED_MONEY then
pc.change_gold(-NEED_MONEY)
pc.removeitem(70301, 1)
pc.give_item2(70302, 1)
local old = pc.select(u_vid)
pc.removeitem(70301, 1)
pc.give_item2(70302, 1)
pc.select(old)
say("Old Lady:")
say("We are now ready to organize")
say("the wedding.")
say("To express my love for you I'm talking")
say("to you now from the Blessing.")
say("The wedding will take place on")
say("The island of love.")
say("")
say_reward("I send you now to the")
say_reward("island of love.")
say("")
wait()
setskin(NOWINDOW)
marriage.engage_to(u_vid)
end
else
say("Old Lady:")
say("Your partner wants to marry you.")
say("A conversation will certainly")
say("help you.")
say("")
say_reward("Your partener refused")
say_reward("to marry.")
end
say("")
npc.unlock()
end
-- ?? ???? ???? ??? ??
when oldwoman.chat."The wedding" with pc.is_engaged() begin
say("Well...")
say("Your spouse is not")
say("in your realm!!!")
say("")
wait()
setskin(NOWINDOW)
marriage.warp_to_my_marriage_map()
end
when 9011.chat."Ehe anerkennen" with pc.is_engaged() and marriage.in_my_wedding() begin
if not npc.lock() then
say("Well..")
say("Your spouse is already married")
say("or is not in your realm!!!")
say("")
return
end
say("Sofern der Partner")
say("in einem anderen Reich ist,")
say("kann er es jederzeit ueber das Item")
say("kann er es jederzeit ueber das Item.")
say("Eine Scheidung kann den Ehepartner loesen.")
local sname = input()
local u_vid = find_pc_by_name(sname)
local m_vid = pc.get_vid()
if u_vid == 0 then
say("You are too weak to")
say("get married with")
say("your partener.")
say("")
say_reward(string.format("%s parallel to", sname))
say("")
npc.unlock()
return
end
if not npc.is_near_vid(u_vid, 10) then
say("Well..")
say("It's not possible to marry without")
say("both you being near")
say("")
say("")
say_reward(string.format("%s You have to move to", sname))
say("")
npc.unlock()
return
end
if u_vid == m_vid then
say("Well...")
say("Your sex is the same.")
say("")
say_reward("You have to change your gender.")
say("")
npc.unlock()
return
end
if u_vid != marriage.find_married_vid() then
say("Well...")
say("Your spouse is not ")
say("in the same map!")
say("")
npc.unlock()
return
end
local ok_sign = confirm(u_vid, "Will you marry "..pc.name.. " ??", 30)
if ok_sign != CONFIRM_OK then
say("Well...")
say("You want to get married,")
say("So it shall be!")
say("")
npc.unlock()
return
end
say("Take with you this")
say("wedding ring")
say("")
marriage.set_to_marriage()
-- 2005.04.12.??? ?? ?? ??
-----------------------------------------------
-- say("Here you have it!")
-- say("I wish you much success.")
-- marriage_manage.give_wedding_gift()
-- old = pc.select(u_vid)
-- marriage_manage.give_wedding_gift()
-- pc.select(old)
say("")
say_reward("You have received a wedding ring.")
say("")
npc.unlock()
end
function give_wedding_gift()
local male_item = {71072, 71073, 71074}
local female_item = {71069, 71070, 71071}
if pc.get_sex() == MALE then
pc.give_item2(male_item[number(1, 3)], 1)
else
pc.give_item2(female_item[number(1, 3)], 1)
end
end
-- ??? ?? ??? ??? ?? ????
when 9011.chat."Wedding music launch" with
(pc.is_engaged() or pc.is_married()) and
marriage.in_my_wedding() and
not marriage.wedding_is_playing_music() begin
marriage.wedding_music(true, "wedding.mp3")
setskin(NOWINDOW)
end
when 9011.chat." Wedding music stop" with
(pc.is_engaged() or pc.is_married()) and
marriage.in_my_wedding() and
marriage.wedding_is_playing_music() begin
marriage.wedding_music(false, "default")
setskin(NOWINDOW)
end
when 9011.chat."Change time of day to night" with
pc.is_married() and
marriage.in_my_wedding() begin
marriage.wedding_dark(true)
setskin(NOWINDOW)
end
when 9011.chat."Snowfall start" with pc.is_married() and marriage.in_my_wedding() begin
marriage.wedding_snow(true)
setskin(NOWINDOW)
end
when 9011.chat."Wedding quit" with pc.is_married() and marriage.in_my_wedding() begin
if not npc.lock() then
say("Wedding Planner:")
say("Want to stop the wedding now?")
say("")
return
end
say("Wedding Planner:")
say("Do you really want to end the festival?")
say("")
local s = select("Yes","No")
if s == 1 then
local u_vid = marriage.find_married_vid()
if u_vid == 0 then
say("To stop the wedding, your")
say("partner must agree too")
say("Now that your partner is not here,")
say("I can't stop the wedding")
say("")
npc.unlock()
return
end
say("Wedding Planner:")
say("To end the marriage, your")
say("partner must agree.")
say("I'm waiting for the answer...")
say("")
local ok_sign = confirm(u_vid, "Want to stop the wedding?", 30)
if ok_sign == CONFIRM_OK then
marriage.end_wedding() -- ??? ???? ??? ??.
else
say("Wedding Quit:")
say("The other person does not agree")
say("")
end
end
npc.unlock()
end
-- ??? ???? ???? ??? ??
when 11000.chat."File for divorce" or
11002.chat." File for divorce" or
11004.chat." File for divorce" with pc.is_married() begin
if not marriage_manage.check_divorce_time() then
return
end
local u_vid = marriage.find_married_vid()
if u_vid == 0 or not npc.is_near_vid(u_vid, 10) then
say("Watchman of the village:")
say("Divorce is a very serious matter!")
say("If you want a divorce,")
say("your partner must be present.")
say("")
return
end
say("Watchman of the village:")
say("The divorce will cost 500.000 Gold")
say("In addition, the other")
say("person must agree.")
say("Do you want to divorce?")
say("")
local MONEY_NEED_FOR_ONE = 500000
local s = select("Yes", "No")
if s == 1 then
local m_enough_money = pc.gold > MONEY_NEED_FOR_ONE
local m_have_ring = pc.countitem(70302) > 0
local old = pc.select(u_vid)
local u_enough_money = pc.gold > MONEY_NEED_FOR_ONE
local u_have_ring = pc.countitem(70302) > 0
pc.select(old)
if not m_have_ring then
say("You have to bring the wedding ring.")
return;
end
if not u_have_ring then
say("The other person must also")
say("bring the wedding ring.")
return;
end
if not m_enough_money then
say("Watchman of the village:")
say("You do not have enough gold to divorce.")
say("")
say_reward(string.format("Divorce costs %dvon", MONEY_NEED_FOR_ONE/10000))
say("")
return;
end
if not u_enough_money then
say("Watchman of the village:")
say("The other person does not have enough Gold.")
say("")
say_reward("You both have to pay 500.000 Gold")
say_reward("to be able to get divorced.")
say("")
return;
end
say("Divorce is a really painful")
say("thing. Do you really want")
say("to divorce?")
say("")
local c=select("Yes", "No")
if 2 == c then
say_pc_name()
say("I want a divorce, that's")
say("my decision.")
say("")
wait()
say("Watchman of the village:")
say("You are two people who do not want")
say("to stay together, you want to")
say("enjoy your lives.")
say("")
say_reward("Ill end the marriage with a divorce.")
say("")
return
end
local ok_sign = confirm(u_vid, pc.name.." Do you want a divorce?", 30)
if ok_sign == CONFIRM_OK then
local m_enough_money = pc.gold > MONEY_NEED_FOR_ONE
local m_have_ring = pc.countitem(70302) > 0
local old = pc.select(u_vid)
local u_enough_money = pc.gold > MONEY_NEED_FOR_ONE
local u_have_ring = pc.countitem(70302) > 0
pc.select(old)
if m_have_ring and m_enough_money and u_have_ring and u_enough_money then
pc.removeitem(70302, 1)
pc.change_money(-MONEY_NEED_FOR_ONE)
local old = pc.select(u_vid)
pc.removeitem(70302, 1)
pc.change_money(-MONEY_NEED_FOR_ONE)
pc.select(old)
say("Watchman of the village:")
say("The divorce was successful.")
say("You are two different people,")
say("and that cannot be changed")
say("")
say_reward("Divorce completed successfully!")
say("")
marriage.remove()
else
say("Watchman of the village:")
say("An error has occured.")
say("I could not divorce you.")
say("Try again later.")
say("")
say_reward("Divorce failed.")
say("")
end
else
say("Watchman of the village:")
say("The other person does not agree.")
say("It is best to talk about")
say("this matter.")
say("")
say_reward("The divorce was aborted.")
say("")
end
end
end
when 11000.chat."Submit wedding ring" or
11002.chat." Submit wedding ring" or
11004.chat." Submit wedding ring" with
not pc.is_married() and
pc.count_item(70302)>0
begin
say("Watchman of the village:")
say("You will quickly forget")
say("the bad memories.")
say("")
say_reward("The wedding ring was successfully removed.")
pc.remove_item(70302)
end
when 11000.chat." One side divorce" or
11002.chat." One side divorce" or
11004.chat." One side divorce" with pc.is_married() begin
if not marriage_manage.check_divorce_time() then
return
end
say("Watchman of the village:")
say("The one-side divorce will cost you 1.000.000 Gold")
say("Do you want to continue?")
say("")
local s = select("Yes", "This is too much for me.")
local NEED_MONEY = 1000000
if s == 2 then
return
end
if pc.money < NEED_MONEY then
say("Watchman of the village:")
say("You don't have enough gold.")
say("Divorce is expensive.")
say("Come back when you've saved enough.")
say("")
return
end
say("Watchman of the village:")
say("Do you really want a divorce")
say("Have you considered it well?"
local c = select("I want a divorce!", "Nevermind.")
if c == 2 then
say("Watchman of the village:")
say("This is the right decision.")
say("Enjoy your life.")
say("Not always both have the same opinions.")
say("")
say_reward("The divorce was aborted.")
say("")
return
end
say("Watchman of the village:")
say("Since you have not understood my advice,")
say("you are now divorced.")
say("I hope you're happy now.")
say("")
say_reward("The one-side divorce was successful.")
say("")
end
-- ??? ?? ??
when oldwoman.chat."Liste der Hochzeiten" with not pc.is_engaged() begin
local t = marriage.get_wedding_list()
if table.getn(t) == 0 then
say("Theres no weddings at the moment.")
say("")
else
-- chat(table.getn(t))
local wedding_names = {}
table.foreachi(t, function(n, p) wedding_names[n] = p[3].."and "..p[4].." wedding" end)
wedding_names[table.getn(t)+1] = locale.confirm
local s = select_table(wedding_names)
if s != table.getn(wedding_names) then
marriage.join_wedding(t[s][1], t[s][2])
end
end
end
when 9011.click with not pc.is_engaged() and not pc.is_married() begin
say("Wedding Planner:")
say("We all came here to celebrate ")
say("this wedding.")
say("Hope you enjoy and may the couple be blessed.")
say("")
end
function check_divorce_time()
local DIVORCE_LIMIT_TIME = 86400
if is_test_server() then
DIVORCE_LIMIT_TIME = 60
end
if marriage.get_married_time() < DIVORCE_LIMIT_TIME then
say("Wedding Planner:")
say("Now enough is celebrated!")
say("All out of here!")
say("")
return false
end
return true
end
-- ?? ??? ?? ???? ??? ??
-- ?? ?? : pc.is_engaged_or_married()
function is_equip_wedding_dress()
local a = pc.get_armor()
return a >= 11901 and a <= 11904
end
function get_wedding_dress(pc_job)
if 0==pc_job then
return 11901
elseif 1==pc_job then
return 11903
elseif 2==pc_job then
return 11902
elseif 3==pc_job then
return 11904
else
return 0;
end
end
end
end
quest teufelsrun begin
state start begin
when 30121.chat."Gezeitenrun" with pc.get_level() >= 100 begin
say_title("Surageist")
say("Hoho")
say("Fremder,willst du wirklich in diesen Dungeon eintretten?")
say("Dieser Dungeon is voller Kälte,Wärme und sehr sehr")
say("Sandig,ob du hier wieder lebend heraus kommst.")
say("Is eine gute frage.")
say("Willst du immernoch eintretten?")
say("Ich habe dir ja nu ein einblick in diesen")
say("Dungeon erzählt.")
say_reward("Soll ich dich zum Gezeitenrun teleportieren?")
local s = select("Ja", "Nein")
if s == 1 then
pc.warp(474747, 474747)
else
return
end
end
when 11505.kill with pc.get_map_index()==225 begin
local jump1 = number(1, 20)
if jump1<=10 then
chat("Das muss die Wegkarte sein..")
chat("Bringe ihn zum Kriegergeist.")
game.drop_item(27988, 1)
else
chat("An diesem Metin war keine Wegkarte..")
end
end
when 30122.chat."Wegkarte" begin
if pc.count_item(27988)>=1 then
say("Du hast eine Wegkarte gefunden?!")
say("Lass mal sehen!")
pc.removeitem("27988", 1)
wait()
say("Okay.wie ich es befürchtet hatte.")
say("Auf der Karte is nur ein Weg zum anderern Teil des Dungeons.")
say("Ich werde euch nun dahin bringen.")
wait()
d.new_jump_all(226, 484848, 484848)
d.setf("gezeitenlevel", 1)
else
say("Ich habe gehört, dass man an den Metinsteine,")
say("hier in der Umgebung eine Wegkarte finden kann,")
say("wenn man sie zerstört. Wenn du mir solch eine")
say("Wegkarte bringen könntest, könnte ich dich in dem weiteren Teil")
say("zum Dungeonende bringen.")
end
end
when login with pc.in_dungeon() and d.getf("gezeitenlevel") == 1 begin
--------------------------------------------------------------------------------------------
local vid = d.spawn_mob(11510, 300, 182)
d.regen_file("data/dungeon/gezeiten1.txt")
d.set_unique("real", vid)
d.setf("gezeitenlevel", 1)
d.notice("Was wird wohl nu kommen.");
end
when 11505.kill with pc.get_map_index()==226 begin
local jump1 = number(1, 20)
if jump1<=10 then
chat("Das muss die Wegkarte sein..")
chat("Bringe ihn zum Kriegergeist.")
game.drop_item(22222, 1)
else
chat("An diesem Metin war keine Wegkarte..")
end
end
when 30122.chat."Wegkarte 2" begin
if pc.count_item(22222)>=1 then
say("Ach ihr seids wieder.und wie ich sehe hast du")
say("wieder eine weitere Wegkarte gefunden.")
say("Lass mal sehen!")
pc.removeitem("22222", 1)
wait()
say("Okay.wie ich es befürchtet hatte.")
say("Auf der weiteren Karte is nur ein Weg zum anderern Teil des Dungeons.")
say("Ich werde euch nun dahin bringen.")
wait()
d.new_jump_all(226, 484848, 484848)
else
say("Ich habe gehört, dass man bei den Mobs,")
say("hier in der Umgebung eine weitere Wegkarte finden kann.")
say("Wenn du mir solch eine")
say("Wegkarte bringen könntest, könnte ich dich")
say("zum weiteren Dungeonende bringen.")
end
when 11505.kill with pc.get_map_index()==224 begin
local jump1 = number(1, 20)
if jump1<=10 then
chat("Das muss die Wegkarte sein..")
chat("Bringe ihn zum Kriegergeist.")
game.drop_item(22223, 1)
else
chat("An diesem Metin war keine Wegkarte..")
end
end
when 30122.chat."Wegkarte 3" begin
if pc.count_item(22223)>=1 then
say("Ach ihr seids wieder.und wie ich sehe hast du")
say("wieder eine weitere Wegkarte gefunden.")
say("Lass mal sehen!")
pc.removeitem("22223", 1)
wait()
say("Okay.wie ich es befürchtet hatte.")
say("Auf der weiteren Karte is nur ein Weg zum anderern Teil des Dungeons.")
say("Ich werde euch nun dahin bringen.")
wait()
d.new_jump_all(224, 464646, 464646)
else
say("Ich habe gehört, dass man bei den Mobs,")
say("hier in der Umgebung eine weitere Wegkarte finden kann.")
say("Wenn du mir solch eine")
say("Wegkarte bringen könntest, könnte ich dich")
say("zum weiteren Dungeonende bringen.")
timer("gezeiten_jump2", 2)
end
when gezeiten_jump2.timer begin
d.regen_file("data/dungeon/dd_regen4.txt")
d.spawn_mob(30101, 1241, 250)
d.spawn_mob(30101, 1246, 242)
d.spawn_mob(30101, 1255, 243)
d.spawn_mob(30101, 1259, 250)
d.spawn_mob(30101, 1254, 258)
d.spawn_mob(30101, 1246, 258)
d.setf("gezeitenstone_count", 6)
timer('gezeitenstone1', 300)
d.notice("Um das Portal zum Roten Drache zu aktivieren, müssen");
d.notice("die alten Siegel zerstört werden. Ihr habt nur 20 Minuten,");
d.notice("um alle 6 Siegel zu öffnen.");
end
when gezeitenstone1.timer begin
d.notice("Verbleibende Zeit: 15 Minuten")
timer('gezeitenstone2', 300)
end
when gezeitenstone2.timer begin
d.notice("Verbleibende Zeit: 10 Minuten")
timer('gezeitenstone3', 300)
end
when gezeitenstone3.timer begin
d.notice("Verbleibende Zeit: 5 Minuten")
timer('gezeitenstone4', 300)
end
when gezeitenstone4.timer begin
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
end
when 2542.kill with pc.in_dungeon() and d.getf("gezeitenlevel") == 6 begin
local KILL_COUNT_FOR_DROP_DEVIL_KEY = 15
local n =d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_DEVIL_KEY then
game.drop_item(50084, 1)
d.setf("count", 0)
end
end
when 21579.take with item.vnum == 50084 and d.getf("gezeitenlevel") == 6 begin
npc.purge()
item.remove()
d.setf("gezeitenstone_count", d.getf("gezeitenstone_count") - 1)
if d.getf("gezeitenstone_count") <= 0 then
d.setf("devillevel", 7)
-- Setzt die Timer von der Vorletzen EBENE auf 800000 Sec.
-- Um das nachträgliche herausfliegen zu vermeiden.
timer('gezeitenstone1', 800000)
timer('gezeitenstone2', 800000)
timer('gezeitenstone3', 800000)
timer('gezeitenstone4', 800000)
--------------------------------------------------------
d.notice("Ihr habt alle alten Siegel geöffnet.")
d.notice("Das Portal zum Roten Drache hat sich geöffnet.")
timer("gezeiten_nexttimer", 3)
else
d.notice("Es verbleibt eine Anzahl von "..d.getf("gezeitenstone_count").." Siegeln")
end
end
when gezeiten_nexttimer.timer begin
d.jump_all(4374, 12740)
-- Firstspawn !!!
d.regen_file("data/dungeon/gezeiten_boss1.txt")
------------------
timer("gezeiten_bosstimer1", 60)
end
when gezeiten_bosstimer1.timer begin
-- 2. Spawn !!!
d.regen_file("data/dungeon/gezeiten_boss2.txt")
------------------
timer("gezeiten_bosstimer2", 60)
end
when gezeiten_bosstimer2.timer begin
-- 3. Spawn !!!
d.regen_file("data/dungeon/gezeiten_boss3.txt")
------------------
timer("gezeiten_bosstimer3", 60)
end
when gezeiten_bosstimer3.timer begin
-- 4. Spawn !!!
d.regen_file("data/dungeon/gezeiten_boss4.txt")
------------------
timer("gezeiten_bosstimer4", 60)
end
when gezeiten_bosstimer4.timer begin
-- 5. Spawn !!!
d.regen_file("data/dungeon/gezeiten_boss5.txt")
------------------
timer("gezeiten_bosstimer5", 60)
end
when gezeiten_bosstimer5.timer begin
-- 6. Spawn !!!
d.regen_file("data/dungeon/gezeiten_boss6.txt")
------------------
timer("gezeiten_bosstimer_last", 60)
end
when gezeiten_bosstimer_last.timer begin
-- Endspawn mit Drache !!!
d.regen_file("data/dungeon/gezeiten_boss7.txt")
local vid = d.spawn_mob(2525, 1302, 708)
d.set_unique("real", vid)
------------------
end
when 2525.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("devillevel", 0)
notice_all("".. pc.get_name() .." hat den Zombiekönig bezwungen!!!")
d.notice("Ihr habt den Zombiekönig, den Wächter des gezeitenruns besiegt.");
d.notice("Ihr werdet in 20 Sekunden zurück zum Anfang teleportiert..");
timer("gezeiten_escapetimer", 20)
end
end
when gezeiten_escapetimer.timer begin
d.exit_all()
end
habe hier die Quest des Wandelzabers die nicht funktioniert .
Type des items liegt auf 18 , doch beim anklicken passiert leider nichts
Hier die quest .
change_sex.quest
PHP Code:
quest item_change_sex begin
state start begin
when 71048.use begin
if pc.get_level() < 50 then
say_title("Umwandlungsrolle")
say_reward("Du musst Level 50 sein!")
return;
end
if pc.is_engaged() then
say_title("Umwandlungsrolle")
say_reward("Du kannst dein Geschlecht nicht wechseln")
return;
end
if pc.is_married() then
say_title("Umwandlungsrolle")
say_reward("Du musst dich scheiden um dein Geschlecht zu wechseln!")
return;
end
if pc.is_polymorphed() then
say_title("Umwandlungsrolle")
say_reward("Du kannst dein Geschlecht nicht wechseln, wenn du verwandelt bist!")
say("")
return;
end
if get_time() < pc.getqf("next_time") then
say_title("Umwandlungsrolle")
say_reward("Du musst noch warten,")
say_reward("bis du das nächste mal dein Geschlecht wechseln kannst!")
say("")
return;
end
say_title("Umwandlungsrolle")
say("Du willst dein Geschlecht wechseln?")
say("")
local s=select("Ja","Nö")
if 1==s then
say("Bist du dir GANZ sicher?")
say("")
local s2=select("Ja","Nö")
if 1==s2 then
say("Ok ich werde dein Geschlecht wechseln...")
say_reward("Relog damit die Änderung aktiv wird")
say("")
pc.remove_item(71048,1)
pc.setqf("next_time", get_time() + 86400 * 3)
pc.change_sex()
local m_sex = pc.get_sex()
if m_sex == 0 then
char_log(0, "CHANGE_SEX", "F -> M")
else
char_log(0, "CHANGE_SEX", "M -> F")
end
end
elseif 2==s then
say("Dann halt nicht")
end
end
end
end
quest item_change_sex begin state start begin when 71048.use begin if pc.get_level() < 50 then say_title("Umwandlungsrolle") say_reward("Du musst Level 50 sein!")
elseif pc.is_engaged() then say_title("Umwandlungsrolle") say_reward("Du kannst dein Geschlecht nicht wechseln")
elseif pc.is_married() then say_title("Umwandlungsrolle") say_reward("Du musst dich scheiden um dein Geschlecht zu wechseln!")
elseif pc.is_polymorphed() then say_title("Umwandlungsrolle") say_reward("Du kannst dein Geschlecht nicht wechseln, wenn du verwandelt bist!") say("")
elseif get_time() < pc.getqf("next_time") then say_title("Umwandlungsrolle") say_reward("Du musst noch warten,") say_reward("bis du das nächste mal dein Geschlecht wechseln kannst!") say("") return end
else say_title("Umwandlungsrolle") say("Du willst dein Geschlecht wechseln?") say("") local s=select("Ja","Nö") if s==1 then say("Bist du dir GANZ sicher?") say("") local s2=select("Ja","Nö") if s2==1 then say("Ok ich werde dein Geschlecht wechseln...") say_reward("Relog damit die Änderung aktiv wird") say("") pc.remove_item(71048,1) pc.setqf("next_time", get_time() + 86400 * 3) pc.change_sex() local m_sex = pc.get_sex() if m_sex == 0 then char_log(0, "CHANGE_SEX", "F -> M") else char_log(0, "CHANGE_SEX", "M -> F") end end elseif s==2 then say("Dann halt nicht") return end
elseif s2==2 then say("Dann halt nicht") return end end end end end
Ich weiß nicht, ob man unter jedem elseif ein return setzen muss..deshalb: fals das erste nicht funktioniert, probier das :
PHP Code:
quest item_change_sex begin state start begin when 71048.use begin if pc.get_level() < 50 then say_title("Umwandlungsrolle") say_reward("Du musst Level 50 sein!") return
elseif pc.is_engaged() then say_title("Umwandlungsrolle") say_reward("Du kannst dein Geschlecht nicht wechseln") return
elseif pc.is_married() then say_title("Umwandlungsrolle") say_reward("Du musst dich scheiden um dein Geschlecht zu wechseln!") return
elseif pc.is_polymorphed() then say_title("Umwandlungsrolle") say_reward("Du kannst dein Geschlecht nicht wechseln, wenn du verwandelt bist!") say("") return
elseif get_time() < pc.getqf("next_time") then say_title("Umwandlungsrolle") say_reward("Du musst noch warten,") say_reward("bis du das nächste mal dein Geschlecht wechseln kannst!") say("") return end
else say_title("Umwandlungsrolle") say("Du willst dein Geschlecht wechseln?") say("") local s=select("Ja","Nö") if s==1 then say("Bist du dir GANZ sicher?") say("") local s2=select("Ja","Nö") if s2==1 then say("Ok ich werde dein Geschlecht wechseln...") say_reward("Relog damit die Änderung aktiv wird") say("") pc.remove_item(71048,1) pc.setqf("next_time", get_time() + 86400 * 3) pc.change_sex() local m_sex = pc.get_sex() if m_sex == 0 then char_log(0, "CHANGE_SEX", "F -> M") else char_log(0, "CHANGE_SEX", "M -> F") end end elseif s==2 then say("Dann halt nicht") return end
elseif s2==2 then say("Dann halt nicht") return end end end end end
Du siehst ja die unterschiede...einmal hat jdes elseif ein return bekommen und das andere mal kommt nur unter das letze elseif ein return..versuch erst die erste quest und falls sie nicht geht eben die 2. und wenn beide nicht gehen melde dich nochmal
ich hätte mal wieder eine Quest die korrigiert werden müsste, finde zwar selbst keinen Fehler, aber der NPC lässt sich seit dieser Änderung nicht mehr anklicken.
quest event_map begin state start begin when login or levelup with pc.level >74 begin set_state(event_map) end end
state event_map begin when 20087.chat."Tal von Gorgaroth" begin say("") say(""..mob_name(20087).."") say("Du moechtest also, ") say("dass ich dich ins Tal von Gorgaroth") say("bringe?") say("Dein Wunsch sei mir Befehl.") say("") wait() if pc.count_item(30191) < 1 then say("") say(""..mob_name(20087).."") say("Du besitzt keinen Blutstein,") say("ich kann keine Anfänger ins Tal von Gorgaroth") say("bringen!") return else say("") say(""..mob_name(20087).."") say("Du besitzt einen Blutstein!") say("Ich bringe dich nun ins Tal von Gorgaroth!") say("Sei vorsichtig!") pc.remove_item(30191) wait() pc.warp(96100, 12200) end end end end
quest event_map begin state start begin when 20087.chat."Tal von Gorgaroth" begin say_title(""..mob_name(20087)..":") say("") say("Du möchtest also, dass ich dich ") say("in das Tal von Gorgaroth bringe?") say("") say("In diesem Tal knistert der Boden förmlich vor") say("finsterer Energie.") say("alle paar Sekunden stürzt dort ein Metin-Stein ab") say("und entläd seine Kräfte im Boden.") say("") say("Soll ich dich dort hin führen?") when pc.get_level() > 74 then local s = select("Ja, ich bitte dich darum!","Nein, blos nicht.") if s == 1 then if pc.count_item(30191) > 1 then pc.remove_item(30191) wait() pc.warp(96100, 12200) else say_title(mob_name(20087)) say("") say("Du besitzt keinen Blutstein.") say("Ich kann keine Anfänger ins Tal von Gorgaroth") say("bringen!") return end elseif s == 2 then return end else say_title(""..mob_name(20087)..":") say("") say("Ich würde dich sehr gerne dort hin bringen,") say("allerdings bist du noch zu schwach!") say("Komm wieder wenn du mindestens Lv.75 erreicht hast.") return end end end end
Hoffe jemand findet den Fehler.
(Der OnClick des Npc's steht nach wie vor auf 2)
quest event_map begin state start begin when 20087.chat."Tal von Gorgaroth" begin say_title(""..mob_name(20087)..":") say("") say("Du möchtest also, dass ich dich ") say("in das Tal von Gorgaroth bringe?") say("") say("In diesem Tal knistert der Boden förmlich vor") say("finsterer Energie.") say("alle paar Sekunden stürzt dort ein Metin-Stein ab") say("und entläd seine Kräfte im Boden.") say("") say("Soll ich dich dort hin führen?") when pc.get_level() > 74 then local s = select("Ja, ich bitte dich darum!","Nein, blos nicht.") if s == 1 then if pc.count_item(30191) < 1 then say_title(mob_name(20087)) say("") say("Du besitzt keinen Blutstein.") say("Ich kann keine Anfänger ins Tal von Gorgaroth") say("bringen!") return end
if pc.get_level() < 74 then say_title(""..mob_name(20087)..":") say("") say("Ich würde dich sehr gerne dort hin bringen,") say("allerdings bist du noch zu schwach!") say("Komm wieder wenn du mindestens Lv.75 erreicht hast.") return end
else pc.remove_item(30191, 1) wait() pc.warp(96100, 12200) end
elseif s == 2 then return end end end end end
Hatte gerade Probleme mit dem else
müsste gehen, falls nicht, meld dich nochmal
ist gerade etwas spät und so
quest shop begin
state start begin
when 71049.use begin
if pc.get_map_index()==1 and pc.get_map_index()==21 and pc.get_map_index()==41 then
pc.warp(koords,koords)
end
end
end
Es passiert nichts beim anklicken des Bündels.
Folgender Fehler bei sh make:
test.quest:8:Abort trap (core dumped)
quest shop begin state start begin when 71049.use begin if pc.get_map_index()==1 and pc.get_map_index()==21 and pc.get_map_index()==41 then pc.warp(koords,koords) else end end end
glaube das müsst gehen, wen nicht, mach einfach noch ein end dran.