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

Project1

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

[已经解决] 接上次命中類型抗性的問題

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2714
在线时间
2408 小时
注册时间
2012-3-1
帖子
745
跳转到指定楼层
1
发表于 2017-2-10 02:06:22 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 卡奥尼特 于 2017-2-12 17:33 编辑


首先,這是妮特上次提問的問題
https://rpg.blue/forum.php?mod=viewthread&tid=396595


妮特在原帖要求了該腳本想實現以下要求
現在在這裡總結一下想要的功能
必中傷害加成 。可以參考VA自帶的 物理傷害加成魔法傷害加成
、所有命中類型變成必中類型,不過,也請加個判定,不希望每個技能都是 必中
、希望可以指定抵擋的,比如填 270 ,那麼就可以直接抵擋 270 點傷害……


因為第一個已經解決,所以忽略。
第二個就是,可以改變 物理攻擊魔法攻擊 為 不可閃避, 不過還是要加個判定。
這麼做只是不想讓 必定命中 這種類型的技能這麼孤單而已

第三個就是,可以指定抵擋多少點傷害,當然不需要纍計,是直接抵擋該數值的傷害。  
比如最多 抵擋  270 點傷害,程序計算的傷害為 500 點 ,實際受到的傷害為  230 點傷害。


如果能實現這兩個效果的話,就解決了 0.0
P.S. 不會寫腳本的妮特只能依賴別人了 QAQ
@cinderelmini



评分

参与人数 1星屑 +26 收起 理由
cinderelmini + 26 忘了看了………………

查看全部评分

Lv3.寻梦者

梦石
0
星屑
2714
在线时间
2408 小时
注册时间
2012-3-1
帖子
745
2
 楼主| 发表于 2017-2-10 20:40:22 | 显示全部楼层
QQ蚊子湯 发表于 2017-2-10 20:20
參考蹭得累桑的代碼,現在所有的備註欄都可以提供抵擋了

代碼小白不會弄…… 但打上去之後似乎沒效果
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2714
在线时间
2408 小时
注册时间
2012-3-1
帖子
745
3
 楼主| 发表于 2017-2-11 11:10:44 | 显示全部楼层
QQ蚊子湯 发表于 2017-2-10 22:45
因為這個腳本需要和蹭得累桑的命中類型增傷插件兼容一下
需要把我這個39行40行插入到,命中類型增傷的68和6 ...

加了後就變成這樣了,但去測試了下好像沒有效果。

RUBY 代码复制
  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.   #--------------------------------
  9.   # ○ 获取可抵挡的数值(通用)
  10.   #--------------------------------
  11.   def certain_hit_damage_rate
  12.     return (self.note =~ /<抵挡:\s*(\d+.*?)>/ ? $1.to_i : 0)
  13.   end
  14. end
  15.  
  16.  
  17. class Game_Actor < Game_Battler
  18.   #--------------------------------
  19.   # ○ 获取必定命中伤害比率备注信息(角色)
  20.   #--------------------------------
  21.   def certain_hit_damage_rate
  22.     rate = actor.certain_hit_damage_rate
  23.     rate *= c_hit_d_rate_plus
  24.     return rate
  25.   end
  26.  
  27.   #--------------------------------
  28.   # ○ 获取必定命中伤害比率备注信息(角色)
  29.   #--------------------------------
  30.   def certain_hit_damage_rate
  31.     rate = actor.certain_hit_damage_rate
  32.     rate *= c_hit_d_rate_plus
  33.     return rate
  34.   end
  35.   #--------------------------------
  36.   # ○ 获取状态/武器/防具的必定命中伤害比率备注信息
  37.   #--------------------------------
  38.   def c_hit_d_rate_plus
  39.     state_rate  = self.states.inject(1.0) {|r, s| r *= s.certain_hit_damage_rate}
  40.     weapon_rate = self.weapons.inject(1.0){|r, w| r *= w.certain_hit_damage_rate}
  41.     armor_rate  = self.armors.inject(1.0) {|r, a| r *= a.certain_hit_damage_rate}
  42.     return (state_rate * weapon_rate * armor_rate)
  43.   end
  44. end
  45.  
  46. class Game_Enemy < Game_Battler
  47.   #--------------------------------
  48.   # ○ 获取必定命中伤害比率备注信息(敌人)
  49.   #--------------------------------
  50.   def certain_hit_damage_rate
  51.     basic = enemy.certain_hit_damage_rate
  52.     state_rate = self.states.inject(1.0){|r, s| r *= s.certain_hit_damage_rate}
  53.     return (basic * state_rate)
  54.   end
  55. end
  56.  
  57.  
  58.  
  59. class Game_Battler < Game_BattlerBase
  60.  
  61.   #--------------------------------
  62.   # ○ 获取必定命中伤害比率(统一入口)
  63.   #--------------------------------
  64.   def cdr
  65.     p "#{self.name}比率:#{self.certain_hit_damage_rate}"
  66.     return (self.certain_hit_damage_rate / 1.0)
  67.   end
  68.  
  69.   #--------------------------------
  70.   # ○ 计算伤害
  71.   #--------------------------------
  72.   def make_damage_value(user, item)
  73.     value = item.damage.eval(user, self, $game_variables)
  74.     value *= item_element_rate(user, item)
  75.     value *= pdr if item.physical?
  76.     value *= mdr if item.magical?
  77.     value *= rec if item.damage.recover?
  78.     # 必中伤害倍率计算
  79.     value *= cdr if item.certain?
  80.     #----------------
  81.     value = apply_critical(value) if @result.critical
  82.     value = apply_variance(value, item.damage.variance)
  83.     value = apply_guard(value)
  84.     value -= parry if !item.damage.recover?
  85.     value = 0 if parry > value
  86.     @result.make_damage(value.to_i, item)
  87.   end
  88.  
  89.   #--------------------------------
  90.   # ○ 计算技能/物品的闪避几率(所有伤害类型的技能都改为无法闪避)
  91.   #--------------------------------
  92.   alias sny46_161005_item_eva item_eva
  93.   def item_eva(user, item)
  94.     return 0 if item.is_a?(RPG::Skill)
  95.     return sny46_161005_item_eva(user, item)
  96.   end
  97.  
  98.   #--------------------------------
  99.   # ○ 计算技能/物品的成功几率(所有伤害类型的技能都改为不会miss)
  100.   #--------------------------------
  101.   alias sny46_161009_item_hit item_hit
  102.   def item_hit(user, item)
  103.     return 1 if item.is_a?(RPG::Skill)
  104.     return sny46_161009_item_hit(user, item)
  105.   end
  106.  
  107. end
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2714
在线时间
2408 小时
注册时间
2012-3-1
帖子
745
4
 楼主| 发表于 2017-2-11 14:17:44 | 显示全部楼层
本帖最后由 卡奥尼特 于 2017-2-11 14:22 编辑
QQ蚊子湯 发表于 2017-2-11 13:56
雖然結構一樣,但是實際上這是兩個不一樣的插件
共通的地方只有樓上代碼的72~87行
其他地方也要輸入的說!


嗚,所以說是代碼小白。

…………
……
還是等dalao好了,但好像過於依賴了……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2714
在线时间
2408 小时
注册时间
2012-3-1
帖子
745
5
 楼主| 发表于 2017-2-11 17:17:57 | 显示全部楼层
QQ蚊子湯 发表于 2017-2-11 16:51
提供放棄人生整合版本

只要複製貼上就可以了

嗯,這個,是哪裡出問題了?

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2714
在线时间
2408 小时
注册时间
2012-3-1
帖子
745
6
 楼主| 发表于 2017-2-11 17:48:33 | 显示全部楼层
本帖最后由 卡奥尼特 于 2017-2-11 17:58 编辑
QQ蚊子湯 发表于 2017-2-11 17:42
上面代碼有更改一下,不過跟你這問題沒關係
再重新複製一次吧


嗯,刪掉了。

然後,再次用了你修改出來的腳本,但是剛要測試戰鬥的時候,就彈出了這個
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2714
在线时间
2408 小时
注册时间
2012-3-1
帖子
745
7
 楼主| 发表于 2017-2-11 18:06:57 | 显示全部楼层
QQ蚊子湯 发表于 2017-2-11 17:59
剛忘了加個防護罩,你再重貼一次

還是提示135行出現錯誤。 嗯,建議您測試後再放上來 0.0
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2714
在线时间
2408 小时
注册时间
2012-3-1
帖子
745
8
 楼主| 发表于 2017-2-11 19:22:45 | 显示全部楼层
本帖最后由 卡奥尼特 于 2017-2-11 19:26 编辑
QQ蚊子湯 发表于 2017-2-11 18:57
新版本沒有135行,使用戰鬥測試需要按存檔之後才會應用腳本變動


在測試之後的發現的最後一個問題,就是
在所有技能类型(即物理攻擊、魔法攻擊)为必中的情况下, 如果主角、職業、裝備等具有閃避的特性的情況下,
那麼所有技能類型的 “必中” 都失效了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-27 22:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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