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.

Revamping the level system

Hi guys!

do you think its possible to to revamp the level up system and change with something else?
like for example the hero will start at Rank F and then progress upto Rank A?

did somebody already made this?
 
uhm.. i want to request a script called..

"Rank system"

it works as instead of Level 1 - Level 99, the hero will start from F- upto S+

Guide from lowest to highest:
F-
F
F+
E-
E
E+
D-
D
D+
C-
C
C+
B-
B
B+
A-
A
A+
S-
S
S+
S++

and thats it. i hope someone would grant my wish :)
 

Akin

Member

here this is for VX, if you needed it for XP sorry but I won't be making one that works for XP.
Use however you want, this was simple so no need to credit.

1 to 99 doesn't work for the list you gave so its 1 to 21

Code:
# Ranks for levels
# Uses a rank system for levels 1 to 21
# levels after 21 returns S++ the same as 21
# written by Akin

module Akin_Level
  def self.rank(level)
    if level <= 1
      return "F-"
    elsif level == 2
      return "F"
    elsif level == 3
      return "F+"
    elsif level == 4
      return "E-"
    elsif level == 5
      return "E"
    elsif level == 6
      return "E+"
    elsif level == 7
      return "D-"
    elsif level == 8
      return "D+"
    elsif level == 9
      return "C-"
    elsif level == 10
      return "C"
    elsif level == 11
      return "C+"
    elsif level == 12
      return "B-"
    elsif level == 13
      return "B"
    elsif level == 14
      return "B+"
    elsif level == 15
      return "A-"
    elsif level == 16
      return "A"
    elsif level == 17
      return "A+"
    elsif level == 18
      return "S-"
    elsif level == 19
      return "S"
    elsif level == 20
      return "S+"
    else
      return "S++"
    end
  end
end

class Game_Actor < Game_Battler
  def display_level_up(new_skills)
    $game_message.new_page
    rank = Akin_Level.rank(@level)
    text = sprintf(Vocab::LevelUp, @name, Vocab::level, rank)
    $game_message.texts.push(text)
    for skill in new_skills
      text = sprintf(Vocab::ObtainSkill, skill.name)
      $game_message.texts.push(text)
    end
  end
end

class Window_Base < Window
  def draw_actor_level(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
    self.contents.font.color = normal_color
    rank = Akin_Level.rank(actor.level)
    self.contents.draw_text(x + 32, y, 24, WLH, rank, 2)
  end
end
 
Is there a way to make this work along with, but independent of, the leveling system? For example, your party increases in rank after completing certain tasks (mainly killing monsters). I am trying to implement a Final Fantasy 12-type mark hunting system, where an NPC assigns contracts to find and kill certain boss creatures. But you can only get new marks at higher ranks. For anyone who doesn't know what I'm talking about, a video can be found here:

http://youtube.com/watch?v=YH-bfLuv5Fw

The actual part I'm looking for is at 2:00 in the video. Thanks in advance.
 

Akin

Member

No, you need an entirely new system. This is just a rewrite to levels. So instead of printing 1 it prints F- instead of printing 21 it prints "S++". Thats all this is.

You could use a similar way of naming the levels for the system you want, but this is in NO WAY the related to the kind of thing your looking for.
 
Hey Akin! thanks for filling up my request! im going to credit you in my game XD
*mwuah*

Question> how can i increase the needed experience for their ranks?
because if im correct, F- to S++ is lvl 1-21 only :D
 
Akin, nice!

bojo, for each actor, set the 'Initial Level', 'Final Level', and EXP Curve.
With the EXP curve, it looks like the max total EXP you can get at level 21 is 31447. (Basis & Inflation both at 50)

If this number is still too low, you could either adjust all of the enemies to give less EXP,
or modify the 'if' statement to look something like...

Code:
module Akin_Level
  def self.rank(level)
    if level <= 4
      return "F-"
    elsif level <= 8
      return "F"
    elsif level <= 12
      return "F+"
    elsif level <= 16
      return "E-"
    elsif level <= 20
      return "E"

etc...

Be Well
 

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