Krawzer_KOF

Veteran
Veteran
Joined
Aug 27, 2017
Messages
89
Reaction score
9
First Language
English
Primarily Uses
RMMV
How do I check if the target of an attack has a state so that my common event activates?

Something like this $gameActors.actor(x).isStateAffected(x) but for the target of an attack.
Thanks.
 

Shaz

Global Moderators
Global Mod
Joined
Mar 2, 2012
Messages
43,688
Reaction score
15,294
First Language
English
Primarily Uses
RMMV
In the damage formula, a is the attacker, and b is the target. So if the formula above is correct, you would use b.isStateAffected(x)
 

Krawzer_KOF

Veteran
Veteran
Joined
Aug 27, 2017
Messages
89
Reaction score
9
First Language
English
Primarily Uses
RMMV
I meant something like a restriction to the common event. The target of the attack would need to be inflicted with a particular state for the common event to run. The problem with the formula is that the common event will run even if the target is not under the state requirement.
 

Frozen_Phoenix

Veteran
Veteran
Joined
Nov 15, 2014
Messages
134
Reaction score
79
First Language
Portuguese
Primarily Uses
RMMV
You can break the event if the condition is not met:

60lq3PwMTLiVbo4SPROy9Q.png
 

Another Fen

Veteran
Veteran
Joined
Jan 23, 2013
Messages
608
Reaction score
320
First Language
German
Primarily Uses
When I didn't know much about scripting I usually made my skills add an invisible state to the target. The common event would then check every battler for that state to determine if it was hit by the skill (before removing that state again).

You could use that strategy to find out if there is one target that is inflicted with both the "target marker" state and the state you originally wanted to check.
If there is none, the common event would end without doing anything (in a way like Frozen_Phoenix already suggested).

Alternatively, you can also extend the skills damage formula to set a switch or variable that your common event can check and reset. For example, if you add this before your actual damage formula:

if (b.isStateAffected( 15 )) $gameSwitches.setValue( 25 , true); (actual damage formula here)

Switch 25 would be "ON" if the target was inflicted with state 15 when you run the common event (The common event would be required to change the switch back to "OFF" of course in order to work the next time).
Keep in mind that if you use the damage formula for anything not related to calculating damage, you probably should not use the default "Auto Battle" trait for any actor that could learn the skill.

Edit: Replaced the damage formula suggestion.
 
Last edited:

Krawzer_KOF

Veteran
Veteran
Joined
Aug 27, 2017
Messages
89
Reaction score
9
First Language
English
Primarily Uses
RMMV
Problem solved! I had no idea I could use a target mark state and totally forgot about the exit event processing. Thank you so much!
 

Maronius

Villager
Member
Joined
Oct 29, 2015
Messages
21
Reaction score
4
Primarily Uses
Anybody knows the javascript to check if a battler IS NOT inflicted by a specific state (so the opposite of b.isStateAffected(x))?
 

Latest Threads

Latest Profile Posts

Ugh... 4:53AM over here and I can't sleep so why not just game make.
I just love the MV feature that allows you to create your own animations!
I typically ask this on my normal social media channels, but figured there may be good replies here. Anyone got any good horror movie recommendations? I've seen a lot, but I always love getting suggestions! Bonus points if you know which service it is streaming on (in the US) - bring on the spOoooOky!
 After a few distractions (and my annual rough second week of October), I’m getting back on track with my OMGC project.
 Am I overcomplicating it? Yes. Am I going to tone it down? Almost certainly not.
 At least the dialogue stuff is almost done. I need to do the map itself, and then all that’s left is combat.
 Getting there!

Forum statistics

Threads
115,907
Messages
1,093,875
Members
151,158
Latest member
Nspace
Top