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

Project1

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

[已经解决] 【技能研究】请教风险分担技能的设置方法

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
86 小时
注册时间
2009-12-2
帖子
172
跳转到指定楼层
1
发表于 2016-10-21 11:23:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
当主角使用了一个名为”风险分担“的技能后,自身会附加一个”风险分担“的状态。
状态存在时,如果受到伤害,伤害的50%会分摊在其余3名或指定1名的队员头上。
这种技能该如何达到?

Lv4.逐梦者 (版主)

梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

2
发表于 2016-10-21 12:57:27 | 只看该作者
我不知道你的战斗系统是啥,所以我基于默认的来写。

RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.  
  3.   attr_reader :result
  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 self.state?(30) && item.damage.to_hp? #把30换成状态ID
  15.         value *= 0.5
  16.         $disperse_value = true
  17.         $disperse_params = [value, self, user, item]
  18.     end
  19.     @result.make_damage(value.to_i, item)
  20.   end
  21.  
  22. end  
  23.  
  24. class Scene_Battle
  25.   attr_reader :log_window
  26.  
  27.   def disperse_value
  28.     return if !$disperse_value || !$disperse_params
  29.     params = $disperse_params
  30.     arr = $game_party.alive_members.clone
  31.     arr.delete(params[1])
  32.     value = params[0]
  33.     value /= arr.size
  34.     value = value.to_i
  35.     arr.each{|a|
  36.       a.result.clear
  37.       a.result.make_damage(value, params[3])
  38.       a.execute_damage(params[2])
  39.       a.result.used = true
  40.       refresh_status
  41.       @log_window.display_action_results(a, params[3])
  42.     }
  43.     $disperse_value = nil
  44.     $disperse_params = nil
  45.   end
  46.  
  47.   alias :dpv_apply_item_effects :apply_item_effects
  48.   def apply_item_effects(target, item)
  49.     dpv_apply_item_effects(target,item)
  50.     disperse_value if $disperse_value
  51.   end
  52. end


这是插件脚本。伤害的50%会平分到活着的队友身上。

点评

666666,大赞一个,很给力啊!谢谢  发表于 2016-10-21 13:08

评分

参与人数 2星屑 +260 梦石 +1 收起 理由
怪蜀黍 + 250 + 1 楼主认可的解答
QQ蚊子湯 + 10 路過偷學~

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2019
在线时间
940 小时
注册时间
2015-10-26
帖子
358

开拓者

3
发表于 2016-10-21 16:20:15 | 只看该作者
本帖最后由 踢腿水上飘 于 2016-10-21 16:26 编辑
RaidenInfinity 发表于 2016-10-21 12:57
我不知道你的战斗系统是啥,所以我基于默认的来写。


确实厉害
看懂了看懂了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-21 04:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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