Archiv verlassen und diese Seite im Standarddesign anzeigen : Bei einem bestehenden Charakter den Battlechar wechseln (2k3)
Davy Jones
07.04.2014, 18:35
Ich will bei einem Mainchar den Battler wechseln, bin mir aber grad unschlüssig wie das ganze vonstatten gehen soll. Faceset, Charset, Name, alles kann ich abändern, nur der Battlechar bereitet mir Kopfzerbrechen.
Weiß da jemand Rat?
Quetschi
07.04.2014, 23:32
Kannst du nicht einfach den selben Char noch einmal erstellen nur halt mit anderem BattleChar und die 2 dann austauschen?
Davy Jones
08.04.2014, 01:29
Wäre doof, weil Abfragen für diesen Char schon überall im Code sind.
bugmenot
08.04.2014, 05:35
SetBattler
download SetBattler (http://share.cherrytree.at/showfile-13828/setbattler.rar)
Erlaubt es, die Kampfgrafiken (Animation2) der Helden während des Spielens zu ändern.
Gesteuert wird dies über Var[3331] und den <ChangeSprite> (Association) Eventbefehl. Der ausgewählte Held in diesem Eventbefehl ist das Ziel des Wechsels der Kampfgrafiken. Wurde eine neue Animation2 erfolgreich zugewiesen, dann wird das Sprite des Helden durch <ChangeSprite> nicht verändert.
Ändern der Kampfgrafiken mittels:
Var[3331] = Animation2_ID (database)
Var[3331] = -1 (auf default zurücksetzen)
Kein Ändern der Kampfgrafiken (<ChangeSprite> wird normal ausgeführt!) bei:
Var[3331] = 0
Var[3331] < -1
Var[3331] > Anzahl an Animation2 (database)
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
Nach dem Patchen lässt sich die Variable_ID in der RPG_RT.exe unter 0xB6302 (2k3) per HexEditor umstellen. Oder packt den Patch in den Ordner DynPatches und:
[QuickPatches]
SetBattlerVar=4B6F02,#3331
This allows to change the BattlerGraphic (Animation2) of the heroes while playing.
It's controlled with Var[3331] and the <ChangeSprite> (Association) event command. The selected hero in this event command is the one whose BattlerGraphic is changed. The sprite of the hero won't be changed by <ChangeSprite> when an Animation2 was assigned successfully,
Change BattlerGraphics by using:
Var[3331] = Animation2_ID (database)
Var[3331] = -1 (reset to default)
BattlerGraphics are not changed (<ChangeSprite> is executed as usual!) when:
Var[3331] = 0
Var[3331] < -1
Var[3331] > amount of Animation2 (database)
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
Upon patching you can change the Variable_ID in the RPG_RT.exe at 0xB6302 (2k3) by using a HexEditor. Or put this patch into your DynPatches folder and:
[QuickPatches]
SetBattlerVar=4B6F02,#3331
Irgendwie ist mein Code immernoch eine mittlere Katastrophe, und ich weiß nicht so recht, wie man die Actor_ID an RPG : : Actor übermitteln soll (get Ptr für Zuweisung von 'int battleGraphicId'):
#include <DynRPG/DynRPG.h>
using namespace std;
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 cmd = parsedData->command;
if(!cmd.compare("setBattler")) {
int hero;
int battler;
GetPrivateProfileString("setBattler", parsedData->parameters[0].type == RPG::PARAM_NUMBER);
hero = parsedData->parameters[0].number;
if (parsedData->parametersCount >= 1 && parsedData->parameters[1].type == RPG::PARAM_NUMBER)
battler = parsedData->parameters[1].number;
else battler = 0; //reset to default
//RPG::Actor [+12C] set battler ...
}
return true;
}
Ehh... es ist schon seltsam, wenn man weiß, welchen Input man alles braucht, einem die Grundlagen jedoch fehlen...
Innocentia
08.04.2014, 06:51
Das Problem hätte ich früher oder später bei meinem Projekt auch gehabt, also von meiner Seite aus VIELEN DANK! :) Eine Sorge weniger!
- Das Inno -
Der 2k3 hat dafür etwas, dass sich "Classes" nennt.
DynRPG hat RPG::Actor::battleGraphicId, ob das tut was es verspricht habe ich bisher nicht getestet.
@bugmenot:
int partyId = 0;
int databaseId = 1;
// Actor aus der aktuellen Party
RPG::Actor *actPtrP = RPG::Actor::partyMember(partyId);
// Actor aus der Datenbank
RPG::Actor *actPtrDb = RPG::actors[databaseId];
// Wert setzen
actPtrDb->battleGraphicId = 0;
// Kurzform Datenbank
RPG::actors[databaseId]->battleGraphicId = 0;
Davy Jones
09.04.2014, 20:09
@Corti: Funktioniert auf den ersten Blick tadellos =)
@bugmenot: Auf deine Methode werde ich zurückkommen, wenn mit Classes was nicht koscher ist.
Danke euch beiden =)
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.