注册会员 登录
Project1 返回首页

鼠窝 https://rpg.blue/?335626 [收藏] [复制] [分享] [RSS] ~外站脚本图书馆~

日志

角色性格创造

热度 2已有 596 次阅读2014-5-19 20:50 |个人分类:外站脚本| called, names, 角色

Races = Array.new
RaceAppearanceNames = Array.new
RaceFaceImage = Array.new
RaceFaceIndex = Array.new
RaceChara = Array.new
RaceIndex = Array.new
BannedClasses = Array.new
#############CONFIG######################
#Here list all the names of all races in the game
# Example:
# Races = ["Human","Elf","Dwarf"]
# Creates three races, called Human, Elf and Dwarf
Races = ["Human","Elf","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 = 25
#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 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]
#BannedClasses << [9]
#
#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.
#
#Finally the sixth line shows which classes are unavailible to that all members of
#a certain race.
#In this case ALL Human's are unable to use 9th class in the Data base (Witch by
#default)
#
#For each race you defined at the start, copy paste these six lines, and customize
#as you wish.
#Race 1:
RaceAppearanceNames << ["Ginger","Green","Purple","Wings"]
RaceFaceImage << ["Actor1.png","Actor2.png","Actor3.png","Actor4.png"]
RaceFaceIndex << [1,2,3,4]
RaceChara << ["Actor1.png","Actor2.png","Actor3.png","Actor4.png"]
RaceIndex << [1,2,3,4]
BannedClasses << [9]
#Race 2:
RaceAppearanceNames << ["Female","Male"]
RaceFaceImage << ["Actor3.png","Actor3.png"]
RaceFaceIndex << [6,5]
RaceChara << ["Actor3.png","Actor3.png"]
RaceIndex << [6,5]
BannedClasses << [1,3,4,5]
#Race 3:
RaceAppearanceNames << ["Male"]
RaceFaceImage << ["Actor3.png"]
RaceFaceIndex << [7]
RaceChara << ["Actor3.png"]
RaceIndex << [7]
BannedClasses << [10,9,8,2]
############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
    @class_window.id = 0
    @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
    @class_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 = false
      for j in (0..BannedClasses[@id.to_i].length)
        if BannedClasses[@id.to_i][j] == $data_classes[i].id
          flag = true
        end
      end
      if flag == false
        add_command($data_classes[i].name, :class,true)
      else
        add_command($data_classes[i].name, :class,false)
      end
      #add_command(@actor.face_name :class)
    end
  end
  #------------------------------------------------------------------------
  def id=(id)
    @id = id
    refresh
  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

鸡蛋
1

鲜花

刚表态过的朋友 (1 人)

发表评论 评论 (3 个评论)

回复 鑫晴 2014-6-1 12:45
求翻译!
回复 子弹君 2014-6-1 12:49
鑫晴: 求翻译!
这是一个类似于种族的脚本,目前在我评定的翻译程度为中等,所以这个翻译要延后...
回复 鑫晴 2014-6-1 12:50
坐等翻译~

facelist doodle 涂鸦笔

您需要登录后才可以评论 登录 | 注册会员

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-19 02:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部