Joa, das ist leider sowieso buggy, wird in Zukunft wohl entfernt oder zumindest verbessert. Irgendwo hier im Thread fliegt ein Patch-Patch rum der das wieder wegpatcht. :)
Druckbare Version
Joa, das ist leider sowieso buggy, wird in Zukunft wohl entfernt oder zumindest verbessert. Irgendwo hier im Thread fliegt ein Patch-Patch rum der das wieder wegpatcht. :)
Hatte einen Fehler in dem getMenuScreen-Code den ich hier gepostet hatte, der richtige Code ist:
Code:int getMenuScreen() {
return (**reinterpret_cast<char ***>(0x4CDC60))[12];
}
Und noch ein Beitrag :P
Ich hab festgestellt, dass Pictures mit der ID 1001 und höher (sie sollen ja nach dem Mapwechsel angezeigt bleiben) auch angezeigt werden nachdem man zum Titlescreen per Spiel verlassen oder F12 geht und dann auf neues Spiel geht. Lässt sich das nicht anders vereinbaren falls sie beim Mapwechsel erhalten bleiben sollen?
Known Bug... Man könnte natürlich ein Plugin als Bugfix machen was einfach bei onInitTitleScreen sowas wie for(int i = 1001; i <= 2000; i++) RPG::pictures[i].erase(); macht.
Wenn ich das könnte, würde ich es natürlich selbst machen ^^´
Wird der Bug in der nächsten Version von DynRPG behoben?
Wenn die mal kommt: Ja.
Ich meine irgendjemand hat bereits von den Transparenzbug mit Charsets berichtet. Als ich es ausprobierte waren die Transparenzen recht unmerkbar und auf Transparent eingestellte Events waren völlig sichtbar. Daher wollte ich mal wissen, ob bereits Lösungsansätze hierzu bestehen.
Achja, und natürlich pushe ich diesen Thread mal etwas.
Das möchte ich an dieser Stelle auch einfach nochmal fragen. Sorry falls das Problem mittlerweile behoben sein sollte, aber das werde ich dann wohl nicht mitbekommen haben.
Und eine weitere Frage noch:
Kann ich irgendwie das battle command window (oder wie das heißen mag), wo ich eine Auswahl treffe zwischen Angriff, Abwehr usw., versetzen, z.B. in die untere rechte Ecke des Bildschirms? Es verdeckt scheußlicherweise dauernd die Gegner und den an ihnen angerichteten Schaden, was für den Spieler ein wenig unkomfortabel ist.
Wäre dankbar über Hilfe :)
http://www.multimediaxis.de/threads/...=1#post3030978
Funktioniert wunderbar =)
Hab ein Problem mit "RPG::map->events".
Ich kriegs nicht gebacken auf ein Event zuzugreifen.
Kurioserweise bekomme ich nach z.B.Code:
RPG::Event *ev = RPG::map->events[0];
RPG::Event *ev2 = RPG::map->events.get(0);
if(ev->doesEventPageExist(0)) // Speicherzugriffsfehler hier
{
CortiHelper::ShowInfoBox("Event Page Exists","hahaha");
}
RPG::Event *ev3 = new RPG::Event();
für ev3-> allemöglichen Member und Methoden im Intellisense. Die oben genannten machen zwar keinen Compilerfehler, aber Intellisense tut nichts.
Das hier:
Gibt Zahlen wie 12343242343254 um den Dreh. Erinnert mich an RPG::monsters, da gab es das Problem ja auch.Code:int i = RPG::map->events.count();
CortiHelper::ShowInfoBox(i,"hahaha");
In diesem Falle gibts für das was ich vorhabe leider kein einfaches Workaround ohne die Liste.
Zwei Posts über dir steht die Lösung (ich Depp hab zwei Member in RPG::DList vertauscht, nämlich "items" und "count" - erklärt alles, ne?).
Übrigens wird events[0] immer fehlschlagen, weil du als Index die Event ID nehmen musst und Event 0 gibts nicht. Willst du über alle Events iterieren, kannst du über events.ptr->list die zugrundeliegende RPG::DList (eigentlich DListPtr) erreichen, deren Indizes normal 0, 1, 2, 3... sind und nicht die Event IDs.
Erklärung: events ist vom Typ NamedCatalogPtr. Das ist eigentlich nur eine Hilfsklasse die NamedCatalog* ersetzt um die Zugriffe zu vereinfachen, also damit events[1] geht und nicht (*events)[1] notwendig ist. event.ptr erreicht den eigentlichen NamedCatalog*, und da NamedCatalog von Catalog erbt, ist der Member "list" dort verfügbar, welcher vom Typ DListPtr ist (was wiederum eine Hilfsklasse ist die DList* ersetzt). Der Maker kennt da leider so viel verschiedene Klassen (DList, Catalog, NamedCatalog) dass der Zugriff ohne die Hilfsklassen wie DListPtr, CatalogPtr und NamedCatalogPtr sehr beschwerlich wäre.
doesEventPageExist(0) ist auch nicht sinnvoll, weil die Event Page IDs ja im Maker bei 1 anfangen.
Okey. Hab gemerkt, dass ich zwei Versionen der DynRPG Dateien rumliegen hab und hab immer in den falschen rumeditiert.
Nach dem ich nun die richtigen erwischt habe funktioniert die Countmethode, hurray ^.^
Was die Events angeht, da bekomme ich weiterhin Speicherzugriffsfehler. Hab die DList Änderung wie beschrieben durchgeführt.
Hm, wie greifst du jetzt drauf zu? Wie gesagt, Index 0 wird nie gehen.
Mit 'ner eins ;-)
Code:RPG::Event *ev = RPG::map->events[1];
if(ev->doesEventPageExist(1))
{
CortiHelper::ShowInfoBox(1,"Event Page Exists");
}
Zitat:
Access violation in module "CortiSysRTP2k13,dll" in with address 68702079 and offset 00000004 of type Read occurred.
Schick mir doch einfach mal die DLL, dann kann ich sehen was an Adresse 68702079 ist.
Ich hab ein kleines Problem, arbeite seit ein paar Tagen mit dem DynRPG und nun wollte ich ein kleines Plugin schreiben!
Der Held soll bei jedem "normalen" Angriff und Abwehr-Befehl eine kleine Menge seiner MP wiederherstellen (Ich weiß das würde wahrscheinlich auch ohne DynRPG gehen, aber egal...^^)!
Der Abwehr-Befehl regeneriert auch die MP, aber leider der "normale" Angriff nicht... :>!
Hab erst gedacht es läge vll an der onDoBattlerAction-Methode, aber auch mit der onBattlerActionDone-Methode funktioniert es nicht >,>.
Hier ist mal der Code:
Code:bool onDoBattlerAction ( RPG::Battler * battler) {
// MP Aufladen bei einem Angriff
if (battler->action->basicActionId == RPG::BA_ATTACK ) {
battler->mp += 10;
}
// MP Aufladen bei Abwehr
if (battler->action->basicActionId == RPG::BA_DEFEND) {
battler->mp += 10;
}
return true;
}
Erstmal:
Sowohl onBattlerAction als auch onBattlerActionDone werden pro Charakter mehrfach in Folge ausgelöst. Wenn du eine Handlung genau ein mal abfragen willst, dann solltest du dies in onBattlerActionDone mit success == true machen.
Ob BA_ATTACK bei mir funktioniert kann ich derzeit nicht testen, da musste dich gedulden ;-)Code:bool onBattlerActionDone (RPG::Battler *battler, bool success)
{
if(success && !battler->isMonster() ) // Bei Helden, nur das eine mal nach dem die Handlung wirklich ausgeführt wurde
{
if(battler->action->kind == RPG::AK_BASIC &&
(battler->action->basicActionId == RPG::BA_ATTACK ||
battler->action->basicActionId == RPG::BA_DEFEND))
{
battler->mp = battler->mp + 10;
}
}
return true;
}
@Corti: onDoBattlerAction sollte eigentlich nicht mehrfach ausgeführt werden... Bist du sicher? Das hat nämlich auch keinen success-Parameter.