BreakLoopFix: Unterschied zwischen den Versionen

Aus Makerpendium.de
Zeile 4: Zeile 4:
 
|ersteller=[[bugmenot]]<br />KotatsuAkira
 
|ersteller=[[bugmenot]]<br />KotatsuAkira
 
|os=Windows
 
|os=Windows
|engine=[[RPG Maker 2000]] 1.07<br />RPG Maker 2000 1.62<br />[[RPG Maker 2003]] 1.08
+
|engine=[[RPG Maker 2000]] 1.07<br />RPG Maker 2000 1.10<br />RPG Maker 2000 1.51<br />RPG Maker 2000 1.62<br />[[RPG Maker 2003]] 1.08
 
|sprache=-
 
|sprache=-
 
|version=
 
|version=
|datum=23. April 2014<br />24. April 2014<br />4. August 2022
+
|datum=23. April 2014<br />24. April 2014<br />4. August 2022 <small>(2000-1.62)</small><br />13. August 2022
|download=[http://share.cherrytree.at/showfile-14136/breakloopfix.rar 2000-1.07 & 2003-1.08]<br />[https://archive.org/details/RPGMakerPatch_BreakLoopFix 2000-1.62]
+
|download=[http://share.cherrytree.at/showfile-14136/breakloopfix.rar 2000-1.07 & 2003-1.08]<br />[https://archive.org/details/RPGMakerPatch_BreakLoopFix Andere Versionen]
 
}}
 
}}
 
__NOTOC__
 
__NOTOC__

Version vom 13. August 2022, 16:46 Uhr

BreakLoopFix
Kein Bild verfügbar
Erstellt von bugmenot
KotatsuAkira
Betriebssystem Windows
Für Maker/Engine RPG Maker 2000 1.07
RPG Maker 2000 1.10
RPG Maker 2000 1.51
RPG Maker 2000 1.62
RPG Maker 2003 1.08
Sprache -
Aktuelle Version
Veröffentlichung 23. April 2014
24. April 2014
4. August 2022 (2000-1.62)
13. August 2022
Herunterladen 2000-1.07 & 2003-1.08
Andere Versionen

BreakLoopFix ist ein IPS-Patch für die RPG_RT.exe, der das Verhalten des Eventbefehls Break Loop so verändert, dass nicht mehr von der aktuellen Position aus zum nächsten Loop End gesprungen wird, sondern der passende Endpunkt zur aktuell laufenden Schleife gesucht wird. Seit dem RPG Maker XP existiert dieses fehlerhafte Verhalten nicht mehr.

Obwohl es anzuraten ist, Schleifen immer am unterstmöglichen Ende mit einem oder mehreren Ausgängen zu versehen, wo keine weiteren Unterschleifen mehr auftreten können, wird dies nicht immer von jedem eingehalten, da außer dem Einhalten einer gewissen Ordnung auch eigentlich kein Grund dazu besteht.

Beispiel

Wurde der Fix nicht angewendet, kann die nachfolgende Situation eintreten.

<>Loop Start
 <>Set Variable: [0001:Salatscheiben] + 1
 <>Set Variable: [0002:Schnittfortschritt] = 0
 <>If Variable [0001:Salatscheiben] == 15
  <>Break Loop
  <>
 : EndIf
 <>Loop Start
  <>Set Variable: [0002:Schnittfortschritt] + 1
  <>If Variable [0002:Schnittfortschritt] == 30
   <>Break Loop
   <>
  : EndIf
  <>Wait: 0.0s
  <>
 : Loop End
 <>Wait: 0.1s
 <>
: Loop End
<>

Gleiche Situation mit Fix

Nach Anwenden sucht sich Break Loop das nächste passende Ende mit der richtigen Tiefe.

<>Loop Start
 <>Set Variable: [0001:Salatscheiben] + 1
 <>Set Variable: [0002:Schnittfortschritt] = 0
 <>If Variable [0001:Salatscheiben] == 15
  <>Break Loop
  <>
 : EndIf
 <>Loop Start
  <>Set Variable: [0002:Schnittfortschritt] + 1
  <>If Variable [0002:Schnittfortschritt] == 30
   <>Break Loop
   <>
  : EndIf
  <>Wait: 0.0s
  <>
 : Loop End
 <>Wait: 0.1s
 <>
: Loop End
<>

Sichere Methode

Generell ist eine Struktur anzuraten, in der alle Abfragen nach unten verlagert werden.

<>Loop Start
 <>Set Variable: [0001:Salatscheiben] + 1
 <>Set Variable: [0002:Schnittfortschritt] = 0
 <>Loop Start
  <>Set Variable: [0002:Schnittfortschritt] + 1
  <>If Variable [0002:Schnittfortschritt] == 30
   <>Break Loop
   <>
  : EndIf
  <>Wait: 0.0s
  <>
 : Loop End
 <>If Variable [0001:Salatscheiben] == 15
  <>Break Loop
  <>
 : EndIf
 <>Wait: 0.1s
 <>
: Loop End
<>
Öffnen
● RPG_RT-/Editor-Patches (IPS/HPA/EXE) von bugmenot
Öffnen
● RPG_RT-/Editor-Patches (IPS/HPA/EXE) von KotatsuAkira