Project1

标题: VX半即时战斗系统1.03b版(拉尔夫战记的产物) [打印本页]

作者: zhong    时间: 2008-7-18 09:59
标题: VX半即时战斗系统1.03b版(拉尔夫战记的产物)
作者的话:
这是本人寒假时候制作的游戏《拉尔夫战记》的产物,上学时由于硬盘挂了,所有东西都没了,接近半年多没动RM,最近想起要做个像样的游戏,于是就把战斗系统整理出来,看到许多人都想要这个系统,就放出来个比较原始的版本了,VX本身战斗系统太过于简陋,希望这个系统能给一些有用心做游戏的人有一点帮助吧...本来想整合彩虹神剑进去,后来到各有个的需要就不整合了,脚本可能存在诸多bug,因为缺乏足够的测试,如有发现,希望大家及时告知我一声,如果我有时间会尽量Debug,不过明天绝对没时间~~~本脚本可与我上回发的升级提示脚本一起使用,这里没整合进去,一起使用才是最完整的,把升级提示脚本放在本脚本之下就可以了.这是个插件版的系统,所以与任何战斗系统都应该有很大冲突.游戏中如果使用本脚本时至少要保留脚本开头的信息,如要转载请通知我一声,谢谢!本系统Scene_CP核心部分参考自神思的《战斗真位移》战斗系统,在这里感谢一下神思,因为系统的核心基本在那部分.最后还有一些不得不说的话,本脚本以人格保证绝无任何抄袭行为!({/pz}上次发了个小教程被一个莫名奇妙的人说抄袭,一直不爽到现在....).
截图:


使用方法:
☆使用方法基本与我之前发的朴素横版战斗相同
☆动画设置:
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时即全体动画
     在事件的"脚本"中调用就可以了!
         
范例工程:
http://rpg.blue/upload_program/d ... 1.03b_108496309.rar
默认版CP战斗:
http://rpg.blue/upload_program/g ... �1.02_102620214.rar
☆1.03版更新内容:
1、地图名称与战斗背景的对应关系可在哈希表中设置
2、如无相应战斗背景直接采用默认战斗背景
3、角色CP图缺失时,用角色相应行走图代替
☆1.03a版更新内容:
1、修复经验物品提示窗口显示问题(★注:旧版本的只要把脚本中“class Window_egi<Window_Base”这个类完整的覆盖原来就行了。)
2、顺便优化了那个逃跑选项窗口的刷新
]☆1.03b版更新内容:
1、图标战斗指令窗口刷新的问题
2、修正战斗事件响应的部分功能
已知bug:
1、人物在物品和特技选择己方对象时,头像重叠,这是由于忘了刷新的原因,解决方法是:
找到 def update_target_actor_selection 这个方法,在 @target_actor_window.draw_actorface这句上面加上一句@target_actor_window.refresh

2、连续伤害和自动回复hp无效...这个也不难解决,就是有点琐碎,因为要改一下伤害部分之类的.更新插件脚本如下:(直接插在原脚本之下就行了,顺便也更新了上一个bug.
3、受打击时,人物有跳出cp槽的可能,已解决
4、优化了窗口刷新和部分算法,速度有所提高。
5、复活时有些许bug,已修复。
6.头像刷新存在一点bug,已修复。
7、经验物品金钱得失窗口有时会图标显示错误,已修复
8、图标战斗指令窗口刷新的问题,图标显示错误,已修复
9、战斗事件无响应,已修复。
未完善:CP系统在配置低点的机子上运行速度缓慢,掉帧严重,这个暂时由于测试有障碍的原因,还有待优化完善.

图1:


图2:


图3:


效果图:



应求发布一个特技吟唱插件脚本,插在原脚本下就可以了~~`(见7楼!)使用方法简单说明一下~~~
1、"数据库" "特技"  "使用时信息"  的第二个对话框写入想要显示的吟唱内容。
2、可在第一个对话框里设置吟唱时显示的头像,格式为  头像文件名,头像序号 如 Actor1,5
3、 如果第一个对话框为空,则此时如果是角色使用特技,显示角色头像,敌人则不显示。


作者: 火鸡三毛老大    时间: 2008-7-18 17:29
那个CP条不错...{/se}

PS.
那个我方的战斗图怎么好像在哪里见过
好像是某个FLASH
...算了...想不起来
作者: 越前リョーマ    时间: 2008-7-19 02:31
话说我用了升级提示脚本后……
排版出现严重问题……
作者: 火鸡三毛老大    时间: 2008-7-19 05:45
想起来了...
Flash网游....
周云的勇者之路
作者: zhong    时间: 2008-7-19 07:10
以下引用火鸡三毛老大于2008-7-18 21:45:42的发言:

想起来了...
Flash网游....
周云的勇者之路

哦....那我想应该他也是用那个什么艾伦希亚战记的素材的了....因为我当初是直接从站上的那个什么艾伦希亚战记的战斗图里拿来改的....
以下引用越前リョーマ于2008-7-18 18:31:01的发言:

话说我用了升级提示脚本后……
排版出现严重问题……

会吗?我那个升级窗口都是新定义的....怎么会呢?可能是脚本冲突吧.....
作者: yooucs    时间: 2008-7-23 00:31
以下引用zhong于2008-7-18 23:10:53的发言:


以下引用火鸡三毛老大于2008-7-18 21:45:42的发言:

想起来了...
Flash网游....
周云的勇者之路


哦....那我想应该他也是用那个什么艾伦希亚战记的素材的了....因为我当初是直接从站上的那个什么艾伦希亚战记的战斗图里拿来改的....

以下引用越前リョーマ于2008-7-18 18:31:01的发言:

话说我用了升级提示脚本后……
排版出现严重问题……


会吗?我那个升级窗口都是新定义的....怎么会呢?可能是脚本冲突吧.....

以前我抽出来的是后就发现那里的人物头像是不会刷新的。。。。。。

作者: zhong    时间: 2008-7-23 02:35
是升级提示的人物头像吗?这个应该不会吧.....
作者: saberfalse    时间: 2008-7-26 08:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沉影不器    时间: 2008-7-29 18:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: saberfalse    时间: 2008-7-30 02:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhong    时间: 2008-7-30 02:55
以下引用沉影不器于2008-7-29 10:38:44的发言:

仍然是...掉帧的问题...我电脑上最低到10FPS都有...

呵呵~~~嗯,这个脚本是原版的,只对界面进行了优化.....速度没有优化.....因为在我这个因特尔双核T2300和1G内存的机子上运行还是比较流畅的,所以就{/gg}~~~看来真得想办法优化一下了.....不然我再把彩虹神剑整进去,配置低点的机子就走不动了.....貌似在我这台...现在把彩虹神剑整进去都没事.....
以下引用saberfalse于2008-7-29 18:33:06的发言:

更改人物Y坐标到某一值时,人物状态窗口会诡异的飞上天空……



[本贴由作者于 2008-7-29 18:47:23 最后编辑]

这个我估计是在def update_info_viewport这部分最后那个判断出问题了........原来的这里
if @actor_command_window.active and   @actor_command_window.y > 0
     @actor_command_window.y -= 8
     @status_window.y -= 8
   
   
    end

作者: 沉影不器    时间: 2008-7-30 04:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhong    时间: 2008-7-31 02:48
嗯~~更新了下,在我电脑上原来战斗时,有时掉到55帧左右,对状态窗口部分的刷新进行优化后。。。。现在战斗过程都保持在60。。。。就是不知道在其他的机子上效果明不明显。。。不过后面的升级提示时会调很多帧,这个估计还是窗口刷新的问题。。。好像影响不是很大。。。就没改了。。。

作者: 沉影不器    时间: 2008-7-31 05:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: saber之false    时间: 2008-7-31 08:21
发现BUG,如果队友华丽的死亡,华丽的复活时就会出错……
NoMethodError occurred. undefined method 'visible' for nil:NilClass
作者: zh99998    时间: 2008-7-31 15:26
以下引用zhong于2008-7-30 18:48:36的发言:

嗯~~更新了下,在我电脑上原来战斗时,有时掉到55帧左右,对状态窗口部分的刷新进行优化后。。。。现在战斗过程都保持在60。。。。就是不知道在其他的机子上效果明不明显。。。不过后面的升级提示时会调很多帧,这个估计还是窗口刷新的问题。。。好像影响不是很大。。。就没改了。。。



[本贴由作者于 2008-7-30 18:49:16 最后编辑]


你可以开个虚拟机,给他划分386M的内存,然后本机开点占CPU的东西,在测试掉不掉FPS

话说我的电脑AMD4400+,2G内存,只要没BUG全是60FPS,测试也相当麻烦{/gg}
作者: zhong    时间: 2008-8-1 01:19
以下引用沉影不器于2008-7-30 21:19:48的发言:

赛扬1.7测试,弹出我方命令窗口时优化得比较明显,其它没多少改变...最低仍在10帧 汗

下载链接错误,多写了个换行符

以下引用zh99998于2008-7-31 7:26:11的发言:

你可以开个虚拟机,给他划分386M的内存,然后本机开点占CPU的东西,在测试掉不掉FPS

话说我的电脑AMD4400+,2G内存,只要没BUG全是60FPS,测试也相当麻烦

嗯...这个比较麻烦....因为在我这现在整个过程都是保持在60左右....无法得知哪里是掉帧的关键.....开虚拟机吧....也有想过,{/gg}不过貌似虚拟机只在学校机房碰过一次.....不知道装系统什么麻不麻烦....因为硬盘空间也不多了.....再看看吧....


以下引用saber之false于2008-7-31 0:21:38的发言:

发现BUG,如果队友华丽的死亡,华丽的复活时就会出错……
NoMethodError occurred. undefined method 'visible' for nil:NilClass


[本贴由作者于 2008-7-31 0:33:32 最后编辑]

复活这一块确实有问题...不过好像在测试时没有遇到你的情况.....现在把问题更新了..你试试...
作者: saberfalse    时间: 2008-8-3 00:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: dicksonh    时间: 2008-8-5 08:11
請問有直版戰鬥的 即時戰鬥系統嗎  謝謝
作者: zhong    时间: 2008-8-5 22:26

以下引用dicksonh于2008-8-5 0:11:19的发言:

請問有直版戰鬥的 即時戰鬥系統嗎  謝謝

不知道你要的效果是不是战斗图直板排布....如果是的话...你直接在脚本中找到一下内容进行修改就好了...
#==========================================================================
  #★定义角色战斗图 X 坐标
  #==========================================================================
  def screen_x
   if self.index != nil
    case index
     when 0
      return 460
     when 1
      return 440
     when 2
      return 420
     when 3
      return 400
    end  
  else
   return 0
  end
end
  #========================================================================
  #★定义角色战斗图 Y 坐标
  #========================================================================
  def screen_y
    if self.index != nil
      case index
       when 0
         return 245
       when 1
         return 215
       when 2
         return 185
       when 3
         return 155
       end
    else   
   
    return 230
   end
  end  
  

when 0,1,2,3就是相对应的队中1,2,3,4号角色....修改下面的数值进行排布就可以了....至于敌人的直接在数据库中调整就是了.....
作者: 御灵    时间: 2008-8-8 02:44
http://rpg.blue/web/htm/news1136.htm
vip+3
作者: drgdrg    时间: 2008-8-8 04:34
以下引用zhong于2008-7-31 17:19:10的发言:


以下引用zh99998于2008-7-31 7:26:11的发言:

你可以开个虚拟机,给他划分386M的内存,然后本机开点占CPU的东西,在测试掉不掉FPS

话说我的电脑AMD4400+,2G内存,只要没BUG全是60FPS,测试也相当麻烦


嗯...这个比较麻烦....因为在我这现在整个过程都是保持在60左右....无法得知哪里是掉帧的关键.....开虚拟机吧....也有想过,不过貌似虚拟机只在学校机房碰过一次.....不知道装系统什么麻不麻烦....因为硬盘空间也不多了.....再看看吧....



装系统倒不是很麻烦,主要是硬盘空间占很多。。。
以前做LINUX实验的时候想去给本本装一个虚拟机后来应为硬盘爆满放弃了。。。。
作者: drgdrg    时间: 2008-8-8 05:08
请问如何才能加上状态改变的动画,

比如用个技能获得一种状态以后,身上显示 获得状态名称(要是能和数据库中定义的获得状态说明就更好了)

状态消失以后身上显示 XXX消失

这样要怎么改脚本?


作者: zhong    时间: 2008-8-10 02:26
以下引用drgdrg于2008-8-7 21:08:17的发言:
<br><script language="javascript">
<!--
strCont="请问如何才能加上状态改变的动画,\r\n\r\n比如用个技能获得一种状态以后,身上显示 获得状态名称(要是能和数据库中定义的获得状态说明就更好了)\r\n\r\n状态消失以后身上显示 XXX消失\r\n\r\n这样要怎么改脚本?\r\n\r\n";
document.write(ubb.spbShowTopic(strCont,1));
//-->
</script>请问如何才能加上状态改变的动画,<br>
<br>
比如用个技能获得一种状态以后,身上显示 获得状态名称(要是能和数据库中定义的获得状态说明就更好了)<br>
<br>
状态消失以后身上显示 XXX消失<br>
<br>
这样要怎么改脚本?<br>
<br>

这个可以用显示伤害的方法来实现。。。。步骤如下:
在工程那个战斗脚本中找到class Game_Battler的
attr_accessor :slip_damage
  attr_accessor :auto_damage

这几句下加上个
attr_accessor :state_name

然后在其下的def initialize下加上@state_name = nil这句。。。
接下来在脚本中找到class Scene_CP这个类,找到以下这个判断下的语句


if battler.cp_turn == battler.maxcp
        battler.remove_states_auto unless battler.movable?
        battler.slip_damage_effect
        battler.do_auto_recovery if battler.is_a?(Game_Actor)
        battler.damage_pop = true if battler.slip_damage != 0 or battler.auto_damage != 0   
        battler.cp_turn = 0
      end  

改为
if battler.cp_turn == battler.maxcp
        #=================================
        last_st = battler.states
        #=================================
        battler.remove_states_auto unless battler.movable?
        battler.slip_damage_effect
        battler.do_auto_recovery if battler.is_a?(Game_Actor)
        #====================================
        if battler.states != last_st
          $scene.display_state_changes(battler)
        
        end
        #====================================
        battler.damage_pop = true if battler.slip_damage != 0 or battler.auto_damage != 0
        battler.cp_turn = 0
      end  


接下来在脚本中找到class Scene_Battle < Scene_Base 这个类,在当中添加以下这个方法,


#============================================
  #★伤害变化显示
  #============================================
   def display_state_changes(target,obj = nil)
     for state in target.added_states
       if state.id == 1                      # 不能战斗
        target.perform_collapse
         return
       end
       target.damage_pop = true if state != nil
       target.state_name = state.name if state.id != 1 #战斗不能不显示
      
       update_basic
     
     end
     for state in target.removed_states
       target.damage_pop = true if state != nil
       target.state_name = "解除" + state.name if state.id != 1 #复活时不显示
       update_basic
     end  
      
  end


最后在脚本中找到class Sprite_Battler < Sprite_Base这个类,找到这个语句段

if @battler.damage_pop and not (@battler.collapse or @battler.hidden)
      if @battler.damage != nil
        s_1 = @battler.damage > 0 ? 0 : 1
        @battler.damage = @battler.damage > 0 ? [email protected] : @battler.damage
      end  
      
      damage(@battler.damage,@battler.critical,s_1) if @battler.damage != 0 and @battler.damage != nil
      damage(@battler.hp_damage,@battler.critical,0) if @battler.hp_damage != 0
      damage(@battler.mp_damage,@battler.critical,1) if @battler.mp_damage != 0
      damage("失误",@battler.critical) if @battler.missed
      damage("MISS",@battler.critical) if @battler.evaded
      damage(@battler.slip_damage - @battler.auto_damage,@battler.critical) if @battler.slip_damage != 0 or @battler.auto_damage != 0
      @battler.slip_damage = 0
      @battler.auto_damage = 0
      @battler.damage = nil
      @battler.damage_pop = false
    end

改为
if @battler.damage_pop and not (@battler.collapse or @battler.hidden)
      if @battler.damage != nil
        s_1 = @battler.damage > 0 ? 0 : 1
        @battler.damage = @battler.damage > 0 ? [email protected] : @battler.damage
      end  
      
      damage(@battler.damage,@battler.critical,s_1) if @battler.damage != 0 and @battler.damage != nil
      damage(@battler.hp_damage,@battler.critical,0) if @battler.hp_damage != 0
      damage(@battler.mp_damage,@battler.critical,1) if @battler.mp_damage != 0
      damage("失误",@battler.critical) if @battler.missed
      damage("MISS",@battler.critical) if @battler.evaded
      damage(@battler.slip_damage - @battler.auto_damage,@battler.critical) if @battler.slip_damage != 0 or @battler.auto_damage != 0
      #================================
      damage(@battler.state_name, @battler.critical) if @battler.state_name != nil
      @battler.state_name = nil
      #================================
      
      @battler.slip_damage = 0
      @battler.auto_damage = 0
      @battler.damage = nil
      @battler.damage_pop = false
    end


大概就搞定了。。。。
作者: drgdrg    时间: 2008-8-10 05:20
状态显示可以了,谢谢楼主,

楼主真是太厚道了~{/qiang}{/qiang}
作者: dicksonh    时间: 2008-8-10 14:19
以下引用zhong于2008-8-5 14:26:22的发言:
<br><script language="javascript">
<!--
strCont="\r\n  [quote]以下引用dicksonh于2008-8-5 0:11:19的发言:\r\n\r\n請問有直版戰鬥的 即時戰鬥系統嗎  謝謝 \r\n
\r\n不知道你要的效果是不是战斗图直板排布....如果是的话...你直接在脚本中找到一下内容进行修改就好了...\r\n
#==========================================================================\r\n  #★定义角色战斗图 X 坐标\r\n  #==========================================================================\r\n  def screen_x\r\n   if self.index != nil\r\n    case index\r\n     when 0 \r\n      return 460\r\n     when 1\r\n      return 440\r\n     when 2\r\n      return 420\r\n     when 3\r\n      return 400\r\n    end  \r\n  else\r\n   return 0\r\n  end\r\n end \r\n  #========================================================================\r\n  #★定义角色战斗图 Y 坐标\r\n  #========================================================================\r\n  def screen_y\r\n    if self.index != nil\r\n      case index\r\n       when 0\r\n         return 245\r\n       when 1\r\n         return 215\r\n       when 2\r\n         return 185\r\n       when 3\r\n         return 155\r\n       end\r\n    else   \r\n    \r\n    return 230\r\n   end\r\n  end  \r\n  
\r\nwhen 0,1,2,3就是相对应的队中1,2,3,4号角色....修改下面的数值进行排布就可以了....至于敌人的直接在数据库中调整就是了.....";
document.write(ubb.spbShowTopic(strCont,1));
//-->
</script><br>
&nbsp;<blockquote class="CodeBorder">以下引用dicksonh于2008-8-5 0:11:19的发言:<br>
<br>
請問有直版戰鬥的 即時戰鬥系統嗎 &nbsp;謝謝 <br>
</blockquote><br>
不知道你要的效果是不是战斗图直板排布....如果是的话...你直接在脚本中找到一下内容进行修改就好了...<br>
<blockquote class="CodeBorder"> #==========================================================================<br>
&nbsp;#★定义角色战斗图 X 坐标<br>
&nbsp;#==========================================================================<br>
&nbsp;def screen_x<br>
&nbsp; <font color="#000099">if</font> self.index != nil<br>
&nbsp; &nbsp;case index<br>
&nbsp; &nbsp; when 0 <br>
&nbsp; &nbsp; &nbsp;<font color="#000099">return</font> 460<br>
&nbsp; &nbsp; when 1<br>
&nbsp; &nbsp; &nbsp;<font color="#000099">return</font> 440<br>
&nbsp; &nbsp; when 2<br>
&nbsp; &nbsp; &nbsp;<font color="#000099">return</font> 420<br>
&nbsp; &nbsp; when 3<br>
&nbsp; &nbsp; &nbsp;<font color="#000099">return</font> 400<br>
&nbsp; &nbsp;<font color="#000099">end</font> &nbsp;<br>
&nbsp;<font color="#000099">else</font><br>
&nbsp; <font color="#000099">return</font> 0<br>
&nbsp;<font color="#000099">end</font><br>
<font color="#000099">end</font> <br>
&nbsp;#========================================================================<br>
&nbsp;#★定义角色战斗图 Y 坐标<br>
&nbsp;#========================================================================<br>
&nbsp;def screen_y<br>
&nbsp; &nbsp;<font color="#000099">if</font> self.index != nil<br>
&nbsp; &nbsp; &nbsp;case index<br>
&nbsp; &nbsp; &nbsp; when 0<br>
&nbsp; &nbsp; &nbsp; &nbsp; <font color="#000099">return</font> 245<br>
&nbsp; &nbsp; &nbsp; when 1<br>
&nbsp; &nbsp; &nbsp; &nbsp; <font color="#000099">return</font> 215<br>
&nbsp; &nbsp; &nbsp; when 2<br>
&nbsp; &nbsp; &nbsp; &nbsp; <font color="#000099">return</font> 185<br>
&nbsp; &nbsp; &nbsp; when 3<br>
&nbsp; &nbsp; &nbsp; &nbsp; <font color="#000099">return</font> 155<br>
&nbsp; &nbsp; &nbsp; <font color="#000099">end</font><br>
&nbsp; &nbsp;<font color="#000099">else</font> &nbsp; <br>
&nbsp; &nbsp;<br>
&nbsp; &nbsp;<font color="#000099">return</font> 230<br>
&nbsp; <font color="#000099">end</font><br>
&nbsp;<font color="#000099">end</font> &nbsp;<br>
</blockquote><br>
when 0,1,2,3就是相对应的队中1,2,3,4号角色....修改下面的数值进行排布就可以了....至于敌人的直接在数据库中调整就是了.....

[/quote]


對不起 大大  我知道你真的好好人了  這麼快回複
那麼遊戲內定的那個第一身形態的直版戰鬥的即時系統
一直是我想要的  
可以只在原版遊戲中加CP條功能嗎? 太謝謝了~!!!
作者: yooucs    时间: 2008-8-14 20:59
以下引用zhong于2008-7-22 18:35:33的发言:

是升级提示的人物头像吗?这个应该不会吧.....

是选择道具适用对象时不会刷新
作者: zhong    时间: 2008-8-18 00:19
以下引用dicksonh于2008-8-10 6:19:57的发言:
對不起 大大  我知道你真的好好人了  這麼快回複
那麼遊戲內定的那個第一身形態的直版戰鬥的即時系統
一直是我想要的  
可以只在原版遊戲中加CP條功能嗎? 太謝謝了~!!!

嗯..这个改起来有点繁琐....有空帮你做一下吧....不过最近忙着看奥运可能没什么时间碰电脑.....可能要等.....呵呵~~~~
以下引用yooucs于2008-8-14 12:59:58的发言:


以下引用zhong于2008-7-22 18:35:33的发言:

是升级提示的人物头像吗?这个应该不会吧.....


是选择道具适用对象时不会刷新

嗯...这个现在在这个版本改回来了.....其实以前发现过的了...不过忘了改....
作者: john0420    时间: 2008-8-19 20:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: drgdrg    时间: 2008-8-20 01:28
以下引用john0420于2008-8-19 12:17:46的发言:

楼主,我之前已经使用您的横版战斗1.01 了,而且游戏设计的有一段时间了。现在临时想要改成1.02a的方式,不知怎么改。可以指导一下吗?谢谢。


现在的范例工程里面LZ已经给出更新补丁了,

就在MAIN脚本下面,你拷到MAIN上面,应该就行了吧
作者: 经典怀旧者    时间: 2008-8-23 08:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: ㄆ相    时间: 2008-8-23 19:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-8-23 20:04
给楼上的脚本基础教程
http://rpg.blue/viewthread.php?tid=85511
作者: ㄆ相    时间: 2008-8-23 20:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhong    时间: 2008-8-24 21:08
以下引用john0420于2008-8-19 12:17:46的发言:

楼主,我之前已经使用您的横版战斗1.01 了,而且游戏设计的有一段时间了。现在临时想要改成1.02a的方式,不知怎么改。可以指导一下吗?谢谢。


不知道你有没有修改过战斗系统部分呢?如果没有,直接把那个战斗脚本复盖掉就可以了,我修复的那些东西应该不影响你游戏制作的.....那个补丁的话在后面几个版本我没更新了...所以后面的东西修复不了....

以下引用ㄆ相于2008-8-23 11:30:04的发言:



楼主看不懂!!!!

脚本放进game_Battler之后 程序出错了。

请教你怎么放啊?

放在main之前就可以了.....你下载范例工程看一下就明白了.....
作者: zh99998    时间: 2008-8-24 23:43
能否加个地图<->背景文件匹配列表功能
每张地图必须有一张同名图片,但是如果有20张不同名森林地图,要相同的战斗背景,那么就要复制20份那个图片起不同的名字,我想在脚本里直接记录下地图id与图片的对应关系,应该怎么改(如果在对应表里找不到,就用RMVX默认那种背景,那种动态背景有时能用到)

还有,能不能设定如果没有cp行走图,就拿角色行走图代替(顺便加上走路效果{/cy})

提问帖:http://rpg.blue/viewthread.php?tid=100300
作者: zhong    时间: 2008-8-27 08:47
以下引用dicksonh于2008-8-10 6:19:57的发言:

對不起 大大  我知道你真的好好人了  這麼快回複
那麼遊戲內定的那個第一身形態的直版戰鬥的即時系統
一直是我想要的  
可以只在原版遊戲中加CP條功能嗎? 太謝謝了~!!!

做一个默认版的..更新在顶楼...可能会有点bug...

以下引用zh99998于2008-8-24 15:43:18的发言:

能否加个地图<->背景文件匹配列表功能
每张地图必须有一张同名图片,但是如果有20张不同名森林地图,要相同的战斗背景,那么就要复制20份那个图片起不同的名字,我想在脚本里直接记录下地图id与图片的对应关系,应该怎么改(如果在对应表里找不到,就用RMVX默认那种背景,那种动态背景有时能用到)

还有,能不能设定如果没有cp行走图,就拿角色行走图代替(顺便加上走路效果)

提问帖:http://rpg.blue/viewthread.php?tid=100300

角色行走......貌似以前弄过,不过不是一般的卡......你所说的地图问题...以前也想到...不过有偷懒的方法所以偷懒没弄...现在改了一下....可以在哈希表自己设置对应关系了..如果找不到战斗背景就用默认的战斗背景...角色cp图缺失时用其行走图....已更新在1.03中....
作者: zh99998    时间: 2008-8-27 15:19
逃跑!逃跑!逃跑在哪?如果不想占用菜单那就用快捷键吧,L和R(pgup,pgdn)一起按=逃跑[LINE]1,#dddddd[/LINE]晕,看到了,在main下面{/gg}那啥,L+R=逃跑 这个可以吗[LINE]1,#dddddd[/LINE]我说的默认战斗背景是那种动态的混沌的的那种,1.03里用的是当前画面截图……
作者: dicksonh    时间: 2008-8-28 12:15
以下引用zhong于2008-8-24 13:08:22的发言:
<br><script language="javascript">
<!--
strCont="[quote]以下引用john0420于2008-8-19 12:17:46的发言:\r\n\r\n楼主,我之前已经使用您的横版战斗1.01 了,而且游戏设计的有一段时间了。现在临时想要改成1.02a的方式,不知怎么改。可以指导一下吗?谢谢。 \r\n
\r\n\r\n不知道你有没有修改过战斗系统部分呢?如果没有,直接把那个战斗脚本复盖掉就可以了,我修复的那些东西应该不影响你游戏制作的.....那个补丁的话在后面几个版本我没更新了...所以后面的东西修复不了....\r\n\r\n
以下引用ㄆ相于2008-8-23 11:30:04的发言:\r\n\r\n\r\n\r\n 楼主看不懂!!!!\r\n\r\n脚本放进game_Battler之后 程序出错了。\r\n\r\n请教你怎么放啊? \r\n
\r\n放在main之前就可以了.....你下载范例工程看一下就明白了.....";
document.write(ubb.spbShowTopic(strCont,1));
//-->
</script><blockquote class="CodeBorder">以下引用john0420于2008-8-19 12:17:46的发言:<br>
<br>
楼主,我之前已经使用您的横版战斗1.01 了,而且游戏设计的有一段时间了。现在临时想要改成1.02a的方式,不知怎么改。可以指导一下吗?谢谢。 <br>
</blockquote><br>
<br>
不知道你有没有修改过战斗系统部分呢?如果没有,直接把那个战斗脚本复盖掉就可以了,我修复的那些东西应该不影响你游戏制作的.....那个补丁的话在后面几个版本我没更新了...所以后面的东西修复不了....<br>
<br>
<blockquote class="CodeBorder">以下引用ㄆ相于2008-8-23 11:30:04的发言:<br>
<br>
<br>
<br>
楼主看不懂!!!!<br>
<br>
脚本放进game_Battler之后 程序出错了。<br>
<br>
请教你怎么放啊? <br>
</blockquote><br>
放在main之前就可以了.....你下载范例工程看一下就明白了.....

[/quote]


太太太感謝你啦~~~!!!
我快要感動到流淚了
謝謝你丫樓主 {/ll}
作者: zhong    时间: 2008-9-4 19:52
以下引用zh99998于2008-8-27 7:19:40的发言:

逃跑!逃跑!逃跑在哪?如果不想占用菜单那就用快捷键吧,L和R(pgup,pgdn)一起按=逃跑

晕,看到了,在main下面那啥,L+R=逃跑 这个可以吗

我说的默认战斗背景是那种动态的混沌的的那种,1.03里用的是当前画面截图……


[本贴由作者于 2008-8-27 7:30:07 最后编辑]

嗯!?会吗?我做的默认的战斗背景就是那种混沌化的呀.....难道RP问题.....逃跑的脚本在main底下直接插进去就是了.....


作者: zh99998    时间: 2008-9-6 17:55
我晕,在范例里是以当前窗口为战斗背景,挪到自己游戏里就不是了……
[LINE]1,#dddddd[/LINE]继续提建议,当找不到角色战斗图的时候用行走图代替
怎么让这个脚本能在640*480的窗口下运行(其实也就是改坐标{/gg})
作者: 土萌萤    时间: 2008-9-8 09:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhong    时间: 2008-9-12 00:34
以下引用土萌萤于2008-9-8 1:16:22的发言:

大大~发现个问题~
默认版CP战斗脚本中,在战斗的时候,系统不会刷新我方血条.
对了,ZHONG大,能不能在默认版CP中加入敌人血条和敌人选择光标呢?

已经更新了。。在顶楼。。。忘了加刷新语句。。。。如果你不想下载的话直接在脚本中找到
def start_party_command

在其下加上
@status_window.refresh

就行了。。。。至于血条问题....你看看加个敌人血条脚本上去行不.....如果不行贴出来我帮你整合下......敌人选择光标有空我加上去一下吧....
以下引用zh99998于2008-9-6 9:55:29的发言:

我晕,在范例里是以当前窗口为战斗背景,挪到自己游戏里就不是了……


继续提建议,当找不到角色战斗图的时候用行走图代替
怎么让这个脚本能在640*480的窗口下运行(其实也就是改坐标)

行走图作战斗图~~~~苦力活~~开学了,比较没时间....什么时候有时间考虑加进去吧.....至于那个640*480是坐标问题了,这个太繁琐了...无能为力.....谢谢你的建议~~呵呵~~~
作者: suming    时间: 2008-9-12 01:56
..  .xin新手来了。.!! 教我 .!!
作者: drgdrg    时间: 2008-9-12 06:01
以下引用suming于2008-9-11 17:56:53的发言:

..  .xin新手来了。.!! 教我 .!!


倒……请不要这样没头没脑地求教……

会被当作SSD咔嚓掉的……

有问题去看VX中的F1,或者看置顶贴http://rpg.blue/viewthread.php?tid=79638

问问题请具体描述
作者: 土萌萤    时间: 2008-9-12 06:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: abwhywhy    时间: 2008-9-13 01:50
正啦~~
找這個腳本很久了,終於有人發出來
作者: 龙轩    时间: 2008-9-13 02:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 龙轩    时间: 2008-9-13 02:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 土萌萤    时间: 2008-9-14 23:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: ynwslom    时间: 2008-9-17 03:33
“逃跑”呢?为啥“逃跑”选项没有了???
作者: drgdrg    时间: 2008-9-19 17:12
以下引用ynwslom于2008-9-16 19:33:45的发言:

“逃跑”呢?为啥“逃跑”选项没有了???


看范例工程的MAIN下面的备用脚本啊!!


作者: zhong    时间: 2008-9-24 01:46
以下引用ynwslom于2008-9-16 19:33:45的发言:

“逃跑”呢?为啥“逃跑”选项没有了???

楼上正解。
以下引用土萌萤于2008-9-11 22:30:29的发言:

谢谢zhong大,战斗显示血条的话,我已经有个简单的了~当然,您如果能把趙雲大大血条脚本,地址http://rpg.blue/viewthread.php?tid=76729整合进去的话,那就最棒了!
不过好象有个问题哟~就是CP行走图会走出CP条!
图:

还有个问题,就是您在解答我的帖子的里面说:

不过依然是无法判断回合数的条件。。。因为cp战斗总的回合数的计算没有任何标准。。。。。

如果我要设置一个状态,比如说设置个睡眠状态,要设置多少个回合苏醒过来才算合理呢~
因为CP条中的行走图,走一圈之后,不算一个回合的~所以我比较迷惘,要怎么设置才合适!?
这个问题,我是不是问得有点小白了呀!!!-_-

pS:最后个问题,如果调整CP条行走图的速度,在与敌人差不多的速度下,CP条行走图的速度貌似有点快,想移慢的说...


[本贴由作者于 2008-9-11 22:37:16 最后编辑]

状态回合的算法是这个战斗者走一圈就算一个回合。。。就算战斗者停止行走了,也会按他原来的cp增长速度计算回合。连续伤害出错的问题解决了。。。顺便整合了个脚本,直接插入原脚本之下就行了。。。非默认版不适用。。。。
  1. #============================================================================
  2. #本脚本来自66RPG,作者趙雲,如需转载请保留本信息。
  3. #★默认半即时战斗整合版
  4. #★原作者:赵云
  5. #==============================================================================
  6. # ■ Arrow_Base
  7. #------------------------------------------------------------------------------
  8. #  在战斗画面使用的箭头光标的活动块。本类作为
  9. # Arrow_Enemy 类与 Arrow_Actor 类的超级类使用。
  10. #==============================================================================

  11. class Arrow_Base < Sprite
  12.   #--------------------------------------------------------------------------
  13.   # ● 定义实例变量
  14.   #--------------------------------------------------------------------------
  15.   attr_reader   :index                    # 光标位置
  16.   attr_reader   :help_window              # 帮助窗口
  17.   #--------------------------------------------------------------------------
  18.   # ● 初始化对像
  19.   #     viewport : 显示端口
  20.   #--------------------------------------------------------------------------
  21.   def initialize(viewport)
  22.     super(viewport)
  23.     self.bitmap = Cache.system("Arrow")
  24.     self.ox = 16
  25.     self.oy = 64
  26.     self.z = 2500
  27.     @blink_count = 0
  28.     @index = 0
  29.     @help_window = nil
  30.     update
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 设置光标位置
  34.   #     index : 新的光标位置
  35.   #--------------------------------------------------------------------------
  36.   def index=(index)
  37.     @index = index
  38.     update
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 设置帮助窗口
  42.   #     help_window : 新的帮助窗口
  43.   #--------------------------------------------------------------------------
  44.   def help_window=(help_window)
  45.     @help_window = help_window
  46.     # 刷新帮助文本 (update_help 定义了继承目标)
  47.     if @help_window != nil
  48.       update_help
  49.     end
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 刷新画面
  53.   #--------------------------------------------------------------------------
  54.   def update
  55.     # 刷新点灭记数
  56.     @blink_count = (@blink_count + 1) % 12
  57.     # 设置传送源矩形
  58.     if @blink_count < 6
  59.       self.src_rect.set(0, 0, 32, 32)
  60.     else
  61.       self.src_rect.set(32, 0, 32, 32)
  62.     end
  63.     # 刷新帮助文本 (update_help 定义了继承目标)
  64.     if @help_window != nil
  65.       update_help
  66.     end
  67.   end
  68. end
  69. #==============================================================================
  70. # ■ Arrow_Enemy
  71. #------------------------------------------------------------------------------
  72. #  选择敌人的箭头光标。本类继承 Arrow_Base
  73. # 类。
  74. #==============================================================================

  75. class Arrow_Enemy < Arrow_Base
  76.   #--------------------------------------------------------------------------
  77.   # ● 获取光标指向的敌人
  78.   #--------------------------------------------------------------------------
  79.   def enemy
  80.     return $game_troop.members[@index]
  81.   end
  82.   
  83.   def dispose
  84.     @enemy.loop_white_flash = false unless @enemy.nil?
  85.     super
  86.   end
  87.   #--------------------------------------------------------------------------
  88.   # ● 刷新画面
  89.   #--------------------------------------------------------------------------
  90.   def update
  91.     super
  92.      if @enemy != enemy and enemy.exist?
  93.         @enemy.loop_white_flash = false unless @enemy.nil?
  94.         enemy.loop_white_flash = true
  95.         @enemy = enemy
  96.       end  
  97.    
  98.     # 如果指向不存在的敌人就离开
  99.     $game_troop.members.size.times do
  100.       break if self.enemy.exist?
  101.       @index += 1
  102.       @index %= $game_troop.members.size
  103.     end
  104.     # 光标右
  105.     if Input.repeat?(Input::RIGHT) or Input.repeat?(Input::DOWN)
  106.       Sound.play_cursor
  107.       $game_troop.members.size.times do
  108.         @index += 1
  109.         @index %= $game_troop.members.size
  110.         break if self.enemy.exist?
  111.       end
  112.     end
  113.     # 光标左
  114.     if Input.repeat?(Input::LEFT) or Input.repeat?(Input::UP)
  115.      Sound.play_cursor
  116.       $game_troop.members.size.times do
  117.         @index += $game_troop.members.size - 1
  118.         @index %= $game_troop.members.size
  119.         break if self.enemy.exist?
  120.       end
  121.     end
  122.     # 设置活动块坐标
  123.     if self.enemy != nil
  124.       self.x = self.enemy.screen_x
  125.       self.y = self.enemy.screen_y
  126.     end
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ● 刷新帮助文本
  130.   #--------------------------------------------------------------------------
  131.   def update_help
  132.     # 帮助窗口显示敌人的名字与状态
  133.     @help_window.set_enemy(self.enemy)
  134.   end
  135. end





  136. class Scene_Battle ##
  137.   
  138.   
  139.   #--------------------------------------------------------------------------
  140.   # ● 更新画面
  141.   #--------------------------------------------------------------------------
  142.   def update
  143.     super
  144.     update_basic(true)
  145.     update_info_viewport                  # 更新显示信息的视区
  146.     if $game_message.visible
  147.       @info_viewport.visible = false
  148.       @message_window.visible = true
  149.     end
  150.     unless $game_message.visible          # 在显示消息以外的情况
  151.       return if judge_win_loss            # 判断胜败
  152.       update_scene_change
  153.       
  154.       if @target_enemy_window != nil
  155.         update_target_enemy_selection     # 选择敌方对象
  156.       elsif @enemy_arrow != nil
  157.         update_target_enemy_selection     # 选择敌方对象
  158.       elsif @target_actor_window != nil
  159.         update_target_actor_selection     # 选择对象角色
  160.       elsif @skill_window != nil
  161.         update_skill_selection            # 选择特技
  162.       elsif @item_window != nil
  163.         update_item_selection             # 选择物品
  164.       elsif @party_command_window.active
  165.         update_party_command_selection    # 选择同伴指令
  166.       elsif @actor_command_window.active
  167.         update_actor_command_selection    # 选择角色指令
  168.       #=================================
  169.       elsif @cp_battle.stop ==  false
  170.         active_battler_update
  171.       #=================================  
  172.         
  173.       else
  174.         process_battle_event              # 战斗处理
  175.         process_action                    # 战斗行动
  176.         process_battle_event              # 处理战斗事件
  177.       end
  178.     end
  179.   end
  180.   

  181.   
  182.   def set_window(visible)
  183.     if !@skill_window.nil?
  184.       @skill_window.visible = visible
  185.     elsif !@item_window.nil?
  186.       @item_window.visible = visible
  187.     end
  188.   end

  189.   #--------------------------------------------------------------------------
  190.   # ● 开始选择对象的敌方角色
  191.   #--------------------------------------------------------------------------
  192.   def start_target_enemy_selection
  193.     set_window(false)
  194.     @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport3)
  195.     @enemy_window = Window_Enemy.new(176,0)
  196.     @enemy_arrow.help_window = @enemy_window
  197.     @actor_command_window.active = false
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 选择对象敌方角色结束
  201.   #--------------------------------------------------------------------------
  202.   def end_target_enemy_selection
  203.     @enemy_arrow.dispose
  204.     @enemy_arrow = nil
  205.     @enemy_window.dispose
  206.     set_window(true)
  207.     if @actor_command_window.index == 0
  208.       @actor_command_window.active = true
  209.     end
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # ● 更新选择对象敌方角色
  213.   #--------------------------------------------------------------------------

  214.   def update_target_enemy_selection

  215.     @enemy_arrow.update
  216.     if Input.trigger?(Input::B)
  217.       Sound.play_cancel
  218.       end_target_enemy_selection
  219.     elsif Input.trigger?(Input::C)
  220.       Sound.play_decision
  221.       @active_battler.action.target_index =  @enemy_arrow.enemy.index
  222.       end_target_enemy_selection
  223.       end_skill_selection
  224.       end_item_selection
  225.      
  226.       #============================
  227.        @active_battler.cp = 0
  228.       #============================
  229.        next_actor
  230.     end
  231.   end

  232. end


  233. class Spriteset_Battle ##
  234.   def viewport3
  235.     return @viewport3
  236.   end  
  237. end

  238. class Game_Battler
  239.   attr_accessor :loop_white_flash              # 循环白色闪烁标记
  240. end

  241. class Sprite_Battler ##
  242.   alias old_setup_new_effect setup_new_effect
  243.   def setup_new_effect
  244.     if @battler.loop_white_flash and @effect_duration == 0
  245.       @battler.white_flash = true
  246.     end
  247.     old_setup_new_effect
  248.   end
  249. end


  250. #==============================================================================
  251. # ■ Window_Enemy
  252. #------------------------------------------------------------------------------
  253. #  显示敌人信息的窗口,光标Arrow用。
  254. #==============================================================================

  255. class Window_Enemy < Window_Base
  256.   #--------------------------------------------------------------------------
  257.   # ● 初始化窗口
  258.   #     x : 窗口的X坐标
  259.   #     y : 窗口的Y坐标
  260.   #--------------------------------------------------------------------------
  261.   def initialize(x, y)
  262.     super(x, y, 288, WLH * 2 + 32)

  263.   end

  264.   #--------------------------------------------------------------------------
  265.   # ● 设置文本
  266.   #     text  : 窗口显示的字符串
  267.   #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
  268.   #--------------------------------------------------------------------------
  269.   def set_text(text, align = 0)
  270.     # 如果文本和对齐方式的至少一方与上次的不同
  271.     if text != @text or align != @align
  272.       # 再描绘文本
  273.       self.contents.clear
  274.       self.contents.font.color = normal_color
  275.       self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
  276.       @text = text
  277.       @align = align
  278.       @actor = nil
  279.     end
  280.     self.visible = true
  281.   end
  282.   
  283.   
  284.   #--------------------------------------------------------------------------
  285.   # ● 设置敌人
  286.   #     enemy : 要显示名字和状态的敌人
  287.   #--------------------------------------------------------------------------
  288.   def set_enemy(enemy)
  289.     if @enemy != enemy
  290.     text = enemy.name
  291.     set_text(text)
  292.     w = enemy.states.size * 24
  293.     draw_actor_state(enemy, contents.width - w , 0, w)
  294.     draw_actor_hp(enemy, 0 , WLH  )
  295.     draw_actor_mp(enemy, contents.width - 120 , WLH )
  296.     @enemy = enemy
  297.     end
  298.   end
  299. end
复制代码

在提问区看到说那个经验提示窗口有点问题....看了下...以前竟然没发现....修复了...呵呵~~~~以前版本直接把原窗口类覆盖了就行了....
作者: lzapplerun    时间: 2008-10-1 02:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: lihaoran2008    时间: 2008-10-26 18:23
一个字:慢啊~~~~~~ [LINE]1,#dddddd[/LINE]版主对此帖的评论:『被我发现你挖坟了哦』,积分『-5』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: 2288809    时间: 2008-10-31 05:51
不想要那个战斗背景图怎么删除啊?
作者: 2288809    时间: 2008-11-14 06:14
……为什么,我用了这个以后逃跑就没掉了!
作者: badutib    时间: 2008-11-18 06:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: badutib    时间: 2008-11-18 17:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhong    时间: 2008-12-1 02:01
以下引用badutib于2008-11-17 22:36:37的发言:

发现一个问题:
   物品和技能使用时调用公共事件,则该事件只会在战斗结束进入地图画面后才调用,而不是在使用物品或技能的同时调用!

一直找不到问题的原因

更新了~~~`,不过可能还有未知bug......谢谢大家....不好意思~~这么久才更新~~~~以前版本没考虑到战斗事件这回事....所以一直不支持任何战斗中的事件......旧版本如果对战斗系统未作任何改动,直接用现在的脚本覆盖原脚本就行了.....测试的时候还发现了前一个版本那个图标战斗指令窗口也有点bug,顺便修复了~~~``
作者: 殲滅天使·玲    时间: 2008-12-1 03:57
我非常看好此系统...有很大潜力..我用的此系统我已经还原回文字显示信息了= =
用起来比SW好修改,也好上手.还能自己增加普通攻击施放技能..
看来zhong目前发现的战斗事件和战斗指令已经解决了
但我发现一个比较不妥协的问题,主要是 CP条增长速度不太均衡..
人物敏捷比敌人多出1点2点就会很明显感到特别快.导致有时候我方行动2次敌人还没能动 orz(所以我才短信提出改回合制{/gg},如果不能修改能不能改变一下CP速度的算法{/gg})
还有一个就是游戏加密后 人物待机动画就没了(变成呆瓜站着)
zhong大有时间的时候能否完成我第一个心愿 = =,至于第2个加密后的问题.给有需要素材加密的人一个福音也好..
作者: zhong    时间: 2008-12-9 00:23
应求发布一个特技吟唱插件脚本,插在原脚本下就可以了~~`
使用方法简单说明一下~~~
1、"数据库" "特技"  "使用时信息"  的第二个对话框写入想要显示的吟唱内容。
2、可在第一个对话框里设置吟唱时显示的头像,格式为  头像文件名,头像序号 如 Actor1,5
3、 如果第一个对话框为空,则此时如果是角色使用特技,显示角色头像,敌人则不显示。


  1. #==========================================================================
  2. #★VX半即时战斗系统 特技吟唱插件
  3. #★作者:Zhong_Zw
  4. #★联系方式:[email protected] 或 论坛短信
  5. #★插件功能:在特技使用前弹出对话框显示吟唱内容.
  6. #★使用说明:直接插在原战斗脚本下方可。
  7. #1、"数据库" "特技"  "使用时信息"  的第二个对话框写入想要显示的吟唱内容。
  8. #2、可在第一个对话框里设置吟唱时显示的头像,格式为  头像文件名,头像序号 如 Actor1,5
  9. #3、 如果第一个对话框为空,则此时如果是角色使用特技,显示角色头像,敌人则不显示。
  10. #==========================================================================
  11. MESSAGE_WAIT_TIME = 65 #内容显示时间
  12. class Scene_Battle < Scene_Base   
  13.   #============================
  14.   #★特技   执行
  15.   #============================
  16.   def execute_action_skill
  17.     skill = @active_battler.action.skill
  18.     #======================================
  19.     #☆添加特技吟唱效果
  20.     #======================================
  21.    unless skill.message2.empty?
  22.     text = @active_battler.name  
  23.     #=========================================
  24.     @message_window.add_face(skill.message1,@active_battler)
  25.     #=========================================
  26.     @message_window.visible = true
  27.     @message_window.add_instant_text(text)
  28.     wait(10)
  29.     @message_window.add_instant_text(skill.message2)
  30.    
  31.    
  32.     #=======================================
  33.      wait_for_message2
  34.    
  35.    
  36.     end  
  37.     targets = @active_battler.action.make_targets
  38.    
  39.    
  40.     user = @active_battler.action.skill_user
  41.     if skill.animation2_id != 0
  42.       display_animation(user,skill.animation2_id)
  43.     end  
  44.     display_animation(targets, skill.animation_id)
  45.    
  46.     wait_for_animation
  47.    
  48.     @active_battler.mp -= @active_battler.calc_mp_cost(skill)
  49.     $game_temp.common_event_id = skill.common_event_id
  50.     for target in targets
  51.       target.skill_effect(@active_battler, skill)
  52.       display_action_effects(target, skill)
  53.     end
  54.    
  55.   end
  56.   def wait_for_message2
  57.     @message_window.update
  58.     while $game_message.visible
  59.       Graphics.update
  60.       @message_window.update   
  61.     end
  62.     wait(MESSAGE_WAIT_TIME)
  63.     @message_window.clear
  64.     @message_window.visible =false
  65.   end
  66.   
  67. end  

  68. #==============================================================================
  69. # ■ Window_BattleMessage
  70. #------------------------------------------------------------------------------
  71. #  在战斗中显示消息的窗口。附加有普通消息窗口的功能、显示战斗进行中提示的
  72. # 的机能。
  73. #==============================================================================

  74. class Window_BattleMessage < Window_Message
  75.   #--------------------------------------------------------------------------
  76.   # ● 初始化对象
  77.   #--------------------------------------------------------------------------
  78.   def initialize
  79.     super
  80.     self.openness = 255
  81.     @lines = []
  82.     @face_space = 0
  83.     @face_txt = ""
  84.     @battler = nil
  85.     refresh
  86.   end
  87.   #======================
  88.   #
  89.   #======================
  90.   def add_face(face_txt,battler)

  91.      @face_txt = face_txt
  92.      if @face_txt.empty?
  93.        if battler.is_a?(Game_Actor)
  94.        #draw_actor_face(battler, 0, 0, 96)
  95.         @face_space = 96
  96.        else
  97.         @face_space = 0
  98.       end
  99.      end
  100.      @battler = battler
  101.    end
  102.    #==============================
  103.    #
  104.    #==============================
  105.    
  106.    def draw_battler_face()
  107.      if @face_txt.empty?
  108.        if @battler.is_a?(Game_Actor)
  109.         draw_actor_face(@battler, 0, 0, 96)
  110.         @face_space = 96
  111.        else
  112.         @face_space = 0
  113.        end
  114.      else
  115.        @face_space = 96
  116.        face_name = @face_txt.split(/,/)[0].to_s
  117.        face_index = @face_txt.split(/,/)[1].to_i
  118.        draw_face(face_name,face_index,0,0,96)
  119.       
  120.       
  121.     end
  122.      
  123.      
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 刷新
  127.   #--------------------------------------------------------------------------
  128.   def refresh
  129.     self.contents.clear
  130.    
  131.     for i in [email protected]
  132.       draw_line(i)
  133.     end
  134.    draw_battler_face()
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ● 描绘行
  138.   #     index : 行编号
  139.   #--------------------------------------------------------------------------
  140.   def draw_line(index)
  141.     rect = Rect.new(0, 0, 0, 0)
  142.     rect.x += 4 + @face_space
  143.     rect.y += index * WLH
  144.     rect.width = contents.width - 8
  145.     rect.height = WLH
  146.     self.contents.clear_rect(rect)
  147.     self.contents.font.color = normal_color
  148.     self.contents.draw_text(rect, @lines[index])
  149.   end
  150.   
  151. end  
复制代码

作者: 三生怨    时间: 2008-12-17 07:28
发现可恶的bug。。。
【1】升级提示只能显示第4人,如果没有第四人就不显示。
【2】战斗地图的那个开关false后,战斗就是默认的那个蠕动的动态背景,无法用自己的背景, 区域战斗背景无法实现。。。{/ll}
【3】战斗死亡后,下次战斗还是有图像。。。
【4】得到物品显示两次?!战斗结束后显示,地图模式时又显示得到物品?!
    主要是背景问题,升级貌似战斗后地图状态可以提示,如果加入升级提示音该放哪里?
作者: 人格化    时间: 2008-12-21 04:59
楼主,我使用了默认战斗的那个脚本
但是出现一个问题,就是武器中“先发制人”就无效了,特技道具中的“敏捷修正”也无效了。
有什么解决方法吗? 谢谢
作者: 自动贩卖机    时间: 2008-12-23 06:38
继续BUG汇报。。
1,战斗中角色对自己使用单体治愈技能的话,回复的数值没有显示。
2,同LS的LS,升级时没有学会新技能的角色不显示升级提示。就是说如果一次战斗4个人物全部升级,但没有人学会新技能的话,直接什么都不显示。

再请教LZ个问题
能不能设置某个技能能够产生复数次数的伤害??
比如一个技能10连击,就是10次伤害显示,而且每次攻击的伤害值大小都能在脚本里面调节。。
作者: 人格化    时间: 2009-1-1 00:52
{/fd}使用了默认战斗,貌似战斗中的回合设置也无效了???
作者: 曹老师小弟    时间: 2009-1-3 20:45
有才........
作者: john0420    时间: 2009-1-4 01:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: 靠靠    时间: 2009-1-10 06:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 痒死我了    时间: 2009-1-15 06:52
可以吧那个CP条的脚本单独出来吗?
作者: tianhe    时间: 2009-2-2 21:37
zhong大
请问下怎样才能让战斗窗口固定,战斗时不被隐藏。
我用的是1.03b版脚本
作者: doublehjb    时间: 2009-6-4 01:56
支持lz,我正在使用lz的1.02a版的系统,最近下了1.03b的,但是发现新版的仍然存在旧版
的一个问题:就是战斗时,指令键按得太快,指令框卡住了......请修正一下吧-.-....
都是那句:支持lz~~
作者: karth0507    时间: 2009-9-17 10:09
抱歉想问一下
为甚麽这个剧本用了後下方的战动行动提示和伤害提示都消失了??
就是说原本会说XX正在攻击  XX受到XXX点伤害  但是用了剧本後现在没有了
请帮帮忙解答  本人对剧本一晓不通
作者: 632808263    时间: 2009-10-29 04:27
好东西  顶!!!!!
作者: lz19870619    时间: 2009-11-2 12:38
不知道Zhong大还在不,最近使用CP战斗需要用到人员替换,但是在替换人员后,替换上来的人员因为没有载入CP,所以出错。如果zhong 大还在的话,麻烦帮我一下,谢谢。

替换人员的脚本我加入到了个人的指令里,不过应该没关系的吧。
作者: samchantak    时间: 2009-11-2 15:16
頂一下 支持"
作者: wxx45600    时间: 2009-11-2 15:52
好东东呀
作者: weichao983    时间: 2010-2-2 20:19
顶~!!强大!!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1