Project1

标题: 在线等!使用一个物品后,如何能让角色增加抗性,如:... [打印本页]

作者: a107480098    时间: 2014-11-20 20:43
标题: 在线等!使用一个物品后,如何能让角色增加抗性,如:...
在线等!我想在游戏里添加一个变身卡的物品,当角色使用后能让角色增加抗性,如:抗混乱+10%、抗遗忘+8%等等???(变身卡)应该怎么弄?应该设置哪里?谢谢?
作者: chd114    时间: 2014-11-21 17:42
是状态抗性?满了之后免疫这个状态?可是RMXP的状态有效度是ABCDEF6个等级来算的···
作者: 芯☆淡茹水    时间: 2014-11-21 23:57
这个没有试过:
  1. #=============================================================================
  2. # 状态防御度额外添加
  3. #
  4. # 给某个角色增加对某个状态的防御度:
  5. #          $game_party.actors[索引].set_state_ranks(状态ID, 增加的百分比)
  6. #    或:  $game_actors[索引].set_state_ranks(状态ID, 增加的百分比)
  7. #
  8. # 可以写在公共事件里,物品关联公共事件。
  9. #
  10. # 这个是永久增加,若只需临时增加,在解除时,把括号里的 增加的百分比 改成相对应
  11. #的负值(正值是增加;负值是减少)。
  12. #
  13. #=============================================================================
  14. class Game_Battler
  15.   #--------------------------------------------------------------------------
  16.   # ● 状态变化 (+) 的适用
  17.   #     plus_state_set  : 状态变化 (+)
  18.   #--------------------------------------------------------------------------
  19.   def states_plus(plus_state_set)
  20.     # 清除有效标志
  21.     effective = false
  22.     # 循环 (附加状态)
  23.     for i in plus_state_set
  24.       # 无法防御本状态的情况下
  25.       unless self.state_guard?(i)
  26.         # 这个状态如果不是 full 的话就设置有效标志
  27.         effective |= self.state_full?(i) == false
  28.         # 状态为 [不能抵抗] 的情况下
  29.         if $data_states[i].nonresistance
  30.           # 设置状态变化标志
  31.           @state_changed = true
  32.           # 附加状态
  33.           add_state(i)
  34.         # 这个状态不是 full 的情况下
  35.         elsif self.state_full?(i) == false
  36.           # 将状态的有效度变换为概率、与随机数比较
  37.           if rand(100) < self.state_ranks[i]
  38.             # 设置状态变化标志
  39.             @state_changed = true
  40.             # 附加状态
  41.             add_state(i)
  42.           end
  43.         end
  44.       end
  45.     end
  46.     # 过程结束
  47.     return effective
  48.   end
  49. end
  50. #=============================================================================
  51. class Game_Actor < Game_Battler
  52.   #--------------------------------------------------------------------------
  53.   # ● 设置
  54.   #     actor_id : 角色 ID
  55.   #--------------------------------------------------------------------------
  56.   alias add_setup_xdrs setup
  57.   def setup(actor_id)
  58.     add_setup_xdrs(actor_id)
  59.     @state_ranks = [0]
  60.     for i in 1...$data_states.size
  61.       @state_ranks[i] = [0,100,80,60,40,20,0]$data_classes[@class_id].state_ranks[i]
  62.     end
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 获取状态有效度
  66.   #--------------------------------------------------------------------------
  67.   def state_ranks
  68.     return @state_ranks
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 改变状态有效度
  72.   # state_id  :状态ID。
  73.   # rate      :增加的量。(正值增加对该状态的防御;负值渐少对该状态的防御)
  74.   #--------------------------------------------------------------------------
  75.   def set_state_ranks(state_id, rate)
  76.     return if @state_ranks[state_id].nil?
  77.     @state_ranks[state_id] = [[@state_ranks[state_id]-rate, 0].max, 100].min
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 更改职业 ID
  81.   #     class_id : 新的职业 ID
  82.   #--------------------------------------------------------------------------
  83.   def class_id=(class_id)
  84.     if $data_classes[class_id] != nil
  85.       @class_id = class_id
  86.       @state_ranks = [0]
  87.       for i in 1...$data_states.size
  88.         @state_ranks[i] = [0,100,80,60,40,20,0]$data_classes[@class_id].state_ranks[i]
  89.       end
  90.       # 避开无法装备的物品
  91.       unless equippable?($data_weapons[@weapon_id])
  92.         equip(0, 0)
  93.       end
  94.       unless equippable?($data_armors[@armor1_id])
  95.         equip(1, 0)
  96.       end
  97.       unless equippable?($data_armors[@armor2_id])
  98.         equip(2, 0)
  99.       end
  100.       unless equippable?($data_armors[@armor3_id])
  101.         equip(3, 0)
  102.       end
  103.       unless equippable?($data_armors[@armor4_id])
  104.         equip(4, 0)
  105.       end
  106.     end
  107.   end
  108. end
  109. #==============================================================================
  110. class Game_Enemy < Game_Battler
  111.   #--------------------------------------------------------------------------
  112.   # ● 初始化对像
  113.   #     troop_id     : 循环 ID
  114.   #     member_index : 循环成员的索引
  115.   #--------------------------------------------------------------------------
  116.   alias add_initialize_xdrs initialize
  117.   def initialize(troop_id, member_index)
  118.     add_initialize_xdrs(troop_id, member_index)
  119.     @state_ranks = [0]
  120.     for i in 1...$data_states.size
  121.       @state_ranks[i] = [0,100,80,60,40,20,0]$data_enemies[@enemy_id].state_ranks[i]
  122.     end
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 获取状态有效度
  126.   #--------------------------------------------------------------------------
  127.   def state_ranks
  128.     return @state_ranks
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ● 改变状态有效度
  132.   # state_id  :状态ID。
  133.   # rate      :增加的量。(正值增加对该状态的防御;负值渐少对该状态的防御)
  134.   #--------------------------------------------------------------------------
  135.   def set_state_ranks(state_id, rate)
  136.     return if @state_ranks[state_id].nil?
  137.     @state_ranks[state_id] = [[@state_ranks[state_id]-rate, 0].max, 100].min
  138.   end
  139. end
  140. #==============================================================================
复制代码

作者: a107480098    时间: 2014-11-22 19:37
芯☆淡茹水 发表于 2014-11-21 23:57
这个没有试过:

谢谢,由于刚开电脑,就看到你的回复,我试试。
作者: a107480098    时间: 2014-11-22 20:00
芯☆淡茹水 发表于 2014-11-21 23:57
这个没有试过:

能否举个范例。谢谢!
作者: 芯☆淡茹水    时间: 2014-11-22 21:00
貌似是这样子:
Project1.rar (414.94 KB, 下载次数: 43)




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