Help - Search - Members - Calendar
Full Version: Job changer Blackmorning
RPG RPG Revolution Forums > Scripting > Script Submissions > RGSS2-Submissions
Pages: 1, 2
Blackmorning
Job Changer
version 2.04
Blackmorning
27/01/11

I kept looking at all the different job changers. I liked parts of each of them, but none did exactly what I wanted, so I took from each of them and added my own flair to create this.

This is my first script. Like I said, there are some features that might look familiar, but haven't been seen all in the same script.

Windowed interface to change an actor's class.

Updates

27/01/11
- fixd glitch with jp gain
19/01/11
- fixed some small bugs (noticed by adrien.)
31/07/10
- cleaned up a few scripting issues, some bugs fixed (higher class levels)
- updated VAEP addon
12/07/10
- compatible with YEM Battler Stat: RES and Battler Stat: DEX (requested by Kaimi)
25/06/10
- change in script for how skills are forgotten when changing classes (removes only skills learnt by the previous class)
- addon to make class requirements for new classes (ie. level 5 knight to unlock paladin, checks at every class level up)
16/02/10
- compatible with YEZ Battler Stat: RES and Battler Stat: DEX (requested by sol003)
17/01/10
- added patch for Requiem ABS 9 - requested by Solis
18/11/09
- fixed jp earned during fight (noticed by Slajmboll)
- split script into two parts (like in the demo)
- updated Yanfly's VAEP addon and addon for switching on/off jp gain
06/08/09
- new addon to shutoff gaining of jp for a time via a switch (requested by Son Goku)
04/08/09
- when not gaining jp by any means, skills are learnt by actor level. (requested by HomuraKitsune)
- put in an addon for allowing equippable items to be based on all classes in an actor's class list (requested by Andrelvis)
28/07/09
- can make items to add/remove classes
- IMPORTANT - fixed class adding and removing (now works when reloading)
- redefined a few things in the customize section
- fixed when class level up bonus based on actor's level
26/07/09
- update for victory aftermath addon (new visual feature when bonus jp not displayed)
24/07/09
- updated victory aftermath addon for when not earning bonus JP
23/07/09
- updated demo
22/07/09
- bug fix
# requested by Andrelvis
- can modify jp needed to go up a level
- icons can appear next to class in job changer window
21/07/09
- added compatibility patch for Yanfly's Victory Aftermath
20/07/09
- level up bonuses can be by either class level or actor level
- skills fix when initialized actor is higher level
16/07/09
- fixed minor issue with custom menus
14/07/09
- added check actor class list size
13/07/09
- customizable description of class on help window (default descriptions from Cmpsr2000)
30/06/09
- level up stat bonuses now based on class level.
( ie. stats increase as class level increases )
29/06/09
- compability fix with special classes (ie. OriginalWij sequence skills)
- issue fixed when regular level up
28/06/09
- fixed change graphic problem
- minor formatting errors cleared up
- check any actor class level and assign it to a variable ( see demo for example of use )
( good for creating events to add classes )
- new demo to demonstrate script
27/06/09
-new patch to help make jp work with ORBS battle system
26/06/09
- skills help window full opacity
- item Jp gain fixed, demo increase jp fixed
- can show class lvl in menustatus and status screens
25/06/09
- released script


Features

-skills are based on individual class level
-set max levels for classes
-job points are learned by monsters defeated and/or actions taken in battle
-each actor has their own list of classes
-classes can be added or removed
-base stats (atk, def, spi, agi) can be dependent on class
-actor options (ie. Super Guard, 2-swords, autobattle, pharmacology) can be dependent on class
-actor graphic can change based on class
-class dependent increases when actor level increases
-shows in menu (disable/enable, hide/show with switches)

script Updated
Part A: (updated 31/01/10, no scripting changes)
Click to view attachment
Part B: (New biggrin.gif 27/01/11)
Click to view attachment
split into two parts to make updating easier
Mostly just plug-n-play(paste it below materials, above main)

biggrin.gif Addon
to create requirements to unlock new classes (up to three requirements) based on different class levels
Click to view attachment

Addon to change equippable items based on all classes in an actor's list
ie. if an actor can become a knight and a mage, equippable items are from both classes, not just the class equipped.
put addon below script
addon

CODE

# Blackmorning Job Changer Addon
# Equippable items are based on all of the unlocked classes in an actor's list.
#==============================================================================
# ** Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
alias job_equippable? equippable?
#--------------------------------------------------------------------------
def equippable?(item)
result = false
for i in @unlocked_classes
job = $data_classes[i]
if item.is_a?(RPG::Weapon)
result = job.weapon_set.include?(item.id)
elsif item.is_a?(RPG::Armor)
result = job.armor_set.include?(item.id)
end
if result
return result
end
end
return job_equippable?(item)
end
end



Addon for switching on/off jp gain
put below job changer script and any of my addons if you have them
addon

CODE

# put below all other blackmorning job changer scripts
# including Yanfly Engine RD Victory Aftermath Extra Page - Blackmorning Job Changer
module S_B
module CLASS
# unless switch is on, no jp is gained
# switch is automatically on at start of game if MENU_CLASS_CHANGE_OPTION = false
NO_GAIN_JP_SWITCH = 20
end
end
#===============================================================================
# ■ Scene_Title
#===============================================================================
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# ● Create various game objects
#--------------------------------------------------------------------------
def create_game_objects
job_create_game_objects
unless S_B::CLASS::MENU_CLASS_CHANGE_OPTION
$game_switches[S_B::CLASS::DISABLE_CLASS] = true
$game_switches[S_B::CLASS::HIDE_CLASS] = true
$game_switches[S_B::CLASS::NO_GAIN_JP_SWITCH] = true
end
end
end
#==============================================================================
# ** Scene_Battle (addon) *from yanfly
#==============================================================================
class Scene_Battle < Scene_Base
alias display_JP_nogain display_JP
def display_JP
unless $game_switches[S_B::CLASS::NO_GAIN_JP_SWITCH]
display_JP_nogain
end
end
end
if $imported["VAEP-GainJP"]
#==============================================================================
# Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# alias display_extra_pages
#--------------------------------------------------------------------------
alias nogain_display_extra_pages display_extra_pages
def display_extra_pages
if $game_switches[S_B::CLASS::NO_GAIN_JP_SWITCH]
display_extra_pages_bmjp
else
nogain_display_extra_pages
end
end
alias nogain_hidden_extra_pages hidden_extra_pages
def hidden_extra_pages
if $game_switches[S_B::CLASS::NO_GAIN_JP_SWITCH]
hidden_extra_pages_bmjp
else
nogain_hidden_extra_pages
end
end
end
end



For various uses, see the demo. Download here: (version 2.02 from 01/08/10)
Megaupload
4shared



Take a look in the customize section of this script and see what you want to use. Many parts can be turned on/off easily.
customize

CODE

#=============================================================================
# * Customize *
#=============================================================================
#-----------------------------------------------------------------------------
# Name for the experience gained for Job class
#-----------------------------------------------------------------------------
CLASS_EXP = "Job Points"
CLASS_EXP_A = "JP"
#-----------------------------------------------------------------------------
# What appears in the menu to call script
#-----------------------------------------------------------------------------
MENU_CLASS_CHANGE_TITLE = "Classes"
#-----------------------------------------------------------------------------
# Shows actors' class level in main menu & status screens
#-----------------------------------------------------------------------------
SHOW_CLASS_LVL_MAIN = true
SHOW_CLASS_LVL_STATUS = true
#-----------------------------------------------------------------------------
# Whether or not class changing is allowed at the begining of the game
#-----------------------------------------------------------------------------
MENU_CLASS_CHANGE_OPTION = true
#-----------------------------------------------------------------------------
# Switch ID to enable class changing in the menu
#-----------------------------------------------------------------------------
DISABLE_CLASS = 21
HIDE_CLASS = 22
#-----------------------------------------------------------------------------
# JP earned through various battle options *Yanfly
#-----------------------------------------------------------------------------
USE_BONUS_JP = false
# This sets whether or not you'd like your actors to display the JP they've
# earned in battle (since every action adds JP)
DISPLAY_BONUS_JP = true
DISPLAY_ACTOR_MSG = "%s gained an extra %d #{S_B::CLASS::CLASS_EXP_A} this battle."
# JP is earned throughout battle from different effects. You can determine
# what will earn JP here and by how much. Set amounts are the increases that
# will always occur so long as the action is enabled. Random amounts will
# increase the JP earned from 0 to that amount.

EARN_JP_VIA_ATTACK_ENABLE = true # Normal attacks will earn JP.
EARN_JP_VIA_ATTACK_AMOUNT = 4 # Earns at least this amount of JP.
EARN_JP_VIA_ATTACK_RANDOM = 0 # Earns up to this random amount.

EARN_JP_VIA_SKILL_ENABLE = true # Skills will earn JP.
EARN_JP_VIA_SKILL_AMOUNT = 2 # Earns at least this amount of JP.
EARN_JP_VIA_SKILL_RANDOM = 2 # Earns up to this random amount.

EARN_JP_VIA_GUARD_ENABLE = false # Guarding will earn JP.
EARN_JP_VIA_GUARD_AMOUNT = 2 # Earns at least this amount of JP.
EARN_JP_VIA_GUARD_RANDOM = 2 # Earns up to this random amount.

EARN_JP_VIA_ITEMS_ENABLE = true # Using items will earn JP.
EARN_JP_VIA_ITEMS_AMOUNT = 2 # Earns at least this amount of JP.
EARN_JP_VIA_ITEMS_RANDOM = 1 # Earns up to this random amount.
#-----------------------------------------------------------------------------
# JP from enemies *Yanfly
# This determines whether or not enemies will give JP if killed and the
# default amount if not set with <enemy jp x>.
#-----------------------------------------------------------------------------
ENEMIES_GIVE_JP = true
ENEMIES_JP_DEFAULT = 2
#-----------------------------------------------------------------------------
# Vocab for end of combat *Prexus
#-----------------------------------------------------------------------------
ObtainClassExp = "%s #{S_B::CLASS::CLASS_EXP_A} were earned!"
# first %s is # of JP earned
ClassLevelUp = "%s is now %s %s %s!"
# first %s is actor, second %s is class, third & fourth is level
#-----------------------------------------------------------------------------
# Maximum level per job *Blackmorning and Mithran
# do not go above 99
#-----------------------------------------------------------------------------
MAX_CLASS_LEVEL_DEFAULT = 30
CLASS_MAX_LEVELS = {} # Do not alter this line!
# Below here, set up the individiual max levels for each class.
# CLASS_MAX_LEVELS[class_id] = maxlevel
CLASS_MAX_LEVELS[1] = 30
# Paladin is capped at level 30
CLASS_MAX_LEVELS[2] = 99
# Warrior is capped at level 99
CLASS_MAX_LEVELS[3] = 40
# Priest is capped at level 99
CLASS_MAX_LEVELS[4] = 50
# Magician is capped at level 50
#-----------------------------------------------------------------------------
# Icon used to show MAX level *Blackmorning
#-----------------------------------------------------------------------------
MASTERED_ICON = 102
#-----------------------------------------------------------------------------
# If set to true, actor keeps skills learned when changing classes
#-----------------------------------------------------------------------------
KEEP_SKILLS = true
#-----------------------------------------------------------------------------
# Icon beside skills in class menu
#-----------------------------------------------------------------------------
Skills_Icon = 128
#-----------------------------------------------------------------------------
# Show skills window in job change
#-----------------------------------------------------------------------------
SHOW_SKILLS_WINDOW = Input::A
#-----------------------------------------------------------------------------
# CLASS SPECIFIC CHARACTER GFX - *Enelvon
# {:content:}quot;actor_ID"_"class_ID"
#-----------------------------------------------------------------------------
CHANGE_GRAPHIC = true
#-----------------------------------------------------------------------------
AVAILABLE_CLASSES = { # don't change
# format: actor_id => [class_id, class_id...],
#-----------------------------------------------------------------------------
1 => [1,2,5],
2 => [2,5,6],
3 => [3,4],
4 => [3,4],
5 => [1,2,5,6],
6 => [5,6],
7 => [7],
8 => [7,8],
} # don't change
#-----------------------------------------------------------------------------
# Enter the ID's of the characters that learn skills by other means.
# ie. using blue mage scripts, OriginalWij sequence skills
# not necessary when KEEP_SKILLS = true
#-----------------------------------------------------------------------------
SPECIAL_CLASS_ACTORS = []
#-----------------------------------------------------------------------------
# Define which Class_ID's use these special options. *TBK
#-----------------------------------------------------------------------------
CHANGE_ACTOR_OPTIONS = true
CRITICAL_CLASSES = [2]
TWOSWORDS_CLASSES = [8]
# Actor will automatically attack.
AUTOBATTLE_CLASSES = [2]
# Actor will take even less damage when guarding.
SUPERGUARD_CLASSES = [1,5,6]
# Items will have double effect when used by actor.
PHARMACOLOGY_CLASSES = [3]
#-----------------------------------------------------------------------------
HALP_MP_CLASSES = [4]
HP_RECOVER = [3]
FAST_ATTACK = [2,8]
#-----------------------------------------------------------------------------
# Yanfly Engine RD - Battler Stat: Barehand
# Last Date Updated: 2009.05.14
# For those that would like to give their actors stronger strength when no
# weapon is equipped, there is a barehand stat now. You can adjust how strong
# an actor's barehanded multiplier will grow each level so that way, you don't
# have your actors going over the top strong from the beginning.
#-----------------------------------------------------------------------------
# This is the array of classes that can fight barehanded.
BAREHANDED_CLASSES = [7]
# This is the multiplier given to base attack when no weapon is equipped.
BAREHAND_BASE_MULTIPLIER = 150
BAREHAND_PER_LEVEL_BOOST = 5 # based on class level
BAREHAND_MAX_MULTIPLIER = 400
#-----------------------------------------------------------------------------
# CLASS "BASED STAT MULTIPLIER" - *Enelv-on - specifically for the JobChanger
# Redesigned by Blackmorning
#-----------------------------------------------------------------------------
# Below are the Multipliers for each Class ID/Stat
# Class ID => Stat Multipliers
# example: if you want Class_ID #1 to have normal MAXHP (ie 100%)
# you would set the multiplier to 1.0
#-----------------------------------------------------------------------------
# This determines whether or not actor stats are affected by their what
# class they have equipped.
CHANGE_BASE_STATS = true
# This affects the display type for new stats.
# if true, Shows the increase/decrease in the stat.
# if false, Shows the new stat itself.
SHOW_DIFFERENCE = true
#-----------------------------------------------------------------------------
BASE_STAT_CHANGE = { # <--- Do not remove
# Class HP MP ATK DEF INT AGI
0 => [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], # default
1 => [ 1.0, 0.8, 1.0, 1.0, 1.0, 1.0], #Paladin
2 => [ 1.0, 0.5, 1.2, 0.7, 0.7, 1.2], #Beserker
3 => [ 0.75, 1.2, 0.7, 0.7, 1.15, 0.7], #Priest
4 => [ 0.7, 1.15, 0.7, 0.7, 1.2, 0.7], #Magician
5 => [ 1.0, 0.8, 1.0, 1.0, 0.8, 1.0], #Knight
6 => [ 1.0, 0.8, 1.0, 1.0, 1.0, 1.0], #Dark Knight
7 => [ 1.2, 0.5, 1.1, 1.1, 0.8, 1.15], #Monk
8 => [ 0.85, 0.7, 0.8, 0.7, 0.7, 1.2], #Thief
} # Do not remove this.
#==========================================================================
# BigEd781's Class Dependant Stat Bonuses
#--------------------------------------------------------------------------
# The purpose of this script is to allow one to set stat
# bonuses upon class level up depending on the player's class.
#==========================================================================
# * When the below value is set to "true", the table of constant values
# below it are used to determine what class level up bonuses are, depending
# on the class.
#==========================================================================
LEVEL_UP_BONUSES = true

CLASS_LEVEL_UP_BONUS_CLASS_DEP = false
# if true, bonuses based on class level
# if false, bonuses based on actor level
#========================================================================
# * Configuration module
#========================================================================
STAT_BONUS = { # <--- Do not remove
# Class HP MP ATK DEF INT AGI
1 => [ 526, 0, 4, 5, 0, 0], #Paladin
2 => [ 29, 0, 8, 0, 0, 2], #Beserker
3 => [ 0, 19, 0, 0, 8, 0], #Priest
4 => [ 0, 26, 0, 0, 7, 0], #Magician
5 => [ 24, 0, 4, 4, 0, 0], #Knight
6 => [ 26, 0, 6, 6, 0, 0], #Dark Knight
7 => [ 34, 0, 8, 2, 0, 3], #Monk
8 => [ 12, 0, 2, 0, 0, 11], #Thief
} # Do not remove this.
#=============================================================================
# if level is decreased, are stat bonuses lost?
#=============================================================================
LOSE_STAT_BONUS = false
#=============================================================================
# format: class_id => ["description"],
Class_Descriptions = { # <--- Do not remove
1 =>["A holy warrior."], #Paladin
2 =>["Master of all weapons and armor."], #Beserker
3 =>["A Divine healer."], #Priest
4 =>["Purveyor of the magical arts."], #Magician
5 =>["Defender of the people."],#Knight
6 =>["A warrior born of darkness."], #Dark Knight
7 =>["An expert in hand-to-hand combat."], #Grappler
8 =>["Professional sneak and highwayman."],#Thief
}# <--- Do not remove
#=============================================================================
# icons appear next to class in job changer window # requested by Andrelvis
USE_ICONS_FOR_CLASSES = true
# format: class_id => [icon_id],
Class_Icons = { # <--- Do not remove
0 => 0, #default if no icon assigned
1 => 52,
2 => 6,
3 => 189,
4 => 212,
5 => 2,
6 => 136,
7 => 51,
8 => 147,
} # <--- Do not remove

Custom_JP_Needed_For_Level = true
# If true, uses exp_list as starting values and similar formula.
# If false, solely uses exp_list for jp needed for class level up.
CLASS_JP_MOD_BASIS = 15
CLASS_JP_MOD_INFLATION = 20

CLASS_JP_MOD = {# <--- Do not remove
#format: class_id => [basis, inflation],
1 => [20, 15],
2 => [10, 20],
2 => [25, 25],
}# <--- Do not remove

#=============================================================================
# * End Customization *
#=============================================================================



Screenshots


appears in menu below game end

organized windows to see class change options

view skills learned with each class

job points added in battle via enemies defeated and battlers actions

see class level in status screen


Compatibility

- works with KGC limit break, KGC EquipExtension, YERD Equip Skill Slots

For those that are using Yanfly's Display Victory aftermath, put this patch below my script and DVA
tongue.gif updated 01/08/10
Click to view attachment

biggrin.gif For those that use Requiem ABS 9, I made a patch to make them work together. Put the patch below my script and Requiem.
Click to view attachment
biggrin.gif For those that like the ORBS battle system I made a patch to make it work a little better. Put the patch below my script and ORBS.

It makes it so that enemies give jp when defeated. It also allows you to get jp for using a skill in ORBS. It already works for giving jp for attacking.
ORBS Patch

CODE

# patch for Blackmorning Jobchanger to ORBS
# ver. 1
# attack can gain jp (USE_BONUS_JP == true),
# and defeated enemies give JP (ENEMIES_GIVE_JP)
module ORBS

JP_TEXT = "%djp"

end

class << ORBS
attr_reader :jptext_color
alias jobstart start
def start
jobstart
@jptext_color = Color.new(200, 60, 80)
end
def action_process(character, target_dir, action = 0)
play_movement
if action == 0
character.battler.action.set_attack
else
character.battler.action.set_skill(action)
end
character.set_direction(target_dir)
character.rbs_ai.executed = true
sequence = ORBS::ACTION_SEQUENCES[character.battler.get_action_sequence(action)]
character.battler.consume_skill_cost($data_skills[action]) if action > 0
@map_spriteset.refresh_battler_info(character.battler)
@sequence_processor.process(sequence, character, (action > 0 ? $data_skills[action] : nil))
for char in [$game_player] + $game_members + $game_map.enemies
char.action_x_plus = 0
char.action_y_plus = 0
end
for char in $game_map.enemies.clone
battler = char.battler
if battler.dead?
char.destroy_battler
interpreter_update_loop
members = ([$game_player] + $game_members).shuffle
members.unshift(members.delete(character))
unless battler.exp == 0
for _character in members
next if _character.battler.nil? or (not _character.battler.exist?)
exp = battler.exp
exp *= ORBS::EXP_TO_KILLER.to_f / 100.0 if _character == character
text = sprintf(ORBS::EXP_TEXT, exp.to_i)
ORBS.misc_font.color = ORBS.etext_color
$game_map.interpreter.spawn_text(_character.x, _character.y, -1, 0, 3,
nil, text)
$scene.update_basic
c_bat = _character.battler
prevlevel = c_bat.level
c_bat.gain_exp(exp.to_i, false)
if prevlevel < c_bat.level
4.times do $scene.update_basic end
animation = $data_animations[ORBS::LEVEL_UP_ANIM]
unless animation.nil?
sx = ($game_map.adjust_x(_character.x * 256) + 8007) / 8 - 1000
sy = ($game_map.adjust_y(_character.y * 256) + 8007) / 8 - 1000
@map_spriteset.show_rbs_anim_at(sx, sy,
$data_animations[ORBS::LEVEL_UP_ANIM],
ORBS::LEVEL_UP_ANIM_SIZE.to_f / 100.0)
end
text = ORBS::LEVEL_UP_TEXT
$game_map.interpreter.spawn_text(_character.x, _character.y,
-1, 0, 3, nil, text)
if ORBS::HEAL_ON_LEVEL_UP
c_bat.recover_all
ORBS.map_spriteset.refresh_battler_info(c_bat)
end
Graphics.frame_reset
end
6.times do $scene.update_basic end
if S_B::CLASS::ENEMIES_GIVE_JP
unless battler.enemy.enemy_jp == 0
jp = battler.enemy.enemy_jp
jp *= ORBS::EXP_TO_KILLER.to_f / 100.0 if _character == character
text = sprintf(ORBS::JP_TEXT, jp.to_i)
ORBS.misc_font.color = ORBS.jptext_color
$game_map.interpreter.spawn_text(_character.x, _character.y, -1, 0, 3,
nil, text)
$scene.update_basic
c_bat.jp_received(jp.to_i, nil, true)
6.times do $scene.update_basic end
end
end
end
end
unless battler.gold == 0
text = sprintf(ORBS::GOLD_TEXT, battler.gold)
ORBS.misc_font.color = ORBS.gtext_color
$game_map.interpreter.spawn_text($game_player.x, $game_player.y, -1, 0,
3, nil, text)
$game_party.gain_gold(battler.gold)
10.times do $scene.update_basic end
end
end
end
ORBS.map_spriteset.refresh_hotkey_tones if character == $game_player
end
end
class Game_Battler
# alias skill_effect_sss skill_effect
def skill_effect(user, skill)
skill_effect_sss(user, skill)
return unless user.actor?
return unless S_B::CLASS::USE_BONUS_JP
return unless S_B::CLASS::EARN_JP_VIA_SKILL_ENABLE
return if $scene.is_a?(Scene_Skill)
amount = S_B::CLASS::EARN_JP_VIA_SKILL_AMOUNT
unless S_B::CLASS::EARN_JP_VIA_SKILL_RANDOM == 0
amount += rand(S_B::CLASS::EARN_JP_VIA_SKILL_RANDOM)
end
amount += skill.jp_boost_set unless skill.jp_boost_set <= 0
exp += rand(skill.jp_boost_ran) unless skill.jp_boost_ran <= 0
user.gain_jp_battle(amount)
end
end





Special thanks to Yanfly, Prexus, tkblackknight and BigEd781. This script would not be complete without yours to inspire & help me.
Yanfly
Very nice work there, Blackmorning! =D

Little suggestion: have you considered changing the back opacity of the lower help window to 255 so text behind it doesn't show through? It may make it easier to read. =]
Octople Threat
I changed absolutely nothing and got these errors while trying to use the JP card, and talking to the old man who gives job points to your priests, respectively.

Click to view attachment

Click to view attachment
Garlyle
Hey, good job!

I actually really like this script/method for jobchanging. Very simple and very usable.
Blackmorning
This problem has been fixed. Your welcome to download it again.

Feel free to report any bugs and I'll do my best to fix them.
QUOTE (Octople Threat @ Jun 26 2009, 11:36 AM) *
I changed absolutely nothing and got these errors while trying to use the JP card, and talking to the old man who gives job points to your priests, respectively.

Click to view attachment

Click to view attachment
RPGManiac3030
Is this possible to call from the map? I'm trying to look for a good party changing script that can do so.
Blackmorning
QUOTE (RPGManiac3030 @ Jun 26 2009, 03:09 PM) *
Is this possible to call from the map? I'm trying to look for a good party changing script that can do so.


Do you mean by a button press (ie. pressing Y while from the map) or just like talking to a person?

You can just make an event and in the script option of event commands, type :
$scene = Scene_Job.new
Warder
It looks good, Blacmorning. This is the first VX job-changing script I've come across that does exactly what I want a script like it to do. Nice job. smile.gif
RPGManiac3030
QUOTE (Blackmorning @ Jun 26 2009, 03:52 PM) *
QUOTE (RPGManiac3030 @ Jun 26 2009, 03:09 PM) *
Is this possible to call from the map? I'm trying to look for a good party changing script that can do so.


Do you mean by a button press (ie. pressing Y while from the map) or just like talking to a person?


I meant through an event, so thanks. And, the JP points can be turned off, right? Since I'm using
ORBS battle system, I don't know how the player would know how many points they get without going to the menu and checking every time. I don't have the maker in front of me, but if there was a menu showing how many points the player gets and whatnot, that might get in the way or even clash with the battle system.
Blackmorning
QUOTE (RPGManiac3030 @ Jun 27 2009, 12:03 AM) *
QUOTE (Blackmorning @ Jun 26 2009, 03:52 PM) *
QUOTE (RPGManiac3030 @ Jun 26 2009, 03:09 PM) *
Is this possible to call from the map? I'm trying to look for a good party changing script that can do so.


Do you mean by a button press (ie. pressing Y while from the map) or just like talking to a person?


I meant through an event, so thanks. And, the JP points can be turned off, right? Since I'm using
ORBS battle system, I don't know how the player would know how many points they get without going to the menu and checking every time. I don't have the maker in front of me, but if there was a menu showing how many points the player gets and whatnot, that might get in the way or even clash with the battle system.


You can turn off Jp being received for defeating a monster and the ones for actions. Turn off both and you don't go up class levels. I looked at the battle system and noticed that when you attack, you get the right Jp, but not with anything else. It's a bit complicated to feature. take a look at the patch above. It might help you a bit. just put it below ORBS
RPGManiac3030
Great, thanks. Um, is there a way to have some classes locked until certain classes are a certain level, or is that already possible? This is just a hypothetical question. rolleyes.gif
Blackmorning
QUOTE (RPGManiac3030 @ Jun 27 2009, 07:34 PM) *
Great, thanks. Um, is there a way to have some classes locked until certain classes are a certain level, or is that already possible? This is just a hypothetical question. rolleyes.gif


Take a look at the updated script and demo. there's a new command that can check a actor's class level and assign it to a variable. From there, you can make events that can unlock classes once they reach a certain level.
Blackmorning
New update, can't believe no one noticed this. There was a error with regular leveling up. Now fixed.
Blackmorning
new update, changed level up bonuses to be based on class level, not regular level.
leqesai
QUOTE (Blackmorning @ Jun 30 2009, 11:06 AM) *
new update, changed level up bonuses to be based on class level, not regular level.


Easily the best job changing script out there.

I have been trying to figure out how to change its position on the menu though, and seem to be stumped. I am somewhat anal and would prefer "save" and "game end" to be at the bottom of my list.
Garlyle
QUOTE
I have been trying to figure out how to change its position on the menu though, and seem to be stumped. I am somewhat anal and would prefer "save" and "game end" to be at the bottom of my list.


Try a custom menu, like Yanfly's, or I believe Breadlord has one. Alternatively, you can overwrite your own menu fairly easily, but a full-on custom menu will make it easier to edit.
leqesai
QUOTE (Garlyle @ Jul 2 2009, 05:07 AM) *
QUOTE
I have been trying to figure out how to change its position on the menu though, and seem to be stumped. I am somewhat anal and would prefer "save" and "game end" to be at the bottom of my list.


Try a custom menu, like Yanfly's, or I believe Breadlord has one. Alternatively, you can overwrite your own menu fairly easily, but a full-on custom menu will make it easier to edit.


Thanks for the info, I've encorporated Yanfly's menu script and found integrating this into it very simple.

I appreciate pointing me in the right direction.
livpj11
Wow, I love this script. I have been looking for something that does this very thing. Thanks for all the work and updates!
Blackmorning
new update - customizable help window to include class descriptions. see version 1.10
IkaruTak
Well, a little question, If I don't like the Class change in the menu, there is some way to call the script for a common event?

Forget it, I alredy see the way xD
Shanghai
QUOTE (IkaruTak @ Jul 14 2009, 02:49 AM) *
Well, a little question, If I don't like the Class change in the menu, there is some way to call the script for a common event?



Use Yanfly's Menu Redux for that. Blackmorning uses the same code as Yanfly's to put it where it is and it lets you reorder your menu.
Blackmorning
new update

can assign an actor's class list size to a variable
IkaruTak
A question:
I like to use a Job System similar of the Job System of Ragnarok Online, I mean, If my actor learns the "Swordman" Class, already couldn't learn "Magician", "Actor", "Archer" classes, and now can learn "Knight" and "Paladin" classes.

How I can do this?
Blackmorning
QUOTE (IkaruTak @ Jul 17 2009, 02:35 AM) *
A question:
I like to use a Job System similar of the Job System of Ragnarok Online, I mean, If my actor learns the "Swordman" Class, already couldn't learn "Magician", "Actor", "Archer" classes, and now can learn "Knight" and "Paladin" classes.

How I can do this?


not quite sure I follow, seems like you just want to add knew classes based on some kind of prerequisite. Look at the demo to see how to add classes to the list.
IkaruTak
Ok, but I want that if you choose "swordman" already you couldn't choose "magician", " archer, etc..., erease them from the menu when you choose a class
Blackmorning
QUOTE (IkaruTak @ Jul 17 2009, 03:09 PM) *
Ok, but I want that if you choose "swordman" already you couldn't choose "magician", " archer, etc..., erease them from the menu when you choose a class


You can erase classes from the list, it's in the demo.
IkaruTak
Ok, so.. anothe question, If I need to put in a conditional branch something like:
"If (Actor_id) it's (class_id)"
How I can do this?
Blackmorning
QUOTE (IkaruTak @ Jul 17 2009, 09:57 PM) *
Ok, so.. anothe question, If I need to put in a conditional branch something like:
"If (Actor_id) it's (class_id)"
How I can do this?


open an event

use conditional branch => on page 4 use script

type in the blank: $game_actors["actor_id"].class_id == "class_id"
ie. $game_actors[1].class_id == 5
IkaruTak
Oh, great, thnx 4 all the help ñ__ñ
Blackmorning
New update version 1.21, see main
Andrelvis
Nice script wink.gif

Would it be possible to make an option for customization so that it is possible to assign the class level up bonuses to character level up instead?
Blackmorning
QUOTE (Andrelvis @ Jul 20 2009, 01:57 PM) *
Nice script wink.gif

Would it be possible to make an option for customization so that it is possible to assign the class level up bonuses to character level up instead?


it is now possible.
check out version 1.30

Cheers biggrin.gif
Andrelvis
QUOTE (Blackmorning @ Jul 20 2009, 11:25 AM) *
QUOTE (Andrelvis @ Jul 20 2009, 01:57 PM) *
Nice script wink.gif

Would it be possible to make an option for customization so that it is possible to assign the class level up bonuses to character level up instead?


it is now possible.
check out version 1.30

Cheers biggrin.gif


Thanks biggrin.gif

By the way, found a small issue: if the character starts at level 10 (and class level 1), for example, and the class he starts in has class skills set for, say, class level 9, the game will still give him the class 9 skill on startup, even though he doesn't have the class level required for it.

EDIT: A question: how do I give JP by events?
Blackmorning
QUOTE (Andrelvis @ Jul 20 2009, 03:18 PM) *
Thanks biggrin.gif

By the way, found a small issue: if the character starts at level 10 (and class level 1), for example, and the class he starts in has class skills set for, say, class level 9, the game will still give him the class 9 skill on startup, even though he doesn't have the class level required for it.

EDIT: A question: how do I give JP by events?


Fixed version 1.31,
I forgot to reset the skills when initialized. dry.gif
Thanks

Giving JP by Event:
in event, open script
CODE
$game_actors[actor_id].jp_received(jp_gained, class_id)


replace actor_id, jp_gained, and class_id with the values you want. You can also do a mass give jp
in event, open script
CODE
$game_party.members.each do |m|
     m.jp_received(jp_gained, class_id)
   end

replace jp_gained, and class_id with the values you want.
members can be turned to existing_members so as not to include dead actors.
Lockheart
Is there by any chance that this script is compatible with that of Yanfly's Victory screen script? I may consider switching class scripts if it is, there are just certain things that this script has/does that Yanfly didn't want to do or couldn't.
Blackmorning
QUOTE (Lockheart @ Jul 20 2009, 10:48 PM) *
Is there by any chance that this script is compatible with that of Yanfly's Victory screen script? I may consider switching class scripts if it is, there are just certain things that this script has/does that Yanfly didn't want to do or couldn't.


Patch made, placement of scripts

Job Changer
Yanfly's Victory
my patch

patch is on main topic page

that was a bit of work happy.gif
Andrelvis
If I may make a suggestion, I would propose enabling options for the setting of JP required for individual levels for individual classes, and also another option for instead of gaining a skill by level, being able to "buy" it with the class' JP in the class skill window, using the level set for that class id with a multiplier. For example:

While having the "buying skills by JP option enabled", the skills would cost Class Skill Level * Multiplier. So, if the user sets the level at which a class gains the skill "Cure" as level 5 and if the "Skill JP Multiplier" is set to 10, the skill would cost 5 * 10 = 50 to be "bought".

Oh yes, and a silly thing as well: what about making it possible to have icons for the classes in the class selection?

And again, thanks for the very good script wink.gif
Blackmorning
QUOTE (Andrelvis @ Jul 22 2009, 03:22 AM) *
If I may make a suggestion, I would propose enabling options for the setting of JP required for individual levels for individual classes, and also another option for instead of gaining a skill by level, being able to "buy" it with the class' JP in the class skill window, using the level set for that class id with a multiplier. For example:

While having the "buying skills by JP option enabled", the skills would cost Class Skill Level * Multiplier. So, if the user sets the level at which a class gains the skill "Cure" as level 5 and if the "Skill JP Multiplier" is set to 10, the skill would cost 5 * 10 = 50 to be "bought".

Oh yes, and a silly thing as well: what about making it possible to have icons for the classes in the class selection?

And again, thanks for the very good script wink.gif



your silly thing was the most doable thing on your list.

I'll work on your first idea about the custom jp per class, but the other one with the buying of skills with jp... probably not in the near future.

Edit: jp needed per level calculations can now be modified. (similar to how exp is modified)

DOUBLE EDIT: buying of skills with jp not going to happen with this script. jp is exp for classes. without it classes don't level up, and if you use them for buying skills, class level would go down.
you sound like you want to use it both ways.
Andrelvis
QUOTE (Blackmorning @ Jul 22 2009, 08:13 AM) *
Edit: jp needed per level calculations can now be modified. (similar to how exp is modified)


Nice =)

QUOTE
DOUBLE EDIT: buying of skills with jp not going to happen with this script. jp is exp for classes. without it classes don't level up, and if you use them for buying skills, class level would go down.
you sound like you want to use it both ways.


I managed to do it on my own (making the skills cost AP and be learnable from the skill window, will create a variable that mirrors additions to jp_exp soon, so that I can keep track of levels independently), but thanks anyway happy.gif

EDIT: Checked out the new script version, it's great biggrin.gif
leqesai
I've been using your patch for yanfly's aftermath screen and it always shows +0 JP on the individual actor pictures.

I've gone through the script and can't figure out where the problem is... any suggestions?
Blackmorning
QUOTE (leqesai @ Jul 24 2009, 01:54 AM) *
I've been using your patch for yanfly's aftermath screen and it always shows +0 JP on the individual actor pictures.

I've gone through the script and can't figure out where the problem is... any suggestions?



in my main script, do you have
USE_BONUS_JP = true or false

the old patch still tried to display bonus jp even when you don't earn any.

I've updated it. give it a try and tell me if you still have a problem
leqesai
QUOTE (Blackmorning @ Jul 24 2009, 10:38 AM) *
QUOTE (leqesai @ Jul 24 2009, 01:54 AM) *
I've been using your patch for yanfly's aftermath screen and it always shows +0 JP on the individual actor pictures.

I've gone through the script and can't figure out where the problem is... any suggestions?



in my main script, do you have
USE_BONUS_JP = true or false

the old patch still tried to display bonus jp even when you don't earn any.

I've updated it. give it a try and tell me if you still have a problem


I have bonus JP turned off.
Tried the updated patch and now it no longer displays the "+0JP" at all. It just shows the character picture and has the JP information at the top and bottom of the screen (I have actor comments turned off, as well).

Blackmorning
QUOTE (leqesai @ Jul 25 2009, 09:15 PM) *
QUOTE (Blackmorning @ Jul 24 2009, 10:38 AM) *
QUOTE (leqesai @ Jul 24 2009, 01:54 AM) *
I've been using your patch for yanfly's aftermath screen and it always shows +0 JP on the individual actor pictures.

I've gone through the script and can't figure out where the problem is... any suggestions?



in my main script, do you have
USE_BONUS_JP = true or false

the old patch still tried to display bonus jp even when you don't earn any.

I've updated it. give it a try and tell me if you still have a problem


I have bonus JP turned off.
Tried the updated patch and now it no longer displays the "+0JP" at all. It just shows the character picture and has the JP information at the top and bottom of the screen (I have actor comments turned off, as well).




that's good then, 'cause the jp that appears on the characters is for the bonus jp only. The jp won during the fight is at the top.
leqesai
QUOTE (Blackmorning @ Jul 25 2009, 07:14 PM) *
QUOTE (leqesai @ Jul 25 2009, 09:15 PM) *
QUOTE (Blackmorning @ Jul 24 2009, 10:38 AM) *
QUOTE (leqesai @ Jul 24 2009, 01:54 AM) *
I've been using your patch for yanfly's aftermath screen and it always shows +0 JP on the individual actor pictures.

I've gone through the script and can't figure out where the problem is... any suggestions?



in my main script, do you have
USE_BONUS_JP = true or false

the old patch still tried to display bonus jp even when you don't earn any.

I've updated it. give it a try and tell me if you still have a problem


I have bonus JP turned off.
Tried the updated patch and now it no longer displays the "+0JP" at all. It just shows the character picture and has the JP information at the top and bottom of the screen (I have actor comments turned off, as well).




that's good then, 'cause the jp that appears on the characters is for the bonus jp only. The jp won during the fight is at the top.


Is there any way for me to make it so that the base JP is displayed in the middle?
I am not going to be using bonus JP, in my game, but I think that this display adds to the aesthetic and polish of the victory aftermath scene.
Blackmorning
QUOTE (leqesai @ Jul 25 2009, 11:30 PM) *
Is there any way for me to make it so that the base JP is displayed in the middle?
I am not going to be using bonus JP, in my game, but I think that this display adds to the aesthetic and polish of the victory aftermath scene.


sure, easy fix

Click to view attachment

this will show the enemy jp on the actors as well as at the top of the screen. Values are the values earned for the individuals (ie. if actor has jp booster state, improved value shown).
leqesai
QUOTE (Blackmorning @ Jul 26 2009, 06:39 AM) *
QUOTE (leqesai @ Jul 25 2009, 11:30 PM) *
Is there any way for me to make it so that the base JP is displayed in the middle?
I am not going to be using bonus JP, in my game, but I think that this display adds to the aesthetic and polish of the victory aftermath scene.


sure, easy fix

Click to view attachment

this will show the enemy jp on the actors as well as at the top of the screen. Values are the values earned for the individuals (ie. if actor has jp booster state, improved value shown).


wooo!

*does the happy dance*

Thank you BlackMorning smile.gif
Andrelvis
I'm not sure if this is happening just to me, but the actor-level based stat bonuses weren't working, until I took them off def level_up and into def change_exp, right below where it calls for level_up.
Blackmorning
QUOTE (Andrelvis @ Jul 26 2009, 06:52 PM) *
I'm not sure if this is happening just to me, but the actor-level based stat bonuses weren't working, until I took them off def level_up and into def change_exp, right below where it calls for level_up.


I've fixed that up, I put it in the wrong spot. It's fixed now.

EDIT: Serious bug fixed, see version 1.8
Andrelvis
Blackmorning, what would I need to do to make it so def equippable? checks for all classes the character has available, instead of just the one he is using at the moment?
Son Goku
Is there a way to unlock a certain number of classes after a certain event? For example, in FF3, whenever you beat the boss at the crystal, the crystal gives you it's light (which is more jobs), and you have to encounter all 4 four crystals to acquire all jobs besides onion knight.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.