Project1
标题:
技能使用会心一擊 後的問題
[打印本页]
作者:
stanyanyan0
时间:
2012-8-14 23:05
标题:
技能使用会心一擊 後的問題
http://rpg.blue/forum.php?mod=viewthread&tid=176448
我使用了上面連結的方法,成功讓技能也有会心一擊的效果
但是發現 自己使用物品 也會有会心效果的符號
例如我喝了一瓶恢復200HP的藥水
他也給我顯示 熱血痛擊 雖然一樣都恢復200HP 但看了礙眼
有辦法解決嗎 謝謝了! dsu_plus_rewardpost_czw
作者:
怪蜀黍
时间:
2012-8-14 23:26
本帖最后由 protosssonny 于 2012-8-14 23:32 编辑
我知道问题的所在,因为普通攻击评价也调用了make_attack_damage_value
方法:Game_BattleAction类下316行,找到类似的定义变成这样
#--------------------------------------------------------------------------
# ● 普通攻击评价(指定目标)
# target : 目标战斗者
#--------------------------------------------------------------------------
def evaluate_attack_with_target(target)
target.clear_action_results
target.make_attack_damage_value(battler,false) #改这里
return target.hp_damage.to_f / [target.hp, 1].max
end
复制代码
Game_Battler类下def make_attack_damage_value(attacker)改成def make_attack_damage_value(attacker,value=true)
再把你的@critical = (rand(100) < attacker.cri) 改成 @critical = ((rand(100) < attacker.cri) and value==true)
应该就可以了!
作者:
stanyanyan0
时间:
2012-8-14 23:42
本帖最后由 stanyanyan0 于 2012-8-15 00:37 编辑
我改好了,但是還是有出現TAT
應該說 物品不會有会心效果了
但是 技能也跟著沒了���
作者:
limaolinghu
时间:
2012-8-15 07:43
你之前肯定是在make_obj_damage_value增加了暴击率的几行代码吧?
把那几行代码用if obj.is_a?(RPG::Skill)括起来,应该就好了。
比如,你增加以下这几行的时候加个if
if obj.is_a?(RPG::Skill)
@critical = (rand(100) < attacker.cri) # 会心一击判断
@critical = false if prevent_critical # 防止会心一击判断
damage *= 3 if @critical # 会心一击校正
end
作者:
怪蜀黍
时间:
2012-8-15 09:32
4楼说得很对,可以照他的办法。如果你改好了还出现,说明你一定使用了其他脚本并调用了make_attack_damage_value。
作者:
stanyanyan0
时间:
2012-8-15 11:11
成功了 感謝兩位~
這最佳解答只能選一個阿
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1