查看: 73|回复: 0

[转载发布] 发一种属性修正计算方式。

[复制链接]
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月四日(秋) | 显示全部楼层 |阅读模式
    纯粹无聊的新人脚本。。。顺便还有 普攻,技能的暴击修正,如果有人顶我就发上来。

    这种算法是,武器或者技能物品,其属性,与敌人的属性防御做比较,
    克制可以抵消 吸收和 免疫,全部乘算。吸收最优先,其次是 免疫。
    当 克制的数量完全抵消 吸收和免疫,并还能多出来的时候,
    剩余一个克制就 2倍伤害,两个就 4倍,三个就 8倍。。。

    脚本里都有注释,你可以很方便地修改,如果觉得乘算方式太夸张,也可以改成加算。
    比如 三个克制就 6倍,四个克制就 8倍。

    RUBY 代码
    1. class Game_Battler
    2.   #== ◆ 属性修正 ============================================
    3.   def elements_correct(element_set)
    4.     if element_set == []
    5.       return100# 没有任何属性对应,就 100%
    6.     end
    7.     a = []
    8.     b = 1.0
    9.     for i in element_set
    10.       e_r = self.element_rate(i)# [200,150,100,50,0,-100]
    11.       a.push(e_r)
    12.     end
    13.     n = a.collect{|x|(x +200)*2}
    14.     # 简单转换[800 u, 700 s, 600普, 500 t, 400 w, 200 v]
    15.     s = n.to_s.count"7"# 几个强
    16.     s == 0 ? sn = 1 : sn = 1.5**s
    17.     t = n.to_s.count"5"# 几个弱,没有就用 1,有就乘几次
    18.     t == 0 ? tn = 1 : tn = 0.5**t
    19.     u = n.to_s.count"8"# 数出有几个克制
    20.     v = n.to_s.count"2"# 数出有几个吸收
    21.     w = n.to_s.count"4"# 数出有几个免疫
    22.     #p u.to_s+"克" + v.to_s+"吸" +w.to_s+"免" +s.to_s+"强" +t.to_s+"弱"
    23.     if(u - v) < 0# 吸收 比 克制多,几倍吸收,绝对优先
    24.       b = u - v
    25.     elsif((u - v)- w) < 0# 抵消吸收后,剩下的无法抵消免疫
    26.       b = 0
    27.     elsif(u -v -w) > 0# 克很多,抵消吸收后还能抵消免疫,剩余几个克
    28.       b = 2**(u -v -w) *sn *tn # 一个弱 会抵掉一个剩余的 克
    29.     elsif(u -v -w) == 0# 完全抵消。
    30.       b = sn *tn
    31.     else# 还会有这种情况吗?
    32.       p "???"
    33.     end
    34.     #p b
    35.     return(b *100).to_i
    36.   end
    37. end
    复制代码

                 本帖来自P1论坛作者lucifer4223,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=337426  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-10 12:39 , Processed in 0.067199 second(s), 43 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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