Project1

标题: 关于第二货币和window_shopbuy的冲突 [打印本页]

作者: 木讷    时间: 2015-4-5 18:26
标题: 关于第二货币和window_shopbuy的冲突
只要第二货币脚本发动就会有如图的错误求解决。我用的第二货币脚本→
RUBY 代码复制
  1. #第二货币设置
  2. $SECOND_CURRENCY_SWITCH = 26
  3. $SECOND_CURRENCY_NAME = "魂魄"
  4. #第二货币方法
  5. class Game_Party < Game_Unit
  6.   attr_reader    :spegold
  7.   alias initialize_normal_sc initialize
  8.   def initialize
  9.     initialize_normal_sc
  10.     @spegold = 0
  11.   end
  12.   alias gain_gold_normal_sc gain_gold
  13.   def gain_gold(amount)
  14.     if $game_switches[$SECOND_CURRENCY_SWITCH]
  15.       @spegold = [[@spegold + amount, 0].max, max_gold].min
  16.     else
  17.       gain_gold_normal_sc(amount)
  18.     end
  19.   end
  20. end
  21. #第二货币的显示
  22. class Window_Gold < Window_Base
  23.   #覆盖方法!可能引起冲突
  24.   def initialize
  25.     super(0, 0, window_width, fitting_height(2))
  26.     self.opacity = 100
  27.     refresh
  28.   end
  29.   alias refresh_normal_sc refresh
  30.   def refresh
  31.     refresh_normal_sc
  32.     draw_currency_value($game_party.spegold, $SECOND_CURRENCY_NAME, 4, 24, contents.width - 8)
  33.   end
  34. end
  35. #战斗胜利不获得第二货币
  36. module BattleManager
  37. #覆盖方法!可能引起冲突
  38.   def self.gain_gold
  39.     if $game_troop.gold_total > 0
  40.       text = sprintf(Vocab::ObtainGold, $game_troop.gold_total)
  41.       $game_message.add('\.' + text)
  42.       $game_party.gain_gold_normal_sc($game_troop.gold_total)
  43.     end
  44.     wait_for_message
  45.   end
  46. end
  47.   #用第二货币买东西
  48. module RPG
  49.   class Item
  50.     def price
  51.       if $game_switches[$SECOND_CURRENCY_SWITCH]
  52.         note.split(/[\r\n]+/).each { |line|
  53.           case line
  54.           when /<第二货币价格:(\d+)>/i
  55.             return $1.to_i
  56.           end
  57.         }
  58.         return 0
  59.       else
  60.         return @price
  61.       end
  62.     end
  63.   end
  64. end
  65. #商店中购买灵魄物品显示灵魄
  66. class Window_ShopNumber < Window_Selectable
  67.   alias draw_total_price_normal_sc draw_total_price
  68.   def draw_total_price
  69.     if $game_switches[$SECOND_CURRENCY_SWITCH]
  70.       @currency_unit = $SECOND_CURRENCY_NAME
  71.     end
  72.     draw_total_price_normal_sc
  73.   end
  74. end
  75. class Scene_Shop < Scene_MenuBase
  76.   alias money_normal_sc money
  77.   def money
  78.     if $game_switches[$SECOND_CURRENCY_SWITCH]
  79.       return $game_party.spegold
  80.     else
  81.       return money_normal_sc
  82.     end
  83.   end
  84.   alias create_gold_window_normal_sc create_gold_window
  85.   def create_gold_window
  86.     create_gold_window_normal_sc
  87.     @gold_window.y -= 10
  88.   end
  89. end

QQ图片20150405182900.jpg (117.89 KB, 下载次数: 34)

错误

错误

作者: taroxd    时间: 2015-4-5 18:31
删掉存档重来试试看
作者: chd114    时间: 2015-4-5 18:39
有了这一段你就不要用以前的存档了
  1. module RPG
  2.   class Item
  3.     def price
  4.       if $game_switches[$SECOND_CURRENCY_SWITCH]
  5.         note.split(/[\r\n]+/).each { |line|
  6.           case line
  7.           when /<第二货币价格:(\d+)>/i
  8.             return $1.to_i
  9.           end
  10.         }
  11.         return 0
  12.       else
  13.         return @price
  14.       end
  15.     end
  16.   end
  17. end
复制代码

作者: 木讷    时间: 2015-4-9 21:43
chd114 发表于 2015-4-5 18:39
有了这一段你就不要用以前的存档了

谢谢已经解决




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