naruzeldamaster

Veteran
Veteran
Joined
Jun 9, 2014
Messages
70
Reaction score
3
First Language
English
Primarily Uses
Ok so I thought of a really interesting mechanic that's a little bit of a double-edged sword.


What if there was some way to 'use' EXP, in place of the overdone MP/TP meters? 


My idea is that you still level up normally, but your spells/ technical moves cost certain amounts of EXP.


EX: Party Member A is at Level 10 which requires one thousand EXP to attain, and has 150 EXP. They use a technique or spell that costs 250 EXP, so they level down to level 9 but with 900 EXP and to get back up to level 10, they only need 100 EXP


The only stats affected by this system is your HP and Base Damage/Base Defense, all other stats depend on your class / armor that you wear.


I think it'd be really cool to have a change of pace, especially when level caps are annoying and going beyond that is pointless. Basically this is a way to keep you from cheesing through bosses with potions/items. You either play the way the game expects you to play or you get punished for just spamming.


I'm....just really unsure how to pull this off, I haven't seen this in any game that I've played (not even Rougelikes ) so it'll at least be unique at the very least.
 

deilin

Ranger/Elementalist
Veteran
Joined
Mar 13, 2012
Messages
1,188
Reaction score
172
First Language
English
It can be done somewhat easily with scripting, but here are something to think about... Do you want it to de-level you? Consuming EXP will cause you to de-level and even lose skills. I can see this used more with a balanced curve tree, maybe, but not with the standard curve.
 

naruzeldamaster

Veteran
Veteran
Joined
Jun 9, 2014
Messages
70
Reaction score
3
First Language
English
Primarily Uses
It can be done somewhat easily with scripting, but here are something to think about... Do you want it to de-level you? Consuming EXP will cause you to de-level and even lose skills. I can see this used more with a balanced curve tree, maybe, but not with the standard curve.

I was thinking that your skills could be tied to your weapons. You could attack normally (physical attack) or with a Magical ability tied to the weapon. 


It would De Level you (hence being a double edged sword) but only your base stats of attack defense and HP. Think of it as a Risk-Reward type system. "Yes, I could one shot the boss with the high level weapon skill, but it has  a 25% hit chance and I could be down 3 levels by doing it and end up gimping myself even more. If It Does hit I'll get back most of the lost exp from using it from defeating the boss."


Armor and Weapons don't have level requirements other than being more expensive and having to get to X point in the game. Armor/Weapons from quests/missions would be more unique and have better skills.


The whole point of it de-leveling you is to keep you from spamming powerful spells and attacks, you know, the old 'mash A to win' trope. Nothing ruins a good RPG for me than being unable to improve your skills and level up.


Since skills/abilities are tied to weapons the only stats affected by losing EXP is your base attack/defense and HP. Extra Defense/Attack other stats can be attained by armor and weapons.


The Default attack (the standard attack) option wouldn't cost any EXP and it's effectiveness is affected by base stats.
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,421
Reaction score
600
First Language
Italian
Primarily Uses
RMVXA
I would definitly like a system like that. And if every skill is equipment-based then it even simplier to do. As deilin said it's quite easy with scripting.


Since I really like the idea here is the script for you:

Code:
=begin
Put this in the script window below Material. Once you do it your TP and MP skill cost is paid using EXP.
The only thing you have to do is set up your normal tp and mp values in your skills.
=end

class Game_BattlerBase
  def skill_cost_payable?(skill)
    exp >= skill_tp_cost(skill) && exp >= skill_mp_cost(skill)
  end
  
  def pay_skill_cost(skill)
    if actor?
      self.change_exp(exp - skill_mp_cost(skill), false)
      self.change_exp(exp - skill_tp_cost(skill), false)
    else
      self.mp -= skill_mp_cost(skill)
      self.tp -= skill_tp_cost(skill)
    end
  end
end





This is a very basic script so it only reduces actors exp using the skill MP and TP cost, I tested it and it works. I hope you have luck with your project.
 

naruzeldamaster

Veteran
Veteran
Joined
Jun 9, 2014
Messages
70
Reaction score
3
First Language
English
Primarily Uses
I would definitly like a system like that. And if every skill is equipment-based then it even simplier to do. As deilin said it's quite easy with scripting.


Since I really like the idea here is the script for you:

Code:
=begin
Put this in the script window below Material. Once you do it your TP and MP skill cost is paid using EXP.
The only thing you have to do is set up your normal tp and mp values in your skills.
=end

class Game_BattlerBase
  def skill_cost_payable?(skill)
    exp >= skill_tp_cost(skill) && exp >= skill_mp_cost(skill)
  end
  
  def pay_skill_cost(skill)
    if actor?
      self.change_exp(exp - skill_mp_cost(skill), false)
      self.change_exp(exp - skill_tp_cost(skill), false)
    else
      self.mp -= skill_mp_cost(skill)
      self.tp -= skill_tp_cost(skill)
    end
  end
end





This is a very basic script so it only reduces actors exp using the skill MP and TP cost, I tested it and it works. I hope you have luck with your project.

Thank you very much ^+^


I will be taking a while to get this project rolling (I have a Visual Novel I'm working on at the moment and I'm waiting for Degika's VN Maker to come out) but I can work on this project little by little on the side as a pet project.


Is there a way to tie skills to weapons so that you don't 'un-learn' skills by leveling down?


This system is fine without that feature (of skills being tied to weapons) but to make every weapon worthwhile (especially weapons from hard quests/missions) I'd like to include it.


I have no skill with coding (let alone how Ruby Script works and anything like it) so I like to focus on things that I can do. Which thanks to the simplicity of RPG Maker is most of my game XD Even if I use generic assets


Basically it needs to check if X weapon is equipped and allow you to use X skill, without constantly doing a 'you learned *skill*' message whenever you equip something.


You will be credited for this! ^+^
 

LadyBaskerville

Hell-poodle
Veteran
Joined
Sep 12, 2016
Messages
645
Reaction score
530
First Language
German
Primarily Uses
RMMV
Is there a way to tie skills to weapons so that you don't 'un-learn' skills by leveling down?



Yes, in the weapons Features list -> Skill -> Add Skill. Just make sure your actor has access to the Skill Type the skill belongs to (Special, Magic, ...), otherwise it won't show up in the actor's skill list. (I'm a fan of that feature too :D )
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,421
Reaction score
600
First Language
Italian
Primarily Uses
RMVXA
@naruzeldamaster I am glad my script helped you. Tell me if you need any extra feature and I'll try to add it when I have time.
 

naruzeldamaster

Veteran
Veteran
Joined
Jun 9, 2014
Messages
70
Reaction score
3
First Language
English
Primarily Uses
@naruzeldamaster I am glad my script helped you. Tell me if you need any extra feature and I'll try to add it when I have time.

Making it so the TP/MP bars are replaced with an EXP display would be nice, since it's a different mechanic than people are used to it'd be a nice touch to be a guide without holding the player's hand. If they spam techniques and abilities and get gimped that's on them lol


Granted it would need to display enough digits to reach the level cap (level 50 ) and I don't know how large a number that'll be just yet. It will probably be a more even curve (if I can get it to nice round numbers for every level)
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,421
Reaction score
600
First Language
Italian
Primarily Uses
RMVXA
I honestly think an exp bar is not something THAT useful and I am going to explain why. In the standard system you have a bar displaying your actual MP over your Maximum MP. The MP/MMP gives you the ammount of bar filled. In a system where the player can gain/lose exp just by using skills there is virtually no exp limit. That said how can I display a partially filled bar when there is no maximum value I can use?
 


That's expecially true if you want to decrease actors' level (which is a good thing if you ask me). But in this situation a bar has even less sense since even trying to refer to the ammount of experience needed to reach the next level is futile...the level itself can change during a battle.


Of course that's different if you want to display the exp needed to reach the level cap as the maximum value...but using that system the bar will always appear empty until the player reaches a decent level.
 

naruzeldamaster

Veteran
Veteran
Joined
Jun 9, 2014
Messages
70
Reaction score
3
First Language
English
Primarily Uses
Hmm, that is a fair point.


I guess the only other thing then would be to get it working with the 'weapons level up' script without the weapons leveling down when using spells and attacks.


I'll be using the 'enemy encounters on map' script so you can prepare before the battle. (they won't actively chase after you until later in the game)
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,421
Reaction score
600
First Language
Italian
Primarily Uses
RMVXA
Just to get an idea of what I mean. This is a screenshot of the exp bar. I used a fixed exp cap value of 529492 (default total exp at lvl 50 for the existing soldier class).
 

Characters level is 27 and, as you can see, the filled part doesn't even reach 1/4 of the full bar.


Immagine.png
 

naruzeldamaster

Veteran
Veteran
Joined
Jun 9, 2014
Messages
70
Reaction score
3
First Language
English
Primarily Uses
Ok, as the only other thing, do you think you can get the script to work without interfering with the weapons level up script?(so weapons can level up properly and 'learn' stronger spells/skills without leveling down / re-leveling when you use them.) I'm not sure what changes are made to the engine and I don't know enough about scripting to attempt playing with it myself.


I think it makes it so the weapons have their own EXP but seeing as how the exp is managed with the script for this idea...
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,421
Reaction score
600
First Language
Italian
Primarily Uses
RMVXA
Well, I only changed what's related to skill cost so they should be compatible.


EDIT: Even if I think that an EXP bar won't really be needed, I still think that displaying exp is important or the player won't be able to think about strategies.



This simple solution should fit your needs:

Code:
class Game_BattlerBase
  def skill_cost_payable?(skill)
    exp >= skill_tp_cost(skill) && exp >= skill_mp_cost(skill)
  end
  #--------------------------------------------------------------------------
  # * Pay Cost of Using Skill
  #--------------------------------------------------------------------------
  def pay_skill_cost(skill)
    if actor?
      self.change_exp(exp - skill_mp_cost(skill), false)
      self.change_exp(exp - skill_tp_cost(skill), false)
    else
      self.mp -= skill_mp_cost(skill)
      self.tp -= skill_tp_cost(skill)
    end
  end
end

class Window_Base
  def draw_actor_exp_text(actor, x, y, width = 124)
    change_color(system_color)
    draw_text(x, y, width, line_height, "EXP #{actor.exp}")
  end
end

class Window_BattleStatus < Window_Selectable
  def draw_gauge_area_with_tp(rect, actor)
    draw_actor_hp(actor, rect.x + 0, rect.y, 72)
    draw_actor_exp_text(actor, rect.x + 100, rect.y)
  end
  def draw_gauge_area_without_tp(rect, actor)
    draw_actor_hp(actor, rect.x + 0, rect.y, 72)
    draw_actor_exp_text(actor, rect.x + 100, rect.y)
  end
end

The result is like this:


Immagine.png



You can copy/paste the whole script to overwrite the previous one.
 
Last edited by a moderator:

naruzeldamaster

Veteran
Veteran
Joined
Jun 9, 2014
Messages
70
Reaction score
3
First Language
English
Primarily Uses
Thanks very much for your hard work ^+^ Just need to know how you would like to be credited now :p


I know it's probably a simple matter for you and other scripters.


But to me it may as well be Greek >_< I took a Visual Basic class back in the day and played around with mob talker (yes, that minecraft mod) and even that makes my brain hurt. It's not so much 'learning' it that is the issue, more in the execution. I can do it, just figuring out what to do to get the results is tough XP 


I'm going to assume that the EXP displayed is just the actors being at the level cap?
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,421
Reaction score
600
First Language
Italian
Primarily Uses
RMVXA
You can credit me using my nickname :) thank you a lot for that. About the EXP displayed that is the actor current exp so the player knows how much exp he can spend before his character exp runs out. That allows tactical planning when you exp is still low and gives you a general idea of how much exp you can spend before downleveling your character to much.
 

naruzeldamaster

Veteran
Veteran
Joined
Jun 9, 2014
Messages
70
Reaction score
3
First Language
English
Primarily Uses
Yeah this is probably simpler than I made it out to be but like I said, I have the ability to learn, execution is where it gets tricky >_<'


I'm going to assume that I can manually edit the EXP Cap to a round number (say 50 K) and RPG Maker will calculate that amount out on the levels accordingly automatically?


To make things easier the exp cost of the various skills will always be a round number too. (100, 150 etc)
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,421
Reaction score
600
First Language
Italian
Primarily Uses
RMVXA
Since it calculates actors' total exp and displays it you can set your level cap (and exp cap as well) to certain ammount directly mamaging your game classes. Character experience added after the actor reaches that point should be 0 so it should not affect your character total exp. The script will always display the character total experience.


Your skill cost can just be set in the skill tab as if you were using MP. Using round numbers can be a god thing but don't forget that you are using EXP and not MP. I am saying this because the EXP curve differs a lot from MP curve. Keep in mind: a skill that consumes 10XP can downlevel you from 2 to 1 but will be almost free when you surpass level 6 or 7.


Probably the best way to use this script is to set your exp curve as follows:

  • Base Value to maximum (it should be 50)
  • Extra Value to maximum (it should be 40)
  • Acceleration A to minimum (it should be 10)
  • Acceleration B to minimum (it should be 10)

This way a skill with a fixed cost of 2000 exp is a really strong skill that will instantly downlevel you if your level is 8 or lower but it can be used up to 8 times without downleveling once you are at level 50. (Of course 8 times without casting other skills). This option also allows you to use cheap skills (cost around 50) without downleveling even when you're a mere level 1. That doesn't mean you will be able to spam them, a couple of them will downlevel you, but at least you have an alternative to your basic attack.


Of course a system like this requires enemies that grant a decent ammount of experience based on how many skills you need to use to kill them. It is awful if a monster that requires 3 skills to be killed (let's say 450 exp for example) only gives you 100 exp. And since your skills are given by weapons you don't have to worry about your characters leveling up too fast since without focusing on weapons they won't have any skill.
 

naruzeldamaster

Veteran
Veteran
Joined
Jun 9, 2014
Messages
70
Reaction score
3
First Language
English
Primarily Uses
I know this is a dumb question but where do I put the script at again?
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,421
Reaction score
600
First Language
Italian
Primarily Uses
RMVXA
I am sorry for the late answe. Anyway open the script editor window (F11), go under "Materials", insert a new script and paste it there.
 
Last edited by a moderator:

Latest Threads

Latest Profile Posts

Tarzanthecat wrote on hiddenone's profile.
THANK YOU SO MUCH HIDDENONE ADSKFSJDFSKDF
Another unscheduled stream for Lightestone~ this time because we hit affiliate! Aaaahh- So other than the game we're also going to work on emotes/badges/etc!

www.twitch.tv/riazey
Is it necroposting if I ask for more info in my own months old thread? All the information in the thread is relevant
JRPG TextBox HTML - Part 2:

Forum statistics

Threads
108,972
Messages
1,040,947
Members
141,428
Latest member
Lark_Larkington
Top