|
You last visited: Today at 21:30
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
11/17/2016, 03:15
|
#12436
|
elite*gold: 0
Join Date: Dec 2014
Posts: 14
Received Thanks: 5
|
Ich hab noch eine Frage

Wen ich mein Userpanel öffne und wieder schließe bleibt die schrift stehen woran kann
das liegen ?
Danke nochmal Sponge für die Quest
|
|
|
11/17/2016, 09:46
|
#12437
|
elite*gold: 0
Join Date: Oct 2013
Posts: 151
Received Thanks: 7
|
Hey Com,
Ich will gerne dass das VIP-System nach 30 Tagen abläuft, aber kenne mich nicht mit lua aus.
Ich hoffe ihr helft mir
PHP Code:
--------------------------------------------
-- written by Kilroy.
-- Benötigt Questlib Erweit. Mijago
--------------------------------------------
quest vip_by_kilroy begin
state start begin
when 20011.take with item.get_vnum()== 35004 and string.find(pc.get_name(), "VIP]") != nil begin
say("Sehr Gut, du konntest dich mit deinem")
say("VIP-Ticket ausweisen, ich gewähre")
say("dir somit Einblick in den VIP-Shop")
wait()
setskin(NOWINDOW)
npc.open_shop(9003) -- natürlich Anpassen.
syschat("VIP-Shop wurde geöffnet.")
end
when 20009.take with item.get_vnum()== 35004 and string.find(pc.get_name(), "VIP]") != nil begin
say("Sehr Gut, du konntest dich mit deinem")
say("VIP-Ticket ausweisen.")
say("")
say("Soll ich dich also zur VIP-Map bringen?")
if select("Ja", "Nein")==2 then return end
pc.warp( 402100, 673900) -- natürlich Anpassen.
end
when login with not npc.is_pc() and pc.getqf("first_vip")==0 begin
if string.find(pc.get_name(), "VIP]") != nil then
timer("login_vip", 2)
end
end
when login_vip.timer begin
say_title("VIP-Status")
say("")
say("Da diese Meldung erschienen ist, wurde der")
say("VIP-Vorgang erfolgreich abgeschlossen.")
say("")
say("Dir stehen nun einige Features zu, die andere")
say("Spieler nicht haben.")
wait()
say_title("VIP-Status")
say("")
say("Nun erhälst du erstmal dein VIP-Kit")
say("und weitere Informationen.")
say("")
say("Wie du bestimmt bemerkt hast, schwebt")
say("über dir ein VIP-Symbol, dieses kannst du")
say("durch die Chateingabe von (vip) rufen.")
say("")
say("Du erhälst jetzt ein VIP-Ticket mit dem du")
say_reward("- die VIP-Map betreten kannst.")
say_reward("- den VIP-Shop einsehen kannst.")
say("")
say("Ziehe dafür das VIP-Ticket auf den jeweiligen")
say("NPC. Das war erstmal, Viel Spaß noch!")
pc.give_item2(35004, 1)
pc.setqf("first_vip",1)
end
when 35002.use begin
if string.find(pc.get_name(), "VIP]") == nil then
say_title("Hallo "..pc.get_name().."!")
say("Mit diesem Item kannst du den VIP Status aktivieren.")
say("")
say_title("Infos:")
say("Nach erfolgreicher Nutzung wirst du gekickt!")
say("Du hast dann einen 20 Minuten Bann, nach der ")
say("den 20 Minuten ist der Vorgang abgeschlossen ")
say("und dein Account ist wieder frei!")
say("")
say("")
say("Möchtest du?")
say(pc.get_name().." --------> (VIP)"..pc.get_name())
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35002)
if string.len(pc.get_name())<= 7 and not vip_by_kilroy.player_exists("[VIP]"..pc.get_name()) then
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
notice_all(pc.get_name().." ist nun ein VIP-Mitglied auf ....")
mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='[VIP]"..pc.get_name().."');")
pc.remove_item(35002, 1)
cmdchat("exit")
else
say_title(pc.get_name().."!")
say("")
say("Die Vorraussetzungen zwingen dich einen")
say("neuen Namen zuwählen. Mögliche Gründe")
say("sind ein zu langer Name oder dein")
say("Name existiert mit VIP bereits.")
say("")
say_reward("Möchtest du ihn ändern um VIP zuwerden?")
if select("Ja", "Nein")==2 then return end
say_title("Name wechseln")
say("Gib bitte deinen Wunschnamen ein:")
say_reward("Beachte!")
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
say_reward("Sonderzeichen sind nicht erlaubt.")
local inp = input()
if vip_by_kilroy.vip_premise(inp, 7, 2, 1) then
say_title("Name wechseln")
say("")
say("Dein neuer Name besitzt entweder mehr als 7,")
say("weniger als 2 Buchstaben oder enthält ein")
say("unzulässiges Zeichen.")
return
elseif vip_by_kilroy.player_exists("[VIP]"..inp) then
say_title("Name wechseln")
say("")
say("Dieser Name existiert bereits,")
say("versuch es mit einem neuen erneut!")
return
end
say_title("Super!")
say("Dein Name erfüllt alle Voraussetzungen.")
say("")
say_title("Letzter Check")
say("Möchtest du wirklich mit dem Namen")
say("(VIP)"..inp.." dein Vip-Status aktivieren?")
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35002)
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
notice_all(pc.get_name(), " heißt jetzt "..inp.." und ist nun ein VIP-Mitglied auf ....")
mysql_query("UPDATE player.player SET name='[VIP]"..inp.."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='[VIP]"..inp.."');")
pc.remove_item(35002, 1)
cmdchat("exit")
end
else
say_title("Hallo "..pc.get_name().."!")
say("")
say("Du hast dein VIP-Status schon aktiviert,")
say("sollte dies nicht der Fall sein, kontaktiere")
say("bitte einen Teamler.")
say("")
say("Viel Spaß weiterhin!")
end
end
when 35003.use begin
if string.find(pc.get_name(), "VIP]") != nil then
say_title("Hallo "..pc.get_name().."!")
say("Mit diesem Item kannst du den VIP Status")
say("zurücksetzen..")
say("")
say_title("Infos:")
say("Nach erfolgreicher Nutzung wirst du gekickt!")
say("Du hast dann einen 20 Minuten Bann, nach der ")
say("den 20 Minuten ist der Vorgang abgeschlossen ")
say("und dein Account ist wieder frei!")
say("")
say("")
say("VIP Status zurücksetzen?")
say("(VIP)"..pc.get_name().."---->"..pc.get_name())
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35003)
spl = split(pc.get_name(), "VIP]") -- Split Name bei VIP]
if not vip_by_kilroy.player_exists(spl[2]) then
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
mysql_query("UPDATE player.player SET name='"..spl[2].."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..spl[2].."');")
item.remove()
cmdchat("exit")
else
say_title("Dein Name!")
say("Es scheint so als würde dein Name.")
say("ohne das (VIP) bereits existieren,")
say("das ist aber nicht schlimm, denn du kannst")
say("ihn hier und jetzt ändern.")
say("")
say_reward("Möchtest du ihn ändern um VIP loszuwerden?")
if select("Ja", "Nein")==2 then return end
say_title("Name wechseln")
say("Gib bitte deinen Wunschnamen ein:")
say_reward("Beachte!")
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
say_reward("Sonderzeichen sind nicht erlaubt.")
local inp = input()
if vip_by_kilroy.vip_premise(inp, 7, 2, 1) then
say_title("Name wechseln")
say("")
say("Dein neuer Name besitzt entweder mehr als 7,")
say("weniger als 2 Buchstaben oder enthält ein")
say("unzulässiges Zeichen.")
return
elseif not vip_by_kilroy.player_exists(inp) then
say_title("Name wechseln")
say("")
say("Ich habe festgestellt das dein neuer Name bereits")
say("existiert, versuch es mit einem neuen erneut!")
return
end
say_title("Super!")
say("Dein Name erfüllt alle Voraussetzungen.")
say("")
say_title("Letzter Check")
say("Möchtest du wirklich mit dem Namen")
say(inp.." dein Vip-Status zurücksetzen?")
if select("Ja", "Nein")==2 then return end
vip_by_kilroy.check_premise(35003)
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
spl = split(pc.get_name(), "VIP]")
mysql_query("UPDATE player.player SET name='"..inp.."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..inp.."');")
item.remove()
cmdchat("exit")
end
else
say_title("Hallo "..pc.get_name().."!")
say("Du hast deinen VIP-Status")
say("noch garnicht aktiviert.")
end
end
function player_exists(name)
if tonumber(mysql_query("select count(*) from player.player where name = '"..name.."';")[1][1]) >= 1 then
return true
end
end
function vip_premise(name, maxi, mini, sonder)
if sonder != 0 then
if string.len(name) > maxi or name == "" or string.len(name) < mini then
return true
end
else
if string.len(name) > maxi or name == "" or string.len(name) < mini or string.find(name, "(%W)") ~= nil then
return true
end
end
end
function check_premise(item)
if pc.is_married() then
say("Während du verheiratet bist kannst du")
say("kein VIP werden.")
return
elseif pc.is_polymorphed() then
say("Während du verwandelt bist kannst du")
say("kein VIP werden.")
return
elseif not pc.can_warp() then
say("Du hast vorkurzem gehandelt, so kannst du")
say("kein VIP werden.")
return
elseif pc.has_guild() then
say("Während du in einer Gilde bist kannst du")
say("kein VIP werden.")
return
elseif party.is_party() then
say("Während du in einer Gruppe bist kannst du")
say("kein VIP werden.")
return
elseif pc.count_item(item) < 1 then
say("Bugusern wird kein VIP entzogen!")
return
end
end
end
end
-----------------------------------------
-- written by Kilroy.
-- Benötigt Questlib Erweit. Mijago
------------------------------------------
|
|
|
11/18/2016, 02:22
|
#12438
|
elite*gold: 315
Join Date: Jun 2012
Posts: 5,158
Received Thanks: 4,814
|
Quote:
Originally Posted by Rofelmau
PHP Code:
quest desert_battle begin
state start begin
when 20352.chat."Wüstenschlacht" begin
if pc.get_level()>=75 then
if game.get_event_flag("deserton") == 0 then
say("Die Wüstenschlacht findet derzeit nicht statt.")
return
elseif game.get_event_flag("deserton") == 2 then
say("Die Wüstenschlacht befindet sich in der Endphase du kannst nicht beitreten.")
return
end
say("Die Schlacht in der Wüste ist im vollen gange,")
say("möchtest du beitreten oder Informationen erhalten?")
local info = select("Auf in die Wüste", "Informationen", "Abbrechen")
if info == 3 then
return
elseif info == 2 then
say("Das Ziel der Wüstenschlacht ist es als erstes reich 500")
say("Gegner aus den anderen Reichen zu besiegen.")
say("")
say("Das Reich, welches gewinnt erhält am schluss eine Belohnung")
say("in Form einiger Metinsteine")
local teilnehmen = select("Teilnehmen", "Abbrechen")
if teilnehmen == 2 then
return
elseif teilnehmen == 1 then
if pc.get_empire() == 1 then
pc.warp(217800, 627200)
elseif pc.get_empire() == 2 then
pc.warp(221900, 502700)
elseif pc.get_empire() == 3 then
pc.warp(344000, 502500)
else
say("Bei deinem Reich gab es einen Fehler!")
end
end
end
elseif info == 1 then
if pc.get_empire() == 1 then
pc.warp(217800, 627200)
elseif pc.get_empire() == 2 then
pc.warp(221900, 502700)
elseif pc.get_empire() == 3 then
pc.warp(344000, 502500)
else
say("Bei deinem Reich gab es einen Fehler!")
end
else
say("Du bist noch nicht Level 75")
return
end
end
end
when kill with npc.get_empire() != pc.get_empire() and npc.is_pc() and pc.get_map_index() == X and game.get_event_flag("turnieron") == 1 begin --X durch die ID der Map ersetzen
if game.get_event_flag("turnier"..pc.get_empire().."punkte") == 0 then
game.set_event_flag("turnier"..pc.get_empire().."punkte", 1)
else
game.set_event_flag("turnier"..pc.get_empire().."punkte", game.get_event_flag("turnier"..pc.get_empire().."punkte")+1)
end
if game.get_event_flag("turnier"..pc.get_empire().."punkte") >= 500 then
game.set_event_flag("reich"..pc.get_empire().."status", 1)
if pc.get_empire() == 1 then
notice_all("Das Rote Reich hat in der Wüste dominiert.")
elseif pc.get_empire() == 2 then
notice_all("Das Gelbe Reich hat in der Wüste dominiert.")
elseif pc.get_empire() == 2 then
notice_all("Das Blaue Reich hat in der Wüste dominiert.")
end
game.set_event_flag("deserton", 2)
end
end
when game.get_event_flag("deserton") == 2 begin
notice_all("Das Turnier geht nun in die Endphase.")
notice_all("Für das Siegerreich spawnen nun Metins")
notice_all("in der Mitte der Wüste.")
regen_in_map(183, "locale /germany/map/desert_war/regen_metins.txt")
say_in_map(183, "Ihr habt nun 30 Minuten Zeit die Metins in der Wüste")
say_in_map(183, "zu finden und zu zerstören. Viel Spass!")
timer("cooldown", 60*30)
end
when login or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == 2 and pc.get_map_index() == 183 begin
if game.get_event_flag("reich"..pc.get_empire().."status") == 1 then
return
elseif pc.is_gm() then
return
else
if pc.get_empire == 1 then
pc.warp(474200, 954400)
elseif pc.get_empire == 2 then
pc.warp(63200, 166100)
elseif pc.get_empire == 3 then
pc.warp(960100, 268700)
else
say("Du konntest auf grund deines Reiches nicht zurückteleportiert werden.")
say("Bitte Teleportier dich selber zurück")
end
end
end
when login or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == 1 and pc.get_map_index() == 183 and pc.get_level<75 begin
if pc.get_empire == 1 then
pc.warp(474200, 954400)
elseif pc.get_empire == 2 then
pc.warp(63200, 166100)
elseif pc.get_empire == 3 then
pc.warp(960100, 268700)
end
end
when "cooldown".timer begin
cleartimer("cooldown")
game.set_event_flag("deserton", 0)
game.set_event_flag("turnier1punkte", 0)
game.set_event_flag("turnier2punkte", 0)
game.set_event_flag("turnier3punkte", 0)
game.set_event_flag("reich1status", 0)
game.set_event_flag("reich2status", 0)
game.set_event_flag("reich3status", 0)
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
wait()
warp_all_to_village(183, 1)
kill_all_in_map(183)
end
when 20352.chat."Wüstenschlacht-Einstellungen" with pc.is_gm() begin
say("Was möchtest du machen?")
local what = select("Wüstenschlacht starten", "Wüstenschlacht Beenden", "Abbrechen")
if what == 3 then
return
elseif what == 2 then
game.set_event_flag("deserton", 0)
game.set_event_flag("turnier1punkte", 0)
game.set_event_flag("turnier2punkte", 0)
game.set_event_flag("turnier3punkte", 0)
game.set_event_flag("reich1status", 0)
game.set_event_flag("reich2status", 0)
game.set_event_flag("reich3status", 0)
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
elseif what == 1 then
game.set_event_flag("deserton", 1)
notice_all("Die Wüstenschlacht wurde von "..pc.get_name.." gestartet.")
notice_all("Begebt euch zum Schlachtenverwalter.")
end
end
end
end
deine ends passten garnicht, kp ob sie so richtig sind, sollte aber compilen
|
danke fürs durchchecken, geht jedoch immer noch nicht.
PHP Code:
WHEN : 20352.chat ("W▒stenschlacht")
Event/desert_battle.quest:54:expecting 'state'
Error occured on compile Event/desert_battle.quest
|
|
|
11/18/2016, 20:33
|
#12439
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
Quote:
Originally Posted by Lauling
danke fürs durchchecken, geht jedoch immer noch nicht.
PHP Code:
WHEN : 20352.chat ("W▒stenschlacht")
Event/desert_battle.quest:54:expecting 'state'
Error occured on compile Event/desert_battle.quest
|
PHP Code:
quest desert_battle begin
state start begin
when 20352.chat."Wüstenschlacht" begin
if pc.get_level()>=75 then
if game.get_event_flag("deserton") == 0 then
say("Die Wüstenschlacht findet derzeit nicht statt.")
return
elseif game.get_event_flag("deserton") == 2 then
say("Die Wüstenschlacht befindet sich in der Endphase du kannst nicht beitreten.")
return
end
say("Die Schlacht in der Wüste ist im vollen gange,")
say("möchtest du beitreten oder Informationen erhalten?")
local info = select("Auf in die Wüste", "Informationen", "Abbrechen")
if info == 3 then
return
elseif info == 2 then
say("Das Ziel der Wüstenschlacht ist es als erstes reich 500")
say("Gegner aus den anderen Reichen zu besiegen.")
say("")
say("Das Reich, welches gewinnt erhält am schluss eine Belohnung")
say("in Form einiger Metinsteine")
local teilnehmen = select("Teilnehmen", "Abbrechen")
if teilnehmen == 2 then
return
elseif teilnehmen == 1 then
if pc.get_empire() == 1 then
pc.warp(217800, 627200)
elseif pc.get_empire() == 2 then
pc.warp(221900, 502700)
elseif pc.get_empire() == 3 then
pc.warp(344000, 502500)
else
say("Bei deinem Reich gab es einen Fehler!")
end
end
elseif info == 1 then
if pc.get_empire() == 1 then
pc.warp(217800, 627200)
elseif pc.get_empire() == 2 then
pc.warp(221900, 502700)
elseif pc.get_empire() == 3 then
pc.warp(344000, 502500)
else
say("Bei deinem Reich gab es einen Fehler!")
end
else
say("Du bist noch nicht Level 75")
return
end
end
end
when kill with npc.get_empire() != pc.get_empire() and npc.is_pc() and pc.get_map_index() == X and game.get_event_flag("turnieron") == 1 begin --X durch die ID der Map ersetzen
if game.get_event_flag("turnier"..pc.get_empire().."punkte") == 0 then
game.set_event_flag("turnier"..pc.get_empire().."punkte", 1)
else
game.set_event_flag("turnier"..pc.get_empire().."punkte", game.get_event_flag("turnier"..pc.get_empire().."punkte")+1)
end
if game.get_event_flag("turnier"..pc.get_empire().."punkte") >= 500 then
game.set_event_flag("reich"..pc.get_empire().."status", 1)
if pc.get_empire() == 1 then
notice_all("Das Rote Reich hat in der Wüste dominiert.")
elseif pc.get_empire() == 2 then
notice_all("Das Gelbe Reich hat in der Wüste dominiert.")
elseif pc.get_empire() == 2 then
notice_all("Das Blaue Reich hat in der Wüste dominiert.")
end
game.set_event_flag("deserton", 2)
end
end
when game.get_event_flag("deserton") == 2 begin
notice_all("Das Turnier geht nun in die Endphase.")
notice_all("Für das Siegerreich spawnen nun Metins")
notice_all("in der Mitte der Wüste.")
regen_in_map(183, "locale /germany/map/desert_war/regen_metins.txt")
say_in_map(183, "Ihr habt nun 30 Minuten Zeit die Metins in der Wüste")
say_in_map(183, "zu finden und zu zerstören. Viel Spass!")
timer("cooldown", 60*30)
end
when login or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == 2 and pc.get_map_index() == 183 begin
if game.get_event_flag("reich"..pc.get_empire().."status") == 1 then
return
elseif pc.is_gm() then
return
else
if pc.get_empire == 1 then
pc.warp(474200, 954400)
elseif pc.get_empire == 2 then
pc.warp(63200, 166100)
elseif pc.get_empire == 3 then
pc.warp(960100, 268700)
else
say("Du konntest auf grund deines Reiches nicht zurückteleportiert werden.")
say("Bitte Teleportier dich selber zurück")
end
end
end
when login or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == 1 and pc.get_map_index() == 183 and pc.get_level<75 begin
if pc.get_empire == 1 then
pc.warp(474200, 954400)
elseif pc.get_empire == 2 then
pc.warp(63200, 166100)
elseif pc.get_empire == 3 then
pc.warp(960100, 268700)
end
end
when "cooldown".timer begin
cleartimer("cooldown")
game.set_event_flag("deserton", 0)
game.set_event_flag("turnier1punkte", 0)
game.set_event_flag("turnier2punkte", 0)
game.set_event_flag("turnier3punkte", 0)
game.set_event_flag("reich1status", 0)
game.set_event_flag("reich2status", 0)
game.set_event_flag("reich3status", 0)
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
wait()
warp_all_to_village(183, 1)
kill_all_in_map(183)
end
when 20352.chat."Wüstenschlacht-Einstellungen" with pc.is_gm() begin
say("Was möchtest du machen?")
local what = select("Wüstenschlacht starten", "Wüstenschlacht Beenden", "Abbrechen")
if what == 3 then
return
elseif what == 2 then
game.set_event_flag("deserton", 0)
game.set_event_flag("turnier1punkte", 0)
game.set_event_flag("turnier2punkte", 0)
game.set_event_flag("turnier3punkte", 0)
game.set_event_flag("reich1status", 0)
game.set_event_flag("reich2status", 0)
game.set_event_flag("reich3status", 0)
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
elseif what == 1 then
game.set_event_flag("deserton", 1)
notice_all("Die Wüstenschlacht wurde von "..pc.get_name.." gestartet.")
notice_all("Begebt euch zum Schlachtenverwalter.")
end
end
end
end
|
|
|
11/18/2016, 23:52
|
#12440
|
elite*gold: 315
Join Date: Jun 2012
Posts: 5,158
Received Thanks: 4,814
|
Quote:
Originally Posted by Rofelmau
PHP Code:
quest desert_battle begin
state start begin
when 20352.chat."Wüstenschlacht" begin
if pc.get_level()>=75 then
if game.get_event_flag("deserton") == 0 then
say("Die Wüstenschlacht findet derzeit nicht statt.")
return
elseif game.get_event_flag("deserton") == 2 then
say("Die Wüstenschlacht befindet sich in der Endphase du kannst nicht beitreten.")
return
end
say("Die Schlacht in der Wüste ist im vollen gange,")
say("möchtest du beitreten oder Informationen erhalten?")
local info = select("Auf in die Wüste", "Informationen", "Abbrechen")
if info == 3 then
return
elseif info == 2 then
say("Das Ziel der Wüstenschlacht ist es als erstes reich 500")
say("Gegner aus den anderen Reichen zu besiegen.")
say("")
say("Das Reich, welches gewinnt erhält am schluss eine Belohnung")
say("in Form einiger Metinsteine")
local teilnehmen = select("Teilnehmen", "Abbrechen")
if teilnehmen == 2 then
return
elseif teilnehmen == 1 then
if pc.get_empire() == 1 then
pc.warp(217800, 627200)
elseif pc.get_empire() == 2 then
pc.warp(221900, 502700)
elseif pc.get_empire() == 3 then
pc.warp(344000, 502500)
else
say("Bei deinem Reich gab es einen Fehler!")
end
end
elseif info == 1 then
if pc.get_empire() == 1 then
pc.warp(217800, 627200)
elseif pc.get_empire() == 2 then
pc.warp(221900, 502700)
elseif pc.get_empire() == 3 then
pc.warp(344000, 502500)
else
say("Bei deinem Reich gab es einen Fehler!")
end
else
say("Du bist noch nicht Level 75")
return
end
end
end
when kill with npc.get_empire() != pc.get_empire() and npc.is_pc() and pc.get_map_index() == X and game.get_event_flag("turnieron") == 1 begin --X durch die ID der Map ersetzen
if game.get_event_flag("turnier"..pc.get_empire().."punkte") == 0 then
game.set_event_flag("turnier"..pc.get_empire().."punkte", 1)
else
game.set_event_flag("turnier"..pc.get_empire().."punkte", game.get_event_flag("turnier"..pc.get_empire().."punkte")+1)
end
if game.get_event_flag("turnier"..pc.get_empire().."punkte") >= 500 then
game.set_event_flag("reich"..pc.get_empire().."status", 1)
if pc.get_empire() == 1 then
notice_all("Das Rote Reich hat in der Wüste dominiert.")
elseif pc.get_empire() == 2 then
notice_all("Das Gelbe Reich hat in der Wüste dominiert.")
elseif pc.get_empire() == 2 then
notice_all("Das Blaue Reich hat in der Wüste dominiert.")
end
game.set_event_flag("deserton", 2)
end
end
when game.get_event_flag("deserton") == 2 begin
notice_all("Das Turnier geht nun in die Endphase.")
notice_all("Für das Siegerreich spawnen nun Metins")
notice_all("in der Mitte der Wüste.")
regen_in_map(183, "locale /germany/map/desert_war/regen_metins.txt")
say_in_map(183, "Ihr habt nun 30 Minuten Zeit die Metins in der Wüste")
say_in_map(183, "zu finden und zu zerstören. Viel Spass!")
timer("cooldown", 60*30)
end
when login or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == 2 and pc.get_map_index() == 183 begin
if game.get_event_flag("reich"..pc.get_empire().."status") == 1 then
return
elseif pc.is_gm() then
return
else
if pc.get_empire == 1 then
pc.warp(474200, 954400)
elseif pc.get_empire == 2 then
pc.warp(63200, 166100)
elseif pc.get_empire == 3 then
pc.warp(960100, 268700)
else
say("Du konntest auf grund deines Reiches nicht zurückteleportiert werden.")
say("Bitte Teleportier dich selber zurück")
end
end
end
when login or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == 1 and pc.get_map_index() == 183 and pc.get_level<75 begin
if pc.get_empire == 1 then
pc.warp(474200, 954400)
elseif pc.get_empire == 2 then
pc.warp(63200, 166100)
elseif pc.get_empire == 3 then
pc.warp(960100, 268700)
end
end
when "cooldown".timer begin
cleartimer("cooldown")
game.set_event_flag("deserton", 0)
game.set_event_flag("turnier1punkte", 0)
game.set_event_flag("turnier2punkte", 0)
game.set_event_flag("turnier3punkte", 0)
game.set_event_flag("reich1status", 0)
game.set_event_flag("reich2status", 0)
game.set_event_flag("reich3status", 0)
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
wait()
warp_all_to_village(183, 1)
kill_all_in_map(183)
end
when 20352.chat."Wüstenschlacht-Einstellungen" with pc.is_gm() begin
say("Was möchtest du machen?")
local what = select("Wüstenschlacht starten", "Wüstenschlacht Beenden", "Abbrechen")
if what == 3 then
return
elseif what == 2 then
game.set_event_flag("deserton", 0)
game.set_event_flag("turnier1punkte", 0)
game.set_event_flag("turnier2punkte", 0)
game.set_event_flag("turnier3punkte", 0)
game.set_event_flag("reich1status", 0)
game.set_event_flag("reich2status", 0)
game.set_event_flag("reich3status", 0)
notice_all("Die Wüstenschlacht hat ein Ende gefunden.")
elseif what == 1 then
game.set_event_flag("deserton", 1)
notice_all("Die Wüstenschlacht wurde von "..pc.get_name.." gestartet.")
notice_all("Begebt euch zum Schlachtenverwalter.")
end
end
end
end
|
und jetzt kommt:
PHP Code:
Event/desert_battle.quest:71:when doesn't have begin-end clause. (()
Error occured on compile Event/desert_battle.quest
|
|
|
11/19/2016, 01:44
|
#12441
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Quote:
Originally Posted by Lauling
und jetzt kommt:
PHP Code:
Event/desert_battle.quest:71:when doesn't have begin-end clause. (() Error occured on compile Event/desert_battle.quest

|
z. 71:
PHP Code:
when game.get_event_flag("deserton") == 2 begin
Ist kein gültiges Event 
brauchst einen Auslöser wie login, kill, chat, click etc...
Aber um ehrlich zu sein: mach den code direkt in den when block davor.
Am Rande:
In Z. 98 solltest du hinter pc.get_level noch () machen.
Z 47: Das else bezieht sich meiner meinung nach auf das falsche if statement.
Mein Vorschlag:
PHP Code:
quest desert_battle begin state start begin when 20352.chat."Wüstenschlacht" begin if pc.get_level()>=75 then if game.get_event_flag("deserton") == 0 then say("Die Wüstenschlacht findet derzeit nicht statt.") return elseif game.get_event_flag("deserton") == 2 then say("Die Wüstenschlacht befindet sich in der Endphase du kannst nicht beitreten.") return end say("Die Schlacht in der Wüste ist im vollen gange,") say("möchtest du beitreten oder Informationen erhalten?") local info = select("Auf in die Wüste", "Informationen", "Abbrechen") if info == 3 then return elseif info == 2 then say("Das Ziel der Wüstenschlacht ist es als erstes reich 500") say("Gegner aus den anderen Reichen zu besiegen.") say("") say("Das Reich, welches gewinnt erhält am schluss eine Belohnung") say("in Form einiger Metinsteine") local teilnehmen = select("Teilnehmen", "Abbrechen") if teilnehmen == 2 then return elseif teilnehmen == 1 then if pc.get_empire() == 1 then pc.warp(217800, 627200) elseif pc.get_empire() == 2 then pc.warp(221900, 502700) elseif pc.get_empire() == 3 then pc.warp(344000, 502500) else say("Bei deinem Reich gab es einen Fehler!") end end elseif info == 1 then if pc.get_empire() == 1 then pc.warp(217800, 627200) elseif pc.get_empire() == 2 then pc.warp(221900, 502700) elseif pc.get_empire() == 3 then pc.warp(344000, 502500) else say("Bei deinem Reich gab es einen Fehler!") end end else say("Du bist noch nicht Level 75") return end end when kill with npc.get_empire() != pc.get_empire() and npc.is_pc() and pc.get_map_index() == 183 and game.get_event_flag("turnieron") == 1 and game.get_event_flag("spawned") == 0 begin --X durch die ID der Map ersetzen if game.get_event_flag("turnier"..pc.get_empire().."punkte") == 0 then game.set_event_flag("turnier"..pc.get_empire().."punkte", 1) else game.set_event_flag("turnier"..pc.get_empire().."punkte", game.get_event_flag("turnier"..pc.get_empire().."punkte")+1) end if game.get_event_flag("turnier"..pc.get_empire().."punkte") >= 500 then game.set_event_flag("reich"..pc.get_empire().."status", 1) if pc.get_empire() == 1 then notice_all("Das Rote Reich hat in der Wüste dominiert.") elseif pc.get_empire() == 2 then notice_all("Das Gelbe Reich hat in der Wüste dominiert.") elseif pc.get_empire() == 2 then notice_all("Das Blaue Reich hat in der Wüste dominiert.") end game.set_event_flag("spawned", 1) notice_all("Das Turnier geht nun in die Endphase.") notice_all("Für das Siegerreich spawnen nun Metins") notice_all("in der Mitte der Wüste.") regen_in_map(183, "locale /germany/map/desert_war/regen_metins.txt") say_in_map(183, "Ihr habt nun 30 Minuten Zeit die Metins in der Wüste") say_in_map(183, "zu finden und zu zerstören. Viel Spass!") timer("cooldown", 60*30) end end when login or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == 2 and pc.get_map_index() == 183 begin if game.get_event_flag("reich"..pc.get_empire().."status") == 1 then return elseif pc.is_gm() then return else if pc.get_empire == 1 then pc.warp(474200, 954400) elseif pc.get_empire == 2 then pc.warp(63200, 166100) elseif pc.get_empire == 3 then pc.warp(960100, 268700) else say("Du konntest auf grund deines Reiches nicht zurückteleportiert werden.") say("Bitte Teleportier dich selber zurück") end end end when login or levelup or button or info or unmount or mount or kill with game.get_event_flag("turnieron") == 1 and pc.get_map_index() == 183 and pc.get_level()<75 begin if pc.get_empire == 1 then pc.warp(474200, 954400) elseif pc.get_empire == 2 then pc.warp(63200, 166100) elseif pc.get_empire == 3 then pc.warp(960100, 268700) end end when "cooldown".timer begin cleartimer("cooldown") game.set_event_flag("deserton", 0) game.set_event_flag("turnier1punkte", 0) game.set_event_flag("turnier2punkte", 0) game.set_event_flag("turnier3punkte", 0) game.set_event_flag("reich1status", 0) game.set_event_flag("reich2status", 0) game.set_event_flag("reich3status", 0) notice_all("Die Wüstenschlacht hat ein Ende gefunden.") wait() warp_all_to_village(183, 1) kill_all_in_map(183) end when 20352.chat."Wüstenschlacht-Einstellungen" with pc.is_gm() begin say("Was möchtest du machen?") local what = select("Wüstenschlacht starten", "Wüstenschlacht Beenden", "Abbrechen") if what == 3 then return elseif what == 2 then game.set_event_flag("deserton", 0) game.set_event_flag("turnier1punkte", 0) game.set_event_flag("turnier2punkte", 0) game.set_event_flag("turnier3punkte", 0) game.set_event_flag("reich1status", 0) game.set_event_flag("reich2status", 0) game.set_event_flag("reich3status", 0) notice_all("Die Wüstenschlacht hat ein Ende gefunden.") elseif what == 1 then game.set_event_flag("deserton", 1) notice_all("Die Wüstenschlacht wurde von "..pc.get_name.." gestartet.") notice_all("Begebt euch zum Schlachtenverwalter.") end end
end end
|
|
|
11/19/2016, 02:21
|
#12442
|
elite*gold: 0
Join Date: Feb 2010
Posts: 124
Received Thanks: 40
|
Peace,
ich sitze seit ca. 4h an meiner ersten eigenen Quest.
Habe diese jetzt auch soweit fertig, jedoch habe ich beim compilieren nun folgenden Fehler relativ am Anfang :
Hier die Codestelle, wo der Fehler angeblich auftritt :
Habe schon sehr viel rumprobiert, aber bekomme immer den selben Fehler.
Würde mich sehr freuen, wenn mir jemand sagen könnte, woran es liegt.
LG
|
|
|
11/19/2016, 02:41
|
#12443
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Quote:
Originally Posted by marcomatic0
Peace,
ich sitze seit ca. 4h an meiner ersten eigenen Quest.
Habe diese jetzt auch soweit fertig, jedoch habe ich beim compilieren nun folgenden Fehler relativ am Anfang :
Hier die Codestelle, wo der Fehler angeblich auftritt :
Habe schon sehr viel rumprobiert, aber bekomme immer den selben Fehler.
Würde mich sehr freuen, wenn mir jemand sagen könnte, woran es liegt.
LG
|
dürfte eher der nächste when block sein, der Probleme macht.
Desweiteren ist es einfacher dir zu helfen, wenn du den code hier in den Thread postest und nicht einfach nur screenshots machst
|
|
|
11/19/2016, 17:04
|
#12444
|
elite*gold: 0
Join Date: Jan 2014
Posts: 31
Received Thanks: 4
|
delete#
|
|
|
11/20/2016, 12:49
|
#12445
|
elite*gold: 0
Join Date: Aug 2007
Posts: 29
Received Thanks: 4
|
was ist falsch in der dropp.quest
quest alternative_drop begin
state start begin
when kill with not npc.is_pc() begin
--Monster
if npc.get_race()==2591 then
--Tartaros
local armor = {11294, 11494, 11694, 11894}
if number(1, 10)==1 then game.drop_item_with_ownership(armor[number(1,4)], 1) return end --66er Rüstung+4: Chance 10%
elseif npc.get_race()==2597 then
--Charon
if number(1, 10)==1 then game.drop_item_with_ownership(11494, 1) return end --Schwarzwindanzug+4: Chance 10%
elseif npc.get_race()==2598 then
--[[Azrael
game.drop_item_with_ownership(50186, 1) --Truhe des Azrael
local items = {14220, 16220, 17220, 13140, 11694}
for i=1, 6 do
if number(1, 5)==1 then game.drop_item_with_ownership(items[i], 1) end --Seelenkristallschmuck & Titanschild & Magieplattenpanzer: Chance 1/5
end]]
if number(1, 2)==1 then game.drop_item_with_ownership(27990+number(2,4), 1) end
return
elseif npc.get_race()==2490 then
--Beran-Setaou
game.drop_item_with_ownership(30190, number(2,4)) --Blutstein
local waffen = {190, 180, 1130, 2170, 3160, 5120}
for i=1, table.getn(waffen) do
if number(1, 50)==1 then game.drop_item_with_ownership(waffen[i], 1) end --75er Waffe+0: Chance 10%
end
local helme = {12260, 12390, 12530, 12670, }
for i=1, table.getn(helme) do
if number(1, 5)==1 then game.drop_item_with_ownership(helme[i]+number(1,5), 1) end --Helme +0-4: Chance 1/5
end
local schuhe = {15410, 15430, 15370, 15220}
for i=1, 4 do
if number(1, 5)==1 then game.drop_item_with_ownership(schuhe[i]+number(1,5), 1) end --Schuhe +0-4: Chance 1/5
end
game.drop_item_with_ownership(27990+number(2,4), 1) --Perlen
local drache = {71123, 71129}
for i=1, 2 do
if number(1, 2)==1 then game.drop_item_with_ownership(drache[i], 1) end --Drachenzeug: Chance 15/20
end
return
elseif npc.get_race()==2492 then
-- General Yonghan
game.drop_item_with_ownership(30190, 1) --Blutstein
game.drop_item_with_ownership(30179, number(1, 4)) --Gewundener Schlüssel
local sonstiges = {13066, 13086, 13126, 13106, 16186, 17186, 17206, 16206, 14206, 15166, 15206, 14144, 71135}
for i=1, table.getn(sonstiges) do
if number(1, 5)==1 then game.drop_item_with_ownership(sonstiges[i], 1) end --Schmuck, Schuhe: Chance 1/5
end
return
elseif npc.get_race()==2092 then
--Spinnenbaroness
local waffen = {145, 155, 3135, 5105, 1105, 2145, 7145, 245}
for i=1, table.getn(waffen) do
if number(1, 20)==1 then game.drop_item_with_ownership(waffen[i], 1) end --65er Waffe+5: Chance 1/20
end
game.drop_item_with_ownership(27990+number(2,4), 1) --Perlen
if number(1, 5)==1 then game.drop_item_with_ownership(55702, 1) end --kleinespinne
if number(1, 5)==1 then game.drop_item_with_ownership(13140, 1) end --Titanschild
local armor = {11296, 11496, 11696, 11896}
for i=1, 4 do
if number(1, 10)==1 then game.drop_item_with_ownership(armor[i], 1) end --66er Rüstung+0: Chance 1/10
end
local schild = {13064, 13084, 13124, 13104}
for i=1, 4 do
if number(1, 5)==1 then game.drop_item_with_ownership(schild[i], 1) end --61er Schild+4: Chance 1/5
end
local schmuck = {14166, 16166, 17166, 14186, 16186, 17186, 14206, 16206, 17206}
for i=1, table.getn(schmuck) do
if number(1, 5)==1 then game.drop_item_with_ownership(schmuck[i], 1) end --Schmuck: Chance 1/5
end
return
elseif npc.get_race()==706 then
-- Dunkler Peiniger -> Fluchsammlung
if number(1,50)==1 then game.drop_item_with_ownership(30047, 2) return end
-- elseif npc.get_race()==1104 or npc.get_race()==1134 then
-- Eislöwe & Unterwelt-Eislöwe -> Yetifell
-- if number(1,50)==1 then game.drop_item_with_ownership(30014, 2) return end
elseif npc.get_race()==636 or npc.get_race()==637 then
if number(1,25)==1 then game.drop_item_with_ownership(30006, 2) return end --Orkzahn
elseif npc.get_race()==706 or npc.get_race()==756 then
if number(1,25)==1 then game.drop_item_with_ownership(30047, 2) return end --Fluchsammlung
elseif npc.get_race()>=1001 and npc.get_race()<=1003 then
-- Dämonen -> Dämonenandenken
-- if number(1,25)==1 then game.drop_item_with_ownership(30015, 2) return end
-- if npc.get_race()==1003 then
-- Dämonenedelstein
-- if number(1,50)==1 then game.drop_item_with_ownership(30016, 2) return end
-- end
-- if npc.get_race()==1002 then
-- Dämonenedelstein+
-- if number(1,50)==1 then game.drop_item_with_ownership(30087, 2) return end
-- end
-- elseif npc.get_race()==2203 then
-- Kampftiger -> Flammenmähne
-- if number(1,50)==1 then game.drop_item_with_ownership(30019, 2) return end
-- elseif npc.get_race()==904 then
-- Plagenschwertkämpfer -> Stück Gewebe
-- if number(1,50)==1 then game.drop_item_with_ownership(30039, 2) return end
-- elseif npc.get_race()==1301 or npc.get_race()==1303 then
-- -- Baumfrosch-Soldat, Buhmann -> Blatt
-- if number(1,50)==1 then game.drop_item_with_ownership(30040, 2) return end
-- if npc.get_race()==1301 then
-- -- Forschzunge
-- if number(1,50)==1 then game.drop_item_with_ownership(30060, 2) return end
-- end
-- elseif npc.get_race()==2201 then
-- -- Kampftigersklave -> Reißzahn eines Tigers
-- if number(1,50)==1 then game.drop_item_with_ownership(30042, 2) return end
elseif npc.get_race()==1101 or npc.get_race()==1131 or npc.get_race()==1171 then
-- -- Böses verzaubertes Eis, Verzaubertes Eis, Unterwelt-Eissplitter -> Eisstück
-- if number(1,50)==1 then game.drop_item_with_ownership(30048, 2) return end
if npc.get_race()==1131 then
-- Wasserkristall
if number(1,150)==1 then game.drop_item_with_ownership(30198, 1) return end
end
-- elseif npc.get_race()==1102 or npc.get_race()==1132 then
-- -- Eiskillerwal, Unterwelt-Eiskillerwal -> Eiskillerwal-Horn
-- if number(1,50)==1 then game.drop_item_with_ownership(30049, 2) return end
elseif npc.get_race()==1107 or npc.get_race()==1137 then
-- Eisgolem, Unterwelt-Eisgolem -> Eiskugel
if number(1,25)==1 then game.drop_item_with_ownership(30050, 2) return end
if npc.get_race()==1137 then
-- Wasserkristall
if number(1,150)==1 then game.drop_item_with_ownership(30198, 1) return end
end
-- elseif npc.get_race()==1302 or npc.get_race()==1332 then
-- -- Baumfrosch-Anführer, Gr. Baumfrosch-Anführer -> Froschschenkel
-- if number(1,50)==1 then game.drop_item_with_ownership(30061, 2) return end
-- elseif npc.get_race()==2107 then
-- -- Schlangenbogenschütze -> Schlangenschwanz+
-- if number(1,50)==1 then game.drop_item_with_ownership(30082, 2) return end
-- elseif npc.get_race()==903 or npc.get_race()==933 then
-- -- Plagenmann, W. Plagenmann -> Unbekannte Medizin+
-- if number(1,50)==1 then game.drop_item_with_ownership(30083, 2) return end
-- elseif npc.get_race()==905 then
-- -- Plagenspeerkämpfer -> Stück Gewebe+
-- if number(1,50)==1 then game.drop_item_with_ownership(30085, 2) return end
elseif npc.get_race()==1004 or npc.get_race()==1035 then
-- Dämonenschamane, Geist des Grolls -> Dämonenandenken+
-- if number(1,50)==1 then game.drop_item_with_ownership(30086, 2) return end
if npc.get_race()==1004 then
--Dämonenandenken
if number(1,50)==1 then game.drop_item_with_ownership(30015, 2) return end
end
-- elseif npc.get_race()==1103 then
-- -- Eisinsekt -> Eisstück+
-- if number(1,50)==1 then game.drop_item_with_ownership(30088, 2) return end
-- elseif npc.get_race()==1105 or npc.get_race()==1135 then
-- -- Frostiger Eismann, Unterwelt-Eismann -> Yetifell+
-- if number(1,50)==1 then game.drop_item_with_ownership(30089, 2) return end
-- elseif npc.get_race()==1106 or npc.get_race()==1136 then
-- -- Unterwelt-Yeti, Yeti -> Eiskugel+
-- if number(1,50)==1 then game.drop_item_with_ownership(30090, 2) return end
-- elseif npc.get_race()==2205 then
-- -- Flammenkrieger -> Kriegersymbol
-- if number(1,50)==1 then game.drop_item_with_ownership(30091, 2) return end
-- elseif npc.get_race()==2302 or npc.get_race()==2303 then
-- Dryade und Baumstumpf -> Milchsaft
-- if number(1,150)==1 then game.drop_item_with_ownership(30192, 1) return end
-- elseif npc.get_race()==1601 or npc.get_race()==1602 then
-- Oger Schlächter, Oger Krieger -> Ork-Keule
-- if number(1,25)==1 then game.drop_item_with_ownership(30194, 1) return end
-- elseif npc.get_race()==2414 or npc.get_race()==2404 or npc.get_race()==2411 then
-- Setaou-Kommandant, Setaou-Anführer, Setaou-Soldat -> Dämonenasche
-- if number(1,150)==1 then game.drop_item_with_ownership(30196, 1) return end
-- if npc.get_race()==2414 or npc.get_race()==2411 then
-- Blauer Kristall
-- if number(1,150)==1 then game.drop_item_with_ownership(30199, 1) return end
-- end
elseif npc.get_race()==1501 or npc.get_race()==1502 or npc.get_race()==1503 then
-- Steinbeisser, Steingolem, Riesiger Felsengolem -> Quarzsand
if number(1,25)==1 then game.drop_item_with_ownership(30195, 1) return end
elseif npc.get_race()==2312 or npc.get_race()==2313 then
-- Roter Geisterbaumstumpf, Rote Dryade -> Magische Samen
if number(1,150)==1 then game.drop_item_with_ownership(30197, 1) return end
elseif npc.get_race()==1133 then
-- Eisinsekt -> Wasserkristall
if number(1,150)==1 then game.drop_item_with_ownership(30198, 1) return end
elseif npc.get_race()==2413 then
-- Setaou-Magistra -> Blauer Kristall
if number(1,150)==1 then game.drop_item_with_ownership(30199, 1) return end
elseif npc.get_race()>=1061 and npc.get_race()<=1064 then
-- Gemeine Geister -> Fingerknochen
if number(1,150)==1 then game.drop_item_with_ownership(30193, 1) return end
end
--Global ohne Level
local items = {50600, 50314, 50315, 50316, 50301, 50302, 50303, 50304, 50305, 50306, 50061, 50060, 70104}
if number(1, 1000)==1 then game.drop_item_with_ownership(items[number(1, table.getn(items))], 1) return end
--Truhe der Macht
if number(1, 300)==1 then game.drop_item_with_ownership(38050, 1) return end
--Zen Bohne
if number(1, 350)==1 then game.drop_item_with_ownership(70102, 1) return end
--Truhe der Könige
if number(1, 350)==1 then game.drop_item_with_ownership(38052, 1) return end
--Muscheln
if number(1, 700)==1 then game.drop_item_with_ownership(27987, 1) return end
-- --Global Kräuter
-- local kraut = {50721, 50722, 50723, 50724, 50725, 50726, 50727, 50728}
-- if number(1, 1000)==1 then game.drop_item_with_ownership(kraut[number(1, table.getn(kraut))], 1) return end
--Global mit Level
-- if pc.get_level()>=25 and pc.get_level()<35 then
-- if number(1, 1000)==1 then game.drop_item_with_ownership(50054, 1) return end --Heu: Chance 1%
-- end
-- if pc.get_level()>=35 and pc.get_level()<50 then
-- if number(1, 1000)==1 then game.drop_item_with_ownership(50055, 1) return end --Karotte: Chance 1%
-- end
-- if pc.get_level()>=50 and (pc.get_map_index()<660000 or pc.get_map_index()>=670000) and pc.get_map_index()~=66 then
-- --Nicht im DT
-- if number(1, 1000)==1 then game.drop_item_with_ownership(50056, 1) return end --Roter Ginseng: Chance 1%
-- end
if pc.get_level()>=50 then
if number(1, 200)==1 then game.drop_item_with_ownership(25040, 1) return end --Segensschriftrolle: Chance 0.1%
end
if pc.get_level()>=75 then
local armor = {11280, 11480, 11680, 11880}
local waffen = {143, 153, 163, 243, 1103, 1113, 2133, 2143, 3133, 3143, 5093, 5103, 7133, 7143}
if number(1, 5000)==1 then game.drop_item_with_ownership(armor[number(1,4)], 1) return end --61er Rüstung+0: Chance 0.1%
if number(1, 5000)==1 then game.drop_item_with_ownership(schmuck[number(1,14)]+number(1,3), 1) return end --65er Waffen+4-6: Chance 0.1%
end
-- --Schlangenfeld und Land der Riesen
-- if pc.get_map_index()==69 or pc.get_map_index()==70 then
-- if number(1, 1000)==1 then game.drop_item_with_ownership(53010+number(1,2), 1) return end
-- end
--Ab DC Ebene 3
if (pc.get_map_index()>=2160000 and pc.get_map_index()<2170000) and d.getf("level")>=2 then
if number(1, 1000)==1 then game.drop_item_with_ownership(13140, 1) return end --Titanschild+0: Chance 0.1%
end
--DC Ebene 1
if pc.get_map_index() == 216 and pc.get_local_x() > 30 and pc.get_local_y() > 45 and pc.get_local_x() < 450 and pc.get_local_y() < 450 then
if number(1, 100)==1 then game.drop_item_with_ownership(30319, 1) return end --Schrumpfkopf: Chance 0.1%
end
--Roter Wald ab 86
if pc.get_level()>=86 and pc.get_map_index()==68 then
local armor = {11290, 11490, 11690, 11890}
local schmuck = {14203, 16203, 17203}
if number(1, 1000)==1 then game.drop_item_with_ownership(armor[number(1,4)], 1) return end --66er Rüstung+0: Chance 0.1%
if number(1, 1000)==1 then game.drop_item_with_ownership(schmuck[number(1,3)]+number(1,3), 1) return end --54er Schmuck+4-6: Chance 0.1%
if number(1, 1000)==1 then game.drop_item_with_ownership(27987, 1) return end --Muschel: Chance 0.1%
end
--Grotte der Verbannung 2 ab 75
if pc.get_level()>=75 and (pc.get_map_index()>=2070000 and pc.get_map_index()<2080000) or pc.get_map_index()==73 then
if number(1, 1000)==1 then game.drop_item_with_ownership(27987, 1) return end --Muschel: Chance 0.1%
if number(1, 1000)==1 then game.drop_item_with_ownership(50124, 1) return end --Morsche Holzkiste: Chance 0.1%
end
end
--Truhen
when 50186.use begin
--Truhe des Azrael
item.remove()
local waffen = {190, 180, 1130, 2170, 3160, 5120}
if number(1, 20)==1 then game.drop_item_with_ownership(waffen[number(1, 6)], 1) end --75er Waffe+0: Chance 10%
local armor = {11290, 11490, 11690, 11890}
for i=1, table.getn(armor) do
if number(1, 5)==1 then game.drop_item_with_ownership(armor[i]+number(1,2), 1) end --66er Rüstungen+1-2: Chance 1/2
end
local weapon = {3152, 172, 252, 1122, 2182, 7152}
for i=1, table.getn(weapon) do
if number(1, 7)==1 then game.drop_item_with_ownership(weapon[i], 1) end --70er Waffen+4: Chance 1/2
end
local schmuck = {14203, 16203, 17203}
for i=1, table.getn(schmuck) do
if number(1, 2)==1 then game.drop_item_with_ownership(schmuck[i]+number(1,3), 1) end --Schmuck+4-6: Chance 1/2
end
local schmuck2 = {14220, 16220, 17220}
for i=1, table.getn(schmuck2) do
if number(1, 5)==1 then game.drop_item_with_ownership(schmuck2[i], 1) end --Schmuck+0: Chance 1/5
end
local helme = {12260, 12280, 12670, 12680, 12530, 12540, 12390, 12400, 13140}
for i=1, table.getn(helme) do
if number(1, 4)==1 then game.drop_item_with_ownership(helme[i], 1) end --Helme+0 und +4: Chance 1/4
end
end
end
end
als fehler bekomme ich RunState: LUA_ERROR: [string "alternative_drop"]:1: attempt to compare number with boolean
WriteRunningStateToSyserr: LUA_ERROR: quest alternative_drop.start click
zwar läuft die quest so derzeit , jedoch kommt halt dieser fehler und man kann truhe der macht , bzw der könige nicht öffnen , truhen sind in putty als type 18
|
|
|
11/25/2016, 18:29
|
#12446
|
elite*gold: 11
Join Date: Apr 2011
Posts: 749
Received Thanks: 59
|
Hallo, bräuchte jemanden, der kontrolliert, wo ich zu viele / wenige "end"´s
gemacht habe, da ich assertion failure bekomme. Hier die Quest:
PHP Code:
quest level1 begin
state start begin
when login or levelup with pc.get_level() == 1 begin
set_state( gotoinfomation )
end
end
state gotoinfomation begin
when letter begin
send_letter("Willkommen auf CleverMt2!")
end
when button or info begin
say_title("Willkommen auf CleverMt2")
----"12345678901234567890123456789012345678901234567890"|
say("Das Abenteuer auf CleverMt2 hat grade erst begonnen.Um nun alles hier besser kennen zu lernen,")
say("suche bitte den Stadtwächer auf. ")
say("Er wird dir grundlegende Informationen geben.")
say("Zudem wird er dir verschiedene Tipps geben, sodass")
say("du dich besser zurecht finden kannst!")
say("")
say("Suche ihn nun. Er wartet auf dich.")
say("")
wait()
say_title("Wilkommen auf CleverMt2!")
say("Wenn du leveln möchtest, findest du Tiere außerhalb der Stadt. Diese Tiere sind rot auf der Minimap")
say("markiert, was zeigen soll, dass sie deine Feinde sind.")
say("Für den Anfang solltest du Wildhunde jagen, da sie")
say("das einfachste Ziel sind.")
say("")
say_reward("Suche nun den Stadtwächter auf!")
say("")
set_state( gototeacher )
end
end
state gototeacher begin
when letter begin
local v=find_npc_by_vnum(20354)
if 0==v then
else
target.vid("__TARGET__", v, "Locate the City Guard.")
end
end
when button or info begin
say_title("Finde den Stadtwächter.")
-----------"12345678901234567890123456789012345678901234567890"|
say_reward("Spreche mit dem Stadwächter.")
say_reward("Finde den NPC, der mit dem roten Pfeil makiert ist")
say_reward("und klicke auf ihn.")
say_reward("Falls du keine NPC's finden kannst, dann")
say_reward("folge dem rot blinkenden Symbol auf der Minimap.")
say("")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say_title("Stadtwächter:")
----"12345678901234567890123456789012345678901234567890"|
say("Du musst der Neue sein! Wie ich sehe, bist du noch")
say("nicht stark genug, um meine Aufträge zu meistern!")
say("Hattest du schon einmal ein richtiges Training?")
say("Schau dich doch mal an! Weißt du überhaupt, wie man eine Waffe benutzt?")
say("")
say("Hör zu!")
say("Du musst immer auf der Hut sein, wenn du in diesem")
say("Krieg überleben willst.")
say("Hier hast du deine erste Waffe! Geh und erledige einpaar Tiere.")
say("Ich werde dir einige Aufträge geben, sobald du höhere Level erreicht hast. Ich bin eine beschäftigte Person, also verschwende meine Zeit nicht! Verschwinde nun!")
wait()
say_title("Stadtwächter:")
----"12345678901234567890123456789012345678901234567890"|
say("Nun geh und lerne ein paar Grundlagen! Wenn du ein höheres Level erreicht hast, solltest du zu mir zurückkommen und mit mir reden! Warum stehst du immer noch hier? Du wirst keine Erfahrung sammeln, wenn du hier so rumstehst!")
say("")
if pc.job == 0 then
pc.give_item2(10)
elseif pc.job == 1 then
pc.give_item2(1000)
elseif pc.job == 2 then
pc.give_item2(10)
elseif pc.job == 3 then
pc.give_item2(7000)
clear_letter()
set_quest_state("find_squareguard","find")
set_quest_state("main_quest_lv2","run")
set_state(_COMPLETE_)
end
end
Danke im Voraus!
|
|
|
11/26/2016, 01:11
|
#12447
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Am Ende haben dir 2 gefehlt  , hab dazugeschrieben wo
PHP Code:
quest level1 begin state start begin when login or levelup with pc.get_level() == 1 begin set_state( gotoinfomation ) end end state gotoinfomation begin when letter begin send_letter("Willkommen auf CleverMt2!") end when button or info begin say_title("Willkommen auf CleverMt2") say("Das Abenteuer auf CleverMt2 hat grade erst begonnen.Um nun alles hier besser kennen zu lernen,") say("suche bitte den Stadtwächer auf. ") say("Er wird dir grundlegende Informationen geben.") say("Zudem wird er dir verschiedene Tipps geben, sodass") say("du dich besser zurecht finden kannst!") say("") say("Suche ihn nun. Er wartet auf dich.") say("") wait() say_title("Wilkommen auf CleverMt2!") say("Wenn du leveln möchtest, findest du Tiere außerhalb der Stadt. Diese Tiere sind rot auf der Minimap") say("markiert, was zeigen soll, dass sie deine Feinde sind.") say("Für den Anfang solltest du Wildhunde jagen, da sie") say("das einfachste Ziel sind.") say("") say_reward("Suche nun den Stadtwächter auf!") say("") set_state( gototeacher ) end end state gototeacher begin when letter begin local v=find_npc_by_vnum(20354) if 0==v then else target.vid("__TARGET__", v, "Locate the City Guard.") end end when button or info begin say_title("Finde den Stadtwächter.") say_reward("Spreche mit dem Stadwächter.") say_reward("Finde den NPC, der mit dem roten Pfeil makiert ist") say_reward("und klicke auf ihn.") say_reward("Falls du keine NPC's finden kannst, dann") say_reward("folge dem rot blinkenden Symbol auf der Minimap.") say("") end when __TARGET__.target.click begin target.delete("__TARGET__") say_title("Stadtwächter:") say("Du musst der Neue sein! Wie ich sehe, bist du noch") say("nicht stark genug, um meine Aufträge zu meistern!") say("Hattest du schon einmal ein richtiges Training?") say("Schau dich doch mal an! Weißt du überhaupt, wie man eine Waffe benutzt?") say("") say("Hör zu!") say("Du musst immer auf der Hut sein, wenn du in diesem") say("Krieg überleben willst.") say("Hier hast du deine erste Waffe! Geh und erledige einpaar Tiere.") say("Ich werde dir einige Aufträge geben, sobald du höhere Level erreicht hast. Ich bin eine beschäftigte Person, also verschwende meine Zeit nicht! Verschwinde nun!") wait() say_title("Stadtwächter:") say("Nun geh und lerne ein paar Grundlagen! Wenn du ein höheres Level erreicht hast, solltest du zu mir zurückkommen und mit mir reden! Warum stehst du immer noch hier? Du wirst keine Erfahrung sammeln, wenn du hier so rumstehst!") say("") if pc.job == 0 then pc.give_item2(10) elseif pc.job == 1 then pc.give_item2(1000) elseif pc.job == 2 then pc.give_item2(10) elseif pc.job == 3 then pc.give_item2(7000) end --hat gefehlt clear_letter() set_quest_state("find_squareguard","find") set_quest_state("main_quest_lv2","run") set_state(_COMPLETE_) end end end --hat gefehlt
Quote:
Originally Posted by Chritation
Hallo, bräuchte jemanden, der kontrolliert, wo ich zu viele / wenige "end"´s
gemacht habe, da ich assertion failure bekomme. Hier die Quest:
PHP Code:
quest level1 begin state start begin when login or levelup with pc.get_level() == 1 begin set_state( gotoinfomation ) end end state gotoinfomation begin when letter begin send_letter("Willkommen auf CleverMt2!") end when button or info begin say_title("Willkommen auf CleverMt2") ----"12345678901234567890123456789012345678901234567890"| say("Das Abenteuer auf CleverMt2 hat grade erst begonnen.Um nun alles hier besser kennen zu lernen,") say("suche bitte den Stadtwächer auf. ") say("Er wird dir grundlegende Informationen geben.") say("Zudem wird er dir verschiedene Tipps geben, sodass") say("du dich besser zurecht finden kannst!") say("") say("Suche ihn nun. Er wartet auf dich.") say("") wait() say_title("Wilkommen auf CleverMt2!") say("Wenn du leveln möchtest, findest du Tiere außerhalb der Stadt. Diese Tiere sind rot auf der Minimap") say("markiert, was zeigen soll, dass sie deine Feinde sind.") say("Für den Anfang solltest du Wildhunde jagen, da sie") say("das einfachste Ziel sind.") say("") say_reward("Suche nun den Stadtwächter auf!") say("") set_state( gototeacher ) end end
state gototeacher begin when letter begin local v=find_npc_by_vnum(20354) if 0==v then else target.vid("__TARGET__", v, "Locate the City Guard.") end end
when button or info begin say_title("Finde den Stadtwächter.") -----------"12345678901234567890123456789012345678901234567890"| say_reward("Spreche mit dem Stadwächter.") say_reward("Finde den NPC, der mit dem roten Pfeil makiert ist") say_reward("und klicke auf ihn.") say_reward("Falls du keine NPC's finden kannst, dann") say_reward("folge dem rot blinkenden Symbol auf der Minimap.") say("") end when __TARGET__.target.click begin target.delete("__TARGET__") say_title("Stadtwächter:") ----"12345678901234567890123456789012345678901234567890"| say("Du musst der Neue sein! Wie ich sehe, bist du noch") say("nicht stark genug, um meine Aufträge zu meistern!") say("Hattest du schon einmal ein richtiges Training?") say("Schau dich doch mal an! Weißt du überhaupt, wie man eine Waffe benutzt?") say("") say("Hör zu!") say("Du musst immer auf der Hut sein, wenn du in diesem") say("Krieg überleben willst.") say("Hier hast du deine erste Waffe! Geh und erledige einpaar Tiere.") say("Ich werde dir einige Aufträge geben, sobald du höhere Level erreicht hast. Ich bin eine beschäftigte Person, also verschwende meine Zeit nicht! Verschwinde nun!") wait() say_title("Stadtwächter:") ----"12345678901234567890123456789012345678901234567890"| say("Nun geh und lerne ein paar Grundlagen! Wenn du ein höheres Level erreicht hast, solltest du zu mir zurückkommen und mit mir reden! Warum stehst du immer noch hier? Du wirst keine Erfahrung sammeln, wenn du hier so rumstehst!") say("") if pc.job == 0 then pc.give_item2(10) elseif pc.job == 1 then pc.give_item2(1000) elseif pc.job == 2 then pc.give_item2(10) elseif pc.job == 3 then pc.give_item2(7000) clear_letter() set_quest_state("find_squareguard","find") set_quest_state("main_quest_lv2","run") set_state(_COMPLETE_) end end
Danke im Voraus!
|
|
|
|
11/26/2016, 14:56
|
#12448
|
elite*gold: 0
Join Date: Jul 2015
Posts: 1,400
Received Thanks: 568
|
Ich hab eine Quest geschrieben, dass man ein Item braucht um auf eine Farmmap zu kommen, leider klappt es nur wenn man dieses Item 1x im Inventar hat ,wenn man es 2x im Inventar hat geht es garnicht mehr.. weißt jemand warum?
Dankesehr
PHP Code:
quest farmmap begin
state start begin
when 9028.chat."Farmmap von Lv. 1 - Lv. 95" with pc.get_map_index() == 1 or pc.get_map_index() == 41 begin
local anzahl = 1
local itemvnum = 31061
say_title("Aschera: ")
say("")
say_green("Um diese Farmmap betreten zu können")
say_green("benötigst du:")
say_item_vnum(31061)
local s = select("Ich habe einen Ast!", "Nein, hab leider keinen. ")
if s == 1 then
if pc.count_item(itemvnum) >= anzahl and pc.level <= 95 and pc.can_warp() then
pc.remove_item(31061, 1)
pc.warp(777784000, 777848100)
else
chat("|cFF00ff33[Information]|h|cFFFFFFFF|h Du besitzt keinen Ast, bist zu hoch für diese Map oder musst 10 Sekunden warten.")
end
end
end
end
end
|
|
|
11/26/2016, 15:19
|
#12449
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
funktioniert alles wunderbar bei mir mit 200 stück im Inventar  ,
hab nur den warp zum testen entfernt
|
|
|
11/27/2016, 17:06
|
#12450
|
elite*gold: 0
Join Date: Feb 2010
Posts: 124
Received Thanks: 40
|
Hi, Habe als chance 0.0005% trozdem droppe ich bei jedem 2 mob etwas.
Jemand eine Ahnung, woran es liegt?
quest common_drops begin
state start begin
when kill with not npc.is_pc() begin
local drops = {
---Item id, min level, max level, drop chance
{50314,1,100,0.0005},
{50315,1,100,0.0005},
{50316,1,100,0.0005},
{50301,1,100,0.0005},
{50302,1,100,0.0005},
{50303,1,100,0.0005},
{70102,20,100,0.2},
{72301,50,100,0.2},
{50054,1,30,0.0005},
{50055,25,50,0.0005},
{50056,50,100,0.0005}
}
for i = 1, table.getn(drops) do
if pc.get_level() >= drops[2] and pc.get_level() <= drops[3] then
if number(1,100) > (100-drops[4]) then
game.drop_item_with_ownership(drops[1], 1)
return
end
end
end
end
end
end
|
|
|
All times are GMT +1. The time now is 21:33.
|
|