元素精靈系統(三)
為這個系統加上功用!
就要再改一改之前的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
整個系統大致上就是這樣,其實也不是很難的吧!