Erklärung des Dungeon-Systems:
Das Dungeon-System besteht aus 4 LUA Dateien: 2x Quests und 2x Libs
1. Quest: dungeon_basic_test.lua ist der Dungeon an sich
2. Quest: dungeon_server_timer.lua ist eine Quest für alle Server Timer für diese Dungeons
3. Lib: dungeons.lua ist die Lib für das Dungeon-System.
4. Lib: common.lua isteine Lib für generelle Funktionen
Für den Dungeon Eintritt wird die Funktion selectDungeon() benötigt:
selectDungeon(min_level, dungeon_map_idx, dungeon_local_x, dungeon_local_y, dungeon_name, fail_time, entry_item, entry_item_count, only_solo_modus, dungeon_cooldown, dungeon_cooldown_reset_item, dungeon_cooldown_reset_item_count)
min_level Selbsterklärend
dungeon_map_idx Der Map Index des Dungeons
dungeon_local_x, dungeon_local_y Die x, y Positionen OHNE *100
dungeon_name Der Name des Dungeons
fail_time Die Zeit, welche der Spieler Zeit hat. Eine 0 Eintragen wenn es kein Zeitlimit geben soll!
entry_item Das Item, welches zum Betreten benötigt wird. Eine 0 Eintragen wenn es kein Item geben soll!
entry_item_count Die Anzahl vom Item, welches zum Betreten benötigt wird. Eine 0 Eintragen wenn es kein Item geben soll!
only_solo_modus 1 = Solo Dungeon / 0 = Egal, ob mit oder ohne Gruppe -> Einen Only Party Dungeon gibt es nicht
dungeon_cooldown Die Zeit, welche man warten muss nachdem man den Dungeon betreten hat. Dies gilt NUR für den Gruppen-Anführer!
dungeon_cooldown_reset_item Das Item, welches man nutzen kann um diesen Cooldown zu entfernen
dungeon_cooldown_reset_item_count Die Anzahl dafür "dungeon_cooldown_reset_item"
Nun kommen wir zu den Stages:
Ich habe 8 Dungeon Ebenen vorbereitet, welche nach Lust und Laune erweitert werden können:
DUNGEON_TYPE_KILL_MONSTER = 1
DUNGEON_TYPE_KILL_BOSS = 2
DUNGEON_TYPE_KILL_METINSTONE = 3
DUNGEON_TYPE_KEYSTONE = 4
DUNGEON_TYPE_TALK_TO_NPC = 5
DUNGEON_TYPE_KEYSTONE_IN_WAVES = 6
DUNGEON_TYPE_FIND_REAL_METINSTONE = 7
DUNGEON_TYPE_KILL_RANDOM_BOSS = 8
Im Beispiel Dungeon sind alle 8 Stages einmal vorbereitet und spielbar.
Man benötigt um eine Ebene hinzuzufügen einfach nur ein weiteres "elseif stage == X then" einzutragen und die Funktionen der Ebene.
Dies kommt in den login or enter trigger sowie in den kill oder ggf. den take, click Trigger.