Status
Not open for further replies.

Sednaiur

Veteran
Veteran
Joined
Jul 7, 2018
Messages
33
Reaction score
9
First Language
German
Primarily Uses
RMMV
I would like to make a skill that deals damage equal to the kills that the user has done so far, like increasing the damage output of said skill by 1 for every kill. I am sure that this is possible, but I do not know how to adress the kill count of the actor in the damage formula.

For example:

a.kills, for a skill used by the player against monsters, or

b.kills, for a skill used by monsters against the player (like Tonberry in the Final Fantasy-series).

How could I accomplish creating such a skill? Are plugins needed?
I really appreciate help.
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
32,162
Reaction score
8,017
First Language
German
Primarily Uses
RMMV
the actor has no kill count by default, there is only a total party battle count.
So yes, you'll need a plugin that will create those counts in the first place...
 

onipunk

Archmage of Procrastination
Veteran
Joined
Jun 27, 2017
Messages
252
Reaction score
161
First Language
English
Primarily Uses
RMVXA
I'm not so sure this is the best idea, to base it off kill count. With a little grinding the skill could become way more powerful than you want it to be, and as it gets more powerful it gets easier to get more kills which makes it more powerful and soon enough your character is hitting the damage cap every turn with no effort. Compared to similar skills in Final Fantasy IX: Freya's Dragon Crest only increases when you kill a dragon, which are very powerful enemies; Zidane's Thievery only increases when you successfully steal, which is based on luck; and Quina's Frog Drop is based on a minigame that tests a totally different set of skills.

What I would do instead is similar to Dragon Crest: have it increase when your party defeats a certain type of rare, difficult enemy, add an event to the troop that when the enemy's HP => 0, it increases a variable by 1, and use that variable in your damage formula. Cause if you have it increase for every kill the actor gets, with a bit of time a player could break the difficulty curve of your game completely just by killing the weakest enemies in the game over and over.
 

XIIIthHarbinger

Part Time Super Villain
Veteran
Joined
Apr 27, 2014
Messages
676
Reaction score
805
First Language
English
Primarily Uses
RMMV
Without plugins this will be very difficult to pull off, & will require extensive eventing of skills, as well as components to your damage formula. Honestly, even I probably wouldn't recommend trying it, & I've created some rather extensive systems through vanilla eventing, that can replaced with plugins.

However, if you really wanted to try it vanilla.

You're going to need a way to track individual kills, & apply them to a variable. A variable for each potential player character, & a variable for each potential # position in an enemy warband, which will be added into the damage formula as a secondary value. Because obviously your player characters can't share variables, or it will muck up your whole system. & you don't want a try to have a variable for each enemy for a variety of reasons, but you still need to evaluate the differences in variables. So if the largest enemy warband you create is five enemies, then you need five position variables.

You'll also need a two layered switch system for each potential enemy number, as well as each potential party member. The first layer of switches will indicate if a party member or if an enemy warband position holder is dead, & the second layer switches will indicate if our evals have been executed; which means both layers will have to be "off" at the start of every battle, & then be turned on when applicable. Which means you'll also need a method to turn all of those switches off, after every battle. It will need to be two layered, so that the variable manipulation will be conducted when the enemy or player character is dead, but isn't looped to repeat the variable manipulation for as long as the enemy or player is dead.

Additionally, you'll potentially need a state application component in your damage formula, though how that works is going to depend greatly upon whether or not you have any overlap in skills, between player characters, as well as between player characters & enemies.

For example, if none of your player characters have overlap with each other or with enemy skills, then you can have a common event linked to their respective skills, that will check for the "death state" upon their potential opponents, & if present turn on their respective death switch; after which the second layer comes into effect where it checks if there has been a variable adjustment, & if an adjustment hasn't been made, it will make the variable adjustment & turn on the second layer switch, but if the switch is already on won't do anything. This should work, as common events linked to skills apply, after the contents of the damage formula. This of course means you'll also need to create skill variants for each of your enemies, based on positional rank in the warband. I.e. Bat 1 uses "Position 1's Skills", Bat 2 uses "Position 2's skills", etcetera, etcetera. So that each skill set can have their respective damage formula, linked to their respective variable.

This of course potentially rather dramatically increases the number of skills in your skill tab, & potentially causes you to hit the skill cap of 2,000 with relative ease, so it's less than ideal.

If you have overlapping skills though, you'll need your state application component, that will apply a neutral state to the skill user, as part of your damage formula. As well as linked common event to the skills just like before, that checks for the applicable first layer "death switch" & second layer "eval switch", & then if applicable makes modification to the desired variable based upon who is currently "marked" with the damage formulas "skill user state". & then of course remove that state from the current holder, so that there is only ever one nemy or character "marked" at a given moment in the battle.

While this method removes the problem of potential multiple variants of the same skill, it creates a new problem. Namely, you'll have to extensively rewrite your damage formula with multiple conditional for "A" being each potential actor, as well as each potential enemy warband position, to determine the correct variable to add to the damage formula.

Simply put, is it possible to accomplish? Yes.
Would I recommend either method? No.
 

JamesRyan

Game Designer
Veteran
Joined
Sep 13, 2014
Messages
698
Reaction score
219
First Language
Vietnamese
Primarily Uses
RMMV
Are you using Yanfly's plugins, especially this Battle Statistics? There is a function which returns actors' total kills and i think you can use it in damage formula or somewhere else like this:
Code:
a._killCount
or
Code:
$gameActors.actor(x)._killCount
 

Sednaiur

Veteran
Veteran
Joined
Jul 7, 2018
Messages
33
Reaction score
9
First Language
German
Primarily Uses
RMMV
First, I like to thank you for replying so fast. You sure are nice and helpful. :)
the actor has no kill count by default, there is only a total party battle count.
So yes, you'll need a plugin that will create those counts in the first place...
Thank you for letting me know about it.
I use already a plugin (YanFly's BattleStatistics along others), but silly me should have stated that beforehand. But when accessing the plugin, I see no instructions or possibilities to use any by that plugin gathered information in damage formulas.
I'm not so sure this is the best idea, to base it off kill count. With a little grinding the skill could become way more powerful than you want it to be, and as it gets more powerful it gets easier to get more kills which makes it more powerful and soon enough your character is hitting the damage cap every turn with no effort. Compared to similar skills in Final Fantasy IX: Freya's Dragon Crest only increases when you kill a dragon, which are very powerful enemies; Zidane's Thievery only increases when you successfully steal, which is based on luck; and Quina's Frog Drop is based on a minigame that tests a totally different set of skills.

What I would do instead is similar to Dragon Crest: have it increase when your party defeats a certain type of rare, difficult enemy, add an event to the troop that when the enemy's HP => 0, it increases a variable by 1, and use that variable in your damage formula. Cause if you have it increase for every kill the actor gets, with a bit of time a player could break the difficulty curve of your game completely just by killing the weakest enemies in the game over and over.
Don't worry about that. I know about how fast this can be broken, so I would control it by several means, like that skill not ignoring DEF among many other possibilities, like letting the skill only get around 0.4 DMG for a killed enemy and by earning the skill later in the game by special means. I never liked it the way Final Fantasy did it, especially the Tonberry-way :p.
Yes, I have to say, Final Fantasy 9 was rather creative with it's skills, even though, I, to be honest, find them even more broken in that game the way they are. Freya hits the damage cap by simply killing 100 dragons, which is way faster than killing 9999 enemies, right? ^^ Also, Quinas Frog Drop was just as broken, as one is able to max it out even earlier, as it's formula was catched frogs * Quina's level, resulting in me doing 9999 damage at the middle of disc 3 (just leave the golden frogs for a higher reproduction rate). My game is meant to have a damage level of around 3000 DMG with a normal hit on level 100, depending on the situation, while maintaining a damage cap of 9999. So, if someone is really grinding for a maxed-out kill-skill, he would need to kill at least 25.000 enemies for it, given the hit enemy is without any defense and not a boss, (the skill would use an element that any bosses are immune to) and if he or she does that, then he or she clearly deserves the result, I think, as it sure takes a while for doing that, aswell as being boring as all heck. ^^
Thank you very much for the hints and suggestions. They may be useful in the near future.
Without plugins this will be very difficult to pull off, & will require extensive eventing of skills, as well as components to your damage formula. Honestly, even I probably wouldn't recommend trying it, & I've created some rather extensive systems through vanilla eventing, that can replaced with plugins.

However, if you really wanted to try it vanilla.

You're going to need a way to track individual kills, & apply them to a variable. A variable for each potential player character, & a variable for each potential # position in an enemy warband, which will be added into the damage formula as a secondary value. Because obviously your player characters can't share variables, or it will muck up your whole system. & you don't want a try to have a variable for each enemy for a variety of reasons, but you still need to evaluate the differences in variables. So if the largest enemy warband you create is five enemies, then you need five position variables.

You'll also need a two layered switch system for each potential enemy number, as well as each potential party member. The first layer of switches will indicate if a party member or if an enemy warband position holder is dead, & the second layer switches will indicate if our evals have been executed; which means both layers will have to be "off" at the start of every battle, & then be turned on when applicable. Which means you'll also need a method to turn all of those switches off, after every battle. It will need to be two layered, so that the variable manipulation will be conducted when the enemy or player character is dead, but isn't looped to repeat the variable manipulation for as long as the enemy or player is dead.

Additionally, you'll potentially need a state application component in your damage formula, though how that works is going to depend greatly upon whether or not you have any overlap in skills, between player characters, as well as between player characters & enemies.

For example, if none of your player characters have overlap with each other or with enemy skills, then you can have a common event linked to their respective skills, that will check for the "death state" upon their potential opponents, & if present turn on their respective death switch; after which the second layer comes into effect where it checks if there has been a variable adjustment, & if an adjustment hasn't been made, it will make the variable adjustment & turn on the second layer switch, but if the switch is already on won't do anything. This should work, as common events linked to skills apply, after the contents of the damage formula. This of course means you'll also need to create skill variants for each of your enemies, based on positional rank in the warband. I.e. Bat 1 uses "Position 1's Skills", Bat 2 uses "Position 2's skills", etcetera, etcetera. So that each skill set can have their respective damage formula, linked to their respective variable.

This of course potentially rather dramatically increases the number of skills in your skill tab, & potentially causes you to hit the skill cap of 2,000 with relative ease, so it's less than ideal.

If you have overlapping skills though, you'll need your state application component, that will apply a neutral state to the skill user, as part of your damage formula. As well as linked common event to the skills just like before, that checks for the applicable first layer "death switch" & second layer "eval switch", & then if applicable makes modification to the desired variable based upon who is currently "marked" with the damage formulas "skill user state". & then of course remove that state from the current holder, so that there is only ever one nemy or character "marked" at a given moment in the battle.

While this method removes the problem of potential multiple variants of the same skill, it creates a new problem. Namely, you'll have to extensively rewrite your damage formula with multiple conditional for "A" being each potential actor, as well as each potential enemy warband position, to determine the correct variable to add to the damage formula.

Simply put, is it possible to accomplish? Yes.
Would I recommend either method? No.
Thank you very much for the in-depth explanation. I can see the effort that went into it.
It sure is a lot more complicated, than I would have thought. My guess was that there is a simple "auto-variable" already existing for such a thing as the individual actor-kills, that just needs to be adressed somehow, but seing your explanation really makes it not worth for me to do it by non plugin-means.
Well, RPGMMV can do a lot, but also a lot of seemingly trivial things cannot be performed easily, as I see.

Again, thank you all for the information and effort.

EDIT: My, my. I takes me so long to make a post, that I missed another person's post. :p
Are you using Yanfly's plugins, especially this Battle Statistics? There is a function which returns actors' total kills and i think you can use it in damage formula or somewhere else like this:
Code:
a._killCount
or
Code:
$gameActors.actor(x)._killCount
Yes, I use that one. I may just try out your suggestion.

Thank you very much.

EDIT 2: Superb. Your suggestion works just fine. By using
Code:
a._killCount
within the damage formula, I am able to build the desired skill.

Thanks a bunch. Problem solved and new skills rolling. ^^
 
Last edited:

Lionheart_84

Veteran
Veteran
Joined
Oct 27, 2015
Messages
538
Reaction score
49
First Language
Italian
Primarily Uses
First, I like to thank you for replying so fast. You sure are nice and helpful. :)

Thank you for letting me know about it.
I use already a plugin (YanFly's BattleStatistics along others), but silly me should have stated that beforehand. But when accessing the plugin, I see no instructions or possibilities to use any by that plugin gathered information in damage formulas.

Don't worry about that. I know about how fast this can be broken, so I would control it by several means, like that skill not ignoring DEF among many other possibilities, like letting the skill only get around 0.4 DMG for a killed enemy and by earning the skill later in the game by special means. I never liked it the way Final Fantasy did it, especially the Tonberry-way :p.
Yes, I have to say, Final Fantasy 9 was rather creative with it's skills, even though, I, to be honest, find them even more broken in that game the way they are. Freya hits the damage cap by simply killing 100 dragons, which is way faster than killing 9999 enemies, right? ^^ Also, Quinas Frog Drop was just as broken, as one is able to max it out even earlier, as it's formula was catched frogs * Quina's level, resulting in me doing 9999 damage at the middle of disc 3 (just leave the golden frogs for a higher reproduction rate). My game is meant to have a damage level of around 3000 DMG with a normal hit on level 100, depending on the situation, while maintaining a damage cap of 9999. So, if someone is really grinding for a maxed-out kill-skill, he would need to kill at least 25.000 enemies for it, given the hit enemy is without any defense and not a boss, (the skill would use an element that any bosses are immune to) and if he or she does that, then he or she clearly deserves the result, I think, as it sure takes a while for doing that, aswell as being boring as all heck. ^^
Thank you very much for the hints and suggestions. They may be useful in the near future.

Thank you very much for the in-depth explanation. I can see the effort that went into it.
It sure is a lot more complicated, than I would have thought. My guess was that there is a simple "auto-variable" already existing for such a thing as the individual actor-kills, that just needs to be adressed somehow, but seing your explanation really makes it not worth for me to do it by non plugin-means.
Well, RPGMMV can do a lot, but also a lot of seemingly trivial things cannot be performed easily, as I see.

Again, thank you all for the information and effort.

EDIT: My, my. I takes me so long to make a post, that I missed another person's post. :p

Yes, I use that one. I may just try out your suggestion.

Thank you very much.

EDIT 2: Superb. Your suggestion works just fine. By using
Code:
a._killCount
within the damage formula, I am able to build the desired skill.

Thanks a bunch. Problem solved and new skills rolling. ^^


I tried like you, but my ability always causes 0. Is something wrong?:headshake:
 

Wavelength

MSD Strong
Global Mod
Joined
Jul 22, 2014
Messages
5,867
Reaction score
5,448
First Language
English
Primarily Uses
RMVXA
@Lionheart_84 Please do not "necro" old support threads (post in a thread that hasn't gotten a post in over 1-2 months). It tends to confuse members who see the first post and think it's a new question that needs to be answered. Instead, create a new topic for your question (explain what you tried that always causes 0 damage), and link back to this thread if it provides necessary information for the problem you're having (or what you've tried).

I might be able to solve it for you real quick - that a._killCount requires the plugin that was mentioned, otherwise it will be gibberish to RPG Maker. And when you type gibberish into the Formula, it results in 0 damage. If you have that plugin already, then make the new topic.

Closing this thread.
 
Status
Not open for further replies.

Latest Threads

Latest Profile Posts

6 more weeks of this nutty semester. Then maybe I'll have time to game make. After I curl up and sleep for a day or two that is.
Wondering how big I can make Dorothy's skill menu before the game just becomes irredeemably bad.
Studio Blue is playing the RPG Maker game Phil Alone live now! Phil may be alone, but you don't have to be, come join us in chat!

I'm in desperate need of environment sprites and tilesets for my game. If anyone is interested please DM me im willing to pay.

Forum statistics

Threads
109,208
Messages
1,043,071
Members
141,725
Latest member
718346584zy
Top