BUGMENOT'S PROFILE

Search

Filter

[RM2K3] Big List of Plugins/IPS (Sticky This Please)

author=bulmabriefs144
Can you explain some of the stuff that I couldn't read?
No.


I could pack all those bugfixes (including QuickPatches you didn't list) into one file (since the official 2k3 version still got about three dozen things wrong in the code, too) to simplify things.


Some of that stuff is fairly ancient and would need a (working) overhaul. Most can be made obsolete when DynRPG gets updated or whatever-the-heck-functionality is added into the RPG Maker editor in a less awkward way (pointer patches utilize variables, albeit making you use 2 event commands instead of just 1).
edit:
I meant how this " 50'000 + Var_ID " would have been better to be moved into a <ShowPicture> "Number by Variable ID [...]" clickety thing to have it more direct and obvious without having to consult a readme.

@comments could get rid of pointer patches anyway (why yes, I'd have to bother with a source update some time to call event commands).


1kPicPatch
Don't bother listing it.

2k3DirectItemEquipMenu, 2k3DirectItemEquipSkillMenu
Already covered by the DirectMenuPatch thingy.
Makes me think about those SemiDirect[xyz]Menu QuickPatches. ...and the other few hundred QuickPatches.

BattleAniPointer
You got that listed already under BattleAnimationPointer.

KillSwitch
There's an english readme where one of you found it.

Item(HPA)Fix
Something about fixing a problem when that normal_skill_window_duration stuff was applied, but can't be removed from the Patch folder (because reasons).

MapInMenu?
... exactly what it says. The Map as the menu background.
Hopefully that's the fix I posted (at the end of the post), because Cherry forgot not to draw the map in battle and crash the game.

[RM2K3] Big List of Plugins/IPS (Sticky This Please)

That AntiLagSwitch-thing is the predecessor of AntiLag. They do the same thing, but you should not use them both. Go with AntiLag and ignore the other one. There's no .ini stuff at all.

author=bulmabriefs144
32Bit(2k3) (I can't read german, no idea. Maybe it's a fix for 32 bit resolution or something)
No, just a Patch that had a problem fixed. It works on its own, shove it into DynPatches or apply it.

author=RedAkerston
First thing onmind right now is the first item on the list.. haha .. 32 bit fix for 2k3?
The default color palette has 16 bit-sized entries. This changes it.
It's basically the difference between this

and this


Also tell the people you got your plugins from:
If they've put anything in that utilizes RPG::Image or does anything with an image's width/height/alpha/coloreffect, that they should swap some files in ..\CodeBlocks\MinGW for a moment
dyn_32bit_images.rar
and to recompile the plugin for a 32bit compatible version.
(Which won't work for 16bit anymore, 'cause RPG::Image's got a slightly different structure. I haven't thought about a solution, to not swap/unswap the files all the time, yet.)

[RM2K3] Database corrupted

If you've got shadow copies enabled, you could try to revert to an earlier version of your game's project folder.

Also, make backups (of stuff you are working on) more frequently.
Too bad that RM2k(3) doesn't make .bak backups of the .lmt and .ldb files automatically.
Curiously this only happens sometimes when the computer crashes.

author=riderx40
the database file seems to be 247 kb in size for some reason.
So is there any hope to fix this problem?
Nope. All those bytes have most likely been overwritten with zeroes (opening the .ldb file in notepad++ will show a bunch of nul / null / nil if that's the case).

[RM2K3] Hero Moving During Message

Props to the two replies above that missed the point (one somewhat, one completely).


The ghetto solution would be having another parallel process on the same map (or common event) which runs the <Key Input Processing> commnand (no checkmark in "wait for input") (input for the 4 directional keys) (use something else than variable [0001] if you want) and on the left side of that event's editor set a Switch to allow the following to run only while the text is displayed:

<>Key Input Processing: [0001]
<>Conditional Branch: Variable [0001] == 1
<>Set Move Route: Player, Move Down
<>
Branch End
<>Conditional Branch: Variable [0001] == 2
<>Set Move Route: Player, Move Left
<>
Branch End
<>Conditional Branch: Variable [0001] == 3
<>Set Move Route: Player, Move Right
<>
Branch End
<>Conditional Branch: Variable [0001] == 4
<>Set Move Route: Player, Move Up
<>
Branch End
<>
And some 0.0 waits at the end, of which I don't remember how many it takes to move an event by a block with regards to the event's move speed (to prevent the move route to clutter up with too much movement).
And the event that opens the text window needs to have that "Allow events to continue..." enabled and turn the Switch (mentioned above) ON beforehand and turn it OFF after the text window is done.


Since I'm not having any of that ghetto nonsense, here's my solution:
download AllowPlayerMoveInMsg
edit:
Also, don't be like that one guy that patched his rpg maker editor. Read the readme. Or just shove the v1.08 file into the folder DynPatches if you are using DynRPG.


If you don't want the player to move: set the Hero/Player to <wait> in a <Move Event> on "repeat action" before the text window is displayed. After the text, just have an empty <Move Event> for the Hero/Player to reset the move route.

Assuming the [RM2K3] tag is correct and me not caring what version you are sporting (v1.08 comes with DynRPG)...
I would have preferred it if a proper modloader existed for v1.10+ already. But whatever.


But remember: there might be a reason why some games don't have the player move around during a text display.

+++ DynRPG - The RM2k3 Plugin SDK +++

author=Corti
RPG::getSelectedMonsterIndex()
Yeah, it would be better to use this. Does the exact same thing even.
... now how do I open / extract .a files / libraries? (on Windows, 7 or 8-ish)


@front row
Try this:
download forceFrontRow


#include <DynRPG/DynRPG.h>

bool __cdecl onStartup (char *pluginName)
{
//keeps x-Pos offset in front row
*reinterpret_cast<unsigned short *>(0x4BBDF2) = 0xE990;
*reinterpret_cast<unsigned short *>(0x4B49C6) = 0x9090;
*reinterpret_cast<unsigned short *>(0x4B4C6C) = 0x9090;
return true;
}

void __cdecl onFrame (RPG::Scene scene)
{
if (scene == RPG::SCENE_BATTLE)
{
for (int i = 0; i < RPG::inventory->party.size; i = i++)
{ RPG::actors[(i)+1]->setRow(RPG::ROW_FRONT); }
}
}

+++ DynRPG - The RM2k3 Plugin SDK +++

author=AubreyTheBard
DynBattleDisplay
... decent, I think.

Also, you can't really use

int getSelectedMonster() {
if (RPG::battleData->winMonTarget->choiceActive) {
return RPG::battleData->winMonTarget->currentChoice;
} else return -1;
}
It works for Heroes but not for Monsters since it only returns the selected choice in the window. The target window for monsters removes invalid entries (dead/escaped/invisible).
You kill off choice#1 / monster#1
Now monster#2 is at choice#1
If you select choice#1, your plugin tries to draw the HUD on monster#1 (which is dead, hence nothing is shown)
If you select choice#2, your plugin shows the HUD on monster#2 (but monster#3 is actually selected)


Instead, try
int getSelectedMonster() { 
if (RPG::battleData->winMonTarget->choiceActive) {
int monPartySlot;
asm volatile("call *%%esi"
: "=a" (monPartySlot)
: "S" (0x4953E4), "a" (RPG::battleData->winMonTarget)
: "cc", "memory");
return (monPartySlot +1);
//calls getMonTarget()
//Built-in RM2k3 function that returns the enemy's partySlot (0..7) selected by the cursor in target window

//monPartySlot +1 is the enemy's ID in the monster group (it includes dead/escaped/invisible enemies) not in the target menu
//works for all battle layouts (Gauge layout has the target window open off-screen)
} else return -1;
}

+++ DynRPG - The RM2k3 Plugin SDK +++

B)
That thing I mentioned a page ago?
[QuickPatches]
MP-Window(y)=4C8CDA,40010000,4C8D42,40010000

As for A)
RPG::Window *winMP;
winMP = (RPG::Window*)( reinterpret_cast<int *> (RPG::battleData->winSkill) )[36];

edit:
...
Does anyone happen to know any way to read a file header?
Nevermind. Although, I am curious about that.

+++ DynRPG - The RM2k3 Plugin SDK +++

I may have forgotten to add the addresses / quickpatches to the VisuMenu readme, since they are using some stuff from the InfoDisloc.ips:
[QuickPatches]
VM:ItemMenu(Width, battle)=4C88C0,#320
VM:ItemMenu(Height, battle)=4C88C5,#80
VM:ItemMenu(y, battle)=4C88CC,#64

Or default stuff (without using either InfoDisloc.ips or VisuMenu.ips) for whatever reason:
[QuickPatches]
ItemMenu(Width, field)=4C8870,#320
ItemMenu(Height, field)=4C8876,#208
ItemMenu(y, field)=4C887D,#32

ItemMenu(Width, battle, large)=4C88C6,#320
ItemMenu(Height, battle, large)=4C88CB,%80
ItemMenu(Width, battle, small)=4C88DC,#320
ItemMenu(Height, battle, small)=4C88E1,%68
ItemMenu(y, battle, trad/alt)=4C88A0,#160
ItemMenu(y, battle, gauge)=4C88B3,#64

SkillMenu(Width, field)=4C8DCE,#320
SkillMenu(Height, field)=4C8DD3,#176
SkillMenu(y, field)=4C8DDA,#64

SkillMenu(Width, battle, large)=4C902C,#320
SkillMenu(Height, battle, large)=4C9031,%80
SkillMenu(Width, battle, small)=4C9042,#320
SkillMenu(Height, battle, small)=4C9047,%68
SkillMenu(y, battle, trad/alt)=4C9006,#160
SkillMenu(y, battle, gauge)=4C9019,#64

And these should work in either case (changes the MP-Window in the traditional battle layout):
[QuickPatches]
MP-Window(Width, large)=4C8CD4,%60
MP-Window(Height, larged)=4C8CD6,%32
MP-Window(y, large)=4C8CDA,#136
MP-Window(x, large)=4C8CDF,#260
MP-Window(Width, small)=4C8D3C,%60
MP-Window(Height, small)=4C8D3E,%20
MP-Window(y, small)=4C8D42,#154
MP-Window(x, small)=4C8D47,#260
(fun fact: the MP-Window is initialized in the field menu in the traditional layout as well, but not drawn / updated)

Or enable the MP-Window in the other layouts as well:
[QuickPatches]
ForceMP-Window=4C8CAF,EB04,4C94A1,9090

# is an 8-digit number (e.g. #320 is 40010000 in hex) and % is a 2-digit number that only goes from -128 to +127 (e.g. %68 is 44 in hex). The # / % stuff is broken (for now) so put up with that little-endian garbage if you don't want to get your players or yourself be pissed off just because my stuff is broken by definition.

+++ DynRPG - The RM2k3 Plugin SDK +++

author=bulmabriefs144
That kinda scrunches everyone in a line to the left.
... what?

Are you using the 'loose formation'?
[QuickPatches]
LooseFormationInc=47FAE7,803E0000
TightFormationInc=47FAF1,C05D0000
HexConverter
Put decimal into the right box next to "(big-endian)". Copy left box next to "(little-endian)" and put it instead of the blue digits.

... I could've sworn the # thing worked before Windows updated an hour ago. And the problem is not even tied to the dynloader.dll version or something.

+++ DynRPG - The RM2k3 Plugin SDK +++

Or fiddle around with RPG::terrains[ID]->gridInclination

author=raonak
Hello, is there any way to change the position of heroes in battle?
Anyhow, download dyn.20 if someone is gonna submit a plugin or not.

You can also try to reverse the angle of inclination. Apply the dyn.20 patch, open the DynRPG.ini and add the following below [QuickPatches]:
RevInc=47FB33,44,47FB72,44,47FBA3,44,47FBE4,44,47FB4B,00,47FB8A,00,47FBBB,00,47FBFC,E0
The blue numbers are a change of the x coordinate towards the left. 8 bit hexadecimal values. 00 -> 7F is 0 -> 127 and 80 -> FF is -128 -> -1
First blue one is for back attack, 2nd = surround (left flank), 3rd = surround (right flank), 4th = normal/initiative.

edit:
This doesn't apply to autoplaced enemies.