Project1
标题:
如何不依靠状态的情况下,使防具可以增加某属性技能伤害
[打印本页]
作者:
无忧谷主幻
时间:
7 天前
标题:
如何不依靠状态的情况下,使防具可以增加某属性技能伤害
本帖最后由 无忧谷主幻 于 2025-7-13 02:54 编辑
因为装备扩展,角色可能会装备2个同样的防具,这种情况还用状态法的话,只能享受1个装备的属性伤害提升
如何让装备本身附带属性的伤害提升?比如装备一个石手镯,土属性技能伤害会提升20%,若是装备2个石手镯,那么土属性技能伤害将会提升40%
整合工程
轩辕菜单 复杂物品分类.zip
(486.85 KB, 下载次数: 1)
7 天前
上传
点击文件名下载附件
11.png
(173.81 KB, 下载次数: 2)
下载附件
保存到相册
7 天前
上传
作者:
灯笼菜刀王
时间:
7 天前
本帖最后由 灯笼菜刀王 于 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不能有空格)
也可以用于状态, 在状态名称里一样用 # 隔开, 然后同样备注即可
未标题-1.jpg
(11.98 KB, 下载次数: 0)
下载附件
保存到相册
7 天前
上传
▲#前是正常说明, @后面是分类标志, 备注就写在#和@中间, 可以复数属性加减, 此时技能如果带有复数属性, 会根据对应的设置对总倍率进行叠加计算, 注意如果计算结果小于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再说
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1