kai salmonkey 17 Posted April 3, 2012 (edited) 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. 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 April 6, 2012 by kai salmonkey 17 Share this post Link to post Share on other sites
Wyrelade 15 Posted April 3, 2012 It's sweet .. Thanks for share! Share this post Link to post Share on other sites
LordBagardo 2 Posted April 3, 2012 Just tested it, this is fantastic! Very simple in terms of choices, but I think that's what makes it so effective. Thanks Kai, I'll definitely be using this Share this post Link to post Share on other sites
Knightmare 170 Posted April 4, 2012 I was looking for a way to make the character creation aspect in my game nicer, this will do it, thanks Kai! Share this post Link to post Share on other sites
xmartyr7 45 Posted April 4, 2012 Don't let CopperCab see that you called the red-haired guy a ginger. Nice script though! 1 Share this post Link to post Share on other sites
Nohta 15 Posted April 4, 2012 Hmm... I might be able to do a custom character thing in my project now. I'll have to keep this script on my radar. Share this post Link to post Share on other sites
BlackRaven117 0 Posted April 4, 2012 Great script! Really reminds me of The Elder Scrolls games. Maybe I will make a fangame because of this! Share this post Link to post Share on other sites
LordBagardo 2 Posted April 4, 2012 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! Share this post Link to post Share on other sites
kai salmonkey 17 Posted April 4, 2012 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! 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
LordBagardo 2 Posted April 4, 2012 (edited) 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 April 4, 2012 by LordBagardo Share this post Link to post Share on other sites
Tammsyn 8 Posted April 4, 2012 looks good but is there a way to make this allow you to set which classes can be chosen? Share this post Link to post Share on other sites
kai salmonkey 17 Posted April 4, 2012 (edited) 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 April 4, 2012 by kai salmonkey Share this post Link to post Share on other sites
LordBagardo 2 Posted April 4, 2012 (edited) 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 Also, I'll check those faces again. A silly mistake on my half! Edited April 4, 2012 by LordBagardo Share this post Link to post Share on other sites
kai salmonkey 17 Posted April 4, 2012 (edited) Kaimonkey.txt Okay, I've attached it as a text document. Try now Edited April 4, 2012 by kai salmonkey Share this post Link to post Share on other sites
LordBagardo 2 Posted April 4, 2012 That did it! Phew, must have been something to do with the code brackets after all... Anyway, thanks yet again Kaimonkey. Be sure that you'll get your full credit in my game Share this post Link to post Share on other sites
kai salmonkey 17 Posted April 4, 2012 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
LordBagardo 2 Posted April 4, 2012 (edited) Sure, here you go. The classes aren't quite finished yet but I think you get the picture of what's going on Edited April 4, 2012 by LordBagardo 1 Share this post Link to post Share on other sites
Tammsyn 8 Posted April 4, 2012 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
Nohta 15 Posted April 5, 2012 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
bran0523 0 Posted April 5, 2012 (edited) This is a nice script. I was wondering if it was possible to do this with multiple characters? If so how? Edited April 5, 2012 by bran0523 Share this post Link to post Share on other sites
Ehren Rivers 14 Posted April 5, 2012 (edited) 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. 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. Here's a screenie. Edited April 6, 2012 by Ehren Rivers Share this post Link to post Share on other sites
Ehren Rivers 14 Posted April 6, 2012 (edited) Sorry about that. Totally forgot I'd posted here, and I can't figure out how to delete the damn doubled post. :/ Edited April 6, 2012 by Ehren Rivers Share this post Link to post Share on other sites
kai salmonkey 17 Posted April 6, 2012 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
Akrium 10 Posted April 6, 2012 Amazing script, Keep up the good work bro. Share this post Link to post Share on other sites
dabum 0 Posted April 6, 2012 (edited) Nvm, got it working, great script! Edited April 6, 2012 by dabum Share this post Link to post Share on other sites