查看: 3484|回复: 14

[已经解决] 设计反击无法致死

[复制链接]
梦石
0
星屑
55
在线时间
24 小时
注册时间
2011-5-4
回帖
6
发表于 2016-7-10 18:19:51 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
RT,反击可以把敌人揍死这很正常。。但是我想做到把反击造成伤害时,对手总是会至少留下1点HP,我想多半是要用到脚本的,希望有大神帮助
梦石
0
星屑
409
在线时间
286 小时
注册时间
2015-10-4
回帖
263
发表于 2016-7-11 10:00:06 | 显示全部楼层
Game_BattlerBase脚本第478到484行是致死的方法。改成:
  def change_hp(value, enable_death)
    if !enable_death && @hp + value <= 0
        self.hp = 1
    else
      if $反击 == true
        self.hp = 1
      else
        self.hp += value
      end
    end
end

Window_BattleLog第232~237行加多一句:
  def display_counter(target, item)
    Sound.play_evasion
    $反击=true
    add_text(sprintf(Vocab::CounterAttack, target.name))
    wait

79~83行再加一句
  def clear
    $反击=false
    @num_wait = 0
    @lines.clear
    refresh
  end
    back_one
  end
你看这样可不可以
回复

使用道具 举报

梦石
0
星屑
409
在线时间
286 小时
注册时间
2015-10-4
回帖
263
发表于 2016-7-11 10:00:56 | 显示全部楼层
我没用VA做过战斗类~
回复

使用道具 举报

梦石
0
星屑
55
在线时间
24 小时
注册时间
2011-5-4
回帖
6
 楼主| 发表于 2016-7-11 11:01:52 来自手机 | 显示全部楼层
威风镰鼬 发表于 2016-7-11 10:00
Game_BattlerBase脚本第478到484行是致死的方法。改成:
  def change_hp(value, enable_death)
    if !en ...

中午马上去试试看,先谢谢了,真是辛苦啦
回复

使用道具 举报

梦石
0
星屑
55
在线时间
24 小时
注册时间
2011-5-4
回帖
6
 楼主| 发表于 2016-7-11 14:08:37 来自手机 | 显示全部楼层
本帖最后由 46548725 于 2016-7-11 19:47 编辑

@威风镰鼬  思路好像完美符合我想要的。但是那个 反击 变量被设定为true的时候伤害是不是已经计算好啦?是不是应该换个地方加入这条语句呢。

点评

在下对脚本实际上并不是很熟悉,但是似乎楼主想要的是在反击之前不计算伤害?  发表于 2016-7-11 17:09
$反击设定为true时,在原第478-484行修改过的语句经过判断后让反击无法致死(具体没有开工程看,但是光看回答是这样的)  发表于 2016-7-11 17:09
回复

使用道具 举报

梦石
0
星屑
55
在线时间
24 小时
注册时间
2011-5-4
回帖
6
 楼主| 发表于 2016-7-11 19:45:28 | 显示全部楼层
46548725 发表于 2016-7-11 14:08
思路好像完美符合我想要的。但是那个 反击 变量被设定为true的时候伤害是不是已经计算好啦?是不是应该换个 ...

@邪正人鬼   我的意思确实和你以及第一位帮忙的人一样,我觉得语句也对。但是测试时候并没有这个效果,所以我猜测是因为 $反击 变量没有在正确的时机被赋予了true,或者在计算伤害前就已经变回false了(希望看得懂我说的Q_Q

点评

因为没用过VA的战斗所以我还没测试过,自己输出过了吗?试一下在战斗的各种情况中输出  发表于 2016-7-12 19:43
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2016-7-12 22:32:46 | 显示全部楼层
  1.   
  2.   $evil||=0
  3.   class Scene_Battle < Scene_Base
  4.   #--------------------------------------------------------------------------
  5.   # ● 发动反击
  6.   #--------------------------------------------------------------------------
  7.   def invoke_counter_attack(target, item)
  8.   $evil=1
  9.    
  10.     @log_window.display_counter(target, item)
  11.     attack_skill = $data_skills[target.attack_skill_id]
  12.     @subject.item_apply(target, attack_skill)
  13.     refresh_status
  14.     @log_window.display_action_results(@subject, attack_skill)
  15.   end
  16. end
复制代码

  1. class Game_Battler < Game_BattlerBase  
  2. #--------------------------------------------------------------------------
  3.   # ● 计算伤害
  4.   #--------------------------------------------------------------------------
  5.   def make_damage_value(user, item)
  6.     value = item.damage.eval(user, self, $game_variables)
  7.     value *= item_element_rate(user, item)
  8.     value *= pdr if item.physical?
  9.     value *= mdr if item.magical?
  10.     value *= rec if item.damage.recover?
  11.     value = apply_critical(value) if @result.critical
  12.     value = apply_variance(value, item.damage.variance)
  13.     value = apply_guard(value)
  14.     if $evil==1 and value>self.hp
  15.       value = self.hp-1
  16.       $evil=0
  17.     end
  18.     @result.make_damage(value.to_i, item)
  19.   end
  20. end
复制代码

反击打开开关,计算伤害时判断是否是反击,如果是则造成致死时强制保留一滴血的伤害,伤害确定以后再关闭开关
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
50
在线时间
30 小时
注册时间
2015-5-6
回帖
23
发表于 2016-7-13 00:10:03 | 显示全部楼层
chd114 发表于 2016-7-12 22:32
反击打开开关,计算伤害时判断是否是反击,如果是则造成致死时强制保留一滴血的伤害,伤害确定以后再关 ...

请问反击的伤害量可以控制吗?
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2016-7-13 11:00:19 | 显示全部楼层
ohehehe 发表于 2016-7-13 00:10
请问反击的伤害量可以控制吗?

伤害结算里动手脚咯···这里已经帮你弄成如果是反击时致死则保留一滴血了
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
55
在线时间
24 小时
注册时间
2011-5-4
回帖
6
 楼主| 发表于 2016-7-15 17:26:30 | 显示全部楼层
chd114 发表于 2016-7-12 22:32
反击打开开关,计算伤害时判断是否是反击,如果是则造成致死时强制保留一滴血的伤害,伤害确定以后再关 ...

呃,先谢谢大触帮忙,这段是在main前插入吗?我在main前把这两段放进去然后测试了一下,反击还是能击杀噶(我觉得我脚本插入姿势可能不对,求指导
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部