赞 0
VIP 0
好人卡 0
积分 1
经验 4217
最后登录 2014-4-18
在线时间 116 小时
Lv1.梦旅人
梦石 0
星屑 50
在线时间 116 小时
注册时间 2006-7-29
帖子 29
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
急求啊,这个系统很好,但是存在一个奇葩的问题就是:自己给自己回血或是回蓝不会跳出数字显示,而给别人回则是正常显示,是否是脚本中没有考虑自己给自己造成伤害的情况呢?(如果回复也是一种伤害的话)
脚本如下,求哪位大神抽空改一下吧,话说这脚本应该用的人挺多的了吧,求造福群众啊啊~~~万分感谢啊啊[code]#=============================================================================
#★Zhong RMVX 半即时战斗系统 1.03b版★
#-----------------------------------------------------------------------------
#★Scene_CP核心部分参考自 : 神思 《战斗真位移》战斗系统
#★作者: Zhong_zw
#★联系方式: 66rpg.com论坛短信 或 [email protected]
#★游戏中如若引用本脚本,请保留以上信息,并作相关说明.
#☆如若转载本脚本请联系本人☆
#=============================================================================
#=============================================================================
#☆1.01版修正问题:
#1、物品、特技窗口选择我方人物时,头像重叠
#2、连续伤害及自动回复效果无效。
#☆1.02版修正问题:
#1、减少刷新次数,提高速度
#2、修正被打击时有可能退到cp槽外
#☆1.02a版修正问题:
#1、复活问题.
#2、头像刷新问题.
#☆1.03版更新内容:
#1、地图名称与战斗背景的对应关系可在哈希表中设置
#2、如无相应战斗背景直接采用默认战斗背景
#3、角色CP图缺失时,用角色相应行走图代替
#☆1.03a版更新内容:
#1、物品经验得失窗口有时图标显示错误的问题
#★注:旧版本的只要把脚本中“class Window_egi<Window_Base”这个类完整的覆盖原来就行了。
#☆1.03b版更新内容:
#1、图标战斗指令窗口刷新的问题
#2、修正战斗事件响应的部分功能
#=============================================================================
#☆使用方法说明☆
#☆使用方法基本与我之前发的朴素横版战斗相同
#☆动画设置:
#1、武器、特技、物品的施展动画直接在其备注填入动画id即可。如果为空即不显示施展动画。
#2、敌人普通攻击动画,在其备注里填写格式如下:
# a1=XX #施展动画id
# a2=XX #对方动画id
#如果为空即使用默认普通动画(画面震动).
#☆战斗图设置:
#3、角色战斗图的的命名方式是角色id后面加上_z,如1_z.存放在Battlers文件夹。
#4、默认待机图为两帧,只要在Battlers文件夹里放一个“战斗图名+待“的文件,就会自动循环播放
#这两个战斗图,如1_b待,没有则没待机动作。
#☆战斗背景设置:
#5、在Graphics目录下新建Battlebacks文件夹。
#6、战斗时先搜索文件夹内是否有与角色所在区域同名的战斗图,如果没有则搜索文件夹里是否
#存在与地图同名的图片。
#7、简而言之,你须储存与你地图同名的战斗背景在Battlebacks,如果想在同一幅地图实现不同地域
#战斗背景不同,就在Battlebacks文件夹里储存与这个地域同名的战斗背景.至少保证战斗的地图
#都有一幅该地图同名的战斗背景,不然战斗时会提示找不到地图.(可参考《拉尔夫战记》或朴素横版的范例)
#☆CP条设置:
#8、CP条:在system文件夹里储存一个命名为"cp条"的图片,默认长度为327,如果需要可在Scene_CP类里调整相
#关参数.
#9、角色cp图命名方式是"角色id+_cp",如:1_cp,角色活跃cp图命名方式是"角色id+_a_cp",如1_a_cp,
#敌人cp图命名方式是"敌人名 + _敌人cp",如史莱姆_敌人cp,敌人活跃cp图是"敌人名+_a_cp".
#亦可在system文件夹里储存名为"敌人cp"的图片,作为敌人的统一cp图,活跃图名为"a_敌人cp",默认如果找不到敌人相关cp图就直接
#用这张图片.
#☆选择光标设置
#10、在system文件夹里储存名为"光标"的图片作为选择光标.
#11、B_B_CONFIG = true 时地图与战斗背景的命名关系写在BATTLE_BACK 这个数组里,
#B_B_CONFIG = false时,和战斗背景和以前的命名方式相同。
#12、战斗背景文件缺失时,用回默认战斗背景。
#★队伍战斗事件的设置说明★:
#13、除“回合”和“回合结束”条件外,其他事件条件设置与默认系统相同。
#14、关于角色回合的定义:角色回合是指每个角色各自独有一个回合属性,角色CP值每满一次就增加一个回合,角色间的回合相互独立。
#15、关于角色回合条件设置,参照工程目录下的“说明图片”文件夹的图片1、2,3对各个框进行设置,实现两种回合条件的设置
# 步骤如下:
# 一、一般回合条件设置,即当角色回合等于或大于小于某个数值时就在回合开始前或后执行
# 事件。
# 1. 参看“说明图片”文件夹中的图1对各个框的定义。
# 2. 在事件条件设置窗口中勾上“回合结束”,即打开回合条件设置开关。
# 3. 勾上“回合数”,在“回合关系参数”框里输入“回合关系参数”。★注:旁边的那个框值为0
# 回合关系参数取值:
# 0 为当 "角色回合"等于"回合参数"值时,回合开始前执行。
# 1 为当 "角色回合"大于"回合参数"值时,回合开始前执行。
# 2 为当 "角色回合"小于"回合参数"值时,回合开始前执行。
# 3 为当 "角色回合"等于"回合参数"值时,回合进行后执行。
# 4 为当 "角色回合"大于"回合参数"值时,回合进行后执行。
# 5 为当 "角色回合"小于"回合参数"值时,回合进行后执行。
#
# 4.选择“回合对象”,勾上相应的"敌角色"或"角色",选择相应对象。
# 5.在“回合参数”框上填入相关数值。
# 二、循环回合条件设置,即当角色回合等于某个回合后执行事件,以后每隔N个回合在执行一次。
# 1. 参看“说明图片”文件夹中的图2对各个框的定义。
# 2.设置事件执行时机,即回合执行前或后。
# 对“事件执行时机参数”进行设置,取值如下:
# 0 为回合执行前。
# 1 为回合执行后。
# 3.设置"间隔参数",即当达到一定回合数后,每隔N个回合再执行事件的间隔。
# 4.设置相应“回合对象”
# 5.设置“回合参数”
# 6.如图3设置,把“间隔”设为回合。
#16、附赠角色显示动画函数:
# $game_troop.interpreter.add_aa(动画对象,动画id)
# "动画对象"取值:角色id或-1,-1时即全体动画
# 在事件的"脚本"中调用就可以了!
#
#
#=============================================================================
#=============================================================================
#★战斗背景设置及其他功能开关
#=============================================================================
BATTLE_BACK = {"古松居外"=>"树林","古松居内"=>"树林","古松居后山"=>"树林","古松居后山后段"=>"树林","古松居后山出口"=>"树林"} #地图名称与战斗背景对应关系,命名方式:地图名或区域=>战斗背景名
B_B_CONFIG = true #是否启用地图名称与战斗背景对应关系功能
#================================================
#★战斗者类
#================================================
class Game_Battler
attr_accessor :cp
attr_accessor :cp_total
#================================================
attr_accessor :Battler_turn #角色单独的回合数
attr_accessor :turn_start #角色回合状态 0:回合结束或非角色回合 1:角色回合 3:角色回合准备
#================================================
attr_accessor :cp_turn #角色能不行动时,计算角色实际cp爆满次数,用以代替回合,计算状态解除时机
#=======================================
attr_accessor :animation2_id
attr_accessor :act_status
attr_accessor :damage
attr_accessor :damage_pop
attr_accessor :slip_damage
attr_accessor :auto_damage
attr_accessor :state_name
#=========================================
alias oldinitialize initialize
def initialize
@cp = 0
@cp_total = false
@cp_turn = 0
@damage = nil
@damage_pop = false
@act_status = 0
@slip_damage = 0
@auto_damage = 0
@Battler_turn = 0
@turn_start = 0
@state_name = nil
oldinitialize
end
def maxcp
return 100
end
#--------------------------------------------------------------------------
# ● 应用连续伤害效果
#--------------------------------------------------------------------------
def slip_damage_effect
if slip_damage? and @hp > 0
@hp_damage = apply_variance(maxhp / 10, 10)
@hp_damage = @hp - 1 if @hp_damage >= @hp
@slip_damage = @hp_damage
self.hp -= @hp_damage
end
end
end #class
#===============================================
#★角色队伍类
#===============================================
class Game_Party < Game_Unit
attr_accessor :actor_battler
alias oldinitialize initialize
def initialize
oldinitialize
@actor_battler = []
end
end #class
#================================================
#★敌人队伍类
#================================================
class Game_Troop < Game_Unit
attr_accessor :enemy_battler
alias oldinitialize initialize
def initialize
oldinitialize
@enemy_battler = []
end
#--------------------------------------------------------------------------
# ● 判断是否符合战斗事件 (页) 条件
# page : 战斗事件页
#--------------------------------------------------------------------------
def conditions_met?(page)
c = page.condition
if not c.turn_ending and not c.turn_valid and not c.enemy_valid and
not c.actor_valid and not c.switch_valid
return false # 未设置条件…不执行
end
if @event_flags