Da du dies bereits so bravorös gemeistert hast, hier noch eine letzte Bitte:
Könntest du mir noch Order und Status in aktivierbare Switches verwandeln? Hab beim Ausmisten gemerkt, dass ich die beiden definitiv nicht benötige.
Druckbare Version
SROA Switch
Zahlendreher... man kann die ID eh über die QuickPatches neu vergeben.Zitat:
Zitat von DynRPG.ini
Edit:
Für folgendes gelten die selben QuickPatches wie oben (bitte die nicht verwendeten Menüpunkte aus den QuickPatches löschen)
A Switch
SA Switch
SOA Switch
(wegen dem hier: RowVar)
Do any of you know how to fix the reflect bug in 2k3 1.08 where the battle animation is displayed a third time after damage has been dealt? I know this was fixed in 1.09, but I'm wondering if this can be fixed with a dynRPG quickpatch, ips patch, or via plugin.
If you're not sure what the bug I'm referring to is, this is the order of events:
1. An enemy is given a condition that has the "Reflect Magic" box checked
2. A hero casts a spell targeting that enemy
3. The animation displays on the monster
4. The animation is displayed onto the hero after the spell has been reflected
5. Damage displays
6. The animation is displayed again on the hero. <<<<<< This should never happen
I've tried making a counter-attack plugin that works around this, but it's a bit of a cluster-fuck.
I think Cherry mentioned a bugfix somewhere, but I'm not sure if it's referring to this particular bug.
The bugfix is for another, more confusing bug. Originally, if a party member with an id of 4 or more (I believe) was the reflect target, it would crash.
Actually, this bug was never really fixed (notice the BattlerAnimation casting the skill again).
But this patch will remove the BattleAnimation playing for a third time:
ReflectBugFix
Just paste the .ips file into the DynPatches folder of your game.
Das Ganze auf Deutsch: blah blah ReflectBugFix. Blah blah Ordner DynPatches blah, nein die entsprechende Funktion schaue ich mir irgendwann mal an.
Eine kurze Frage:
Es gibt ja den Easy Event Exporter, der Eventbefehle als Text in die Zwischenablage kopiert. Gibt es irgendein Tool, welches das umgekehrte ermöglicht, also Text wieder in Event-Code umzuwandeln, etwa mit der Syntax des EEE als Ausgangspunkt?
Ich habe zwar keine großen Hoffnungen, das das für mich ziemlich anspruchsvoll (bzw. nach viel Friemelskram) klingt, aber es würde das Scripten mit dem Maker so unglaublich erleichtern. Zum Einen, weil man nicht mehr alles anklicken muss sondern einfach tippen kann, zum Anderen, weil ich etwa auf Windows RT, iOS und Konsorten keinen Maker installieren kann.
Das ewige sich-durch-die-Menüs-klicken nimmt ganz schön Zeit in Anspruch, vor allem, wenn man nur einzelne Werte ändern möchte. Idealerweise eine Variable in zig MovePicture-Befehlen, wodurch die nächsten 5-10 Minuten wieder gelaufen sind...
Es gäbe da beispielsweise TKoolBridge, das allerdings eine ganz andere und nicht ganz so einfach lesbare
Syntax verlangt als die, die EEE ausspuckt.
Die Idee hatte ich auch schon, wollte da zusammen mit Makenshi was machen. Wurde dann aber zu groß. Aber im Zuge dieser Idee entstand der EEE überhaupt, eigentlich als "Nebenprodukt" weil ich was zum Testen brauchte, während ich die Eventbefehlformate analysiert habe. :)
Y u no RMEF? Wenn es nicht genau eine blöde Variablennummer ist, wie 1, 2, 50, 100 oder 160 oder so, die in deinen Move Picture Befehl an anderer Stelle vorkommen kann (siehe Dokumentation), müsste es klappen! Du siehst dann sowieso gleich im Outputfenster (oder klickst auf Export) ob alles richtig ist, bevor du wieder in den Maker kopierst.
(Übrigens hat RMEF auch als EEE-Ersatz Vorteile, weil weniger Bugs.)
Wohlmöglich aufwändiger als nötig... aber es erfüllt seinen Zweck:
ReflectBugFix
Einfach den alten ReflectBugFix gegen diesen austauschen.
Was macht das Ding?
- Animation wird kein drittes Mal abgespielt, wenn ein Skill vom Gegner abprallt
- das Spiel stürzt nicht mehr ab, wenn ein Held mit der ID 4 oder höher den Skill wirkt
- das Spiel stürzt nicht mehr ab, wenn ein Gegner in der Monstergruppe angegriffen wird, dessen Slot-Nummer die Heldengruppengröße überschreitet
- Skillanimationen werden auf den Anwender zurückgeworfen (statt auf den Helden in Slot x, wenn Gegner x angegriffen wird)
Gibt es eine Möglichkeit ein Plugin zu schreiben, dass die Verwendung der Cursor Tasten nach einem Befehl, z.B. @blockcursor 1, ausschaltet bzw. mit @blockcursor 0 wieder ausschaltet? Oder ist sowas schon irgendwie anders möglich?
(Events um den Helden setzen geht nicht, der wird in der Szene automatisch bewegt, während ein PP ein Keyinput abfragt.... ja es muss ein PP sein...)
Ja, geht und ist nicht mal schwer.
Es gibt zum einen http://rpg-maker.cherrytree.at/dynrp...71f80b44dab040 womit man die Heldenbewegung ganz speziell abschalten kann.
Zudem gibt es die Möglichkeit die Key->Funktion Zuweisung zu ändern oder halt die Keys zu deaktivieren, indem man die Belegung zeitweise auf nix belegt.
Würde jene erste Funktion dir helfen? Dann bau ich dir Fix ein Plugin drum mit zwei simplen Befehlen?
"CONTROL_NOTHING - No control possible (checking key state still works, of course) " Damit ist gemeint, dass alle Tasten abgeschalten sind aber so, dass Key Input Processing noch funktioniert?
Wäre sehr dankbar für das Plugin ^^ Solange es klappt, das das KeyInput Processing noch funktioniert und die Cursor Tasten ausgeschalten sind.. Die Entertaste frage ich nämlich ab ^^ *bettel*
+ich müll mal wieder den Thread zu+
Ich wurde gebeten... Zeug! zu machen, damit man beim Wählen des Menüpunktes [Row] einen Helden wählen kann, beim Bestätigen das Menü geschlossen wird und die Hero_ID in einer Variablen ausgegeben wird:
download RowVar
Man kann damit z.B. gesonderte Untermenüs für einzelne Gruppenmitglieder aufrufen.Zitat:
Zitat von DynRPG.ini
Edit:
download RowVar[2+]
Zusätzlich noch mit der Menüoption [Order] das Gleiche. (die alte Datei RowVar.ips hiermit ersetzen)
Wer die beiden Switches rausnehmen will:Zitat:
Zitat von DynRPG.ini
Zitat:
Zitat von DynRPG.ini
bugmenot sent me this version of the reflect bugfix via PM. It adds one more timing tweak. Everyone should get this and try out reflect spells now. They work great! This should definitely be added to DynRPG.
http://share.cherrytree.at/showfile-...rt2k3_v108.ips
Kleine Quickpatchanfrage:
http://i.imgur.com/PaJDPoA.png
Kann das bei allen Helden aus dem Menüscreen entfernt werden? Im Optimalfall wäre es cool, die HP und MP Zahlen zu verschieben, aber falls das ein zu großer Aufwand ist, reicht das andere auch völlig.
Nachtrag: Ich seh grad, das die im Skillmenü oben auch stehen. Wäre es möglich, das auch zu entfernen? Sorry nochmal für die vielen Anfragen. ( ._.)
41 von tausenden kleinen QuickPatches...
Zitat:
Zitat von DynRPG.ini
@bugmenot: 3x pop eax ist da ein interessanter Ansatz. ich hätte eher zu Beginn des ganzen Aufrufs ein jmp eingebaut. (Dann wäre der Quickpatch ein Byte kürzer ;) )
BTW: kann man / wärest du so freundlich beim Auslesen der QuickPatches das Erkennen von gleichen Zeichenketten beim Patchnamen zu entfernen? Wenn z.B. dreimal ein "ClearLvS=" auftritt (egal welche Adresse gepatcht wird) dann wird jeweils nur der erste Eintrag in der .ini verarbeitet.
Nein, das verwendet eine Windows-API-Funktion zum Auslesen der verfügbaren Keys, und dabei darfs natürlich nur jeden einmal geben (das ist eine INI-Datei).
Ist es möglich, dass ein Held eine bestimmte Rüstung anlegt und damit eine bestimmte Variable auf den Wert 1 setzt?
Kannst du nicht einfach abfragen ob er diese Rüstung trägt und dann die Variable auf 1 setzen?
Das wäre eine umständlichere Aktion, die zusätzlichen Code in Form eines parallelen Prozesses in den Common Events erfordert.
Deswegen die Frage.
Wann wäre es notwendig zu wissen, dass die Rüstung getragen wird?
Immer.
Beispiel
- Wenn Held 3 jetzt Rüstung 7 trägt, soll er die Klasse 9 mit Rang 2 auswählen können.
- Die Helden 1 und 2 können in Klasse 9 nur Rang 1 auswählen, weil sie Rüstung 7 NICHT tragen.
Edit
- Wenn Held 3 VORHER die Klasse 9 mit Rang 1 ausgewählt hat und DANN die rangfördernde Rüstung 7 anzieht, sollte sich NUR bei ihm die Klasse 9 automatisch von Rang 1 auf Rang 2 verbessern.
D.h. es reicht vor Aufruf des Klassenmenüs zu prüfen, ob die Rüstung angelegt ist. Beziehungsweise nach verlassen des Hauptmenüs~
Ich muss auch grad mal nachdenken, ob man das ohne DynRPG lösen kann.
Aber du hast recht, so kann ich auch die Symbole für die Klassen anpassen (Rang 1, Rang 2, etc.).
Nur bei dem hier
komme ich um einen Common Event samt parallelen Prozess nicht herum. Das heißt nämlich, dass man hier "Change Class" für Hero xy benutzen muss, und zwar wenn er die Rüstung anzieht und wieder ablegt.Zitat:
- Wenn Held 3 VORHER die Klasse 9 mit Rang 1 ausgewählt hat und DANN die rangfördernde Rüstung 7 anzieht, sollte sich NUR bei ihm die Klasse 9 automatisch von Rang 1 auf Rang 2 verbessern.
Neue Sache
- Kann ich rauskriegen, auf welchem Platz im Standardmenü sich das Mitglied Peter befindet?
- Kann ich auch herausfinden, ob einer oder mehrere Plätze im Standardmenü frei sind?
Hintergrund
- Ich habe 12 Klassen. Wenn ich ein Event anklicke, soll mich eine Message fragen, welcher Held die Klasse bekommen soll.
- Problem: Ich habe nachgezählt und insgesamt 22 verschiedene Gruppenzusammensetzungen in meinem Spiel festgestellt.
- Ich dachte zuerst daran, nur nach dem Platz im Standardmenü zu fragen. Aber wenn Peter auf Platz 1 die Gruppe verlässt und dann wieder hinzukommt, ist er plötzlich auf Platz 2, 3 oder 4. Ist also ziemlich komplex.
- Zusätzliche Schwierigkeit: Die Vorteile der KIassen sind im Grunde "nur" erhöhte Statuswerte und zusätzliche Skills. Die möchte ich bei Peters etwaigen Klassenwechseln jeweils wieder rückgängig machen.
Partyslots you mean? Ich kann dir ein Plugin schreiben, dass die Belegung rausscheibt.
Das Ergebnis ist
1,4,5,0 ~Zahlen entsprechend Datenbank-ID, 0=leer
Hintergrund
- Ich habe 12 Klassen. Wenn ich ein Event anklicke, soll mich eine Message fragen, welcher Held die Klasse bekommen soll.[...]
- Ich dachte zuerst daran, nur nach dem Platz im Standardmenü zu fragen. Aber wenn Peter auf Platz 1 die Gruppe verlässt und dann wieder hinzukommt, ist er plötzlich auf Platz 2, 3 oder 4. Ist also ziemlich komplex.[/QUOTE]
Und der Spieler soll sich merken, auf welcher Position sein Held ist? Das ist bescheuert.
Held-anwählen -> Klasse wählen -> Bestätigen -> Klasse wird angewendet.
Du fragst ab, welche Helden in der Party sind und generierst danach das Menüinterface.
Grafiken hinterlegen und per PicturePointerpatch den Namen aus der Helden-ID (siehe oben ) kombinieren.
Dann merkst du dir, welche Klasse Peter hat. Mit Variablen. Davon hast du genug. Es gibt eh nur 6 Statuswerte, es spricht nichts dagegen, sich zu merken um wieviel die Werte erhöht wurden, oder welche Klasse+Stufe Peter gerade aktiv hat.
Wenn du die Datenbereich sinnvoll anlegst fällt es leicht eine Funktion zu schreiben, die auf Basis von simplen Parametern (Klasse, HeldenId) die Werte schreibt.
Das mit dem Plugin wäre richtig gut.
Das mit dem Held anwählen ist bei mir schon problematisch. Ich hatte zuerst an Show Choice gedacht, es aber wegen zuvieler Kombinationsmöglichkeiten aufgegeben. Dann dachte ich an die Helden- MOMENTZitat:
Zitat von Corti
Das ist mir grad schlagartig in den Sinn gekommen. Jetzt muss ich das nur noch mit deinem Custom-Menü in Verbindung bringen. Ideal wäre es ja, wenn gleichzeitig auch noch ein Switch aktiviert wird *bugmenot anschreibt*
Meine Grundüberlegung:
Im Grunde wählt man "Klassen" im Standardmenü an und kommt dann auf dein Sondermenü. Dort werden dann die 12 Klassen angezeigt (ständig wechselnde Icons wegen Rangaufstiegs der jeweiligen Klassen). Wenn man auf eines dieser Icons klickt, sollte die Abfrage samt Heldenauswahl kommen.
Tja, und dann musste ich an die verschiedenen Gruppenzusammensetzungen und die unterschiedlichen Helden denken. Zumal ich mir vorgenommen hatte, die Klassenzugehörigkeit mit entsprechendem Rang per Faceset im Standardmenü anzuzeigen (insgesamt 120 Facesets für jeden Char).
War mir da überhaupt nicht schlüssig wie ich das noch mit einem zusätzlichen Interface ausstatten sollte. Die Heldenauswahl war halt der große Knackpunkt. Mal sehen ob RowVar hier Abhilfe schafft, wenn es bugmenot gelingen sollte noch einen Switch reinzuschieben.
Edit
Und er hat es geschafft =D
Meine bisherige Arbeit, möglich gemacht durch RowVar+ von bugmenot:
http://s14.directupload.net/images/140220/ciceizip.png
Was passiert hier?
Im Standardmenü "Klassen" (ehemals Row) anklicken, anschließend irgendeinen Helden auswählen. Wird das Standardmenü geschlossen, wird ein Switch aktiviert der automatisch Cortis Custom-Menü öffnet. Hier kann man aus 12 Klassen wählen.
Entscheidet man sich wie hier für die Klasse Feuerteufel, wird automatisch der vorher ausgewählte Held mit dem gleichnamigen Skill bestückt.
Problem
Jetzt muss ich nur noch einen Weg finden, die jeweiligen Klasseneffekte auch wieder rückgängig zu machen.
Du hast ja gemeint, dass ich die Skills und Statuswerte in Variablen abspeichern soll, um mir zu merken welcher Held welche Klasse + Rang besitzt. Nur kann hier der Held jeder sein, weil er einmalig durch eine Sammelvariable referenziert wird, welche nach der Skill-Zuteilung auch für die anderen Gruppenmitglieder zur Verfügung steht.
Weißt du, wie man das möglichst geordnet angeht, ohne in einer Flut aus fehleranfälligem Code zu ertrinken?
Erm... du benutzt JobClasses, richtig?
Da werden Exp-Werte unter den Teppich gekehrt (weil 98 Lv-Downs und [previous Lv -1] Lv-Ups durchgeführt werden).
Damit kann man aber kein "Reset Lv to 1" mehr machen.Zitat:
Zitat von DynRPG.ini
Edit:
JobClass-gebundene Skills werden durch Lv-Ups vergeben... ich schaue mal, was sich da machen lässt.
JobClasses kann ich nicht benutzen, allein schon wegen der einheitlichen BattleCommands/Statuswerte.
"Klassen" sind bei mir nur manuelle Vergaben von Skills und Statuserhöhungen, gestaffelt nach den Rängen der jeweiligen Klasse.
Hm...Zitat:
Zitat von DynRPG.ini
Und ich arbeite jetzt nur dran, weil man im Menü auch den Namen einer JobClass ausdrucken könnte, statt den halben Helden-Avatar mit Text zu bekleistern.
Und wegen etwaigen Elementar-/Statusresistenzen, die man so auf die Schnelle nicht ändern könnte.
Der QuickPatch bewirkt also, dass die Battle Commands intakt bleiben? Nice.
Das mit den Namen der JobClasses innerhalb des Menüs ist auch sehr praktisch.
Bleibt noch die Sache mit den Statuswerten, welche durch die JobClasses geändert werden. Die Chars sollen ihre ursprünglichen Werte behalten, der Bonus soll bspw. nur jeweils bei HP, MP, etc. erfolgen.
Das mit den Statusresistenzen und Elementschwächen ist auch so eine Sache, die sollten nach Möglichkeit ebenfalls erhalten bleiben.
Hab mich nochmal rangesetzt:
http://s1.directupload.net/images/140222/qrjm5p7n.png
Zusätzlich werden Klasse UND Rang bspw. für Jenny in Variable 3021 gespeichert. Wenn ich das abfrage, weiß ich sofort welche Klasse sie grad innehat und auf welchem Rang sich diese befindet.Zitat:
Zitat von Davy Jones
Das letzte was mir noch Sorgen bereitet, ist folgendes
- Jenny legt Klasse "Entzweier" (Rang 3) an und erhält +12 Angriff -> funktioniert einwandfrei.
- Jenny legt diese Klasse wieder ab, indem sie eine andere Klasse wählt, wie bspw. "Wasserspeier" (Rang 8).
- Nun sollen die +12 Angriff aber wieder verschwinden.
- Mein Lösungsansatz: Für jeweils einen Char eine Variable anlegen, die sich einen Statuswert merkt.
- Hier wäre das jetzt "Jenny Angriffswert merken".
- Bei 13 Charakteren und jeweils 6 Statuswerten käme ich dann auf... 78 Variablen. Hui.
Die Alternative wäre ein Event im Klassen-Auswahlmenü, welches voraussetzt dass eine Klasse erst entfernt werden muss, bevor eine neue angelegt werden kann.
Da muss ich nochmal ganz scharf drüber nachdenken.
Für den Spieler wäre es zumindest komfortabler wenn er die Klasse direkt wechseln könnte.
Und die 78 Variablen wirst du ja wohl haben, denn so viel Aufwand ist das auch nicht.
Bzw.
Wieso machst du nicht einfach, dass das beim Klassenwechsel automatisch geschieht? Also bevor die neue zugewiesen wird, entfernst du die alte. Nur halt dass der Spieler das nicht machen muss, sondern das ganze intern abläuft.Zitat:
ein Event im Klassen-Auswahlmenü, welches voraussetzt dass eine Klasse erst entfernt werden muss
Hab ich jetzt auch so umgesetzt.Zitat:
Zitat von Quetschi
Dafür dass dieses System das gesamte Spiel über hält, war es relativ wenig Fummelei. Ich habs zudem so gestaltet, dass die Sachen in dem Common Events relativ übersichtlich sind und ich den Code auch verstehe, um schnell zu checken ob was falsch läuft oder nicht. Der gesamte Code besteht ausschließlich aus Variablen und Conditional Branches, mit Ausnahme einiger Kommentare und Change Base Statistics/Change Skills.
Ich brauchte zwar ein paar Tage und etliche Tipps bzw. einen DynPatch (RowVar+) um das Problem richtig anzugehen, aber ich habs tatsächlich zum Laufen gebracht. Danke hier nochmal an bugmenot und Corti =D
Edit:
Zitat:
Zitat von bugmenot
Könnte für den einen oder anderen hilfreich sein. Klick im Menü auf Row, dann kannste einen Helden anwählen. Schließ das Menü und Switch Nr. 4009 wird aktiviert. Außerdem wird aus Variable 3340 die ID des vorher gewählten Helden ausgelesen (die Nummer des Platzes in Datenbank - Registerkarte Helden).Zitat:
Zitat von bugmenot
Das normale RowVar dagegen liest "nur" die Variable 3340 aus, ohne irgendeinen Switch.
*setzt "nur" die Variable 3340
Eine Var[3340] ungleich 0 kann man auch als boolean / Switch abfragen lassen. (muss halt immer Var[3340] auf 0 resettet werden vor jedem Menüaufruf... mit <Disallow Menu> und <Key Processing> -> Cancel -> <Call Menu> und zuviel Aufwand...)
Apropos Aufwand:
Bevor ich noch JobLv, JobExp und anderen Kram implementiere, der nicht einfach nur neue Progresskurven über character sheets klebt... ziehe ich wegen den Jobklassen folgende Karte: Aufwand >> genereller Nutzen
Sorry, dass ich vorgeschlagen habe, JobClasses zu benutzen. Das geht mit Variablenschubserei einfacher.
Jup, das mit den Variablen ist tatsächlich angenehmer. Die Jobklassen würden bei mir im Standardmenü auch garnicht angezeigt werden, weil ich das Status-Kommando rausgepatcht habe. Deswegen bleibt mir nur die Methode mit den 120 Facesets pro Char (12 Klassen mit je 10 Rängen).
Mit ein bisschen Geduld und Spucke dürfte das aber zu schaffen sein =)
Was ist das Klassenmenü? Ich kenne das nur von den Jobclasses des "Status"-MenüKommandos.
Edit: Ah ok, du meinst das Custom-Menü von Corti.
Ansonsten habe ich keinen Schimmer wie man im Standardmenü zusätzlichen Text anzeigen kann, ein Plugin dazu ist mir auch nicht bekannt.
Edit: Das mit der Funktion hab ich irgendwo mal gelesen, kann mich aber nicht mehr erinnern wo.
Einfach in onFrame, wenn scene == RPG::SCENE_MENU, den extra Text zeichnen. Dafür brauchst du noch getMenuScene, das fliegt irgendwo im Netz herum, um rauszufinden auf welchem Untermenü du bist.
*nick* Cherry hat recht. Davy, überleg dir mal was und wo du was im Hauptmenü mit reinstopfen würdest, dann reden wir über die Codeseite.
Die Frage ist nur, wo das hinsoll:
http://i.minus.com/ickF05sDF9JC5.png
12 Buchstaben ist die längste Klassenbezeichnung, dazu soll noch der Rang.
Bspw. Wasserspeier Rang 10.
Edit:
download ShopEconomy(fix)
(wie immer nur kompatibel mit 2k RPG_RT v1.07 und 2k3 RPG_RT v1.08 oder DynRPG gepatchter RT)
Shop Economy
Kaufpreise in 100% + Var[3338]%
Verkaufspreise in 50% + Var[3339]%
Beispiel:
set Var[3338] = - 50
-> Items kosten 100 + (- 50) = 50% vom Grundpreis
set Var[3339] = + 20
-> Items bringen 50 + 20 = 70% vom Grundpreis
Alles, was unter 0% landet, wird auf 0 gesetzt. Nach oben hin offen.
Und farbig:
@Cherry:Zitat:
Zitat von DynRPG.ini
Kann man Battle Events manuell updaten lassen (2k3)?
Edit:
Bisher erfolglos mit sub_499800 <>DoBattleEvents, sub_4B30F8 <>UpdateBattleEventPages, sub_4B310C <>BattleEventTrigger, sub_4AB8B4 <>UpdateEvents
Danke danke, damit lässt sich viel anfangen =)
Nebenbei, das hier sind ja die MenüCommands die Switches/Variablen auslösen:
Ich hab mir nämlich die Freiheit genommen, das ganze so zu verändern:Zitat:
Zitat von DynRPG.ini
Nun krieg ich aber Fehlermeldungen in Sachen RPG RT Access violation und so. Kann es sein, dass die Switches bombenfest sind und man jeweils erst die genaue Adresse ermitteln muss, damit die Switch-Nummer entsprechend abgeändert werden kann?Zitat:
Zitat von DynRPG.ini
Edit: Hab das hier noch gefunden:
Wenn ich mir jetzt deine beiden OrderSwitch-Sachen anschaue, bin ich mir ziemlich sicher dass die Dinger jeweils eine separate Adresse benötigen.Zitat:
Zitat von DynRPG.ini
Debugging...
Bei dir fehlt irgendwo eine Patch.ips-Datei.
Hast du überhaupt RowVar[2+] runtergeladen? (und RowVar+ und/oder RowVar gelöscht)
Oder den SASwitch drin? (SROA gelöscht und SOA gelöscht)
Die genauen Adressen schreibe ich normalerweise unter die dazugehörigen Patches. Das sind die Adressen wo die Switch_IDs zugewiesen werden.
Die Zeile sollte bei deiner Konfiguration nichts machen. (Ist nur für die Patches mit Menüoption anklicken -> sofort Switch + aus dem Menü raus)
...sollte auch gelöscht werden, sonst wird OrderSwitch_ID=4A283C,#2712 nichts bringen, wenn dieser QuickPatch unterhalb eines gleich-benannten QuickPatches steht.
Davy,benutzt du Dyn 0.20? Ansonsten gibts da noch nen Bug bei den #256+ Zahlen.
@bugmenot:
Ich habe in dieser Hinsicht keine IPS-Dateien im DynPatches-Ordner. Reicht es nicht, wenn man die Sachen "nur" in der DynRPG.ini drinstehen hat? Oder braucht man beides?
SaveSwitch funktioniert wiederum tadellos, aber das ist auch eine IPS-Datei ohne Daten in der DynRPG.ini.
Jop, das haste ja schon gesagt. Gleiche Sachen in der DynRPG.ini (in diesem Fall OrderSwitch) überschreiben sich bei Start der RPG_RT gegenseitig.Zitat:
Zitat von bugmenot
Nur diese Sachen haben mich halt gewundert (hier im Thread gefunden):
OrderSwitch_ID=4A283C,#1008
OrderSwitch_ID=4A26B0,#1010
Verschiedene Adressen (4A283C und 4A26B0) für den gleichen Befehl (OrderSwitch_ID) bei verschiedenen Switches (#1008 und #1010). Das hat mich vermuten lassen, dass verschiedene Switches verschiedene Adressen brauchen.
@Corti:
Alle Switches über 256? Dann dürfte SaveSwitch ja auch nicht funzen (Switch 1006 oder so), was es aber tut.
Ich hab übrigens auch bugmenots Originalkonfiguration in der DynRPG.ini ausprobiert (ohne IPS-Patches), gibt ebenfalls Fehlermeldungen mit Access Violation.
Stimmt. Da war ja noch was...
Kram deinen Hexeditor raus:
Zitat:
Zitat von SA Switch Code
Zitat:
Zitat von RowVar2+ Code
P.S.
Warum funktioniert das #256+ nun wieder? Ist DynRPG zufällig anfällig gegenüber Windows-Updates?
Edit:
Sagen wir es mal so: Du willst auf deiner Werkbank einen Nagel in ein Stück Holz hauen, hast dir aber gar kein Stück Holz bereitgelegt. Da kann das nur schief gehen wenn der Nagel in der Werkbank steckt.
Kurzum: ja, du brauchst beides.
Die ganzen .ips-Patches bringen neue Funktionen in die Engine rein. Die QuickPatches dazu sind nur zum Konfigurieren der Patches (IDs ändern etc.)
Gut gut, dann ist mir jetzt einiges klarer geworden.
Nebenbei, soll ich die IPS-Dateien selber mit dem Hex-Editor öffnen? Die Adressen dort stimmen nämlich nicht mit dem überein, was du gepostet hast (bei SA-Switch hab ich kein 0x18 oder 0x2D).
Edit:
Was bewirkt die Aktion mit dem Hex-Editor eigentlich?
@bugmenot:
DynRPG:: RPG::updateBattleEvents. Experimentell.
Im Code (2k3): 499800
Hallo,
ich bin grade arg am verzweifeln eine Sichtreichweite für einen NPC zu erstellen am beste eine in der er alles vor ihm in einem Halbkeis wahr nimmt. Könnte mir jemand damit helfen? Ich verzweifel am DynRPG so ein wenig (ursprünglich in der Hoffnung das es so einfacher ist.)
Genauer bitte ^^ Du verwendest das http://www.multimediaxis.de/threads/...f-Sight-Plugin Plugin von Kazesui? ^^
Ich bin grade dabei, noch einige zusätzliche Anzeigeleisten in mein KS zu integrieren. Dabei hab ich überlegt, ob es nicht mitlerweile etwas einfacheres gibt(auch in Hinblick auf DynRpg), als haufenweise Forks aneinander zu reihen.
Das mag zwar überschaubar zu sein, aber ist letzten Endes doch einiges an nerviger Kopier - u. Klickarbeit, bei 9 Leisten mit je 10-15 Forks.
Also ich dachte da an etwas, wo man auch das angezeigte Picture irgendwie per Variable steuern kann, sodass man dann pro Leiste nur noch eine Fork brauchen würde. Gibts da irgendwas Brauchbares? Die Plugin, die ich mir so angeschaut hab, scheinen jedenfalls nichts zu bieten.
Was willst du denn zeigen?
"Anzeigeleisten"? ^^ Das kann natürlich auch sowas wie eine 4stellige Zahl sein, für die man dann bekanntlich 4x9 Forks braucht.
der hat nichts mit dyn zu tun oder? hab bei der liste der dyn sachen nix gefunden. hast du nen link zufällig?
(ich weiß natürlich nicht, wie das dann funktioniert. MarcL hat mir gestern versucht zu erklären, was ein pointer ist, so mit mäßigem erfolg. aber ich finde es bestimmt heraus ^^)
http://cherrytree.at/cms/lang/de/download/?did=19
Laut Readme findet sich in dem Demopropjekt ein Zahlenbeispiel. Viel Spass damit, wenns irgendwo klemmt, frag einfach.
Im dazugehörigen >>Thread<< gibt es einige weitere Erklärungen von Usern, die dir vielleicht weiterhelfen.
Gibt es eine Möglichkeit neue Checkmarks und Eingabefelder in die F8-Database einzubinden und mit entsprechenden Indeces (Ptr auf integer / booleans) zu verknüpfen?
Im 2k3 fehlt unter MonsterGroup bei dem Alignment/EnemyPlacement eine Checkbox für 'randomize group'.
Für alle Monster, abseits des ersten Monsters ohne hidden_flag, kann mit 50% Wahrscheinlichkeit die hidden_flag automatisch gesetzt werden.
Der dazugehörige Pointer wäre +1C auf MonsterGroupParam:
+04 = MonsterGroup_ID
+08 = MonsterGroup_Name
+0C = Ptr on MonsterList
+10 = TerrainAmount
+14 = Ptr on TerrainArray(?)
+18 = Ptr on BattleEvents
+1C = RandomizeHiding_flag (0|1 = false|true)
+20 = EnemyPlacement_flag (0|1 = manual|auto)
P.S.
random stuff:
Conditions, die HP abziehen, bleiben nicht bei 1 HP stehen:
CharSets im Shop bleiben farbig, selbst wenn entsprechende Items nicht genutzt werden können:Zitat:
Zitat von DynRPG.ini
RPG_RT2k v1.07:Zitat:
Zitat von DynRPG.ini
0x70BDB: 01 set 00
Kein Aufleuchten bei EnemyBehavior: Transform.
RPG_RT2k v1.07:Zitat:
Zitat von DynRPG.ini
0x7EE92: E8 BD FD FF FF set 58 58 58 90 90
AntiLagSwitch 2k(3)
download AntiLagSwitch
Also werden nur die Events geupdated, die von einem Change Switch bzw. Change Variable direkt betroffen sind?
Erm... immer wenn irgendetwas passiert (oder der entsprechende Eventbefehl erfolgt), das die PreConditions auf der linken Seite von Events erfüllen könnte (ChangeSwitch, ChangeVariable, AddItem, ChangeParty, ChangeTimer) ... erfolgt nach jedem solchen Eventbefehl ein EventUpdate, das ALLE Events auf der momentanen Map und ALLE CommonEvents anvisiert.
Wenn man im Hintergrund irgendwelche Logik- oder Arithmetik-Prozesse laufen hat, die aus zig Zeilen bestehen, die in jedem Frame wiederholt werden... kann man entweder einen 0.0 wait setzen (damit das Spiel Zeit hat, sich wieder zu beruhigen... dann muss man aber auch mittendrin waits setzen, weil 2 Frames warten statt vorher 1 ohne wait auch nicht viel bringen könnte...) ...oder halt das Auslagern von Rechenarbeit auf das Durchchecken von mehreren hundert Events unterbinden.
Diese Maker waren nie darauf ausgelegt, mit vorgegebenen Mitteln, irgendetwas großes durch den Nutzer ausrechnen zu lassen.
Der Patch wird leider kein generelles Laggen durch riesige Maps mit hunderten sich bewegenden Events oder durch ständige Festplattenzugriffe durch unnöttiges <ShowPicture> beheben.
Edit:
Solange man einen Block an ForkConditions + Switches + Variables hintereinanderreiht und vor und nach dem Block Switch[1000] an/ausschaltet, sollte es selbst bei parallel laufenden Events keine Probleme geben.
Die Checkerei wird also bei jeder Aktion durchgeführt, die die Seitenbedingungen betreffen könnte?
Es erschliesst sich mir halbwegs, warum das bei dem Event durchgeführt wird, aus dem der Befehl stammt,
da sich mitten im Frame etwas Wichtiges ändern kann, aber alle überprüfen? Es hätte ja eigentlich gereicht,
wenn diese durchgecheckt werden, sobald sie in der Ausführung im derzeitigen Frame dran sind. òo
Was mit den CommonEvents ist, kann ich nicht genau sagen. Aber bezüglich von MapEvents werden in einer 'for i = 1 to EventAmount'-Schleife die Parameter des jeweiligen Events abgerufen und gleich hinterher die Seitenbedingungen durchgecheckt. Bei jeder solchen Aktion, die ein EventUpdate ausführt. Ohne irgendwo mittendrin zu warten.
Sagt mal Leute, wäre es möglich eine Art eigene Scene zusammenzubauen?
Also ich meine ein komplett eigenes Menü, aber im Standardstil, ohne Pictures etc. zu verwenden. Dass man das ganze praktisch hardcoded?
Gibt noch nicht ausreichend Zugriff auf Spielinhalte um sowas umzusetzen.
Ich denke, das müsste schon hinzubekommen sein. Bei einer nicht vom Maker eingebauten Scene tut das Spiel einfach gar nichts. Man kann also in onFrame einfach selber was zeichnen, Tasten abfragen, Sounds ausgeben, etc.
EDIT: Ach so, du meinst es gibt noch zu wenig anzuzeigen... naja das stimmt leider.
@bugmenot
Besten Dank für diesen Patch! Dank dir und den anderen Technikern hier, werden die Grenzen der alten RPG Maker immer weiter in die Ferne geschoben. :A
Assign Turn Battle 2k3
download AssignTurnBattle
Many thanks to PepsiOtaku for troubleshooting.
LinkToEvent - Fix
download LinkToEventFix
Das Fenster mit den Kampfbefehlen wird jetzt geschlossen, wenn man einen BattleCommand vom Typ "Event" auswählt.
Wo schreibst du deine ganzen Codes hin? Du weißt schon dass ich massiv Code Caves verwendet habe in den alten Patches? Ich will da keine Konflikte. Könntest du mal eine Liste deiner Code Caves machen? Ich würd das dann auch tun. Ist sonst doof wenn es Konflikte gibt.
Ich fänds ja überhaupt sinnvoller wenn es diese Dinge als Plugin gäbe, mit Source. Du kannst ja, wenns keine Callbacks gibt, Jumps zu deinen Funktionen reinpatchen (aber auch im Plugin! nicht als IPS oder Quickpatch!!), aber die Funktionen selber im Plugin implementieren... fänd ich viel sinnvoller, das würde das Code Cave Problem lösen und deine Arbeit ein bisschen transparenter und erweiterbarer gestalten.
Der Sinn von DynRPG war es ja, die traditionellen IPS-Patches abzuschaffen... das IPS-Feature hab ich nur eingebaut um auch alte Nicht-Plugin-Patches nutzen zu können, ohne an der RPG_RT.exe rumschrauben zu müssen. Und jetzt patchst du uns zu. O_o
Wenn du am Gepatche so viel Spaß hast, dann könnten wir uns doch mal zusammensetzen und über die Zukunft von DynRPG reden. Ich hab keine Zeit, was dran zu tun, es gibt aber noch so viel Potential, und es scheint dass hier neben mir du der einzige bist der das Wissen hat, was notwendig dafür ist.
Es fehlt sicher noch irgendwas in der Liste. Coderaum:
32Bit(2k3)
AnimationBugFix(2k3)
AntiLag
AntiLagSwitch
AssignTurnBattle(2k3)
BattleAnimationPointer
BattleEndFix(2k3)
BattleMessenger(2k3)
BGM&SE-PointerPatch
BreakLoopFix
CharExpandPatch(2k3)
ClassChangeEquipFix(2k3)
Crit%
CustomSaveLoad(2k)
DamageOverOwnTime(2k3)
DirectMenuPatch
EXPlus
GuardRevamp
InfoDisloc(2k3)
LinkToEventFix(2k3)
MenuManipulator(2k3)
MessageSwitch
MonSca
MoveEventPointer
PDFix(2k3)
QuickRow(2k3)
ReflectBugFix(2k3)
RowSwap(2k3)
RowVar(2k3)
RPS[+](2k3)
SelfVar
SetBattler(2k3)
ShopEconomy
SkillScrollSwitch
SROA Switches(2k3)
StatusAnimationFix(2k3)
SwitchPointer
VarExtender[+](2k)
VisuCommands(2k3)
VisuGauge(2k3)
VisuMenu