Project1

标题: 关于限制角色等级脚本的bug [打印本页]

作者: 穿越时空之剑    时间: 2019-6-14 06:42
标题: 关于限制角色等级脚本的bug
本帖最后由 穿越时空之剑 于 2019-6-14 06:45 编辑

到达10级以后确实不会再增加exp了,但是也不能减少exp或者降级了
我游戏设定是学额外的技能要消耗exp,而且转换职业时等级变为1,结果到了10级就可以无消耗学习技能,而且转职后等级也不变。
求教怎么改才能修复这个脚本到达等级限制后不能减exp的bug。
  1. # =============================================================================
  2. # TheoAllen - Anti Grinding System
  3. # Version : 1.0
  4. # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
  5. # (This script documentation is written in informal indonesian language)
  6. # =============================================================================
  7. ($imported ||= {})[:Theo_AntiGrind] = true
  8. # =============================================================================
  9. # CHANGE LOGS:
  10. # -----------------------------------------------------------------------------
  11. # 2013.05.22 - Started and Finished script
  12. # =============================================================================
  13. =begin

  14.   介绍:
  15.   该脚本可给角色设置等级限制
  16.   且当对应的开关打开时,这个等级限制会一直存在
  17.   
  18.   使用方法:
  19.   插入到插件脚本之下,Main之上
  20.   
  21.   使用条款:
  22.   署名脚本作者, TheoAllen. 你可以自由编辑此脚本,只要你不声明你是脚本的原作者
  23.   如果你想用此脚本于商业游戏,请和我共享收益.别忘了给我一份免费的游戏拷贝.

  24. =end
  25. # =============================================================================
  26. # 设定部分
  27. # =============================================================================
  28. module THEO
  29.   module ACTOR
  30.    
  31.     ANTI_GRIND = {
  32.     # 限制等级 => 对应开关,
  33.          10 => 34,
  34.     # 如果你写了 30 => 3,代表角色会在30级时等级不再增长
  35.     # 如果3号开关打开的话,这个限制会一直存在
  36.    
  37.     } # <-- 别碰这个
  38.   end
  39. end
  40. # =============================================================================
  41. # 设定结束
  42. # =============================================================================
  43. class Game_Actor < Game_Battler
  44.   
  45.   alias anti_grind_change_exp change_exp
  46.   def change_exp(exp, show)
  47.     if THEO::ACTOR::ANTI_GRIND.any? {|anti_grind|
  48.         anti_grind[0] <= @level &&
  49.         !$game_switches[anti_grind[1]]
  50.       }
  51.       return
  52.     end
  53.     anti_grind_change_exp(exp, show)
  54.   end
  55.   
  56. end
复制代码




作者: hyrious    时间: 2019-6-14 11:26
49 行改为
  1. if self.exp <= exp && THEO::ACTOR::ANTI_GRIND.any? {|anti_grind|
复制代码





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