查看: 2623|回复: 25

[已经过期] 有沒有針對命中類型的抗性的腳本

[复制链接]
梦石
0
星屑
4230
在线时间
2671 小时
注册时间
2012-3-1
回帖
680
发表于 2016-10-5 04:49:56 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 卡奥尼特 于 2016-10-5 05:10 编辑


表示妮特很久沒來這邊發帖提問 (伸手) 了呢
這次要伸手的是,針對命中類型的抗性的腳本

QQ截图20161005044416.png
比如,必定命中 的抗性是 0% 的話,受到 必定命中 類型的技能的話就不會受到任何傷害
必定命中 的抗性是 5% 的話,必定命中 類型的技能就只能受到 5% 的傷害


物理攻擊 和 魔法攻擊 同上……
(居然忘記VA裏的物理傷害加成和魔法傷害加成了,這條請無視…… )
不過,也順便將這兩個技能類型也變成 必中屬性 吧 (說好抗性呢?)……


如果要完善一點的話,就是能指定抵抗數值的傷害
比如 270點 的話,就可以抵抗 270 點 的傷害的那種


也就是所謂的抗性加強吧……




………………
……
……
好像妮特的野望有點大了……  
就讓它這麼沉下去好了……







梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
回帖
644

开拓者

发表于 2016-10-5 05:44:06 | 显示全部楼层
命中類型和傷害類型是不牴觸的
hdhgdjdgfh.png

点评

挺麻烦=这个问题棘手  发表于 2016-10-5 11:55
挺麻烦,或许需要改脚本才行  发表于 2016-10-5 11:55
2016/07/17 加入RPG製作,勿忘初衷!
回复

使用道具 举报

梦石
0
星屑
4230
在线时间
2671 小时
注册时间
2012-3-1
回帖
680
 楼主| 发表于 2016-10-5 11:26:40 | 显示全部楼层
本帖最后由 卡奥尼特 于 2016-10-5 11:46 编辑
QQ蚊子湯 发表于 2016-10-5 05:44
命中類型和傷害類型是不牴觸的


雖然也想用這個方式,只是太麻煩……
所以 妮特只想要單純針對 必定命中 類型的抗性…… 而不是針對屬性抗性

可以的話,參考一下 物理傷害加成 和 魔法傷害加成 , 發現了什麼?
沒錯,就是少了一個 必中傷害加成 這個功能。和 地形傷害加成 無關,那個是針對地圖的
回复

使用道具 举报

梦石
0
星屑
1788
在线时间
1313 小时
注册时间
2012-8-4
回帖
724
发表于 2016-10-5 11:54:45 | 显示全部楼层
83294a57gw1f8b17qq958j204704gjra.jpg
有难度,或许得使用一下召唤术试试@喵呜喵5 @cinderelmini
触手们也没有时间给你回答这个问题
回复

使用道具 举报

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2016-10-5 12:16:09 | 显示全部楼层
本帖最后由 喵呜喵5 于 2016-10-5 12:20 编辑
夜狠简单 发表于 2016-10-5 11:54
有难度,或许得使用一下召唤术试试@喵呜喵5 @cinderelmini
触手们也没有时间给你回答这个问题
...


未测试,基本思路,
后续细节的判定还是挺多的……
  1. class Game_Battler
  2.   alias m5_20161005_item_element_rate item_element_rate
  3.   def item_element_rate(user, item)
  4.     r = m5_20161005_item_element_rate(user, item)
  5.     return r unless item.is_a? RPG::Skill # 仅针对技能生效
  6.     return r if item.damage.recover? # 无视回复类技能
  7.     hr = case item.hit_type
  8.          when 0 then 1.0 # 必定命中
  9.          when 1 then 1.0 # 物理攻击
  10.          when 2 then 1.0 # 魔法攻击
  11.          end
  12.     r * hr
  13.   end
  14. end
复制代码

点评

0.0  发表于 2016-10-9 16:55
回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2016-10-5 13:27:12 | 显示全部楼层
本帖最后由 cinderelmini 于 2016-10-27 20:29 编辑

在角色或者敌人、装备、状态的备注里填(不含引号):
“<必中伤害比率 数值>”(数值以100为基础水平线,不填默认100)
可以设置必中的伤害比率,检查了一下默认物理和魔法的伤害比率算法,
看起来是乘积算法,现在这样应该是差不多的样子了。

【代码更新了一下】
  1. class RPG::BaseItem
  2.   #--------------------------------
  3.   # ○ 获取必定命中的伤害比率备注信息(通用)
  4.   #--------------------------------
  5.   def certain_hit_damage_rate
  6.     return (self.note =~ /<必中伤害比率\s?(.*)?>/ ? $1.to_i / 100.0 : 1.0)
  7.   end
  8. end


  9. class Game_Actor < Game_Battler
  10.   #--------------------------------
  11.   # ○ 获取必定命中伤害比率备注信息(角色)
  12.   #--------------------------------
  13.   def certain_hit_damage_rate
  14.     rate = actor.certain_hit_damage_rate
  15.     rate *= c_hit_d_rate_plus
  16.     return rate
  17.   end
  18.   #--------------------------------
  19.   # ○ 获取状态/武器/防具的必定命中伤害比率备注信息
  20.   #--------------------------------
  21.   def c_hit_d_rate_plus
  22.     state_rate  = self.states.inject(1.0) {|r, s| r *= s.certain_hit_damage_rate}
  23.     weapon_rate = self.weapons.inject(1.0){|r, w| r *= w.certain_hit_damage_rate}
  24.     armor_rate  = self.armors.inject(1.0) {|r, a| r *= a.certain_hit_damage_rate}
  25.     return (state_rate * weapon_rate * armor_rate)
  26.   end
  27. end

  28. class Game_Enemy < Game_Battler
  29.   #--------------------------------
  30.   # ○ 获取必定命中伤害比率备注信息(敌人)
  31.   #--------------------------------
  32.   def certain_hit_damage_rate
  33.     basic = enemy.certain_hit_damage_rate
  34.     state_rate = self.states.inject(1.0){|r, s| r *= s.certain_hit_damage_rate}
  35.     return (basic * state_rate)
  36.   end
  37. end



  38. class Game_Battler < Game_BattlerBase
  39.   
  40.   #--------------------------------
  41.   # ○ 获取必定命中伤害比率(统一入口)
  42.   #--------------------------------
  43.   def cdr
  44.     p "#{self.name}比率:#{self.certain_hit_damage_rate}"
  45.     return (self.certain_hit_damage_rate / 1.0)
  46.   end
  47.   
  48.   #--------------------------------
  49.   # ○ 计算伤害
  50.   #--------------------------------
  51.   def make_damage_value(user, item)
  52.     value = item.damage.eval(user, self, $game_variables)
  53.     value *= item_element_rate(user, item)
  54.     value *= pdr if item.physical?
  55.     value *= mdr if item.magical?
  56.     value *= rec if item.damage.recover?
  57.     # 必中伤害倍率计算
  58.     value *= cdr if item.certain?
  59.     #----------------
  60.     value = apply_critical(value) if @result.critical
  61.     value = apply_variance(value, item.damage.variance)
  62.     value = apply_guard(value)
  63.     @result.make_damage(value.to_i, item)
  64.   end
  65.   
  66.   #--------------------------------
  67.   # ○ 计算技能/物品的闪避几率(所有伤害类型的技能都改为无法闪避)
  68.   #--------------------------------
  69.   alias sny46_161005_item_eva item_eva
  70.   def item_eva(user, item)
  71.     return 0 if item.is_a?(RPG::Skill)
  72.     return sny46_161005_item_eva(user, item)
  73.   end

  74.   #--------------------------------
  75.   # ○ 计算技能/物品的成功几率(所有伤害类型的技能都改为不会miss)
  76.   #--------------------------------
  77.   alias sny46_161009_item_hit item_hit
  78.   def item_hit(user, item)
  79.     return 1 if item.is_a?(RPG::Skill)
  80.     return sny46_161009_item_hit(user, item)
  81.   end
  82.   
  83. end
复制代码

点评

唔。。漏掉了命中判定只做了闪避判定……命中判定已加上,顺便修正了一下伤害数值小直接忽略的情况(大概)……  发表于 2016-10-9 17:19
虽然是必中伤害加成,但总觉得少了点什么…… 所有伤害技能都变成无法闪避的话,每次攻击的话应该都不会出现MISS,这一方面不加个判定吗?  发表于 2016-10-9 16:41
原来是这样,不去想太了,坑杀脑细胞  发表于 2016-10-5 18:26
正则什么的窝也不是很懂,问号大概是匹配次数的区别吧……可以试试在备注里写两个<必中伤害加成>并填不一样的数值,再测试问号的作用……  发表于 2016-10-5 17:04
"<必中伤害加成 -200000500>"比如匹配这个,加了?的就不去匹配--200000500  发表于 2016-10-5 16:46
回复

使用道具 举报

梦石
0
星屑
677
在线时间
301 小时
注册时间
2015-2-17
回帖
130
发表于 2016-10-6 21:43:03 | 显示全部楼层
讲道理没必要这么麻烦。
可以直接做空一条削减

点评

我的意思是做空地形削减,个人尝试是新建属性  发表于 2016-10-9 20:11
是針對 命中類型 的抗性,而不是 屬性抗性 哦~  发表于 2016-10-7 01:36
回复

使用道具 举报

梦石
0
星屑
4230
在线时间
2671 小时
注册时间
2012-3-1
回帖
680
 楼主| 发表于 2016-10-9 16:51:26 | 显示全部楼层
本帖最后由 卡奥尼特 于 2016-10-9 17:03 编辑
cinderelmini 发表于 2016-10-5 13:27
只是要设置倍率的话不需要弄到属性那么麻烦的东西吧……
基于默认伤害计算系统的基础上,插入以下代码,
然 ...


测试了下,感觉必须写到人物或敌人的备注栏身上才有效果……
武器、防具以及状态均无任何效果……

至于那个 所有伤害类型的技能都改为无法闪避 能否加个判定什么的吗?
还是说,这个代码并没有完善吗?
(顺便: 50以下似乎不会受到任何伤害,50以上会受到正常伤害)

02.png
03.png

点评

是伤害叠乘所有加成比率呢,还是把加成比率加起来乘伤害呢~~ 至於這點的話,參考一下VA自帶的 物理傷害加成 和 魔法傷害加成 就行了  发表于 2016-10-9 18:06
顺便解释一下,角色项目的命中比率没填的话默认100,其他项目没填的话默认0,因为其他项目是叠加性质的。  发表于 2016-10-9 17:40
6L的代码更新了一下(未测试),装备和状态可以填比率,比率会叠加到对应人物身上,最后乘伤害,至于无法闪避的判定是啥?  发表于 2016-10-9 17:38
人物身上有装备和状态的时候,是伤害叠乘所有加成比率呢,还是把加成比率加起来乘伤害呢~~  发表于 2016-10-9 17:24
回复

使用道具 举报

梦石
0
星屑
4230
在线时间
2671 小时
注册时间
2012-3-1
回帖
680
 楼主| 发表于 2016-10-9 18:03:26 | 显示全部楼层
本帖最后由 卡奥尼特 于 2016-10-9 18:22 编辑
cinderelmini 发表于 2016-10-5 13:27
只是要设置倍率的话不需要弄到属性那么麻烦的东西吧……
基于默认伤害计算系统的基础上,插入以下代码,
然 ...


這是測試圖…… 設置成10之後沒有受到任何傷害……  
(話說,如果在職業填的話,也是沒有任何效果的。其他正常…… )
(順便也希望加一個這種功能,比如填 270,就可以直接抵擋 270點 傷害值)

01.png
02.png
03.png


至於腳本內的 所有伤害类型的技能都改为无法闪避 ,也就是說,物理攻擊和魔法攻擊都會變成必中屬性……
對於這個,能否加個判定呢? 妮特可不想讓每個技能都能處於必中狀態……



總結一下想要的功能:
1、必中傷害加成 。可以參考VA自帶的 物理傷害加成 和 魔法傷害加成
2、所有命中類型變成必中類型,不過,也請加個判定,不希望每個技能都是 必中
3、希望可以指定抵擋的值,比如填 270 ,那麼就可以直接抵擋 270 點傷害……
就這三個而已……

点评

2和3的话……之后有空再看看……  发表于 2016-10-27 20:33
上边的代码更新了一下,为了方便理解,原本备注栏里填的文字改成了<必中伤害比率 数值>,窝也试过了,现在40定值的伤害也能打出数值了……  发表于 2016-10-27 20:32
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部