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

Posts

It pays to read ahead.

author=Me
For instance, I was wanting a way to make it so monsters deal a minimum of 1 hp damage if it is simply a matter of having more defense. That is, if Monster Atk is 60, and your defense is 250, the attack should deal a minimum of 1 damage. (It shouldn't however, override immunity)

Basically, what I want I'm not sure is possible. I want to not only the 1 minimum for when DEF exceeds ATK, but I want 0% attribute to work too (so turtles take 1 hp, but ghosts take 0).

author=BugMeNot
What exactly do you mean?

I mean something like this. Holdon...

Hi, is it possible to give enemy's regular attacks (not skills) a damage attribute type? Is that something feasible with a plugin or patch? Thanks!
No. What you should do is make a skill for the enemy's standard attack and add attributes/etc that way. You could also make a skill called "Attack" that mimics your default attack animation if need be.
I thought about that, but afaik, turning all enemy regular attacks into skills would ignore all evasion boosting or accuracy reducing spells/equipment/conditions. From what I tested, accuracy of skills will always just be based on their success rate and ignore AGI or other factors factored into evasion.

================

The only reason I need enemy attacks to have an attribute is so that my Protect/Shell spells work as intended. And the method for getting those skills to work right involve attack attributes. I need to somehow give all enemies two attributes to their attacks: 'Physical' (a weapon attribute type) and 'WNonElem' (a magic attribute type). This will make it consistent with how all of the hero party's weapons work.

================

Hm, if there is no way to implement it like this, I may instead have 'Protect' only affect physical skills, making it more situational but more consistent across the board.
If anybody could elaborate on this part of the README for bugmenot's PhysDamageFix patch, that would also be very helpful.

[QuickPatches]
UseDexStat=49B4BE,50,49B4C9,28,49B4CD,28,49B4D1,2C,49B4D3,5840EB03

Damage of a "2 Weapon Style" hero is calculated seperately for both weapons. The same thing wasn't done with the accuracy
(calculated with the weapon's AGI)

Also, directed more towards bugmenot himself, in case he sees this:
I know this might be asking a lot, but would you be able to combine your PhysDamageFix patch (the one that fixes Back Attack row bonuses) with the RowPhysSkills patch (the one that can give row bonuses to skills with a specified attribute and allow the formula for damage to be changed)?
author=Shoobinator
Hm, if there is no way to implement it like this, I may instead have 'Protect' only affect physical skills, making it more situational but more consistent across the board.

BugMeNot made a NoReflect patch earlier.

NoReflectDmg=49BC4B,EB58,49BCA5,90E93F03,49C44C,90E9E901,4BB3A8,9090,49C2CD,90E9

(It basically makes skills not reflect)

What might solve that problem is if a patch was made like this...



As in, if you have a "physical" skill, it tracks that because the Strength tab is over 1 and "reflects" spells with 1 or more Strength. If one or both boxes is unchecked, it ignores the skill and damage is taken.

The problem with all this, of course, is that if you wanted Protect, Shell, AND Reflect, you'd need something that would do no-reflect selectively.

Would this be possible? Can someone do it?
Interesting idea, but I actually planned some abilities to have ATK and INT influence, so that would complicate things to some degree. I may end up changing some things yet.
author=Shoobinator
If anybody could elaborate on this part of the README
Basically, physical attacks with two weapons calculate damage differently for both weapons:
BaseStr (from the STR curve of the hero or job class)
+ StrDifference (from Skill effects that have Attack checked)
+ Str+ (from that <ChangeStats> event command or from stat+ Items)
+ Str(Equip) (from all worn equipment, except any kind of weapon)
+ Str(Weapon) (from the currently attacking weapon)
x ConditionStatAlteration (halving or doubling a stat when a condition is inflicted

(whereas Skills act as if both weapons are used simultaneously)

When calculating accuracy, this 'two weapon mechanic' was not applied properly to AGI.
Which means that if you had a slow weapon with -50 AGI and a secondary weapon with +200 AGI, it would cancel out the effect of the slower weapon (so both will hit with that +150 AGI). And yes, this would call for a reworking of how AGI gets handled in the game (ATB and evasion not taking a weapon's AGI into account).

No, don't use the Hit% of an Item for it, because it means it will generally miss more often instead of there being a higher chance of hitting slow enemies.
But what do I know about hit rates. Not checking if an attack was missed would be more reliable (so the developer and player can concentrate on battle mechanics instead).


author=Shoobinator
would you be able to combine your PhysDamageFix patch [...] with the RowPhysSkills patch
Originally, I had planned to do that... then I realized that it's just a waste of time and space when there comes a proper callback and plugins can take care of way more than that patch does.


author=Shoobinator
Hi, is it possible to give enemy's regular attacks (not skills) a damage attribute type?
Sounds like half a dozen (if not more) people are asking for that physDamage / skillDamage callback...
If that's even possible (to return a different value that swaps out the original value).
Thanks for the reply! I think I might remove Back Attacks from my game then, since now I know about that bug that swaps the row bonuses. Instead, I'll see what I can do with Pepsi's ATB Overhaul and just use that to set all enemies to move first upon entering a battle.
author=Shoobinator
From what I tested, accuracy of skills will always just be based on their success rate and ignore AGI
... found the problem.

There's a parameter to Skills that is not accessible in RM2k3 anymore (that "failure message" thing). It gets reset to 'magic type evasion' (ignores AGI values and conditions (such as blind)) when deleting and creating new skills in the database.

[QuickPatches]
SkillAccuracyFix=49C69A,38000F84

If ATK influence is set to zero, then AGI (and blinding conditions) will be ignored (for proper magic skills). To allow evasion (based on AGI of user and target) just put the ATK influence to 1 or above.

And don't forget:
with PDFix.ips
[QuickPatches]
AccuracyFix=49B4E8,EB04,49B4F4,EB04,49C70E,EB04,49C71A,EB04

without PDFix.ips
[QuickPatches]
AccuracyFix=49B4E7,EB04,49B4F3,EB04,49C70E,EB04,49C71A,EB04,49B119,EB04,49B125,EB04

So hit rates don't cap out at 50% when AGI(target) / AGI(user) reaches zero.


...
Btw. there's a bug in the original RPS patch (I think every encounter type was considered a normal front attack). Mayhap I will have to waste my time afterall for an update.
author=bugmenot
author=Shoobinator
From what I tested, accuracy of skills will always just be based on their success rate and ignore AGI
... found the problem.

There's a parameter to Skills that is not accessible in RM2k3 anymore (that "failure message" thing). It gets reset to 'magic type evasion' (ignores AGI values and conditions (such as blind)) when deleting and creating new skills in the database.

[QuickPatches]
SkillAccuracyFix=49C69A,38000F84

If ATK influence is set to zero, then AGI (and blinding conditions) will be ignored (for proper magic skills). To allow evasion (based on AGI of user and target) just put the ATK influence to 1 or above.

And don't forget:
[QuickPatches]
AccuracyFix=49B4E8,EB04,49B4F4,EB04,49C70E,EB04,49C71A,EB04
So hit rates don't cap out at 50% when AGI(target) / AGI(user) reaches zero.


...
Btw. there's a bug in the original RPS patch (I think every encounter type was considered a normal front attack). Mayhap I will have to waste my time afterall for an update.

Those are some helpful updates, but I may not make use of them (like the SkillAccuracyFix) because I don't want to allow some hero party physical skills that cost a lot to use to possibly miss. It would be helpful for the enemy side though.

===================================

New question: Without adding any patches or plug-ins, does being in the back row reduce your own attack accuracy?

I also think that the default AGI formulas are fine for my purposes.
author=Shoobinator
I don't want to allow some hero party physical skills that cost a lot to use to possibly miss.

It could go by Int influence instead of Atk influence. Or Variance, Switch_ID, BAnimation_ID, SwitchSkillActivation (Field/Battle), a certain EffectRating, ... SkillType sounds reasonable, too (see BattleCommands of type SkillSubset).

Or allow evasion if the Skill_ID is below a certain number:
[QuickPatches]
SkillAccuracyFix=49C69A,04000F83,49C69B,%1
edit
Only up to a Skill_ID of %127


The easiest way to do that stuff manually would be to create a new RM2k3 project, multi-copy Skill #4 "Paralyze", it's of evasion type 4 (allow AGI evasion and blinding conditions) and Skill #5 "Volcanic Breath", it's of evasion type 1 (ignore AGI evasion and blinding conditions) (or do that from a RM2k project and set whatever the thing above the ATK influence is mistranslated as appropriately) and paste it somewhere into your own project and just copy & paste whenever you need stuff that can miss or not.


author=Shoobinator
does being in the back row reduce your own attack accuracy?
The code says no. It is checking if the target is in the back row. I'm not sure if enemies are ever considered to be in the back row at any point.
edit Oh right, that's what the PDFix was getting rid of (back attacks causing enemies to be interpreted as being in the back row, further reducing your heroes' damage and accuracy).
author=bugmenot
Or allow evasion if the Skill_ID is below a certain number:

QuickPatches

SkillAccuracyFix=49C69A,04000F83,49C69B,%1

This actually sounds like it would fit right in with my system! However, since your current DPFix patch doesn't modify row bonuses or the damage formulas, I have to stick with your other RPS patch so I can keep my modified damage formula.

This has been tremendous help so far though! :)
author=bugmenot
author=Shoobinator
I don't want to allow some hero party physical skills that cost a lot to use to possibly miss.
It could go by Int influence instead of Atk influence. Or Variance, Switch_ID, BAnimation_ID, SwitchSkillActivation (Field/Battle), a certain EffectRating, ... SkillType sounds reasonable, too (see BattleCommands of type SkillSubset).

Or allow evasion if the Skill_ID is below a certain number:
[QuickPatches]
SkillAccuracyFix=49C69A,04000F83,49C69B,%1




Can you do this to be between two numbers? As in, all my physical attacks are between 63 and 250. By allowing evasion, you mean the status "evade attacks", right? Because this is what I need.
[QuickPatches]
SkillAccuracyFix=49C698,E940A8FAFF,446EDD,817B04000000007C0D817B04000000000F8EAF570500E974580500
SkillAccFixRange=446EE0,#1,446EE9,#2
For Skills between ID 1 and 2. And it's not limited to a max.ID of %127.


By allowing evasion, you mean the status "evade attacks", right?
Let's say
SkillAccFixRange=446EE0,#63,446EE9,#250
So Skills with an ID of 62 and below or 251 and above will just go by the Skill's success rate that was set in the Skill tab. Anything between the range will (on top of the Skill's succes rate) account for the user's AGI, target's AGI, changed hit rate from conditions (such as blind) and whether or not the target wears at least on piece of equipment with "increased evasion" (-25% hit rate).
Is there a way to make skills count as basic attacks? As in, I don't really care about AGI, but I want certain skills to ignore Reflect Skills and instead be affected by the Evade All Attacks checkbox.
Well, this might get rid of a few issues:

download RPS[+]

RPS[+] is introducing %Attribute tagging. This can add a few effects to weapons and Skills. (tracking which and when a weapon was used, if it hit or not; weapons that can hit ghosts; proper ranged weapons; weapons that ignore defense; Skills that can be perfectly concealed as regular attacks (with different BattleAnimations!); Skills that ignore reflection; support Skills(Items) that can be used without wasting too much time; and so on)


%1 (Row)
[Attack]
-> Hit% and Dmg% not affected by Row
-> no damage reduction if target is in back Row
[Skills]
-> Hit% and Dmg% ARE affected by Row
-> -25% Dmg if target is in back Row


%2 (Pierce)
[Attack]
-> ignores the DEF of the target
[Skills]
-> target suffers more damage the higher its DEF is
-> adds "DEF x AtkInfl / [A]" to the damage (instead of subtracting it)


%3 (Reflect)
[Skills]
-> Skills ignore a target's "reflect Skills" condition


%4 (Evade)
[Attack]
-> attacks ignore a target's "evade all attacks" condition
[Skills]
-> Skills miss if the target has an "evade all attacks" condition


%5 (Name)
[Skills]
-> the Window with the Skill's name (when casting it) is not shown


%6 (Fast)
[Attack]+[Skills]
-> user gains [A]% of his/her ATB gauge after attacking (even on "MISS")


%7 (Slow)
[Attack]+[Skills]
-> user loses [A]% of his/her ATB gauge after attacking (even on "MISS")
-> uses negative ATB values (the ATB bar just takes longer to fill up)


%8 (Delay)
[Attack]+[Skills]
-> target loses [A]% of its ATB after a successfull hit


%9 (Switch(A))
[Attack]+[Skills]
-> Switch = ON, before the attack/Skill is executed (even on "MISS")
-> Switch_ID can be changed in Item/Skill type 'Switch'
NOTE: BattleEventTriggers go off AFTER the Animation has played its last frame


%10 (Switch(B))
[Attack]+[Skills]
-> Switch [A] is set to ON after a successful hit
-> Switch_ID can be set in DmgMultiplier[A]


%11 (Switch(C))
[Attack]+[Skills]
-> Switch [A] is set to ON after the attack misses
-> Switch_ID can be set in DmgMultiplier[A]



Is there a way to make skills count as basic attacks?

Tagging it with %1, %3, %4, %5 should do the trick. (Atk Influence = 10, Int Influence = 0, Variance = 10*, 90% HitChance for Monsters (70% if "often misses") and don't forget the SkillAccuracyFix (or copy&paste stuff manually))
*or whatever you had the inverted variance set to in the QuickPatches


Tried to go for stuff that is not/hardly possible with DynRPG... I failed at most of those, I guess.

This is still on my to-do-list:
%12 (Animation) = replace a Battler with an Animation when casting a Skill (the same thing was done for weapons, but not for Skills)
%13 (HP Cost) = SMT styled spending of HP instead of / in addition to MP
%14 (Percentage) = effects in relation to the current or total of the targetted HP/MP/...
%15 (Convert) = get part of the caused HP damage back as MP (probably accounting for overkill damage)

Some of those sound contra-productive ('cause possible with proper Skill-tracking plugins) or just silly ... so there's still time to tell me it is a bad idea.
As I said: with a proper callback on damage calculation... other people would be able to waste their time. For science, or so.
I can't have it as Attack Influence 10. I also have the quickpatch that sets damage at 1:1 ratio for Int or Str. 4 even is overkill.

But thank you! This is what I've been looking for for months. As soon as I figure out how to work it.

Can you make a demo for this? I would understand it alot more if I saw it in action. As in, I'm not sure where to put the %1 and so on.

I was also making something where if the weapon is not a certain attribute, the word Immune is displayed instead of Miss.
Demo? Is it as un-intuitive as you say?






Aaand it's done. I'm tired, so yeah. Slow.
It's just that I'm a very visual person, so text sorta goes over my head unless I get the time to just sit and look at it. So, as long as the %# is there, it can have the stuff after it? Looks like it.

I'm gonna keep the %5 undone. I like spell names. Fire Breath works better than a blank fire attack.

Also what do these quickpatches all do (I understand some but not all)? Do I need them for RPS?
Doesn't look like it.
I never really cared about Rows, don't wanna revamp physical to invert, and the other two not really sure about.

%16 ElementalImmune If monster/character is E to the attribute(s) besides %nums, this displays "immune" instead of 0 (remember that 1 minimum damage you made earlier?)
%17 Maybe it runs using a status condition.