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

Project1

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

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
59 小时
注册时间
2015-7-6
帖子
79
跳转到指定楼层
1
发表于 2015-7-6 16:27:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
如题,rmva只设有魔法反射,我需要一个物理反射的状态,求大神赐教!

Lv1.梦旅人

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

点评

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
7
发表于 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 = ([email protected] && 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
复制代码
具体代码你自己写吧~
以上,未测试
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
702
在线时间
326 小时
注册时间
2013-5-31
帖子
74
5
发表于 2015-7-7 20:28:55 | 只看该作者
更改结算伤害的对象者。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

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

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
59 小时
注册时间
2015-7-6
帖子
79
3
 楼主| 发表于 2015-7-6 22:26:19 | 只看该作者
tan12345 发表于 2015-7-6 22:16
物理反射?是反击么?还是受到伤害反弹部分所受伤害?

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
2
发表于 2015-7-6 22:16:15 | 只看该作者
物理反射?是反击么?还是受到伤害反弹部分所受伤害?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-18 21:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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