redmedved2

Veteran
Veteran
Joined
Nov 2, 2020
Messages
90
Reaction score
37
First Language
Belarusian
Primarily Uses
RMMV
I think this system will probably be closest to Skyrim, but the point will be that the player will be able to develop his magic in the direction of several elemental schools. And the main features are as follows:

- The player will get experience points of that element when using skills of the corresponding school. Let's say that your experience in different schools will be expressed in terms of the value of basic variables. I think it can be done by setting the appropriate variable growth for different spells using yanfly action sequences for skills noteboxes, so it's not big deal.

- With the increase of experience in the corresponding elemental school, the mana cost for all spells of that school will be reduced. I've seen a plugin that allows the player to gain experience for specific spells, but I find this system inconvenient for the player and therefore I want the mana consumption for all spells of the school to go down at once.

- Ideally, I want the player to be able to find scrolls and learn high-level spells, but until his skill reaches a certain level, the mana cost will be too high for practical use of such spells. For example, you can find scroll "firestorm", but until your experience in fire school is higher than 20, the mana cost of the firestorm will be >100 MP, but when your experience will be higher than 20, the mana cost of the spell will be drastically reduced and could be as low as 40 MP at a skill level of 23.
1632306110425.png
Since I realize how difficult it is to do, at most I will simply forbid the player to learn high-level scrolls before reaching a certain skill level, and the mana cost of the firestorm scroll itself to start at 40, but ideally, I really want to create the system that I described earlier. It would allow the player to use such powerful spells in extreme cases, as well as allow him to train the skill better, using high-level spells when his skill is not yet high enough.

- I want to somehow output the player's statistics about his skill level at the various schools. Ideally, I'd like to know how to show this on the character screen, but at the very least I can make a separate interface for elemental magic and use custom scales (the MOG ones) to display it.

- And also I would also like to know how you can create a combo of different spells with additional effects. For example, when using water, there is a chance to make the opponent wet. And if you use ice magic on a wet opponent, he will freeze.

Probably the main feature for me is to find out how you can reduce the cost for all spells of a certain school because this will be the main mechanics for the elemental schools. But the rest are just as important and will add more immersion for the player. I got some ideas after using the FROG magic plugin. But since in my project it did not take root, I decided to just take some mechanics from it and recreate them using other plugins.
I would be very happy if you could tell me how to do this, and even better if you have ideas on how to extend this system since so far I am only at the planning stage.
 

ATT_Turan

Forewarner of the Black Wind
Veteran
Joined
Jul 2, 2014
Messages
2,772
Reaction score
1,623
First Language
English
Primarily Uses
RMMV
I suggest you look through the plugins available for MV. For example:
I want the player to be able to find scrolls and learn high-level spells, but until his skill reaches a certain level, the mana cost will be too high for practical use of such spells...Since I realize how difficult it is to do...
That's not difficult at all, using Yanfly's Skill Core to set up custom costs.

I know I've seen something in a plugin to design spell schools, too, perhaps by Frogboy.
 

redmedved2

Veteran
Veteran
Joined
Nov 2, 2020
Messages
90
Reaction score
37
First Language
Belarusian
Primarily Uses
RMMV
I suggest you look through the plugins available for MV. For example:

That's not difficult at all, using Yanfly's Skill Core to set up custom costs.

I know I've seen something in a plugin to design spell schools, too, perhaps by Frogboy.
I read in detail the description of Yanfly plugins and you were right, it is possible with something that is called a "lunatic mod".
There was a simple formula that even I without any JS knowledge could handle. I wrote this for my ignition spell:

<Custom MP Cost>

cost -= $gameVariables.value(1) / 10;

</Custom MP Cost>

The base cost is 6, and each cast will give you +1 EXP to the fire school, so when your EXP will be 60, the ignition spell will cost nothing.(actually when 51 due to how the engine handles data, but that's not a big deal).
Now I need someone help to modify this formula and write something like this in JS:

If $gameVariables.value(1)<= 20 >>>>> cost = 300;
If $gameVariables.value(1)>= 20 >>>>> cost -= $gameVariables.value(1) / 10;

I don't know if is it good manners to ask someone to write a formula in JS instead of learning it yourself, but I'm afraid I need help here.
(this isn't addressed to Turan only, but actually for anyone who knows JS or worked with Lunatic mode)
 

ATT_Turan

Forewarner of the Black Wind
Veteran
Joined
Jul 2, 2014
Messages
2,772
Reaction score
1,623
First Language
English
Primarily Uses
RMMV
If $gameVariables.value(1)<= 20 >>>>> cost = 300;
If $gameVariables.value(1)>= 20 >>>>> cost -= $gameVariables.value(1) / 10;
It's basically that, just without all those weird arrows and slightly improved logic. I don't see the point of the first line - the 300 should just be the cost that you set in the actual skill, no need to do it again in a notetag. Then:
Code:
if ($gameVariables.value(1)>=20)
    cost-=$gameVariables.value(1)/10;
Or just get rid of the conditional stuff, start the cost at 302, and have the statement from your last post. Not like those two whole MP make that much of a difference :wink:
 

redmedved2

Veteran
Veteran
Joined
Nov 2, 2020
Messages
90
Reaction score
37
First Language
Belarusian
Primarily Uses
RMMV
It's basically that, just without all those weird arrows and slightly improved logic. I don't see the point of the first line - the 300 should just be the cost that you set in the actual skill, no need to do it again in a notetag. Then:
Code:
if ($gameVariables.value(1)>=20)
    cost-=$gameVariables.value(1)/10;
Or just get rid of the conditional stuff, start the cost at 302, and have the statement from your last post. Not like those two whole MP make that much of a difference :wink:
Yes, I didn't think of it before(to not overdo the code lines and just set the base mp cost).
As for me, well, I have no idea what I've been doing for the last two hours and how I came up with this, but after reading about basic JS operations and playing with the numbers in this formula, I created something like this:

<Custom MP Cost>

cost = ((1000 - $gameVariables.value(1)) / $gameVariables.value(1);

</Custom MP Cost>

1632332423188.png

It's not quite what I talked about before, but it's just fine for my fireball spell I think. It looks like from now on I'll have to make similar formulas for each ability as well. The only thing that I have to decide now is to determine whether to show the player scary numbers before reaching a certain skill level (because if you'll find a "universe firestorm" scroll on the first level of fire school you'll see like 58135195629469 MP per cast).
So, for example, as long as the player's skill level is less than 20, I can just write the cost of the spell - 70. And then use this curve afterwards like that.


<Custom MP Cost>

if ($gameVariables.value(1)<= 20) {
cost = 70;}
else {
cost = ((1000 - $gameVariables.value(1)) / $gameVariables.value(1));}
</Custom MP Cost>

It seems to be working correctly, but with your addition, I can just do this:

<Custom MP Cost>

if ($gameVariables.value(1)>= 20) {
cost = ((1000 - $gameVariables.value(1)) / $gameVariables.value(1));}
</Custom MP Cost>

And set the basic value for 70.
Perfection.
 

ATT_Turan

Forewarner of the Black Wind
Veteran
Joined
Jul 2, 2014
Messages
2,772
Reaction score
1,623
First Language
English
Primarily Uses
RMMV
And just for the sake of your growing knowledge - it doesn't affect anything in your code, but you have an extra parentheses around that whole equation.

You don't need to do x = (2+2); you can just do x = 2+2;
 

Damascus7

Veteran
Veteran
Joined
Jul 21, 2019
Messages
116
Reaction score
27
First Language
English
Primarily Uses
RMMV
Frog's Talent Core could help you as well, as I use it for something somewhat similar. I have a system set up where using certain skills or weapons will level up the associated talent. And as that talent levels up, they do more damage and unlock new skills.
 

redmedved2

Veteran
Veteran
Joined
Nov 2, 2020
Messages
90
Reaction score
37
First Language
Belarusian
Primarily Uses
RMMV
Frog's Talent Core could help you as well, as I use it for something somewhat similar. I have a system set up where using certain skills or weapons will level up the associated talent. And as that talent levels up, they do more damage and unlock new skills.
I just tried it and this system is really good for someone who's trying to get more into D&D stuff and defining characters roles, but I think I'll make some separate interface with all the schools of magic like a book with pictures and put scales and statistics there.
It's just that this whole system with skills is a bit off for me, I need something simpler for my game, because there are already a lot of different mechanics in it.
 

ATT_Turan

Forewarner of the Black Wind
Veteran
Joined
Jul 2, 2014
Messages
2,772
Reaction score
1,623
First Language
English
Primarily Uses
RMMV
I think I'll make some separate interface with all the schools of magic
I don't know if you have since actually looked at the plugins that I recommended (or if you just prefer to do it yourself!), but Frogboy's Magic plugin has schools of magic.
 

redmedved2

Veteran
Veteran
Joined
Nov 2, 2020
Messages
90
Reaction score
37
First Language
Belarusian
Primarily Uses
RMMV
I don't know if you have since actually looked at the plugins that I recommended (or if you just prefer to do it yourself!), but Frogboy's Magic plugin has schools of magic.
The problem is that this plugin just does not work correctly in my project, there are some compatibility issues with other plugins. I tried rearranging them or changing the settings, but in the end, I decided to just leave it alone.
Actually there may be ways to get it to work, but I probably just don't want to deal with this plugin. In general, I'm afraid to add new plugins to my game, because I understand that it is already a bit overloaded. And this is fine because, on the example of the above actions, I can say that there is no need for new plugins, I can just learn how they work and do the same thing with my yanfly plugins, and it will be stable.
 

redmedved2

Veteran
Veteran
Joined
Nov 2, 2020
Messages
90
Reaction score
37
First Language
Belarusian
Primarily Uses
RMMV
This post is a little bit old, but since some questions remain unresolved, I'll write about what I need help with.

Objective: To create a system in which enemies can have the effects of burning, freezing, wetting, etc.
Problem: I can't figure out how the plugin works.(YEP action sequence)

Some elements cannot exist simultaneously and supersede each other: if you put burning on a frozen opponent, freezing will be removed, or vice versa, freezing will extinguish a burning opponent.

And here's the fun part: when some compatible elements interact, there's a combo: for example, if you blow wind on a burning enemy, it will cause an explosion that damages all enemies, with the removing of all burning effects.

So far I've only been able to implement the incompatibility system with yanfly action sequences. Here is what my Ignition spell notes looks like:

<setup action>
CHANGE VARIABLE 141 += 2 (this one adds experience to your fire element school)​
CHANGE VARIABLE 161 = 3 (effect chance for the next common event)
COMMON EVENT: 5 (effect randomizer, if it's successful, variable 161 will be 20)
if $gameVariables.value(161) >= 20 (in other words, if the burning effect will be applied)
remove state 28: target, show (remove the freezing effect)
add state 29: target, show (apply the burning effect)
end
</setup action>

I can't send a screenshot of the overall event because it's cumbersome and on my editor in Russian, but the gist is that abilities have 3 chances to apply the effect on the enemy (small, medium, and large - 1,2,3)
I assign a variable value corresponding to the chance of applying the effect, and then the general event "rolls dice "according to that chance, so to speak.
But here's the problem: I don't know how to make abilities have combos in addition to everything above.

For example, there is a curse and a freeze on the opponent.
I use ignition spell on him, which has a chance of causing a burning effect.
If the effect will be applied due to randomness, then the opponent's freeze should drop, and instead of the curse that was on him and the burn that should appear, he should get a cursed flame.

Basically, I need something like this:


<setup action>
CHANGE VARIABLE 141 += 2
CHANGE VARIABLE 161 = 3
COMMON EVENT: 5
if $gameVariables.value(161) >= 20
remove state 28: target, show
add state 29: target, show

if $gameVariables.value(161) >= 20
remove state 29: target, show
add state 30: target, show (add cursed flame)
end
end
</setup action>

But that's just an example, it actually doesn't work for I have no idea how to apply the multiconditional branches in YEP action sequence notes. And I'm here to ask you how to actually make it work.
 

ATT_Turan

Forewarner of the Black Wind
Veteran
Joined
Jul 2, 2014
Messages
2,772
Reaction score
1,623
First Language
English
Primarily Uses
RMMV
Action Sequences do not support nested if statements. If you Google it, someone wrote a plugin extension that adds that functionality (maybe DreamX? Dunno, it should come right up).
 

redmedved2

Veteran
Veteran
Joined
Nov 2, 2020
Messages
90
Reaction score
37
First Language
Belarusian
Primarily Uses
RMMV
Action Sequences do not support nested if statements. If you Google it, someone wrote a plugin extension that adds that functionality (maybe DreamX? Dunno, it should come right up).
Found it.


Works perfect, thanks.
 

Latest Threads

Latest Posts

Latest Profile Posts

By the power of timezones! This picture shall still be posted on december 1st!!!
7xI2Gc2.jpg

This is not something I'd ever even considered but wow! What a way to use music in a game.
I am a complete fool. I went through the trouble of making a clone sprite and setting up a system to have the characters flash, when it turns out - I never noticed that the "._mainSprite" was the actual bitmap being used. I'm happy since that makes compatibility easier, but I also want to scream.
Synchronizing bust and sprite expressions! Plus using a phone behaviour :kaopride:
BVadZby.gif

Long gif tho, let it load first :kaoswt2:
Wondering how to force a Save State in VNMaker with a name and how to call it with a scene event in order to double check if this Save State exists or not. Phew... Leaving breadcrumbs for chapter DLCs to pickup would be more than half the fight in order to finish this visual novel :LZSsad:

Forum statistics

Threads
117,115
Messages
1,104,710
Members
153,156
Latest member
ridge_tim
Top