[Released]Side Effects Control

Lecode

(─‿‿─)
Veteran
Joined
Dec 18, 2013
Messages
490
Reaction score
659
First Language
French
Primarily Uses
N/A
Introduction


This plugin allows the user to set advanced effects for battlers, states and equipments.
These effects' logics are done through script call in the note box on defined occasions:


When Something
Do that (scriptcall)
Do that (scriptcall)
...
End


The purpose of this plugin is to allow the user to achieve complex effects. Nowadays skills in RPGs aren't just for dealing damage, healing and altering states. They can trigger complex effects for the sake of gameplay.
In short, you can achieve mostly complex passive skills and abilities for battlers. Or active skills with side effects.


Examples


This video shows some examples of what you can do with this plugin.


There are mostly passive skills or special abilities intrinsic to actors and enemies.










How to use


Defining an effect is done through the note box of actors, classes, enemies, states and equipments.


The pattern is the following:


<leffect: [OCCASION]>
[SCRIPT CALL];
[SCRIPT CALL];
...
</leffect>


[OCCASION] is the moment to trigger the effect.


[sCRIPT CALL] are...simply script calls. They are evaluated as Javascript code.


You can see below the list of occasions and script calls.


In addition, you can add a requirment for the effect to be triggered;


<leffect: [OCCASION]>
req: [CONDITION 1]
req: [CONDITION 2]
...
[SCRIPT CALL];
[SCRIPT CALL];
...
</leffect>


Code example:


The poisonous skin effect at the end of the video:


<leffect: after attack invoked on me>
b.addState(4);
</leffect>


Inside slime's note box.


Note that any tags to states, equipments and skills are in reality applied to their carrier.


Occasions & keys list:


Sheet.


Script call list:


Default list of script call.


Plugin-related script call.


Demo:


Link.


Require:


Yanfly Battle Core. ( for now )


LeUtilites.


See demo.


To-Do:


-Special tags for Equipments, Skills and States


-More tags


-Factorise more the code
 
Last edited by a moderator:

lolshtar

Master of Magic thatknow nospell
Veteran
Joined
Apr 13, 2013
Messages
694
Reaction score
101
First Language
French
Primarily Uses
RMMV
This is so good. l am crying in joy

Anyway to make an effect specific to a single skill?
 
Last edited by a moderator:

Lecode

(─‿‿─)
Veteran
Joined
Dec 18, 2013
Messages
490
Reaction score
659
First Language
French
Primarily Uses
N/A
This is so good. l am crying in joy
Thanks. I'm happy that it's useful to you.

Anyway to make an effect specific to a single skill?
Yup. See for example the skills "Hot time" and "Holy Hammer" in the demo.

In short, set a requirement as "skillID === X"

The effect will only be triggered when the skill is used.

BTW I found two mistakes in the demo about passives that trigger with a certain chance.

I forgot to check the chance.
 

Targaryen

Veteran
Veteran
Joined
Oct 23, 2015
Messages
51
Reaction score
11
First Language
Spanish
Primarily Uses
Omg... amazing... I can't say anything else.

I'm testing every tag right now. It's perfect, great job.

EDIT: I found a bug on <before/after enemy action start>; after my side effect /I use Fire before it/, the action is not realized.

EDIT 2: Some note tags (turn start, turn end... are used for the user, I found them confusing, could you make them as "user turn start..."?. I think it would be better to differentiate from a "global turn start" or "global action end" :/
 
Last edited by a moderator:

izyees

My Secret Santa
Veteran
Joined
Oct 24, 2015
Messages
248
Reaction score
67
First Language
english
This is what I'm searching for  :guffaw:
 

Lecode

(─‿‿─)
Veteran
Joined
Dec 18, 2013
Messages
490
Reaction score
659
First Language
French
Primarily Uses
N/A
Thanks :) .

EDIT: I found a bug on <before/after enemy action start>; after my side effect /I use Fire before it/, the action is not realized.
I found this bug too during the work and I patched it for Yanfly Battle Core. But maybe something is wrong.
What BS are you using ?
 

EDIT 2: Some note tags (turn start, turn end... are used for the user, I found them confusing, could you make them as "user turn start..."?. I think it would be better to differentiate from a "global turn start" or "global action end" :/
Why not.
 
I'll test the plugin wiith ATB plugins and other yanfly's plugins and if everything is fine i'll release it.
 

Targaryen

Veteran
Veteran
Joined
Oct 23, 2015
Messages
51
Reaction score
11
First Language
Spanish
Primarily Uses
Thanks :) .

I found this bug too during the work and I patched it for Yanfly Battle Core. But maybe something is wrong.

What BS are you using ?

Why not.

I'll test the plugin wiith ATB plugins and other yanfly's plugins and if everything is fine i'll release it.
I'm using Yanfly scripts for everything, and I test a lot your script and... it's amazing and works fine, except the issue I told you hahaha

For ATB is perfect, but when you use "turn end" doubles the effect: first when the user attacks and second when the turn ends... I solved this by this way:

<leffect: before action end>

a.boolean = true;

</leffect>

<leffect: after turn end>

if(!a.boolean){

code here

}

a.boolean = false;

</leffect>
 

moldy

Veteran
Veteran
Joined
Nov 15, 2015
Messages
193
Reaction score
29
First Language
English
Primarily Uses
I can't seem to get the getWeakestEnemy(param, battler) function working. Here's what I'm using:

<leffect: after skill invoked>

req: result.hpDamage > 0

req: !b.isActor()

var crip = getWeakestEnemy("agi",a);

anim(crip,126);

hpDmgWpopup(crip,value*2);

</leffect>

Error says undefined function.
 

Lecode

(─‿‿─)
Veteran
Joined
Dec 18, 2013
Messages
490
Reaction score
659
First Language
French
Primarily Uses
N/A
For ATB is perfect, but when you use "turn end" doubles the effect: first when the user attacks and second when the turn ends...:
Thanks for noticing this.

I solved this by this way:

<leffect: before action end>a.boolean = true;</leffect><leffect: after turn end>if(!a.boolean){code here}a.boolean = false;</leffect>
I suggest you to use setVar("boolean",true,a) and getVar("boolean",a) instead of directly altering the a instance.

It's for compatibility sake. Or at least change boolean to a weird name that only you can use and not one of the multiple plugins you might have:

a._xlol_boolean  

I can't seem to get the getWeakestEnemy(param, battler) function working. Here's what I'm using:

<leffect: after skill invoked>

req: result.hpDamage > 0

req: !b.isActor()

var crip = getWeakestEnemy("agi",a);

anim(crip,126);

hpDmgWpopup(crip,value*2);

</leffect>

Error says undefined function.
 "getWeakestEnemy("agi",a);" works fine on my side.

-Is that error systematic ? Or does it only appear occasionally ?

-Can you upload a screenshot of your plugin manager ? Maybe it's an incompatibility issue.
 

moldy

Veteran
Veteran
Joined
Nov 15, 2015
Messages
193
Reaction score
29
First Language
English
Primarily Uses
Thanks for noticing this.

I suggest you to use setVar("boolean",true,a) and getVar("boolean",a) instead of directly altering the a instance.

It's for compatibility sake. Or at least change boolean to a weird name that only you can use and not one of the multiple plugins you might have:

a._xlol_boolean  

 "getWeakestEnemy("agi",a);" works fine on my side.

-Is that error systematic ? Or does it only appear occasionally ?

-Can you upload a screenshot of your plugin manager ? Maybe it's an incompatibility issue.
It happens when I use a skill that damages the enemy. If it misses, the error won't happen. Here's a screenie of my console detailing the error.

Untitled.png
 

Lecode

(─‿‿─)
Veteran
Joined
Dec 18, 2013
Messages
490
Reaction score
659
First Language
French
Primarily Uses
N/A
Ah yes. I know what's wrong. Thanks for reporting it.

It's fixed on my side. I'll upload the new version with additional features soon.
 

moldy

Veteran
Veteran
Joined
Nov 15, 2015
Messages
193
Reaction score
29
First Language
English
Primarily Uses
Ah yes. I know what's wrong. Thanks for reporting it.

It's fixed on my side. I'll upload the new version with additional features soon.
Thanks :D . This is one of my top scripts. So nice for passives. @_@

EDIT: Is silentCastSkill working as intended? For some reason, it always ignores the skill's scope and just casts the skill on the user. (example: the skill I want silently cast is supposed to affect all allies but only affects the user)

EDIT 2: Sorry again lol. Was wondering if getAllies() functioned with hpDmgPopup? I can't seem to get that working. I can post the error log later if need be.
 
Last edited by a moderator:

Porcelain

Veteran
Veteran
Joined
Oct 12, 2015
Messages
38
Reaction score
2
First Language
English
Primarily Uses
This looks amazing and I can't wait for it to be released.
 

Maliki79

Veteran
Veteran
Joined
Mar 13, 2012
Messages
797
Reaction score
350
First Language
English
Primarily Uses
N/A
And here I've been hardcoding this stuff!


LoL


Awesome Plugin!
 

Karindanslav

Villager
Member
Joined
Dec 30, 2013
Messages
10
Reaction score
0
First Language
Portuguese
Primarily Uses
Has anyone succeeded in using these note tags on equipment?


I'm trying to make a magic sword deal fire damage by using castSkill after attack is invoked.
 

xaviarsly

Villager
Member
Joined
Mar 13, 2016
Messages
21
Reaction score
1
First Language
einglish
Primarily Uses
How would i make it so that if a character uses a specific skill/spell they Might infect the target with any status effect they currently have


(im asking cause im having a hard time under standing all these tags)
 

Lecode

(─‿‿─)
Veteran
Joined
Dec 18, 2013
Messages
490
Reaction score
659
First Language
French
Primarily Uses
N/A
Hello. I'll ad 2 or 3 features and release it very soon.

Has anyone succeeded in using these note tags on equipment?


I'm trying to make a magic sword deal fire damage by using castSkill after attack is invoked.
I added this feature to the release version. Side effects' tags on equipments are executed.

How would i make it so that if a character uses a specific skill/spell they Might infect the target with any status effect they currently have


(im asking cause im having a hard time under standing all these tags)
Put this tag inside your character's note or inside his passive skill:


<leffect: after any obj invoked>
req: chance(X)
req: skillID === Y
req: !b.isActor()
anim(b,130);
for(var i = 0; i < a.states().length; i++)
b.addState(a.states().id);
</leffect>


Replace X with the % of success (Eg: 30) and Y with that specific skill/spell's ID.
 

Icenick

Veteran
Veteran
Joined
Mar 28, 2012
Messages
410
Reaction score
61
First Language
English
Primarily Uses
This looks really cool. But how does this work im very confused.
Im trying to make it so that if the enemy has a specific state, another spell is cast in addition to the one already cast. Tried this no luck
<leffect: after this skill invoked>
if( b.isStateAffected(16) )
castSkill(a,b,31);
</leffect>


Also I tried copying the plugin from demo and testing the 50% chance of casting the spell over again and it did not even work.

<leffect: after this skill invoked>
if( chance(50) )
castSkill(a,b,31);
</leffect>

Using v1.5.1
Btw no video link
Edit: Nothing actually works in my project.
 
Last edited:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

so hopefully tomorrow i get to go home from the hospital i've been here for 5 days already and it's driving me mad. I miss my family like crazy but at least I get to use my own toiletries and my own clothes. My mom is coming to visit soon i can't wait to see her cause i miss her the most. :kaojoy:
Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD

Forum statistics

Threads
105,868
Messages
1,017,070
Members
137,577
Latest member
SadaSoda
Top