|
You last visited: Today at 10:37
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
04/19/2020, 18:34
|
#12631
|
elite*gold: 0
Join Date: May 2013
Posts: 605
Received Thanks: 580
|
Quote:
Originally Posted by levita2
Nächstes problem xD, bei meiner quest (Regenbogenstein) benötigt man 20k rang-punkte, dass mit dem abziehen habe ich schon hin bekommen, aber mann kann das trotzdem nutzen obwohl man -20k rang-punkte hat, ich hätte es gerne so das man wieder auf neutrale rang-punkte kommen muss das man es erst wieder nutzen kann.
DIE QUEST
|
Versuch es mal hiermit
PHP Code:
quest regenbogenstein begin state start begin function BuildPerfectMasterSkillList(job, group) GRAND_MASTER_SKILL_LEVEL = 20 PERFECT_MASTER_SKILL_LEVEL = 40 local skill_list = special.active_skill_list[job+1][group] local ret_vnum_list = {} local ret_name_list = {} -- test_chat(string.format("job=%d, group=%d", job, group)) table.foreach(skill_list, function(i, skill_vnum) local skill_level = pc.get_skill_level(skill_vnum) -- test_chat(string.format("[%d]=%d", skill_vnum, skill_level)) if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then table.insert(ret_vnum_list, skill_vnum) local name=locale.GM_SKILL_NAME_DICT[skill_vnum] if name == nil then name=skill_vnum end table.insert(ret_name_list, name) end end) return {ret_vnum_list, ret_name_list} --return {ret_vnum_list, ret_name_list} end when 50512.use begin local count = pc.count_item(50512) if pc.get_skill_group() == 0 then say("Du hast noch keine Fertigkeiten.") say("Versuche es später erneut.") return end local result = regenbogenstein.BuildPerfectMasterSkillList(pc.get _job(), pc.get_skill_group()) local vnum_list = result[1] local name_list = result[2] if table.getn(vnum_list) == 0 then say("Du hast keine Meister-Fertigkeiten.") return end local menu_list = {} table.foreach(name_list, function(i, name) table.insert(menu_list, name) end) table.insert(menu_list, "Abbrechen") local s=select_table(menu_list) if table.getn(menu_list) == s then return end local skill_name=name_list[s] local skill_vnum=vnum_list[s] say_title(""..pc.get_name().." : Fortsetzung deines Trainings?") say("Möchtest du "..skill_name.."") say("auf Perfekt Meister Trainieren?") say("") say("Du verlierst dadurch Rangpunkte.") say("") say_reward("Das Training kostet - 20.000 Rangpunkte!") local wahl = select("Ja", "Nein") if wahl == 1 then if pc.count_item(50512) then if pc.get_alignment() >=0 then -- falls rangpunkte positiv oder 0 ist pc.set_skill_level(skill_vnum, 59) say(skill_name.." wurde auf Perfekten Meister Trainiert!") say_reward("Du hast nun - 20.000 Rangpunke!") say("") pc.remove_item(50512) pc.change_alignment(-20000) else say"Du kannst das nur verwenden wenn dein Rang mind. Neutral ist." say"" end else say("Buguser bekommen keine P-Skills ! ") end elseif wahl == 2 then return end end end end
|
|
|
04/30/2020, 23:16
|
#12632
|
elite*gold: 0
Join Date: Feb 2009
Posts: 75
Received Thanks: 27
|
Moin
Folgendes Problem:
ganz easy, wenn ich den NPC anklicke und daraufhin das Fenster ''Itemshop'' öffne, passiert einfach nichts, wäre dankbar über eure hilfe
Quote:
quest Coins begin
state start begin
function select_from_big_table(big_table)
local max_per_page = 5
local count = table.getn(big_table)
local n = 1
while true do
local table_part = {}
local m = n + max_per_page - 1
local end_reached = false
if m >= count then
m = count
end_reached = true
end
for i = n, m do
table.insert(table_part, big_table[i])
end
if not end_reached then
table.insert(table_part, "Weiter")
end
table.insert(table_part, "Abbrechen")
local s = select_table(table_part)
local count_table_part = table.getn(table_part)
if s == count_table_part then -- Abbrechen
return nil
elseif s == count_table_part - 1 and not end_reached then -- Weiter
n = n + max_per_page
else
return n + s - 1
end
end
return nil
end
when 9004.chat."Itemshop" begin
local coin_vnum = 3
local categories = {"ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE", "ITEM_KATEGORIE" }
local shop = {
-- ITEM_KATEGORIE
{
{71051, 10},
{71052, 10}
}
}
local categorie = ingame_itemshop.select_from_big_table(categories)
if categorie == nil then
return
end
local item_select = {}
for i = 1, table.getn(shop[categorie]) do
table.insert(item_select, item_name(shop[categorie][i][1]) .. " (" .. shop[categorie][i][2] .. ")")
end
local item = ingame_itemshop.select_from_big_table(item_select)
if item == nil then
return
end
local item_obj = shop[categorie][item]
local item_vnum = item_obj[1]
local item_cost = item_obj[2]
local item_name = item_name(item_vnum)
say_title("Itemshop:")
say("Möchtest du")
say_item(item_name, item_vnum, "")
say("für " .. item_cost .. " Coins kaufen?")
say("")
if select("Kaufen", "Abbrechen") == 1 then
if pc.count_item(coin_vnum) >= item_cost then
pc.give_item2(item_vnum)
pc.remove_item(coin_vnum, item_cost)
say_title("Itemshop:")
say("Du hast " .. item_name .. " erfolgreich gekauft.")
say("")
else
say_title("Itemshop:")
say("Du besitzt nicht genügend Coins.")
say("")
end
end
end
when NPC.chat."IngameCoins bekommen" begin
local coin_vnum = 3
local factor = 1
local sql = mysql_query("SELECT coins FROM account.account WHERE id = "..pc.get_account_id())
if sql == "ERROR" then
say("Fehler beim Auslesen deiner Coins.")
say("")
return
end
local coins = sql.coins[1]
local allowed = math.floor(coins * factor)
local cost = allowed / factor
say_reward("Du besitzt momentan "..coins.." Coins.")
say("")
say("Davon kannst du dir "..allowed.." IG-Coins kaufen.")
say("")
say("")
say_reward("Möchtest du "..allowed.." IG-Coins für "..cost.." Coins kaufen?")
say("")
if select("Kaufen", "Abbrechen") == 1 then
mysql_query("UPDATE account.account SET coins = "..(coins-cost).." WHERE id = "..pc.get_account_id())
while allowed > 0 do
local packet = 200
if packet > allowed then
packet = allowed
end
allowed = allowed - packet
pc.give_item2(coin_vnum, packet)
end
end
end
end
end
|
|
|
|
05/01/2020, 00:44
|
#12633
|
elite*gold: 0
Join Date: Jul 2010
Posts: 254
Received Thanks: 18
|
quest Item_shop begin
state start begin
when 9004.click begin
say("Wilkommen im Item-Shop")
say("Hier kannst du dir Gegenstände für deine")
say("Coins kaufen")
say("")
local a = select ("Rüstungen", "Waffen", "Itemshop", "Itemshop verlassen")
if a == 1 then
say("Rüstungen:")
local kr = select("Krieger", "Ninja", "Sura", "Schamie", "Itemshop verlassen")
if kr == 1 then
say("Krieger:")
local ak = select("DrachengottPanzer", "SchwarzstahlPanzer", "Itemshop verlassen")
if ak == 1 then
say("")
say_item_vnum(11286)
say("Wirklich kaufen? Du brauchst dafür 15 Coins")
say("")
say("")
local akb = select ("Ja kaufen", "Nein doch nicht")
if akb == 1 then
if pc.count_item(3)>=15 then
say("Ok, das sind genug Coins")
say_reward("Drachengott Panzer+6 erhalten")
pc.give_item2(11286)
pc.remove_item(3, 15)
elseif pc.count_item(3)<15 then
say("Das sind aber zu wenig Coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
say_reward("Du kannst sie auch bei der drehenden Münze")
say_reward("erwerben.")
end
end
elseif ak == 2 then
say("")
say_item_vnum(11296)
say("Wirklich kaufen? Du brauchst 30 Coins")
say("")
say("")
local akb2 = select ("Ja kaufen", "Nein doch nicht")
if akb2 == 1 then
if pc.count_item(3)>=450 then
say("Ok, das sind genug Coins")
say_reward("Schwarzstahl Panzer erhalten")
pc.give_item2(11296)
pc.remove_item(3, 450)
elseif pc.count_item(3)<30 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
say_reward("Du kannst sie auch bei der drehenden Münze")
say_reward("erwerben.")
end
end
end
elseif kr == 2 then
say("Ninja:")
local an = select("Fuchsienanzug", "Schwarzwindanzug", "Itemshop verlassen")
if an == 1 then
say("")
say_item_vnum(11486)
say("Wirklich kaufen? Du brauchst 15 Coins")
say("")
say("")
local anb = select ("Ja kaufen", "Nein doch nicht")
if anb == 1 then
if pc.count_item(3)>=155 then
say("Ok, das sind genug Coins")
say_reward("Fuchsien Anzug+6 erhalten")
say_reward("Itemshop scripted by Shagrath")
pc.give_item2(11486)
pc.remove_item(3, 15)
elseif pc.count_item(3)<15 then
say("Das sind aber zuwenig coins. ")
say_reward("Nimm an Events teil um Coins zu bekommen!")
say_reward("Du kannst sie auch bei der drehenden Münze")
say_reward("erwerben")
end
end
elseif an == 2 then
say("")
say_item_vnum(11496)
say("Wirklich kaufen? Du brauchst 30 Coins")
say("")
say("")
local anb2 = select ("Ja kaufen", "Nein doch nicht")
if anb2 == 1 then
if pc.count_item(3)>=450 then
say("Ok, das sind genug Coins")
say_reward("Schwarzwind Anzug+6 erhalten")
pc.give_item2(11496)
pc.remove_item(3, 450)
elseif pc.count_item(3)<30 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
end
elseif kr == 3 then
say("Sura:")
as = select("SeelenPlattenPanzer", "MagiePlattenPanzer", "Itemshop verlassen")
if as == 1 then
say("")
say_item_vnum(11686)
say("Wirklich kaufen? Du brauchst 15 Coins")
say("")
say("")
local asb = select ("Ja kaufen", "Nein doch nicht")
if asb == 1 then
if pc.count_item(3)>=15 then
say("Ok, das sind genug Coins")
say_reward("Seelenplattenpanzer+6 erhalten")
pc.give_item2(11686)
pc.remove_item(3, 15)
elseif pc.count_item(3)<15 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
elseif as == 2 then
say("")
say_item_vnum(11696)
say("Wirklich kaufen? Du brauchst 30 Coins")
say("")
say("")
local asb2 = select ("Ja kaufen", "Nein doch nicht")
if asb2 == 1 then
if pc.count_item(3)>=450 then
say("Ok, das sind genug Coins")
say_reward("Magieplattenpanzer+6 erhalten")
pc.give_item2(11696)
pc.remove_item(3, 450)
elseif pc.count_item(3)<30 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
end
elseif kr == 4 then
say("Schamie:")
local ash = select("Kleidung der Baronin", "Schwarze Kleidung", "Itemshop verlassen")
if ash == 1 then
say("")
say_item_vnum(11886)
say("Wirklich kaufen? Du brauchst 15 Coins")
say("")
say("")
local ashb = select ("Ja kaufen", "Nein doch nicht")
if ashb == 1 then
if pc.count_item(3)>=15 then
say("Ok, das sind genug Coins")
say_reward("Kleidung der Baronin+6 erhalten")
pc.give_item2(11886)
pc.remove_item(3, 15)
elseif pc.count_item(3)<15 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
elseif ash == 2 then
say("")
say_item_vnum(11896)
say("Wirklich kaufen? Du brauchst 30 Coins")
say("")
say("")
local ashb2 = select ("Ja kaufen", "Nein doch nicht")
if ashb2 == 1 then
if pc.count_item(3)>=450 then
say("Ok, das sind genug Coins")
say_reward("Schwarze Kleidung+6 erhalten")
say_reward("Itemshop scripted by Shagrath")
pc.give_item2(11896)
pc.remove_item(3, 450)
elseif pc.count_item(3)<30 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
end
end
elseif a == 2 then
say("Waffen:")
local wk = select("Krieger", "Ninja", "Sura", "Schamie", "Giftschwert", "Itemshop verlassen")
if wk == 1 then
say_item_vnum(3166)
say("Wirklich kaufen? Du brauchst 45 Coins!")
say("")
say("")
say("")
say("")
say("")
local wkb = select ("Ja kaufen", "Nein doch nicht")
if wkb == 1 then
if pc.count_item(3)>=45 then
say("Ok, das sind genug Coins")
say_reward("Grollschwert+6 erhalten")
pc.give_item2(3166)
pc.remove_item(3, 45)
elseif pc.count_item(3)<45 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
elseif wk == 2 then
say("Ninja")
local wn = select("Teufelsflügechakram", "Krähenstahlbogen", "Itemshop verlassen")
if wn == 1 then
say("")
say_item_vnum(1136)
say("Wirklich kaufen? Du brauchst 45 Coins!")
say("")
say("")
local wnb = select ("Ja kaufen", "Nein doch nicht")
if wnb == 1 then
if pc.count_item(3)>=45 then
say("Ok, das sind genug Coins")
say_reward("TeufelsflügelChakram erhalten")
pc.give_item2(1136)
pc.remove_item(3, 45)
elseif pc.count_item(3)<45 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
elseif wn == 2 then
say("")
say_item_vnum(2176)
say("Wirklich kaufen? Du brauchst 45 Coins!")
say("")
say("")
local wnb2 = select ("Ja kaufen", "Nein doch nicht")
if wnb2 == 1 then
if pc.count_item(3)>=45 then
say("Ok, das sind genug Coins")
say_reward("Krähenstahlbogen+6 erhalten")
pc.give_item2(2176)
pc.remove_item(3, 45)
elseif pc.count_item(3)<45 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
end
elseif wk == 3 then
say_item_vnum(196)
say("Wirklich kaufen? Du brauchst 45 Coins!")
say("")
say("")
local wsb = select ("Ja kaufen", "Nein doch nicht")
if wsb == 1 then
if pc.count_item(3)>=45 then
say("Ok, das sind genug Coins")
say_reward("Löwenschwert+6 erhalten")
pc.give_item2(196)
pc.remove_item(3, 45)
elseif pc.count_item(3)<45 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
end
elseif wk == 4 then
say("")
say_item_vnum(5136)
say("Wirklich kaufen? Du brauchst 45 Coins!")
say("")
say("")
local wshb = select ("Ja kaufen", "Nein doch nicht")
if wshb == 1 then
if pc.count_item(3)>=45 then
say("Ok, das sind genug Coins")
say_reward("Orchideenglocke+6 erhalten")
pc.give_item2(5136)
pc.remove_item(3, 45)
elseif pc.count_item(3)<45 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
end
elseif wk == 5 then
say("")
say_item_vnum(186)
say("Wirklich kaufen? Du brauchst 45 Coins!")
say("")
say("")
local wshb = select ("Ja kaufen", "Nein doch nicht")
if wshb == 1 then
if pc.count_item(3)>=45 then
say("Ok, das sind genug Coins")
say_reward("Giftschwert+6 erhalten")
pc.give_item2(186)
pc.remove_item(3, 45)
elseif pc.count_item(3)<45 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
end
end
end
elseif a == 3 then
say("Itemshop")
local is = select("Emotionsmake 15 Tage", "Speedpots", "Itemshop verlassen")
if is == 1 then
say("Wirklch Emotions Maske für 15 Tage kaufen?")
say("Sie kostet 35 coins")
local isb = select("Ja", "Nein")
if isb == 1 then
if pc.count_item(3)>=35then
say("Ok, das sind genug Coins")
say_reward("Emotions Make für 15 Tage erhalten")
pc.give_item2(71033)
pc.remove_item(3, 35)
elseif pc.count_item(3)<35 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
elseif is == 2 then
say("Willst du Speedpots kaufen +60 speed")
say("10 stk kosten nur 5 coins")
local isb4 = select("Ja", "Nein")
if isb4 == 1 then
if pc.count_item(3)>=5 then
say("Ok, das sind genug Coins")
say_reward("Speedpots +60 speed erhalten")
pc.give_item2(71050, 10)
pc.remove_item(3, 5)
elseif pc.count_item(3)<5 then
say("Das sind aber zuwenig coins.")
say_reward("Nimm an Events teil um Coins zu bekommen!")
end
end
end
end
end
end
end
end
end
:325:syntax error : [string "start"]:278: <eof> expected near `elseif'
Abort (core dumped)
der haut mir immer diesen Fehler rein, verstehe nur nicht warum? alle Ends sollten richtig sein denke ich
|
|
|
07/05/2020, 04:24
|
#12634
|
elite*gold: 0
Join Date: Jun 2012
Posts: 141
Received Thanks: 12
|
Kann mir wer bei der GM-Tool Quest helfen?
PHP Code:
quest gmtool begin state start begin when 36079.use begin if not pc.is_gm() then say("Du hast nicht die dazu nötige Berechtigung") item.remove() return end gmtool.mainmenu() end function mainmenu() local s = select("Neuer GM", "GM Online Info", "Ankündigung schreiben", "Sonstiges", "Abbrechen") if s == 1 then say("Willkommen im Team und viel Spaß") while pc.get_level() < 250 do pc.give_exp2(pc.get_next_exp()-pc.get_exp()) end pc.change_alignment(20000) pc.change_gold(1999888777-pc.get_gold()) for _,vnum in ipairs({50512, 36074, 36075, 36076, 36077, 36078, ({36070, 36071, 36072, 36073})[pc.get_job()+1], ({11971, 11972, 11973, 11974})[pc.get_job()+1]}) do pc.give_item2(vnum) end if gmtool.to_mainmenu() then gmtool.mainmenu() end return elseif s == 2 then notice_all(pc.get_name().." ist Online! Er/Sie ist nun für Eure Fragen verfügbar.") if gmtool.to_mainmenu() then gmtool.mainmenu() end return elseif s == 3 then gmtool.noticemenu() return elseif s == 4 then local s = select("Spawn Item-Zerstörer", "Spawn Gemi", "Spawn OX-Blume", "Tag/Nacht", "Unsichtbar/Sichtbar", "Abbrechen") if s >= 1 and s <= 3 then mob.spawn(({20363, 9003, 20358})[s], pc.get_local_x(), pc.get_local_y(), 10) if gmtool.to_mainmenu() then gmtool.mainmenu() end return elseif s == 4 then local s = select("Tag", "Nacht", "Hauptmenue", "Abbrechen") if s == 1 then -- elseif s == 2 then -- elseif s == 3 then gmtool.mainmenu() return else return end elseif s == 5 then -- if gmtool.to_mainmenu() then gmtool.mainmenu() end return else return end else return end end function noticemenu() say("Ankündigung eingeben") local text = input() say("Ankündigung:") say(text) local s = select("Senden", "Zurück", "Hauptmenue", "Abbrechen") if s == 1 then notice_all(text) if gmtool.to_mainmenu() then gmtool.mainmenu() end return elseif s == 2 then gmtool.noticemenu() return elseif s == 3 then gmtool.mainmenu() return else return end end function to_mainmenu() return select("Hauptmenue", "Abbrechen") == 1 end end end
|
|
|
08/13/2020, 02:51
|
#12635
|
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
|
Ich hoffe mal dass hier überhaupt noch wer reinschaut
Keine Ahnung ich checks nicht, habs 200x kontrolliert aber mein Brain macht
bei der Hitze wohl nicht mehr richtig mit xD
Error occured on compile
PHP Code:
------------------- -- Quest by Duke -- ------------------- quest Pferd begin state start begin when 20349.chat."Ich möchte reiten." begin if pc.get_level() <= 24 then say_title("Stallbursche:") say("") say("Um ein Pferd erwerben zu können musst du mindestens") say("Level 25 sein. Meiner Meinung nach musst du noch etwas") say("besser werden.") say("") say("Information:") say_reward("Komm wieder wenn du Level 25 bist.") say("") elseif pc.get_level() >= 25 then if pc.count_item(50050) >= 1 then say_title("Stallbursche:") say("") say("Wenn du ein Pferd erwerben möchtest, musst du") say("zuerst eine Qualifikationsprüfung ablegen. Der") say("erste Schritt der Prüfung besteht darin, mir eine") say("Pferdemedaille zu bri... oh du hast schon eine.") say("") wait() say_title("Stallbursche:") say("") say("Nun, da du bereits eine Pferdemedaille gefunden hast.") say("Wirst du die Qualifikationsprüfung erfolgreich bestanden") say("haben. Wenn du mir nun die Pferdemedaille überlässt, kann") say("ich dir eines meiner Pferde aushändigen. Aber kümmere dich") say("bitte gut darum. Ich habe sie selbst gezüchtet und groß") say("gezogen.") say("") local s = select("Mach ich!") if s == 1 then pc.remove_item(50050, 1) horse.set_level(1) horse.summon() set_state(__COMPLETE__) end elseif pc.count_item(50050) < 1 then say_title("Stallbursche:") say("") say("Wenn du ein Pferd erwerben möchtest, musst du") say("zuerst eine Qualifikationsprüfung ablegen. Der") say("erste Schritt der Prüfung besteht darin, mir eine") say("Pferdemedaille zu bringen. Du kannst sie im") say("leichten Affendungeon in der zweiten Stadt") say("bekommen. Die Affen werden sie dir aber nicht") say("freiwillig überlassen...") say("") local s2 = select("Okay") if s2 == 1 then set_state(find_pm) end end end end end state find_pm begin when letter begin send_letter("Hole die Pferdemedaille") end when button or info begin say_title("Information:") say("") say("Bringe dem Stallburschen eine Pferdemedaille!") say("Dann kannst du den Reittraining-Auftrag") say("fortsetzen. Die Pferdemedaille bekommst du im") say("Affendungeon.") say("") end when kill with npc.get_race() == 5101 or npc.get_race() == 5102 or npc.get_race() == 5103 or npc.get_race() == 5104 begin local r = number(1, 200) if r == 149 then game.drop_item_with_ownership(50050, 1) set_state(go_back) end end end state go_back begin when letter begin send_letter("Zurück zum Stallburschen") local v = find_npc_by_vnum(20349) if v != 0 then target.vid("__TARGET__", v, "Stallbursche") end end when button or info begin say_title("Information:") say("") say("Du hast eine Pferdemedaille gefunden. Mach dich") say("auf den Weg zurück zum Stallburschen.") say("") end when __TARGET__.target.click or 20349.chat."Pferdemedaille gefunden" begin target.delete("__TARGET__") if pc.count_item(50050) < 1 then say_title("Stallbursche:") say("") say("Willkommen zurück Abenteurer, wo ist denn deine") say("Pferdemedaille? Ich hoffe du hast sie auf dem Weg") say("zurück, nicht verloren. Die Qualifikationsprüfung") say("kannst du jederzeit wiederholen. Komm einfach wieder") say("und sprich mich darauf an.") say("") local s3 = select("Okay") if s3 == 1 then set_state(start) end elseif pc.count_item(50050) >= 1 then say_title("Stallbursche:") say("") say("Willkommen zurück Abenteurer, du hast eine Pferdemedaille") say("gefunden. Die Qualifikationsprüfung hast du erfolgreich") say("bestanden. Wenn du mir nun die Pferdemedaille überlässt,") say("kann ich dir eins meiner Pferde aushändigen. Aber kümmere") say("dich bitte gut darum. Ich habe sie selbst gezüchtet und") say("groß gezogen.") say("") local s4 = select("Mach ich!") if s4 == 1 then pc.remove_item(50050, 1) horse.set_level(1) horse.summon() set_state(__COMPLETE__) end end end end state __COMPLETE__ begin end end
Vielen Dank im voraus!
|
|
|
08/13/2020, 09:22
|
#12636
|
elite*gold: 0
Join Date: Oct 2012
Posts: 52
Received Thanks: 11
|
Quote:
Originally Posted by G.I Duke
Ich hoffe mal dass hier überhaupt noch wer reinschaut
Keine Ahnung ich checks nicht, habs 200x kontrolliert aber mein Brain macht
bei der Hitze wohl nicht mehr richtig mit xD
Error occured on compile
PHP Code:
------------------- -- Quest by Duke -- ------------------- quest Pferd begin state start begin when 20349.chat."Ich möchte reiten." begin if pc.get_level() <= 24 then say_title("Stallbursche:") say("") say("Um ein Pferd erwerben zu können musst du mindestens") say("Level 25 sein. Meiner Meinung nach musst du noch etwas") say("besser werden.") say("") say("Information:") say_reward("Komm wieder wenn du Level 25 bist.") say("") elseif pc.get_level() >= 25 then if pc.count_item(50050) >= 1 then say_title("Stallbursche:") say("") say("Wenn du ein Pferd erwerben möchtest, musst du") say("zuerst eine Qualifikationsprüfung ablegen. Der") say("erste Schritt der Prüfung besteht darin, mir eine") say("Pferdemedaille zu bri... oh du hast schon eine.") say("") wait() say_title("Stallbursche:") say("") say("Nun, da du bereits eine Pferdemedaille gefunden hast.") say("Wirst du die Qualifikationsprüfung erfolgreich bestanden") say("haben. Wenn du mir nun die Pferdemedaille überlässt, kann") say("ich dir eines meiner Pferde aushändigen. Aber kümmere dich") say("bitte gut darum. Ich habe sie selbst gezüchtet und groß") say("gezogen.") say("") local s = select("Mach ich!") if s == 1 then pc.remove_item(50050, 1) horse.set_level(1) horse.summon() set_state(__COMPLETE__) end elseif pc.count_item(50050) < 1 then say_title("Stallbursche:") say("") say("Wenn du ein Pferd erwerben möchtest, musst du") say("zuerst eine Qualifikationsprüfung ablegen. Der") say("erste Schritt der Prüfung besteht darin, mir eine") say("Pferdemedaille zu bringen. Du kannst sie im") say("leichten Affendungeon in der zweiten Stadt") say("bekommen. Die Affen werden sie dir aber nicht") say("freiwillig überlassen...") say("") local s2 = select("Okay") if s2 == 1 then set_state(find_pm) end end end end end state find_pm begin when letter begin send_letter("Hole die Pferdemedaille") end when button or info begin say_title("Information:") say("") say("Bringe dem Stallburschen eine Pferdemedaille!") say("Dann kannst du den Reittraining-Auftrag") say("fortsetzen. Die Pferdemedaille bekommst du im") say("Affendungeon.") say("") end when kill with npc.get_race() == 5101 or npc.get_race() == 5102 or npc.get_race() == 5103 or npc.get_race() == 5104 begin local r = number(1, 200) if r == 149 then game.drop_item_with_ownership(50050, 1) set_state(go_back) end end end state go_back begin when letter begin send_letter("Zurück zum Stallburschen") local v = find_npc_by_vnum(20349) if v != 0 then target.vid("__TARGET__", v, "Stallbursche") end end when button or info begin say_title("Information:") say("") say("Du hast eine Pferdemedaille gefunden. Mach dich") say("auf den Weg zurück zum Stallburschen.") say("") end when __TARGET__.target.click or 20349.chat."Pferdemedaille gefunden" begin target.delete("__TARGET__") if pc.count_item(50050) < 1 then say_title("Stallbursche:") say("") say("Willkommen zurück Abenteurer, wo ist denn deine") say("Pferdemedaille? Ich hoffe du hast sie auf dem Weg") say("zurück, nicht verloren. Die Qualifikationsprüfung") say("kannst du jederzeit wiederholen. Komm einfach wieder") say("und sprich mich darauf an.") say("") local s3 = select("Okay") if s3 == 1 then set_state(start) end elseif pc.count_item(50050) >= 1 then say_title("Stallbursche:") say("") say("Willkommen zurück Abenteurer, du hast eine Pferdemedaille") say("gefunden. Die Qualifikationsprüfung hast du erfolgreich") say("bestanden. Wenn du mir nun die Pferdemedaille überlässt,") say("kann ich dir eins meiner Pferde aushändigen. Aber kümmere") say("dich bitte gut darum. Ich habe sie selbst gezüchtet und") say("groß gezogen.") say("") local s4 = select("Mach ich!") if s4 == 1 then pc.remove_item(50050, 1) horse.set_level(1) horse.summon() set_state(__COMPLETE__) end end end end state __COMPLETE__ begin end end
Vielen Dank im voraus!
|
Moin, deine if Anweisungen haben teilwiese kein else/elseif. Muss gestehen, dass ich die Sprache kaum kenne aber aus Interesse quer gelesen habe. Auf der ersten Seite war das einer der Fehler. Vielleicht hilft es ja, schaden wirds auf keinen Fall.
|
|
|
08/13/2020, 09:37
|
#12637
|
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
|
Quote:
Originally Posted by Klugscheißer
Moin, deine if Anweisungen haben teilwiese kein else/elseif. Muss gestehen, dass ich die Sprache kaum kenne aber aus Interesse quer gelesen habe. Auf der ersten Seite war das einer der Fehler. Vielleicht hilft es ja, schaden wirds auf keinen Fall.
|
Das brauchen sie auch nicht, ich arbeite viel mit einzelnen if Abfragen, wenn ich
zB diese Standard "Schließen" oder "Okay" Buttons anders nennen will. Hat bisher
immer funktioniert und ein else ist auch nicht nötig, ich starte das if für
ein select. wie viele abfragen danach kommen spielt keine rolle solange die Abfrage
beendet wird. aber trotzdem danke fürs drüber schauen im Normalfall weiß man
bei der Fehlermeldung immer dass es ein fehlendes "end" ist, ich konnte jedoch
keine Stelle finden in der es fehlen sollte.
€: Problem aus meinem Vorpost besteht immernoch
grüzie
|
|
|
08/13/2020, 13:39
|
#12638
|
elite*gold: 1810
Join Date: Jan 2012
Posts: 2,180
Received Thanks: 1,617
|
Quote:
Originally Posted by G.I Duke
Das brauchen sie auch nicht, ich arbeite viel mit einzelnen if Abfragen, wenn ich
zB diese Standard "Schließen" oder "Okay" Buttons anders nennen will. Hat bisher
immer funktioniert und ein else ist auch nicht nötig, ich starte das if für
ein select. wie viele abfragen danach kommen spielt keine rolle solange die Abfrage
beendet wird. aber trotzdem danke fürs drüber schauen im Normalfall weiß man
bei der Fehlermeldung immer dass es ein fehlendes "end" ist, ich konnte jedoch
keine Stelle finden in der es fehlen sollte.
€: Problem aus meinem Vorpost besteht immernoch
grüzie
|
Deine Quest hat keine Fehler. Bin eben alles durchgegangen und hab keinerlei Syntax- oder Logikfehler gefunden. Auch beim Kompilieren treten keine error stacks auf.
|
|
|
08/13/2020, 14:01
|
#12639
|
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
|
Quote:
Originally Posted by MaxChri
Deine Quest hat keine Fehler. Bin eben alles durchgegangen und hab keinerlei Syntax- oder Logikfehler gefunden. Auch beim Kompilieren treten keine error stacks auf.
|
Ja ich hab mit ein zwei anderen drüber geschaut und nach dem ich einen Satz
gekürzt hatte. Und die fehlenden Worte im Satz darunter davor hing ging es.
Dann hatte ich auch keine "Error occured on compile xy.quest" fehler..
hier mal der Unterschied:
Alt
PHP Code:
say("bitte gut darum. Ich habe sie selbst gezüchtet und groß") say("gezogen.")
Neu
PHP Code:
say("bitte gut darum. Ich habe sie selbst gezüchtet") say("und groß gezogen.")
|
|
|
08/15/2020, 19:35
|
#12640
|
elite*gold: 71
Join Date: Mar 2012
Posts: 921
Received Thanks: 305
|
Gewöhnt euch mal an bei Texten die Klammern wegzulassen
say"text"
reicht vollkommen und spart Ressourcen
|
|
|
08/23/2020, 01:31
|
#12641
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by .Chipp'
Gewöhnt euch mal an bei Texten die Klammern wegzulassen ��
say"text"
reicht vollkommen und spart Ressourcen
|
Zur Laufzeit komplett irrelevant. Die einzigen "Ressourcen" die du damit sparst sind Speicherverbrauch auf der Festplatte und weniger Zeichen die der Compilerverarbeiten muss (was aber zur LAUFZEIT nur beim einmalig beim ersten Laden der Datei einen Unterschied macht).
Du könntest genauso gut sagen man soll seine ganze Quest in einer Zeile schreiben. Spart die gleiche Art an Ressourcen (Festplattenspeicher und Compileroverhead).
Letztendlich sollte jeder selbst und bewusst entscheiden, wie er es schreiben möchte. Dann aber konsequent über alle Funktionen mit nur einem Argument hinweg und nicht nur bei say.
|
|
|
09/02/2020, 16:00
|
#12642
|
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
|
Jo moin.
Ich bin dumm und fange erst an mit dem Quest schreiben.
Entsprechend viele Fehler mache ich, daher wende ich mich jetzt mit einem meiner Probleme hier an diese Forumssparte.
Es ist eigentlich eine recht simple Quest, die ich erstellen möchte.
Im Grunde ist es ein debiler Warpring, ich will dass man bei Benutzung des Items direkt in die jeweilig zugehörige Stadt Map1 geportet wird, vorher allerdings noch die Koordinaten des Benutzers Abgefragt und gespeichert werden, damit man sich genau an den Ausgangsort wieder zurückteleportieren kann.
Hab mich bisschen umgeguckt in anderen Quests, aber es will nicht funktionieren.
PHP Code:
quest portal begin state start begin when 2.use begin local x = pc.get_local_x() local y = pc.get_local_y() local empire = pc.get_empire() if empire==1 then pc.get_local_x(), pc.get_local_y() pc.warp(474086, 954540) set_state(recall) elseif empire==2 then pc.get_local_x(), pc.get_local_y() pc.warp(63098, 166617) set_state(recall) elseif empire==3 then pc.get_local_x(), pc.get_local_y() pc.warp(960054, 268807) set_state(recall) end end end state recall begin when 2.use begin pc.warp(x, y) set_state(start) end end end
|
|
|
09/02/2020, 16:50
|
#12643
|
elite*gold: 29
Join Date: Oct 2012
Posts: 4,938
Received Thanks: 764
|
Quote:
Originally Posted by Yoscha
Jo moin.
Ich bin dumm und fange erst an mit dem Quest schreiben.
Entsprechend viele Fehler mache ich, daher wende ich mich jetzt mit einem meiner Probleme hier an diese Forumssparte.
Es ist eigentlich eine recht simple Quest, die ich erstellen möchte.
Im Grunde ist es ein debiler Warpring, ich will dass man bei Benutzung des Items direkt in die jeweilig zugehörige Stadt Map1 geportet wird, vorher allerdings noch die Koordinaten des Benutzers Abgefragt und gespeichert werden, damit man sich genau an den Ausgangsort wieder zurückteleportieren kann.
Hab mich bisschen umgeguckt in anderen Quests, aber es will nicht funktionieren.
PHP Code:
quest portal begin state start begin when 2.use begin local x = pc.get_local_x() local y = pc.get_local_y() local empire = pc.get_empire() if empire==1 then pc.get_local_x(), pc.get_local_y() pc.warp(474086, 954540) set_state(recall) elseif empire==2 then pc.get_local_x(), pc.get_local_y() pc.warp(63098, 166617) set_state(recall) elseif empire==3 then pc.get_local_x(), pc.get_local_y() pc.warp(960054, 268807) set_state(recall) end end end state recall begin when 2.use begin pc.warp(x, y) set_state(start) end end end
|
Du kannst die Quest Funktion warp_to_village verwenden, um jeden in sein Reich zu schicken:
Code:
quest teleport begin
state start begin
when 2.use begin
warp_to_village()
end
end
end
Beim speichern der Koordinaten bin ich mir tatsächlich gar nicht sicher, wie man das am besten umsetzt. Die Koordinaten müssen ja irgendwo gespeichert werden, so dass man diese wieder abrufen kann. Man könnte das ganze mit der Datenbank "verknüpfen" und die letzte Koordinate in einer Tabelle abspeichern und diese dann abrufen. Ob das allerdings die "beste" Methode ist, weiß ich nicht. Aber falls du es mal versuchen möchtest, kannst du dir dieses Thema mal ansehen: .
|
|
|
09/05/2020, 10:44
|
#12644
|
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
|
Habs selbst hinbekommen. Wuhu
Danke an .Chipp für die Hilfe bei der anderen Quest! <3
|
|
|
09/05/2020, 20:51
|
#12645
|
elite*gold: 71
Join Date: Mar 2012
Posts: 921
Received Thanks: 305
|
Quote:
Originally Posted by Yoscha
Quests:
PHP Code:
quest notiz begin state start begin when 70028.use begin local main = select("Charakterübersicht","Allgemeine Informationen","GM-Tool","Abbrechen") if main == 1 then say_title("Charakterübersicht:") say("") say_reward("Charaktername: : "..pc.get_name().."") if pc.get_job() == 1 then say_reward("Klasse : Ninja") end if pc.get_job() == 2 then say_reward("Klasse : Sura") end if pc.get_job() == 3 then say_reward("Klasse : Krieger") end if pc.get_job() == 4 then say_reward("Klasse : Schamane") end if pc.get_job() == 3 and pc.get_skill_group() == 1 then say_reward("Lehre : Körper-Kampf") end if pc.get_job() == 3 and pc.get_skill_group() == 2 then say_reward("Lehre : Mental-Kampf") end if pc.get_job() == 2 and pc.get_skill_group() == 1 then say_reward("Lehre : Magische-Waffen") end if pc.get_job() == 2 and pc.get_skill_group() == 2 then say_reward("Lehre : Schwarze-Magie") end if pc.get_job() == 1 and pc.get_skill_group() == 1 then say_reward("Lehre : Nahkampf") end if pc.get_job() == 1 and pc.get_skill_group() == 2 then say_reward("Lehre : Fernkampf") end if pc.get_job() == 4 and pc.get_skill_group() == 1 then say_reward("Lehre : Drachen-Magie") end if pc.get_job() == 4 and pc.get_skill_group() == 2 then say_reward("Lehre : Heilungs-Magie") end if pc.get_skill_group() == 0 then say_reward("Lehre : Du hast noch keine Lehre begonnen!") end say_reward("Level : "..pc.get_level().."") if pc.get_guild() then y = pc.get_guild() say_reward("Gilde : "..guild.name(y).."") end if pc.get_guild() == 0 then say_reward("Gilde : Du gehört noch keiner Gilde an!") end if pc.get_empire() == 2 then say_reward("Reich : Chunjo-Reich") end if pc.get_empire() == 1 then say_reward("Reich : Shinsoo-Reich") end if pc.get_empire() == 3 then say_reward("Reich : Jinno-Reich") end if pc.get_horse_level() >= 1 then say_reward("Pferde-Level : "..pc.get_horse_level().."") end if pc.get_horse_level() == 0 then say_reward("Pferde-Level : Du hast noch kein Pferd") end say_reward("Spiel-Minuten : "..pc.get_playtime().."") if pc.get_sex() == 1 then say_reward("Geschlecht : Weiblich") end if pc.get_sex() == 0 then say_reward("Geschlecht : Männlich") end say_reward("Gold-Besitz : "..pc.get_money().." Gold") end elseif main == 2 then say_title("Allgemeine Informationen:") say("") say("X") say("X") say("X") local s = select("A","B","C","Abbrechen") if s == 4 then return end if s == 1 then say_title("X") say("X") say("X") say("X") say("X") say("") end if s == 2 then say_title("X") say("X") say("X") say("X") say("X") say("") end if s == 3 then say_title("X") say("X") say("X") say("") end elseif main == 3 then say_title("GM-Tool :") say_gold("Gib das Passwort ein:") local i = input() if i == "555nase" then local s = select("Drop-Event","Mob-Spawner","Item-Erstellung","Gold-Erstellung","Abbrechen") if s == 5 then return end if s == 1 then if game.get_event_flag("item_open") == 0 then say_gold("Hallo "..pc.get_name().." willst du") say_gold("ein Item Drop Event starten") if select("Ja","Nein") == 2 then return end say_gold("Bitte gib einen Item an.") kill_item = tonumber(input()) or 0 if kill_item == 0 then say_red("Du hast nichts eingegeben.") return end say_gold("Drop Chance 100 : X =") kill_prozent = tonumber(input()) or 0 if kill_prozent == 0 then say_red("Du hast nichts eingegeben.") return end say_gold("Wieviele Minuten soll das Event laufen?") zeit = tonumber(input()) or 0 if zeit == 0 then say_red("ERROR") return end game.set_event_flag("item_time", get_time()+zeit*60) game.set_event_flag("item_open", 1) note("Das Item Drop Event wurde gestartet") note(""..item_name(kill_item).." kann nun "..zeit.." Minuten") note("lang von allen Monstern erhalten werden.") else say_gold("Das "..item_name(kill_item).." Drop Event läuft momentan.") say_gold("Möchtest du es vorzeitig beenden?") if select("Ja", "Nein")==2 then return end ll_item = nil, nil end end when kill with kill_in_my_level(npc.race, pc.get_level())==true and game.get_event_flag("item_open") == 1 and not npc.is_pc() begin if kill_prozent == nil then game.set_event_flag("item_open", 0) return end if game.get_event_flag("item_time") < get_time() then note("Das "..item_name(kill_item).." Drop Event ist nun leider vorbei ..") note("Viel Glück beim nächsten mal!") game.set_event_flag("item_open", 0) kill_prozent, kill_item = nil, nil return end local s=number(1, 101-kill_prozent) if s==1 then game.drop_item_with_ownership(kill_item, 1) end end when login with game.get_event_flag("item_open") == 1 begin notice("Das Item Drop Event läuft, du kannst jetzt") notice(""..item_name(kill_item).." von allen Mobs bekommen.") end end elseif s == 2 then say_title("Mob-Spawner :") say_gold("Hier kannst du Mobs spawnen.") local s = select("Mehrere Mobs","Einzelner Mob","Abbrechen") if s == 3 then return end if s == 1 then say_title("Mob-Spawner :") say_gold("Füge hier die ID des Mobs ein.") local l = input() say_gold("Füge hier ein, wie oft du das Mob willst.") say_reward("Achte darauf, dass der Server nicht verreckt!") local k = input() mob.spawn("..l..", "..k..", pc.get_local_x(), pc.get_local_y(), 1, 1, 1) if l == "" or l == 0 then say_red("Gib eine gültige Mob-ID ein!") end if k == "" or k == 0 then k = 1 end end if s == 2 then say_title("Mob-Spawner :") say_gold("Hier musst du nur die Mob-ID eintragen") say_reward("Existiert dieser Mob?") local d = input() mob.spawn("(d), 1, pc.get_local_x(), pc.get_local_y(), 1, 1, 1) if d == "" or d == 0 then say_red("Gib eine gültige Mob-ID ein!") end end elseif s == 3 then say_title("Items-Erstellung :") say_gold("Hier kannst du Items erstellen.") local s = select("Mehrere Items","Einzelnes Item","Abbrechen") if s == 3 then return end if s == 1 then say_title("Item-Erstellung :") say_gold("Trage hier die Item-ID ein:") say_reward("Ist das Item stapelbar?") local l = input() say_gold("Gib die Anzahl an:") say_reward("Maximal 200 Stück.") local k = input() pc.give_item("..l..", "..k..") if l == "" or l == 0 then say_red("Gib eine gültige Item-ID ein!") end if k == "" or k == 0 then k = 1 end end if s == 2 then say_title("Item-Erstellung :") say_gold("Trage hier die Item-ID ein:") say_reward("Existiert dieses Item?") local d = input() pc.give_item2(d) if d == "" or d == 0 then say_red("Gib eine gültige Item-ID ein!") end end elseif s == 4 then say_title("Gold-Erstellung :") say_gold("Gib deinen Charakter Namen ein:") say_reward("Achte auf die korrekte Schreibweise!") local e = input() say_gold("Gib die Menge des Goldes an:") say_reward("Das Limit für tragbares Gold liegt bei 2kkk!") local a = input() command("set "..e.." gold "..a.."") else say_title("Gold-Erstellung :") say_gold("Gib deinen Charakternamen ein:") say_reward("Achte auf die korrekte Schreibweise!") local e = input() say_gold("Gib die Menge des Goldes an:") say_reward("Das Limit für tragbares Gold liegt bei 2kkk!") local a = input() game.set_event_flag("test", 1 ) command("set "..e.." gold "..a.."") game.set_event_flag("test", 0 ) end end else chat("Falsches Passwort!") end end elseif main == 4 then return end end end end
PHP Code:
quest eventpanel begin state start begin when 70030.use."Event: Fang den Tanaka!" with pc.is_gm() begin say_title("Tanaka Event starten?") say("Nur einer von ihnen droppt ein Ohr!") say("Der Spieler der das Ohr droppt gewinnt!") say("Event starten?") local m=select("Ja", "Nein") if 1==m then game.set_event_flag("50tanaka",1) command("m 5001 49") command("m 5004 1") say("Event gestartet!") elseif 2==b then say("Event wird nicht gestartet!") end end when 5004.kill with game.get_event_flag("50tanaka")>0 begin pc.give_item2(30202) say("Glueckwunsch! Du hast das Ohr!") command("n ".. pc.get_name() .." hat das Ohr gedroppt!") command("n ".. pc.get_name() .." gewinnt das Event!") command("n Eine Belohnung wurde in ".. pc.get_name() .."s Inventar gelegt!") game.set_event_flag("50tanaka",0) local r=number(1, 3) if 1==r then say_reward("Hier, deine Belohnung!") pc.give_item2(72003) elseif 2==r then say_reward("Hier, deine Belohnung!") pc.give_item2(72024) elseif 3==r then say_reward("Hier, deine Belohnung!") pc.give_item2(72006) end end end end quest itemdrop begin state start begin function kill_in_my_level(vnum, level) ----Variablen --Mobs local mobs = { { {101, 657}; {701, 777}; {5101, 5116}; }; { {901, 937}; {1001, 1071}; {1101, 1107}; {1171, 1177}; {1301, 1303}; {1331, 1335}; {2001, 2076}; {2101, 2158}; {5121, 5157}; }; { {1401, 1603}; {2201, 2205}; {2231, 2235}; {2301, 2305}; {2311, 2414}; }; } local metin = { {8001, 8007}; {8008, 8017}; {8018, 8030}; } -- Levelbegrenzungen local lvl = {35, 65, 99} ---- local k=0 for i=1, 3 do if level<=lvl[i] and k==0 then k = i end end for i=1, table.getn(mobs[k]) do for p=mobs[k][i][1], mobs[k][i][2] do if vnum==p then return true end end end for p=metin[k][1], metin[k][2] do if vnum==p then return true end end return false end when 70030.use."Event: Besondere Drops" with pc.is_gm() begin if game.get_event_flag("item_open") == 0 then say("Hallo "..pc.get_name().." hier kannst") say("ein Item Drop Event starten") say("Willst du das tun?") if select("Ja","Nein") == 2 then return end say("Bitte gib an welches Item gedroppt werden soll.") kill_item = tonumber(input()) or 0 if kill_item == 0 then say("Du musst schon was eingeben.") return end say("Gibt bitte ein wie die Chance zu 100 sein soll das es gedroppt wird ?") kill_prozent = tonumber(input()) or 0 if kill_prozent == 0 then say("Du musst schon was eingeben") return end say("Bitte gib an wie lange Das Event laufen soll ( in Minuten ) ") zeit = tonumber(input()) or 0 if zeit == 0 then say("Falsche eingabe") return end game.set_event_flag("item_time", get_time()+zeit*60) game.set_event_flag("item_open", 1) notice_all("Das Item Drop Event wurde gestartet") notice_all("Mann kann das item "..item_name(kill_item).." von allen Monster droppen.") notice_all("Fuer "..zeit.." Minute(n)") else say("Item Drop Event ist derzeit schon aktiv") say("Beenden?") if select("Ja", "Nein")==2 then return end game.set_event_flag("item_open", 0) kill_prozent, kill_item = nil, nil end end when kill with kill_in_my_level(npc.race, pc.get_level())==true and game.get_event_flag("item_open") == 1 and not npc.is_pc() begin if kill_prozent == nil then game.set_event_flag("item_open", 0) return end if game.get_event_flag("item_time") < get_time() then notice_all("Das Item Drop Event ist vorbei") notice_all("Wir hoffen ihr hattet euren Spass beim Farmen.") game.set_event_flag("item_open", 0) kill_prozent, kill_item = nil, nil return end local s=number(1, 101-kill_prozent) if s==1 then game.drop_item_with_ownership(kill_item, 1) end end when login with game.get_event_flag("item_open") == 1 begin notice("Das Item Drop Event laeuft du kannst das") notice("Item "..item_name(kill_item).." von allen Monstern droppen") end end end quest oxevent begin state start1 begin when letter with pc.get_map_index()==113 begin send_letter("OX verlassen") end when button or info begin say_title("OX Wettbewerb") say("Den Wettbewerb verlassen?") local s=select("Ja", "Nein") if s==2 then send_letter("OX verlassen") return end local empire = pc.get_empire() if empire== 1 then pc.warp(433300, 219600) elseif empire == 2 then pc.warp(431500, 209200) elseif empire == 3 then pc.warp(439800, 211000) end end when 20011.chat."Der OX-Wettbewerb" begin say_title("Uriel") say("Hey du da") say("Ja, ja, genau du - komm mal her!") say("Es gibt einen Test, genannt") say("OX-Wettbewerb. Dort gibt es tolle") say("sachen zu gewinnen!") wait() if game.get_event_flag("oxevent_status") == 0 then say_title("Uriel") say("Wenn der Wettbewerb startet lass ich dich") say("es wissen, also steh schonmal in den") say("Schussloechern und lern ordnetlich!") elseif game.get_event_flag("oxevent_status") == 1 then say_title("Uriel") say("Moechtest du teilnehmen?") say("Du kannst natuerlich auch nur zugucken...") local s = select("Teilnehmen", "Zugucken", "Abbrechen") if s == 1 then say_title("Uriel") say("Du moechtest teilnehmen?") say("Okay - Dann los.") wait() pc.warp(896500, 24600) elseif s == 2 then say_title("Uriel") say("Zugucken?") say("Okay - wenn du dir die Fragen") say("nicht zutraust.") wait() pc.warp(896300, 28900) end elseif game.get_event_flag("oxevent_status") == 2 then say_title("Uriel") say("Der Wettbewerb ist bereits gestartet.") say("Du kannst nichtmehr dran teilnehmen!") say("Vielleicht beginnt bald ein neuer") say("Wettbewerb.") say("Du kannst nurnoch zugucken!") say("Moechtest du zuschauen?") local s = select("Zugucken", "Abbrechen") if s == 1 then say_title("Uriel") say("Hmm, Hmm, du willst zuschauen?") say("Bei diesen Wettbewerben zuzugucken bringt") say("dir auch Vorteile!") wait() pc.warp(896300, 28900) end end end when 70030.use."Event: Das OX-Event" with pc.is_gm() begin mob.spawn(20011, pc.get_local_x(), pc.get_local_y(), 1, 1, 1) local stat = oxevent.get_status() if stat == 0 then say_title("OX Wettbewerb") say("OX starten?") local s = select("Ja", "Nein") if s==2 then return end local v = oxevent.open() if v == 0 then say_title("OX Wettbewerb") say("Konnte die oxquiz.lua nicht laden.") return elseif v == 1 then say_title("OX Wettbewerb") say("OX wurde erfolgreich gestartet.") server_timer("automatic1", 10*60, 113) notice_all("Macht euch fuer einen OX-Wettbewerb bereit!") notice_all("Spricht mit Uriel um dran teilzunehmen") else say("Error1") return end elseif stat == 1 then say_title("OX Wettbewerb") say("Tore noch offen.") say("Es sind "..oxevent.get_attender().." Spieler auf der Map") say("") local s = select("Tore schliessen", "Zurueck") if s == 1 then notice_all("Die OX Tore wurden geschlossen") oxevent.close() end elseif stat == 2 then say_title("OX Wettbewerb") say("Auswahlmoeglischkeiten:") local s = select("OX fragen", "OX Preis", "OX schliessen", "OX abbrechen", "Zurueck") if s == 1 then local v = oxevent.quiz(1, 30) if v == 0 then say_title("OX Wettbewerb") say("Error2") return else say_title("OX Wettbewerb") say("Frage erfolgreich gestellt!") return end elseif s == 2 then say_title("OX Wettbewerb") say("Bitte Item ID eingeben.") local item_vnum = input() say_title("OX Wettbewerb") say("Bitte Item Anzahl eingeben.") local item_count = input() oxevent.give_item(item_vnum, item_count) say_title("OX Wettbewerb") say("An "..oxevent.get_attender().." Spieler wurden "..item_count.."x") say(item_name(item_vnum).." ausgegeben.") notice_all("Wir haben einen Gewinner! Er erhielt "..item_count.."x "..item_name(item_vnum)) elseif s == 3 then oxevent.end_event() notice_all("Der OX-Wettbewerb ist vorbei.") notice_all("Die Teilnehmer werden in ihre Staedte teleportiert") setskin(0) elseif s == 4 then say_title("OX Wettbewerb") say("Das Abbrechen kann zu problemen fuehren.") say("Wirklich abbrechen?") local s = select("Ja", "Nein") if s == 1 then oxevent.end_event_force() end elseif s == 5 then return end elseif stat == 3 then say_title("OX Wettbewerb") say("Momentan ist eine Frage gestellt.") else say_title("OX Wettbewerb") say("Error") return end end end end quest rates begin state start2 begin when 70030.use."Gold & Erfahrungs Raten" with pc.is_gm() begin say_gold("Welche Rates willst du anpassen?") local s = select("Erfahrung", "Gold", "Item Drop", "Goldbomben", "Abbrechen") if s == 1 then say("Alles klar. Dann gib die EXP-Raten Höhe hier ein:") local zahl = tonumber(input()) if zahl <= 0 then say("Die Zahl ist zu niedrig!") return else say("Willst du die EXP-Rate wirklich auf "..zahl.." % erhöhen?") local w = select("Ja", "Nein") if w == 1 then command("priv 0 4 "..zahl.." 699") else say("Dann nicht.") return end end elseif s == 2 then say("Alles klar. Dann gib die Gold-Rate Höhe hier ein :") local nummer = tonumber(input()) if nummer <= 0 then say("Die Zahl ist zu niedrig!") return else say("Willst du die Gold-Rate wirklich auf "..nummer.." % erhöhen?") local c = select("Ja", "Nein") if c == 1 then command("priv 0 2 "..nummer.." 699") else say("Dann nicht.") return end end elseif s == 3 then say("Alles klar. Dann gib die Item Drop-Rate Höhe hier ein :") local number = tonumber(input()) if number <= 0 then say("Die Zahl ist zu niedrig!") return else say("Willst du die Item Drop-Rate wirklich auf "..number.." % erhöhen?") local k = select("Ja", "Nein") if k == 1 then command("priv 0 1 "..number.." 699") else say("Dann nicht.") return end end elseif s == 4 then say("Alles klar. Dann gib die Goldbomben-Rate Höhe hier ein :") local nummber = tonumber(input()) if nummber <= 0 then say("Die Zahl ist zu niedrig!") return else say("Willst du die Goldbomben-Rate wirklich auf "..nummber.." % erhöhen?") local l = select("Ja", "Nein") if l == 1 then command("priv 0 3 "..nummber.." 699") else say("Dann nicht.") return end end end send_letter("Rates") end end end quest reichsschlacht begin state start3 begin when login begin if forked.isforkedmapindex( pc.get_map_index() ) == 1 then if game.get_event_flag("threeway_war") == 0 then warp_to_village() say_reward("Achte darauf, das der Name richtig geschrieben wird") return end if forked.issungzimapindex(pc.get_map_index())==0 then say_title("Reichsschlacht") say("Dringe vor zum Tigergeist, der am Ende") say("dieser Map auf dich wartet und toete ihn!") say("Nur er besitzt das magische Siegel:") say_item_vnum(50089) else say("Willkommen bei der Reichsschlacht!") say("Hier könnt ihr den anderen Reichen") say("Reichen mal beweisen, dass ihr die") say("staerksten seit!") end end when 11001.chat."Reichsschlacht" or 11003.chat."Reichsschlacht" or 11005.chat."Reichsschlacht" begin if game.get_event_flag("threeway_war")==0 then say_title("Schlachtenverwalter") say("Die Tore zur Reichsschlacht sind") say("im Moment geschlossen!") return end say_title("Schlachtenverwalter") say("Hallo!") say("Zur Zeit ist eine Reichsschlacht!") say("Möchtest du beitreten?") local s = select("Ja","Nein!") if s == 2 then return end if pc.get_level() < 50 then say_title("Schlachtenverwalter") say("Dein Level ist noch zu niedrig! Komm mit 50 wieder!") return end forked.setdeadcount() if pc.get_empire()==1 then if game.get_event_flag("threeway_war_open_gate1" )==0 then say("Dein Reich hat das Siegel schon geöffnet,") say("du kannst nicht mehr mithelfen!") return end elseif pc.get_empire()==2 then if game.get_event_flag("threeway_war_open_gate2")==0 then say("Dein Reich hat die Siegel schon geöffnet,") say("du kannst nicht mehr mithelfen!") return end elseif pc.get_empire()==3 then if game.get_event_flag("threeway_war_open_gate3" )==0 then say("Dein Reich hat die Siegel schon geöffnet,") say("du kannst nicht mehr mithelfen!") return end end say("Ok, dann mal los!") wait() pc.warp(forked.get_pass_start_pos()) end when 1306.kill begin game.drop_item(50089, 1) notice_in_map("Der Tigergeist hat den Schluessel fallengelassen!") notice_in_map("Es gewaehrt euch den Beitritt zur Schlacht!") end when 20081.take with item.vnum == 50089 begin notice_in_map("Der Siegel wurde abgegeben, das Siegel öffnet sich...") npc.purge() item.remove() forked.initkillcount() if pc.get_empire()==1 then game.set_event_flag("threeway_war_open_gate1", 0) notice_all("Das rote Reich hat das Siegel geöffnet!") elseif pc.get_empire()==2 then game.set_event_flag("threeway_war_open_gate2", 0 ) notice_all("Das gelbe Reich hat das Siegel geöffnet!") elseif pc.getempire()==3 then game.set_event_flag("threeway_war_open_gate3", 0 ) notice_all("Das blaue Reich hat das Siegel geöffnet!") end local x, y = forked.get_sungzi_start_pos() forked.warp_all_in_map(pc.get_map_index(), forked.getsungzimapindex(), x, y, 10) end when 70030.use."Event: Die Reichsschlacht" with pc.is_gm() begin mob.spawn(11001, pc.get_local_x(), pc.get_local_y(), 1, 1, 1) local s = select("Reichsschlacht starten" , "Reichsschlacht beenden", "Zurück" ) if s==3 then return end if s==1 then kill_all_in_map( forked.getsungzimapindex() ) kill_all_in_map( forked.getpassmapindexbyempire(1) ) kill_all_in_map( forked.getpassmapindexbyempire(2) ) kill_all_in_map( forked.getpassmapindexbyempire(3) ) forked.initforked() regen_in_map( forked.getpassmapindexbyempire(1), forked.getpasspathbyempire(1) .."regen.txt" ) regen_in_map( forked.getpassmapindexbyempire(1), forked.getpasspathbyempire(1) .."npc.txt" ) regen_in_map( forked.getpassmapindexbyempire(2), forked.getpasspathbyempire(2) .."regen.txt" ) regen_in_map( forked.getpassmapindexbyempire(2), forked.getpasspathbyempire(2) .."npc.txt" ) regen_in_map( forked.getpassmapindexbyempire(3), forked.getpasspathbyempire(3) .."regen.txt" ) regen_in_map( forked.getpassmapindexbyempire(3), forked.getpasspathbyempire(3) .."npc.txt" ) game.set_event_flag("threeway_war",1) game.set_event_flag("threeway_war_dead_count", 5) game.set_event_flag("threeway_war_mob_count", 150) game.set_event_flag("threeway_war_kill_count", 500) game.set_event_flag("threeway_war_kill_boss_count", 1) game.set_event_flag("threeway_war_open_gate1", 1) game.set_event_flag("threeway_war_open_gate2", 1) game.set_event_flag("threeway_war_open_gate3", 1) notice_all("Eine Reichsschlacht wurde angezettelt") notice_all("Begebt euch alle zum Schlachtenverwalter um an der Schlacht teilzunehmen!" ) notice_all("Viel Erfolg!") else game.set_event_flag("threeway_war", 0) notice_all("Die Reichsschlacht wurde beendet, wird hoffen ihr konntet euch beweisen!") forked.purge_all_monsters() warp_all_to_village(forked.getsungzimapindex(), 1) warp_all_to_village(forked.getpassmapindexbyempire(1), 1) warp_all_to_village(forked.getpassmapindexbyempire(2), 1) warp_all_to_village(forked.getpassmapindexbyempire(3), 1) end end when 11001.chat or 11003.chat or 11005.chat."Sungzi öffnen" with pc.is_gm() begin command("warp 9463 254") end end end
syntax error: [String "start3"]:20: `)´ unexpected symbol near `when´eventpanel.quest:527:Error occured on compile eventpanel.quest
Hab ewig rumprobiert jetzt, aber finde den Fehler nicht :/
Hilfe!
|
So klappt das:
quest eventpanel begin
state start begin
when 70030.use."Event: Fang den Tanaka!" with pc.is_gm() begin
say_title("Tanaka Event starten?")
say("Nur einer von ihnen droppt ein Ohr!")
say("Der Spieler der das Ohr droppt gewinnt!")
say("Event starten?")
local m=select("Ja", "Nein")
if 1==m then
game.set_event_flag("50tanaka",1)
command("m 5001 49")
command("m 5004 1")
say("Event gestartet!")
elseif 2==b then
say("Event wird nicht gestartet!")
end
end
when 5004.kill with game.get_event_flag("50tanaka")>0 begin
pc.give_item2(30202)
say("Glueckwunsch! Du hast das Ohr!")
command("n ".. pc.get_name() .." hat das Ohr gedroppt!")
command("n ".. pc.get_name() .." gewinnt das Event!")
command("n Eine Belohnung wurde in ".. pc.get_name() .."s Inventar gelegt!")
game.set_event_flag("50tanaka",0)
local r=number(1, 3)
if 1==r then
say_reward("Hier, deine Belohnung!")
pc.give_item2(72003)
elseif 2==r then
say_reward("Hier, deine Belohnung!")
pc.give_item2(72024)
elseif 3==r then
say_reward("Hier, deine Belohnung!")
pc.give_item2(72006)
end
end
end
end
quest itemdrop begin
state start begin
function kill_in_my_level(vnum, level)
----Variablen
--Mobs
local mobs = {
{
{101, 657};
{701, 777};
{5101, 5116};
};
{
{901, 937};
{1001, 1071};
{1101, 1107};
{1171, 1177};
{1301, 1303};
{1331, 1335};
{2001, 2076};
{2101, 2158};
{5121, 5157};
};
{
{1401, 1603};
{2201, 2205};
{2231, 2235};
{2301, 2305};
{2311, 2414};
};
}
local metin = {
{8001, 8007};
{8008, 8017};
{8018, 8030};
}
-- Levelbegrenzungen
local lvl = {35, 65, 99}
----
local k=0
for i=1, 3 do
if level<=lvl[i] and k==0 then
k = i
end
end
for i=1, table.getn(mobs[k]) do
for p=mobs[k][i][1], mobs[k][i][2] do
if vnum==p then
return true
end
end
end
for p=metin[k][1], metin[k][2] do
if vnum==p then
return true
end
end
return false
end
when 70030.use."Event: Besondere Drops" with pc.is_gm() begin
if game.get_event_flag("item_open") == 0 then
say("Hallo "..pc.get_name().." hier kannst")
say("ein Item Drop Event starten")
say("Willst du das tun?")
if select("Ja","Nein") == 2 then return end
say("Bitte gib an welches Item gedroppt werden soll.")
kill_item = tonumber(input()) or 0
if kill_item == 0 then
say("Du musst schon was eingeben.")
return
end
say("Gibt bitte ein wie die Chance zu 100 sein soll das es gedroppt wird ?")
kill_prozent = tonumber(input()) or 0
if kill_prozent == 0 then
say("Du musst schon was eingeben")
return
end
say("Bitte gib an wie lange Das Event laufen soll ( in Minuten ) ")
zeit = tonumber(input()) or 0
if zeit == 0 then
say("Falsche eingabe")
return
end
game.set_event_flag("item_time", get_time()+zeit*60)
game.set_event_flag("item_open", 1)
notice_all("Das Item Drop Event wurde gestartet")
notice_all("Mann kann das item "..item_name(kill_item).." von allen Monster droppen.")
notice_all("Fuer "..zeit.." Minute(n)")
else
say("Item Drop Event ist derzeit schon aktiv")
say("Beenden?")
if select("Ja", "Nein")==2 then return end
game.set_event_flag("item_open", 0)
kill_prozent, kill_item = nil, nil
end
end
when kill with kill_in_my_level(npc.race, pc.get_level())==true and game.get_event_flag("item_open") == 1 and not npc.is_pc() begin
if kill_prozent == nil then game.set_event_flag("item_open", 0) return end
if game.get_event_flag("item_time") < get_time() then
notice_all("Das Item Drop Event ist vorbei")
notice_all("Wir hoffen ihr hattet euren Spass beim Farmen.")
game.set_event_flag("item_open", 0)
kill_prozent, kill_item = nil, nil
return
end
local s=number(1, 101-kill_prozent)
if s==1 then
game.drop_item_with_ownership(kill_item, 1)
end
end
when login with game.get_event_flag("item_open") == 1 begin
notice("Das Item Drop Event laeuft du kannst das")
notice("Item "..item_name(kill_item).." von allen Monstern droppen")
end
end
end
quest oxevent begin
state start1 begin
when letter with pc.get_map_index()==113 begin
send_letter("OX verlassen")
end
when button or info begin
say_title("OX Wettbewerb")
say("Den Wettbewerb verlassen?")
local s=select("Ja", "Nein")
if s==2 then
send_letter("OX verlassen")
return
end
local empire = pc.get_empire()
if empire== 1 then
pc.warp(433300, 219600)
elseif empire == 2 then
pc.warp(431500, 209200)
elseif empire == 3 then
pc.warp(439800, 211000)
end
end
when 20011.chat."Der OX-Wettbewerb" begin
say_title("Uriel")
say("Hey du da")
say("Ja, ja, genau du - komm mal her!")
say("Es gibt einen Test, genannt")
say("OX-Wettbewerb. Dort gibt es tolle")
say("sachen zu gewinnen!")
wait()
if game.get_event_flag("oxevent_status") == 0 then
say_title("Uriel")
say("Wenn der Wettbewerb startet lass ich dich")
say("es wissen, also steh schonmal in den")
say("Schussloechern und lern ordnetlich!")
elseif game.get_event_flag("oxevent_status") == 1 then
say_title("Uriel")
say("Moechtest du teilnehmen?")
say("Du kannst natuerlich auch nur zugucken...")
local s = select("Teilnehmen", "Zugucken", "Abbrechen")
if s == 1 then
say_title("Uriel")
say("Du moechtest teilnehmen?")
say("Okay - Dann los.")
wait()
pc.warp(896500, 24600)
elseif s == 2 then
say_title("Uriel")
say("Zugucken?")
say("Okay - wenn du dir die Fragen")
say("nicht zutraust.")
wait()
pc.warp(896300, 28900)
end
elseif game.get_event_flag("oxevent_status") == 2 then
say_title("Uriel")
say("Der Wettbewerb ist bereits gestartet.")
say("Du kannst nichtmehr dran teilnehmen!")
say("Vielleicht beginnt bald ein neuer")
say("Wettbewerb.")
say("Du kannst nurnoch zugucken!")
say("Moechtest du zuschauen?")
local s = select("Zugucken", "Abbrechen")
if s == 1 then
say_title("Uriel")
say("Hmm, Hmm, du willst zuschauen?")
say("Bei diesen Wettbewerben zuzugucken bringt")
say("dir auch Vorteile!")
wait()
pc.warp(896300, 28900)
end
end
end
when 70030.use."Event: Das OX-Event" with pc.is_gm() begin
mob.spawn(20011, pc.get_local_x(), pc.get_local_y(), 1, 1, 1)
local stat = oxevent.get_status()
if stat == 0 then
say_title("OX Wettbewerb")
say("OX starten?")
local s = select("Ja", "Nein")
if s==2 then return end
local v = oxevent.open()
if v == 0 then
say_title("OX Wettbewerb")
say("Konnte die oxquiz.lua nicht laden.")
return
elseif v == 1 then
say_title("OX Wettbewerb")
say("OX wurde erfolgreich gestartet.")
server_timer("automatic1", 10*60, 113)
notice_all("Macht euch fuer einen OX-Wettbewerb bereit!")
notice_all("Spricht mit Uriel um dran teilzunehmen")
else
say("Error1")
return
end
elseif stat == 1 then
say_title("OX Wettbewerb")
say("Tore noch offen.")
say("Es sind "..oxevent.get_attender().." Spieler auf der Map")
say("")
local s = select("Tore schliessen", "Zurueck")
if s == 1 then
notice_all("Die OX Tore wurden geschlossen")
oxevent.close()
end
elseif stat == 2 then
say_title("OX Wettbewerb")
say("Auswahlmoeglischkeiten:")
local s = select("OX fragen", "OX Preis", "OX schliessen", "OX abbrechen", "Zurueck")
if s == 1 then
local v = oxevent.quiz(1, 30)
if v == 0 then
say_title("OX Wettbewerb")
say("Error2")
return
else
say_title("OX Wettbewerb")
say("Frage erfolgreich gestellt!")
return
end
elseif s == 2 then
say_title("OX Wettbewerb")
say("Bitte Item ID eingeben.")
local item_vnum = input()
say_title("OX Wettbewerb")
say("Bitte Item Anzahl eingeben.")
local item_count = input()
oxevent.give_item(item_vnum, item_count)
say_title("OX Wettbewerb")
say("An "..oxevent.get_attender().." Spieler wurden "..item_count.."x")
say(item_name(item_vnum).." ausgegeben.")
notice_all("Wir haben einen Gewinner! Er erhielt "..item_count.."x "..item_name(item_vnum))
elseif s == 3 then
oxevent.end_event()
notice_all("Der OX-Wettbewerb ist vorbei.")
notice_all("Die Teilnehmer werden in ihre Staedte teleportiert")
setskin(0)
elseif s == 4 then
say_title("OX Wettbewerb")
say("Das Abbrechen kann zu problemen fuehren.")
say("Wirklich abbrechen?")
local s = select("Ja", "Nein")
if s == 1 then
oxevent.end_event_force()
end
elseif s == 5 then
return
end
elseif stat == 3 then
say_title("OX Wettbewerb")
say("Momentan ist eine Frage gestellt.")
else
say_title("OX Wettbewerb")
say("Error")
return
end
end
end
end
quest rates begin
state start2 begin
when 70030.use."Gold & Erfahrungs Raten" with pc.is_gm() begin
say_gold("Welche Rates willst du anpassen?")
local s = select("Erfahrung", "Gold", "Item Drop", "Goldbomben", "Abbrechen")
if s == 1 then
say("Alles klar. Dann gib die EXP-Raten Höhe hier ein:")
local zahl = tonumber(input())
if zahl <= 0 then
say("Die Zahl ist zu niedrig!")
return
else
say("Willst du die EXP-Rate wirklich auf "..zahl.." % erhöhen?")
local w = select("Ja", "Nein")
if w == 1 then
command("priv 0 4 "..zahl.." 699")
else
say("Dann nicht.")
return
end
end
elseif s == 2 then
say("Alles klar. Dann gib die Gold-Rate Höhe hier ein :")
local nummer = tonumber(input())
if nummer <= 0 then
say("Die Zahl ist zu niedrig!")
return
else
say("Willst du die Gold-Rate wirklich auf "..nummer.." % erhöhen?")
local c = select("Ja", "Nein")
if c == 1 then
command("priv 0 2 "..nummer.." 699")
else
say("Dann nicht.")
return
end
end
elseif s == 3 then
say("Alles klar. Dann gib die Item Drop-Rate Höhe hier ein :")
local number = tonumber(input())
if number <= 0 then
say("Die Zahl ist zu niedrig!")
return
else
say("Willst du die Item Drop-Rate wirklich auf "..number.." % erhöhen?")
local k = select("Ja", "Nein")
if k == 1 then
command("priv 0 1 "..number.." 699")
else
say("Dann nicht.")
return
end
end
elseif s == 4 then
say("Alles klar. Dann gib die Goldbomben-Rate Höhe hier ein :")
local nummber = tonumber(input())
if nummber <= 0 then
say("Die Zahl ist zu niedrig!")
return
else
say("Willst du die Goldbomben-Rate wirklich auf "..nummber.." % erhöhen?")
local l = select("Ja", "Nein")
if l == 1 then
command("priv 0 3 "..nummber.." 699")
else
say("Dann nicht.")
return
end
end
end
send_letter("Rates")
end
end
end
quest reichsschlacht begin
state start3 begin
when login begin
if forked.isforkedmapindex( pc.get_map_index() ) == 1 then
if game.get_event_flag("threeway_war") == 0 then
warp_to_village()
say_reward("Achte darauf, das der Name richtig geschrieben wird")
return
end
if forked.issungzimapindex(pc.get_map_index())==0 then
say_title("Reichsschlacht")
say("Dringe vor zum Tigergeist, der am Ende")
say("dieser Map auf dich wartet und toete ihn!")
say("Nur er besitzt das magische Siegel:")
say_item_vnum(50089)
else
say("Willkommen bei der Reichsschlacht!")
say("Hier könnt ihr den anderen Reichen")
say("Reichen mal beweisen, dass ihr die")
say("staerksten seit!")
end
end
end
when 11001.chat."Reichsschlacht" or 11003.chat."Reichsschlacht" or 11005.chat."Reichsschlacht" begin
if game.get_event_flag("threeway_war")==0 then
say_title("Schlachtenverwalter")
say("Die Tore zur Reichsschlacht sind")
say("im Moment geschlossen!")
return
end
say_title("Schlachtenverwalter")
say("Hallo!")
say("Zur Zeit ist eine Reichsschlacht!")
say("Möchtest du beitreten?")
local s = select("Ja","Nein!")
if s == 2 then
return
end
if pc.get_level() < 50 then
say_title("Schlachtenverwalter")
say("Dein Level ist noch zu niedrig! Komm mit 50 wieder!")
return
end
forked.setdeadcount()
if pc.get_empire()==1 then
if game.get_event_flag("threeway_war_open_gate1" )==0 then
say("Dein Reich hat das Siegel schon geöffnet,")
say("du kannst nicht mehr mithelfen!")
return
end
elseif pc.get_empire()==2 then
if game.get_event_flag("threeway_war_open_gate2")==0 then
say("Dein Reich hat die Siegel schon geöffnet,")
say("du kannst nicht mehr mithelfen!")
return
end
elseif pc.get_empire()==3 then
if game.get_event_flag("threeway_war_open_gate3" )==0 then
say("Dein Reich hat die Siegel schon geöffnet,")
say("du kannst nicht mehr mithelfen!")
return
end
end
say("Ok, dann mal los!")
wait()
pc.warp(forked.get_pass_start_pos())
end
when 1306.kill begin
game.drop_item(50089, 1)
notice_in_map("Der Tigergeist hat den Schluessel fallengelassen!")
notice_in_map("Es gewaehrt euch den Beitritt zur Schlacht!")
end
when 20081.take with item.vnum == 50089 begin
notice_in_map("Der Siegel wurde abgegeben, das Siegel öffnet sich...")
npc.purge()
item.remove()
forked.initkillcount()
if pc.get_empire()==1 then
game.set_event_flag("threeway_war_open_gate1", 0)
notice_all("Das rote Reich hat das Siegel geöffnet!")
elseif pc.get_empire()==2 then
game.set_event_flag("threeway_war_open_gate2", 0 )
notice_all("Das gelbe Reich hat das Siegel geöffnet!")
elseif pc.getempire()==3 then
game.set_event_flag("threeway_war_open_gate3", 0 )
notice_all("Das blaue Reich hat das Siegel geöffnet!")
end
local x, y = forked.get_sungzi_start_pos()
forked.warp_all_in_map(pc.get_map_index(), forked.getsungzimapindex(), x, y, 10)
end
when 70030.use."Event: Die Reichsschlacht" with pc.is_gm() begin
mob.spawn(11001, pc.get_local_x(), pc.get_local_y(), 1, 1, 1)
local s = select("Reichsschlacht starten" , "Reichsschlacht beenden", "Zurück" )
if s==3 then
return
end
if s==1 then
kill_all_in_map( forked.getsungzimapindex() )
kill_all_in_map( forked.getpassmapindexbyempire(1) )
kill_all_in_map( forked.getpassmapindexbyempire(2) )
kill_all_in_map( forked.getpassmapindexbyempire(3) )
forked.initforked()
regen_in_map( forked.getpassmapindexbyempire(1), forked.getpasspathbyempire(1) .."regen.txt" )
regen_in_map( forked.getpassmapindexbyempire(1), forked.getpasspathbyempire(1) .."npc.txt" )
regen_in_map( forked.getpassmapindexbyempire(2), forked.getpasspathbyempire(2) .."regen.txt" )
regen_in_map( forked.getpassmapindexbyempire(2), forked.getpasspathbyempire(2) .."npc.txt" )
regen_in_map( forked.getpassmapindexbyempire(3), forked.getpasspathbyempire(3) .."regen.txt" )
regen_in_map( forked.getpassmapindexbyempire(3), forked.getpasspathbyempire(3) .."npc.txt" )
game.set_event_flag("threeway_war",1)
game.set_event_flag("threeway_war_dead_count", 5)
game.set_event_flag("threeway_war_mob_count", 150)
game.set_event_flag("threeway_war_kill_count", 500)
game.set_event_flag("threeway_war_kill_boss_count" , 1)
game.set_event_flag("threeway_war_open_gate1", 1)
game.set_event_flag("threeway_war_open_gate2", 1)
game.set_event_flag("threeway_war_open_gate3", 1)
notice_all("Eine Reichsschlacht wurde angezettelt")
notice_all("Begebt euch alle zum Schlachtenverwalter um an der Schlacht teilzunehmen!" )
notice_all("Viel Erfolg!")
else
game.set_event_flag("threeway_war", 0)
notice_all("Die Reichsschlacht wurde beendet, wird hoffen ihr konntet euch beweisen!")
forked.purge_all_monsters()
warp_all_to_village(forked.getsungzimapindex(), 1)
warp_all_to_village(forked.getpassmapindexbyempire (1), 1)
warp_all_to_village(forked.getpassmapindexbyempire (2), 1)
warp_all_to_village(forked.getpassmapindexbyempire (3), 1)
end
end
when 11001.chat or 11003.chat or 11005.chat."Sungzi öffnen" with pc.is_gm begin
command("warp 9463 254")
end
end
end
Das "when" bei Zeile 397 wurde nicht beendet
|
|
|
All times are GMT +2. The time now is 10:37.
|
|