Archiv verlassen und diese Seite im Standarddesign anzeigen : DynRPG - Der Pluginwunschthread
MajinSonic
04.07.2012, 22:15
Hallo liebe Community,
da der Thread von Cherry (http://www.multimediaxis.de/threads/134256-DynRPG-Das-RM2k3-Plugin-SDK) mittlerweile ziemlich voll geraten ist, so kann man vllt etwas mehr Ordnung halten, wenn neue Wünsche / Ideen an Plugins in diesem Thread hier gepostet werden.
Da wir viele Verfechter des RM2k und RM2k3 haben, so bietet das DynRPG ja eine tolle Möglichkeit die Funktionen des Makers zu ersetzen.
Also Leute... an die Tasten - fertig - Los !
Denkt euch etwas aus und am besten stellt ihr eine Idee mit Screenshots vor, oder formuliert sie so aus, dass man sie ohne großes hin und her verstehen kann.
Ich werde einfach mal den Anfang machen.
Alphachannel:
Es gibt doch nichts feineres als verschiedene Transparenzen einzubauen. Der Alphachannel kann da Wunder wirken.
Glühplugin:
Das klingt auf den ersten Moment sehr seltsam, ich weiß. Wie wäre es, wenn man diverse Events zum glühen bringen könnte, sodass z.B. Fackeleffekte toller aussehen:
http://www.rpg-studio.de/sites/rpg-studio.de/files/itzamna/screens/lightscriptvx.jpg
Mode 7 Plugin:
Dieses könnte ja auf einige Maps gefixed sein. Sodass man es per Switch, Comment /What ever aktivieren kann. (z.B. beim betreten eines Luftschiffs, egal ob Vehicle oder eigenes Skript)
CustomMenü Plugin:
Dieses Plugin soll relativ leicht gestatten z.B. Fenster im Standardmenü usw umherzuschieben und sei es via Koordinaten einiger Variablen.
Icons im Menü Plugin:
Dieses zeigt wie beim XP Maker ggf vordefinierte Icons an. (Sodass man nicht mehr diese Pixelsmilies verwenden muss)
HP und MP Leiste im Menü Plugin:
Unter den LP und MP befindet sich noch ein Balken.
http://www.rpg-studio.de/sites/rpg-studio.de/files/itzamna/screens/scenetutsl8.jpg
Größere Charsets:
Cherry hat es vorgemacht. Durch seinen Patch kann der rm2k größere Charsets benutzen. Der rm2k3 ist da etwas hinterher.
Lightmap Plugin:
Das ist vorallem für die unter uns, die große Spiele machen und nicht für jede Hausmap einen LE machen wollen. Das wäre doch was feines. (gibt es auch als XP Skript)
http://www.rpg-studio.de/sites/rpg-studio.de/files/itzamna/LMScreenshotimSpiel.jpg
Ich hoffe, dass hier viele Ideen zusammengetragen werden und sich unsere Programmierer an einigen Dingen versuchen werden :) So kann man den RM2k(3) sicherlich noch ein wenig von der Qualität her anheben.
BEACHTET: EINEN WUNSCH HIER ZU POSTEN IST KEINE GARANTIE, DASS DIE PROGRAMMIERER DIESEN AUCH UMSETZEN !!!
LG
MajinSonic
RPG Hacker
04.07.2012, 23:05
Dann werfe ich auch mal ein paar Dinge in den Raum, die nützlich sein könnten (weiß nicht, inwiefern die so möglich sind):
Widescreen-Plugin
Heutzutage haben ja die meisten Leute einen Widescreen. Bei Maker-Spielen nerven da natürlich die schwarzen Balken links und rechts. Wenn möglich wäre also ein Patch nicht schlecht, mit dem man Spiele auch auf einen Widescreen strecken kann (würde eine virtuelle Bildschirmgröße von ungefähr 425x240 Pixel für ein Bildverhältnis von 16:9 erfordern)
Pixelmovement
Dazu muss ich ja nicht viel sagen und die Idee steht ja auch längst im Raum. Wäre jedenfalls nützlich für action-orientierte Spiele.
Es gibt schon ein Pixelmovementplugin, der der es machte sagte er hätte es schon veröffentlicht (in Frankreich glaub ich), aber jetzt wo du es sagst kann ich es nirgends im Netz finden O_o
Ich werd ihn mal fragen.
MagicMaker
05.07.2012, 00:53
Glühplugin:
Das klingt auf den ersten Moment sehr seltsam, ich weiß. Wie wäre es, wenn man diverse Events zum glühen bringen könnte, sodass z.B. Fackeleffekte toller aussehen:
Ein paar mehr Blendings als nur Add wären aber schon nett wenn da jemand was machen sollte.
http://en.wikipedia.org/wiki/Blend_modes
Dieses könnte ja auf einige Maps gefixed sein. Sodass man es per Switch, Comment /What ever aktivieren kann.
Das kann auch dauerhaft aktiv sein. Ein richtiges M7 kann eine Map auch ganz ohne Rotationen,
Neigungen und Skalierungen darstellen, quasi so wie sie eigentlich sein sollte.
Sowas kommt also bei rum wenn leute, die vom Patch nix verstehen "wünsch dir was" spielen *g
RPG Hacker
05.07.2012, 12:39
Sowas kommt also bei rum wenn leute, die vom Patch nix verstehen "wünsch dir was" spielen *g
Wie kommst du darauf? Ich habe selbst schon mit dem Patch gearbeitet und einigermaßen einen Überblick. Allerdings arbeite ich nicht mehr mit dem Maker und deswegen würde ich nicht davon profitieren, selbst (mehr oder weniger) aufwändige Plugins zu schreiben. Deswegen werfe ich die Ideen hier in den Raum.
MajinSonic
05.07.2012, 13:03
Außerdem ist der Thread ja auch zur Ideensammlung da :) Vorkenntnisse sind für Ideen nicht möglich :D
Cherry meinte zu mir, als ich ihn zumeinen benanten Ideen befragte: "Es geht fast alles" ... :D
LG
Ach nix, es deprimiert mich nur genau gewusst zu haben was hier kommt.
RPG Hacker
05.07.2012, 13:46
Ach nix, es deprimiert mich nur genau gewusst zu haben was hier kommt.
Wieso? Du musst die Plugins doch nicht schreiben. Deshalb kann es dir im Prinzip egal sein. :/
MajinSonic
05.07.2012, 13:52
Naja, vielleicht findet sich ja mal jemand, derdiese "Ideen" alsLohnenswert empfindet. Wenn ich KÖNNTE, würd ichs selber tun xD
LG
MajinSonic
Naja, vielleicht findet sich ja mal jemand, derdiese "Ideen" alsLohnenswert empfindet. Wenn ich KÖNNTE, würd ichs selber tun xD
LG
MajinSonic
Lern doch C++ und schreibs dann selber xD
MajinSonic
05.07.2012, 16:40
Hab mit der Programmierung in der Uni mehr als genug zu tun :D
Irgendwie will so manches nicht in meinen Kopf :D ^^
RPG Hacker
05.07.2012, 16:59
Lern doch C++ und schreibs dann selber xD
Die Aussage ist einfach nur dämlich. Nicht jeder kann einfachso Programmieren lernen, bloß weil er es will, selbst wenn er das nötige Engagement zeigt. Dazu ist genauso ein gewisses Talent nötig, wie für Mathematik, Musik, Kunst, Schauspielerei und viele andere Sachen. Wäre Programmieren so leicht und von jedem Erlernbar, dann wäre der Beruf des Informatikers nicht so gefragt und so gut bezahlt.
MajinSonic
05.07.2012, 17:02
Ich denke, das müssen wir nun nicht weiter diskutieren. Das hier ist ein "Wunschthread" und kein "Lass uns die Nicht-Programmierer mal ärgern Thread".
Ich gebe RPGHacker Recht. Es ist schwer das programmieren zu lernen. Außerdem ist es ja nicht mit einigen Wochen lernen getan.
Die Aussage ist einfach nur dämlich. Nicht jeder kann einfachso Programmieren lernen, bloß weil er es will, selbst wenn er das nötige Engagement zeigt. Dazu ist genauso ein gewisses Talent nötig, wie für Mathematik, Musik, Kunst, Schauspielerei und viele andere Sachen. Wäre Programmieren so leicht und von jedem Erlernbar, dann wäre der Beruf des Informatikers nicht so gefragt und so gut bezahlt.
Das war auch nciht wirklich ernst gemeint xD
Klar weiß ich das das lernen einer Programmiersprach nicht leicht ist, lerne ja selbst und verstehe auch nicht alles.
Sollte viel mehr eine Art "Joke" sein ;)
@Topic:
Questlog oder Questbook
Ich würde gern ein Plugin haben, das in das Standard-Menü ein Questlog einbaut.
Erspar einiges an Arbeit.
Allgemein ein Plugin das zusätzliche Punkt im Menü erlaubt wär doch super^^
Im Moment geht das eher schwierig bis gar nicht, sollte mal gesagt sein.
Ein Anfang ist jedoch der Patch den ich hier gepostet habe: http://www.multimediaxis.de/threads/133647-RM2k3-CustomSaveLoadPatch-Eigenes-Speichersystem!?p=2969637&viewfull=1#post2969637
Der ändert die Funktion vom "Save"-Menüpunkt. Er aktiviert jetzt nur einen Switch (was man verwenden kann um sein eigenes Zusatzmenü zu öffnen).
MagicMaker
05.07.2012, 18:51
Es sollte aber nicht wie mit der Scripterei in Dingen ausarten die man auch von sich selbst verlangen kann
ohne Plugingedöhns zu benutzen das andere geschrieben haben oder sich wie blöd am Standardmenü einfach
festzuhängen obwohl es nicht die gewünschten Funktionen hat. Beispiele für die ersten Anzeichen? Bittesehr.
Questlog oder Questbook
Lightmap Plugin
Icons im Menü Plugin
HP und MP Leiste im Menü Plugin
Hab mit der Programmierung in der Uni mehr als genug zu tun :D
Autsch...obergeil. Genau wie Leute im 5. Semester Informatik an der Uni~ aber kriegen keine Makerscripte gebacken.
RPG Hacker
05.07.2012, 20:39
Es sollte aber nicht wie mit der Scripterei in Dingen ausarten die man auch von sich selbst verlangen kann
ohne Plugingedöhns zu benutzen das andere geschrieben haben oder sich wie blöd am Standardmenü einfach
festzuhängen obwohl es nicht die gewünschten Funktionen hat. Beispiele für die ersten Anzeichen? Bittesehr.
Questlog oder Questbook
Lightmap Plugin
Icons im Menü Plugin
HP und MP Leiste im Menü Plugin
Das finde ich noch nicht so schlimm. Es ist ungefähr dasselbe wie die zahlreichen Scripts, die es für RPG Maker XP und RPG Maker VX gibt und derer man sich nur bedienen muss. Ich meine: Wieso ein komplettes Menü neu coden, wenn man mit dem Standard-Menü eigentlich zufrieden ist und nur eine einzige Option abgeändert haben will? Das wäre dann schon wieder zu viel Aufwand für eine Kleinigkeit. Solange es hier also bei Ideen/Vorschlägen bleibt sind selbst solche Banalitäten in meinen Augen noch im grünen Bereich. Schließlich muss die ja niemand umsetzen. In solchen Fällen bleiben die Antrag-Steller dann ja ohnehin auf sich gestellt.
djeurissen
05.07.2012, 21:02
Ich weiß nicht ob das umsetzbar ist, aber ein Selfswitch Skript?
Also ich meine das jedes Event eigene Switches besitzt und eben nur in diesem Event funktionieren, normalerweise wäre ich nie auf sowas gekommen, aber ich musste auch anfangen C# zu lernen XD...
Das ganze ist vorallem praktisch um bestimmte Sachen zu speichern die immer und immer wieder vorkommen, wie bei einer Truhe. Zudem bastel ich an einem Begrenzten Inventar, das heißt manchmal passt da nichs mehr rein, aber was passiert mit den Gegenständen die man aufheben will^^?
Naja, wie gesagt ich weiß nicht ob sowas überhaupt umsetzbar ist, aber es ist ja nur ein Vorschlag...
RPG Hacker
05.07.2012, 21:46
Ich weiß nicht ob das umsetzbar ist, aber ein Selfswitch Skript?
Wäre tatsächlich ziemlich nützlich. Gegner in einem selbst geschriebenen AKS zum Beispiel könnte man dann einfach kopieren und müste nicht für jeden Gegner ein paar Variablen abändern oder sowas. Dürfte allerdings eher schwer umzusetzen sein... obwohl andererseits... man kann mit DynRPG (meine ich) auf Daten von Events zugreifen und Variablen in C++ zu deklarieren ist ja ohnehin kein Problem. Allerdings würden die Variablen dann nur Plugin-intern existieren und um darauf zuzugreifen müsste man immer mit Kommentar-Funktionen arbeiten. Außerdem gibt es insofern ein Problem dass ja jedes Event an seine Map gebunden ist. Es dürfte ziemlich schwierig werden, jede Map und jedes Event im Auge zu behalten. Und sofern man sich nicht auf die Variablen und Switches des Makers beschränkt, müsste man auch die Speicher- und Laderoutinen des Maker bearbeiten. Ich denke also eher, dass ein solches Plugin nicht machbar ist.
djeurissen
05.07.2012, 21:59
Ja, habe ich mir schon gedacht :/, naja kann man nichts machen^^
Selfswitch? Damit meinst du das was man im XP auch machen kann?
djeurissen
05.07.2012, 22:06
Ja, was man im Rpg Maker XP auch machen kann^^... Wieso fragst du O.o?
Nur so, wolte mal wissen wo zu das gut ist xD
Man lern nie genug... :)
Das einzige worauf ich WIRKLICH scharf bin wäre ein Patch der die Verwendung von Alphakanälen ermöglicht. Auch das bekommt man zwar selbst simuliert ("Ich zeige 20 Pics mit abnehmender Transparenz an, ha!") aber das ist sowas von abartig unpraktisch, das ist nicht mehr schön. ._.°
Das ist vor allem so grausam, weil Cherry meines Wissens nach sowas mal fertig hatte, aber als Teil des Projekts, dass dann zugunsten des DynRPGs auf Eis gelegt wurde :(
Ginge im Prinzip, wenn es auch seitens des Programmierers etwas Hirnschmalz und Arbeit erfordern würde...
Meine Alphakanalunterstützung, die ich auf dem BMT letztes Jahr entwickelt hatte, war aber wirklich pre-pre-pre-noch-lange-nicht-alpha :D
djeurissen
07.07.2012, 07:34
Nun gut, ich hätte da noch ne Idee die manchen die Arbeit erleichtern würde. DIe Möglichkeit Pictures mithilfe von Variablen bewegen. Damit meine ich nicht die Bilde nach der X und Y achse zu bewegen, sowas ist ja schon im Maker vorhanden. Aber man muss immer die Nummer des Bildes angeben und das geht leider nicht mit einer Variable. Es wäre schon ziemlich hilfreich wenn man die Nummer des Bildes auch in einer Variable speichern und abfragen kann, bzw das Bild mit dieser Var. zu bewegen.
Mal sehen ob sowas überhaupt möglich ist XD
MagicMaker
07.07.2012, 09:28
PicPointer gibts doch schon. °-°
djeurissen
07.07.2012, 10:14
Urg, wieso kenne ich diesen Patch nicht D: Ich bin unwürdig für dieses Forum *Aus dem Fenster spring*...
Sry, dass ich jetzt einen unnötigen Post gemacht habe, ich kannte diesen Patch echt noch nicht ;(
dragonheartman
11.07.2012, 23:21
HP/MP bars -- I implemented this in an evening while I was stuck on a delayed train. :P
It's very straightforward. Please let me know if there's any interest in releasing it.
http://sphotos-a.xx.fbcdn.net/hphotos-prn1/554791_10151064720091474_2143617891_n.jpg
(actually the second bar is not MP but actually the enemy ATB. neat!)
@dragon:
This is not the Thread for this. This is a Wish-Thread, you can told what you wish and somewhere maybe make it.
But this is a nice Pulgin that you maked :)
Can I have it?
sry, for my English^^
I hope you understand me^^
RPG Hacker
12.07.2012, 15:33
The plugin looks nice and useful. Yeah, I would say go ahead and release it. Is there a way to control the visibility of the bars ingame? That way you could link them to an item, like in Chrono Trigger DS. You should also be able to choose which bar to display as most RPGs don't display a monster's MP, only the HP.
EDIT:
Also maybe you could also add the bars to the players? I know they already have their HP in the window at the bottom, but it would be more convenient to also display a bar next to them.
@dragon:
This is not the Thread for this. This is a Wish-Thread, you can told what you wish and somewhere maybe make it.
But this is a nice Pulgin that you maked :)
I'd say it's like in my "Program wish and creation thread" - it should also be used for people to fulfill the wishes and post the results in case it's small stuff. Big stuff should get its own presentation thread.
Ich würde sagen es ist wie bei meinem Programmwunsch und -erstellunsgthread - Er sollte auch dafür verwendet werden, dass Leute die Wünsche erfüllen und das Ergebnis hier posten, wenn es kleinere Sachen sind. Größere Sachen sollten natürlich schon einen eigenen Präsentationsthread bekommen.
MajinSonic, was sagst du?
MajinSonic
12.07.2012, 20:55
Ich würde sagen es ist wie bei meinem Programmwunsch und -erstellunsgthread - Er sollte auch dafür verwendet werden, dass Leute die Wünsche erfüllen und das Ergebnis hier posten, wenn es kleinere Sachen sind. Größere Sachen sollten natürlich schon einen eigenen Präsentationsthread bekommen.
MajinSonic, was sagst du?
Selbstverständlich. So sehe ich das auch. Ich glaube, dass es bereits einen Sammelthread für fertige Patches gibt, oder? Ansonsten könnte man sowas ja auch mal machen :)
LG
MajinSonic
Jo, okay^^
Dachte nur da das ein Wunsch-Thread ist, das hier nur Wünsche reinkommen ;)
Aber so ist es besser :)
Btw. ich muss mal wieder English sprechen xD
Davy Jones
19.07.2012, 12:57
HP/MP bars -- I implemented this in an evening while I was stuck on a delayed train. :P
It's very straightforward. Please let me know if there's any interest in releasing it.
http://sphotos-a.xx.fbcdn.net/hphotos-prn1/554791_10151064720091474_2143617891_n.jpg
(actually the second bar is not MP but actually the enemy ATB. neat!)
Every patch is always welcomed =3
So, mir ist grad noch ne Idee eingefallen, was ich ziemlich gut gebrauchen könnte^^
Könnte man eigentlich ein Plugin erstellen, das die Musik ab einem bestimmten Punkt abspielt?
Also z.B. nimmt man sich ein Song das 4min dauert, man will aber das er erst ab 2min startet.
Ich habe manchmal das Problem, das ich Musik einbauen will, die aber ziemlich "schnell" nacheinander folgen soll, aber da ich das mit dem Maker soweit ich weiß nciht machen kann, frag ich mal, ist/wäre das mit einem Plugin möglich?
RPG Hacker
01.08.2012, 11:31
Ja, das ginge. Die Musik müsste dann aber komplett über eine externe Engine laufen. Glaube zumindest nicht, dass das mit der normalen Musik-Engine des RPG Makers geht.
Hab noch ne Idee oder eher keine meiner, aber ich vermisse es^^
Im 2k konnte man ja mit einem Patch größere Charsets benutzen, könnte das auch über ein Plugin möglich sein?
Das wär nähmlich echt geil :D
Hallo!
Ersteinmal ein großes Danke an Cherry für DynRPG! ^^
Nun hätte ich eine Frage zu deinem Beispiel Plugin, welches die Conditions als Icon anzeigt.
Ist es möglich die Icons kurz auszublenden, wenn ein Spieler Charakter einen Skill verwendet?
Da ich Battleanimations für alles benutze ist die standard Skill Animation leer und wenn ein Charakter
einen Skill verwendet schwebt das Icon über dem Nichts, während der Charakter in der Animation einen Skill ausführt.
Noch eine Frage: Kann man die "Quit" Option aus dem Standardmenü entfernen?
Edit: Wieviele Conditions mit gleicher Priorität kann man eigentlich auf einen Charakter/Gegner gleichzeitig setzen?
Habe bis jetzt bis zu 4 getestet, geht noch mehr?
MagicMaker
14.08.2012, 17:20
Im 2k konnte man ja mit einem Patch größere Charsets benutzen, könnte das auch über ein Plugin möglich sein?
Das wär nähmlich echt geil
Naja ein bisschen nett vielleicht, aber geil ganz sicher nicht, weil du dann extrem viel beachten musst.
Nach Blittingreihenfolge zeichnet die Engine Charsetgrafiken auf Below/Same selbstverständlich bevor
Tilesetblöcke auf Above dran sind, Below/Same gilt allerdings auch für alles, was sich ausserhalb des
16x16-Kastens am "Boden" befindet, wo das Event steht, also auch das, wo andere hinterlaufen können.
Das führt zu den Unschönheiten, die man zB in der CEx-Demo vorfindet, denn dann darf man für große
Objekte keine Above-Tiles mehr benutzen, nur für das, was wirklich über ALLEM ist.
Ich z.B: bräuchte sowas ja auch nur für Bösse :)
Die sind meistens dann nicht soo groß.
Aber halt größer als der Standard :/
Und mit dem 2k will und kann ich nicht arbeiten! xD
Hallo!
Ersteinmal ein großes Danke an Cherry für DynRPG! ^^
Nun hätte ich eine Frage zu deinem Beispiel Plugin, welches die Conditions als Icon anzeigt.
Ist es möglich die Icons kurz auszublenden, wenn ein Spieler Charakter einen Skill verwendet?
Da ich Battleanimations für alles benutze ist die standard Skill Animation leer und wenn ein Charakter
einen Skill verwendet schwebt das Icon über dem Nichts, während der Charakter in der Animation einen Skill ausführt.
Noch eine Frage: Kann man die "Quit" Option aus dem Standardmenü entfernen?
Edit: Wieviele Conditions mit gleicher Priorität kann man eigentlich auf einen Charakter/Gegner gleichzeitig setzen?
Habe bis jetzt bis zu 4 getestet, geht noch mehr?
Naja, man könnte ausprobieren ob es genügt, als Bedingung battler->actionStatus == AS_IDLE abzufragen, wobei ich mir da jetzt nicht ganz sicher bin wann genau das zu AS_WAITING bzw. AS_FINAL_PHASE wechselt (ich befürchte jetzt nämlich dass es schon AS_WAITING wird wenn man den Skill wählt, und zwar auch dann wenn gerade ein anderer Battler seinen Zug durchführt).
@Edit: Sollten beliebig viele gehen, nur irgendwann wirds halt hässlich^^
Naja, man könnte ausprobieren ob es genügt, als Bedingung battler->actionStatus == AS_IDLE abzufragen, wobei ich mir da jetzt nicht ganz sicher bin wann genau das zu AS_WAITING bzw. AS_FINAL_PHASE wechselt (ich befürchte jetzt nämlich dass es schon AS_WAITING wird wenn man den Skill wählt, und zwar auch dann wenn gerade ein anderer Battler seinen Zug durchführt).
*Nicht ganz verstehen tu* Das heißt dass es auch nicht Möglich ist die Icons nur während der Idle Animation anzeigen zu lassen?
Hm, doch, das ginge, daran hab ich gar nicht gedacht - geht dann aber halt nur für Helden. Die Bedingung wäre battler->animationId == 0 glaube ich.
PS: Die beiden Sachen die ich vorgeschlagen habe sind alle auf C++-Seite zu erledigen, nicht auf Eventseite. Ich mach da jetzt selber aber gar nix, sorry, hab grad keine Zeit.
Hm, doch, das ginge, daran hab ich gar nicht gedacht - geht dann aber halt nur für Helden.
Aber das Icon für die Gegner würde noch erhalten bleiben, nur dass es bei den Gegnern nicht verschwindet falls sie einen Skill oder etwas anderes außer die Idle Animation ausführen?
Meinst du das so? Die Monster bei mir sind statisch, also wär das kein Problem. Oder meinst du, dass die Icons für die Monster dann nicht funktionieren würden?
PS: Die beiden Sachen die ich vorgeschlagen habe sind alle auf C++-Seite zu erledigen, nicht auf Eventseite.
Soweit habe ich es dann doch verstanden ^^"
Ich mach da jetzt selber aber gar nix, sorry, hab grad keine Zeit.
Nene schon ok. ^^
Aber das Icon für die Gegner würde noch erhalten bleiben, nur dass es bei den Gegnern nicht verschwindet falls sie einen Skill oder etwas anderes außer die Idle Animation ausführen?
Meinst du das so? Die Monster bei mir sind statisch, also wär das kein Problem.
Genau so mein ich das.
djeurissen
18.08.2012, 09:10
Da mein letzter Thread "Zu Viele Pictures verursachen Lags" mir nur offenbart hat, das ich mit dem Maker so oder so keine 70 Bilder anzeigen kann ohne das es laggt.
Wollte ich mal fragen ob es möglich ist ein Plugin zu skripten, was die Pictures ersetzt. Und ob jemand so freundlich ist und das skriptet^^?
Ich wüsste aber nicht was dadurch schneller werden sollte... Das einzige was gehen könnte ist mehrere Bilder zur Laufzeit zu einem zusammenzufassen, aber nur wenn die Palette dieselbe ist.
Könnte man ein Plugin basteln, dass die BGM mit einem Befehl pausiert und mit einem Anderen ab der pausierten Stelle wieder abspielt?
Ich finde es irgendwie nervig, wenn die BGM z.B.: Nach einem Kampf, wieder von vorn anfängt.
goldenroy
26.08.2012, 00:01
Könnte man ein Plugin basteln, dass die BGM mit einem Befehl pausiert und mit einem Anderen ab der pausierten Stelle wieder abspielt?
Ich finde es irgendwie nervig, wenn die BGM z.B.: Nach einem Kampf, wieder von vorn anfängt.
Ich glaube >>das<< (http://www.multimediaxis.de/threads/128606-Audieremony-Ogg-Mp3-Flac-Aiff-Mod-S3m-Xm-und-It-im-Maker-abspielen) kann das schon, aber ich bin mir nicht ganz sicher. Kannst ja mal gucken. :]
elvissteinjr
27.08.2012, 16:29
Ich glaube >>das<< (http://www.multimediaxis.de/threads/128606-Audieremony-Ogg-Mp3-Flac-Aiff-Mod-S3m-Xm-und-It-im-Maker-abspielen) kann das schon, aber ich bin mir nicht ganz sicher. Kannst ja mal gucken. :]
Jein. Das Ganze funktioniert leider nur mit wav, mp3, aiff und ogg Dateien. Das eine sind Limitierungen von Audiere, das andere ist einfach das Fehlen einer Positionssetzungsfunktion in der originalen harmony.dll.
In DisHarmony wäre es eventuell möglich so eine Funktion einzubauen(oder es gibt sie sogar schon), da es die Midis selbst abspielt.
DynRPG wird da nur mäßig was leisten können, obwohl da eventuell was mit dem RPG_RT internen Soundsystem(1.05+ afaik) rumgehackt werden könnte. Muss man halt Cherry fragen.
Also ich benutze für die BGM ausschließlich das mp3 Format. Also könnte ich es mit Audieremony bewerkstelligen? Oder funktioniert das nicht wegen dem Fehlen der Positionssetzungsfunktion bei der harmony.dll, die ich mir mit forceharmony besorgen müsste? Habe den 2k3 V.1.08. So ganz verstehe ich das nicht und Cherry scheint zur Zeit beschäftigt zu sein.
elvissteinjr
31.08.2012, 22:25
Wenn du nur mp3s für deine Musik verwendest, könntest du mit Audieremony tatsächlich das gewünschte Ergebnis bekommen.
Für deine 2k3 Version muss aber die RPG_RT mit erst ForceHarmony gepatcht werden.
Die Readme von Audieremony sollte alles verständlich erklären. Falls du aber doch noch Fragen haben solltest, dann am besten auch im Audieremony Thread (http://www.multimediaxis.de/threads/128606-Audieremony-Ogg-Mp3-Flac-Aiff-Mod-S3m-Xm-und-It-im-Maker-abspielen) stellen. Hat ja mit DynRPG relativ wenig zu tun.
Kurze Frage: ich bin hier irgendwo letztens über Beispielscreens gestolpert, wo additives bzw. subtraktives Blending von Pictures via DynRPG eingebaut wurde. Gibts dazu schon das passende Plugin? (Und wenn ja - funktioniert Move Picture damit?)
Die Sache mit dem Alpha-Kanal gebe ich ja inzwischen auf... xD
Alpha-Kanal und Blending sind die einzigen beiden Punkte die mich wirklich am VX Ace reizen, aber da stören mich die 32px-Tiles. ._.
MagicMaker
20.09.2012, 09:52
Ja den Thread dazu gibts hier auch, schau dich im Technikboard nochmal um, notfalls bis hinter auf Seite 2,
kannst ihn denke ich nicht verfehlen.
Move geht, aber Zooming, Transparenzwerte und RGBS-Veränderungen funktionieren damit nicht. =/
Hrm, okay. Damit hat sich das auch vorerst erledigt, die Transparenz bräuchte ich dann schon. Sonst müsste ich jedes Bild in zig Ausführungen erstellen um die verschiedenen Transparenzen zu "simulieren", aber das wird dann doch verdammt aufwendig und unübersichtlich. :/
Danke trotzdem!
Engel der Furcht
13.10.2012, 13:04
Kann man einen Patch schreiben, der das Bild in die Richtung dreht, in der es sich bewegt?
15663
je nach Position wo es hin geht soll es sich dementsprechend drehen.
MagicMaker
13.10.2012, 13:31
ACos ( ( AY-BY ) / ( BX - AX ) ² + ( BY - AY ) ² ) sollte das gewünschte Ergebnis bringen.
Das heisst, falls du die Rechnung denn mit irgendwas durchführen lassen kannst.
Und wenn AX > BX sein sollte:
Vor dem ACos eine Subtraktion mit 360°(deg) als Minuend einfügen.
Ich weiss nur nicht, ob man in RPG2003 mit irgendwas den Winkel setzen kann.
Der wäre das, was dann dabei am Ende rauskommt.
Manche kennen das leidige Thema schon... aber kannst du (Cherry) den Maker irgendwie so "tunen", dass mehrere (50+) parallele Prozesse pro Map zeitgleich ohne Performanceschwächen ablaufen können? Ich weiß, es ist ein ungewöhnlicher Wunsch und wenige werden so etwas tatsächlich brauchen O.o ich hingegen wäre dir sehr dankbar... wenn das denn gehen sollte...
Schlag dir das lieber aus dem Kopf und packe das Problem bei der Wurzel an: deinem Code.
Ich glaub, es kommt nicht darauf an, wie viele CE es sind, sondern was die kleinen süßen so treiben.
Ich habe festgestellt, dass Soundeffekte Probleme bereiten, aber am schlimmsten ist alles, was mit Pictures zu tun hat. Irgendwelche Berechnungen wie Koordinatun und so ist nicht wild, du kannst gern mal bei Assembling the Void auf die Maps gucken und in die Common Events wie viele CEs ich da am laufen habe. :)
Dein Assembling the Void laggt bei mir komischerweise auch. Also ähnlich wie mein Spiel. kA ob das am Code liegt oder an meinem Rechner O.o letzterer ist aber gar nicht mal so mies. Wär halt cool, wenn Spiele, die viel Rechenleistung benötigen, auch auf "schwächeren" Rechnern problemlos und ruckelfrei laufen würden.
Dein Assembling the Void laggt bei mir komischerweise auch. Also ähnlich wie mein Spiel. kA ob das am Code liegt oder an meinem Rechner O.o letzterer ist aber gar nicht mal so mies. Wär halt cool, wenn Spiele, die viel Rechenleistung benötigen, auch auf "schwächeren" Rechnern problemlos und ruckelfrei laufen würden.
Und da erhoffst du dir eine wunderfunktion? O.o Schlag dir das endlich aus dem Kopf und mach dir lieber Gedanken über dein Code Design...
Davy Jones
15.10.2012, 15:56
Ich habe festgestellt, dass Soundeffekte Probleme bereiten
Wus? Davon hab ich ja noch nie was gehört. Ich kann mir das höchstens im PP und ohne wait vorstellen, aber sonst...
Wus? Davon hab ich ja noch nie was gehört. Ich kann mir das höchstens im PP und ohne wait vorstellen, aber sonst...
Ich hab davon gehört. Weiß aber auch nicht mehr als du. Interessant zu wissen wäre was da genau Probleme verursacht (bei den Sounds) und wie man diese lösen kann.
Und da erhoffst du dir eine wunderfunktion? O.o Schlag dir das endlich aus dem Kopf und mach dir lieber Gedanken über dein Code Design...
Ich frag mich wie du darauf kommst dass es unbedingt und zu 100% an den Codes liegen muss. Außerdem hat DynRPG schon einiges erbracht, was man subjektiv als "Wunderfunktion" für einzelne oder mehrere Entwickler sehen könnte. Daher frag ich mich wieso es für meinen Vorschlag nicht auch so eine Lösung geben können sollte. -.-
Ich frag mich wie du darauf kommst dass es unbedingt und zu 100% an den Codes liegen muss. Außerdem hat DynRPG schon einiges erbracht, was man subjektiv als "Wunderfunktion" für einzelne oder mehrere Entwickler sehen könnte. Daher frag ich mich wieso es für meinen Vorschlag nicht auch so eine Lösung geben können sollte. -.-
Poste den verdammten Code!
Kommentar von Edith: Sorry Penne, aber es könnte alles so einfach sein wenn du einfach nur... T_T!"
Poste den verdammten Code!
Das passt weder in diesen Thread noch in den anderen Thread, in dem du mir das geschrieben hast ;)
Die Codes sind in Ordnung - das Spiel läuft auf "besseren" Rechnern ruckelfrei. Alles gut. Nur laggt es eben auf "schwächeren" Rechnern.
Und ich will dass das Spiel für jedermann spielbar ist. Und zwar ohne ein unangenehmes, spielstörendes Laggen.
Oh, Leute -_-'
Das nervt mich hier manchmal echt... warum muss man solche Dinge immer tot diskutieren...
Kann nicht irgendjemand, der davon 'ne Ahnung hat mir einfach sagen, ob so ein Performance-Upgrade möglich wäre?
Mehr will ich doch garnicht wissen...-_-'
MagicMaker
15.10.2012, 19:37
ob so ein Performance-Upgrade möglich wäre?
Ich hab dir bereits klar und deutlich sehr früh in einem anderen Thread drauf geantwortet:
Anderer Spiellauncher, von denen es keine gibt.
Und die RPG_RT umzuprogrammieren, damit sie schneller arbeitet, soviel ASM verquirlt
doch niemand bei Verstand. òo ~ Dyn sieht mir auch nicht unbedingt danach aus, als dass
es dem Ding einfach alle Funktionen wegnehmen könnte, um sie durch bessere zu ersetzen.
Die Codes sind in Ordnung - das Spiel läuft auf "besseren" Rechnern ruckelfrei. Alles gut. Nur laggt es eben auf "schwächeren" Rechnern.
Also du passt entweder deinen "Arbeits"-PC an oder du schraubst deinen technischen
Anspruch nach unten. ~ Oder du musst damit leben dass es bei dir selbst ruckelt.
Außerdem hat DynRPG schon einiges erbracht, was man subjektiv als "Wunderfunktion" für einzelne oder mehrere Entwickler sehen könnte. Daher frag ich mich wieso es für meinen Vorschlag nicht auch so eine Lösung geben können sollte.
In erster Linie, weil dein Wunsch einen ganz anderen Charakter hat, als beispielsweise mit den vorhandenen, internen RPG Maker-Funktionen, oder externen Third Party-Bibliotheken eine neue, nicht vorhandene Funktion hinzuzufügen. Dein Wunsch erfordert es, die internen RPG Maker-Funktionen, genauer den Event Code-Interpreter zu ändern, und das liegt nicht im Rahmen von DynRPG.
Rein theoretisch könnte man die Ausführung des Event Codes beschleunigen, indem man den Event Code zur Laufzeit in Maschinenbefehle übersetzt, aber das wäre ein enormer Aufwand, der sowohl Kompetenz in JIT-Kompilierung (http://de.wikipedia.org/wiki/Just-in-time-Kompilierung), als auch in der inneren Struktur der RPG_RT.exe erfordern würde.
Deswegen ist es empfehlenswert, dass du versuchst den Flaschenhals in deinem Code zu suchen und zu beseitigen, auch wenn es bedeutet, dass du Features wegstreichen musst.
Itaju hat übrigens einen wichtigen Punkt erwähnt: Es kommt nicht unbedingt auf die Anzahl und den Umfang der parallelen Prozesse, sondern in der Regel darauf, was und wie abgearbeitet wird. Der Flaschenhals kann genauso in den grafischen Operationen, in den Soundoperationen und in den implementieren Algorithmen liegen. Demzufolge wäre es nicht einmal Gewissheit, dass dein Code auch tatsächlich schneller ausgeführt wird, sollte es überhaupt möglich sein, die Interpretierung des Event Codes zu beschleunigen.
Die Codes sind in Ordnung - das Spiel läuft auf "besseren" Rechnern ruckelfrei.
Das ist kein Anzeichen dafür, dass du deinen Code nicht ändern kannst, damit er auch auf deinem "schlechteren" Rechner den Spielfluss nicht stört.
Und ich will dass das Spiel für jedermann spielbar ist. Und zwar ohne ein unangenehmes, spielstörendes Laggen.
Dieser Wunsch ist grundsätzlich utopisch, und zwar völlig unabhängig davon, ob der Event Code-Interpreter des RPG Makers beschleunigt werden kann, oder ob du den Flaschenhals in deinem Code finden und beseitigen kannst. Das solltest du verstehen.
Kann nicht irgendjemand, der davon 'ne Ahnung hat [...]
Das ist ziemlich respektlos und ignorant. Zumindest anti-freak, der bereits ein Plugin für DynRPG geschrieben hat (und damit etwas Ahnung haben sollte, was bei DynRPG im Rahmen der Möglichkeiten liegt und was nicht) und an einer eigenen Engine arbeitet, solltest du Sachverstand zugestehen.
Okay, alles klar. Danke für die ausführliche Antwort. Dann muss es wohl irgendwie anders gehen :(
Das ist ziemlich respektlos und ignorant. Zumindest anti-freak, der bereits ein Plugin für DynRPG geschrieben hat (und damit etwas Ahnung haben sollte, was bei DynRPG im Rahmen der Möglichkeiten liegt und was nicht) und an einer eigenen Engine arbeitet, solltest du Sachverstand zugestehen.
Wusste ich nicht und entschuldige mich an dieser Stelle dafür.
Nimm dir doch den Rat von Sabaku zu Herzen und veröffentliche deinen Code. Vier Augen sehen mehr als zwei. Ich werde dir wahrscheinlich nicht helfen können, da ich schon lange nichts mit dem RPG Maker gemacht habe und damit das Gefühl dafür, was optimal ist und was nicht, nicht mehr habe, aber vielleicht andere.
Ja, wird wohl das beste sein... bisher hab ich mich erfolgreich davor gedrückt, weil's endslange Codes sind und nich gerade wenig. Da bin ich erstmal 'n paar Stunden am Screenshotten ;)
MagicMaker
16.10.2012, 00:52
Da bin ich erstmal 'n paar Stunden am Screenshotten
EasyEventExporter bitte, sonst sieht da niemand durch.
Ich frag mich wie du darauf kommst dass es unbedingt und zu 100% an den Codes liegen muss. Außerdem hat DynRPG schon einiges erbracht, was man subjektiv als "Wunderfunktion" für einzelne oder mehrere Entwickler sehen könnte. Daher frag ich mich wieso es für meinen Vorschlag nicht auch so eine Lösung geben können sollte. -.-
weil es eben meistens so ist. es ist im allgemeinen schon fahrlässig zu viele pps laufen zu lassen. ein schönes call event wäre besser. es läuft so oder so nicht "gleichzeitig" weil der maker meines wissens kein multithreading unterstütz (mehrere unterprozesse, die er auf mehrere rechner kerne verteilen kann). ich habe damals auch ein super duper aks machen wollen, nur da stößt man auf dem maker schnell an grenzen, wenn man es nicht ordentlich macht. die hab ich damals ziemlich oft ausgetestet (vor der zeit des dynrpg, damals hatte ich meinen heiß geliebten destiny ;) ). was man sagen muss, an sich lernt man im maker sehr sehr schlecht was über code designe und programmierung (ja, ich bezeichne event code als programmierung. ob ich jetzt was schreibe, oder point&click mache, letztendlich habe ich grundlegende dinge die ich beim programmieren nutze). wenn ich jetzt, nachdem ich meine 6 jährchen in c++ und diversen anderen sprachen verbracht habe, wie anfangen würde zu makern, würde ich VIELES im maker anders strukturieren, wenn ich denn wieder mit event code hantieren würde. und es wäre vermutlich auch besser. eine sache wäre einfach, die ganzen events auf der map nicht als pp laufen zu lassen, was mit sich bringen würde, das ich gleichzeitig auch wirklich copy paste events hätte ;)
das ist einfach der grund, warum ich denke, das der code dein problem ist. sollte er es nicht sein, wirst du auch wenig daran ändern können, außer ihn trotzdem zu ändern. :P
Das ist ziemlich respektlos und ignorant. Zumindest anti-freak, der bereits ein Plugin für DynRPG geschrieben hat (und damit etwas Ahnung haben sollte, was bei DynRPG im Rahmen der Möglichkeiten liegt und was nicht) und an einer eigenen Engine arbeitet, solltest du Sachverstand zugestehen.
hihi, danke für die blumen, aber in sachen dynrgp ist mit kazesui ,oder wie der typ mit den ganzen plugins heißt, um einiges vorraus, hab nur ein bisschen rein geschnuppert^^
Ja, wird wohl das beste sein... bisher hab ich mich erfolgreich davor gedrückt, weil's endslange Codes sind und nich gerade wenig. Da bin ich erstmal 'n paar Stunden am Screenshotten ;)
Hast du nicht irgendwen mit technischem Sachverstand, dem du soweit traust, dass du ihm das Projekt einfach schicken könntest? Bei Fehlern in Scripten kann man noch irgendwie draufgucken und hoffen eben den Fehler zu finden, aber Timing im asynchronen Zusammenspiel über Textausschnitte debuggen ist imo so unfug, ich würde meine Zeit nicht dran verschwenden. Es sind keine Einzelsachen "mach mal hier das anders", die das Wunder bringen, genau so wenig wie dir ein Wunderpatch deine Sorgen abnimmt.
EasyEventExporter bitte, sonst sieht da niemand durch.
Ouh okay, Danke :A
Hast du nicht irgendwen mit technischem Sachverstand, dem du soweit traust, dass du ihm das Projekt einfach schicken könntest? Bei Fehlern in Scripten kann man noch irgendwie draufgucken und hoffen eben den Fehler zu finden, aber Timing im asynchronen Zusammenspiel über Textausschnitte debuggen ist imo so unfug, ich würde meine Zeit nicht dran verschwenden. Es sind keine Einzelsachen "mach mal hier das anders", die das Wunder bringen, genau so wenig wie dir ein Wunderpatch deine Sorgen abnimmt.
Joa, hast auch wieder recht damit...
Keine Ahnung, wenn sich ein Technik-Freak finden lässt, der Lust hat da mal drüberzuschauen, dann würd ich demjenigen das Projekt sicher mal zukommen lassen...
Penetranz hat mich auf eine Plugin-Idee gebracht. :O
Penetranz hat mich auf eine Plugin-Idee gebracht. :O
Hab ich? Cool. Gute Tat für heute vollbracht :hehe:
Ne. Sag an.
Erstmal muss ich sehen, wie es sich entwickelt. :o
Erstmal muss ich sehen, wie es sich entwickelt. :o
ok viel Spaß =)
Optimierer für Event Code? xD
Dazu reicht mein Assembler leider nicht aus. :O
Lasst euch überraschen! (Falls daraus jemals etwas werden sollte.)
Wird es mir was bringen... oder geht das Plugin eher in ne andere Richtung?:D
Kommt ganz auf dich an. ^^
Kommt ganz auf dich an. ^^
:P
ok^^ ich lass mcih überraschen.
Ich bin mir nicht ganz sicher, ob ich nicht im Programmwunsch und -erstellungsthread besser aufgehoben wäre, aber ok. oo
Wäre es möglich ein Plugin zu schreiben, was ein bestimmtes Zeichen aus einer Zeichenfolge ausgibt? Ich beschreibe mal, wie ich als Laie mir das vorgestellt habe:
Man gibt etwa in einer Variable oder dem Comment-Befehl zunächst die Zeichenfolge an, dann die Position des Zeichens, das man auslesen will, und zuletzt die Variable (oder ein Heldenname, wodurch man das evtl. mit anderen Plugins oder mit der Namens-Abfrage kombinieren könnte), wo das Ergebnis gespeichert werden soll.
In einer externen txt-Datei könnte man dann für Variablen festlegen, welches Zeichen welcher Zahl enstpricht (a=1, b=2, ... A=27, B=28, etc.). Dabei wäre es extrem geil, wenn man für die Position des Zeichens auch eine Variable angeben könnte und für die Zeichenfolgen auch \n[x] nutzen könnte.
Sähe dann etwa (ganz amateurhaft gedacht) so aus:
Bei Name Held 1 = "Hallo" und
Variable 0001 = 3 und
l = 12
@"\n[1]", V1, V2
=> V0002 = 12
bzw.
@"\n[1]", V1, name V2
=> Name Held 2 = l
Wäre das umsetzbar? Und falls es nicht zuviel Aufwand ist, wäre jemand so lieb? Das Ganze müsste bloß sehr flüssig laufen, da meine Idee ist, dahinter ein Message-System aufzubauen. Und bei einem längeren Text müsste ich den Befehl dann entsprechend oft in sehr kurzer Zeit nutzen.
Ich leite mal meine Anfrage aus dem Entwickler-Forum weiter - vielleicht ist sie hier besser aufgehoben.
http://s14.directupload.net/images/121030/77pvizf9.png
Der rot eingekreiste Kram soll weg. Stört nur und brauch ich nicht.
Beim rm2k geht das via Hyperpatcher, aber wie funktioniert das mit dem rm2k3?
Via Hyperpatcher geht da schonmal nix.
Gibt's da noch nen anderen Patch, mit dem man das bewerkstelligen kann?
Und (was optimal wäre) vielleicht auch die Möglichkeit einräumt, dass man
die letzte Zeile des Speicherslots, dort wo jetz die HP- und LVL-Zahlen stehen
in irgendeiner Weise selbst beschriften kann? Das wäre genial.
Mal kurz eine Frage xD
Wie genau erstelle ich Plugins mithilfe von DynRPG? Was muss ich öffnen um am Code etwas zu bearbeiten? ._.
Wie sieht es aus mit einem Plugin, welches das KS des 2k3 rundenbasiert macht und die ATB-Funktion entfernt? So, dass alle Helden nacheinander eine Aktion durchführen, dann die Gegner, dann wieder die Helden usw.
Wäre soetwas möglich?
http://rpgmaker.net/forums/topics/12545/
Danke, werde ich mal ausprobieren :)
Würde mich wundern wenn man absolut nebenwirkungsfreie Atb-Entfernung allein durch ein Plugin hinbekommen würde.
Die Zeitpunkte wann Züge komplett vollzogen worden, also nach der Animation und Schadensberechnung lassen sich im DynRPG nicht und im Eventcode nur über einen Umweg feststellen.
Bei ein paar kurzen Tests mit einfachen Standard-Kämpfen hat es einwandfrei funktioniert. Ob allerdings Probleme auftreten, wenn man die Kämpfe mit Events komplexer strickt, kann ich noch nicht beurteilen.
Dafür habe ich sofort wieder etwas neues bemerkt, was mir nicht am 2k3-KS gefällt, nämlich die Formel zur Schadensberechnung. Könnte man soetwas auch über Plugins ändern?
Das mit den Events würde ich mal testen. Das gibt sonst ein böses Erwachen.
Bezüglich Formel ist mir nichts bekannt. Was stört dich denn daran? Bzw. was möchtest du? Gelegentlich muss man etwas um die Ecke denken um zu kriegen was man will, vielleicht ist dir ja zu helfen ;-)
Schade, dass es dafür (noch?) kein Plugin gibt. Ich werde dann einfach selbst nocheinmal probieren, ob ich es nach meinen Wünschen hinkriege, aber danke jedenfalls für die angebotene Hilfe. Wenn ich nicht mehr weiterweiß, komme ich gerne darauf zurück, werde dann dafür aber besser einen eigenen Thread aufmachen.
Ich würd gern erfahren, was dir daran genauergesagt nicht passt, nicht nur um dir helfen zu können, sondern weil ichs gewissermaßen bewusstseinserweiternd finde zu erfahren wie andere die Zahlenfucherei so angehen und was sie sich davon wünschen und erwarten.
Okay, eigentlich hat es sich schon erledigt. Beim erneuten Lesen der Hilfedatei ist mir nämlich aufgefallen, dass ich die Formel zur Schadensberechnung von Skills missverstanden hatte. Als Neuling war ich daher im ersten Moment etwas mit dem Balancing der Werte überfordert, aber nun hat sich das per richtiger Formel und Tabellenkalkulation erledigt und ich bin doch recht zufrieden.
Jetzt würde mich aber auch kurz interessieren was deine Erfahrungen mit der Schadensberechnung sind, denn dein Post lässt ja darauf schließen, dass du dich selbst ausführlicher damit beschäftigst.
Meine Gedanken gibts hier (Bischen älter aber noch nicht veraltet) http://www.multimediaxis.de/threads/134909-RM-2k-2K3-Zahlen-und-Werteprogress.
Hi, sorry hab mir nicht alles durchgelesen, aber ich glaube nicht dass es schon genannt wurde. Bzw. ob das überhaupt der richtige Thread dafür ist.
Gibt es eine Möglichkeit (egal ob als Plugin oder ob man es sonstirgendwie raus"hackt") den Schatten vom Airship (Vehicle) verschwinden zu lassen? Blöderweise ist der Schatten der "Hero", wenn man das so sagen kann, sprich er ist auch die Kollisionsfläche für Events (Touched by Hero, Collision with Hero). Könnte man im gleichen Zuge diese "Kollisionsfläche" auf die Vehicle-Grafik selbst verschieben?
Oder aber, falls davon nichts ohne Weiteres machbar wäre, könnte man dann wenigstens dafür sorgen, dass der Schatten des Vehicles nicht über allem schwebt? Dass er z.B. hinter im Chipset auf Sternchen gesetzte Felder verschwindet?
Naja du kannst die entsprechende Stelle im Systemset, wo der Schatten zu sehen ist, einfach leer machen (rechts in der Mitte).
Okay, danke für den Hinweis. Dass das Ding im Systemset zu finden ist, daran habe ich nicht gedacht. Aber es bleibt ja das Problem der "Kollisionsfläche", kA das klingt ziemlich beknackt aber es stellt für mich noch ein Problem dar. Wenn man z.B. ein Event (Collision with Hero) berühren will, muss man normalerweise mit dem Schatten des Vehicles dieses Event berühren und nicht mit der Fahrzeuggrafik selbst (da sie ja ein Tile über dem Schatten ist). Vor allem für Spieler, die den Maker nicht kennen, wäre das sehr verwirrend (vor allem, wenn ich den Schatten nun einfach entferne). Dann müsste man theoritisch mit der unsichtbaren Stelle (wo eben vorher der Schatten war) das Event anfahren. Gibt es eine Möglichkeit, dass die Fahrzeuggrafik selbst sozusagen "Schatten wird" ?
Leider nein.
Wozu brauchst du das Fahrzeug aber dann genau? Kannst du nicht stattdessen die Fahrzeugsfunktion selber nachbauen?
Schade, aber hätte ja sein können ^^
Naja ich nutze die Funktion oft in meinem Spiel. Ich hatte zu Beginn überlegt, ob ich es tatsächlich mit Vehicles machen sollte oder ob ich einfach die Grafik des Helden ändere und Change Tileset oder sowas nutze (man soll Gebäude usw. überfliegen können, aber nur bis zu einer bestimmten Grenze). Für mich schien das mit den Vehicles erstmal die einfachere Lösung zu sein und es jetzt zu ändern, wäre sehr arbeitsaufwendig. Ich werde es erstmal dabei belassen, mal schauen wie es ankommt. Trotzdem danke!
Da brauchst du nicht Change Tileset, sondern einfach nur dem Helden den Phasing Mode anmachen, dann kann er überall durch (oder drüber in diesem Fall) - Move Event: Hero > Phasing Mode ON. Das Problem was mir aber grade auffällt ist dass der Held dann immer noch unter den "Above Hero" Dingen angezeigt wird... Um das zu umgehen müsstest du den Helden unsichtbar machen und stattdessen ein Picture an dessen Position anzeigen (und animieren)...
Ja, es stimmt, das ist wesentlich komplizierter als Vehicles.
goldenroy
05.01.2014, 20:10
Das Thema ist ja immernoch relevant, deshalb denke ich mal, dass der Push nicht so schlimm ist.
Ich weiß, dass es ein Plugin für Sin/Cos/Tan/Wurzeln gibt, aber gibt es eine Möglichkeit, ein Plugin zu schreiben, das die function Math.atan2(x,y) ermöglicht? Die bräuchte ich nämlich grade echt. :V
Bau ich dir, warte mal eben. ;-)
Edit:
Okey, so schnell gehts doch nicht. Hast du eine übliche Art und Weise wie solche Plugins bei dir aufgerufen werden? Per Switch, per Comment?
goldenroy
05.01.2014, 21:21
Edit:
Okey, so schnell gehts doch nicht. Hast du eine übliche Art und Weise wie solche Plugins bei dir aufgerufen werden? Per Switch, per Comment?
Nun, das ist mir eigentlich relativ egal. Ein Kommentar wäre für sowas natürlich praktischer, denke ich. Das SinCosTan-Plugin regelt das ja ähnlich.
Benutzt du das von Cherrys Website namens "elsemieni_math" ?
goldenroy
05.01.2014, 21:24
Benutzt du das von Cherrys Website namens "elsemieni_math" ?
Jau.
Okey, kriegst morgen eine Version die atan2 auch kann.
Hey, hier dein atan2. Basiert auf dem Code von E.NI und tut noch immer dasselbe, kannst das Ding also als Ersatz mit Zusatzfunktion betrachten.
Download: Kompilierte Version,Projektdateien und Sourcecode
http://share.cherrytree.at/showfile-12566/cortimath.zip
Und ja, der Code hat etwas mehr Zeilen und Redundanz, aber lieber zur Laufzeit ignorierte Redundanz als mehrere Stringvergleiche ;-)
goldenroy
06.01.2014, 15:11
Hey, hier dein atan2. Basiert auf dem Code von E.NI und tut noch immer dasselbe, kannst das Ding also als Ersatz mit Zusatzfunktion betrachten.
Download: Kompilierte Version,Projektdateien und Sourcecode
http://share.cherrytree.at/showfile-12566/cortimath.zip
Und ja, der Code hat etwas mehr Zeilen und Redundanz, aber lieber zur Laufzeit ignorierte Redundanz als mehrere Stringvergleiche ;-)
Ui, vielen Dank!
Die Funktion gibt, wenn sie einen Befehl ausgeführt hat, nicht false zurück. Das ist zwar an sich kein Problem, wollt nur mal anmerken dass sie das eigentlich sollte, damit, auch wenn aus irgendeinem Grund 2 Plugins denselben Befehl behandeln, nicht beide anspringen sondern nur eines (welches in der Reihenfolge zuerst kommt) - letzteres ist nämlich immer noch besser als wenn ein Befehl zwei Wirkungen gleichzeitig haben kann.
djeurissen
06.01.2014, 17:55
Naja, da ich selber nicht gut genug bin um das auch nur ansatzweise zu bewerkstelligen, werfe ich das einfach mal in den Raum...
Die Möglichkeit während der Laufzeit eines Spiels Charsets zu verändern und zu benutzen um so zb. Rüstungsteile an einen Charakter anzuzeigen...
Wozu verändern? Drüberzeichnen. onDrawEvent( RPG::Character * character, bool isHero )
Der RPG::Character hat eine Facing-Direction und mit step einen Wert, der den aktuellen Animationsschritt angibt. Das reicht um präzise zu wissen was man drüber Zeichnen muss um mögliche Rüstungen darzustellen.
Gibts dann nur ein winziges Problem, nämlich dass es nicht im Shop dargestellt wird.
Verändern wird übrigens (sofern man die Datei verändern will) auch nicht gehen weil der Maker Charsets cacht.
djeurissen
06.01.2014, 20:22
Gut das mit dem Shop ist dann zwar ein Makel, aber schön das es doch geht^^...
An diesen Callback habe ich gar nicht gedacht, ich denke einfach zu kompliziert...
goldenroy
06.01.2014, 23:21
Das mit dem Shop könnte man storytechnisch erklären - vor dem Rüstungsshopbesuch entledigt sich der Held einfach der Rüstung, um neue anzuprobieren oder so. :]
Davy Jones
08.01.2014, 12:50
Genau, man kann den Helden in der Database mit Unterwäsche einstellen und im Laufe des Spiels die Rüstung drüberzeichnen.
So hat er dann auch im Shop-Menü ein neutrales Aussehen.
djeurissen
09.01.2014, 17:35
Hmph, ich habe in letzter Zeit wohl einige Fragen ._.
Naja, ich will eine halbwegs funktionierende KI mit DynRPG schreiben, problem dabei ich habe keine Ahnung wie man ein Pathfinding skript bastelt, dachte ich mir benutze ich halt das Plugin das schon existiert, leider will ich kein Event bewegen sondern erstmal abfragen ob man es bewegen kann und wie viele Schritte das ganze benötigt. Und das mehrmals hintereinander somit kann ich auch nicht mit einem unsichtbaren TestEvent arbeiten...
Und wenn ich schon dabei bin, ist es sinnvoll bestimmte Plugins innerhalb meines eigenen Plugins anzuschreiben? Zb. um das Message Box Plugin von Kazesui selber anzusprechen ohne das man dafür einen Comment benutzen muss? Ich könnte ja theoretisch einfach selber die Funktion OnComment aufrufen und meine Parameter angeben, nur keine Ahnung ob das nicht zu Problemen führt ._.
Ich könnte ja theoretisch einfach selber die Funktion OnComment aufrufen und meine Parameter angeben, nur keine Ahnung ob das nicht zu Problemen führt ._.
Dann würdest du aber - meines Wissens nach - nur deine eigene onComment()-Funktion aufrufen - nicht aber die der anderen PlugIns. Du weißt ja zur Laufzeit auch gar nicht, ob andere PlugIns nun vorhanden sind oder nicht.
PeAcE
MorDen
Theoretisch könnte man GetModuleHandle und GetProcAddress (http://msdn.microsoft.com/en-us/library/windows/desktop/ms683212(v=vs.85).aspx) verwenden, um einen Pointer auf ein Callback eines anderen Plugins zu bekommen. Das ist so aber eigentlich nicht vorgesehen; es sei denn ein Plugin stellt bewusst eine zusätzliche Funktion auf diesem Wege zu Verfügung. Es kann aber natürlich funktionieren.
djeurissen
10.01.2014, 16:34
Naja, wollte ich auch nur wissen dann werde ich mein Plugin halt so gestalten das ich meine KI im Maker schreiben kann XD
Der Code hier müsste theoretisch gehen, für deinen Fall. Aber nur unter der Annahme, dass das Plugin, was du aufrufst, wirklich nur parsedData verwendet und nicht versucht, irgendwas mit text, nextScriptLine oder so zu machen:
typedef bool __cdecl (*ONCOMMENT_CALLBACK)(const char *, const RPG::ParsedCommentData *, RPG::EventScriptLine *, RPG::EventScriptData *, int, int, int, int *);
HINSTANCE hInstOtherPlugin = GetModuleHandle("name_of_other_plugin");
if(hInstOtherPlugin) {
ONCOMMENT_CALLBACK alienOnComment = GetProcAddress(hInstOtherPlugin, "onComment");
if(alienOnComment) {
RPG::ParsedCommentData fakeCommentData = {0};
strcpy(fakeCommentData.command, "command_to_be_called");
fakeCommentData.parametersCount = 2;
fakeCommentData.parameters[0].type = RPG::PARAM_NUMBER;
fakeCommentData.parameters[0].number = 1234;
fakeCommentData.parameters[1].type = RPG::PARAM_STRING;
strcpy(fakeCommentData.parameters[2].text, "Hello World!");
try {
if(!alienOnComment(NULL, &fakeCommentData, NULL, NULL, 0, 0, 0, NULL)) {
// Yesss! The other plugin seems to have handled our fake request!
} else {
// The other plugin returned true, i.e. it probably didn't handle the request
}
} catch(...) {
// Oops, something crashed - maybe the other plugin tried to access something we didn't provide, such as the event script data
}
} else {
// The other plugin seems not to have an onComment handler...
}
} else {
// The other plugin seems not to be loaded...
}
Davy Jones
13.01.2014, 15:33
Ist es möglich, die Menü-Dinger von Row und Aktiv/Passiv in einen Switch umzuwandeln, der irgendwas aktiviert? Mit Save_Switch_1005 hattest du das ja bereits wunderbar für die Menü-Speicherfunktion umgemodelt =)
Innocentia
13.01.2014, 16:17
Ist es möglich, die Menü-Dinger von Row und Aktiv/Passiv in einen Switch umzuwandeln, der irgendwas aktiviert? Mit Save_Switch_1005 hattest du das ja bereits wunderbar für die Menü-Speicherfunktion umgemodelt =)
So, wie ich das verstanden habe, gibt es so etwas schon:
http://rpgmaker.net/forums/topics/13468/
Unter CMS Tools: Menu Transition Tweaks.
Aber mein Englisch ist mies, also noch einmal besser selbst durchlesen :)
- Das Inno -
Nein, das bezieht sich darauf, den Übergang vom Menü auf ein eigenes Untermenü (mit dem Save oder Order Switch Plugin) besser zu machen.
goldenroy
14.01.2014, 20:16
Yo, gibt es die Möglichkeit, irgendwie die Positon der Textbox anzupassen? Es muss nicht die Box sein, die Position der 4 Zeilen text alleine reicht theoretisch.
Davy Jones
15.01.2014, 18:27
Ich sehe, dass man dort Order und Quit für Switches gebrauchen kann, nicht aber Row und Aktiv/Passiv.
@Cherry: Ist es überhaupt möglich, diese beiden Menüpunkte für Switches zu benutzen?
Alles ist möglich, es müsste nur wer anpassen. (Nein, ich jetzt nicht.) Du kannst PepsiOtaku ja fragen...
Wäre es möglich ein Plugin zu schreiben welches den Text aus einer Spritefont zieht und damit die Schriftart des Makers ersetzt?
Verzweifle nämlich langsam an der Schriftart des Makers und würde diese gerne ersetzen....nur passende Fonts habe ich bis jetzt nur
auf Spritefonts auf Spriters-Resource gefunden......
Wenn ich denn mal ein onDrawCharacter-Callback mache (was ich vorhabe), hoffentlich. Im Moment wirds wohl schwierig.
Nun zu etwas eher Exzentrischen: Ich überlege seit längerem, ob es nicht eine Möglichkeit gibt, Monster in ihrem Level skalieren zu lassen. Das Feature würde ich gerne als Plugin lösen, ich bräuchte also ( mal wieder ) Speicheradressen-Knowhow.
Ich bräuchte:
- lesenden und schreibenden Zugriff auf die in der aktuellen Monsterguppe befindlichen Status-Werte ( Atk, Def, Int, Agi , Exp, Gold )
- lesenden und schreibenden Zugriff auf die Monsterdatenbank und deren Werte. Ich gehe mal davon aus, dass die getMaxHp-Funktionen etc. der Monster auf die Einträge der Datenbank verweisen.
Was ich tun würde:
- Werte des Monsters aus der DB auslesen und in eigener Datenstruktur sichern
- MonsterEintrag in DB und in Monstergruppe mit aktuellen Werten überschreiben
- Nach Kampfende die Originalwerte zurückschreiben
Was ich beisteuern kann: (weniger für Cherry als für bugmenot )
static RPG::CatalogPtr<RPG::Monster *> &monsters = (**reinterpret_cast<RPG::CatalogPtr<RPG::Monster *> **>(0x4CDE64));
Dort sind die aktuellen Monster.
Monster (TLcfgMonsterItem) erbt von ( TLcfgUnitItem ), die Aufrufe von getMaxHp werden in DynRPG über die vTable gemacht. Was sind das, Funktionszeiger?
bugmenot
21.01.2014, 20:17
lesenden [...] Zugriff auf die in der aktuellen Monsterguppe befindlichen Status-Werte
input:
EAX = Wert an 4CDE64 EnemyPartyPtr
EDX = EnemyPartySlot
call sub_4BE860 <>GetBattlerData(Enemy)
Lädt ... irgendwas... in ein Array, gibt die Adresse des Arrays in EAX aus. (Wird für die Funktionen unter TLcfgUnitItem verwendet (get Str/Def/Int/Agi/etc.))
Informationen im Array (an Pos +xx):
04 = EnemyPartySlot_ID
08 ?
0C = hidden/escaped_flag
10 = Ptr on ActionList
+4 = Action (0|1|2|3|4|5 = Attack|UseSkill|Transform|UseItem|DoNothing|Random)
+5 = Behavior (0|1|2|3|4 = Atk|DblAtk|Defend|Observe|Charge|SelfDestruct|Esc|None)
+8 = Skill_ID (last used Skill)
+C ?
14 = HP
18 = MP
1C ?
20 ?
24 = NamePtr(?)
28 ?
2C = AttributeAmount
30 = Ptr on Attribute_Array
34 = ConditionAmount
38 = Ptr on Condition_Array
3C ?
...
C0 ?
C4 = ConditionInfo 1
C8 = ConditionInfo 2
CC = ConditionInfo 3
D0 = ConditionInfo 4
D4 = ConditionInfo 5
D8 = Enemy_ID
input:
EAX = Wert an 4CDE0C EnemyParamPtr
EDX = Enemy_ID
call sub_482A80 <>GetEnemyParam
Lädt den Eintrag aus der DB in ein Array, gibt die Adresse des Arrays in EAX aus.
Informationen im Array (an Pos +xx):
04 = Enemy_ID
08 = Enemy_Name
0C = EnemyGraphic_Name
10 = Coloration
14 = Enemy_max.HP
18 = Enemy_max.MP
1C = Enemy_Atk
20 = Enemy_Def
24 = Enemy_Int
28 = Enemy_Agi
2C = Transparency_flag
30 = Drop: Exp
34 = Drop: Gold
38 = Drop: Item_ID
3C = Item_Drop%
40 = Crit_Flag
44 = Crit_Rate
48 = Miss_flag
4C = highest non[C] Condition_ID
50 = Ptr on ConditionArray
54 = highest non[C] Attribute_ID
58 = Ptr on AttributeArray
5C = Ptr on Move Pool(?)
Keine Ahnung, wie man den Zugriff von RT -(read)-> DB auf RT -(write)-> DB umdrehen kann.
*> **>(0x4CDE64));
Da steht mehr als nur die PartySize drin? Hm...
Monster (TLcfgMonsterItem) erbt von ( TLcfgUnitItem ), die Aufrufe von getMaxHp werden in DynRPG über die vTable gemacht. Was sind das, Funktionszeiger?
vTable? Nevermind...
Unter TLcfgMonsterItem und TLcfgUnitItem befinden sich Funktionen zur Vergabe und Berechnung von Werten/Schaden/Logik:
[...]
47F144(2k)|4BD310(2k3) <>Monster (TLcfgMonsterItem)
47F314(2k)|------(2k3) <>
47F350(2k)|4BD488(2k3) <>
47F3B4(2k)|4BD514(2k3) <>
47F3E4(2k)|4BD550(2k3) <>InitializeBattlerData
47F430(2k)|4BD5DC(2k3) <>
47F44C(2k)|4BD5F8(2k3) <>CreateEnemyBattler
47F520(2k)|4BD74C(2k3) <>SetEnemyName
47F544(2k)|4BD774(2k3) <>SetEnemy_max.HP
47F55C(2k)|4BD790(2k3) <>SetEnemy_max.MP
47F574(2k)|4BD7AC(2k3) <>SetEnemy_Atk
47F58C(2k)|4BD7C8(2k3) <>SetEnemy_Def
47F5A4(2k)|4BD7E4(2k3) <>SetEnemy_Int
47F5BC(2k)|4BD800(2k3) <>SetEnemy_Agi
47F5D4(2k)|4BD81C(2k3) <>SetEnemy_AttributeRes
47F5F4(2k)|4BD840(2k3) <>SetEnemy_ConditionRes
47F614(2k)|4BD864(2k3) <>SetEnemy_Crit
47F664(2k)|4BD8B8(2k3) <>
47F6A0(2k)|4BD900(2k3) <>
47F854(2k)|------(2k3) <>EndEnemyTurn(?)
47F874(2k)|4BDC30(2k3) <>FlashEnemy
47F878(2k)|4BDC38(2k3) <>
47F880(2k)|4BDC44(2k3) <>
47F888(2k)|4BDC50(2k3) <>
47F90C(2k)|4BDCEC(2k3) <>GetExpSpoil
47F924(2k)|4BDD08(2k3) <>GetGoldSpoil
47F93C(2k)|4BDD24(2k3) <>GetItemSpoil(ID)
47F954(2k)|4BDD40(2k3) <>GetItemSpoil(%)
47F96C(2k)|4BDD5C(2k3) <>
47F990(2k)|4BDD84(2k3) <>
47F9B4(2k)|4BDDAC(2k3) <>
47F9DC(2k)|4BDDD8(2k3) <>TransformEnemy
47FAE0(2k)|4BDF6C(2k3) <>EnemyBehavior(?)
------(2k)|4BE6E0(2k3) <>
4801C8(2k)|4BE7B8(2k3) <>
480214(2k)|4BE804(2k3) <>
480244(2k)|4BE834(2k3) <>
480270(2k)|4BE860(2k3) <>GetBattlerData(Enemy)
4802F0(2k)|4BE8E0(2k3) <>LoadEnemyGroup
------(2k)|4BED2C(2k3) <>ReorientateBattler(Enemy)
480394(2k)|4BED9C(2k3) <>
4803DC(2k)|4BEDF4(2k3) <>GetAverageEnemyPartyAgi
480438(2k)|4BEE50(2k3) <>CheckValidEnemyParty
480470(2k)|4BEE88(2k3) <>EnemyAttack(?)
480600(2k)|------(2k3) <>
4807CC(2k)|4BF0D8(2k3) <>EnemyTurn(?)
[...]
4811E0(2k)|4BF140(2k3) <>Action (TLcfgUnitItem)
481338(2k)|4BF29C(2k3) <>
481368(2k)|4BF2CC(2k3) <>
4813AC(2k)|4BF36C(2k3) <>
4813F0(2k)|4BF3B8(2k3) <>
------(2k)|4BF440(2k3) <>GetJobClass
------(2k)|4BF468(2k3) <>
------(2k)|4BF484(2k3) <>
------(2k)|4BF550(2k3) <>ShowMiss
------(2k)|4BF5E4(2k3) <>ShowDamage
------(2k)|4BF694(2k3) <>
481450(2k)|4BF710(2k3) <>RemoveBattleConditions
4814E0(2k)|4BF7A8(2k3) <>
4814E8(2k)|4BF7B0(2k3) <>GetHPColor
48151C(2k)|4BF7E4(2k3) <>GetMPColor
48154C(2k)|4BF814(2k3) <>IncreaseHP
------(2k)|4BF860(2k3) <>
481580(2k)|4BF8D8(2k3) <>DecreaseHP
------(2k)|4BF964(2k3) <>
4815E4(2k)|4BF9C4(2k3) <>IncreaseMP
481608(2k)|4BF9E8(2k3) <>DecreaseMP
481634(2k)|4BFA14(2k3) <>
48172C(2k)|4BFB0C(2k3) <>
481748(2k)|4BFB28(2k3) <>GetStr
4817B8(2k)|4BFBF4(2k3) <>GetDef
481828(2k)|4BFCC0(2k3) <>GetInt
481898(2k)|4BFD5C(2k3) <>GetAgi
481908(2k)|4BFDF8(2k3) <>GetAttributeRes
48192C(2k)|4BFE1C(2k3) <>InitializeAttributeArray
48195C(2k)|4BFE4C(2k3) <>CheckAttribute
4819A4(2k)|4BFE94(2k3) <>SetAttribute
4819EC(2k)|4BFEDC(2k3) <>AttributeRes-1
481A2C(2k)|4BFF1C(2k3) <>AttributeRes+1
481A6C(2k)|4BFF5C(2k3) <>InitializeConditionArray
481A9C(2k)|4BFF8C(2k3) <>CheckCondition
481AE4(2k)|4BFFD4(2k3) <>SetCondition
481B2C(2k)|4C001C(2k3) <>InflictCondition
481C90(2k)|4C019C(2k3) <>RemoveCondition
481D04(2k)|4C02EC(2k3) <>GetHighestPriorityCondition
481D6C(2k)|4C0354(2k3) <>GetCondition
481DB8(2k)|4C03A0(2k3) <>GetConditionColor
------(2k)|4C03CC(2k3) <>SetEnemyConditionInfo
481DF0(2k)|4C04A4(2k3) <>GetConditionHitDeBuff
------(2k)|4C0504(2k3) <>GetEvadeAllAttacksFlag
------(2k)|4C0560(2k3) <>GetReflectSkillsFlag
------(2k)|4C05BC(2k3) <>GetFixEquipFlag
481E50(2k)|4C0618(2k3) <>FullRecovery
481E94(2k)|------(2k3) <>AssignTurnOrder
481EE8(2k)|4C0688(2k3) <>CheckValidTarget
481EFC(2k)|4C069C(2k3) <>GetParalysisFlag
481F4C(2k)|4C06EC(2k3) <>GetBerserkFlag
481F9C(2k)|4C073C(2k3) <>GetConfusionFlag
481FEC(2k)|4C078C(2k3) <>CheckEnemyResponsiveness(?)
482018(2k)|4C07B8(2k3) <>CheckRecovery(?)
4820A8(2k)|4C0848(2k3) <>
482344(2k)|4B9834(2k3) <>CalcPhysDamage
------(2k)|4C0B2C(2k3) <>CalcPhysDamage(Enemy)
48248C(2k)|4C0DBC(2k3) <>CalcSkillDamage
48266C(2k)|4C0FFC(2k3) <>
------(2k)|4C110C(2k3) <>
------(2k)|4C1114(2k3) <>
------(2k)|4C1150(2k3) <>
------(2k)|4C1178(2k3) <>
[...]
Hey, danke für deine Mühen. So hardwarenahes entspricht nicht unbedingt meinem Metier, als verzeih, wenn ich blöde Sachen frage ;-)
In deiner Tabelle gibt es
481748(2k)|4BFB28(2k3) <>GetStr
Die Adresse entspricht dabei der hier aus Cherrys Battler-Klasse.
int Battler::getAttack() {
int ret;
asm volatile("call *%%esi" : "=a" (ret) : "S" (0x4BFB28), "a" (this) : "edx", "ecx", "cc", "memory"); // GetATK
return ret;
}
D.h. eigentlich müsste ich mir analog dazu mit dem hier 4BD7AC(2k3) <>SetEnemy_Atk, eine setAttack-Funktion basteln können, wenn ich anstatt des this den Zeiger auf das Monsterobjekt übergebe, oder inwiefern irre ich mich da?
bugmenot
22.01.2014, 17:47
[...]setAttack-Funktion basteln können, wenn ich anstatt des this den Zeiger auf das Monsterobjekt übergebe, oder inwiefern irre ich mich da?
Also das this als Input ist eigentlich ein Verweis auf die Adresse, an der alle notwendigen Daten für die Kampfteilnehmer geschrieben stehen. Das Problem ist, dass die SetEnemy[XYZ]-Funktionen sich daraus nur die Enemy_ID rauspicken und anhand dieser den Eintrag aus der .ldb laden.
47F544 <>SetEnemy_max.HP (2k3: 4BD774)
47F545 mov ebx,eax //get Ptr on BattlerData(Enemy)
47F547 //off_49AD20 = EnemyParamPtr
47F54E mov edx,[ebx+48] //get Enemy_ID
47F551 call sub_4627EC //call GetEnemyParam
47F556 mov eax,[eax+14] //get Enemy_max.HP
47F55C <>SetEnemy_max.MP (2k3: 4BD790)
47F55D mov ebx,eax //get Ptr on BattlerData(Enemy)
47F55F //off_49AD20 = EnemyParamPtr
47F566 mov edx,[ebx+48] //get Enemy_ID
47F569 call sub_4627EC //call GetEnemyParam
47F56E mov eax,[eax+18] //get Enemy_max.MP
47F574 <>SetEnemy_Str (2k3: 4BD7AC)
47F575 mov ebx,eax //get Ptr on BattlerData(Enemy)
47F577 //off_49AD20 = EnemyParamPtr
47F57E mov edx,[ebx+48] //get Enemy_ID
47F581 call sub_4627EC //call GetEnemyParam
47F586 mov eax,[eax+1C] //get Enemy_Atk
47F58C <>SetEnemy_Def (2k3: 4BD7C8)
47F58D mov ebx,eax //get Ptr on BattlerData(Enemy)
47F58F //off_49AD20 = EnemyParamPtr
47F596 mov edx,[ebx+48] //get Enemy_ID
47F599 call sub_4627EC //call GetEnemyParam
47F59E mov eax,[eax+20] //get Enemy_Def
47F5A4 <>SetEnemy_Int (2k3: 4BD7E4)
47F5A5 mov ebx,eax //get Ptr on BattlerData(Enemy)
47F5A7 //off_49AD20 = EnemyParamPtr
47F5AE mov edx,[ebx+48] //get Enemy_ID
47F5B1 call sub_4627EC //call GetEnemyParam
47F5B6 mov eax,[eax+24] //get Enemy_Int
47F5BC <>SetEnemy_Agi (2k3: 4BD800)
47F5BD mov ebx,eax //get Ptr on BattlerData(Enemy)
47F5BF //off_49AD20 = EnemyParamPtr
47F5C6 mov edx,[ebx+48] //get Enemy_ID
47F5C9 call sub_4627EC //call GetEnemyParam
47F5CE mov eax,[eax+28] //get Enemy_Agi
Also:
Basteln: ja (Den output hinter jedem call sub_482A80 <>GetEnemyParam mit einem zugewiesenen Wert multiplizieren)
Aber eher: nein (Ich habe 86 byte Spielraum bei den ganzen SetEnemy[XYZ]-Funktionen. Ich schaue mal, was sich machen lässt. Gib mir einen oder besser zwei Momente.)
+Post #137 nochmal in Ruhe durchles+
Du brauchst also eine Funktion, die die gesamte RPG_RT.ldb ausliest und in eine RPG_RT.cdb schreibt, auf die du vollen Zugriff hast, und die Funktionen, die normalerweise aus der .ldb lesen, müssen auf die .cdb umgeleitet werden?
An offset 0047DDB8 kann man auf den Dateinamen der Datenbank verweisen, aus der gelesen wird. Würde jetzt heißen, man müsste onStartUp "copy RPG_RT.ldb -> create RPG_RT.cdb" machen und dann halt Werte in der .cdb umschreiben. In der RM Interna stand irgendwas über die Struktur der LcfDataBase. Mehr kann ich nicht sagen, weil ich habe keine Ahnung von EDV und so...
Das klingt jetzt plötzlich sehr umfangreich.
bugmenot
23.01.2014, 19:16
download MonSca(fixed) (http://share.cherrytree.at/showfile-14981/monsca_fixed_.rar)
Edit: (15.06.14)
...da ist wohl was schiefgelaufen. Sorry.
Dieser Patch ändert die Monsterparameter zur Laufzeit auf Basiswert*[Variable]/1000. Bei der Item_ID auf Basiswert+Var[1009].
Var[1001] = max.HP
Var[1002] = max.MP
Var[1003] = Str
Var[1004] = Def
Var[1005] = Int
Var[1006] = Agi
Var[1007] = Exp
Var[1008] = Gold
Var[1009] = Item_ID (Bitte keine Item_IDs über den Database-Einträgen hinaus resultieren lassen!)
Var[1010] = Item Drop%
Swi[1001] = LevelScaling
Lineares Anpassen der Monsterparameter anhand dem Durchschnittslevel der Heldengruppe auf Basiswert*Level*[Variable]/1000.
Den Patch einfach in den Ordner DynPatches schieben, oder man kann alternativ auch manuell patchen:
download LunarIPS: http://fusoya.eludevisibility.org/lips/
Erster Schritt: legt euch eine Sicherungskopie eurer RPG_RT.exe an (für den Fall der Fälle)
Lunar IPS öffnen -> apply IPS patch -> .ips-Datei (den Patch) wählen > Dateityp: all types -> RPG_RT.exe auswählen
Um Die Var_IDs ändern zu können (einfach die Zahlen hinter #) fügt man Folgendes in den Bereich unter [QuickPatches] in der DynRPG.ini ei
[QuickPatches]
ID-maxHP=4BD776,#1001
ID-maxMP=4BD781,#1002
ID-Str=4BD78C,#1003
ID-Def=4BD797,#1004
ID-Int=4BD7A2,#1005
ID-Agi=4BD7AD,#1006
ID-Exp=4BD7B8,#1007
ID-Gold=4BD7C3,#1008
ID-Item=4BD7CE,#1009
ID-Item%=4BD7DB,#1010
ID(Swi)-LvScale=4BDD0B,#1001
Bzw. für den RM2k die RPG_RT.exe mit einem HexEditor öffnen und an folgenden Adressen die Werte ändern:
0x7E947 = Var_ID 1001 (max.HP)
0x7E952 = Var_ID 1002 (max.MP)
0x7E95D = Var_ID 1003 (Str)
0x7E968 = Var_ID 1004 (Def)
0x7E973 = Var_ID 1005 (Int)
0x7E97E = Var_ID 1006 (Agi)
0x7E989 = Var_ID 1007 (Exp)
0x7E994 = Var_ID 1008 (Gold)
0x7E99F = Var_ID 1009 (Item_ID)
0x7E9AC = Var_ID 1010 (Item%)
0x7ED2D = Swi_ID 1001 (LevelScaling)
This patch alters monster parameters during runtime to BaseValue*[Variable]/1000. And Item_IDs to BaseValue+Var[1009].
Var[1001] = max.HP
Var[1002] = max.MP
Var[1003] = Str
Var[1004] = Def
Var[1005] = Int
Var[1006] = Agi
Var[1007] = Exp
Var[1008] = Gold
Var[1009] = Item_ID (Please don't let Item_IDs result that are above the highest ID in the database!)
Var[1010] = Item Drop%
Swi[1001] = LevelScaling
Linear scaling of monster parameters by the average level of the heroes in the party to BaseValue*Level*[Variable]/1000.
Put this patch into the folder named DynPatches, or alternatively you can manually patch it:
download LunarIPS: http://fusoya.eludevisibility.org/lips/
First step: make a backup of your RPG_RT.exe (just in case)
open Lunar IPS -> apply IPS patch -> select the .ips file (this patch) -> file type: all types -> select the RPG_RT.exe
To change the the Var_IDs (change the values behind the #) you have to paste the following directly under the section [QuickPatches] in the DynRPG.ini:
[QuickPatches]
ID-maxHP=4BD776,#1001
ID-maxMP=4BD781,#1002
ID-Str=4BD78C,#1003
ID-Def=4BD797,#1004
ID-Int=4BD7A2,#1005
ID-Agi=4BD7AD,#1006
ID-Exp=4BD7B8,#1007
ID-Gold=4BD7C3,#1008
ID-Item=4BD7CE,#1009
ID-Item%=4BD7DB,#1010
ID(Swi)-LvScale=4BDD0B,#1001
Or for the RM2k just open the RPG_RT.exe with a HexEditor and change the numbers at the following addresses:
0x7E947 = Var_ID 1001 (max.HP)
0x7E952 = Var_ID 1002 (max.MP)
0x7E95D = Var_ID 1003 (Str)
0x7E968 = Var_ID 1004 (Def)
0x7E973 = Var_ID 1005 (Int)
0x7E97E = Var_ID 1006 (Agi)
0x7E989 = Var_ID 1007 (Exp)
0x7E994 = Var_ID 1008 (Gold)
0x7E99F = Var_ID 1009 (Item_ID)
0x7E9AC = Var_ID 1010 (Item%)
0x7ED2D = Swi_ID 1001 (LevelScaling)
Edit:
Wer aus irgendeinem Grund FastFadeIn (http://www.multimediaxis.de/threads/104116-Programmwunsch-und-erstellungsthread-2?p=3119500#post3119500) benutzt... well, don't use it.
Ansonsten könnte ich mal schauen, wo ich den Code hinschieben kann.
Ohhhhh das wird morgen gleich mal geprüft. Geil ^_^
Die Berechnungsformel Wert + (Wert * Var) halte ich aber für ungünstig.
Wäre ( Wert *V ) /1000 auch drin?
bugmenot
23.01.2014, 21:09
Sicher geht das. Siehe Post #142.
Geil, danke :-D morgen wird getestet, muhahahaha
Edit:
ID-Gold=4BD7C,#1008, der Addresswert ist ein Zeichen zu kurz.
Wie wird die Item-ID Berechnet? Auch mit der Formel?
Edit: Ich kriege Division by zero mit der (fixed)-Variante, auch wenn ich die Werte alle auf 1000 setze.
Ausserdem ist es schwierig Variablen im Kampftestmodus auf Defaultwerte > 0 zu setzen. DynCallbacks kommen entweder beim Start ( danach werden die Arrays auf 0 resettet ) oder zu spät ( beim Zeichnen, und vorher knallts schon )
Es wäre gut wenn für den Fall, dass Variable = 0, einfach der eingestellte Wert genommen würde. Geht das?
goldenroy
24.01.2014, 14:06
So, ich hab mir jetzt ein schönes KS-Setup mit Cortis Patches gebastelt, allerdings habe ich noch ein Problem:
Folgende Boxen:
http://i.imgur.com/KeWOKMm.png
Diese Box wäre unten links in der Ecke viel besser aufgehoben (oder unten rechts, halt.. unten).
http://i.imgur.com/O56Kgom.png
Diese Boxen wären ebenfalls unten orientiert besser.
Kann man da was machen? (:
EDIT: Ich hab jetzt nochmal etwas rumprobiert und mich doch für das horizontale Layout entschieden.
http://i.imgur.com/WeJnyZA.png
Allerdings sehe ich zumindest keine Option, den X-Wert der HUD-Elemente zu verschieben (Können auch alle auf einmal sein, die Feingliedrigkeit mit den einzelnen Leisten und so ist da unnötig). Ich würde die halt gerne rechtsbündig haben. :0
Boah, ich verlang hier schon wieder voll viel. D;
http://www.multimediaxis.de/threads/68025-Tutorial-Sammelthread?p=3030978&viewfull=1#post3030978
goldenroy
24.01.2014, 15:38
http://www.multimediaxis.de/threads/68025-Tutorial-Sammelthread?p=3030978&viewfull=1#post3030978
Das ist schonmal super, allerdings bereit mir das ebenfalls etwas Probleme. Ich habe folgende Quickpatches geschrieben:
SelectionPos=497F1D,#160
SelectionPos2=497E81,#160
und die funktionieren auch soweit.. für das ausgewählte Fenster. Während im Fenster kein Cursor ist, ist es immernoch an oberer Position. Ich nehm jetzt mal ein paar Patches raus und schau, ob das vielleicht von irgendwas beeinflusst wird.
bugmenot
24.01.2014, 21:25
MonSca sollte nun eigentlich laufen. Siehe Post #142.
Diese Box wäre unten links in der Ecke viel besser aufgehoben (oder unten rechts, halt.. unten).
[QuickPatches]
BottomCommandWindow=4950B6,EB18,4950D0,6A4C6A506A00B9A0000000BA00000000
CommandWindow(y)=4950D7,#160
CommandWindow(x)=4950DC,#0
CommandWindow(height)=4950D3,%80
CommandWindow(width)=4950D1,%78
Diese Boxen wären ebenfalls unten orientiert besser.
Schau einfach mal nach:
495CBC <>DrawItemMenu
495F90 <>DrawSkillMenu
in meinem Trippelpost im Programmwunschthread (Krimskrams 3/3)
Die Item/Skill-Fenster kannst du so locker runtersetzen.
Wegen dem Info-Fenster: Nein, jetzt nicht. Dafür muss man den ganzen Code in beiden Funktionen rumschieben.
Allerdings sehe ich zumindest keine Option, den X-Wert der HUD-Elemente zu verschieben
Im Moment habe ich keine Lust meinen Patch umzuschreiben.
Edit:
[QuickPatches]
Face(dx)=496AC2,6BC9,496AC4,%80
Face(x)=496AC5,83C1,496AC7,%0
Das alte "Face(dx)=..." ersetzen.
(Kann das bitte noch in den "Wie ich die ATB-Leiste wegbekomme" Post hineineditiert werden?)
Ansonsten sind die restlichen HUD-Elemente doch über die QuickPatches mit dem (x) verstellbar?
goldenroy
25.01.2014, 13:11
Ui, vielen Dank! Das hilft mir schon ungemein und bestimmt auch anderen. (:
Eine Sache noch:
Face(x)=496AC5,83C1,496AC7,%0
Hier komme ich nicht über %127 bzw 7F hinaus. Jeder Wert darüber lässt die Faces verschwinden. Ist das irgendeine Grenze oder wieder sowas wie >das mit dem #256< (http://www.multimediaxis.de/threads/138938-DynRPG-Corti-s-Werkstatt-%28Update-30-12-13%29-Neu-CustomCrit-CombatVisu!?p=3141726&viewfull=1#post3141726)? ;0
bugmenot
25.01.2014, 13:35
Jein.
[QuickPatches]
Face(dx)=496AC2,6BC9,496AC4,%80
Face(Far-x)=496ACB,034B14A174DB4C008B008BD6E8F4FF00008BC78B10FF5228508B4714
Face(x)=496AC5,81C1,496AC7,#0
FaceNoShift=496ACB,909090
Edit:
Oooooh. Kann man die ganzen (dx) auf Minuswerte stellen und dann bei jedem zusätzlichen Gruppenmitglied das HUD nach links hin adden lassen?
Edit²
Hier noch der Rest:
[QuickPatches]
HPB(Far-x)=496AF6,81C2,496AFC,8BC6
HPB(x)=496AF8,#48
HPD(Far-x)=496B29,81C2,496B2F,8BC6,496B5C,81C2,496B62,8BC6,496B8C,81C2,496B92,8BC6,496BB7,81C2,496BBD,8BC6
HPD(x)=496B2B,#40,496B5E,#48,496B8E,#58,496BB9,#64
MPB(Far-x)=496BEE,81C2,496BF4,8BC6,496C34,81C2,496C3A,8BC6
MPB(x)=496BF0,#48,496C36,#48
MPD(Far-x)=496C67,81C2,496C6D,8BC6,496C99,81C2,496C9F,8BC6,496CC6,81C2,496CCC,8BC6
MPD(x)=496C69,#48,496C9B,#56,496CC8,#64
ATB(Far-x)=496D0A,81C2,496D10,8BC6
ATB(x)=496D0C,#48
Ging nur von -127 bis +127, da ich nie auf die Idee gekommen wäre, dass das jemand rechtsbündig + nach links addierend haben möchte.
Edit³
Wenn man die neuen " ***(x)=... " QuickPatches in die DynRPG.ini kopiert, dann kann man die alten " ***(x)=... " Zeilen wieder löschen.
Ui, vielen Dank! Das hilft mir schon ungemein und bestimmt auch anderen. (:
Eine Sache noch:
Hier komme ich nicht über %127 bzw 7F hinaus. Jeder Wert darüber lässt die Faces verschwinden. Ist das irgendeine Grenze oder wieder sowas wie >das mit dem #256< (http://www.multimediaxis.de/threads/138938-DynRPG-Corti-s-Werkstatt-%28Update-30-12-13%29-Neu-CustomCrit-CombatVisu!?p=3141726&viewfull=1#post3141726)? ;0
Ja, % ist ja nur 1 Byte, also hast du -128 bis +127 als mögliche Werte.
goldenroy
25.01.2014, 14:48
Hm, ich hab testweise jetzt nochmal die ganzen Einstellungen zurückgesetzt und die (Far-x) Teile hinzugefügt, und bekomme beim Starten des KS einen "Range Checking Error".
;// Der Abstand in X zwischen den Facesets der Helden
Face(dx)=496AC2,6BC9,496AC4,%80
Face(Far-x)=496ACB,034B14A174DB4C008B008BD6E8F4FF00008BC78B10FF5228508B4714
Face(x)=496AC5,81C1,496AC7,#0
;// Die Y-Position aller Facesets
Face(y)=496ABB,#184
;// Der Abstand in X zwischen der linken Kante des Facesets und dem Anfang des HP-Balkens
HPB(Far-x)=496AF6,81C2,496AFC,8BC6
HPB(x)=496AF8,#50
;// Der Abstand in X zwischen den HP-Balken der Helden
HPB(dx)=496B00,%80
;// Die Y-Position aller HP-Balken
HPB(y)=496B08,#184
;// Der Abstand in X zwischen der linken Kante des Facesets und den HP - Ziffern
HPD(Far-x)=496B29,81C2,496B2F,8BC6,496B5C,81C2,496B62,8BC6,496B8C,81C2,496B92,8BC6,496BB7,81C2,496BBD,8BC6
HPD(x)=496B2B,#40,496B5E,#48,496B8E,#58,496BB9,#64
;// Der Abstand in X zwischen den HP-Ziffern der Helden
HPD(dx)=496B33,%80,496B66,%80,496B96,%80,496B66,%80
;// Die Y-Position aller HP-Ziffern
HPD(y)=496B3B,#184,496B6E,#184,496B9E,#184,496BC9,#184
;// Der Abstand in X zwischen der linken Kante des Facesets und dem Anfang des MP-Balkens
MPB(Far-x)=496BEE,81C2,496BF4,8BC6,496C34,81C2,496C3A,8BC6
MPB(x)=496BF0,#48,496C36,#48
;// Der Abstand in X zwischen den MP-Balken der Helden
MPB(dx)=496BF8,%80,496C3E,%80
;// Die Y-Position aller MP-Balken
MPB(y)=496C02,#200,496C48,#200
;// Der Abstand in X zwischen der linken Kante des Facesets und den MP - Ziffern
MPD(Far-x)=496C67,81C2,496C6D,8BC6,496C99,81C2,496C9F,8BC6,496CC6,81C2,496CCC,8BC6
MPD(x)=496C69,#48,496C9B,#56,496CC8,#64
;// Der Abstand in X zwischen den MP-Ziffern der Helden
MPD(dx)=496C71,%80,496CA3,%80,496CD0,%80
;// Die Y-Position aller MP-Ziffern
MPD(y)=496C7B,#200,496CAD,#200,496CDA,#200
;// Der Abstand in X zwischen der linken Kante des Facesets und dem Anfang des ATB-Balkens
ATB(Far-x)=496D0A,81C2,496D10,8BC6
ATB(x)=496D0C,#50
;// Der Abstand in X zwischen den ATB-Balken der Helden
ATB(dx)=496D14,%80
;// Die Y-Position aller ATB-Balken
ATB(y)=496D1F,#216
;// Diese Einstellungen beschreiben die Breite der Balken. Wichtig ist bei Color-Fix die Breite -1 anzugeben
HPB(w)=496AE9,%25
MPB(w)=496C27,%25
ATB(w)=496CF3,#25
Bar(w)WidthFix=489CBD,%25
Bar(w)ColorFix=489D1E,%24
bugmenot
25.01.2014, 19:17
Hmmm...
Hast du schon den neuen DynLoader (http://www.multimediaxis.de/threads/104116-Programmwunsch-und-erstellungsthread-2?p=3140230&viewfull=1#post3140230) im Spielverzeichnis?
Ich gehe gerade den Code nochmal durch... ...
Edit:
Habe bei mir einen Copy&Paste-Fehler gefunden:
HPD(dx)=496B33,%80,496B66,%80,496B96,%80,496BC1,%80
goldenroy
25.01.2014, 19:41
Hmmm...
Hast du schon den neuen DynLoader (http://www.multimediaxis.de/threads/104116-Programmwunsch-und-erstellungsthread-2?p=3140230&viewfull=1#post3140230) im Spielverzeichnis?
Ich gehe gerade den Code nochmal durch...
Hm, ich hab sie grade mal ausgetauscht und bekomme dann eine
http://i.imgur.com/usc1sfP.png
Hmm... :\
bugmenot
25.01.2014, 20:07
Lade dir mal den Dyn0.20 pre-Release (http://www.multimediaxis.de/threads/134256-DynRPG-Das-RM2k3-Plugin-SDK?p=3137597&viewfull=1#post3137597) herunter.
Bei Dyn0.17 tritt bei mir auch dauernd ein RangeCheckingError auf... Wurde dort zufällig % mit # vertauscht?
goldenroy
25.01.2014, 20:15
Lade dir mal den Dyn0.20 pre-Release (http://www.multimediaxis.de/threads/134256-DynRPG-Das-RM2k3-Plugin-SDK?p=3137597&viewfull=1#post3137597) herunter.
Ah, das war offenbar das Problem. Ausgezeichnet! Das letzte Problem auf der Liste (tut mir echt Leid! q_q) wäre dann noch etwas zum Skill/Itemfenster:
Ich hab aus dem Krimskrams 3/3 die entsprechende 2k3 Adresse für die y-Position rausgesucht (jedenfalls denke ich, das es die ist) und versucht sie zu verändern, folgendermaßen:
ItemY=4C88CE,1E
Allerdings spuckt mir dass dann ne Access Violation (address 004C88CF and offset 00182B91 of type Write) beim öffnen des Itemmenüs aus? Mach ich irgendwas falsch? p_p
bugmenot
25.01.2014, 20:23
Ein paar Zeilen dadrüber. (Deswegen bietet es sich immer an, die RT vorher mit einem Disassembler zu öffnen und zu schauen, wo ein mov ecx,<Nummer> steht und welche Adresse man genau verändern kann)
In 4C88B2 wird die y-Pos für den Gauge-Modus vergeben, also wäre der QuickPatch:
ItemY=4C88B3,#30
SkillY=4C9019,#30
goldenroy
25.01.2014, 21:35
Okay, jetzt funktioniert alles. Vielen Dank nochmal! (:
bugmenot
27.01.2014, 22:26
Mehr... Zeug!
Diese Boxen wären ebenfalls unten orientiert besser.
download InfoDisloc (http://share.cherrytree.at/showfile-12832/infodisloc___rpg_rt2k3_v108.ips)
[QuickPatches]
ItemInfoY=4C8869,#0
Item(height)=4C88C5,#80
ItemY=4C88CC,#64
SkillInfoY=4C9017,#0
Skill(height)=4C902B,#80
SkillY=4C9032,#64
BottomActionMessage=496E34,66B9D00033D2
BottomEnemyStatus=495315,66B9D000E8BE10030033C0EB0D
BottomBattleEndWindow=4C71DE,90B9D0000000
BottomBattleMessage=4C72AB,90B9A0000000
...die D0 00 sind jeweils y-Pos = 208 (ja, hol deinen Taschenrechner raus)
Ist für die QuickPatch-Funktion von DynRPG neben dem % und # auch eine Funktion für 2 Bytes geplant?
Eigentlich nicht. Könnte man natürlich aber machen. (Kommt aber nur ganz selten vor, in Tabellen vor allem.)
goldenroy
29.01.2014, 19:54
@bugmenot:
Folgendes: Mit dem InfoDisloc Patch installiert bekomme ich eine Fehlermeldung beim Aufrufen des Itemmenüs (Access violation, adresss 004C88B3, offset 90000000, Read) und einen Crash beim Öffnen des Skillmenüs mit den Installierten Quickpatches, die das nach unten verschieben ( ItemY=4C88B3,#160, SkillY=4C9019,#160) - auch ohne Konfiguration in den Quickpatches. Vielleicht vertragen sich VisuGauge und InfoDisloc nicht?
bugmenot
29.01.2014, 20:25
ItemY=4C88B3,#160, SkillY=4C9019,#160
Die beiden Zeilen müssen ersetzt werden:
[QuickPatches]
ItemInfoY=4C8869,#0]
Item(height)=4C88C5,#80
ItemY=4C88CC,#64
SkillInfoY=4C9017,#0
Skill(height)=4C902B,#80
SkillY=4C9032,#64
goldenroy
29.01.2014, 20:40
Die beiden Zeilen müssen ersetzt werden:
Ah, natürlich. Ich hab mir den neuen Abschnitt wohl nicht genau genug angesehen, hm. :V
goldenroy
07.02.2014, 21:36
Yay, Doppelpost.
Gibt es irgendwie die Möglichkeit, die Menüpunkte vom Standardmenü per Befehl im laufenden Spiel zu ändern?
bugmenot
08.02.2014, 01:03
MenuManipulator(2k3)
download MenuManipulator (http://share.cherrytree.at/showfile-12964/menumanipulator___rpg_rt2k3_v108.ips)
[QuickPatches]
MenuSize(Var_ID)=4A10AC,#3341
MenuOption(Var_ID)=4B4D31,#3342
MenuSize wird aus Var[3341] gelesen (solange 0, nimmt's den Wert aus der Database bzw. aus der letzten Session/Speicherstand).
max. 8, min. 1, unterhalb von 0 gibt's einen Absturz (blame me if you want).
MenuOption wird aus Var[3342]+ gelesen (3342 ist Option#1, 3343 ist Option#2, ... , 3349 ist Option#8 )
Für jede Position / Option# kann man Menüpunkte zuweisen:
0 = default (anhand dem was in der Database angegeben ist)
1 = Item
2 = Skill
3 = Equip
4 = Save
5 = Status
6 = Row
7 = Order
8 = ATB
-1 = leer
Letzte Option ist immer Quit. Menugröße geht nicht unter 2. (blame me if you want)
[QuickPatches]
MenuSize(Var_ID)=4A10AC,#3341
MenuOption(Var_ID)=4B4D31,#3342
MenuSize is taken from Var[3341] (if 0, it takes the size from the database or from the last game session / save file).
max. 8, min. 1, crashes if below 0 (blame me if you want).
MenuOption is taken from Var[3342]+ (3342 is Option#1, 3343 is Option#2, ... , 3349 is Option#8 )
The menu option can be assigned for each position / Option#:
0 = default (taken from database)
1 = Item
2 = Skill
3 = Equip
4 = Save
5 = Status
6 = Row
7 = Order
8 = ATB
-1 = empty
Last option is always Quit. MenuSize does not go below 2. (blame me if you want)
goldenroy
08.02.2014, 16:16
MenuManipulator (http://share.cherrytree.at/showfile-12964/menumanipulator___rpg_rt2k3_v108.ips)
MenuSize wird aus Var[3341] gelesen (solange 0, nimmt's den Wert aus der Database bzw. aus der letzten Session/Speicherstand).
max. 8, min. 1, unterhalb von 0 gibt's einen Absturz (blame me if you want).
MenuOption wird aus Var[3342]+ gelesen (3342 ist Option#1, 3343 ist Option#2, ...)
Für jede Position / Option# kann man Menüpunkte zuweisen:
0 = default (anhand dem was in der Database angegeben ist)
1 = Item
2 = Skill
3 = Equip
4 = Save
5 = Status
6 = Row
7 = Order
8 = ATB
-1 = leer
Letzte Option ist immer Quit. Menugröße geht nicht unter 2. (blame me if you want)
Ui, vielen Dank! (:
Davy Jones
09.02.2014, 10:51
Nicht schlecht, dass man während des Spielverlaufs Menüpunkte hinzufügen kann. Sobald man einer gewissen Person begegnet, werde ich damit mein Monsterlexikon verfügbar machen (dass man ja mit einem anderen DynPatch von dir aus dem Standardmenü aufrufen kann).
In diesem Sinne: Danke dir =)
hallöchen :)
ich hab da mal ne frage zu einem dynrpg plugin an dem ich mit meinen nicht vorhandenen c++ kenntnissen rumbastel ^^;
also es geht um ein Plugin um im Kampf abzufragen, ob ein Held eine bestimmte Condition hat... ist ja scheinbar über den maker nicht lösbar...
seh ich das richtig, dass http://rpg-maker.cherrytree.at/dynrpg/class_r_p_g_1_1_battler.html#ad21309b7603cb479642232a913e3d41b die richtige (und einzige?) Möglichkeit wäre, im Kampf abzufragen, ob ein Held eine bestimmte Condition hat?
Ich vermute damit könnte man in eine Variable die Condition eines Helden wie folgt speichern(?):
int condition1 = RPG::Battler::displayedConditions[1];
int condition2 = RPG::Battler::displayedConditions[2];
...
int condition5 = RPG::Battler::displayedConditions[5];
aber wie spezfiziere ich, um welchen Battler mit welcher ID es geht? ^^; mittels dem codebeispiel zu den condition icons von cherry hab ich mal folgendes zusammengebastelt...
leider ist mir unklar ob ich so die conditions von bestimmten battlern abfragen kann, da ich mir einerseits unsicher bin, wie ich auf die bestimmten displayed conditions eines helden zugreife und wie ich andererseits weiß, welche battler id ein bestimmter held hat...
so sähe es jetzt aus...
#define AUTO_DLLMAIN
#include <DynRPG/DynRPG.h>
#include <sstream> // For std::stringstream
// We store the configuration here
std::map<std::string, std::string> configuration;
int heldcondition[5];
// This handler is called on startup
bool onStartup(char *pluginName) {
// We load the configuration from the DynRPG.ini file here
configuration = RPG::loadConfiguration(pluginName);
return true; // Don't forget to return true so that the start of the game will continue!
}
bool onComment( const char* text,const RPG::ParsedCommentData* parsedData,RPG::EventScriptLine* nextScriptLine,RPG::EventScriptData* scriptData, int eventId, int pageId,int lineId,int* nextLineId )
{
std::string s = parsedData->command;
if(s.compare("condcheck")==0) //@condcheck
{
//Beispielaufruf @condcheck 1 22 1410 würde prüfen ob der Held mit der ID 0 (angegeben 1) die Condition 22 hat und dies, falls dem so ist, in Variable 1410 speichern
if ((parsedData->parameters[0].number) == 1) //Held 1 soll auf eine Condition hin überprüft werden
{
for(int i = 1; i <= 5; i++) { //maximal 5 conditions pro Held im displayedconditions_Array
// Hat der Battler eine Condition
if(battler[RPG::Actor::partyMember(0)->id;]->conditions[i] > 0) {
// Speichern der Conditions fuer den jeweiligen Battler
heldcondition[1] = battler[RPG::Actor::partyMember(0)->id;]->condition[1];
heldcondition[2] = battler[RPG::Actor::partyMember(0)->id;]->condition[2];
heldcondition[3] = battler[RPG::Actor::partyMember(0)->id;]->condition[3];
heldcondition[4] = battler[RPG::Actor::partyMember(0)->id;]->condition[4];
heldcondition[5] = battler[RPG::Actor::partyMember(0)->id;]->condition[5];}
}
}
else {if ((parsedData->parameters[0].number) == 2) //--------------------------------------------------------------------------
{
for(int i = 1; i <= 5; i++) { //maximal 5 conditions pro Held im displayedconditions_Array
// Hat der Battler eine Condition
if(battler[RPG::Actor::partyMember(1)->id;]->conditions[i] > 0) {
// Speichern der Conditions fuer den jeweiligen Battler
heldcondition[1] = battler[RPG::Actor::partyMember(1)->id;]->condition[1];
heldcondition[2] = battler[RPG::Actor::partyMember(1)->id;]->condition[2];
heldcondition[3] = battler[RPG::Actor::partyMember(1)->id;]->condition[3];
heldcondition[4] = battler[RPG::Actor::partyMember(1)->id;]->condition[4];
heldcondition[5] = battler[RPG::Actor::partyMember(1)->id;]->condition[5];}
}
}
else {if ((parsedData->parameters[0].number) == 3) //--------------------------------------------------------------------------
{
for(int i = 1; i <= 5; i++) { //maximal 5 conditions pro Held im displayedconditions_Array
// Hat der Battler eine Condition
if(battler[RPG::Actor::partyMember(2)->id;]->conditions[i] > 0) {
// Speichern der Conditions fuer den jeweiligen Battler
heldcondition[1] = battler[RPG::Actor::partyMember(2)->id;]->condition[1];
heldcondition[2] = battler[RPG::Actor::partyMember(2)->id;]->condition[2];
heldcondition[3] = battler[RPG::Actor::partyMember(2)->id;]->condition[3];
heldcondition[4] = battler[RPG::Actor::partyMember(2)->id;]->condition[4];
heldcondition[5] = battler[RPG::Actor::partyMember(2)->id;]->condition[5];}
}
}
else {if ((parsedData->parameters[0].number) == 4) //--------------------------------------------------------------------------
{
for(int i = 1; i <= 5; i++) { //maximal 5 conditions pro Held im displayedconditions_Array
// Hat der Battler eine Condition
if(battler[RPG::Actor::partyMember(3)->id;]->conditions[i] > 0) {
// Speichern der Conditions fuer den jeweiligen Battler
heldcondition[1] = battler[RPG::Actor::partyMember(3)->id;]->condition[1];
heldcondition[2] = battler[RPG::Actor::partyMember(3)->id;]->condition[2];
heldcondition[3] = battler[RPG::Actor::partyMember(3)->id;]->condition[3];
heldcondition[4] = battler[RPG::Actor::partyMember(3)->id;]->condition[4];
heldcondition[5] = battler[RPG::Actor::partyMember(3)->id;]->condition[5];}
}
}}}}
for(int i = 1; i <= 5; i++) {
if(heldcondition[i] == (parsedData->parameters[1].number)) { //Ist eine der Conditions des Helden die gesuchte Condition ID
RPG::variables[(parsedData->parameters[2].number)] = heldcondition[i];} //ConditionID in die angegeb. Variable für Helden mit der gesuchten ID
}
}
//-------------------------------------------------------------------------------------------------
// Clear the condition cache which is normally used to determine which
// conditions should be shown in the "info window" on top of the screen
// during target selection (we don't need to display the conditions twice!)
for(int i = 0; i < 5; i++) {
battler->displayedConditions[i] = 0;
}
return true;
}
Wäre nett wenn jemand das Ganze mal in notepad++ werfen könnte bzw. gleich das Plugin für mich schreiben könnte ^^;
es winkt auch ein tausend dank dankeschön dankeschön und ein credit eintrag :)
PS:
Ich hab auch noch die Idee für ein anderes Plugin, das ich zwar momentan noch nicht brauche, aber wer lustig ist, kann das gern mal programmieren ^^ Es ging darum, dass man auf Befehl alle Items speichern kann (z.B. in ein inventar 1 von den variablen XXX bis YYY) und aus dem Inventar entfernen und auf Befehl wieder das inventar wechseln kann... z.B. sinnvoll, wenn eine Party zur andern wechseln soll, aber nicht das gleiche Inventar bekommen soll...
PPS: geht eigentlich auch das komplette kopieren eines arrays mit array1[] = array2[]; oder so?...
Im Maker: Conditional Branch -> Tab2 -> Hero -> Afflicted With [ ] Condition
In DynRPG:
DArray<short, 1> RPG::Battler::conditions ist was du eher suchst.
Hier kannst du mit int wert = conditions[databaseId] die Anzahl der Runden auslesen, die die Condition schon läuft, 0 = nicht aktiv.
Ich könnte auch Fragen:
Was genau brauchst du?
Tuts die makerinterne Variante mit der Conditional Branch?
Im Maker: Conditional Branch -> Tab2 -> Hero -> Afflicted With [ ] Condition
Ich könnte auch Fragen: Was genau brauchst du?
Tuts die makerinterne Variante mit der Conditional Branch?
Achso ich hab vergessen zu schreiben ich brauch die Abfrage im Kampf, da gibts die conditional branch Abfrage nicht...
Aber halt ich sehe gerade, es scheint schon so ein Plugin zu geben, das muss ich gerade mal testen ^^; Trotzdem danke für die Hilfe! Den anderen Array hatte ich übrigens sowieso komplett übersehen.. xD
Natürlich gibts das im Kampf. Packs in ein CommonEvent.
Natürlich gibts das im Kampf. Packs in ein CommonEvent.
oO; ganz vergessen... gleich mal testen ^^; thx
In diesem Thread (http://www.multimediaxis.de/threads/140999-Variablen-Relative-Bildposition-in-XY-Koordinate-umwandeln/page2) habe ich zwar schon danach gefragt, aber hier frage ich einfach noch mal, da ich denke, dass das dadurch eher Aufmerksamkeit erlangt:
Hat jemand für DynRPG schon mal pixelgenaues Scrollen programmiert? Im Moment wäre mir das fü ein Pixel-Jump'N'Run sehr hilfreich.
Noch mal wegen pixelgenauem Scrollen, bugmenot hat mal ein paar Ansätze(?) gepostet, die dafür scheinbar notwendig sind.
int mapOffsetX; //positiv=rechts, negativ=links
int mapOffsetY; //positiv=hoch, negativ=runter
int scrollSpeed;
//[...] Argumente zuweisen
mapOffsetX = mapOffsetX*16; //16 je pixel
mapOffsetY = mapOffsetY*16; //16 je pixel
scrollSpeed = scrollSpeed*32; //"normal" speed = 32 (2x = 64; 1/2x = 16; ...)
( **reinterpret_cast<long ***> (0x4CDE54) ) [45] -= mapOffsetX;
( **reinterpret_cast<long ***> (0x4CDE54) ) [46] -= mapOffsetY;
( **reinterpret_cast<long ***> (0x4CDE54) ) [47] = scrollSpeed;
Zuweisung der Argumente mapOffsetX/Y und scrollSpeed per onComment callback oder so.
Frag jemanden (versuch es mal an Schalter 2 (http://www.multimediaxis.de/threads/135603-DynRPG-Der-Pluginwunschthread)), der Ahnung von C++ hat.
Edit:
Und die originalen Kamerapositionen wiederherstellen:
( **reinterpret_cast<long ***> (0x4CDE54) ) [45] = 2304;
( **reinterpret_cast<long ***> (0x4CDE54) ) [46] = 1792;
bugmenot
21.12.2014, 15:17
Danke. Seit ich im Juli dort nachgefragt habe hat keiner mehr einen Beitrag geschrieben.
Das klang jetzt fast schon etwas klagend darüber, dass ich nicht rausfinden wollte, wie der onComment-Kram funktioniert.
download ScreenScrollBug-in (http://share.cherrytree.at/showfile-18387/screenscrollbug_in.rar)
Scrollt den Bildschirm um eine angegebene Anzahl an Pixeln.
>> SCROLL
Nutzt einen Comment mit dem Inhalt:
@scroll_screen [1], [2], [3]
[1] = Anzahl Pixel auf x-Achse (pos.=rechts | neg.=links)
[2] = Anzahl Pixel auf y-Achse (pos.=runter | neg.=hoch)
[3] = Speed (normal speed = 32, double speed = 64, ...)
Ersetze [x] mit Zahlen oder einer Var_ID mit einem vorangestellten "V"
Bsp.
"@scroll_screen 32, -5, V17"
bewegt den Bildschirm 32 Pixel nach rechts, 5 Pixel nach oben und die Geschwindigkeit wird aus Var[0017] genommen.
>> RESET
@scroll_screen_reset [1]
[1] = Speed (normal speed = 32, double speed = 64, ...)
Scrolls the screen by a specified number of pixels.
>> SCROLL
Use a comment with the contents:
@scroll_screen [1], [2], [3]
[1] = number of pixels on x-axis (pos.=right | neg.=left)
[2] = number of pixels on y-axis (pos.=down | neg.=up)
[3] = speed (normal speed = 32, double speed = 64, ...)
Substitute [x] with numbers or a Var_ID with a "V" in front
e.g.
"@scroll_screen 32, -5, V17"
will scroll the screen 32 pixel to the right, 5 pixel up and the speed is taken from Var[0017].
>> RESET
@scroll_screen_reset [1]
[1] = speed (normal speed = 32, double speed = 64, ...)
http://i.imgur.com/QOyZuDo.gif
Ich schlimmer Mensch witzel ja immer mal wieder ein wenig über die ganze Rumpatcherei weil in ein paar Jahren unspielbar und komplizierter als "richtige" Engine verwenden und massiver Arbeitsaufwand für kleinste Ergebnisse, aber
http://i.imgur.com/QOyZuDo.gif
Spätestens hierfür hat sich das Ganze gelohnt!
goldenroy
22.12.2014, 00:19
...
Dann steht ja jetzt dem Zelda-Klon aufm Maker mit Pixelmovement nix mehr im Wege! °L°
bugmenot
22.12.2014, 01:24
Zelda-Klon aufm Maker mit Pixelmovement nix mehr im Wege
Camera-Scrolling ≠ pixelgenaues MoveEvent
Scheinbar ist der ganze Kamera-Kram (http://rpg-maker.cherrytree.at/dynrpg/class_r_p_g_1_1_map.html) bereits in DynRPG implementiert...
http://i.imgur.com/QOyZuDo.gif
Also könnte sich - wer auch immer hier C++ kann - vielleicht dazu erbarmen zu helfen. Nein? Auch gut.
goldenroy
23.12.2014, 13:31
Camera-Scrolling ≠ pixelgenaues MoveEvent
Der RPG-Hacker hatte ja schonmal ein Proof-Of-Concept im Rahmen des Metropolis-Projektes geschaffen, das komplett auf Pictures basierte. Ich glaube er scheiterte dann aber an größeren Maps aufgrund des Scrollings. Darauf spielte ich an. :D
bugmenot
23.12.2014, 14:09
Zelda-Klon aufm Maker mit Pixelmovement nix mehr im Wege
Es stehen dem mindestens zwei callbacks auf getEventScreen_X und getEventScreen_Y, für jedes Event jeweils immer das Neuzuweisen auf welchem Tile(X/Y) es sich gerade befindet, manuelles Nachbessern des Kamerascrolls (damit das nicht ständig rumzuckt) und ein Setzen einer entsprechend neuen MoveRoute (wegen den Animationsframes) ... im Wege. Darauf spielte ich an.
Edit²:
Es gibt intern nirgends einen Wert, welcher sichert, auf welcher Pixelposition sich ein Event / der Spieler befindet. Lediglich die Koordinaten im Tilesetraster und ein Wert (von 256 Richtung 0), der angibt wie weit sich ein Event in ein Tile hinein bewegt hat. Aus diesem Wert (0..256) und der Bewegungsrichtung (0..7) wird halt die Abweichung in Pixeln errechnet und das spuckt die interne getEventScreen_X/Y-Abfrage aus. Ändern der Bewegungsrichtung und dieses 0..256-Wertes bringt nichts, weil die MoveRoute sich selbst korrigieren will und das Events dann nur auf der Stelle laufen würde.
Das ist was "mit DynRPG ist Fast-Pixelmovement möglich" meint.
Edit:
Oder einfach onDrawEvent entsprechend die Sprites anzeigen/verschieben. Dann hat man aber keinen Zugriff auf bestehende Strukturen und kann auch kein <ChangeVar:EventScreen_X>, Eventkollisionen, MoveRoutes oder anderen default Kram nutzen.
Klar kann man alle Sprites als Pictures zeigen (oder in den Bildpuffer laden; Kazesui's mode 7 plugin macht das afaik und der Maker intern ja sowieso). Dann braucht man aber auch nicht mehr mit Tiles mappen und die Map scrollen. Dann muss halt nur noch eine eigene Struktur für Kollisionsberechnung und Eventtriggern zusammengeschustert werden.
goldenroy
24.12.2014, 18:20
Wo wir grade schon mal hier sind: Hätte jemand zufällig eine Möglichkeit, die Position des blinkenden Cursors in der Textbox zu ändern? Alternativ auch eine Möglichkeit, die ganze Textbox zu verschieben oder sowas. °J°
Gibt irgendwo einen Quickpatch dafür. Wenn es in den nächsten Tagen keiner postet und ich wieder mal an meinen Arbeitsrechner bin, bekommst du es von mir.
goldenroy
25.12.2014, 12:29
Ah, hab ihn gefunden (http://www.multimediaxis.de/threads/104116-Programmwunsch-und-erstellungsthread-2?p=3088788&viewfull=1#post3088788)!
Für interessierte, die entsprechenden Stellen wären MsgCursorX=4C8685,XX | MsgCursorY=4C8695,XX
bugmenot
25.12.2014, 12:53
die entsprechenden Stellen wären MsgCursorX=4C8685,XX | MsgCursorY=4C8695,XX
Hut ab. Fein gerechnet.
Oder anhand von Variablen neu vergeben:
download SetBlinker (http://share.cherrytree.at/showfile-15849/setblinker___rpg_rt2k3_v108.ips)
[QuickPatches]
SetBlinkerVar=48858C,160D0000 (http://www.darkfader.net/toolbox/convert/#DByte.0)
(default) Var[3350+0] = y-Pos; Var[3350+1] = x-Pos
Ich habe da eine Vermutung, aber:
http://i.imgur.com/M3OxNER.gif
goldenroy
25.12.2014, 13:38
Hut ab. Fein gerechnet.
Oder anhand von Variablen neu vergeben:
download SetBlinker (http://share.cherrytree.at/showfile-15849/setblinker___rpg_rt2k3_v108.ips)
(default) Var[3350+0] = y-Pos; Var[3350+1] = x-Pos
Ich habe da eine Vermutung, aber:
http://i.imgur.com/M3OxNER.gif
Ah, das ist auch super! Danke dafür. (:
Und ja, quasi das hatte ich damit vor. Vielleicht etwas weniger [Cursor intensifies]. :P
Ich hätte mal eine Frage. Es ist ja möglich mit dem Rpg Maker 2003 (ob 2000 auch weißich nicht) nach einem Befehl der das Bild verändert, ein Show Screen zu befehligen und dadurch ändert sich diese Veränderung wie beim Show Screen. Hoffe es ist verständlich erklärt xD
Naja. Auf jeden Fall ist mein Problem, wenn man dass so macht, wird der Bildschirm aber einfrieren (heißt alle Animation und co sind wieder aus) bis der Show Screen abgeschlossen ist. Wäre es möglich eine Alternative mit einem Plugin zu erstellen?
-Soul
IndependentArt
27.12.2014, 16:57
du könntest doch den show screen auch mit einem schwarzen picture machen ...?
Nein so meinte ich das nicht.
Nimm dir mal ein Char. Mach den Befehl "Change Position" auf den Char (natürlich eine andere Postion, als er gerate steht). Danach auf "Show Screen" drücken. Das sieht etwas aus als ob der sich teleportiert. Und das geht auch mit Chipset soweit ich das mitgekriegt habe. So könnte man Silent Hill ähnliche Umwandlungen machen, allerdings ist während dem "Show Screen"-Befehl wie gesagt dieses Einfrieren. Das muss man irgendwie umgehen wenn möglich.
- Soul
IndependentArt
28.12.2014, 16:34
ich glaube, sowas gibts bisher nicht. kannst du nicht mit den transparenzbefehlen für charsets arbeiten?
eigene Frage:
gab es inzwischen ein tool, um die charset-grafiken zu vergrößern? also, für den 2k3. ich weiß, dass es das für den 2k gab, aber 2k3 noch nicht ...
Da ich in letzter Zeit nach langem wieder den Maker angeworfen habe und ein paar Patches gesucht habe, bin ich zwangläufig auf den DynRPG gestossen. Und ich muss sagen nach anfänglicher skepsis finde ich es ziemlich geil :A Einzig blöde ist, dass ich nicht wirklich programmieren kann -_-
Nun, ich habe jetzt vieles, aber nicht alles druchgelesen, kann sein das es schon gefragt wurde aber:
Kann man die Filter, die im AnotherFullscreenMode verwendet wurden (Scale2x und hq2x) auch darüber integrieren?
Diese Frage kam bei mir auf, als ich das Testspiel mit dem Mausplugin gestartet habe (über AFM) und der Mauszeiger auf einmal weg war. Habe es zwar mit einem Workaround geschafft, das die Maus an der richtigen Stelle angezeigt wird, aber zurück bleibt immer noch die miese Performance des AFM (20-31 FPS, je nach Filter)
goldenroy
04.01.2015, 01:00
Was mir grad so auffällt: Es gibt keine Möglichkeit, die Event ID von "This Event" zu kriegen. Den einzigen Workaround den es gibt, ist die X/Y Koordinaten von einem Event zu speichern und dann "Get Event ID" mit diesen Koordinaten zu benutzen, allerdings wird es dann problematisch, wenn zwei Events auf dem selben Tile liegen, weil dann nur das mit der höheren Event ID benutzt wird.
Gibt es 'ne Möglichkeit, irgendwie einfach so an die ID zu kommen? Mit dem Variablenbefehl kommt man immerhin an so tolle Sachen wie Facing oder Map ID von "This Event", echt seltsam, das da die Event ID nicht dabei ist. °L°
Was mir grad so auffällt: Es gibt keine Möglichkeit, die Event ID von "This Event" zu kriegen. Den einzigen Workaround den es gibt, ist die X/Y Koordinaten von einem Event zu speichern und dann "Get Event ID" mit diesen Koordinaten zu benutzen, allerdings wird es dann problematisch, wenn zwei Events auf dem selben Tile liegen, weil dann nur das mit der höheren Event ID benutzt wird.
Gibt es 'ne Möglichkeit, irgendwie einfach so an die ID zu kommen? Mit dem Variablenbefehl kommt man immerhin an so tolle Sachen wie Facing oder Map ID von "This Event", echt seltsam, das da die Event ID nicht dabei ist. °L°
Kuck mal bei den Variablen Operationen unter Sprite --> This Event --> MapID ob du da rankommst, da wo du dich befindest ^^ Ich denke damit meinen die die Event ID des Events ^^;
MagicMaker
04.01.2015, 13:06
Ich denke damit meinen die die Event ID
"MapID" ist die derzeit geladene Map. Ist leicht verwirrend, weil das nicht unter [Weiteres] steht,
sondern dort unsinnigerweise ein Event mit angegeben werden muss.
"MapID" ist die derzeit geladene Map. Ist leicht verwirrend, weil das nicht unter [Weiteres] steht,
sondern dort unsinnigerweise ein Event mit angegeben werden muss.
oh achso, habs nicht getestet xD wäre so schön naheliegend gewesen...
bugmenot
04.01.2015, 22:27
die Event ID von "This Event" zu kriegen
Ich weise nur mal darauf hin, dass dies bereits über den onComment Callback von DynRPG möglich ist:
#include <DynRPG/DynRPG.h>
bool onComment ( const char* text,
const RPG::ParsedCommentData* parsedData,
RPG::EventScriptLine* nextScriptLine,
RPG::EventScriptData* scriptData,
int eventId, // << HIER das hier << dies hier, auch bereits in der DynDokumentation vorhanden
int pageId,
int lineId,
int* nextLineId )
{
std::string cmd = parsedData->command;
if(!cmd.compare("get_this_event") && parsedData->parametersCount == 1 && parsedData->parameters[0].type == RPG::PARAM_NUMBER)
{
int a = parsedData->parameters[0].number; //Zahl hinter "@get_this_event" für Var_ID, in die das ausgegeben wird
RPG::variables[a] = eventId; // << lest euch die Dokumentation von DynRPG durch, weil ich keine Lust dazu habe
}
return true;
}
Frag MarcL oder jemand anderen, der Code :: Blocks oder irgendeine andere C++ IDE auf dem Rechner eingerichtet hat, das mal schnell zu einem Plugin zu kompilieren.
Edit:
Oder besser noch, versuche mal Codeblocks mit GCC 4.7.1 (http://sourceforge.net/projects/codeblocks/files/Binaries/13.12/Windows/codeblocks-13.12mingw-setup.exe/download) auf deinem Rechner einzurichten.
Edit²:
Schritt für Schritt (http://rpgmaker.net/forums/topics/17017/?post=607487#post607487) Einrichtung von Codeblocks
goldenroy
07.01.2015, 18:49
Ah, hatte ganz vergessen nochmal hier reinzuschauen. Danke für die Anleitung, das hab ich sogar verstanden! :P
Falls irgendwer interessiert ist: >>Click<< (http://share.cherrytree.at/showfile-18691/geteventid.rar)
Hab aber den Befehl zu @event_id [VarID] geändert, weil kürzer und faul. °3°
goldenroy
12.01.2015, 13:18
Meine Güte, ich häng hier so oft ab, das ich schon wieder nen Doppelpost mache. Egal. °J°
Ich stoße langsam an meine Grenzen mit dem Tastatur und Mausplugin von Cherry (http://www.multimediaxis.de/threads/134303-RM2k3-DynRPG-Plugin-Tastatur-und-Mauseingabe). Gibt es irgendwie eine Möglichkeit, mit Dyn nicht nur zu erkennen, ob eine Taste unten ist, sondern die Pressed/Released Events abzufangen? Das bräuchte ich nämlich grade echt dringend. D:
Hey, spontan wüsste ich nichts für Mausevents, zumindest nicht in C++.
Das Plugin, zu dem es ja auch den Quellcode gibt, zieht in jedem Frame den Klickzustand der Maus und schreibt diesen in die Variable. Die schnellste Art, dies abzufragen, wäre ein PP, dessen Zykluszeiten höher sein können als die Gedrück-Zeit eines Mausbuttons.
Ich würde also im onFrame-Callback den Zustand in dem Frame merken und mit dme vorherigen auswerten, dadurch kannst du Zustandswechsel in wesentlich höherer Frequenz abtasten. Wenn du einen solchen Wechsel festgestellt hast, merk dir die Position der Maus und ab in Variablen damit, aber bitte so, dass onFrame das nicht sofort überschreibt. Mit diesem schnelleren Polling müsstest du Mausaktionen besser mitkriegen. Dir gehen Klicks verloren, oder?
goldenroy
12.01.2015, 14:37
Ach, mir gehts gar nicht um die Maus, sondern um die Tastatur. Tut mir Leid, wenn ich mich da unklar ausdrückte. :0
Wie meinst du das, willst dieses "Dauer-Gedrücke" umgehen?
Wenn ja, dann mach das doch, wie bei einem Lauskript. (Gutes Beispiel ist die Epic Fail Saga)
Wenn die Taste gedrückt ist, wird ein Switch aktiviert, der den Tastendruck bestätigt. Ist dieser Switch an, wird wie bei Rennskript, alles nur einmalig eingestellt und ein weitere Switch blockiert das erneute Drücken. Lässt du die Taste aber los, so wird alles Rückgängig gemacht und bist dann fertig.
- Soul
goldenroy
13.01.2015, 16:24
Wie meinst du das, willst dieses "Dauer-Gedrücke" umgehen?
und ein weitere Switch blockiert das erneute Drücken
Das angesprochene DynPlugin funktioniert setzt die Switches aber auch außerhalb von jedem Event, das kann man da leider nicht einfach so blocken. 0:
Ich bin nicht sicher ob du das so meintest aber:
Ich wollte z.B. ein Bild anklicken, worauf an gleicher Stelle wieder ein Bild angezeigt wird, das man anklicken kann. Allerdings hatte es dann beide direkt weggeklickt. Das habe ich folgendermaßen umgangen:
Wenn Taste gedrückt ON
Aktion solange Taste gedrückt
sonst
Label 1
Wenn Taste gedrückt OFF
Aktion, wenn man Taste loslässt
sonst
zu Lable 1
Ist zwar mit der Maustaste, aber sollte eigentlich mit allen Tasten gehen
@Roy:
Ist mir sehr wol bewusst das dieses Plugin funktioniert, verwende es ja selbst xD
Ich würde dir ja ein Bild gerade schicken, wie ich es im Maker gemacht habe, dass die Taste nur 1. Mal geklickt werden kann,bin aber leider nicht an meinem PC und komme an den auch nicht dran. Kann dir aber morgen ein Screenshot mal zeigen.
Ist aber im Grund das Rennskript nur für Tasten xD
- Soul
PS:
@Devoli
Wenn man die Aktion dauerhaft macht, kann das unerwünscht sein, außerdem wird so der Dauerhafte-Zyklus nicht umgangen, sondern nur eine "Beenden"-Funktion bei Ende des Tastendrucks eingestellt.
goldenroy
15.01.2015, 16:51
@Roy:
Ist mir sehr wol bewusst das dieses Plugin funktioniert, verwende es ja selbst xD
Ich würde dir ja ein Bild gerade schicken, wie ich es im Maker gemacht habe, dass die Taste nur 1. Mal geklickt werden kann,bin aber leider nicht an meinem PC und komme an den auch nicht dran. Kann dir aber morgen ein Screenshot mal zeigen.
Ist aber im Grund das Rennskript nur für Tasten xD
Hm, dann bin ich ja mal gespannt. Vielleicht denk ich einfach nur mal wieder zu kompliziert °J°
Sry, konnte gestern auch nicht so richtig an den PC erst am Abend etwas, aber da hatte ich schopn vergessen, dass ich ein Skript ja zeigen wollte^^
Sry. hier auf jeden fall das Skript:
Das Skript besteht aus 2 CEs (bei mir, da es eine Maus ist, funktioniert aber bei allen Tasten)
Einmal das Klicken selbst und einmal ein Dauerprüfer.
http://s1.postimg.org/p9q3sitnj/Unbenannt.png
Das Skript für die Benutzung
http://s1.postimg.org/c6uh993fj/Unbenannt2.png
Der Dauerprüfer
Hoffe das Skript erklärt dir alles von selbst. Habe im nachhinein ein paar Fehler in den Erklärungen entdeckt, die ich aber nicht ausbessern wollte, da ich keine Zeit hatte. Hoffe das ist zu entschuldigen x3
- Soul
PS: Vllt gibt es ja noch andere Möglichkeiten, die aber wirklich das dauerhafte gedrücke umgehen, mir ist nur das heir eingefallen.
IndependentArt
19.01.2015, 16:51
Hallo,
ich suche jemanden, der eine kleine Korrektur an Kyuus DynPlugin RPGSS vornehmen könnte, zu finden hier: http://www.multimediaxis.de/threads/140584-DynRPG-RPGSS
Man kann damit ja per Kommentar Pictures mit Alpha-Kanal in den Maker laden. Das ganze hat nur (zumindest für mich) einen Haken, der diese Funktion nahezu unbrauchbar macht, und zwar dass diese Pictures immer über den normalen Maker-Pictures angezeigt werden. Ich bräuchte das quasi so, dass man ihnen z.B. IDs zuweisen kann, womit sie dann auf der Ebene von Picture-IDs angezeigt werden oder wie bei Kazenuis Text-Plugin zumindest mit der ID eines Pictures asoziiert werden(http://www.multimediaxis.de/threads/135210-DynRPG-Plugin-Text-Plugin).
Es ist wohl soweit ich weiß, wird Kyuu nicht an RPGSS weiterarbeiten, deswegen wär ich froh, wenn mir da jemand hier helfen könnte :) Ich bin mal so frei, mir einzubilden, dass es keine Jahre dauert, so eine Änderung umzusetzen.
hi indy
nach dem lesen deiner beschreibung habe ich das Gefühl das hier http://www.multimediaxis.de/threads/135965-DynRPG-Plugin-Blending-Mode sollte ausreichen? wobei ich aber vermute du kennst es... aber vielleicht ist es ja an dir vorbeigegangen ^^
mfg
Die Blendmodi ersetzen allerdings keine Alphakanäle - das sind zwei unterschiedliche paar Schuhe. Bei s/w-Bildern klappt das noch, aber wenn andere Farben dazukommen schon nicht mehr.
@IndependentArt:
Nicht sehr hilfreich, ich weiß, aber hast du Kyuu mal versucht anzuschreiben?
Die Blendmodi ersetzen allerdings keine Alphakanäle - das sind zwei unterschiedliche paar Schuhe. Bei s/w-Bildern klappt das noch, aber wenn andere Farben dazukommen schon nicht mehr.
Ach stimmt... :/ Kommt drauf an, was Indy genau machen will ^^; vielleicht hilfts ja trotzdem...
Etwas, dass MarcL schreibt kann ja per definition nicht MarcL-los sein. :hehe:
IndependentArt
20.01.2015, 13:31
@BDraw: Ja, ich hatte mit ihm bis vor einiger Zeit Email-Kontakt, weil er sich an DEEP 8 beteiligen wollte. Das macht er nun doch nicht, aber ich hab ihn halt noch angeschrieben wegen dieser hier angesprochenen Sache, ohne Antwort bisher. Vermutlich kommt die noch irgendwann ... aber ich bin immer ein ganz klein wenig ungeduldig :)
Ich will halt einfach Pictures mit Alphakanal anzeigen können, ganz einfach :D
@Corti: Anstatt Witzchen zu reißen, könntest du mir doch helfen :D
Oktorok3
31.01.2015, 20:47
Ich weiß nicht, in weit die Leute hier aktiv sind, die Pluginmäßig etwas können, aber versuchen tu ich es trotzdem mal, da meine Idee für ziemlich viele eine Nützliche wäre.
Ich bin mir jedenfalls sicher, dass das möglich wäre:
Es geht darum, den Char-Extended-Patch von Cherry als Plugin umzusetzen.
Die an den Plugins sehr nützliche Eigenart ist ja bekanntlich, dass diese jederzeit austauschbar, erweiterbar, dazu- und wegnehmbar sind, ohne die .exe-Datei des Spieles verändern zu müssen.
(Ich weiß, dass bugmenot den Patch auch für den 2k3 kompatibel gemacht hat, aber es geht ja um ein Plugin und deren Vorteile.)
Nunja.
Große Vorteile daran sehe ich auf jedenfall in Hinsicht auf Mapping:
-Ganze Häuser, Riesenbäume gigantische Objekte etc. können in einem Event ganz locker gesetzt und herumgeschoben werden, ohne das dabei ein großer Zeitaufwand entstände (natürlich auch Monster, Riesen, anderes Animiertes),
wodurch Mapping generell hundertmal schneller geht.
-Platz in ChipSets kann eingespart werden (der in 2k/2k3 bekanntlich sehr wertvoll ist).
Ich (und sicherlich auch viele Andere) würde mich sehr freuen, wenn sich dafür jemand fände, der das umsetzen will und kann!
IndependentArt
16.03.2015, 08:02
möchte mal den wunsch meines vorredners nochmal bekräftigen. hätte auch voll bock auf das ding, wie ich mich grad an ein neues chipset mache! :)
So viel zu tun, so wenig Zeit.
IndependentArt
16.03.2015, 18:18
kein mensch hat zeit, es geht darum sich die zeit zu nehmen :)
Abend, so bevor es ins Bett geht mal ne Frage:
Gibt es vllt ein Plugin oder kann sich jemand die Zeit dafür nehmen und eines erstellen, womit man Pictures spiegelverkehrt anzeigen lassen kann.
Beispiel:
Man hat ein Kampfsystem und will ein Typen mal als Spielbaren Char und einmal als Gegner benutzen und um die Picture nicht doppelt zu importieren, sondern nur Spiegelverkehrt anzeigen zu lassen, würde das ganze erleichtern und den Ordner nicht unötig zumüllen mMn.
Also schon mal danke im Voraus^^
-MrSerji
LorionHeat
21.09.2016, 15:22
( Ereignis Datenbank )
In meinem Projekt und im Rpg Maker fehlt eine Ereigniss Datenbank in der man selber gemachte oder schon fertige Ereignise zugreifen kann.
Im Rpg-Maker MV gibt es das ja schon mit Truhen, Türen oder Teleporter, aber das meine ich nicht. Eine große Datenbank wo man selber seine Ereignisse speicher kann.
Der Vorteil wäre das jedes Ereignis im Spiel sich verändern würde wenn man es verändert. Das würde das überarbeiten und Programieren viel einfacher machen.
Einsatz Bereich wäre zum beispiel: Zufällige truhen. Fallen, Npc wie Verkäufer, Gegenstände zum interagieren wie seile oder schalter,
Der einsatz Bereich wäre unendlich und eigendlich eine Grundfunktion.
Es gibt CommonEvents, dort packste Evetncode hin, der von überall aufgerufen werden soll. In Dark Sword zB haben wir für die ganzen Kampfsystemfunktionen eine Eventseite, die ruft ein CommonEvent auf, und in dem CommonEvent befindet sich alles. Keine Kopien, nur ein Ort an dem man etwas ändern müsste.
LorionHeat
21.09.2016, 16:51
Leider gibt es bei CommonEvents keine slb. Switches.
Die ich brauche für meine Ereignise.
Meine Events sollen immer Kopie,- past fertig sein :D.
Objektorientierung "light" gibts im 2k3 noch nicht. Wenn du sowas suchst, bist du beim 2k3 leider falsch. Die Möglichkeiten im 2k3 sind etwas inkonsistent. Durch DynRPG und Patches kann man superviel cooles Zeugs bauen und sich auch vieles einfacher und ergonomischer machen, aber diese Sachen sind alle nur reingehackt und es gibt immer wieder Dinge, bei denen man um die Einschränkungen des Makers nicht herum kommt.
MagicMaker
23.09.2016, 19:05
Falls mit "SLB" denn Self-Switches und nicht der sächsische Landesbauernverband gemeint ist:
Das kann man notfalls bei RPGMV auch irgendwie einprogrammieren, wenn die immer noch nicht
auf die Reihe gekriegt haben, das standardmäßig drin zu haben. Gibt's bestimmt auch schon von
irgendjemandem, weil's ne Sache ist, auf die man schnell und leicht kommt.
Ich hab nach langer Zeit mal wieder ne Frage ^^;
Gabs eigentlich ein DynRPG Plugin, dass es möglich macht, im Kampf die Schadensanimation der Helden auszulösen?
Beispielsweise wenn ich einem Monster einen Skill verpasse, der einen Switch auslöst, der wiederum im Kampf eine Eventkarte mit Monsterangriffsanimation auslöst, die den Helden (mit eigener Schadensformel) schadet.
Wenn dieser Schaden den Helden zugefügt wird, lässt sich das ja nur über ein Change Hero HP machen? Hat aber das Problem, dass die Helden keine Schadensanimation angezeigt bekommen...
Hat jemand schon für sein Projekt ein Plugin geschrieben mit dem ich z.B. beim Helden mit ID 3 mit @Simulated_Enemy_Attack_Hero 3 oder ähnlichem die Schadensanimation der Datenbank anzeigen lassen kann? Oder wäre jemand so wunderbar freundlich mir sowas zu basteln? ^^; Ich wäre sehr sehr dankbar...
PS: Arbeitet hier überhaupt noch jemand an 2k3 Projekten (RPGs) mit DynRPG? Ich hab das Gefühl im mom gibts im Atelier nur 4 solcher Projekte... Dark Sword, Elektra Kingdom,Deep 8 und meins... Bzw. gibt es im Atelier überhaupt noch RPG Maker 2k3 Ost-RPGs an denen noch regelmäßig gearbeitet wird?
Beim Plugin kann ich dir nicht helfen, leider :(
Was meinst du mit Ost-RPGs?
Also allgemein arbeite ich auch noch mit dem 2k3 und dem DynRPG, nur leider aus Zeitgründen gerade eher weniger :/
Beim Plugin kann ich dir nicht helfen, leider :(
Was meinst du mit Ost-RPGs?
Also allgemein arbeite ich auch noch mit dem 2k3 und dem DynRPG, nur leider aus Zeitgründen gerade eher weniger :/
Mit Ost RPG's mein ich japanisch angehauchte RPGs im Stil von FF6, Chrono Trigger, SoM usw., meist solche wo man die Welt rettet ^^ Naja ich hab wohl auch etwas übertrieben, immerhin hab ich in meinem Projektthread auch ewig nix gepostet, von anderen Projekte wo das auch so ist, würde ich im Moment wohl nicht viel mitbekommen ^^;
Gabs eigentlich ein DynRPG Plugin, dass es möglich macht, im Kampf die Schadensanimation der Helden auszulösen?
Beispielsweise wenn ich einem Monster einen Skill verpasse, der einen Switch auslöst, der wiederum im Kampf eine Eventkarte mit Monsterangriffsanimation auslöst, die den Helden (mit eigener Schadensformel) schadet.
Wenn dieser Schaden den Helden zugefügt wird, lässt sich das ja nur über ein Change Hero HP machen? Hat aber das Problem, dass die Helden keine Schadensanimation angezeigt bekommen...
Hat jemand schon für sein Projekt ein Plugin geschrieben mit dem ich z.B. beim Helden mit ID 3 mit @Simulated_Enemy_Attack_Hero 3 oder ähnlichem die Schadensanimation der Datenbank anzeigen lassen kann? Oder wäre jemand so wunderbar freundlich mir sowas zu basteln? ^^; Ich wäre sehr sehr dankbar...
Klingt schwierig, ich sehe da nichts in der API, dass genau diesen Fall auslöst. Ich hätte verschiedene Ideen, wie man die Wirkung simulieren könnte, aber nichts davon lässt sich mal eben in ein Plugin packen.
Der von dir gewählte Ansatz erlaubt die meiste Flexibilität wenn es denn so möglich wäre, aber wenn du mir sagst, was du wirklich machen willst mit der Funktion, evtl. hätte ich dann eine Idee für dich, wie man es anders lösen, oder vortäuschen könnte.
Klingt schwierig, ich sehe da nichts in der API, dass genau diesen Fall auslöst. Ich hätte verschiedene Ideen, wie man die Wirkung simulieren könnte, aber nichts davon lässt sich mal eben in ein Plugin packen.
Der von dir gewählte Ansatz erlaubt die meiste Flexibilität wenn es denn so möglich wäre, aber wenn du mir sagst, was du wirklich machen willst mit der Funktion, evtl. hätte ich dann eine Idee für dich, wie man es anders lösen, oder vortäuschen könnte.
Danke für die Hilfe Corti :) Ich hab mittlerweile ein Workaround gefunden ^^; Ich gebe den Helden jetzt eine Condition mit einer der raren, leeren Heldanimation und ich es klappt sogar ganz gut ^^° Obs bei mehreren Helden gleichzeitig klappt muss ich noch testen ^^;
Liebe Community! Ich hätte eine Frage an alle, die sich mit C++ und DynRPG beschäftigen bzw. beschäftigt haben:
Ist es möglich, denn BetterAEP-Patch (das ist der Patch, der es einem ermöglicht, einen eigenen Titlescreen mit allem drum und dran zu machen) für DynRPG so zu verändern, dass beim Übergang von Titlescreen zu Map1 NICHT ausgeblendet wird? Weder Bild noch Ton. Also quasi so, als würde man bei den Teleportübergängen von Map zu Map auf "No Transition" (was besser wäre) oder wenigstens auf "Instantaneous" schalten. Wenn ja: Wäre jemand der, im Gegensatz zu mir, die Skills dazu besitzt so lieb, das bitte zu machen? Bräuchte es für eine geplante Idee für mein Projekt beim 10-Words-Contest.
Edit: Cherry habe ich dahingehend bereits per PN gefragt, als mir die Idee dafür im Kopf herum gespuckt ist, er ist aber in letzter Zeit ja bekanntlich weniger hier, weshalb ich vorsichtshalber auch hier nachfrage.
LG Mike
Liebe Community! Ich hätte eine Frage an alle, die sich mit C++ und DynRPG beschäftigen bzw. beschäftigt haben:
Ist es möglich, denn BetterAEP-Patch (das ist der Patch, der es einem ermöglicht, einen eigenen Titlescreen mit allem drum und dran zu machen) für DynRPG so zu verändern, dass beim Übergang von Titlescreen zu Map1 NICHT ausgeblendet wird? Weder Bild noch Ton. Also quasi so, als würde man bei den Teleportübergängen von Map zu Map auf "No Transition" (was besser wäre) oder wenigstens auf "Instantaneous" schalten. Wenn ja: Wäre jemand der, im Gegensatz zu mir, die Skills dazu besitzt so lieb, das bitte zu machen? Bräuchte es für eine geplante Idee für mein Projekt beim 10-Words-Contest.LG Mike
Hmm... ich hab zwar schon ewig nicht mit dem Maker gearbeitet, aber ich glaube ich hab die Kombination DynRPG und BetterAEP auch in meinem Projekt. Du nimmst also den DynRPG Patch und nach Installation packst du den DynRPG angepassten BetterAep Patch (siehe Projekt) und packst in in den DynRPG Patches Ordner. Damit startet dann das Spiel direkt auf der Map, wo der Startpunkt festgelegt ist. Das kann z.B. dein selbstgestaltetes Startmenü sein. Was danach passiert, ist genau das was du scriptest. Wenn du auf der ersten Map also ne Textbox erstellst, die bei Choice 1 die Map wechselt und du willst keine Transition musst du sie vorher abschalten.
Ich hoffe ich konnte helfen und hab mich verständlich ausgedrückt xD
Ich verstehs nicht. Beim BetterAEP kommt man doch direkt auf die Map und es ist Sinn und Zweck, dass der Titelscreen gar nich gezeigt wird. Wieso interessiert dich der Übergang?
elvissteinjr
03.05.2018, 16:23
Leere schwarze Map als Start setzen und von dieser aus auf den richtigen Titelbildschirm übergehen? Wäre mein konventioneller Ansatz, hab ich selbst bei Stimme der Untoten 2 gemacht. Natürlich wird da etwas Zeit verschwendet, letztendlich ist das Spielfenster aber eh nicht sofort da, finde ich persönlich also verkraftbar.
Theoretisch kann man den Übergang natürlich entfernen. Ob mit DynRPG direkt, weiß ich nicht. Und meine Maker Assembler Kenntnisse sind auch eingerostet...
@MarcL, Corti und elvissteinjr: Danke für eure Antworten. Tut mir leid, wenn ich mich oben etwas undeutlich bzw. unklar ausgedrückt habe, ich versuche es noch einmal. Ich habe bei meinem Contest-Projekt bereits DynRPG und diverse Patches, etc. angewendet. Darunter auch den BetterAEP-Patch. Bislang funktioniert alles wunderbar und ohne Probleme. Es geht mir nun nicht um das ein- bzw. ausblenden der einzelnen Maps auf dem Titlescreen selbst, sondern um den Übergang beim Laden des Spiels. Sorry, das hätte ich erwähnen sollen. Ich will verhindern, dass der Spieler überhaupt "bemerkt", dass geladen wird. Natürlich weiß der Spieler, dass geladen wurde, da er ja "Spiel laden" gewählt hat, es soll nur wie ein Übergang ohne Schnitt aussehen.
Konkret:
Titelbild wird angezeigt > Spieler wählt "Spiel laden" > Schriften, Titel, etc. werden ausgeblendet; der Hintergrund bleibt jedoch da > Beim gespeicherten Spielstand ist der gleiche Hintergrund zu sehen, wie am Titelbild > Spieler wird ohne einen Übergang (Fade out, etc.) und ohne es zu bemerken in den Spielstand "teleportiert", da das Bild nicht schwarz geworden ist.
Beim normalen Teleport bei der Auswahl von "Neues Spiel" auf "Map1" ist es ja logisch, dass ich die Teleport-Übergänge verändern kann. Da passt das auch perfekt und man bemerkt den Übergang nicht, weil nicht ausgeblendet wird. Bei "Spiel laden" geht das jedoch nicht, weil eben ausgeblendet wird.
Ich hoffe, es ist jetzt verständlich. Daher meine ursprüngliche Frage, ob man den BetterAEP-Patch so verändern kann, dass nicht ausgeblendet wird. Ich selbst hab leider keine Ahnung von C++ und Konsorten.
LG Mike
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.