Home > Tutorial

元素精靈系統(三)

為這個系統加上功用!
就要再改一改之前的script。

class ElementalSpirit加上以下script

attr_reader :name
attr_reader :plus_hp
attr_reader :plus_sp
attr_reader :plus_str
attr_reader :plus_dex
attr_reader :plus_agi
attr_reader :plus_int

attr_reader :spirits
attr_reader :consumeint

def initialize
  @name = []     #元素精靈的名字
  @int = []     #元素精靈所需的int
  @plus_hp = []     #這些是元素精靈能作出的影響
  @plus_sp = []
  @plus_str = []
  @plus_dex = []
  @plus_agi = []
  @plus_int = []
  @consumeint = 0     #已佔用的int
  @spirits = []     #使用中的元素精靈
end
 
def create(name, int,
plus_hp, plus_sp, plus_str, plus_dex, plus_agi, plus_int)
  @name.push(name)
  @int.push(int)
  @plus_hp.push(plus_hp)
  @plus_sp.push(plus_sp)
  @plus_str.push(plus_str)
  @plus_dex.push(plus_dex)
  @plus_agi.push(plus_agi)
  @plus_int.push(plus_int)
  
# 系統用,新增元素精靈

end

 用以下方法新增精靈。

 $elementalspirit.create("Undine", 121, 0, 0, -20, 0, 0, 40)     #減20str 但加40int

 class Game_Actor加上以下script控制戰鬥時的stats

 
  #--------------------------------------------------------------------------
  # 獲取基本 MaxHP
  #--------------------------------------------------------------------------
  def base_maxhp
    return $data_actors[@actor_id].parameters[0, @level]
    for i in $elementalspirit.spirits
      n += $elementalspirit.plus_maxhp[i]
    end
  end
  #--------------------------------------------------------------------------
  # 獲取基本 MaxSP
  #--------------------------------------------------------------------------
  def base_maxsp
    return $data_actors[@actor_id].parameters[1, @level]
    for i in $elementalspirit.spirits
      n += $elementalspirit.plus_maxsp[i]
    end
  end
  #--------------------------------------------------------------------------
  # 獲取基本力量
  #--------------------------------------------------------------------------
  def base_str
    n = $data_actors[@actor_id].parameters[2, @level]
    for i in $elementalspirit.spirits
      n += $elementalspirit.plus_str[i]
    end
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    n += weapon != nil ? weapon.str_plus : 0
    n += armor1 != nil ? armor1.str_plus : 0
    n += armor2 != nil ? armor2.str_plus : 0
    n += armor3 != nil ? armor3.str_plus : 0
    n += armor4 != nil ? armor4.str_plus : 0
    return [[n, 1].max, 999].min
  end
  #--------------------------------------------------------------------------
  # 獲取基本靈巧
  #--------------------------------------------------------------------------
  def base_dex
    n = $data_actors[@actor_id].parameters[3, @level]
    for i in $elementalspirit.spirits
      n += $elementalspirit.plus_dex[i]
    end
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    n += weapon != nil ? weapon.dex_plus : 0
    n += armor1 != nil ? armor1.dex_plus : 0
    n += armor2 != nil ? armor2.dex_plus : 0
    n += armor3 != nil ? armor3.dex_plus : 0
    n += armor4 != nil ? armor4.dex_plus : 0
    return [[n, 1].max, 999].min
  end
  #--------------------------------------------------------------------------
  # 獲取基本速度
  #--------------------------------------------------------------------------
  def base_agi
    n = $data_actors[@actor_id].parameters[4, @level]
    for i in $elementalspirit.spirits
      n += $elementalspirit.plus_agi[i]
    end
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    n += weapon != nil ? weapon.agi_plus : 0
    n += armor1 != nil ? armor1.agi_plus : 0
    n += armor2 != nil ? armor2.agi_plus : 0
    n += armor3 != nil ? armor3.agi_plus : 0
    n += armor4 != nil ? armor4.agi_plus : 0
    return [[n, 1].max, 999].min
  end
  #--------------------------------------------------------------------------
  # 獲取基本魔力
  #--------------------------------------------------------------------------
  def base_int
    n = $data_actors[@actor_id].parameters[5, @level]
    for i in $elementalspirit.spirits
      n += $elementalspirit.plus_int[i]
    end
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    n += weapon != nil ? weapon.int_plus : 0
    n += armor1 != nil ? armor1.int_plus : 0
    n += armor2 != nil ? armor2.int_plus : 0
    n += armor3 != nil ? armor3.int_plus : 0
    n += armor4 != nil ? armor4.int_plus : 0
    return [[n, 1].max, 999].min
  end

 整個系統大致上就是這樣,其實也不是很難的吧!

上一頁            一頁              目錄

Hosted by www.Geocities.ws

1