Project1
标题: 护盾技能,给角色添加额外血量,可用于阻挡伤害 [打印本页]
作者: 契约师Vi 时间: 2019-11-5 09:21
标题: 护盾技能,给角色添加额外血量,可用于阻挡伤害
比如说LOL,辅助给ADC,加盾。三个回合盾自动消除,或者被敌方技能打破。 有没有大佬写出过这样的脚本
作者: taeckle 时间: 2019-11-5 16:07
护盾功能你可以在 def skill_effect(user, skill) 里这么搞:
先用搜索找到那个“self.hp -= self.damage”,
然后在这句话上面加上这句:
if self.state?(20) #比如说第20号状态就是护盾状态
self.damage -= 500 #比如说这个护盾可以帮你抵消500点HP伤害
end
作者: guoxiaomi 时间: 2019-11-5 23:33
有,参见我签名里的《战斗调用公共事件》,里面有个范例实现了类似“魔法盾”的效果
作者: y967 时间: 2019-11-28 10:00
本帖最后由 y967 于 2019-11-28 11:26 编辑
我设想用变量存储血量,伤害和这个变量挂钩,只要某个状态下,这个就生效。当状态存在时,不扣血,只扣变量,当变量小于0,状态消失。这样做的好处就是不用另外写脚本,就在Battlle3里写,我想想怎么写。
1,第一种不需要变量,直接用状态,伤害除以一个数,达到比例减伤的效果
if self.states.include?(37)
self.damage /= 1.3
self.damage = self.damage.to_i
if self.states.include?(37)
self.damage /= 1.3
self.damage = self.damage.to_i
2,第二种,也不需要变量,伤害超过一定数值,减伤固定数值
if self.states.include?(41)
if self.damage > 200
self.damage -= 200
end
if self.states.include?(41)
if self.damage > 200
self.damage -= 200
end
3,第三种就是要变量,battle3 里这样写
if self.states.include?(66)
$game_variables[30] = self.damage
$game_variables[29] -= $game_variables[30]
if $game_variables[29] <= 0
self.damage = self.damage
else
self.damage = 1
end
end
if self.states.include?(66)
$game_variables[30] = self.damage
$game_variables[29] -= $game_variables[30]
if $game_variables[29] <= 0
self.damage = self.damage
else
self.damage = 1
end
end
66号状态为盾状态,29号变量为存储盾的血量,30号变量存储当前一次伤害值,设置一个公共事件:
当29号变量小于等于0时,赋予29号变量值 =1000 (盾的血量,要多少写多少),护盾技能带上这个公共事件,亲测有用
作者: 契约师Vi 时间: 2020-2-10 19:49
本帖最后由 契约师Vi 于 2020-2-10 20:39 编辑
在Gamebattle3里添加 第一种比例减伤确实可行,但是少了个end这个放“self.hp -= self.damage”,上下都可以
“self.hp -= self.damage”第三种和第二种必须放在这个的上面不然,只会显示显示数值正确但是,血量依然被扣
作者: 契约师Vi 时间: 2020-2-10 20:51
没事 我放的位置问题
作者: 契约师Vi 时间: 2020-2-10 20:56
if self.states.include?(17)
$game_variables[30] = self.damage
$game_variables[29] -= $game_variables[30]
if $game_variables[29] <= 0
self.damage = 0 - $game_variables[29] #这一击减掉就可以完美实现护盾减伤
else
self.damage = 0
end
end
但是我还有一个问题就是能不能添加一个护盾的显示数值
作者: 坏数据 时间: 2020-2-11 00:47
我在VA写过 有点乱而且不是XP的就不整理发出来了
基本思路就是 给角色一个类似@hp的变量 然后之后你可以随便操作它了
判断伤害的时候护盾不为0就先扣护盾
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |