Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Expanding the Elemental Efficiency to more than 6.

I was trying to recreate Ragnarok Online's Element table system (one of the best element system in mmo)
http://irowiki.org/wiki/Element

Though I am using Trickster's individual element efficiency so I can alter the numbers, RMXP limitation of only 6 slots (A to F) severely limits me >.<
Since the element table requires:
-100, -75, -25, 0, 100, 125, 150, 175, 200 so that's 9 slots o.o

I know people can break RMXP limits (terrain tag, more than 999 stuffs, etc)
So is it possible to raise the element efficiency to more than A to F by unlocking additional letters o.oa
If yes, can trickster's script be compatible with it also o.o

Thanks for reading ^^;
 
First of all, this is clearly Script Support.

In general, you can have virtually unlimited different elements. Changing it in the script isn't that hard either - the problem is where you input it, as you won't be able to modify the default interface to let you choose more than the A to F values. That means you have to have a different mean of input, which could be achieved multiple ways... first and probably easiest one would be to have a database-like variable in array form that looks somewhat like this:[rgss]# array version
@skill_elements = [1, 4, 3, 4, 8, 385]
 
# hash version
@skill_elements = {
    1 => 1,
    2 => 4,
    3 => 3,
    4 => 4,
    5 => 8,
    6 => 385
}
[/rgss]

This was typed while eating a pizza, but it should still be perfectly true :p Anyway, that'd be your database-like variable that stores element values according to IDs of your skills. The advantage of the hash kind is that you can assign non-consecutive values, btw - in other words, you can skip IDs and it still works out, while you have to set them to 0 in your array. You also have the IDs at hand, meaning you won't get lost when assigning your 5000 skills.
Note that this technique is something you can use if you want it to be useable without any other scripts and you want people to have few trouble setting it up, as this is a commonly known type of setting up scripts around .org


The second method I can only heavily suggest you is using my Database Flag Reader for this, for which you find a link in my signature. It allows you to set a variable for each skill right in the database where they belong. So, you'd have something like this for each skill:
Code:
Elements = 4
Setting it up will be easier than for the above example, as you're actually getting the value right from the database entry, not from a scripted database (technically, you do... but yeah). Meaning, instead of writing @skill.element_set, you write @skill.flags('Elements') - and you're done! Well, not quite, of course you still have to set up the surroundings, but that's also true for the first one.
You'll use this if you prefer compactness, useability and integration over public ease of use.


Last of all, you have the option to create your database another way, for example manually. This would require some thoughtful architechture and, to be honest, would probably require much more work than necessary. The advantage with this method is that you could use the default scripts just like that. Hm, I guess it really is time for an external database editor...


Either way, when you decided on which of these you like best, I guess tell us handy scripters what you want and we'll see to it. It really isn't a tedious process at all and will maybe take about 5 minutes only to someone familiar with the system. You definately need to tell us which RM version you're using, though.
 
Wow o.o
I got lost at the deep words you used there ^^;
Though I kinda get what you mean though I don't have the scripting knowledge to do so T-T

For one I use RMXP
And how element functions
http://ratemyserver.net/index.php?page=misc_table_attr

As you see, there are four tables because each element is divided to 4 levels.
Lets say a monster is of level 1 fire property and if you hit it with level 1 water, it will do 150% damage
A monster of level 2 fire property, if hit with the same level 1 water, will do 175% damage
level 3 fire = 200% damage (so if you notice, it goes by 25% per level either bonus or resistance with max of -100% resistance and 200% bonus for level 1 attacking)
So a level 4 fire will still get 200% since its the max for level 1

Everything would go well if all attacking element is always level 1, but things get complicated if attacking element levels up, each level up increases its damage table by 25% (level 2+ attack element has 300% bonus cap) so ex.
A level 1 fire monster hit with level 2 water will now do 175%
A level 1 fire monster hit with level 3 water will now do 200%
A level 1 fire monster hit with level 4 water will now do 225%

A level 4 water monster is hit with level 1 water will actually heal it by 50%
But a level 1 water monster hit with level 4 water will do 100% damage

So the whole thing also relies on what attacking element is used and what defending element is hit.

Yeah it would be a pain to set it up >.<
I could maybe set up the database on the script instead of relying on RMXP A-F
Using the stuffs you just mentioned ^^;

Element = [1, 2, 3, ....4] 1 = fire, 2 = water, etc...

Attacking Element (skills, enchanted weapons)
1 (fire) = [1 => 25%, 2 => 0%,...] So fire (1) hitting fire (1) is 25% damage, fire hitting water (2) is 0% damage
2 (water) = [1 => 125%, 2 => 25%]

Defending Element (monsters, armor enchanted equipments)
1 = [1 => 25%, 2 => 125%] fire getting hit by fire is 25% but getting hit by water is 125%

Complicated enough but still be compatible with battle system (I might use it on other battle systems like XAS)

I am willing to put an extra effort in elements since most people take it for-granted, so player would actually take a time to set up their equipments/skills for boss instead of just using the most powerful spell ^^;

Thankies for reading ^^;
Though I understand the concept, I have 0% scripting ability T-T
 
Now that you explained it that way, I'm lost on why you need more than 6 levels of elements... you actually need 4, no? You set up your element list normally, as in one entry = one element, and just use A for Lv1, B for Lv2, C for Lv3 and D for Lv4... the scripting part to get it work the way you want it is still ahead, however this completely eliminates the necessity to increase the number of element levels.

Additionally, if I got what I just said right, then it'd make more sense to integrate the individual percentages in your script instead of going the long way making it compatible with Trick's script.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top