Vorwort:
Einbau:
Benutzung:
Downloads im Überblick:
Special Thanks:
[Only registered and activated users can see links. Click Here To Register...]
Dieses Release richtet sich eher an die etwas erfahrenen Quester. Es sollten mindestens Grundlegende Kenntnisse verhanden sein.Wofür das ganze?:
Mit diesem "System" könnt ihr viele Dinge eurer Quests verwalten und auch während der Server online ist das ganze neuladen. Und das ohne /reload q und den damit verbundenen Problemen!
Es kann z.B. die Dropchance eines Items geändert werden, komplette Dungeons deaktiviert werden und vieles mehr.
Einbau:
Um das ganze nutzen zu können müsst ihr zunächst folgende Dateien speichern:Nun öffnet ihr die questlib.lua (im Questordner) und fügt ganz unten die 3 Funktionen untereinander ein.
- [Only registered and activated users can see links. Click Here To Register...]
- [Only registered and activated users can see links. Click Here To Register...]
- [Only registered and activated users can see links. Click Here To Register...]
Anschließend speichert ihr die [Only registered and activated users can see links. Click Here To Register...] als neue Datei auf eurem Server, am besten im Questordner.
ACHTUNG!: DIE DATEI IST KEINE QUEST UND MUSS NICHT IN DIE LOCALE_LIST EINGETRAGEN WERDEN!
Nun schreibt ihr ganz unten in die questlib.lua (UNTER die eben eingefügten Funktionen) folgenden Code:
Jetzt ist das Herzstück auch schon eingebaut. Es fehlt nurnoch die Quest zum neuladen der Einstellungsdateien:Code:dofile("<HIER PFAD ZUR EBEN HOCHGELADENEN DATEI EINFÜGEN>")
[Only registered and activated users can see links. Click Here To Register...]
Diese wird wie jede normale Quest hochgeladen und auch in die locale_list eingetragen. Um einem Charakter die Rechte zum neuladen zu geben müsst ihr die Namen in der Quest im Table "allowList" eintragen. Hier ein Beispiel mit 2 Charakteren:
Code:function hasReloadRight() local allowList = { "Sensi", "YivAkaFagLelele", } return table.inList(allowList, pc.get_name()) end
Benutzung:
Erstellen einer Settings-Datei:
Wenn ihr das ganze nun für eine eurer Quests nutzen wollt müsst ihr zunächst eine settings Datei erstellen. Ich nenne sie immer <questname>_settings.lua, die Namensgebung ist aber letztendlich euch überlassen.
Jede Settings-Datei muss einen Table returnen und über den Key "RELOAD" verfügen, der beim initialisieren des Tables auf die aktuelle Zeit gesetzt wird.
Ein Beispiel für eine Settings-Datei:
ACHTUNG!: DIE DATEI IST KEINE QUEST UND MUSS NICHT IN DIE LOCALE_LIST EINGETRAGEN WERDEN!Code:return { RELOAD = get_global_time(), }
Alles weitere, was ihr nun in diesen Table schreibt, werdet ihr später in der Quest auslesen können.
Wenn die Datei erstellt ist, öffnet ihr die questsettings.lua (die Datei, die in der questlib.lua per dofile geladen wird) und tragt eure neue Settings-Datei im QUESTS-Table ein:
Der Key (in meinem Fall "BIO") ist nur für den leichteren Zugriff.Code:QUESTS = { BIO = {name = "Bio", path = get_locale_base_path() .. "/quest/Bio/bio_settings.lua", __SETTING_TABLE = nil}, }
- name: einfacher Name für die Quest. Er wird in der reload_settings-Quest angezeigt
- path: Pfad zur Settings-Datei
- __SETTING_TABLE: Immer einfach auf nil setzen, kann auch weggelassen werden.
Verbinden einer Settings-Datei mit einer Quest:
Um die eben erstellte Settings-Datei mit einer Quest zu verbinden machen wir uns eine Funktion innerhalb der Quest, um den Settings-Table zu bekommen. Ich nenne diese Funktion immer getSettings(), aber auch hier ist der Name natürlich euch überlassen.
Diese Funktion muss folgenden Inhalt haben:
[code]function getSettings()
return _G.QUEST_SETTINGS.GET(_G.QUEST_SETTINGS.QUESTS.BIO )
end
"BIO" muss hier am Ende immer der Key sein, den ihr vorher in der questsettings.lua definiert habt.
ACHTUNG!: ES IST MÖGLICH, DASS VON DER FUNKTION nil RETURNED WIRD!
Wenn die Funktion nun in der Quest angelegt wurde, kann über diese Funktion immer der Settings-Table geholt werden.
Kleines Beispiel:
myquest_settings.lua:
myquest.lua:Code:return { RELOAD = get_global_time(), START_YANG = 500, WELCOME_MSG = function() return string.format("Wir begrüßen %s auf ServerMT2", pc.get_name()) end, }
Code:quest myquest begin state start begin when login begin local settings myquest.getSettings() pc.change_gold(settings.START_YANG) notice_all(settings.WELCOME_MSG()) set_state("__COMPLETE__") end function getSettings() return _G.QUEST_SETTINGS.GET(_G.QUEST_SETTINGS.QUESTS.MY_QUEST) end end state __COMPLETE__ end end
Downloads im Überblick:
- [Only registered and activated users can see links. Click Here To Register...]
- [Only registered and activated users can see links. Click Here To Register...]
- [Only registered and activated users can see links. Click Here To Register...]
- [Only registered and activated users can see links. Click Here To Register...]
- [Only registered and activated users can see links. Click Here To Register...]
Special Thanks:
[Only registered and activated users can see links. Click Here To Register...]