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.

Job changing system for XP

Script Request Template
This is a request for a new script, an edit or debug of an existing script.

Script Title:
Job changing system
RMXP or RMVX:
RMXP
Detailed Description:
I'm looking for a script that will allow me to change jobs from the menu. Instead of using an item to change jobs, this should be accessible from the menu. An additional requirement is to change stats along with the job ( for example, changing to a magician from a warrior will increase Int, but lower Str).
An interface would be of great help.
Screen shots:
None, sorry.
Other Scripts I am using (in order):
Tankentai XP, LegacyX's skill shop,
Code:
 # Calculate basic damage

      atk = [attacker.atk + attacker.str / 4, 0].max

      atk = [atk, rand(atk*1.5)].max

      hits = (attacker.agi / 4 + 1)

      atk = [atk - self.pdef, 0].max

      dfn = [self.dex / 4, 0].max

      rnd = (atk * attacker.hit / 100) - (dfn * self.eva / 100)

      self.damage = hits * rnd


if someone asks a specific question, add that detail to this post.
 

Atoa

Member

About the class status change you can do that with this script:
Code:
=begin

#==============================================================================

# Modificador de Atributos das Classes

# por KGC

#==============================================================================

Esse é um script bem simples de ser usado.

Com ele você pode associar valores de multiplicação dos atributos

as classes dos personagens.

Assim, se você mudar a classe de um personagem, os atributos dele

serão modificados de acordo com aquela classe.

 

Configuração:

Esse script é bem simples de configurar, basta ir no "module KGC"

e adicionar linhas como esta:

CDS_STATUS_REVISE[ID] = [ HP, SP, FOR, DEX, AGI, INT]

Sendo

ID = ID da classe

HP = Multiplicador do HP

SP = Multiplicador do SP

FOR= Multiplicador da Força

DEX= Multiplicador da Destreza

AGI= Multiplicador da Agilidade

INT= Multiplicador da Inteligência

=end

 

module KGC

  CDS_STATUS_REVISE = [] #não altere essa linha

 

  #Adicione aqui os modificadores das classes

  CDS_STATUS_REVISE[1] = [1.2, 0.85, 1.1, 1, 0.9, 0.7]

  CDS_STATUS_REVISE[2] = [1.1, 0.95, 1, 1.1, 0.8, 0.8]

end

$imported = {} if $imported == nil

$imported["ClassDetailSetting"] = true

 

#==============================================================================

# ? RPG::Class

#==============================================================================

 

class RPG::Class

  #--------------------------------------------------------------------------

  def maxhp_revise

    return KGC::CDS_STATUS_REVISE[@id] != nil ? KGC::CDS_STATUS_REVISE[@id][0] : 1

  end

  #--------------------------------------------------------------------------

  def maxsp_revise

    return KGC::CDS_STATUS_REVISE[@id] != nil ? KGC::CDS_STATUS_REVISE[@id][1] : 1

  end

  #--------------------------------------------------------------------------

  def str_revise

    return KGC::CDS_STATUS_REVISE[@id] != nil ? KGC::CDS_STATUS_REVISE[@id][2] : 1

  end

  #--------------------------------------------------------------------------

  def dex_revise

    return KGC::CDS_STATUS_REVISE[@id] != nil ? KGC::CDS_STATUS_REVISE[@id][3] : 1

  end

  #--------------------------------------------------------------------------

  def agi_revise

    return KGC::CDS_STATUS_REVISE[@id] != nil ? KGC::CDS_STATUS_REVISE[@id][4] : 1

  end

  #--------------------------------------------------------------------------

  def int_revise

    return KGC::CDS_STATUS_REVISE[@id] != nil ? KGC::CDS_STATUS_REVISE[@id][5] : 1

  end

end

 

#==============================================================================

# ? Game_Actor

#==============================================================================

class Game_Actor < Game_Battler

  #--------------------------------------------------------------------------

  alias base_maxhp_KGC_ClassDetailSetting base_maxhp

  def base_maxhp

    n = base_maxhp_KGC_ClassDetailSetting

    n *= $data_classes[@class_id].maxhp_revise

    return Integer(n)

  end

  #--------------------------------------------------------------------------

  def hp

    @hp = [@hp, maxhp].min

    return @hp

  end

  #--------------------------------------------------------------------------

  alias base_maxsp_KGC_ClassDetailSetting base_maxsp

  def base_maxsp

    n = base_maxsp_KGC_ClassDetailSetting

    n *= $data_classes[@class_id].maxsp_revise

    return Integer(n)

  end

  #--------------------------------------------------------------------------

  def sp

    @sp = [@sp, maxsp].min

    return @sp

  end

  #--------------------------------------------------------------------------

  alias base_str_KGC_ClassDetailSetting base_str

  def base_str

    n = base_str_KGC_ClassDetailSetting

    n *= $data_classes[@class_id].str_revise

    n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min

    return Integer(n)

  end

  #--------------------------------------------------------------------------

  alias base_dex_KGC_ClassDetailSetting base_dex

  def base_dex

    n = base_dex_KGC_ClassDetailSetting

    n *= $data_classes[@class_id].dex_revise

    n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min

    return Integer(n)

  end

  #--------------------------------------------------------------------------

  alias base_agi_KGC_ClassDetailSetting base_agi

  def base_agi

    n = base_agi_KGC_ClassDetailSetting

    n *= $data_classes[@class_id].agi_revise

    n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min

    return Integer(n)

  end

  #--------------------------------------------------------------------------

  alias base_int_KGC_ClassDetailSetting base_int

  def base_int

    n = base_int_KGC_ClassDetailSetting

    n *= $data_classes[@class_id].int_revise

    n = [[n, 1].max, $imported["LimitBreak"] ? KGC::LB_ACTOR_ETC_LIMIT : 999].min

    return Integer(n)

  end

end
Just a the class ID and Status Multiplier
CDS_STATUS_REVISE[ID] = [ HP, SP, STR, DEX, AGI, INT]
ID = Class ID
HP = HP Multiplier
SP = SP Multiplier
STR = STR Multiplier
DEX = DEX Multiplier
AGI = AGI Multiplier
INT = INT Multiplier

E.g:
CDS_STATUS_REVISE[4] = [ 1.2, 0.7, 1.5, 1.2, 0.8, 0.5]
The class ID 4 will have:
HP Mutiplied by 1.2
SP Mutiplied by 0.7
STR Mutiplied by 1.5
DEX Multiplied by 1.2
AGI Mutiplied by 0.8
INT Mutiplied by 0.5

Now you need an Job Change Interface
 

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