Ein jeder von euch der die Variante bevorzugt Gegner auf der Karte zu haben die bei Berührung einen Kampf starten werden denke ich mit folgendem Tutorial etwas anfangen können:
Gegner nach bestimmter Zeit respawnen lassen
Also gut, um das hinzubekommen brauchen wir eigentlich nur ein Common Event und ein Gegner.
Common Event
- $gameSystem.Enemy_Respawn === undefined
- // Frägt ab ob die Variable undefiniert ist ----> Sie muss definiert werden damit wir nachher keinen Error bekommen.
- $gameSystem.Enemy_Respawn = [];
- // Variable wird definiert, um genau zu sein als leeres Array
- $gameParty.inBattle() === false
- // Der Spieler und seine Gruppe befindet sich in keinem Kampf
- $gameMessage.isBusy() === false
- // Es wird keine Textbox angezeigt
- $gameSystem.Enemy_Respawn.length >= 1
- // Das Array beinhaltet mindestens einen Wert ----> Ansonsten muss das System nicht laufen, da es keinen Timer zum runterzählen gibt
- $gameVariables.value(12) >= $gameSystem.Enemy_Respawn.length
- // Der Counter ist größer oder gleich der Anzahl an Werten in dem Array ----> Schleife wird abgebrochen damit das Event neu gestartet werden kann
- $gameSystem.Enemy_Respawn[$gameVariables.value(12)][1] -= 1
- // Timer von dem Gegner mit der momentanen Counter Variable wird -1 genommen
- $gameSystem.Enemy_Respawn[$gameVariables.value(12)][1] <= 0
- // Timer ist gleich oder weniger als 0 ----> Der Self Switch A in dem Event das den Timer gestartet hat wird deaktiviert
! Es ist $gameVariables.value(12) weil meine Counter Variable die ID 12 hat !
Für das folgende brauche ich denke ich eine längere Erklärung...:
- var mapid = Number($gameSystem.Enemy_Respawn[$gameVariables.value(12)][0].substring(0, $gameSystem.Enemy_Respawn[$gameVariables.value(12)][0].indexOf(",")));
- var eventid = Number($gameSystem.Enemy_Respawn[$gameVariables.value(12)][0].substring($gameSystem.Enemy_Respawn[$gameVariables.value(12)][0].indexOf(",") + 1, $gameSystem.Enemy_Respawn[$gameVariables.value(12)][0].length));
Wir werden später dem Array "$gameSystem.Enemy_Respawn" ein weiteres Array hinzufügen, das zum Beispiel so aussehen wird:
["001,006", 900]
Was dahinter steckt ist einfach das:
"001": MapID auf dem sich das Event befindet
"006": ID von dem Event auf der Karte
", " : Wert der die MapID von der EventID trennt
900: Timer ----> Es müssen 900 Frames vergangen sein, bis der Gegner respawned (60 Frames ~ 1 Sekunde)
Nun wird eben die Variable mapid auf den Wert 001 gesetzt und die Variable eventid auf den Wert 006
Der Self Switch A auf der Karte mit dem Wert der Variable mapID von dem Event mit dem Wert der Variable eventid wird deaktiviert ----> Enemy ist respawned
Da der Gegner respawned ist, wird er nicht mehr in dem Respawn Array gebraucht und wird daher daraus entfernt
Gegner
! Es muss in dem Fall immer mit Self Switch A gearbeitet werden !
Ein neuer Timer mit:
MapID: 001
EventID: 030
Timer-Dauer: 500 Frames
wird dem System hinzugefügt
Wenn der Self Switch dann aktiviert wird ist der Gegner quasi despawned, davor muss dann eben der Kampf initialisiert werden!
Bei Fragen könnt ihr euch gerne melden, ich hoffe das war alles einigermaßen verständlich xD...
Danke fürs Lesen!