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

Project1

 找回密码
 注册会员
搜索

求教货币单位进位的处理方式

查看数: 3131 | 评论数: 4 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-7-21 17:43

正文摘要:

我想做出单一货币的进位效果,比如网游里常见的:1金币=100银币=10000铜币(百进制),或者在古代背景里适用的:1贯=1000文(千进制),或者现实背景下的:1元=10角=100分(十进制) 在论坛搜了一下,关于货币的帖 ...

回复

雷欧亦炫 发表于 2013-9-7 07:48:52
不懂,有完整脚本吗?原脚本我不会改...

点评

然後4樓就是完整腳本阿....  发表于 2013-9-7 10:26
你挖坟了..........  发表于 2013-9-7 10:25
喵呜喵5 发表于 2013-7-21 21:00:32
本帖最后由 喵呜喵5 于 2013-9-7 15:31 编辑

关于你的第二个问题,把脚本改成这样就好了

RUBY 代码复制
  1. sprintf("%03d贯%03d文",value/1000, value % 1000)


当然,我个人是喜欢这么来显示,你可以试试看(把脚本插到main以上你的脚本以下就可以了)

RUBY 代码复制
  1. =begin
  2.  
  3. ===============================================================================
  4.  元角分 By喵呜喵5
  5. ===============================================================================
  6.  
  7. 【说明】
  8.  
  9. 把金钱的显示方式修改成了XX元XX角XX分这样的形式
  10.  
  11. =end
  12.  
  13. module M5Money
  14. #==============================================================================
  15. #  设定部分
  16. #==============================================================================
  17.  
  18.   RATE  = 10
  19.  
  20.   #设定进制,例如10分=1角、10角=1元的时候就把上方的数字设置成10
  21.  
  22.   FEN = "分"
  23.   #设定游戏中1G所对应的单位,默认获得1G即获得1分钱
  24.  
  25.   JIAO = "角"
  26.   #设定游戏中1G*RATE所对应的单位
  27.  
  28.   YUAN = "元"
  29.   #设定游戏中1G*RATE*RATE所对应的单位
  30.  
  31. #==============================================================================
  32. #  设定结束
  33. #==============================================================================
  34. #==============================================================================
  35. #  脚本部分
  36. #==============================================================================
  37. end
  38.  
  39. class Window_Gold < Window_Base
  40.   def refresh
  41.     contents.clear
  42.     draw_currency_value("",m5_gain_gold($game_party.gold),4, 0,
  43.     contents.width - 8)
  44.   end  
  45.   def m5_gain_gold(gold)
  46.     yuan = gold / ( M5Money::RATE * M5Money::RATE)
  47.     val = (yuan == 0 ? "" : yuan.to_s + M5Money::YUAN )
  48.     jiao = (gold / M5Money::RATE) % M5Money::RATE
  49.     val += (jiao == 0 ? "" : jiao.to_s + M5Money::JIAO )
  50.     fen = gold % ( M5Money::RATE )
  51.     val += fen.to_s + M5Money::FEN
  52.   end
  53. end
  54. class << BattleManager
  55.   def gain_gold
  56.     if $game_troop.gold_total > 0
  57.       gold = $game_troop.gold_total
  58.       yuan = gold / ( M5Money::RATE * M5Money::RATE)
  59.       val = (yuan == 0 ? "" : yuan.to_s + M5Money::YUAN )
  60.       jiao = (gold / M5Money::RATE) % M5Money::RATE
  61.       val += (jiao == 0 ? "" : jiao.to_s + M5Money::JIAO )
  62.       fen = gold % ( M5Money::RATE )
  63.       val += fen.to_s + M5Money::FEN
  64.       text = '获得了' + val
  65.       $game_message.add('\.' + text)
  66.       $game_party.gain_gold($game_troop.gold_total)
  67.     end
  68.     wait_for_message
  69.   end
  70. end

点评

说的也是,稍微修改了一下……  发表于 2013-9-7 15:32
還要修改戦鬥後處理,不然戦鬥後所得可能顕示幾千幾万文  发表于 2013-9-7 08:48
感谢!效果很好,弄明白了不少  发表于 2013-7-21 21:21

评分

参与人数 1梦石 +1 收起 理由
Sion + 1 效果很好

查看全部评分

喵呜喵5 发表于 2013-7-21 20:36:38
消除真实数字把Window_Gold第27行改成
  1. draw_currency_value("", currency_unit, 4, 0, contents.width - 8)
复制代码
应该就可以了……

点评

成功了,非常感谢!  发表于 2013-7-21 20:41
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-17 18:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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