Project1

标题: 求一个无敌状态的脚本 [打印本页]

作者: 3526714    时间: 2015-3-1 02:59
标题: 求一个无敌状态的脚本
最好把使用方法也告诉下  小白一只
作者: RyanBern    时间: 2015-3-1 09:16
按照以下方式设定即可。此方法未测试。
1.Main前插入以下脚本。
RUBY 代码复制
  1. class Game_Battler
  2.   def invisible?
  3.     state?(17)  # 17号状态是无敌状态,对角色敌人均有效。
  4.   end
  5. end

2.搜索这句话"self.hp -= self.damage",应该有三个地方,把它改成下面的:
RUBY 代码复制
  1. self.hp -= self.damage if !invisible? || self.damage < 0

搜索这句话"self.hp += recover_hp",应该有一个地方,把它改成下面的:
RUBY 代码复制
  1. self.hp += recover_hp if !invisible? || recover_hp > 0

注:无敌状态下,所有攻击掉血的效果均无效,中毒连续掉血也是没有效果的。不过依然会显示掉血的数值。
如果通过事件强制增减HP,则增减HP效果依然有效。
此无敌状态不能防止状态附加,如果要让它也能防止状态附加,那么请在数据库中将无敌状态的状态变化中的其他状态都设置为'-'。
作者: 上贺茂润    时间: 2015-3-1 10:22
横版自带 你全局找无敌就有
作者: 芯☆淡茹水    时间: 2015-3-1 12:44
本帖最后由 芯☆淡茹水 于 2015-3-1 13:11 编辑

直接这样就可以用了啊
无敌状态敌我都有效,无敌状态下伤害显示“无效”。无论是战斗减HP还是事件减HP,都无效。《未测试》
  1. #==============================================================================
  2. class Game_Battler
  3.   #--------------------------------------------------------------------------
  4.   def invisible?
  5.     state?(17)  # 17号状态是无敌状态,对角色敌人均有效。
  6.   end
  7.   #--------------------------------------------------------------------------
  8.   # ● 更改 HP
  9.   #     hp : 新的 HP
  10.   #--------------------------------------------------------------------------
  11.   def hp=(hp)
  12.     if hp < @hp and invisible?
  13.       @damage = "无效" if @damage
  14.       return
  15.     end
  16.     @hp = [[hp, maxhp].min, 0].max
  17.     # 解除附加的战斗不能状态
  18.     for i in 1...$data_states.size
  19.       if $data_states[i].zero_hp
  20.         if self.dead?
  21.           add_state(i)
  22.         else
  23.           remove_state(i)
  24.         end
  25.       end
  26.     end
  27.   end
  28. end
  29. #==============================================================================
复制代码

作者: 573932914    时间: 2015-3-1 20:55
无敌,100%血100%防御攻击什么的不就行了
作者: 3526714    时间: 2015-3-3 04:46
已解决  谢谢各位




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1