Project1
标题:
rmxp 异常状态免疫法术如何用状态+公用事件处理
[打印本页]
作者:
89444640
时间:
2014-7-30 13:55
标题:
rmxp 异常状态免疫法术如何用状态+公用事件处理
被打了N种异常状态后,想想,除了装备上可以+xx免疫的能力
可否只使用状态+公用事件制作增加N回合异常状态免疫的法术或道具呢?
另外可否只使用状态+公用事件制作N次绝对防御或者N次物理(魔法)防御的法术或道具呢?
脚本冲突太多实在是不敢用,不过有相关脚本的话可以试试。
作者:
芯☆淡茹水
时间:
2014-7-30 15:03
#==============================================================================
class Game_Actor < Game_Battle
#----------------------------------------------------------------------------
#下面设置:状态ID => [所防御的状态ID] .比如下面的 13=>[4,5,6] ,表示如果角色有
# 13 号状态,那么该角色就防御 4号,5号,6号 状态。
STATE_GUARD = {13=>[4,5,6], 14=>[8,9]}
#--------------------------------------------------------------------------
def state_guard?(state_id)
for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
armor = $data_armors[i]
if armor != nil
if armor.guard_state_set.include?(state_id)
return true
end
end
end
for id in STATE_GUARD.keys
if state?(id)
return true if STATE_GUARD[id].include?(state_id)
end
end
return false
end
end
#==============================================================================
复制代码
作者:
1335557777
时间:
2014-7-30 15:19
本帖最后由 1335557777 于 2014-7-30 15:22 编辑
可以啊,在
数据库-》队伍-》(选择你想要让自己免疫的敌人队伍)-》开始条件-》战斗 N 回合后-》(把它打开)
然后在
数据库-》队伍-》(选择你想要让自己免疫的敌人队伍)-》(事件编辑区)-》(变量操作:【0001:血量】=【001:阿尔西斯:hp】)-》(完全恢复)-》(体力增减:代入【0001:血量】)
测试一下,这样可以的
作者:
RyanBern
时间:
2014-7-30 16:08
本帖最后由 RyanBern 于 2014-8-3 11:07 编辑
第一个问题,要好好利用数据库的功能,无需使用脚本。方法如下:
设置一个状态,这个状态的作用是“抵抗所有其他状态”(当然战斗不能除外)。然后把右侧【状态变化】一栏里面的所有你需要抵抗的状态都打上“-”号。这样该状态就可以完全防御其他状态了。
第二个问题,如果是完全防御,需要动用脚本才行。但是如果仅仅是防御(伤害减半)的话,也可以通过数据库设置。方法是在数据库->状态一栏的【属性防御】勾选√即可。不过,这样防止不了纯物理攻击(这是因为敌人的物理攻击没有属性这一说)。
状态完全防御攻击脚本实现:
class Game_Battler
alias old_attack_effect attack_effect
def attack_effect(attacker)
# 如果1号状态能够防御主角2号属性的普通攻击
if self.state?(1) && attacker.is_a?(Game_Actor) && attacker.weapon_id != 0 && $data_weapons[attacker.weapon_id].element_set.include?(2)
self.damage = 0
return false
end
# 如果1号状态能够完全防御任何普通攻击
if self.state?(1)
self.damage = 0
return false
end
# 以上两个仅仅给出例子,如果需要修改仿照一下就可以了。
old_attack_effect(attacker)
end
alias old_skill_effect skill_effect
def skill_effect(user, skill)
# 如果1号状态能够防御2号属性的技能攻击
if self.state?(1) && skill.element_set.include?(2)
self.damage = 0
return false
end
# 以上仅仅给出例子,如果要更多的完全防御复制一下,修改几个数字即可。
end
end
复制代码
以上脚本没有考虑双属性或多属性的情况,如果一个技能是双属性【火/风】,一个状态完全防御火属性,那么这个状态也将完全防御这个技能。
作者:
89444640
时间:
2014-8-3 07:54
RyanBern 发表于 2014-7-30 16:08
第一个问题,要好好利用数据库的功能,无需使用脚本。方法如下:
设置一个状态,这个状态的作用是“抵抗所 ...
状态抵抗用此方法很简便~
那个完全防御,我方用很破坏平衡的,但是给敌人用还是可以的,我方4人敌人boss经常一个……
动脚本的情况下可以帮忙写个吗?谢谢~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1