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

Posts

@Bulma: Yeah, dunno how good KazString would be for me to use when there's 50 some characters total that I'd have to deal with. Ehehehe....^^;;


So, here's some things I'm wondering if they're doable or not in DynRPG. Be warned, this is a big post and will all be based on FF as most of my posts in this thread tend to be!


Statuses:

Quick: Allows the user to get 2 turns in the same turn. I THINK I saw this around here at some point, but not sure as it's probably buried by this point (we need a Master Thread for everything that gets released I feel...).

Bubble: Doubles Max HP while active. I tried to do this via eventing but it doesn't work out very nicely at all. I never tried with Double Max MP (both appear in FFX at first).

Auto-Life: This CAN be done via eventing as that's what I do, but I'm wondering if DynRPG can't handle this easier and with less coding? Although I still don't think it'll prevent Game Overs if everyone dies despite having Auto-Life. This also extends to accessories that would give Auto-Life too (they wouldn't give infinite Auto-Life though, don't want another Chantage from FFT!).

Reverse: Anything that damages now heals and anything that heals now damages while status is up. It COULD be done via eventing, but that'd be a looooooot of eventing to make it work properly (and it wouldn't work on regular attacks either).

Disease/Wound: HP cannot be recovered, and if HP drops below current HP, Max HP = Current HP as long as the status remains. I tried to do this via eventing, but it didn't work out nicely at all...

Freeze (ala FFIX)/Petrify (ala FFX): These versions are different from the regular ones in that if the target is attacked, they are KO'd (in Freeze's case) or destroyed and removed from battle (in Petrify's case). They could be done via eventing as well, but wondering if DynRPG can't make them more viable to do? Likewise, for Petrify, is it possible to flag it as a dead status at all and make it so that enemies will not target said character/character takes 0 damage from anything?

Vanish: Target cannot be damaged by physical attacks, but can be damaged by magic attacks with 100% accuracy. Wondering if this is doable at all, and possible to do the other way around (avoids magic, damaged by physicals)?

Nul statuses/elements: Ala FFX where the Nul spells would make the target immune to a specific element for one hit. I'd like to do something like that, but not sure if it's feasible or not. Or at the very least make it so that they're temporarily immune for a brief time. Also wondering if it'd be possible to do something like that for weapons, where the ability grants the user's weapon that status or element as long as it's active? I have it coded in my game, but it takes a looooooooooooooooooot of coding (7 months worth it took me to get it all situated and going, and that's not with all of the inventory either!). Likewise, wondering if it's possible to do the opposite and temporarily decrease resistance to elements/statuses?

Runic: Celes's ability to absorb one magic spell to regain MP. Wonder if this is doable at all? Would be nice to be able to mimic this command for a character.

Confuse/Charm: I'm not talking about the built-in crappy Confuse status, but the actual one where enemies will actually use things like their skills and whatnot on enemies/allies. Is this doable at all? As it stands right now, the current Confuse status is just terrible.

Doom: Countdown before target dies. Wondering if this is doable without having to do too much eventing?

Lucky Girl: All hits are Critical Hits. Wondering if this is possible to do?

Heat: Taking any action at all while under the status results in a KO on the victim. I have this in my game coded, but wondering if it's possible to do without too much eventing? Note: This prevents the target from using the ability at all. If the ability is chosen to use, like a regular attack, they will die BEFORE the attack goes off.

Detecting statuses on monsters is another thing that bothers me, and would make some things more doable (such as damaging an enemy depending on what statuses they have, reversing statuses, etc).

I'm also wondering if it'd be possible to make it so that the player can target enemies and allies with anything (item, regular attack, skills, etc.). That also annoys me that that cannot be done in 2k3.


Those are just some things that came to mind last night! I'm sure I brought these up before, but eh! That was quite a long time ago so yeah! ^^;
@Xenomic, you can rewrite the code fairly easily to include any number of matrices. The issue is memory load, since there is an absolutely massive amount of info to manage. I suppose if another plugin was made, you could internalize much of this into the DynRpg.ini and just do something like Character1 = 200, 600, 1200, etc

Pepsi's plugin emporium is pretty good about that, but (1) it's mainly his stuff, and (2) somebody needs to give it a sticky (hint, hint).

I've done AutoLife, works okay. Start with making a 1x battle event with the common event Status Effects. I have a few things in my game you can peek at. I also have Doom, it's not that tricky, although I got rid of a number counter in favor of text like "Character X has Y turns left..."

Burn is easy. Set up characters with variable CharacterAttacking, 1-(you said 50?). Set If Character is using the Attack command, and make a variable AttackEffects. Along with a limit gauge, you can make this do attack statuses based on the number character attacking.

I've done battle removal, it's fairly easy. Putting back in the party, well... haven't worked that one out. I usually have to omit the hero (killing her), and then the rest you gotta go to the party tent. I also have some FF9-like spells, like one that spread damage around when you attack, and another that hurts you when you attack (Guilt and Cruelty).

Millenin has a nifty code that blocks attacks or spells your character makes, and I've adapted that with my earlier versions of Tales From The Reaper. Basically, I tagged spells by turning on switches, testing whether a status is on, and using immune if it is (no damage). It's doable, but absurdly complicated (I needed to remove it in order to finish the game because it screwed with everything and was laborious to code). This and bugmenot's NoReflect quickpatch could do Runic, if you can calculate MP cost, and restore that.

But that wouldn't solve the real issue. What would probably be good is a plugin/patch that handled status effects, and allowed writing to DynRpg.ini for it. Basically, you have the EffectType = statusID.
For example, Reverse = 15. These can be set to multiple effect types, for instance Zombie is ReverseDamage=17, Immortal=17, MimicDeath=17, SetHP(0)=17. Some of these like the confuse or petrify may take too much programming, I dunno. Okay the list.

DoubleAttack (Allows you to use attack twice)
DoubleSkills (Allows you to use skills twice)
GuardPhys (Links to guarded, takes physical damage instead of the target)
MagGuard (Same but for magic)
GuardAll (Guards vs any damage type)
Guarded (See above)
Immortal (Continues to fight even if at 0)
Invulnerable (Takes no damage)
MimicDeath (Whether or not the party member can act, game over if all are afflicted)
TemporaryRemoval (Removes from battle until the status is removed)
SetImmunityA-E(number) (You can do, for instance SetImmunityE(5)=18 assuming 5 is the fire attribute, 18 is Fireproof, and E is 0%. You can have multiple values and versions of this. This can also work with Vanish and some of the others.)
SetHp(10-0 including decimals) (This allows you to double, triple, etc. Or you can half it, quarter it, etc. Allows Bubble and Half)
SetMaxHpToCurrentHp (The max hp goes down when taking damage. Limit is 1)
SetDamage(1-9999) (Mini for instance does 1, there's something in FFX that does 9999)
ShareDamage (Like FF9 Trouble)
NullEXP (All party members but the afflicted gain exp)
DoubleTurn (Two entire turns)

This is not exhaustive.

Well, I already have Auto-Life, Burn, and the battle removal stuff all set up (including putting party members back into the party. If they get removed, it sets a variable for that particular party member, and in my Battle Cleanup event after battles, it adds anyone removed during battle back into the party). My Auto-Life and Burn work perfectly as it is, just wondering if it's possible to do less coding and referencing it or something.

Ah yes, I think I saw something like that for the Provoke skill, something similar for that (where it allowed you to reference the status ID for the status). That'd help a lot (and I think it was like that for that one plugin that did have Quick too).
Urgh, I could never get that one to work.

The key thing I'd like done is linking attribute changes with status. Having removable status changes means that you can do stuff like Oil or Wet to boost damage from elements, and status proofing too. Also, since increase immunity/reduce immunity doesn't have any real defenses (you use that on ANY enemy, it always works).
I'd recommend downloading my game again then and checking out the events if you need to try it out (since you have far less characters than me, should be simplier). It should be in battle events, or if not, it'll be in one of the common events (probably the one that runs every turn in battle).

Ah yes, that'd be nice to have. I have that in a way for my Armor Elemental Bless, where as long as a status is on, a piece of armor will have increased resistance to that. Except the way I had to do it, I had to have every single piece of equipment that the ability could affect copied multiple times (note: I have 12 elements or something like that, so every piece of equipment was copied 12 times). For Weapons, this is more nightmarish as I have to do that for every piece of weapon, and THEN in the coding, if they can equip two weapons, do EVERY SINGLE COMBINATION to make sure it equipped/unequipped things properly. Pain in the butt...
Yeah, I have one of those for an armor breaking boss. But it's such that you can't really program it on a regular basis.
Quick: I feel like I did this at one point during a long programming binge. You can probably do it by setting the hero's atb value to its max immediately after casting that spell, but the problem is everyone else's atb values. A monster might still be able to interrupt the hero before they choose their 2nd attack.

Bubble: Also possible in theory. Max HP/MP is accessible via RPG::DBActor, so you are literally changing the database value in-game. You'd just have to change it back to what it was before after the spell or battle ends.

Auto-Life: I'm not sure what the right way to do this would be. On the one hand, you could have event scripts handle the actual Life animation (since DynRPG can't force a battle animation to play yet). The plugin could basically check if a hero has a particular status (Auto-Life), and then check if their hp falls to zero, turn on a switch to play the animation or something, and resurrect them via the plugin.

Reverse: Yeah this would be easy with a plugin in theory, but you can't directly alter damage given... so if you had to do it, you'd have to use event scripts or attributes. I'm not totally sure how you'd get it to work, but if you set an attribute to a negative %, the spell of that attribute will heal instead of do damage. Might be able to do something with that.

Disease/Wound: You could probably do this with a similar technique as Bubble. Store the original Max HP, and the current Max HP and do checks to make sure their HP doesn't go over.

Runic: Might be able to do this in a similar manner as Reverse (assuming you can do that).

Doom: This is probably doable as a plugin actually. Make a condition trigger some kind of counter that checks the # of turns that have elapsed, and display the numbers on-screen.

Lucky Girl: All hits are Critical Hits. Wondering if this is possible to do?


I'd like to add one that I've been thinking about all day:
Transform: Transform any enemy into another enemy (like a frog or something). You could have some hacky way to do this by having an invisible enemy, but DynRPG would make this way easier since you have access to the enemy's database ID. I'm gonna experiment with this when I get home, but I think this would work pretty easily.
Quick: It may have been you that did it at one point, I don't remember since it's buried in the forums now. Maybe force Stop on all targets when status is active? I know I KINDA have a Quick status going in my game, though it requires a battle event to do it properly and don't know if it's actually 100% correct.

Bubble/Disease: Ah, that'd be nice to have those if it's actually doable. Gives the player more variety in what they can do in battle (as well as enemies).

Auto-Life: Again, I'm assuming the big downfall to this even working is how the game handles game overs, since Auto-Life won't save the player from that at all.


Oh god yes, that'd help a lot actually. Seeing as I have a boss that's supposed to change their elemental resistances (ala Magus from Chrono Trigger or Hein from Final Fantasy III), there's no easy way to just make it go "Cast Elemental Shift and change to other monster with different values". Would have to use Transform which is really blah because it doesn't tell you what the ability IS when used. And seeing as I would like to do it with all of the elements I have in my game (there's about 11 elements), it's really hard to make it look well...not super hacky or whatnot lol.
There's a few things I'd maybe like to see, not sure if they've been requested yet:

-Disable monster targeting. Set unique switches for each 8 possible monsters. If turned ON, that monster cannot be selected as a target by player characters. (may be useful to force the player to kill other monsters on the field first)

-Show target name. Not sure if this would be possible at all, but when the player has a monster selected (before confirming action) have a window pop up (maybe at the top of the screen?), displaying the name of the monster currently selected. The name could be taken automatically from the database, or have the player manually edit the DynRPG.ini file with monster values and write down the names there (whichever would be better or easier to make if it's at all possible).

-Safeguard: If character is inflicted with this condition they are unable to go below 1HP by the effect of attacks and spells (basically full resistance VS dying).

author=PepsiOtaku
I'd like to add one that I've been thinking about all day:
Transform: Transform any enemy into another enemy (like a frog or something). You could have some hacky way to do this by having an invisible enemy, but DynRPG would make this way easier since you have access to the enemy's database ID. I'm gonna experiment with this when I get home, but I think this would work pretty easily.

I'd love to see this. I have several enemies that have transformations and switch between different forms, but using hidden enemies and constantly killing off the form that's being replaced, while then reviving+healing the other form is clunky.
I'm interested in seeing a Final Fantasy style targetting system where you can either cast the spell on one or all foes for reduced damage.
target name is possible! create a status with the name of the monster and assign it when the battle begins.
Also in this way you can also choose the color, so you can differentiate the boss from common enemies.
From a programming standpoint, anything that involves targeting = barf.

Transform update: Finished a working prototype using comment commands last night, but you have to define the monster's graphic somehow. I might do that via ini so that it won't require an event page.

I got a little sidetracked after I did that, by adding a run animation for monsters. So instead of just fading out, they fade out, flip directions and run off screen (like heroes). Expect that plugin at some point!
Shame about the targeting but I already thought that would be tough/impossible to work with. Would the Safeguard be possible to make, though?

Looking very much forward to the transform plugin, that'll be amazing.
Not sure if I understand what the monster run plugin would do exactly. They fade out... and then run away (wouldn't they be invisible at that point?) The idea of making the enemy run away instead of killing it is quite funny, though. Probably could think of some funny battle scenarios using that if it could be controlled by a switch.
author=Xenomic
Quick:It may have been you that did it at one point, I don't remember since it's buried in the forums now. Maybe force Stop on all targets when status is active? I know I KINDA have a Quick status going in my game, though it requires a battle event to do it properly and don't know if it's actually 100% correct.

Bubble/Disease: Ah, that'd be nice to have those if it's actually doable. Gives the player more variety in what they can do in battle (as well as enemies).

Auto-Life: Again, I'm assuming the big downfall to this even working is how the game handles game overs, since Auto-Life won't save the player from that at all.


Oh god yes, that'd help a lot actually. Seeing as I have a boss that's supposed to change their elemental resistances (ala Magus from Chrono Trigger or Hein from Final Fantasy III), there's no easy way to just make it go "Cast Elemental Shift and change to other monster with different values". Would have to use Transform which is really blah because it doesn't tell you what the ability IS when used. And seeing as I would like to do it with all of the elements I have in my game (there's about 11 elements), it's really hard to make it look well...not super hacky or whatnot lol.

I think the original final fantasy series made party knockouts still count as gameover. In any case, I think unlosable battles would bite you in the rear, so it'd probably be bad to mess with that mechanism.

Speaking of final fantasy, and targetting. FF series had the ally/foe target. It usually wasn't much help, but I remember frozen enemies could sometimes have fire spells cast on them to remove. Not to mention removing sleep by whacking that ally.
Screen scrolling in pixels (in addition to tiles). Since, why not. Maybe someone finds a use:

download ScreenScrollBug-in

author=bugmenot

This is exactly how I feel after trying to fix/workaround a bug for 5 hours and then having to sleep/work before I can continue again...

This is a longshot obviously since there is maybe 1 other person making plugins, but I'm frustrated as hell. Has anyone tried working with updateBattleEvents/BattleEventUpdateMode? The idea is that you perform some kind of action, and then need to force the battle event triggers to run at a given frame. For example: I'm trying to make a boss death animation (flashes and slowly fades out), but I need to use a battle event page (activated by switch) in order to play a battle animation. Therefor, I need to call updateBattleEvents after the switch has been turned in order to run the event script starting on that frame as opposed to the next turn--which doesn't exist in this case since the battle will be over. I've also noticed that as soon as updateBattlEvents is called, any code after it is skipped until the next frame, so it always has to be the last thing you want to do during that frame. I also have it written so that it's called only once during battle.

The thing is, I got this working beautifully, but after the battle finishes and transitions back to the map, I get a sweet little error message that's completely blank! Literally no sort of feedback as to why there's an error, and it resets 2k3. It also does this in test battle mode after it fades to black. If I remove the updateBattleEvents line, the error is gone. I've tried all sorts of combinations:

All 4 of these work great and do what I want, but give that error:
RPG::updateBattleEvents(RPG::BEUM_SWITCH_ACTIVATED, 0)
RPG::updateBattleEvents(RPG::BEUM_SWITCH_ACTIVATED, NULL)
RPG::updateBattleEvents(RPG::BEUM_SWITCH_ACTIVATED, RPG::monsters[x])
RPG::updateBattleEvents(RPG::BEUM_SWITCH_ACTIVATED, RPG::Actor::PartyMember(x))

RPG::BEUM_BEFORE_ACTION and RPG::BEUM_BATTLE_START work if updateBattleEvents is called before the hero finishes their action, but it doesn't work (or is mis-timed) if it's after they move back to their default position (when I need the event page to trigger). RPG::BEUM_AFTER_ACTION did not work in either scenario if I remember correctly.

Oh, the other weird thing is that the error DOESN'T appear maybe 75% of the time if you finish the monster off with a spell instead of a plain attack.

My assumption about the whole thing is that there's some code executed by the main exe that runs after updateBattleEvents is called, but sticks around after the battle ends because it's expecting a battler's action to finish. If I knew what that code might be, I'd at least be able to tell if it's fixable or not.


CHERRY, WHERE YOU AT?!


Edit: BOOM. Fixed. Found a way to get the above to work with RPG::BEUM_AFTER_ACTION, which for whatever reason didn't crash it. Only took like 3 days and a shitload of bugfixing. I think there's like one tiny visual bug left that has to do with a two-weapon scenario.
So here's another thing I just thought of, since I'm trying to come up with a skillset for a boss (and theoretically a skillset for Hope who will get some of the boss's abilities), which is everyone's favorite Final Fantasy ability, Everyone's Grudge! I bring this up as I've already done multiple other abilities that have formulas (such as FFXII's Traveler and Horology abilities, which work perfectly as intended), as well as various Level spells and Arithmetician abilities. HOWEVER! The issue here is that there's no nice way to do Everyone's Grudge. For those who don't know, it's usually (# of enemies killed x V ) to one target. Obviously, if I give this to Hope as an ability she can learn it'll be TOO good probably, but may be just relegated to my boss/enemies (unless, which is another thing I was wondering, it was possible to make it so that skills that targets one enemy can somehow call a common event instead of doing what they do? That way, it'd be easier to do an actual skill like Everyone's Grudge without targeting the entire party...).
(Double posted because site is being weird)
Conceivably you could have personal hero kills stored inside a variable. Then have a targetting event that uses the different variables. Yea that would probably take some weird plugin.
Merry Christmas errbody!

I've been fiddling around with DynRPG, but I ran into a weird issue - assuming it's not the plugin I'm using, whenever a player interacts with a door and is given a prompt to leave (Enter World Map? Yes/No), the message box empties out but remains on-screen through the transition to finally go away once the screen fades back in. It's nothing huge, but it gets really irritating. The only plugin I'm using is an enemy health bar one for battles.