设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3516|回复: 7
打印 上一主题 下一主题

[已经解决] 请问如何做状态免疫

[复制链接]

Lv1.梦旅人

~琉璃の雪~<

梦石
0
星屑
49
在线时间
36 小时
注册时间
2008-11-6
帖子
3678
跳转到指定楼层
1
发表于 2012-1-7 17:25:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
2星屑
效果:
就是假设一个敌人中了18号状态,我方要给这个敌人施加一个20号状态就施加不上了。
但是如果这个敌人没有中18号状态,或者18号状态已经结束,则我方依旧能给这个敌人施加20号状态。

最佳答案

查看完整内容

汗...不小心打错了个字母
~现在开始自绘头像~

Lv1.梦旅人

梦石
0
星屑
145
在线时间
698 小时
注册时间
2009-11-15
帖子
538
2
发表于 2012-1-7 17:25:44 | 只看该作者
本帖最后由 2719358 于 2012-1-8 07:18 编辑
夏季冰川 发表于 2012-1-8 03:34

汗...不小心打错了个字母
  1. # Shuen.Hoy (2719358|浩然)出品
  2. module HawRan
  3.   module State
  4.     Def_state = {
  5.                   18=>20 #=>前为判定的ID,20后为限制ID
  6.                 }
  7.   end
  8. end
  9. class Game_Battler
  10.    #--------------------------------------------------------------------------
  11.   # ● 附加状态
  12.   #     state_id : 状态 ID
  13.   #     force    : 强制附加标志 (处理自动状态时使用)
  14.   #--------------------------------------------------------------------------
  15.   def add_state(state_id, force = false)
  16.     # 无效状态的情况下
  17.     if $data_states[state_id] == nil
  18.       # 过程结束
  19.       return
  20.     end
  21.    
  22.     # 无法强制附加的情况下
  23.     unless force
  24.       # 已存在的状态循环
  25.       for i in @states
  26.         if HawRan::State::Def_state.key?(i)
  27.           if HawRan::State::Def_state[i]==state_id
  28.             return
  29.           end
  30.         end
  31.         # 新的状态和已经存在的状态 (-) 同时包含的情况下、
  32.         # 本状态不包含变化为新状态的状态变化 (-)
  33.         # (ex : 战斗不能与附加中毒同时存在的场合)
  34.         if $data_states[i].minus_state_set.include?(state_id) and
  35.            not $data_states[state_id].minus_state_set.include?(i)
  36.           # 过程结束
  37.           return
  38.         end
  39.       end
  40.     end
  41.     # 无法附加本状态的情况下
  42.     unless state?(state_id)
  43.       # 状态 ID 追加到 @states 序列中
  44.       @states.push(state_id)
  45.       # 选项 [当作 HP 0 的状态] 有效的情况下
  46.       if $data_states[state_id].zero_hp
  47.         # HP 更改为 0
  48.         @hp = 0
  49.       end
  50.       # 所有状态的循环
  51.       for i in 1...$data_states.size
  52.         # 状态变化 (+) 处理
  53.         if $data_states[state_id].plus_state_set.include?(i)
  54.           add_state(i)
  55.         end
  56.         # 状态变化 (-) 处理
  57.         if $data_states[state_id].minus_state_set.include?(i)
  58.           remove_state(i)
  59.         end
  60.       end
  61.       # 按比例大的排序 (值相等的情况下按照强度排序)
  62.       @states.sort! do |a, b|
  63.         state_a = $data_states[a]
  64.         state_b = $data_states[b]
  65.         if state_a.rating > state_b.rating
  66.           -1
  67.         elsif state_a.rating < state_b.rating
  68.           +1
  69.         elsif state_a.restriction > state_b.restriction
  70.           -1
  71.         elsif state_a.restriction < state_b.restriction
  72.           +1
  73.         else
  74.           a <=> b
  75.         end
  76.       end
  77.     end
  78.     # 强制附加的场合
  79.     if force
  80.       # 设置为自然解除的最低回数 -1 (无效)
  81.       @states_turn[state_id] = -1
  82.     end
  83.     # 不能强制附加的场合
  84.     unless  @states_turn[state_id] == -1
  85.       # 设置为自然解除的最低回数
  86.       @states_turn[state_id] = $data_states[state_id].hold_turn
  87.     end
  88.     # 无法行动的场合
  89.     unless movable?
  90.       # 清除行动
  91.       @current_action.clear
  92.     end
  93.     # 检查 HP 及 SP 的最大值
  94.     @hp = [@hp, self.maxhp].min
  95.     @sp = [@sp, self.maxsp].min
  96.   end
  97. end
复制代码
考上三级了!
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2774
在线时间
1605 小时
注册时间
2010-10-22
帖子
1059
3
发表于 2012-1-7 17:54:22 | 只看该作者
不是在18号状态里设置状态变化为“-20号状态”吗?

【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
145
在线时间
698 小时
注册时间
2009-11-15
帖子
538
4
发表于 2012-1-7 18:15:20 | 只看该作者
  1. # Shuen.Hoy (2719358|浩然)出品
  2. module HawRan
  3.   module State
  4.     Def_stare = {
  5.                   18=>20 #=>前为判定的ID,20后为限制ID
  6.                 }
  7.   end
  8. end
  9. class Game_Battler
  10.    #--------------------------------------------------------------------------
  11.   # ● 附加状态
  12.   #     state_id : 状态 ID
  13.   #     force    : 强制附加标志 (处理自动状态时使用)
  14.   #--------------------------------------------------------------------------
  15.   def add_state(state_id, force = false)
  16.     # 无效状态的情况下
  17.     if $data_states[state_id] == nil
  18.       # 过程结束
  19.       return
  20.     end
  21.    
  22.     # 无法强制附加的情况下
  23.     unless force
  24.       # 已存在的状态循环
  25.       for i in @states
  26.         if HawRan::Stare::Def_stare.key?(i)
  27.           if HawRan::Stare::Def_stare[i]==state_id
  28.             return
  29.           end
  30.         end
  31.         # 新的状态和已经存在的状态 (-) 同时包含的情况下、
  32.         # 本状态不包含变化为新状态的状态变化 (-)
  33.         # (ex : 战斗不能与附加中毒同时存在的场合)
  34.         if $data_states[i].minus_state_set.include?(state_id) and
  35.            not $data_states[state_id].minus_state_set.include?(i)
  36.           # 过程结束
  37.           return
  38.         end
  39.       end
  40.     end
  41.     # 无法附加本状态的情况下
  42.     unless state?(state_id)
  43.       # 状态 ID 追加到 @states 序列中
  44.       @states.push(state_id)
  45.       # 选项 [当作 HP 0 的状态] 有效的情况下
  46.       if $data_states[state_id].zero_hp
  47.         # HP 更改为 0
  48.         @hp = 0
  49.       end
  50.       # 所有状态的循环
  51.       for i in 1...$data_states.size
  52.         # 状态变化 (+) 处理
  53.         if $data_states[state_id].plus_state_set.include?(i)
  54.           add_state(i)
  55.         end
  56.         # 状态变化 (-) 处理
  57.         if $data_states[state_id].minus_state_set.include?(i)
  58.           remove_state(i)
  59.         end
  60.       end
  61.       # 按比例大的排序 (值相等的情况下按照强度排序)
  62.       @states.sort! do |a, b|
  63.         state_a = $data_states[a]
  64.         state_b = $data_states[b]
  65.         if state_a.rating > state_b.rating
  66.           -1
  67.         elsif state_a.rating < state_b.rating
  68.           +1
  69.         elsif state_a.restriction > state_b.restriction
  70.           -1
  71.         elsif state_a.restriction < state_b.restriction
  72.           +1
  73.         else
  74.           a <=> b
  75.         end
  76.       end
  77.     end
  78.     # 强制附加的场合
  79.     if force
  80.       # 设置为自然解除的最低回数 -1 (无效)
  81.       @states_turn[state_id] = -1
  82.     end
  83.     # 不能强制附加的场合
  84.     unless  @states_turn[state_id] == -1
  85.       # 设置为自然解除的最低回数
  86.       @states_turn[state_id] = $data_states[state_id].hold_turn
  87.     end
  88.     # 无法行动的场合
  89.     unless movable?
  90.       # 清除行动
  91.       @current_action.clear
  92.     end
  93.     # 检查 HP 及 SP 的最大值
  94.     @hp = [@hp, self.maxhp].min
  95.     @sp = [@sp, self.maxsp].min
  96.   end
  97. end
复制代码
考上三级了!
回复

使用道具 举报

Lv1.梦旅人

~琉璃の雪~<

梦石
0
星屑
49
在线时间
36 小时
注册时间
2008-11-6
帖子
3678
5
 楼主| 发表于 2012-1-8 03:34:16 | 只看该作者
~现在开始自绘头像~
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3176
在线时间
1442 小时
注册时间
2009-7-27
帖子
1454
6
发表于 2012-1-8 14:19:15 | 只看该作者
要免疫什么状态,只要在那个状态弄个 - 号即可在此状态的情况下免疫那个 - 号的状态。

博客:我的博客
回复

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

7
发表于 2012-1-8 14:20:16 | 只看该作者
在那个状态把状态变化中免疫的状态加上负号即可……
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2012-1-21
帖子
67
8
发表于 2012-1-22 14:01:01 | 只看该作者
以上。。都说的很好了。。。

评分

参与人数 1星屑 -40 收起 理由
忧雪の伤 -40 新年特价酱油瓶 谢谢惠顾

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-25 18:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表