Project1

标题: 攻击附加状态为什么不好使了 [打印本页]

作者: yjl494356020    时间: 2012-9-27 13:39
标题: 攻击附加状态为什么不好使了
如题,当设置了攻击附加某一状态时,攻击附加不了状态,怎么回事呢...
作者: Password    时间: 2012-9-27 13:46
敌人的对这个状态的状态抗性太高。
作者: yjl494356020    时间: 2012-9-27 14:20
Password 发表于 2012-9-27 13:46
敌人的对这个状态的状态抗性太高。

应该不是抗性的关系,用技能打就会中该状态,换成攻击附加就中不了。。。
作者: yjl494356020    时间: 2012-9-27 15:11
yjl494356020 发表于 2012-9-27 14:20
应该不是抗性的关系,用技能打就会中该状态,换成攻击附加就中不了。。。 ...

真的不是抗性的问题,调到最低还是不行,换成技能就每次都中状态。。。就攻击附加不行。。。前几天还是好使的,是不是脚本冲突了?我是脚本小白,麻烦帮看下是不是这个有冲突。
  1. #==============================================================================
  2. # ■ Game_Battler
  3. #------------------------------------------------------------------------------
  4. #  处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
  5. #==============================================================================

  6. class Game_Battler < Game_BattlerBase
  7.   #--------------------------------------------------------------------------
  8.   # ● 应用技能/物品的效果
  9.   #--------------------------------------------------------------------------
  10.   def item_apply(user, item)
  11.     @result.clear
  12.     @result.used = item_test(user, item)
  13.     @result.missed = (@result.used && rand >= item_hit(user, item))
  14.     @result.evaded = ([email protected] && rand < item_eva(user, item))
  15.     special_state(user, item) # 添加本行,调用自定义函数special_state
  16.     if @result.hit?
  17.       unless item.damage.none?
  18.         @result.critical = (rand < item_cri(user, item))
  19.         make_damage_value(user, item)
  20.         execute_damage(user)
  21.       end
  22.       item.effects.each {|effect| item_effect_apply(user, item, effect) }
  23.       item_user_effect(user, item)
  24.     end
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 特技附加指定的状态效果(自定义函数)
  28.   #--------------------------------------------------------------------------
  29.   def special_state(user, item)
  30.     return unless item.is_a?(RPG::Skill)   
  31.     case item.id                           
  32.     when 157                              
  33.       user.add_state(191) if rand(100) < 30
  34.     when 158                                
  35.       user.add_state(191) if rand(100) < 45
  36.     when 159            
  37.       user.add_state(193) if rand(100) < 60
  38.     when 190                                
  39.       user.add_state(194) if rand(100) < 30
  40.     when 191            
  41.       user.add_state(195) if rand(100) < 45      
  42.     when 192                                
  43.       user.add_state(196) if rand(100) < 60
  44.     when 206            
  45.       user.add_state(197) if rand(100) < 30
  46.     when 207                                
  47.       user.add_state(198) if rand(100) < 45
  48.     when 208            
  49.       user.add_state(199) if rand(100) < 60      
  50.     when 266                                
  51.       user.add_state(200) if rand(100) < 30
  52.     when 267            
  53.       user.add_state(201) if rand(100) < 45     
  54.     when 268            
  55.       user.add_state(202) if rand(100) < 60      
  56.     when 278                              
  57.       user.add_state(203) if rand(100) < 30
  58.     when 279            
  59.       user.add_state(204) if rand(100) < 45
  60.     when 280                              
  61.       user.add_state(205) if rand(100) < 60
  62.     when 291            
  63.       user.add_state(206) if rand(100) < 30      
  64.     when 292                              
  65.       user.add_state(207) if rand(100) < 45
  66.     when 293            
  67.       user.add_state(208) if rand(100) < 60           
  68.     when 304                                
  69.       user.add_state(209) if rand(100) < 30
  70.     when 305           
  71.       user.add_state(210) if rand(100) < 45      
  72.     when 306                                
  73.       user.add_state(211) if rand(100) < 60
  74.     when 334            
  75.       user.add_state(212) if rand(100) < 30   
  76.     when 335                                
  77.       user.add_state(213) if rand(100) < 45
  78.     when 336            
  79.       user.add_state(214) if rand(100) < 60         
  80.     end  
  81.   end  
  82. end  

  83. #==============================================================================
  84. # ■ Game_BattlerBase
  85. #------------------------------------------------------------------------------
  86. #  管理战斗者的类。主要含有能力值计算的方法。Game_Battler 类的父类。
  87. #==============================================================================

  88. class Game_BattlerBase
  89.   #--------------------------------------------------------------------------
  90.   # ● 判定是否足够扣除技能的使用消耗
  91.   #--------------------------------------------------------------------------
  92.   def skill_cost_payable?(skill)
  93.     return true if self.state?(26) and skill.id == 128
  94.     tp >= skill_tp_cost(skill) and mp >= skill_mp_cost(skill)
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 扣除技能的使用消耗
  98.   #--------------------------------------------------------------------------
  99.   def pay_skill_cost(skill)
  100.     self.mp -= skill_mp_cost(skill) unless self.state?(26) and skill.id == 128
  101.     self.tp -= skill_tp_cost(skill)
  102.   end
  103. end  

  104. #==============================================================================
  105. # ■ Game_Battler
  106. #------------------------------------------------------------------------------
  107. #  处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
  108. #==============================================================================

  109. class Game_Battler < Game_BattlerBase
  110.   #--------------------------------------------------------------------------
  111.   # ● 计算伤害
  112.   #--------------------------------------------------------------------------
  113.   def make_damage_value(user, item)
  114.     value = item.damage.eval(user, self, $game_variables)
  115.     value += 1000 if item.is_a?(RPG::Skill) and item.id == 127 and user.state?(27)
  116.     value *= item_element_rate(user, item)
  117.     value *= pdr if item.physical?
  118.     value *= mdr if item.magical?
  119.     value *= rec if item.damage.recover?
  120.     value = apply_critical(value) if @result.critical
  121.     value = apply_variance(value, item.damage.variance)
  122.     value = apply_guard(value)
  123.     @result.make_damage(value.to_i, item)
  124.   end
  125. end  
复制代码

作者: Password    时间: 2012-9-27 15:29
yjl494356020 发表于 2012-9-27 15:11
真的不是抗性的问题,调到最低还是不行,换成技能就每次都中状态。。。就攻击附加不行。。。前 ...

我是脚本盲……{:2_276:}
能不能在主角用的武器上附加状态
作者: yjl494356020    时间: 2012-9-27 15:43
Password 发表于 2012-9-27 15:29
我是脚本盲……
能不能在主角用的武器上附加状态

{:2_270:}额,武器附加状态也不管用。。。只有技能附加的状态好使。。。
作者: 345912390    时间: 2012-9-27 15:51
yjl494356020 发表于 2012-9-27 15:11
真的不是抗性的问题,调到最低还是不行,换成技能就每次都中状态。。。就攻击附加不行。。。前 ...

这个脚本应该是状态几率脚本吧。
脚本中的
def special_state(user, item)
设了部分状态的成功几率!
换个不存在几率的状态试试!
作者: yjl494356020    时间: 2012-9-27 16:13
345912390 发表于 2012-9-27 15:51
这个脚本应该是状态几率脚本吧。
脚本中的
def special_state(user, item)

之前不好使的附加状态都不是这里的。。
作者: 345912390    时间: 2012-9-27 17:00
本帖最后由 345912390 于 2012-9-27 17:19 编辑

那就帮不了你了
作者: yjl494356020    时间: 2012-9-27 17:19
345912390 发表于 2012-9-27 17:00
你试一下修改脚本是中的def special_state(user, item)

改完之后普通攻击会导致自己死亡...
作者: 345912390    时间: 2012-9-27 17:51
yjl494356020 发表于 2012-9-27 17:19
改完之后普通攻击会导致自己死亡...

第一种【武器】里加入状态时不行。
与你上面的脚本没关系

第二种【武器】 加入【技能】而【技能】 符加了【状态】 时 不行
这个系统好像本来就支持。

{:2_276:}上一楼的回复是我理解错了,我自己删了,不好意思呀!
作者: yjl494356020    时间: 2012-9-27 21:58
345912390 发表于 2012-9-27 17:51
第一种【武器】里加入状态时不行。
与你上面的脚本没关系

额额,没事~
作者: yjl494356020    时间: 2012-9-28 10:44
好像和这个脚本没关系啊,删除这个脚本还是不行...到底怎么回事呀~坐等高人指点一二。。。
作者: 逆天RPG    时间: 2012-9-29 01:45
毫无问题,你用新的工程试试看,被攻击者某状态抗性100%的意思是附加某状态的几率X100%,被攻击者某状态抗性10%的意思是附加某状态的几率X10%。也就是抗性数字越大中状态的几率越高。
作者: feizhaodan    时间: 2012-9-29 12:10
user.add_state是使使用者增加状态。确定没问题么
作者: yjl494356020    时间: 2012-9-29 16:24
逆天RPG 发表于 2012-9-29 01:45
毫无问题,你用新的工程试试看,被攻击者某状态抗性100%的意思是附加某状态的几率X100%,被攻击者某状态抗 ...

设置成100%也不中状态,只要用技能打就会中,用普通攻击附加就中不了。
作者: yjl494356020    时间: 2012-9-30 23:18
还是没有解决呢~大家帮帮忙啊。。。实在是不知道怎么办了~
作者: 逆天RPG    时间: 2012-10-24 13:01
yjl494356020 发表于 2012-9-29 16:24
设置成100%也不中状态,只要用技能打就会中,用普通攻击附加就中不了。

你用过新工程了吗




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