Jump to content
kai salmonkey

Kai Monkey's Character Creation with Races (Version 1.1!)

Recommended Posts

Kai Monkey's Character Creation!

 

Introduction

It's been a long time since I opened an RPGmaker, but when I saw Ace had arrived it seemed to fix every single complaint I ever had with VX. So impressed was I with Ace I decided to take up scripting again. So 24 hours later my Character creation script was born.

 

I tried to keep the Race System as open ended as possible. I achieved this by having the Race simply put in a Game Variable (By Default 25) and nothing else. This means by default all Races do is act as Categories for the Appearances. However as that Game Variable can checked by events, it is not at all difficult for an array to check that Game Variable and, say, change the actors stats accordingly.

 

 

 

CharacterCreation.png

 

 

 

Config

The config is quite simple, and most of it is explained in the Script's config section itself.

 

However it is very important that when you add this script to a project you follow the following intructions:

1)Ensure that the default starting character has no name, and no character or face image

2) Make a new map, which is entirely black and has the player's starting position on it. On this map create an autorun event like so:

a)use the Advanced -> Script action and type:

SceneManager.call(Scene_CharacterCreation)

b)Then change SelfSwitch A to ON

c)Create a new event page, and ensure that that is also set to the AutoRun trigger. On this page you can run the Process Name Input event action

d (Optional)Then using an conditional branch run any other effects you only want to effect certain races, by checking the Variable defined in the main config (By default 25).

e) Transfer the player to the original starting position.

 

 

The Script

KaiMonkeysCharacterCreation.txt

 

Version History

0.9: Initial Release, Races and Classes unlimted, Appearances per class limited to 6

1.0: Lifted Appearance limit.

1.1: Classes banned for certain races

 

Finally

 

Finally please give credit to Kaimonkey if you use this script. This is a basic system, and if more needs to be added just make a suggestion below. Additionally if the config instructions are not that easy to read I will try and rewrite them, but I think they are ok for now.

 

Thanks, Kaimonkey

Edited by kai salmonkey

Share this post


Link to post
Share on other sites

Ah, I've hit an error message. It's only started happening just now, but I've tested with all other scripts removed and even in a fresh project and for some reason it doesn't work. Any light you can shed on the problem would be much appreciated!

ERROR.png

Share this post


Link to post
Share on other sites

Ah, I've hit an error message. It's only started happening just now, but I've tested with all other scripts removed and even in a fresh project and for some reason it doesn't work. Any light you can shed on the problem would be much appreciated!

ERROR.png

 

As far as I can tell this must have been caused by an error you made copy and pasting the script, or editing it. Have you done any config? If so post the actual script that you've got in your project, including config and I'll try and sort it out.

Thanks, Kaimonkey

Share this post


Link to post
Share on other sites

Okay, here it is:

 

Races = Array.new
RaceAppearanceNames = Array.new
RaceFaceImage = Array.new
RaceFaceIndex = Array.new
RaceChara = Array.new
RaceIndex = Array.new
#############CONFIG######################
#Here list all the names of all races in the game
# Example:
# Races = ["Human","Elf","Half Dwarf"]
# Creates three races, called Human, Elf and Half Dwarf
Races = ["Human", "Fairie", "Cave Fairie", "Half Dwarf"]
#Which race the player chooses will be stored in a variable, which is defined
#below. This can be used later create effects that only affect, say, Dwarves,
#such as giving them the ability to use heavy armour, regardless of class.
#This can be acheived by having an event check that array, then run actions accordingly
RaceVariable = 1
#The default is to store the Race in variable 25. By default this will mean that
#if the player is human that varible will be 1, 2 if an elf, and 3 if a Half Dwarf.
#
#Then for each race create a module for showing the Appearance(s)
#Example:
#RaceAppearanceNames << ["Female","Male"]
#RaceFaceImage << ["Actor1.png","Actor1.png"]
#RaceFaceIndex << [1,2]
#RaceChara << ["Actor1.png","Actor1.png"]
#RaceIndex << [1,2]
#
#The first row shows that the first race we typed in at the start has two
#different Appearances. One called Female, one called Male.
#The second row shows the File name for that appearances face. So both Male and
#Female humans use Actor1.png
#The third row shows which face in the file to use, as each image has 8 faces,
#so female humans use the first face in the Actor1.png Image, and Males use the
#second image.
#
#The fourth and fifth line work like the Faces, appart from for defining the
#Character image that is seen walking around the screen. In the example above
#both Male and Female humans have characters to match their faces.
#
#For each race you defined at the start, copy paste these five lines, and customize
#as you wish.
#Race 1:
RaceAppearanceNames << ["Human A","Human B","Human C","Human D"]
RaceFaceImage << ["Actor1.png","Actor2.png","Actor3.png","Actor4.png"]
RaceFaceIndex << [1,2,3,4]
RaceChara << ["Races2.png","Races2.png","Races2.png","Races2.png"]
RaceIndex << [1,2,3,4]
#Race 2:
RaceAppearanceNames << ["Fairie A", "Fairie B", "Fairie C", "Fairie D"]
RaceFaceImage << ["Actor3.png","Actor3.png"]
RaceFaceIndex << [6,5]
RaceChara << ["Races2.png","Races2.png","Races2.png","Races2.png"]
RaceIndex << [5,6,7,8]
#Race 3:
RaceAppearanceNames << ["Cave Fairie A", "Cave Fairie B", "Cave Fairie C", "Cave Fairie D"]
RaceFaceImage << ["Actor3.png"]
RaceFaceIndex << [7]
RaceChara << ["Goblins1.png","Goblins1.png","Goblins1.png","Goblins1.png"]
RaceIndex << [1,2,3,4]
#Race 4:
RaceAppearanceNames << ["Half Dwarf A, Half Dwarf B, Half Dwarf C, Half Dwarf D"]
RaceFaceImage << ["Actor3.png"]
RaceFaceIndex << [7]
RaceChara << ["Goblins1.png","Goblins1.png","Goblins1.png","Goblins1.png"]
RaceIndex << [5,6,7,8]
############END CONFIG############################
#==============================================================================
# ** Scene_Status
#------------------------------------------------------------------------------
# This class performs the status screen processing.
#==============================================================================
class Scene_CharacterCreation < Scene_MenuBase
#--------------------------------------------------------------------------
# * Start Processing
#--------------------------------------------------------------------------
def start
super
create_status_window
@stage = 1
@finished = false
@class_window = Window_Create.new(@actor)
@race_window = Window_Race.new(@actor)
@look_window = Window_Appearance.new(@actor,1)
@status_window.width = Graphics.width
@class_window.index = (@actor.class.id - 1)
@class_window.width = Graphics.width / 3
@class_window.active = false
@class_window.visible = false
@look_window.active = false
@look_window.visible = false
@race_window.width = Graphics.width / 3
@look_window.width = Graphics.width / 3
@class_window.set_handler:)class,method:)changeActorClass))
@class_window.set_handler:)cancel, method:)back))
@look_window.set_handler:)cancel, method:)back))
@look_window.set_handler:)look, method:)finish))
@race_window.set_handler:)race,method:)changeActorRace))
end
alias oldupdate update
def update()
oldupdate()
if @finished == true
return_scene
end
raceID = @race_window.index
appID = @look_window.index
appIndex = RaceIndex
@actor.set_graphic(RaceChara[raceID][appID],RaceIndex[raceID][appID]-1 ,RaceFaceImage[raceID][appID],RaceFaceIndex[raceID][appID]-1)
#@actor.set_graphic("Animal.png" ,3,RaceFaceImage[raceID][appID],RaceFaceIndex[raceID][appID]-1)
$game_player.refresh
classID = @class_window.index
@actor.change_class(classID+1)
@actor.hp = @actor.mhp
@actor.mp = @actor.mmp
@status_window.refresh
end
def finish()
@finished = true
end
def back()
@class_window.active = false
@race_window.active = false
@look_window.active = false
if @stage == 2
@look_window.index = 0
@race_window.active = true
@stage = 1
elsif @stage == 3
@stage = 2
@class_window.active = true
end
end
def changeActorClass()
classID = @class_window.index
@actor.change_class(classID+1)
@actor.hp = @actor.mhp
@actor.mp = @actor.mmp
@stage = 3
@look_window.active = true
@look_window.visible = true
@status_window.refresh
end
def changeActorRace()
raceID = @race_window.index
@actor.set_graphic(RaceFaceImage[raceID][0],RaceFaceIndex[raceID][0],RaceFaceImage[raceID][0],RaceFaceIndex[raceID][0]-1)
@status_window.refresh
@stage = 2
@class_window.activate
@class_window.visible = true
@look_window.id=raceID
@look_window.index = 0
$game_variables[RaceVariable] = raceID +1
end
def create_status_window
y = 0
@status_window = Window_SkillStatus.new(0,0)
@status_window.viewport = @viewport
@status_window.actor = @actor
end
end
#==============================================================================
# ** Window_Status
#------------------------------------------------------------------------------
# This window displays full status specs on the status screen.
#==============================================================================
class Window_Create < Window_Command
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(Graphics.width / 3, fitting_height(4))
self.height = Graphics.height - fitting_height(4)
# create_help_window
@actor = actor
end
#--------------------------------------------------------------------------
# * Set Actor
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Create Command List
#--------------------------------------------------------------------------
def make_command_list
count = 1
for i in $data_classes
count += 1
end
count -= 1
for i in (1...count)
flag = true
add_command($data_classes[i].name, :class)
#add_command(@actor.face_name :class)
end
end
#------------------------------------------------------------------------
#--------------------------------------------------------------------------
# * Get Color of Horizontal Line
#--------------------------------------------------------------------------
def line_color
color = normal_color
color.alpha = 48
color
end
#--------------------------------------------------------------------------
# * Draw Basic Information
#--------------------------------------------------------------------------
def draw_basic_info(x, y)
draw_actor_level(@actor, x, y + line_height * 0)
draw_actor_icons(@actor, x, y + line_height * 1)
draw_actor_hp(@actor, x, y + line_height * 2)
draw_actor_mp(@actor, x, y + line_height * 3)
end
#--------------------------------------------------------------------------
# * Draw Parameters
#--------------------------------------------------------------------------
def draw_parameters(x, y)
6.times {|i| draw_actor_param(@actor, x, y + line_height * i, i + 2) }
end
#--------------------------------------------------------------------------
# * Draw Experience Information
#--------------------------------------------------------------------------
def draw_exp_info(x, y)
s1 = @actor.max_level? ? "-------" : @actor.exp
s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
s_next = sprintf(Vocab::ExpNext, Vocab::level)
change_color(system_color)
draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
draw_text(x, y + line_height * 2, 180, line_height, s_next)
change_color(normal_color)
draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
end
#--------------------------------------------------------------------------
# * Draw Equipment
#--------------------------------------------------------------------------
def draw_equipments(x, y)
@actor.equips.each_with_index do |item, i|
draw_item_name(item, x, y + line_height * i)
end
end
#--------------------------------------------------------------------------
# * Draw Description
#--------------------------------------------------------------------------
def draw_description(x, y)
draw_text_ex(x, y, @actor.description)
end
end
############################################################
#
#
# RACE MEANU
#####
class Window_Race < Window_Command
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(0, fitting_height(4))
self.height = Graphics.height - fitting_height(4)
# create_help_window
@actor = actor
end
#--------------------------------------------------------------------------
# * Set Actor
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Create Command List
#--------------------------------------------------------------------------
def make_command_list
count = 0
for i in Races
add_command(i, :race)
end
end
end


class Window_Appearance < Window_Command
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor,id)
super(Graphics.width / 1.5, fitting_height(4))
self.height = Graphics.height - fitting_height(4)
# create_help_window
@actor = actor
@id = id
#item_height = 36
end
#--------------------------------------------------------------------------
# * Set Actor
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
# self.item_height = 36
end
def id=(id)
@id = id
refresh
# self.item_height = 36
count = 0
i_id = @id.to_i
lookArray = RaceAppearanceNames#[@id]
for i in (0...(lookArray[i_id].length))
#add_command(" "+lookArray[i_id][i], :look)
#draw_item(i,RaceChara[i_id][i],RaceIndex[i_id][i])
draw_character(RaceChara[i_id][i], RaceIndex[i_id][i]-1,16,36*(i+1)-2)
end
end
#--------------------------------------------------------------------------
# * Create Command List
#--------------------------------------------------------------------------
alias oldCommand make_command_list
def make_command_list
oldCommand
count = 0
i_id = @id.to_i
lookArray = RaceAppearanceNames#[@id]
for i in (0...(lookArray[i_id].length))
add_command(" "+lookArray[i_id][i], :look)
#draw_item(i,RaceChara[i_id][i],RaceIndex[i_id][i])
#draw_character(RaceChara[i_id][i], RaceIndex[i_id][i],16,36*(i+1)-2)
end
#draw_character(RaceChara[i_id][i], RaceIndex[i_id][i], 0, 0)
end
def draw_item(index,chara="Actor1.png",chaIndex = 1)
change_color(normal_color, command_enabled?(index))
draw_text(item_rect_for_text(index), command_name(index), alignment)
#draw_character(chara,chaIndex,16,36*(index+1)-2)
end
def item_rect(index)
rect = Rect.new
rect.width = item_width
rect.height = 36#item_height
rect.x = index % col_max * (item_width + spacing)
rect.y = index / col_max * 36#item_height
rect
end
def update_cursor
if @cursor_all
cursor_rect.set(0, 0, contents.width, row_max * 36)
self.top_row = 0
elsif @index < 0
cursor_rect.empty
else
ensure_cursor_visible
cursor_rect.set(item_rect(@index))
end
end
def contents_height
[super - super % 36, row_max * 36].max
end
def update_padding_bottom
surplus = (height - standard_padding * 2) % 36
self.padding_bottom = padding + surplus
end
def top_row
oy / 36
end
def page_row_max
(height - padding - padding_bottom) / 36
end
def top_row=(row)
row = 0 if row < 0
row = row_max - 1 if row > row_max - 1
self.oy = row * 36
end
end

 

Thanks for taking the time to help, by the way. I really appreciate it :)

Oh, and I should add that I haven't changed the facesets yet, just copied them to each race, perhaps that's the problem?

Edited by LordBagardo

Share this post


Link to post
Share on other sites

Somehow the script got corrupted, but I've fixed it now. It might be to do with how RPGMakerVXAce.net treats things within Code Tags...#

 

Either way here it is:

 

Races = Array.new
RaceAppearanceNames = Array.new
RaceFaceImage = Array.new
RaceFaceIndex = Array.new
RaceChara = Array.new
RaceIndex = Array.new
#############CONFIG######################
#Here list all the names of all races in the game
# Example:
# Races = ["Human","Elf","Half Dwarf"]
# Creates three races, called Human, Elf and Half Dwarf
Races = ["Human", "Fairie", "Cave Fairie", "Half Dwarf"]
#Which race the player chooses will be stored in a variable, which is defined
#below. This can be used later create effects that only affect, say, Dwarves,
#such as giving them the ability to use heavy armour, regardless of class.
#This can be acheived by having an event check that array, then run actions accordingly
RaceVariable = 1
#The default is to store the Race in variable 25. By default this will mean that
#if the player is human that varible will be 1, 2 if an elf, and 3 if a Half Dwarf.
#
#Then for each race create a module for showing the Appearance(s)
#Example:
#RaceAppearanceNames << ["Female","Male"]
#RaceFaceImage << ["Actor1.png","Actor1.png"]
#RaceFaceIndex << [1,2]
#RaceChara << ["Actor1.png","Actor1.png"]
#RaceIndex << [1,2]
#
#The first row shows that the first race we typed in at the start has two
#different Appearances. One called Female, one called Male.
#The second row shows the File name for that appearances face. So both Male and
#Female humans use Actor1.png
#The third row shows which face in the file to use, as each image has 8 faces,
#so female humans use the first face in the Actor1.png Image, and Males use the
#second image.
#
#The fourth and fifth line work like the Faces, appart from for defining the
#Character image that is seen walking around the screen. In the example above
#both Male and Female humans have characters to match their faces.
#
#For each race you defined at the start, copy paste these five lines, and customize
#as you wish.
#Race 1:
RaceAppearanceNames << ["Human A","Human B","Human C","Human D"]
RaceFaceImage << ["Actor1.png","Actor2.png","Actor3.png","Actor4.png"]
RaceFaceIndex << [1,2,3,4]
RaceChara << ["Races2.png","Races2.png","Races2.png","Races2.png"]
RaceIndex << [1,2,3,4]
#Race 2:
RaceAppearanceNames << ["Fairie A", "Fairie B", "Fairie C", "Fairie D"]
RaceFaceImage << ["Actor3.png","Actor3.png"]
RaceFaceIndex << [6,5]
RaceChara << ["Races2.png","Races2.png","Races2.png","Races2.png"]
RaceIndex << [5,6,7,8]
#Race 3:
RaceAppearanceNames << ["Cave Fairie A", "Cave Fairie B", "Cave Fairie C", "Cave Fairie D"]
RaceFaceImage << ["Actor3.png"]
RaceFaceIndex << [7]
RaceChara << ["Goblins1.png","Goblins1.png","Goblins1.png","Goblins1.png"]
RaceIndex << [1,2,3,4]
#Race 4:
RaceAppearanceNames << ["Half Dwarf A, Half Dwarf B, Half Dwarf C, Half Dwarf D"]
RaceFaceImage << ["Actor3.png"]
RaceFaceIndex << [7]
RaceChara << ["Goblins1.png","Goblins1.png","Goblins1.png","Goblins1.png"]
RaceIndex << [5,6,7,8]
############END CONFIG############################
#==============================================================================
# ** Scene_Status
#------------------------------------------------------------------------------
# This class performs the status screen processing.
#==============================================================================
class Scene_CharacterCreation < Scene_MenuBase
#--------------------------------------------------------------------------
# * Start Processing
#--------------------------------------------------------------------------
def start
super
create_status_window
@stage = 1
@finished = false
@class_window = Window_Create.new(@actor)
@race_window = Window_Race.new(@actor)
@look_window = Window_Appearance.new(@actor,1)
@status_window.width = Graphics.width
@class_window.index = (@actor.class.id - 1)
@class_window.width = Graphics.width / 3
@class_window.active = false
@class_window.visible = false
@look_window.active = false
@look_window.visible = false
@race_window.width = Graphics.width / 3
@look_window.width = Graphics.width / 3
@class_window.set_handler(:class,method(:changeActorClass))
@class_window.set_handler(:cancel, method(:back))
@look_window.set_handler(:cancel, method(:back))
@look_window.set_handler(:look, method(:finish))
@race_window.set_handler(:race,method(:changeActorRace))
end
alias oldupdate update
def update()
oldupdate()
if @finished == true
return_scene
end
raceID = @race_window.index
appID = @look_window.index
appIndex = RaceIndex
@actor.set_graphic(RaceChara[raceID][appID],RaceIndex[raceID][appID]-1 ,RaceFaceImage[raceID][appID],RaceFaceIndex[raceID][appID]-1)
#@actor.set_graphic("Animal.png" ,3,RaceFaceImage[raceID][appID],RaceFaceIndex[raceID][appID]-1)
$game_player.refresh
classID = @class_window.index
@actor.change_class(classID+1)
@actor.hp = @actor.mhp
@actor.mp = @actor.mmp
@status_window.refresh
end
def finish()
@finished = true
end
def back()
@class_window.active = false
@race_window.active = false
@look_window.active = false
if @stage == 2
@look_window.index = 0
@race_window.active = true
@stage = 1
elsif @stage == 3
@stage = 2
@class_window.active = true
end
end
def changeActorClass()
classID = @class_window.index
@actor.change_class(classID+1)
@actor.hp = @actor.mhp
@actor.mp = @actor.mmp
@stage = 3
@look_window.active = true
@look_window.visible = true
@status_window.refresh
end
def changeActorRace()
raceID = @race_window.index
@actor.set_graphic(RaceFaceImage[raceID][0],RaceFaceIndex[raceID][0],RaceFaceImage[raceID][0],RaceFaceIndex[raceID][0]-1)
@status_window.refresh
@stage = 2
@class_window.activate
@class_window.visible = true
@look_window.id=raceID
@look_window.index = 0
$game_variables[RaceVariable] = raceID +1
end
def create_status_window
y = 0
@status_window = Window_SkillStatus.new(0,0)
@status_window.viewport = @viewport
@status_window.actor = @actor
end
end
#==============================================================================
# ** Window_Status
#------------------------------------------------------------------------------
# This window displays full status specs on the status screen.
#==============================================================================
class Window_Create < Window_Command
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(Graphics.width / 3, fitting_height(4))
self.height = Graphics.height - fitting_height(4)
# create_help_window
@actor = actor
end
#--------------------------------------------------------------------------
# * Set Actor
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Create Command List
#--------------------------------------------------------------------------
def make_command_list
count = 1
for i in $data_classes
count += 1
end
count -= 1
for i in (1...count)
flag = true
add_command($data_classes[i].name, :class)
#add_command(@actor.face_name :class)
end
end
#------------------------------------------------------------------------
#--------------------------------------------------------------------------
# * Get Color of Horizontal Line
#--------------------------------------------------------------------------
def line_color
color = normal_color
color.alpha = 48
color
end
#--------------------------------------------------------------------------
# * Draw Basic Information
#--------------------------------------------------------------------------
def draw_basic_info(x, y)
draw_actor_level(@actor, x, y + line_height * 0)
draw_actor_icons(@actor, x, y + line_height * 1)
draw_actor_hp(@actor, x, y + line_height * 2)
draw_actor_mp(@actor, x, y + line_height * 3)
end
#--------------------------------------------------------------------------
# * Draw Parameters
#--------------------------------------------------------------------------
def draw_parameters(x, y)
6.times {|i| draw_actor_param(@actor, x, y + line_height * i, i + 2) }
end
#--------------------------------------------------------------------------
# * Draw Experience Information
#--------------------------------------------------------------------------
def draw_exp_info(x, y)
s1 = @actor.max_level? ? "-------" : @actor.exp
s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
s_next = sprintf(Vocab::ExpNext, Vocab::level)
change_color(system_color)
draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
draw_text(x, y + line_height * 2, 180, line_height, s_next)
change_color(normal_color)
draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
end
#--------------------------------------------------------------------------
# * Draw Equipment
#--------------------------------------------------------------------------
def draw_equipments(x, y)
@actor.equips.each_with_index do |item, i|
draw_item_name(item, x, y + line_height * i)
end
end
#--------------------------------------------------------------------------
# * Draw Description
#--------------------------------------------------------------------------
def draw_description(x, y)
draw_text_ex(x, y, @actor.description)
end
end
############################################################
#
#
# RACE MEANU
#####
class Window_Race < Window_Command
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(0, fitting_height(4))
self.height = Graphics.height - fitting_height(4)
# create_help_window
@actor = actor
end
#--------------------------------------------------------------------------
# * Set Actor
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Create Command List
#--------------------------------------------------------------------------
def make_command_list
count = 0
for i in Races
add_command(i, :race)
end
end
end


class Window_Appearance < Window_Command
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor,id)
super(Graphics.width / 1.5, fitting_height(4))
self.height = Graphics.height - fitting_height(4)
# create_help_window
@actor = actor
@id = id
#item_height = 36
end
#--------------------------------------------------------------------------
# * Set Actor
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
# self.item_height = 36
end
def id=(id)
@id = id
refresh
# self.item_height = 36
count = 0
i_id = @id.to_i
lookArray = RaceAppearanceNames#[@id]
for i in (0...(lookArray[i_id].length))
#add_command(" "+lookArray[i_id][i], :look)
#draw_item(i,RaceChara[i_id][i],RaceIndex[i_id][i])
draw_character(RaceChara[i_id][i], RaceIndex[i_id][i]-1,16,36*(i+1)-2)
end
end
#--------------------------------------------------------------------------
# * Create Command List
#--------------------------------------------------------------------------
alias oldCommand make_command_list
def make_command_list
oldCommand
count = 0
i_id = @id.to_i
lookArray = RaceAppearanceNames#[@id]
for i in (0...(lookArray[i_id].length))
add_command(" "+lookArray[i_id][i], :look)
#draw_item(i,RaceChara[i_id][i],RaceIndex[i_id][i])
#draw_character(RaceChara[i_id][i], RaceIndex[i_id][i],16,36*(i+1)-2)
end
#draw_character(RaceChara[i_id][i], RaceIndex[i_id][i], 0, 0)
end
def draw_item(index,chara="Actor1.png",chaIndex = 1)
change_color(normal_color, command_enabled?(index))
draw_text(item_rect_for_text(index), command_name(index), alignment)
#draw_character(chara,chaIndex,16,36*(index+1)-2)
end
def item_rect(index)
rect = Rect.new
rect.width = item_width
rect.height = 36#item_height
rect.x = index % col_max * (item_width + spacing)
rect.y = index / col_max * 36#item_height
rect
end
def update_cursor
if @cursor_all
cursor_rect.set(0, 0, contents.width, row_max * 36)
self.top_row = 0
elsif @index < 0
cursor_rect.empty
else
ensure_cursor_visible
cursor_rect.set(item_rect(@index))
end
end
def contents_height
[super - super % 36, row_max * 36].max
end
def update_padding_bottom
surplus = (height - standard_padding * 2) % 36
self.padding_bottom = padding + surplus
end
def top_row
oy / 36
end
def page_row_max
(height - padding - padding_bottom) / 36
end
def top_row=(row)
row = 0 if row < 0
row = row_max - 1 if row > row_max - 1
self.oy = row * 36
end
end

 

If it continues to not work then I'll find away to get the code to you without it corrupting. :)

Thanks, Kaimonkey

 

 

EDIT: Also I noticed that for some races you have only one face, but four characters.

Each face is allocated to a character, so if they all have the same face then you must enter that face FOUR times. :)

Edited by kai salmonkey

Share this post


Link to post
Share on other sites

Alright, thanks again Kaimonkey. I'll give it another go and report back to you, lol.

 

Edit: Strange, I still get the same message... is there anything I could do involving the code tags like what you mentioned before? Again, thanks for all the help you're giving me, lol. I can't script to save my life :lol:

Also, I'll check those faces again. A silly mistake on my half!

Edited by LordBagardo

Share this post


Link to post
Share on other sites

Ok, when it's completely working can I get a screenshot to add to the OP? Thanks, Kaimonkey

looks good but is there a way to make this allow you to set which classes can be chosen?

Actually, I'm working on that now, I'll add it if anyone else expresses an interest.

Share this post


Link to post
Share on other sites

Ok, when it's completely working can I get a screenshot to add to the OP? Thanks, Kaimonkey

looks good but is there a way to make this allow you to set which classes can be chosen?

Actually, I'm working on that now, I'll add it if anyone else expresses an interest.

 

that would be kool

Share this post


Link to post
Share on other sites

looks good but is there a way to make this allow you to set which classes can be chosen?

Actually, I'm working on that now, I'll add it if anyone else expresses an interest.

I'd be interested in this function/feature as well for what I plan to do with this script. All of my characters have classes that are unique to them for various reasons, so being able to set which classes can be chosen for the one created character would save me a lot of headache.

Share this post


Link to post
Share on other sites

Ok, when it's completely working can I get a screenshot to add to the OP? Thanks, Kaimonkey

looks good but is there a way to make this allow you to set which classes can be chosen?

Actually, I'm working on that now, I'll add it if anyone else expresses an interest.

I would definitely be interested in this. :D

 

 

Hmm, I just plugged this script in and went with it. I mean, I did change the variable to 1 instead of 25 (because I'm starting a new project with it) but that's the only difference? And yet, the appearance icons are covering up the first letter or two of the appearance name. This is sorta bothersome, but nothing ridiculously important.

KaiMonkey.png

Here's a screenie.

Edited by Ehren Rivers

Share this post


Link to post
Share on other sites

Argh, that is not a problem with my script, but I think a problem with the way RPGmakerVxAce.net stores code. From now on the script will come as a TXT document...

 

But this that said and done I'd like to present version 1.1, with Class Specific Race Support, and without the icons covering the appearance names.

If there are any bugs, don't be afraid to post them :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×