本帖最后由 guoxiaomi 于 2017-3-30 20:23 编辑 89444640 发表于 2017-3-30 15:06 看到你使用了 '战斗时敌HP、MP显示' 脚本,所以这样写的…… 以及物品/技能以友方单体为目标的时候,如果想跟跟敌人一样显示状态的话,要把 ENABLE_TO_ACTOR 设置为 true。如果没有Help_Window,就设置为 false。 微调位置在第 99,104,110 行 RUBY 代码复制
|
本帖最后由 guoxiaomi 于 2017-3-29 23:24 编辑 89444640 发表于 2017-3-29 21:54 首先脚本里要再添加 attr_reader RUBY 代码复制
然后事件脚本里这么写: RUBY 代码复制
禁用攻击不建议的原因是,实现起来麻烦啊~(并不) 而且我觉得禁用指令本身也没有太多意义吧,我甚至都想把沉默不能下达魔法指令改成可以正常下达,只是行动时仍然被沉默就无效。 还有一点原因是,如果没有处于'麻痹'或是'沉默'状态,正常下达指令后,角色行动前被先行动者加上负面效果,本轮是空过的。所以攻击、魔法是否生效不取决于是否下达指令,而是取决于行动时自己的状态。大概是基于这些原因,我觉得不需要在指令中禁用攻击和魔法。 |
guoxiaomi 发表于 2017-3-29 09:52 很好奇,为何禁用攻击不建议呢? 试了一下效果有了,选择攻击不行动,只显示动画,选择特技和魔法依然可以攻击。 然后这个命令后执行公用事件脚本中的 when 5 update_phase4_step5 # 显示伤害数字时 执行 2 号公共事件 $game_system.battle_interpreter.setup($data_common_events[2].list, 0) 是不是吧需要用到的效果都放在这个公用事件中就可以了? 如果是这样的话,那么麻痹中可以选择攻击,然后执行时显示麻痹中无法攻击的语句。 if @battler.state?(8) $game_temp.message_text ="麻痹中" 这么写肯定不对- - 求正确写法,当角色处于麻痹状态并且选择攻击指令时,显示文字麻痹中,从而无法攻击。 |
本帖最后由 guoxiaomi 于 2017-3-29 17:22 编辑 89444640 发表于 2017-3-29 09:34 虽然我会管这个叫“缴械”……倒是没有什么困难的地方…… 具体实现是这样: 1. 在行动时仍处于“麻痹”状态,攻击会无效 2. 禁用攻击指令(建议不这么做) 问题是: 如果能在给处于“麻痹”的角色下达攻击指令,并选择目标。那么角色可能会被快速行动的队友解除状态,这样不至于用防守空过一轮。 方法在这里的 1 楼: https://rpg.blue/forum.php?mod=viewthread&tid=399295 在行动前的公共事件里插入脚本,判断角色是否有状态 25 ,有的话就清除行动,播放25号动画,并等待25帧(等待动画结束): RUBY 代码复制
|
guoxiaomi 发表于 2017-3-28 23:58 辛苦了,我调下技能试试。 敌人那个就是横向排列就可以了,循环显示不直观。 还有个和这个有关的事情,麻痹效果一般都是不能使用普通攻击,可以使用魔法, 但是默认选项里面没有这个,能想个办法吗? |
本帖最后由 guoxiaomi 于 2017-3-29 00:24 编辑 89444640 发表于 2017-3-28 19:54 修改了 7 楼的脚本。注意 11 行和 58~66 行的部分。 这个是防卡,并且不会实时刷新HP/SP。 但是状态图标是每 40 帧刷新的(半实时),由于技能生效在在动画播放前,状态图标会在动画播放的时候发生更新。个人感觉影响不大,暂时就这么做了。 此外,我发现我的那个全图动画的脚本和上面 fux2 写的最后一击者播放胜利动画冲突了。全图动画脚本放在后面是正确的,要兼容 fux2 的脚本的话需要修改第 112 行
如果没有发现冲突,就不用管了…… 还是没有懂敌人的状态图标要怎么摆放,要顺次排列,还是要循环呢? 又想到了一件事是,其实这段脚本就是在 Window_BattleStatus 里绘制图标,其实不一定要附加了状态才需要绘制,可以直接判断角色的攻击力、防御力是否下降,然后绘制对应的图标。 比如可以这样写: 原脚本 14 行后面添加: RUBY 代码复制
这样在角色的攻击力下降时,会在第一组循环的图标里增加 '状态25',因为命名方式是'状态'+2位数字,但实际上跟25号状态是否附加没有关系。为了避免与已经有的25号状态图标冲突,这里可以把 25 改成更大,99以内都行。 其他的各种属性,在 Game_Actor 类搜索 'def base_' 就知道有哪些了: base_maxhp, base_maxsp, base_str, base_dex, base_agi, base_int, base_atk, base_pdef, base_mdef, base_eva。 还有一个是命中: hit,要判断 actor.hit < 100。 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-4-22 14:34
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.