Project1
标题:
~~~~~~~~汗刚发现的一个脚本问题
[打印本页]
作者:
84671379
时间:
2010-8-29 01:55
提示:
作者被禁止或删除 内容自动屏蔽
作者:
oОS+WEi
时间:
2010-8-29 11:57
把这个覆盖掉原来的 Game_Battler 1
# ————————————————————————————————
# 本脚本来自www.66rpg.com,转载请保留此信息
# ————————————————————————————————
#==========================================================================
# ■ Game_Battler (分割定义 1)
#--------------------------------------------------------------------------
# 处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
# 超级类来使用。
#==========================================================================
class Game_Battler
#----------------------------------------------------------------------
# ● 定义实例变量
#----------------------------------------------------------------------
attr_reader :battler_name # 战斗者 文件名
attr_reader :battler_hue # 战斗者 色相
attr_reader :hp # HP
attr_reader :sp # SP
attr_reader :states # 状态
attr_accessor :hidden # 隐藏标志
attr_accessor :immortal # 不死身标志
attr_accessor :damage_pop # 显示伤害标志
attr_accessor :damage # 伤害值
attr_accessor :critical # 会心一击标志
attr_accessor :animation_id # 动画 ID
attr_accessor :animation_hit # 动画 击中标志
attr_accessor :white_flash # 白色屏幕闪烁标志
attr_accessor :blink # 闪烁标志
#----------------------------------------------------------------------
# ● 初始化对像
#----------------------------------------------------------------------
def initialize
@battler_name = ""
@battler_hue = 0
@hp = 0
@sp = 0
@states = []
@states_turn = {}
@maxhp_plus = 0
@maxsp_plus = 0
@str_plus = 0
@dex_plus = 0
@agi_plus = 0
@int_plus = 0
@hidden = false
@immortal = false
@damage_pop = false
@damage = nil
@critical = false
@animation_id = 0
@animation_hit = false
@white_flash = false
@blink = false
@current_action = Game_BattleAction.new
end
#----------------------------------------------------------------------
# ● 获取 MaxHP
#----------------------------------------------------------------------
def maxhp
n = [[base_maxhp + @maxhp_plus, 1].max, 999999].min
for i in @states
n *= $data_states[i].maxhp_rate / 100.0
end
n = [[Integer(n), 1].max, 999999].min
return n
end
#----------------------------------------------------------------------
# ● 获取 MaxSP
#----------------------------------------------------------------------
def maxsp
n = [[base_maxsp + @maxsp_plus, 0].max, 999999].min
for i in @states
n *= $data_states[i].maxsp_rate / 100.0
end
n = [[Integer(n), 0].max, 999999].min
return n
end
#---------------------------------------------------------------------
# ● 获取力量
#---------------------------------------------------------------------
def str
n = [[base_str + @str_plus, 1].max, 999].min
for i in @states
n *= $data_states[i].str_rate / 100.0
end
n = [[Integer(n), 1].max, 999].min
return n
end
#----------------------------------------------------------------------
# ● 获取灵巧
#----------------------------------------------------------------------
def dex
n = [[base_dex + @dex_plus, 1].max, 999].min
for i in @states
n *= $data_states[i].dex_rate / 100.0
end
n = [[Integer(n), 1].max, 999].min
return n
end
#----------------------------------------------------------------------
# ● 获取速度
#----------------------------------------------------------------------
def agi
n = [[base_agi + @agi_plus, 1].max, 999].min
for i in @states
n *= $data_states[i].agi_rate / 100.0
end
n = [[Integer(n), 1].max, 999].min
return n
end
#------------------------------------------------------------------------
# ● 获取魔力
#------------------------------------------------------------------------
def int
n = [[base_int + @int_plus, 1].max, 999].min
for i in @states
n *= $data_states[i].int_rate / 100.0
end
n = [[Integer(n), 1].max, 999].min
return n
end
#------------------------------------------------------------------------
# ● 设置 MaxHP
# maxhp : 新的 MaxHP
#------------------------------------------------------------------------
def maxhp=(maxhp)
@maxhp_plus += maxhp - self.maxhp
@maxhp_plus = [[@maxhp_plus, -9999].max, 9999].min
@hp = [@hp, self.maxhp].min
end
#------------------------------------------------------------------------
# ● 设置 MaxSP
# maxsp : 新的 MaxSP
#------------------------------------------------------------------------
def maxsp=(maxsp)
@maxsp_plus += maxsp - self.maxsp
@maxsp_plus = [[@maxsp_plus, -999999].max, 999999].min
@sp = [@sp, self.maxsp].min
end
#------------------------------------------------------------------------
# ● 设置力量
# str : 新的力量
#------------------------------------------------------------------------
def str=(str)
@str_plus += str - self.str
@str_plus = [[@str_plus, -999].max, 999].min
end
#------------------------------------------------------------------------
# ● 设置灵巧
# dex : 新的灵巧
#------------------------------------------------------------------------
def dex=(dex)
@dex_plus += dex - self.dex
@dex_plus = [[@dex_plus, -999].max, 999].min
end
#------------------------------------------------------------------------
# ● 设置速度
# agi : 新的速度
#------------------------------------------------------------------------
def agi=(agi)
@agi_plus += agi - self.agi
@agi_plus = [[@agi_plus, -999].max, 999].min
end
#------------------------------------------------------------------------
# ● 设置魔力
# int : 新的魔力
#------------------------------------------------------------------------
def int=(int)
@int_plus += int - self.int
@int_plus = [[@int_plus, -999].max, 999].min
end
#------------------------------------------------------------------------
# ● 获取命中率
#------------------------------------------------------------------------
def hit
n = 100
for i in @states
n *= $data_states[i].hit_rate / 100.0
end
return Integer(n)
end
#------------------------------------------------------------------------
# ● 获取攻击力
#------------------------------------------------------------------------
def atk
n = base_atk + base_str + @str_plus.to_i
for i in @states
n *= $data_states[i].atk_rate / 100.0
end
return Integer(n)
end
#------------------------------------------------------------------------
# ● 获取物理防御
#------------------------------------------------------------------------
def pdef
n = base_pdef + base_dex + @dex_plus.to_i
for i in @states
n *= $data_states[i].pdef_rate / 100.0
end
return Integer(n)
end
#------------------------------------------------------------------------
# ● 获取魔法防御
#------------------------------------------------------------------------
def mdef
n = base_mdef + base_int + @int_plus.to_i
for i in @states
n *= $data_states[i].mdef_rate / 100.0
end
return Integer(n)
end
#------------------------------------------------------------------------
# ● 获取回避修正
#------------------------------------------------------------------------
def eva
n = base_eva + base_agi + @agi_plus.to_i
for i in @states
n += $data_states[i].eva
end
return n
end
#------------------------------------------------------------------------
# ● 更改 HP
# hp : 新的 HP
#------------------------------------------------------------------------
def hp=(hp)
@hp = [[hp, maxhp].min, 0].max
# 解除附加的战斗不能状态
for i in 1...$data_states.size
if $data_states[i].zero_hp
if self.dead?
add_state(i)
else
remove_state(i)
end
end
end
end
#------------------------------------------------------------------------
# ● 更改 SP
# sp : 新的 SP
#------------------------------------------------------------------------
def sp=(sp)
@sp = [[sp, maxsp].min, 0].max
end
#------------------------------------------------------------------------
# ● 全回复
#------------------------------------------------------------------------
def recover_all
@hp = maxhp
@sp = maxsp
for i in @states.clone
remove_state(i)
end
end
#------------------------------------------------------------------------
# ● 获取当前的动作
#------------------------------------------------------------------------
def current_action
return @current_action
end
#------------------------------------------------------------------------
# ● 确定动作速度
#------------------------------------------------------------------------
def make_action_speed
@current_action.speed = agi + rand(10 + agi / 4)
end
#------------------------------------------------------------------------
# ● 战斗不能判定
#------------------------------------------------------------------------
def dead?
return (@hp == 0 and not @immortal)
end
#------------------------------------------------------------------------
# ● 存在判定
#------------------------------------------------------------------------
def exist?
return (not @hidden and (@hp > 0 or @immortal))
end
#------------------------------------------------------------------------
# ● HP 0 判定
#------------------------------------------------------------------------
def hp0?
return (not @hidden and @hp == 0)
end
#------------------------------------------------------------------------
# ● 可以输入命令判定
#------------------------------------------------------------------------
def inputable?
return (not @hidden and restriction <= 1)
end
#------------------------------------------------------------------------
# ● 可以行动判定
#------------------------------------------------------------------------
def movable?
return (not @hidden and restriction < 4)
end
#------------------------------------------------------------------------
# ● 防御中判定
#------------------------------------------------------------------------
def guarding?
return (@current_action.kind == 0 and @current_action.basic == 1)
end
#------------------------------------------------------------------------
# ● 休止中判定
#------------------------------------------------------------------------
def resting?
return (@current_action.kind == 0 and @current_action.basic == 3)
end
end
复制代码
作者:
RXVincent
时间:
2010-8-29 12:20
这个是上次我帮小柯改的……要求一模一样
覆盖原脚本
#=========================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#=========================================================================
# 空手的攻击防御力 by Claimh
#------------------------------------------------------------------
# http://www.k3.dion.ne.jp/~claimh/
#========================================================================
module Arm_Element
ARM_ATK = []
ARM_PDEF = []
ARM_MDEF = []
ARM_ELEMENT = []
ARM_ELE_PLUS = []
ARM_ELE_MINUS = []
ARM_ANIMATION1 = []
ARM_ANIMATION2 = []
#===================================================================
# 自定义开始
#====================================================================
# 空手时1号角色攻击力与力量值的百分比关系(100%)
ARM_ATK[1] = 1
# 空手时2号角色攻击力与力量值的百分比关系(100%),以下类推,不一一举例。
ARM_ATK[2] = 1
ARM_ATK[3] = 1
# 空手时1号角色防御力与灵巧值的百分比关系(100%)
ARM_PDEF[1] = 1
ARM_PDEF[2] = 1
ARM_PDEF[3] = 1
# 空手时1号角色魔法防御力与速度值的百分比关系(100%)
ARM_MDEF[1] = 1
ARM_MDEF[2] = 1
ARM_MDEF[3] = 1
# 空手时攻击方动画编号
ARM_ANIMATION1[3] = 2
# 空手时挨打方动画编号
ARM_ANIMATION2[1] = 7
ARM_ANIMATION2[2] = 12
ARM_ANIMATION2[3] = 45
#————以下几个慎用,是空手时的属性增减,不推荐修改
ARM_ELEMENT[1] = [1]
ARM_ELE_PLUS[1] = []
ARM_ELE_MINUS[1] = []
end
class Game_Actor < Game_Battler
include Arm_Element
#--------------------------------------------------------------------
#------------------------------------------------------------------
alias base_atk_arm base_atk
def base_atk
if @weapon_id == 0 and ARM_ATK[@actor_id] != nil
return $game_actors[@actor_id].str * ARM_ATK[@actor_id]
end
return base_atk_arm + $game_actors[@actor_id].str * ARM_ATK[@actor_id]
end
#--------------------------------------------------------------------
#-------------------------------------------------------------------
alias base_pdef_arm base_pdef
def base_pdef
if @weapon_id == 0 and ARM_PDEF[@actor_id] != nil
return base_pdef_arm + $game_actors[@actor_id].dex * ARM_PDEF[@actor_id]
end
return base_pdef_arm + $game_actors[@actor_id].dex * ARM_PDEF[@actor_id]
end
#--------------------------------------------------------------------
#--------------------------------------------------------------------
alias base_mdef_arm base_mdef
def base_mdef
if @weapon_id == 0 and ARM_MDEF[@actor_id] != nil
return base_mdef_arm + $game_actors[@actor_id].agi * ARM_MDEF[@actor_id]
end
return base_mdef_arm + $game_actors[@actor_id].agi * ARM_MDEF[@actor_id]
end
#------------------------------------------------------------------
#--------------------------------------------------------------
alias element_set_arm element_set
def element_set
if @weapon_id == 0 and ARM_ELEMENT[@actor_id] != []
return ARM_ELEMENT[@actor_id]
end
return element_set_arm
end
#-----------------------------------------------------------------
#-------------------------------------------------------------------
alias plus_state_set_arm plus_state_set
def plus_state_set
if @weapon_id == 0 and ARM_ELE_PLUS[@actor_id] != []
return ARM_ELE_PLUS[@actor_id]
end
return plus_state_set_arm
end
#-------------------------------------------------------------------
#------------------------------------------------------------------
alias minus_state_set_arm minus_state_set
def minus_state_set
if @weapon_id == 0 and ARM_ELE_MINUS[@actor_id] != []
return ARM_ELE_MINUS[@actor_id]
end
return minus_state_set_arm
end
#------------------------------------------------------------------
#-----------------------------------------------------------------
alias animation1_id_arm animation1_id
def animation1_id
if @weapon_id == 0 and ARM_ANIMATION1[@actor_id] != nil
return ARM_ANIMATION1[@actor_id]
end
return animation1_id_arm
end
#---------------------------------------------------------------------
#------------------------------------------------------------------
alias animation2_id_arm animation2_id
def animation2_id
if @weapon_id == 0 and ARM_ANIMATION2[@actor_id] != nil
return ARM_ANIMATION2[@actor_id]
end
return animation2_id_arm
end
end
#=====================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1