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

Project1

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

[已经解决] 第二货币对装备无效

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2011-6-18
帖子
7
跳转到指定楼层
1
发表于 2014-8-29 11:01:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
脚本如下
  1. #第二货币设置
  2. $SECOND_CURRENCY_SWITCH = 100
  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
复制代码
用同样的方法在商店可以看见物品的价格,但是装备的价格却是0

Lv2.观梦者

梦石
0
星屑
540
在线时间
920 小时
注册时间
2011-5-11
帖子
438
2
发表于 2014-8-29 11:51:36 | 只看该作者
本帖最后由 345912390 于 2014-8-30 17:06 编辑

你需要对物品设置第二货币价格,在物品 的备注中输入
  1. <第二货币价格:100>#100为设置的价格
复制代码
不想在RPG::BaseItem中加入price属性就多改了一点,用以下 脚本替换你发的那个

RUBY 代码复制
  1. #第二货币设置
  2. $SECOND_CURRENCY_SWITCH = 100
  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.   class EquipItem
  65.     def price
  66.       if $game_switches[$SECOND_CURRENCY_SWITCH]
  67.         note.split(/[\r\n]+/).each { |line|
  68.           case line
  69.           when /<第二货币价格:(\d+)>/i
  70.             return $1.to_i
  71.           end
  72.         }
  73.         return 0
  74.       else
  75.         return @price
  76.       end
  77.     end
  78.   end
  79. end
  80. #商店中购买灵魄物品显示灵魄
  81. class Window_ShopNumber < Window_Selectable
  82.   alias draw_total_price_normal_sc draw_total_price
  83.   def draw_total_price
  84.     if $game_switches[$SECOND_CURRENCY_SWITCH]
  85.       @currency_unit = $SECOND_CURRENCY_NAME
  86.     end
  87.     draw_total_price_normal_sc
  88.   end
  89. end
  90. class Scene_Shop < Scene_MenuBase
  91.   alias money_normal_sc money
  92.   def money
  93.     if $game_switches[$SECOND_CURRENCY_SWITCH]
  94.       return $game_party.spegold
  95.     else
  96.       return money_normal_sc
  97.     end
  98.   end
  99.   alias create_gold_window_normal_sc create_gold_window
  100.   def create_gold_window
  101.     create_gold_window_normal_sc
  102.     @gold_window.y -= 10
  103.   end
  104. end
http://rpg.blue/static/image/smiley/yct/A059.gif中国字认识都不到一半,哪的心情学英语呀!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2011-6-18
帖子
7
3
 楼主| 发表于 2014-8-29 13:08:45 | 只看该作者
345912390 发表于 2014-8-29 11:51
你需要对物品设置第二货币价格,在物品 的备注中输入

这样对物品有用,对装备没用啊...加了这个装备的价格还是0
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-8-29 13:29:37 | 只看该作者
woshizhu99999 发表于 2014-8-29 13:08
这样对物品有用,对装备没用啊...加了这个装备的价格还是0


第49行,Item 改成 BaseItem 试试看。不过我不保证有用

评分

参与人数 1星屑 +1 收起 理由
VIPArcher + 1 黑的漂亮。

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2011-6-18
帖子
7
5
 楼主| 发表于 2014-8-30 07:33:47 | 只看该作者
taroxd 发表于 2014-8-29 13:29
第49行,Item 改成 BaseItem 试试看。不过我不保证有用

额...改了之后全部价格都变成0了
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10014
在线时间
5019 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

6
发表于 2014-9-1 14:30:12 | 只看该作者
本帖最后由 VIPArcher 于 2014-9-1 14:36 编辑
woshizhu99999 发表于 2014-8-30 07:33
额...改了之后全部价格都变成0了


试试看用这个?
  1. =begin
  2. ===============================================================================
  3.   变量商店 By喵呜喵5
  4. ===============================================================================
  5. 【说明】
  6.   
  7.   可以使用变量在商店进行购物
  8.   
  9.   首先先在事件中使用脚本命令输入:shop_set(变量的ID,"变量的单位"),例如:  
  10.   shop_set(1,"节操")
  11.   
  12.   接着使用事件中的商店处理时,购买物品不会消耗金钱而是消耗对应的变量
  13.   
  14.   使用命令shop_set可以恢复原来使用金钱购物的商店
  15.   
  16. =end
  17. $m5script = {} if $m5script.nil?
  18. $m5script["M5VARShop"] = true
  19. module M5VARShop
  20. #==============================================================================
  21. #  设定部分
  22. #==============================================================================

  23.   PRICE = false   #true
  24.   
  25.   #设置为true的情况下,变量商店物品的出售价格为【数据库中】物品售价的一半
  26.   #设置为false的情况下, 变量商店物品的出售价格为【该商店】物品售价的一半
  27.   
  28.   VAR = 1
  29.   
  30.   #这里设置一个没有使用到的变量的ID,游戏中请不要修改这个ID的变量数值

  31. #==============================================================================
  32. #  设定结束
  33. #==============================================================================
  34. end
  35. class Game_Interpreter
  36.   def shop_set(gold=0,unit="")
  37.     gold = 0 if gold == M5VARShop::VAR
  38.     $game_variables[M5VARShop::VAR]=[gold,unit]
  39.   end
  40. end
  41. class Window_Gold_New < Window_Gold
  42.   def initialize(gold,unit)
  43.     @gold,@unit = gold,unit
  44.     super()
  45.   end
  46.   def value
  47.     @gold == 0 ? super : $game_variables[@gold]   
  48.   end
  49.   def currency_unit
  50.     (@gold == 0 || @unit == "") ? super : @unit
  51.   end
  52. end
  53. class Scene_Shop
  54.   def create_gold_window
  55.     $game_variables[M5VARShop::VAR] = [0,""] if \
  56.     !$game_variables[M5VARShop::VAR].is_a?(Array)
  57.     @gold_window = Window_Gold_New.new($game_variables[M5VARShop::VAR][0],$game_variables[M5VARShop::VAR][1])
  58.     @gold_window.viewport = @viewport
  59.     @gold_window.x = Graphics.width - @gold_window.width
  60.     @gold_window.y = @help_window.height
  61.   end
  62.   alias m5_20140318_do_buy  do_buy  
  63.   def do_buy(number)
  64.     if $game_variables[M5VARShop::VAR][0] == 0
  65.       m5_20140318_do_buy(number)
  66.     else
  67.       $game_variables[$game_variables[M5VARShop::VAR][0]] -= number * buying_price
  68.       $game_party.gain_item(@item, number)
  69.     end   
  70.   end
  71.   alias m5_20140318_do_sell do_sell
  72.   def do_sell(number)
  73.     if $game_variables[M5VARShop::VAR][0] == 0
  74.       m5_20140318_do_sell(number)
  75.     else
  76.       $game_variables[$game_variables[M5VARShop::VAR][0]] += number * selling_price
  77.       $game_party.lose_item(@item, number)
  78.     end
  79.   end
  80.   alias m5_20140318_selling_price selling_price
  81.   def selling_price
  82.     return m5_20140318_selling_price if M5VARShop::PRICE || $game_variables[M5VARShop::VAR][0] == 0
  83.     buying_price / 2
  84.   end
  85. end
复制代码

评分

参与人数 1星屑 +200 收起 理由
taroxd + 200 $m5script = 0

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2011-6-18
帖子
7
7
 楼主| 发表于 2014-9-6 18:09:38 | 只看该作者
VIPArcher 发表于 2014-9-1 14:30
试试看用这个?

总感觉这个没有我现在用的好用,不过也行,感谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-22 02:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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