+++ DYNRPG - THE RM2K3 PLUGIN SDK +++

Posts

Jesus, Ghost. I have 18 pages, and I figured that was a little heavy, since some of those pages have like 30 or 40 common events. But I wouldn't know how to even do that. It might be around the same stuff, and I have it common evented out, but I dunno.

I do have a switch ability similar to what you are talking about. One of my characters has a tide power, that toggles on and off. If it's on, it hits friend and foe alike. I think I did fix it, but I'm not sure how.


author=bulmabriefs144
Jesus, Ghost.



what can I say... i like to go big bwahhaah

seriously i do mostly call common event because as we all know, battle event selection is limited and besides i wouldn't be able to call pictures in battle if i didn't, most of my event pages are really just for editing some monster behavior so they don't just attack randomly, and in small part to do limits for my guys;
the whole skill unlock/orbs/field thing is now run by just 6 pages (1 for each "colors" in which magic is parted in my game's universe), before RSP+ was released i needed to have like 60+ pages just for this because skills couldn't do their effect and still activate a switch so i had to check for every character in the game which command did he use and... well you can immagine what a mess it was.

back to the original problem, i noticed that with pepsi atb plugin, even if the battle is set on wait, monsters will still plan their move even when i'm chosing what to do, so let's say i chose to use a spell, as soon as i'm done my spell start together with the monster's spell and... boooooom
that's probably a bug into pepsi's plugin in part, but it's also like if for some odd reason RM somehow kind of "destroyes" every other DB entry except the spell/item that has been used, that's why i get the "reference to skill/item that doesn't exist" crash error... i know it's absurd but it's the only way i know how to explain it
You know you can have a Turns Elapsed x1 page that checks for when characters use commands to save on some space, aye? Granted, it doesn't work for EVERYTHING and is mostly intended for things that aren't required immediately like a Steal or Scan command, but it saves a lot of space.
Urgh, don't talk him into MORE pages. Oh, yea. I have one of those pages myself.

Mine is super long, because I have like 12 characters, but it all goes on the same page. The other thing is, because this is all part of the same page, you have less of a chance of code tripping over each other (the more battle events you have running on different pages, the more chance there is of this stuff).
>Bulma thinks his is long because he has 12 characters
>I had to do it for like 30-40 characters and is split into two Turns Elapsed x1 events for ease of access and changing.

Bulma, please don't remind me. T-T
lol i didn't want this to turn into a "my game is more messed up than yours challenge" but i'm glad to know i'm not alone out there :33

however the main reasons i have separate pages instead of one long page is because there are 30+ heroes including "Troops" (nameless generic soldier who join you in some moments of the game) which are parted in 6 colors/elements (kinda like Chrono Cross for how many remember it) an field change must happen in real time because you might find yourself with two "red" guys in the field, and you may want to use a low fire skill with the first to unlock a more powerful skill for the second... it's very tactical actually, it came up pretty good, i'll post a video when i have more material, the only problem now is with this turns overlapping and enemies that don't really wait even if the atb is set on wait, but i just found out that i was using an older version of battle_overhaul so i just updated it and i'll see what happens
author=Xenomic
>Bulma thinks his is long because he has 12 characters
>I had to do it for like 30-40 characters and is split into two Turns Elapsed x1 events for ease of access and changing.

Bulma, please don't remind me. T-T


lol i didn't want this to turn into a "my game is more messed up than yours challenge" but i'm glad to know i'm not alone out there :33


True that. But I have roughly twenty or so common events (not just battle events, but party change, limit breaks, status change stuff, and events where I had monsters using random targeting. I have two Turn 1x events too (one for attacks and limits, one for freestanding common events and special attacks). So I win. ^_^

That sounds annoying to program.
Say, was there a plugin that allowed the player to toggle on/off menu options? For instance, say that in this dungeon I don't want the player to be able to use the Item command in/out of battle (but once they leave, it would be normal). Is there a plugin for that??

As I have it right now, I have to make my Disable common event have a second option so that while in the dungeon, if a variable is 1, it'll do Disable but NOT give Items back (but only in battle. Out of battle, Items can still be used which breaks what I want to do with this dungeon) and if that variable is not 1, then it just does Disable's coding normally (i.e. if a character has Disable, they lose access to all of their commands except Defend/Row/Escape).

I'm also wondering if that same plugin, if it exists, can be used to toggle on/off other commands during battle too (like...gray them out or something so they're unusable? That way, I don't have to have a common event checking every turn and whatnot for the specific order of commands to put back and whatnot)?
I don't know of any plugin that can change menu options. I also don't know how that could be done since DynRPG does not give access to that settings yet, as far as i know.

The battle commands can be changed in DynRPG.
Wow, it's been dead here lately o.o

So I'm pretty sure this was asked here at some point (probably by me), but is it possible to make it so that MP costs of skills can be increased/decreased (say like, Half MP Cost, One MP Cost, No MP Cost, Double MP Cost, etc)? Likewise, is there any way to make Evasion more viable? I know there's Increased Evasion for equipment but...is there any other way to make it more viable/interesting through DynRPG??

I'm sure there's plenty other things I can think of for this but...yeah. I'll stop with that one for now. Unless you guys want a huge list of things to see if it's possible or not, or if it'd be interesting to try. ^^;
The MP cost of a skill is an attribute available to mess with in DynRPG, so in theory, yes, you could do whatever you want to MP cost. The tricky part would be changing the MP cost of skills specifically for just one battler when their turn comes up, as I imagine you'd want to do this based on status conditions or equipment or whatnot. It might be doable by looking at the ATB values at the end of each battler's turn, predicting which battler will be having a turn next, and modifying MP costs according to that battler. That might not play nice with other plugins that alter how the ATB system works, though, and I can imagine other difficulties like status conditions such as Paralyze messing with the prediction. I've already got a plugin idea I'm currently working on, so I'm not going to take on such a project myself right now.

The Increased Evasion thing sounds even more difficult offhand, there's not much you can do to mess with RM2K3's internal combat calculations using DynRPG.
author=AubreyTheBard
The MP cost of a skill is an attribute available to mess with in DynRPG, so in theory, yes, you could do whatever you want to MP cost. The tricky part would be changing the MP cost of skills specifically for just one battler when their turn comes up, as I imagine you'd want to do this based on status conditions or equipment or whatnot. It might be doable by looking at the ATB values at the end of each battler's turn, predicting which battler will be having a turn next, and modifying MP costs according to that battler. That might not play nice with other plugins that alter how the ATB system works, though, and I can imagine other difficulties like status conditions such as Paralyze messing with the prediction. I've already got a plugin idea I'm currently working on, so I'm not going to take on such a project myself right now.

The Increased Evasion thing sounds even more difficult offhand, there's not much you can do to mess with RM2K3's internal combat calculations using DynRPG.


You could try something like what I'm doing in my game where if you have a certain condition, you spend a normal amount of MP on a skill as usual when you use it but right afterwards, you also get a "refund" of a certain % of the MP used.
(I didn't search through all 62 pages in this massive topic..~~ So apologies if this has been answered. XD)

Did Cherry ever come up with a solution that fixed the Event Transparency issues that came with the Hyper Patch Archive? It's a small issue... But essentially, for every Event set to the layer of "Same As Hero", the transparencies are somehow overwritten or nullified.
I.e., it results in something like this:



Before I implemented the patches, the water tiles, etc. displayed correctly;


Was this something that impacted DynRPG from the beginning? I held off on using the Rm2k3 patches until very recently, so I wasn't sure. Regrettably, I used those water tiles (and other transparent events) in 200+ maps, so it's obnoxious and tiresome to go back and change the settings for every single event. If someone has a quick-fix for it, please do share~!
author=Blindmind
(I didn't search through all 62 pages in this massive topic..~~ So apologies if this has been answered. XD)

Did Cherry ever come up with a solution that fixed the Event Transparency issues that came with the Hyper Patch Archive?


I had the same exact problem. I believe I fixed it by deleting my RPG_RT.exe file, inserted a brand new one into my game folder, re-patched with DYN 3.0, re-added all of my DYN plugins, and basically found an .ips for the .hpa file that originally caused the issue.... I THINK that worked for me. I didn't have a bunch of same as hero layer transparent objects though.

Worth a shot if your game isn't patched with a shit ton of plugins.
Message me with the details of what exactly you hyper patched your game with.
I probably have a .ips file for all of your patches that need to be added to the game via hyper patcher. I'll explain what to do and what-not.


**EDIT
Actually, the first thing you should probably do, is move your current RPG_RT.exe to nother folder, insert a brand new RPG_RT.exe into your game, and see if that fixes the transparency problem. If it does, message me.
I would like to request a callback "onMoveCommand" which is invoked when any movement command of a move route is executed. (not when the MoveCommand event is executed but a MoveRouteItem of a MoveRoute)

I could also write the hook for this callback on my own, but the address of the "execute move route" function would be super useful. Maybe @PepsiOtaku or @Corti have an idea?

I need this for unit tests in EasyRPG (comparing RPG_RT behaviour with Player). Useful to automatically find bugs and regressions.
@Ghabry: I have this list of function addresses that I got from bugmenot some months ago when we were adding functions, but it doesn't detail their parameters or anything. I would look through the list, request a function, and he'd send me the assembly commands. Then I would add them to the source and modify them if needed (changing some address references to "this", etc). We didn't get very far into trying to add callbacks. Bugmenot sent me some code that could have potentially been used to add callbacks, but it sounded more like he was still experimenting, so I didn't add any of it to the source.

http://share.cherrytree.at/showfile-20720/_functions.txt

It might be one of these:
45D98C(2k)|478A9C(2k3) <>MoveRoute
45DA7C(2k)|478B8C(2k3) <>GetMoveCommand
45DAB0(2k)|478BC0(2k3) <>
45DAE4(2k)|478BF4(2k3) <>
45DBAC(2k)|478CBC(2k3) <>
45DC2C(2k)|478D3C(2k3) <>
45DC70(2k)|478D80(2k3) <>
45DCC0(2k)|478DD0(2k3) <>
45DD08(2k)|478E18(2k3) <>
45DD5C(2k)|478E6C(2k3) <>AddToMoveList
45DD68(2k)|478E78(2k3) <>GetMoveRouteSize
45DD70(2k)|478E80(2k3) <>
45DD84(2k)|478E94(2k3) <>CreateMoveRoute
45DE1C(2k)|478F40(2k3) <>
45DEBC(2k)|478FE0(2k3) <>
45DED0(2k)|478FF4(2k3) <>
45DEEC(2k)|479010(2k3) <>InitializeMoveEvent
45DF4C(2k)|479070(2k3) <>
...
488C64(2k)|4AFBF0(2k3) <>MoveEvent (Event Command?)
...
48FD84(2k)|4C43EC(2k3) <>RelayMoveEvent (Map related?)
48FDF4(2k)|4C445C(2k3) <>EndMoveEvent (Map related?)

Speaking of function addresses, is it possible to prevent the game from calling game over screen when heroes are dead?

My game is made so that we can have a team with dead heroes (that we can heal afterwards).

Do you know a way to do so with a DynPlugin or a Quickpatch?

In the file you gave, PepsiOtaku, I see terms like "GameOverScene", "ResetGameOver", "OpenGameOver", "GameOverMainLoop", "CallGameOver", "CheckGameOver", but not sure what is the difference.
You don't need anything DynRPG related. Go into "Database > Battle Layout" and down at the bottom you should see "Random Encounter Death Handler" and set it to "Call Common Event" and then do all of your stuff in there.
Thanks @PepsiOtaku, patching the call instruction at 0x4C51A4 works for me.

It logs nonsense for "Movement Type -> Custom pattern" but I don't need this, so is perfect for my purposes.

Code

I never wrote gcc asm before, I guess the way I set up the register calling convention (to invoke the hooked function) can be simplified.


Edit:
Also returns garbage when the move route contains a "non-move" command like Switch On/Off or "Disable collision"... well, still better then nothing ;)