very good!
Jetzt wo du es sagst, fällt es mir auch auf.Quote:
Hallo Kriegergeist, das ist eine sehr schöne Quest!
Ich habe mir erlaubt, die Quest in ein korrektes und angemessenses Deutsch zu übersetzen (Schweizer Rechtschreibungs-Standart). Übrigens hätte ich noch ein paar Ideen, wie man den Code noch etwas verkürzen und oder übersichtlicher machen könnte:
Man könnte doch 20 Zeilen sparen, indem man nach den IF's der Auswahl der Map dies hinzufügen und natürlich die korrespondierenden überflüssigen Zeilen in den IF-Abfragen entfernen würde. Könnte aber sein, dass es so zu komplikationen kommt, wenn eine Auswahl abgebrochen wird, das müsste man aber testen.
Auch würde ich jetzt "Shinsoo, Chinjo und Jinno" durch Rot, Gelb und Blau ersetzen, ist aber Geschmackssache.PHP Code:if o <= 4 then
game.set_event_flag("defend_and_destroy_red", 5 )
game.set_event_flag("defend_and_destroy_yellow", 5 )
game.set_event_flag("defend_and_destroy_blue", 5 )
game.set_event_flag("defend_and_destroy", 1 )
notice_all("Über die Spielregeln und weitere Infos zum Event")
notice_all("informiert euch der Schlachtenverwalter.")
end
Bei der Funktion "check" ist es doch auch überflüssig, die Reiche extra anzugeben, da durch die IF-Abfrage ja sowieso klar wird, welches Reich gewonnen hat oder täusche ich mich da, weil ich vielleciht etwas falsch interpretiert habe? Ja und zwei Reich auf 0 zu überprüfen würde doch auch reichen, das Dritte darf ja logischwerweise nicht 0 haben, also wäre es überflüssig dies ebenfalls zu überprüfen.PHP Code:function zahl(empire,anzahl)
local nation = { "Rot","Gelb","Blau" }
notice_all("Das "..nation[empire].."e Reich hat einen ihrer Metins verloren.")
notice_all("Sie besitzen jetzt nur noch "..anzahl.." Metins.")
notice_all(""..nation[empire].."e, gebt nicht auf!")
end
function lose(empire)
local nation = { "Rot","Gelb","Blau" }
notice_all("Der letzte Metin des "..nation[1].."en Reiches wurde zerstört.")
notice_all("Somit hat das "..nation[1].."e Reich verloren.")
notice_all("Sie können von nun an die anderen Reiche unterstützen!")
end
Überdies wäre es doch schön, wenn man beim Schlachtenverwalter mehrere Buttons zur Auswahl hätte, nicht, dass man 10 Seiten Text durchklcken muss. So wäre es doch noch etwas benutzerfreundlicher. Allerdings bin ich nicht ganz sicher, ob es so zu 100% funktioniert.PHP Code:function check()
local stone_red = game.get_event_flag("defend_and_destroy_red")
local stone_yellow = game.get_event_flag("defend_and_destroy_yellow")
local stone_blue = game.get_event_flag("defend_and_destroy_blue")
if stone_yellow == 0 and stone_blue == 0 then
notice_all("Das Rote Reich hat gewonnen. Herzliche Gratulatuion!")
notice_all("Wir hoffen, es hat euch allen Spass gemacht.")
game.set_event_flag("defend_and_destroy_red", 0 )
game.set_event_flag("defend_and_destroy", 0 )
elseif stone_red == 0 and stone_blue == 0 then
notice_all("Das Gelbe Reich hat gewonnen. Herzliche Gratulatuion!")
notice_all("Wir hoffen, es hat euch allen Spass gemacht.")
game.set_event_flag("defend_and_destroy_yellow", 0 )
game.set_event_flag("defend_and_destroy", 0 )
elseif stone_red == 0 and stone_yellow == 0
notice_all("Das Blaue Reich hat gewonnen. Herzliche Gratulatuion!")
notice_all("Wir hoffen, es hat euch allen Spass gemacht.")
game.set_event_flag("defend_and_destroy_blue", 0 )
game.set_event_flag("defend_and_destroy", 0 )
end
end
Da ich gerade keinen Server zur Verfügung habe, kann ich leider nciht testen, ob bei meiner Version evtl. Compiler Fehler kommen. Die komplette Quest habe ich in den Anhang getan.PHP Code:when 11001.chat."Defend and Destroy - Info." or 11003.chat."Defend and Destroy - Info." or 11005.chat."Defend and Destroy - Info." begin
say_title("Das Defend and Destroy Event")
say_reward("Hier findest du alle Informationen")
say_reward("über das Defend and Destroy Event:")
local event_info = select("Über Defend and Destroy", "Spielregeln", "Information zum Ablauf", "Belohnungen", "Abbrechen")
-- Über Defend and Destroy
if event_info == 1 then
say_title("Über Defend and Destroy")
say("")
say("Das Defend and Destroy Event ist ein Wettkampf")
say("zwischen allen drei Reichen. Das Event kann")
say("auf den vier folgenden Maps ausgetragen werden:")
say_reward("Wüste, Eisland, Orktal und Feuerland")
local button_back = select("Zurück")
if button_back == 1 then
return
end
-- Spielregeln
elseif event_info == 2 then
say_title("Defend and Destroy - Spielregeln")
say("")
say("Jedes Reich bekommt auf der Map, wo das")
say("Event stattfindet, vor ihrem Portal 5")
say("Reichsfelsen gespawnt, welche es zu")
say("verteidigen gilt.")
say("")
say("Das Reich, welches als erstes alle Metinsteine")
say("der anderen Reiche zerstört hat und selbst")
say("mindestens einen Metinstein übrig hat, gewinnt!")
local button_back = select("Zurück")
if button_back == 1 then
return
end
-- Information zum Ablauf
elseif event_info == 3 then
say_title("Defend and Destroy - Spielablauf")
say("")
say("Nachdem das Event gestartet wurde, kannst")
say("du dich auf die angekündigte Map über den")
Say("Teleporter begeben. Aufgabe ist es dann,")
say("die Metinsteine der gegnerischen Reiche")
say("die Metinsteine der gleichzeitig die")
say("Eigenen zu beschützen.")
local button_back = select("Zurück")
if button_back == 1 then
return
end
-- Belohnungen
elseif event_info == 4 then
say_title("Defend and Destroy - Belohnungen")
say("")
say("Meist sind erhöhte Raten für das jeweilige")
say("Reich eine der Belohnungen für dieharte Arbeit,")
say("doch ihr könntet aber auch andere Sachen als")
say("Belohnung erhalten. Was genau, ist aber ein")
say("streng vertrauliches Geheimnis.")
local button_back = select("Zurück")
if button_back == 1 then
return
end
else
return
end
end
MfG, Metin2freak99.