查看: 2517|回复: 7

[已经解决] 求一个物理反射的状态

[复制链接]
梦石
0
星屑
60
在线时间
59 小时
注册时间
2015-7-6
回帖
64
发表于 2015-7-6 16:27:01 | 显示全部楼层 |阅读模式

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

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

×
如题,rmva只设有魔法反射,我需要一个物理反射的状态,求大神赐教!
梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2015-7-6 22:16:15 | 显示全部楼层
物理反射?是反击么?还是受到伤害反弹部分所受伤害?
回复

使用道具 举报

梦石
0
星屑
60
在线时间
59 小时
注册时间
2015-7-6
回帖
64
 楼主| 发表于 2015-7-6 22:26:19 | 显示全部楼层
tan12345 发表于 2015-7-6 22:16
物理反射?是反击么?还是受到伤害反弹部分所受伤害?

就是把所受到的物理伤害全部反弹给攻击者,同时自身不受到伤害,类似仙剑3中的烟月神镜
回复

使用道具 举报

梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2015-7-7 20:26:32 | 显示全部楼层
公孙少 发表于 2015-7-6 22:26
就是把所受到的物理伤害全部反弹给攻击者,同时自身不受到伤害,类似仙剑3中的烟月神镜 ...

你会脚本么?我可以大概的说下思路,以及主要改哪里,但是我没时间写以及测试,如果你会脚本可以根据思路来改,否则我也无能为力了
回复

使用道具 举报

梦石
0
星屑
702
在线时间
326 小时
注册时间
2013-5-31
回帖
67
发表于 2015-7-7 20:28:55 | 显示全部楼层
更改结算伤害的对象者。
回复

使用道具 举报

梦石
0
星屑
60
在线时间
59 小时
注册时间
2015-7-6
回帖
64
 楼主| 发表于 2015-7-7 20:38:25 | 显示全部楼层
tan12345 发表于 2015-7-7 20:26
你会脚本么?我可以大概的说下思路,以及主要改哪里,但是我没时间写以及测试,如果你会脚本可以根据思路 ...

你先把思路说一下吧……然后我就滚去学习脚本了……
回复

使用道具 举报

梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2015-7-7 21:01:12 | 显示全部楼层
公孙少 发表于 2015-7-7 20:38
你先把思路说一下吧……然后我就滚去学习脚本了……

思路其实蛮多的,看你需要哪种:
1.如果是受到物理攻击后,自身不受伤害,而是发动同样的技能来反击对方的话,全局搜索def invoke_item得到如下结果:
  1. #--------------------------------------------------------------------------
  2.   # ● 发动技能/物品
  3.   #--------------------------------------------------------------------------
  4.   def invoke_item(target, item)#target是受击方,@subject是发动方
  5.     if rand < target.item_cnt(@subject, item)#如果触发反击
  6.       invoke_counter_attack(target, item)#发动反击,可以通过修改invoke_counter_attack函数使得反击不是普通攻击而是受到的技能,具体可参照魔法反射
  7.     elsif rand < target.item_mrf(@subject, item)#如果触发魔法反射
  8.       invoke_magic_reflection(target, item)#发动魔法反射
  9.     else#否者执行正常的使用技能效果
  10.       apply_item_effects(apply_substitute(target, item), item)
  11.     end
  12.     @subject.last_target_index = target.index
  13.   end
复制代码
你可以参照这个帖子:https://rpg.blue/thread-380462-1-1.html
2.上面的思路主要运用了反击这个系统自带的功能,第二个思路我们找def item_apply(user, item),解释如下:
  1. #--------------------------------------------------------------------------
  2.   # ● 应用技能/物品的效果
  3.   #--------------------------------------------------------------------------
  4.   def item_apply(user, item)#user代表技能发动者,self代表被伤害者
  5.     @result.clear
  6.     @result.used = item_test(user, item)
  7.     @result.missed = (@result.used && rand >= item_hit(user, item))
  8.     @result.evaded = (!@result.missed && rand < item_eva(user, item))
  9.     if @result.hit?#如果命中
  10.       unless item.damage.none?
  11.         @result.critical = (rand < item_cri(user, item))#是否暴击
  12.         make_damage_value(user, item)#计算伤害
  13.         execute_damage(user)#执行伤害,我们可以在这做文章,如果学会了xx技能、或者身上有xx状态,那么伤害是0,同时执行一次对敌伤害(既把受到的伤害返回给敌人)
  14.       end
  15.       item.effects.each {|effect| item_effect_apply(user, item, effect) }
  16.       item_user_effect(user, item)
  17.     end
  18.   end
复制代码
具体代码你自己写吧~
以上,未测试
回复

使用道具 举报

梦石
0
星屑
60
在线时间
59 小时
注册时间
2015-7-6
回帖
64
 楼主| 发表于 2015-7-8 16:06:56 | 显示全部楼层
https://rpg.blue/home.php?mod=sp ... o=blog&id=12336
最后用了喵呜喵5的脚本……解决了

点评

嗯这个脚本是我先求的,并且喵大帮我写了  发表于 2015-7-8 23:55
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部