赞 | 401 |
VIP | 0 |
好人卡 | 11 |
积分 | 399 |
经验 | 242285 |
最后登录 | 2025-7-17 |
在线时间 | 5796 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 39905
- 在线时间
- 5796 小时
- 注册时间
- 2006-11-10
- 帖子
- 6671
|
本帖最后由 灯笼菜刀王 于 2025-7-12 11:02 编辑
- module RPG
- class Weapon
- def description
- description = @description.split(/#/)[0]
- return description != nil ? description : ''
- end
- def 属强(ele_id)
- @description =~ /E#{ele_id}([-+0-9]+)/ ;return $1.to_i
- end
- end
- class Armor
- def description
- description = @description.split(/#/)[0]
- return description != nil ? description : ''
- end
- def 属强(ele_id)
- @description =~ /E#{ele_id}([-+0-9]+)/ ;return $1.to_i
- end
- end
- class State
- def name
- name = @name.split(/#/)[0]
- return (name || @name)
- end
- def 属强(ele_id)
- @name =~ /E#{ele_id}([-+0-9]+)/ ;return $1.to_i
- end
- end
- end
- class Game_Actor < Game_Battler
- def 属强(ele_list)
- m = 100 ; f = [] ;7.times{|i| eval("f.push(@armor#{i + 1}_id)")}
- ele_list.each{|i| if (a=$data_weapons[@weapon_id]) != nil ;m += a.属强(i) ;end ;
- 7.times{|j| if (a=$data_armors[f[j]]) != nil ;m += a.属强(i) ;end} ;
- @states.each{|j| m += $data_states[j].属强(i)}}
- return m / 100.0
- end
- end
- class Game_Enemy < Game_Battler
- def 属强(ele_list)
- m = 100 ;ele_list.each{|i| @states.each{|j| m += $data_states[j].属强(i)}}
- return m / 100.0
- end
- end
复制代码
把这个脚本塞到main前, 你的道具分类脚本以下
然后在武器和防具的说明里, 用 #隔开, 然后写上 E1+20 这样表示 1号属性伤害 + 20%; E8-10 这样表示 8号属性伤害 - 10% (E1+10不能有空格)
也可以用于状态, 在状态名称里一样用 # 隔开, 然后同样备注即可
▲#前是正常说明, @后面是分类标志, 备注就写在#和@中间, 可以复数属性加减, 此时技能如果带有复数属性, 会根据对应的设置对总倍率进行叠加计算, 注意如果计算结果小于0%就会变吸收了
然后, 到你的伤害公式里, 默认的话就搜索 def skill_effect(user, skill) ; 找到 self.hp -= self.damage 这句, 上面加上 self.damage = (self.damage * user.属强(skill.element_set)).round
普通攻击搜索 def attack_effect(attacker) , 同样找到 self.hp -= self.damage, 上面加上 self.damage = (self.damage * attacker.属强(attacker.element_set)).round
没做测试, 有BUG再说
|
评分
-
查看全部评分
|