设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2927|回复: 14
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
24 小时
注册时间
2011-5-4
帖子
7
跳转到指定楼层
1
发表于 2016-7-10 18:19:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RT,反击可以把敌人揍死这很正常。。但是我想做到把反击造成伤害时,对手总是会至少留下1点HP,我想多半是要用到脚本的,希望有大神帮助

Lv2.观梦者

梦石
0
星屑
409
在线时间
286 小时
注册时间
2015-10-4
帖子
294
2
发表于 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
你看这样可不可以
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
409
在线时间
286 小时
注册时间
2015-10-4
帖子
294
3
发表于 2016-7-11 10:00:56 | 只看该作者
我没用VA做过战斗类~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
24 小时
注册时间
2011-5-4
帖子
7
5
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

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

点评

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

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

7
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

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

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

9
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

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

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 21:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表