Project1

标题: 像网游一样显示金钱数量! [打印本页]

作者: wyoq    时间: 2009-3-9 18:31
标题: 像网游一样显示金钱数量!
#==============================================================================
# ■ Window_Gold
#------------------------------------------------------------------------------
#  显示金钱的窗口。by:wyoq
#==============================================================================

class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化窗口
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    拥有的 = ""
    个位数 = $game_party.gold - $game_party.gold / 1000 *1000
    千位数 = ( $game_party.gold - $game_party.gold / 1000000 *1000000) / 1000
    百万数 = ($game_party.gold - $game_party.gold / 1000000000 *1000000000)/1000000
    亿位数 = ($game_party.gold - $game_party.gold / 1000000000000 *1000000000000 ) / 1000000000
    if 亿位数 != 0
       拥有的 += 亿位数.to_s + ","
       if 百万数 < 10
         拥有的 +=  "00"
       elsif 百万数 < 100
         拥有的 +=  "0"
         end
     end
    if 百万数 != 0
       拥有的 += 百万数.to_s + ","
      if 千位数 < 10
         拥有的 +=  "00"
       elsif 千位数 < 100
         拥有的 +=  "0"
         end
     end
      if 千位数 != 0
       拥有的 += 千位数.to_s + ","
         if 个位数 < 10
       拥有的 += "00"
     elsif 个位数 < 100
       拥有的 += "0"
     end
       end
     拥有的 += 个位数.to_s
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = Color.new(255, 255, 255, 255)
    if $game_party.gold >= 100000
      self.contents.font.color = Color.new(16, 252, 4, 255)
    end
    if $game_party.gold >= 1000000
      self.contents.font.color = Color.new(252,4,179,255)
    end  
    if $game_party.gold >= 10000000
      self.contents.font.color = Color.new(242,254,4,255)
    end
    if $game_party.gold >= 100000000
      self.contents.font.color = Color.new(255, 4, 11, 255)
    end
    self.contents.draw_text(4, 0, 120-cx-2, 32, 拥有的.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
end



本想在自已的游戏中偷偷用的,事实上我也是个菜鸟,只是发现它那个除法原来是会取整的,就这么的比想象中还要容易的写了出来,这个计算到了亿以后就会全是深红色,很简单的Color.new(255, 4, 11, 255)就是修改色调的!站上的高手们如今都深藏不露,喜欢自个独自研究一些别人看不懂的脚本,这个是菜鸟技术编写的,很容易懂,我希望各位菜鸟同胞们,事实上呢,我是不知道接触RM不知道多久后离开到现在一年了,在一年前,我也一直认为脚本是个很难理解的东东,但是事实上呢,对于我们菜鸟来说呢,懂一点点就可以拿来写一些效果了,就如上面这个,我懂的就这么一点,变量,对了就是小变量(我是这么理解的)没带符号的例如(a,b,c,我,你,他)不管是中文还是英文都是可以用的,如加上了@在前面的呢,那就是中变量(原谅我),就是@我@a之类的,再把@删掉来个美金$那是...大变量(..),这个作用很大,对我这种菜鸟来说,小变量只能在例如一个事件中,或者脚本中的DEF下到END吧,就像我的脚本中的亿位数什么的是小变量!要用很久很远的就用大变量,至于中变量,是一个类中用的,就是例如写一个类从classXX到最后的END都能用到,我觉得应是这样,你可以看到很多原脚本个都会用到@X@Y的定义之后就可以到到处用!但可能不会超过范围吧,大变量我一般都会定义中文给它例如($我$你)我觉得这个大变量如写成英文字母的话写多了头很痛,这个很乱!写错了一个字母都会很麻烦!我以前写的时候,经常会打成用全角来写$之类,那个时候,发现错误就以为是不行,然后删掉,事实上如今我才知道...原来$这个东东是要用半角来写的,所以像我这样的菜鸟们(刚刚无意中发现原来可以点的!)把那个圆月亮点成半个月吧!!事实上有很多定义都可以在原脚本中找出...事实上大家同为菜鸟!可以一起研究方法,但本人不喜欢和一种老是问的人一起研究,感觉像是自已在写脚本时多了只苍蝇!   本菜鸟懂的事实上并不多,我想方法好的话,懂的多和少也有可能不是问题吧!  额... 对于我们菜鸟来说呢,写呢,就要写出我们菜鸟的技术!好了,完毕!


作者: 地下三厘米    时间: 2009-3-9 22:32
顶一下
作者: lichaoxf    时间: 2009-3-9 22:59
好东西,我拿走咯!{/cy}{/cy}
作者: wyoq    时间: 2009-3-10 04:49
以下引用地下三厘米于2009-3-9 14:32:03的发言:

顶一下
以下引用lichaoxf于2009-3-9 14:59:06的发言:

好东西,我拿走咯!

{/dy}事实上,这是一个有着错误的脚本...各位拿了本脚本的人说明是你需要这个脚本,那么就自已发现和修改吧,本人的已修改好了,不难发现的,很容易修改的.!!动手改改各位!!{/dy}
转载和使用请把BY:wyoq一起复制!!!谢谢!
作者: 精灵使者    时间: 2009-3-10 05:15
这个东西如果用CASE的话会好得多呢。
赞一个,恩。
作者: 神无月    时间: 2009-3-10 06:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小小大恶魔    时间: 2009-3-10 06:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: hitlerson    时间: 2009-3-10 21:26
这么多钱哈,可别溢出了~~~~~~
作者: wyoq    时间: 2009-3-10 21:29
以下引用hitlerson于2009-3-10 13:26:57的发言:

这么多钱哈,可别溢出了~~~~~~

一把剑我卖十个亿!{/dy}
作者: hitlerson    时间: 2009-3-10 21:34
金融界的危机影响到实体经济,现在又波及到游戏里了,游戏币也贬值啊。。。
作者: 無〃心    时间: 2009-3-21 05:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: 冷不冷    时间: 2009-3-22 02:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: TERENCE    时间: 2009-3-22 03:18
本帖最后由 TERENCE 于 2009-8-20 23:55 编辑

将数值每三位以「,」区隔开来可以这么做

def commify(numstr)
  int ,frac = *numstr.split(".")
  int = int.gsub(/(\d)(?=\d{3}+$)/, '\\1,')
  int << "." << frac if frac
  return int
end

p commify("1234567890") #=> "1,234,567,890"
p commify("12345.6789") #=> "12,345.6789"
作者: 君少    时间: 2009-4-4 23:52
给张图来看看吧
作者: 天使喝可乐    时间: 2009-4-6 03:11
价钱上限不是6位吗= =
作者: 天使喝可乐    时间: 2009-4-6 03:13
我试了,为什么没效果?
作者: 雪流星    时间: 2009-4-6 09:20
跟下面这个无用脚本差不多原理
http://rpg.blue/viewthread.php?tid=76023
作者: ERROR    时间: 2009-4-6 14:40
好诶好死了!{/jy}{/cy}
作者: 柳飛鷹    时间: 2009-4-6 18:54
以下引用snstar2006于2009-4-6 1:20:17的发言:

跟下面这个无用脚本差不多原理
http://rpg.blue/viewthread.php?tid=76023

LZ的无效果啊
倒是这位的不错,有没有XP版本的呢?期待ING{/cy}
作者: 安倍の晴明    时间: 2009-4-11 22:48
很不错内~!呵呵~!简单又实用~!{/se}




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