Heute abend, als der Gameserver meines Egoshooters down war, kam ich auf die Idee, eine Monarchen-System Quest zu schreiben, da ich hier im Forum noch nie ein 100% funktionierendes Monarchen-System gesehen hab.
Außerdem laufen diese Monarchen-Systeme alle über die Gamefile. Heißt, je nach gamefile kann manch anderer das System garnicht nutzen, da die Difs ja von game zu game anders sind. Meine Quest jedoch kann mit jeden Serverfiles/gamefiles genutzt werden. Sie ist ähnlich wie das Monarchen-System aufgebaut.
Zuvor habe ich mich kaum mit diesem System auseinander gesetzt, ich weiß nichtmal, wie das originale system funktioniert, also korrigiert mich, wenn ich etwas falsches sage.
Zu erwähnen ist, dass ich diese Quest nicht nur aus langeweile geschrieben habe, sondern weil viele sagen, sie kennen mich nicht & Werke von mir würde es nicht geben. Das stimmt! Deshalb wollte ich mal etwas dagegen tun
zur Quest :
Neue Befehle und Functions :
1. 
2.

2.

Hier die Quest :
PHP Code:
quest kaiser begin
state start begin
when 20013.chat."Kaiser-Wahl" begin
if game.get_event_flag("wahl") == 1 then
say("Grüß dich, was möchtest du tun?")
local s = select("Kaiser wählen", "zur Wahl aufstellen", "Wahl-Ergebnisse anschauen", "Abbrechen")
if s == 2 then
if pc.get_level() >= 98 then
if pc.getqf("aufgestellt") == 0 then
say("Willst du dich wirklich zur Wahl aufstellen?")
local w = select("Ja", "Nein")
if w == 2 then
say("Du kannst es dir ja noch anders überlegen.")
say("Bis dann.")
else
if game.get_event_flag("maximum") == 0 then
local name = pc.get_name()
global_setvarchar("erster", name)
game.set_event_flag("maximum", 1)
game.set_event_flag("stimmen_eins", 0)
pc.setqf("aufgestellt", 1)
say_green("Du hast dich erfolgreich zur Wahl aufgestellt.")
elseif game.get_event_flag("maximum") == 1 then
local name = pc.get_name()
global_setvarchar("zweiter", name)
game.set_event_flag("maximum", 2)
game.set_event_flag("stimmen_zwei", 0)
pc.setqf("aufgestellt", 1)
say_green("Du hast dich erfolgreich zur Wahl aufgestellt.")
elseif game.get_event_flag("maximum") == 2 then
local name = pc.get_name()
global_setvarchar("dritter", name)
game.set_event_flag("maximum", 3)
game.set_event_flag("stimmen_drei", 0)
pc.setqf("aufgestellt", 1)
say_green("Du hast dich erfolgreich zur Wahl aufgestellt.")
elseif game.get_event_flag("maximum") == 3 then
local name = pc.get_name()
global_setvarchar("vierter", name)
game.set_event_flag("maximum", 4)
game.set_event_flag("stimmen_vier", 0)
pc.setqf("aufgestellt", 1)
say_green("Du hast dich erfolgreich zur Wahl aufgestellt.")
elseif game.get_event_flag("maximum") == 4 then
local name = pc.get_name()
global_setvarchar("fuenfter", name)
game.set_event_flag("maximum", 5)
game.set_event_flag("stimmen_fuenf", 0)
pc.setqf("aufgestellt", 1)
say_green("Du hast dich erfolgreich zur Wahl aufgestellt.")
elseif game.get_event_flag("maximum") == 5 then
local name = pc.get_name()
global_setvarchar("sechster", name)
game.set_event_flag("maximum", 6)
game.set_event_flag("stimmen_sechs", 0)
pc.setqf("aufgestellt", 1)
say_green("Du hast dich erfolgreich zur Wahl aufgestellt.")
elseif game.get_event_flag("maximum") == 6 then
local name = pc.get_name()
global_setvarchar("siebter", name)
game.set_event_flag("maximum", 7)
game.set_event_flag("stimmen_sieben", 0)
pc.setqf("aufgestellt", 1)
say_green("Du hast dich erfolgreich zur Wahl aufgestellt.")
elseif game.get_event_flag("maximum") == 7 then
local name = pc.get_name()
global_setvarchar("achter", name)
game.set_event_flag("maximum", 8)
pc.setqf("aufgestellt", 1)
game.set_event_flag("stimmen_acht", 0)
say_green("Du hast dich erfolgreich zur Wahl aufgestellt.")
elseif game.get_event_flag("maximum") == 8 then
local name = pc.get_name()
global_setvarchar("neunter", name)
game.set_event_flag("maximum", 9)
game.set_event_flag("stimmen_neun", 0)
pc.setqf("aufgestellt", 1)
say_green("Du hast dich erfolgreich zur Wahl aufgestellt.")
elseif game.get_event_flag("maximum") == 9 then
local name = pc.get_name()
global_setvarchar("zehnter", name)
game.set_event_flag("maximum", 10)
game.set_event_flag("stimmen_zehn", 0)
pc.setqf("aufgestellt", 1)
say_green("Du hast dich erfolgreich zur Wahl aufgestellt.")
elseif game.get_event_flag("maximum") >= 10 then
say_red("Leider sind bereits 10 Spieler aufgestellt.")
else
say_red("Fehler!")
end
end
else
say_red("Du bist bereits aufgestellt!")
end
else
say_red("Du bist leider zu niedrig um als Kaiser zu kandidieren!")
end
elseif s == 1 then
if pc.getqf("gewählt") == 0 then
say("Welchen Spieler möchtest du als Kaiser wählen?")
local waehlen = select(""..global_getvarchar("erster").."", ""..global_getvarchar("zweiter").."", ""..global_getvarchar("dritter").."", ""..global_getvarchar("vierter").."", ""..global_getvarchar("fuenfter").."", "Weiter", "Abbrechen")
if waehlen == 6 then
local waehlen_zwei = select(""..global_getvarchar("sechster").."", ""..global_getvarchar("siebter").."", ""..global_getvarchar("achter").."", ""..global_getvarchar("neunter").."", ""..global_getvarchar("zehnter").."", "Abbrechen")
if waehlen_zwei == 1 then
say("Willst du wirklich "..global_getvarchar("sechster").." wählen?")
local w = select("Ja", "Nein")
if w == 1 then
say_green("Du hast "..global_getvarchar("sechster").." gewählt.")
pc.setqf("gewählt", 1)
game.set_event_flag("stimmen_sechs", game.get_event_flag("stimmen_sechs")+1)
end
elseif waehlen_zwei == 2 then
say("Willst du wirklich "..global_getvarchar("siebter").." wählen?")
local w = select("Ja", "Nein")
if w == 1 then
say_green("Du hast "..global_getvarchar("siebter").." gewählt.")
pc.setqf("gewählt", 1)
game.set_event_flag("stimmen_sieben", game.get_event_flag("stimmen_sieben")+1)
end
elseif waehlen_zwei == 3 then
say("Willst du wirklich "..global_getvarchar("achter").." wählen?")
local w = select("Ja", "Nein")
if w == 1 then
say_green("Du hast "..global_getvarchar("achter").." gewählt.")
pc.setqf("gewählt", 1)
game.set_event_flag("stimmen_acht", game.get_event_flag("stimmen_acht")+1)
end
elseif waehlen_zwei == 4 then
say("Willst du wirklich "..global_getvarchar("neunter").." wählen?")
local w = select("Ja", "Nein")
if w == 1 then
say_green("Du hast "..global_getvarchar("neunter").." gewählt.")
pc.setqf("gewählt", 1)
game.set_event_flag("stimmen_neun", game.get_event_flag("stimmen_neun")+1)
end
elseif waehlen_zwei == 5 then
say("Willst du wirklich "..global_getvarchar("zehnter").." wählen?")
local w = select("Ja", "Nein")
if w == 1 then
say_green("Du hast "..global_getvarchar("zehnter").." gewählt.")
pc.setqf("gewählt", 1)
game.set_event_flag("stimmen_zehn", game.get_event_flag("stimmen_zehn")+1)
end
end
elseif waehlen == 1 then
say("Willst du wirklich "..global_getvarchar("erster").." wählen?")
local w = select("Ja", "Nein")
if w == 1 then
say_green("Du hast "..global_getvarchar("erster").." gewählt.")
pc.setqf("gewählt", 1)
game.set_event_flag("stimmen_eins", game.get_event_flag("stimmen_eins")+1)
end
elseif waehlen == 2 then
say("Willst du wirklich "..global_getvarchar("zweiter").." wählen?")
local w = select("Ja", "Nein")
if w == 1 then
say_green("Du hast "..global_getvarchar("zweiter").." gewählt.")
pc.setqf("gewählt", 1)
game.set_event_flag("stimmen_zwei", game.get_event_flag("stimmen_zwei")+1)
end
elseif waehlen == 3 then
say("Willst du wirklich "..global_getvarchar("dritter").." wählen?")
local w = select("Ja", "Nein")
if w == 1 then
say_green("Du hast "..global_getvarchar("dritter").." gewählt.")
pc.setqf("gewählt", 1)
game.set_event_flag("stimmen_drei", game.get_event_flag("stimmen_drei")+1)
end
elseif waehlen == 4 then
say("Willst du wirklich "..global_getvarchar("vierter").." wählen?")
local w = select("Ja", "Nein")
if w == 1 then
say_green("Du hast "..global_getvarchar("vierter").." gewählt.")
pc.setqf("gewählt", 1)
game.set_event_flag("stimmen_vier", game.get_event_flag("stimmen_vier")+1)
end
elseif waehlen == 5 then
say("Willst du wirklich "..global_getvarchar("fuenfter").." wählen?")
local w = select("Ja", "Nein")
if w == 1 then
say_green("Du hast "..global_getvarchar("fuenfter").." gewählt.")
pc.setqf("gewählt", 1)
game.set_event_flag("stimmen_fuenf", game.get_event_flag("stimmen_fuenf")+1)
end
end
else
say_red("Du hast bereits eine Stimme abgegeben.")
end
elseif s == 3 then
say("Hier kannst du die aktuellen Wahl-Ergebnisse anschauen.")
say("")
say(""..global_getvarchar("erster").." : "..game.get_event_flag("stimmen_eins").." Stimmen")
say("")
say(""..global_getvarchar("zweiter").." : "..game.get_event_flag("stimmen_zwei").." Stimmen")
say("")
say(""..global_getvarchar("dritter").." : "..game.get_event_flag("stimmen_drei").." Stimmen")
say("")
say(""..global_getvarchar("vierter").." : "..game.get_event_flag("stimmen_vier").." Stimmen")
say("")
say(""..global_getvarchar("fuenfter").." : "..game.get_event_flag("stimmen_fuenf").." Stimmen")
say("")
say(""..global_getvarchar("sechster").." : "..game.get_event_flag("stimmen_sechs").." Stimmen")
say("")
say(""..global_getvarchar("siebter").." : "..game.get_event_flag("stimmen_sieben").." Stimmen")
say("")
say(""..global_getvarchar("achter").." : "..game.get_event_flag("stimmen_acht").." Stimmen")
say("")
say(""..global_getvarchar("neunter").." : "..game.get_event_flag("stimmen_neun").." Stimmen")
say("")
say(""..global_getvarchar("zehnter").." : "..game.get_event_flag("stimmen_zehn").." Stimmen")
say("")
end
elseif game.get_event_flag("wahl") == 0 then
if pc.getqf("aufgestellt") == 1 then
say_green("Zurück gesetzt. Vielen Dank!")
pc.setqf("aufgestellt", 0)
else
say_red("Die Kaiser-Wahl ist beendet.")
say_red("Sobald die nächste startet, wirst du informiert.")
say("")
if game.get_event_flag(""..global_getvarchar("neuer_kaiser").."") == 1 then
say_green("Aktueller Kaiser: "..global_getvarchar("neuer_kaiser")..", Status: Online")
else
say_red("Aktueller Kaiser: "..global_getvarchar("neuer_kaiser")..", Status: Offline")
end
end
end
end
when 20013.chat."Kaiser-Wahl-Optionen" with pc.is_gm() begin
if game.get_event_flag("wahl") == 0 then
if pc.getqf("installation") == 0 then
say("Wie ich sehe, sind sie das erste mal hier.")
say("Deshalb ist eine Installation vor dem Starten erforderlich!")
say("Geben sie bitte folgendes ein: nicht festgelegt")
local abc = input()
if abc == "nicht festgelegt" then
global_setvarchar("install", abc)
pc.setqf("installation", 1)
say_green("Installation erfolgreich!")
say_green("Sie können das System nun benutzen.")
else
say_red("Installation fehlgeschlagen!")
end
else
local w = select("Kaiser-Wahl starten", "aktueller Kaiser", "Abbrechen")
if w == 1 then
notice_all(""..global_getvarchar("neuer_kaiser").." wurde von seinem Amt entlöst!")
notice_all("Eine neue Kaiser-Wahl wurde gestartet!")
notice_all("Ihr könnt euch nun zur Wahl aufstellen.")
notice_all("Viel Glück!")
game.set_event_flag("wahl", 1)
game.set_event_flag("stimmen_eins", 0)
game.set_event_flag("stimmen_zwei", 0)
game.set_event_flag("stimmen_drei", 0)
game.set_event_flag("stimmen_vier", 0)
game.set_event_flag("stimmen_fuenf", 0)
game.set_event_flag("stimmen_sechs", 0)
game.set_event_flag("stimmen_sieben", 0)
game.set_event_flag("stimmen_acht", 0)
game.set_event_flag("stimmen_neun", 0)
game.set_event_flag("stimmen_zehn", 0)
game.set_event_flag("maximum", 0)
global_setvarchar("erster", global_getvarchar("install"))
global_setvarchar("zweiter", global_getvarchar("install"))
global_setvarchar("dritter", global_getvarchar("install"))
global_setvarchar("vierter", global_getvarchar("install"))
global_setvarchar("fuenfter", global_getvarchar("install"))
global_setvarchar("sechster", global_getvarchar("install"))
global_setvarchar("siebter", global_getvarchar("install"))
global_setvarchar("achter", global_getvarchar("install"))
global_setvarchar("neunter", global_getvarchar("install"))
global_setvarchar("zehnter", global_getvarchar("install"))
global_setvarchar("neuer_kaiser", global_getvarchar("install"))
elseif w == 2 then
say("Aktueller Kaiser ist: "..global_getvarchar("neuer_kaiser")..".")
end
end
else
local w = select("Kaiser-Wahl beenden", "Abbrechen")
if w == 1 then
say("Möchtest du die Wahl wirklich beenden?")
local s = select("Ja", "Nein")
if s == 1 then
notice_all("In 24 Stunden endet die Kaiser-Wahl.")
notice_all("Also nochmal kräftig wählen!")
timer("generation", 60*1)
end
end
end
end
when generation.timer begin
game.set_event_flag("wahl", 0)
notice_all("Die letzten 24 Stunden sind rum!")
notice_all("Die Wahl-Kanäle wurden geschlossen.")
notice_all("Die Stimmen werden ausgewertet. Dies kann einige Minuten beanspruchen.")
game.set_event_flag("wahl", 0)
local eins = game.get_event_flag("stimmen_eins")
local zwei = game.get_event_flag("stimmen_zwei")
local drei = game.get_event_flag("stimmen_drei")
local vier = game.get_event_flag("stimmen_vier")
local fuenf = game.get_event_flag("stimmen_fuenf")
local sechs = game.get_event_flag("stimmen_sechs")
local sieben = game.get_event_flag("stimmen_sieben")
local acht = game.get_event_flag("stimmen_acht")
local neun = game.get_event_flag("stimmen_neun")
local zehn = game.get_event_flag("stimmen_zehn")
if eins > zwei and eins > drei and eins > vier and eins > fuenf and eins > sechs and eins > sieben and eins > acht and eins > neun and eins > zehn then
global_setvarchar("neuer_kaiser", global_getvarchar("erster"))
timer("auswertung", 60*2)
elseif zwei > eins and zwei > drei and zwei > vier and zwei > fuenf and zwei > sechs and zwei > sieben and zwei > acht and zwei > neun and zwei > zehn then
global_setvarchar("neuer_kaiser", global_getvarchar("zweiter"))
timer("auswertung", 60*2)
elseif drei > eins and drei > zwei and drei > vier and drei > fuenf and drei > sechs and drei > sieben and drei > acht and drei > neun and drei > zehn then
global_setvarchar("neuer_kaiser", global_getvarchar("dritter"))
timer("auswertung", 60*2)
elseif vier > eins and vier > zwei and vier > drei and vier > fuenf and vier > sechs and vier > sieben and vier > acht and vier > neun and vier > zehn then
global_setvarchar("neuer_kaiser", global_getvarchar("vierter"))
timer("auswertung", 60*2)
elseif fuenf > eins and fuenf > zwei and fuenf > drei and fuenf > vier and fuenf > sechs and fuenf > sieben and fuenf > acht and fuenf > neun and fuenf > zehn then
global_setvarchar("neuer_kaiser", global_getvarchar("fuenf"))
timer("auswertung", 60*2)
elseif sechs > eins and sechs > zwei and sechs > drei and sechs > vier and sechs > fuenf and sechs > sieben and sechs > acht and sechs > neun and sechs > zehn then
global_setvarchar("neuer_kaiser", global_getvarchar("sechs"))
timer("auswertung", 60*2)
elseif sieben > eins and sieben > zwei and sieben > drei and sieben > vier and sieben > fuenf and sieben > sechs and sieben > acht and sieben > neun and sieben > zehn then
global_setvarchar("neuer_kaiser", global_getvarchar("sieben"))
timer("auswertung", 60*2)
elseif acht > eins and acht > zwei and acht > drei and acht > vier and acht > fuenf and acht > sechs and acht > sieben and acht > neun and acht > zehn then
global_setvarchar("neuer_kaiser", global_getvarchar("acht"))
timer("auswertung", 60*2)
elseif neun > eins and neun > zwei and neun > drei and neun > vier and neun > fuenf and neun > sechs and neun > sieben and neun > acht and neun > zehn then
global_setvarchar("neuer_kaiser", global_getvarchar("neun"))
timer("auswertung", 60*2)
elseif zehn > eins and zehn > zwei and zehn > drei and zehn > vier and zehn > fuenf and zehn > sechs and zehn > sieben and zehn > acht and zehn > neun then
global_setvarchar("neuer_kaiser", global_getvarchar("zehn"))
timer("auswertung", 60*2)
else
notice_all("Stimmen Gleichheit! Neuwahl erforderlich.")
notice_all("Die aufgestellten Spieler können nun nicht mit wählen!")
game.set_event_flag("wahl", 1)
game.set_event_flag("stimmen_eins", 0)
game.set_event_flag("stimmen_zwei", 0)
game.set_event_flag("stimmen_drei", 0)
game.set_event_flag("stimmen_vier", 0)
game.set_event_flag("stimmen_fuenf", 0)
game.set_event_flag("stimmen_sechs", 0)
game.set_event_flag("stimmen_sieben", 0)
game.set_event_flag("stimmen_acht", 0)
game.set_event_flag("stimmen_neun", 0)
game.set_event_flag("stimmen_zehn", 0)
end
end
when auswertung.timer begin
notice_all("Die Stimmen wurden ausgewertet!")
notice_all("Der neue Kaiser ist : "..global_getvarchar("neuer_kaiser").."")
notice_all("Herzlichen Glückwunsch!")
timer("bugs", 60*2)
end
when bugs.timer begin
notice_all("An alle, die sich bei der Wahl aufgestellt haben:")
notice_all("Bitte begebt euch umgehend zum Fischer,")
notice_all("ansonsten könnt ihr bei der nächsten Wahl nicht teilnehmen!!!")
end
when login begin
if global_getvarchar("neuer_kaiser") == pc.get_name() then
notice_all("Euer Kaiser, "..global_getvarchar("neuer_kaiser").." hat sich soeben eingeloggt!")
game.set_event_flag(pc.get_name(), 1)
end
end
when logout begin
if global_getvarchar("neuer_kaiser") == pc.get_name() then
notice_all("Euer Kaiser, "..global_getvarchar("neuer_kaiser").." hat sich soeben ausgeloggt!")
game.set_event_flag(pc.get_name(), 0)
end
end
end
end
Ich weiß, die Quest kann man weit aus ausbauen, aber es ist ein Anfang
Die Texte sollten überarbeitet werden
Copy Right ist keins drauf, da ich weiß, dass die meisten es eh weg machen
Die Quest habe ich nicht komplett getestet. Sie sollte jedoch funktionieren!
Naja ich hoffe ihr könnt damit was anfangen. Viel spaß damit
Über Kritik würde ich mich natürlich sehr freuen, vorallem weil es mein erstes Release ist






