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

Project1

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

用中文顯示數值

 关闭 [复制链接]

Lv2.观梦者

天仙

梦石
0
星屑
610
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

跳转到指定楼层
1
发表于 2008-2-8 12:53:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如題

效果截圖:



腳本:

  1. class Window_Base < Window
  2.   #===========================================================
  3.   # 获取中文数字
  4.   # 除了10、100、1000、10000会返回其中文之外
  5.   # 只会取其参数的個位數
  6.   #===========================================================
  7.   def number_snstar(num)
  8.     ch_number_snstar = ["零", "一", "二", "三", "四",
  9.                  "五", "六", "七", "八", "九",
  10.                  "十", "百", "千", "万"]
  11.     if num == 100
  12.       return ch_number_snstar[11]
  13.     elsif num == 1000
  14.       return ch_number_snstar[12]
  15.     elsif num == 10000
  16.       return ch_number_snstar[13]
  17.     elsif num == 10
  18.       return ch_number_snstar[10]
  19.     else
  20.       return ch_number_snstar[num%10]
  21.     end
  22.   end
  23.   
  24.   # 显示中文数字
  25.   def change_to_ch(num)
  26.     return num unless num.is_a?(Integer)
  27.     if num < 0
  28.       rnum = "负 "
  29.     else
  30.       rnum = ""
  31.     end
  32.     num = num.abs

  33.     if num <= 10
  34.       return rnum+number_snstar(num)
  35.     else
  36.       # 个
  37.       ones = number_snstar(num%10)
  38.       # 十
  39.       tens = number_snstar(num/10%10)# if num%100!=0
  40.       # 百
  41.       huns = number_snstar(num/100%10)# if num%1000!=0
  42.       # 千
  43.       thos = number_snstar(num/1000%10)
  44.       # 万
  45.       tths = number_snstar(num/10000%10)
  46.       # 十万
  47.       hths = number_snstar(num/100000%10)
  48.       # 百万
  49.       mils = number_snstar(num/1000000%10)
  50.       # 千万
  51.       tmis = number_snstar(num/10000000%10)
  52.       
  53.       # 数字小於100
  54.       if num < 100
  55.         if num%10==0
  56.           rnum += tens+number_snstar(10)
  57.         else
  58.           if num<20
  59.             rnum += number_snstar(10)+ones
  60.           else
  61.             rnum += tens+number_snstar(10)+ones
  62.           end
  63.         end
  64.       end
  65.       
  66.       # 数字100~999
  67.       if num<1000 and num>=100
  68.         if num%100==0
  69.           rnum += huns+number_snstar(100)
  70.         else
  71.           if tens != number_snstar(0)
  72.             rnum += huns+number_snstar(100)+tens+number_snstar(10)+ones
  73.           else
  74.             rnum += huns+number_snstar(100)+number_snstar(0)+ones
  75.           end
  76.         end
  77.       end
  78.       
  79.       # 数字1000~9999
  80.       if num<10000 and num>=1000
  81.         if num%1000==0
  82.           rnum += thos+number_snstar(1000)
  83.         else
  84.           if huns != number_snstar(0)
  85.             if tens != number_snstar(0)
  86.               rnum += thos+number_snstar(1000)+huns+number_snstar(100)+tens+number_snstar(10)+ones
  87.             else
  88.               rnum += thos+number_snstar(1000)+huns+number_snstar(100)+tens+ones
  89.             end
  90.           else
  91.             rnum += thos+number_snstar(1000)+tens+ones
  92.           end
  93.         end
  94.       end
  95.       
  96.       # 数字10000~99999
  97.       if num>=10000
  98.         if num%10000==0
  99.           rnum += tths+number_snstar(10000)
  100.         else
  101.           if tths != number_snstar(0)
  102.             if thos != number_snstar(0)
  103.               if huns != number_snstar(0)
  104.                 if tens != number_snstar(0)
  105.                   rnum += tths+number_snstar(10000)+thos+number_snstar(1000)+
  106.                           huns+number_snstar(100)+tens+number_snstar(10)+ones
  107.                 else
  108.                   rnum += tths+number_snstar(10000)+thos+number_snstar(1000)+
  109.                           huns+number_snstar(100)+tens+ones
  110.                 end
  111.               else
  112.                 rnum += tths+number_snstar(10000)+thos+number_snstar(1000)+huns+ones
  113.               end
  114.             else
  115.               rnum += tths+number_snstar(10000)+thos+ones
  116.             end
  117.           else
  118.             rnum += number_snstar(10000)+number_snstar(0)+ones
  119.           end
  120.         end
  121.       
  122.         # 数字100000~999999
  123.         if num>=100000 and num<1000000
  124.           rnum = hths+number_snstar(10)+rnum
  125.         end
  126.       
  127.         # 数字1000000~9999999
  128.         if num>=1000000 and num<10000000
  129.           if hths != number_snstar(0)
  130.             rnum = mils + number_snstar(100) + hths+number_snstar(10)+rnum
  131.           else
  132.             rnum = mils + number_snstar(100) + number_snstar(0)+rnum
  133.           end
  134.         end
  135.         
  136.         # 数字10000000~99999999
  137.         if num>=10000000 and num<100000000
  138.           if mils != number_snstar(0)
  139.             if hths != number_snstar(0)
  140.               rnum = tmis + number_snstar(1000) + mils + number_snstar(100) +
  141.                      hths+number_snstar(10)+rnum
  142.             else
  143.               rnum = tmis + number_snstar(1000) + mils + number_snstar(100) +
  144.                      number_snstar(0)+rnum
  145.             end
  146.           else
  147.             rnum = tmis + number_snstar(1000) + number_snstar(0)+rnum
  148.           end
  149.         end
  150.       end
  151.       return rnum
  152.     end
  153.   end
  154.   
  155.   # 显示纯数字
  156.   def change_to_ch_pn(num)
  157.     return num unless num.is_a?(Integer)
  158.     if num < 0
  159.       rnum = "负 "
  160.     else
  161.       rnum = ""
  162.     end
  163.     num = num.abs

  164.     if num <= 10
  165.       return rnum+number_snstar(num)
  166.     else
  167.       # 个
  168.       ones = number_snstar(num%10)
  169.       # 十
  170.       tens = number_snstar(num/10%10)# if num%100!=0
  171.       # 百
  172.       huns = number_snstar(num/100%10)# if num%1000!=0
  173.       # 千
  174.       thos = number_snstar(num/1000%10)
  175.       # 万
  176.       tths = number_snstar(num/10000%10)
  177.       # 十万
  178.       hths = number_snstar(num/100000%10)
  179.       # 百万
  180.       mils = number_snstar(num/1000000%10)
  181.       # 千万
  182.       tmis = number_snstar(num/10000000%10)
  183.       
  184.       if num < 100
  185.         if num%10==0
  186.           rnum += tens+number_snstar(10)
  187.         else
  188.           if num<20
  189.             rnum += number_snstar(10)+ones
  190.           else
  191.             rnum += tens+ones
  192.           end
  193.         end
  194.       end
  195.       
  196.       if num<1000 and num>=100
  197.         if num%100==0
  198.           rnum += huns+number_snstar(100)
  199.         else
  200.           rnum += huns+tens+ones
  201.         end
  202.       end
  203.       
  204.       if num<10000 and num>=1000
  205.         if num%1000==0
  206.           rnum += thos+number_snstar(1000)
  207.         else
  208.           rnum += thos+huns+tens+ones
  209.         end
  210.       end
  211.       
  212.       if num<100000 and num>=10000
  213.         if num%10000==0
  214.           rnum += tths+number_snstar(10000)
  215.         else
  216.           rnum += tths+thos+huns+ones
  217.         end
  218.       end
  219.       
  220.       if num<1000000 and num>=100000
  221.         if num%100000==0
  222.           rnum += hths+number_snstar(10)+number_snstar(10000)
  223.         else
  224.           rnum += hths+tths+thos+huns+tens+ones
  225.         end
  226.       end
  227.       
  228.       if num<10000000 and num>=1000000
  229.         if num%1000000==0
  230.           rnum += mils+number_snstar(100)+number_snstar(10000)
  231.         else
  232.           rnum += mils+hths+tths+thos+huns+tens+ones
  233.         end
  234.       end

  235.       if num<100000000 and num>=10000000
  236.         if num%10000000==0
  237.           rnum += tmis+number_snstar(1000)+number_snstar(10000)
  238.         else
  239.           rnum += tmis+mils+hths+tths+thos+huns+tens+ones
  240.         end
  241.       end
  242.       return rnum
  243.     end
  244.   end
  245. end  
  246. #============================================================================
  247. #  函数重新定义
  248. #  显示微中文数字
  249. #============================================================================
  250. class Window_Base < Window
  251.   #--------------------------------------------------------------------------
  252.   # ● レベルの描画
  253.   #     actor : アクター
  254.   #     x     : 描画先 X 座標
  255.   #     y     : 描画先 Y 座標
  256.   #--------------------------------------------------------------------------
  257.   def draw_actor_level(actor, x, y)
  258.     self.contents.font.color = system_color
  259.     self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
  260.     self.contents.font.color = normal_color
  261.     clevel = change_to_ch(actor.level)
  262.     self.contents.draw_text(x + 32, y, 24, WLH, clevel, 2)
  263.   end
  264.   #--------------------------------------------------------------------------
  265.   # ● HP の描画
  266.   #     actor : アクター
  267.   #     x     : 描画先 X 座標
  268.   #     y     : 描画先 Y 座標
  269.   #     width : 幅
  270.   #--------------------------------------------------------------------------
  271.   def draw_actor_hp(actor, x, y, width = 120)
  272.     draw_actor_hp_gauge(actor, x, y, width)
  273.     self.contents.font.color = system_color
  274.     self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
  275.     self.contents.font.color = hp_color(actor)
  276.     xr = x + width
  277.     chp = change_to_ch_pn(actor.hp)
  278.     chpm= change_to_ch_pn(actor.maxhp)
  279.     if width < 120
  280.       self.contents.draw_text(xr - 40, y, 40, WLH, chp, 2)
  281.     else
  282.       self.contents.draw_text(xr - 90, y, 40, WLH, chp, 2)
  283.       self.contents.font.color = normal_color
  284.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  285.       self.contents.draw_text(xr - 40, y, 40, WLH, chpm, 2)
  286.     end
  287.   end
  288.   #--------------------------------------------------------------------------
  289.   # ● MP の描画
  290.   #     actor : アクター
  291.   #     x     : 描画先 X 座標
  292.   #     y     : 描画先 Y 座標
  293.   #     width : 幅
  294.   #--------------------------------------------------------------------------
  295.   def draw_actor_mp(actor, x, y, width = 120)
  296.     draw_actor_mp_gauge(actor, x, y, width)
  297.     self.contents.font.color = system_color
  298.     self.contents.draw_text(x, y, 30, WLH, Vocab::mp_a)
  299.     self.contents.font.color = mp_color(actor)
  300.     xr = x + width
  301.     cmp = change_to_ch_pn(actor.mp)
  302.     cmpm= change_to_ch_pn(actor.maxmp)
  303.     if width < 120
  304.       self.contents.draw_text(xr - 40, y, 40, WLH, cmp, 2)
  305.     else
  306.       self.contents.draw_text(xr - 90, y, 40, WLH, cmp, 2)
  307.       self.contents.font.color = normal_color
  308.       self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
  309.       self.contents.draw_text(xr - 40, y, 40, WLH, cmpm, 2)
  310.     end
  311.   end
  312.   #--------------------------------------------------------------------------
  313.   # ● 能力値の描画
  314.   #     actor : アクター
  315.   #     x     : 描画先 X 座標
  316.   #     y     : 描画先 Y 座標
  317.   #     type  : 能力値の種類 (0~3)
  318.   #--------------------------------------------------------------------------
  319.   def draw_actor_parameter(actor, x, y, type)
  320.     case type
  321.     when 0
  322.       parameter_name = Vocab::atk
  323.       parameter_value = actor.atk
  324.     when 1
  325.       parameter_name = Vocab::def
  326.       parameter_value = actor.def
  327.     when 2
  328.       parameter_name = Vocab::spi
  329.       parameter_value = actor.spi
  330.     when 3
  331.       parameter_name = Vocab::agi
  332.       parameter_value = actor.agi
  333.     end
  334.     self.contents.font.color = system_color
  335.    
  336.     cparam = change_to_ch_pn(parameter_value)
  337.     width = self.contents.text_size(cparam).width
  338.    
  339.     self.contents.draw_text(x, y, 120, WLH, parameter_name)
  340.     self.contents.font.color = normal_color
  341.     self.contents.draw_text(x+120, y, width, WLH, cparam, 0)
  342.   end
  343.   #--------------------------------------------------------------------------
  344.   # ● 通貨単位つきの数値描画
  345.   #     value : 数値 (所持金など)
  346.   #     x     : 描画先 X 座標
  347.   #     y     : 描画先 Y 座標
  348.   #     width : 幅
  349.   #--------------------------------------------------------------------------
  350.   def draw_currency_value(value, x, y, width)
  351.     cx = contents.text_size(Vocab::gold).width
  352.     self.contents.font.color = normal_color
  353.     vgold = change_to_ch(value)
  354.     self.contents.draw_text(x, y, width-cx-2, WLH, vgold, 2)
  355.     self.contents.font.color = system_color
  356.     self.contents.draw_text(x, y, width, WLH, Vocab::gold, 2)
  357.   end
  358.    
  359. end  
  360. class Window_Status < Window_Base
  361.   #--------------------------------------------------------------------------
  362.   # ● 経験値情報の描画
  363.   #     x : 描画先 X 座標
  364.   #     y : 描画先 Y 座標
  365.   #--------------------------------------------------------------------------
  366.   def draw_exp_info(x, y)
  367.     s1 = change_to_ch_pn(@actor.exp_s)
  368.     s2 = change_to_ch_pn(@actor.next_rest_exp_s)
  369.     s_next = sprintf(Vocab::ExpNext, Vocab::level)
  370.     self.contents.font.color = system_color
  371.     self.contents.draw_text(x, y + WLH * 0, 180, WLH, Vocab::ExpTotal)
  372.     self.contents.draw_text(x, y + WLH * 2, 180, WLH, s_next)
  373.     self.contents.font.color = normal_color
  374.     self.contents.draw_text(x, y + WLH * 1, 180, WLH, s1, 2)
  375.     self.contents.draw_text(x, y + WLH * 3, 180, WLH, s2, 2)
  376.   end
  377. end  
  378. class Window_EquipStatus < Window_Base  
  379.   #--------------------------------------------------------------------------
  380.   # ● 能力値の描画
  381.   #     x    : 描画先 X 座標
  382.   #     y    : 描画先 Y 座標
  383.   #     type : 能力値の種類 (0~3)
  384.   #--------------------------------------------------------------------------
  385.   def draw_parameter(x, y, type)
  386.     case type
  387.     when 0
  388.       name = Vocab::atk
  389.       value = @actor.atk
  390.       new_value = @new_atk
  391.     when 1
  392.       name = Vocab::def
  393.       value = @actor.def
  394.       new_value = @new_def
  395.     when 2
  396.       name = Vocab::spi
  397.       value = @actor.spi
  398.       new_value = @new_spi
  399.     when 3
  400.       name = Vocab::agi
  401.       value = @actor.agi
  402.       new_value = @new_agi
  403.     end
  404.     cv = change_to_ch_pn(value)
  405.     self.contents.font.color = system_color
  406.     self.contents.draw_text(x + 4, y, 80, WLH, name)
  407.     self.contents.font.color = normal_color
  408.     self.contents.draw_text(x + 90, y, 30, WLH, cv, 2)
  409.     self.contents.font.color = system_color
  410.     self.contents.draw_text(x + 122, y, 20, WLH, "→", 1)
  411.     if new_value != nil
  412.       ncv = change_to_ch_pn(new_value)
  413.       self.contents.font.color = new_parameter_color(cv, ncv)
  414.       self.contents.draw_text(x + 142, y, 30, WLH, ncv, 2)
  415.     end
  416.   end
  417. end
复制代码


{/cy}中國風的遊戲用阿拉伯數字實在太奇怪了
用我們偉大的中國文字顯示才對

其實是為了我即將出的遊戲寫的
順便貼出來
VA脚本开工中...
偷窃脚本1.0 - 已完成
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-25
帖子
7
2
发表于 2008-2-8 17:44:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2006-12-3
帖子
152
3
发表于 2008-2-8 18:23:29 | 只看该作者
- -作用为负
回复 支持 反对

使用道具 举报

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
4
发表于 2008-2-11 03:00:10 | 只看该作者
中文代替数字有点怪怪的
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3263
在线时间
3616 小时
注册时间
2006-9-6
帖子
37399

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

5
发表于 2008-2-11 03:01:30 | 只看该作者
用处不是很大……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

雷欧纳德的宠物

梦石
0
星屑
50
在线时间
769 小时
注册时间
2006-8-6
帖子
3778

贵宾

6
发表于 2008-2-22 20:29:28 | 只看该作者
发布完毕。
http://rpg.blue/web/htm/news992.htm
vip+2
打酱油的- -b
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
380
在线时间
12 小时
注册时间
2008-4-24
帖子
3
7
发表于 2008-5-11 06:37:22 | 只看该作者
買賣東西的時會會顯示錯誤
他說這行有錯誤,可以幫忙看一下嗎? 還是跟其他腳本有衝突到?
      ones = number(num%10)# if num%10!=0
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

8
发表于 2008-5-11 17:25:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
610
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

9
 楼主| 发表于 2008-5-11 18:18:38 | 只看该作者
原来如此
请问沉影究竟是和哪项函数冲突了呢?
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

10
发表于 2008-5-11 22:56:11 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-26 00:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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