Project1
标题: 让金钱窗口的金钱每三位用逗号隔开 [打印本页]
作者: 风清翔 时间: 2015-1-31 23:11
标题: 让金钱窗口的金钱每三位用逗号隔开
LZ鼓捣了几个月的RGSS后,终于开始动手做自己的脚本了。
希望各位可以支持,也多多提出意见。
如图,像这样的让金钱的每三位以逗号隔开,看起来更有条理。
LZ鼓捣了几个小时才弄出来的……是我第一个纯自主非仿照脚本,希望支持。
可能有很多累赘的东西,各位如果有什么意见尽管提。
使用方法:
①新人:在main上按Insert插入空白脚本,然后将该脚本复制进去。
②大神:直接在原Window_Gold中进行修改。
#==============================================================================
# ■ Window_Gold
#------------------------------------------------------------------------------
# 显示金钱的窗口。 (更有条理)
# By 风中的翔 (第一次做)
#==============================================================================
class Window_Gold < Window_Base
def initialize
super(0,0,160,64)
self.contents=Bitmap.new(width-32,height-32)
refresh
end
def refresh
self.contents.clear #清除内容
size=contents.text_size($data_system.words.gold).width #取得金钱宽度
self.contents.font.color=normal_color
gold_fenhao
self.contents.draw_text(4,0,120-size-2,32,@goldshu, 2) #描绘钱数
self.contents.font.color=system_color
self.contents.draw_text(124-size,0,size,32,$data_system.words.gold,2) #描绘单位
end
def gold_fenhao
a = $game_party.gold.to_s
@fenhaoshu = a.size/3
@fenhaoyu = a.size%3
@d=[]
@d_n=0
a.scan(/./).each {|a| qudu_gold(a) }
@goldshu=""
b=0
while b<@d_n
if @fenhaoshu==0 #当钱单位个数小于三时
@goldshu+=@d[b]
b+=1
else #当钱单位数大于三时
if @fenhaoyu !=0 #当钱单位个数不为三位数倍数时
while @fenhaoyu != 0
@goldshu+=@d[b]
b+=1
@fenhaoyu-=1
end
@goldshu+=","
else #当钱单位个数为三位数倍数时
d=0
while d != 3
@goldshu+=@d[b]
break if b==@d_n
b+=1
d+=1
end
@goldshu+="," if b != @d_n
end
end
end
end
def qudu_gold(a)
@d[@d_n]=a
@d_n+=1
end
end
#==============================================================================
# ■ Window_Gold
#------------------------------------------------------------------------------
# 显示金钱的窗口。 (更有条理)
# By 风中的翔 (第一次做)
#==============================================================================
class Window_Gold < Window_Base
def initialize
super(0,0,160,64)
self.contents=Bitmap.new(width-32,height-32)
refresh
end
def refresh
self.contents.clear #清除内容
size=contents.text_size($data_system.words.gold).width #取得金钱宽度
self.contents.font.color=normal_color
gold_fenhao
self.contents.draw_text(4,0,120-size-2,32,@goldshu, 2) #描绘钱数
self.contents.font.color=system_color
self.contents.draw_text(124-size,0,size,32,$data_system.words.gold,2) #描绘单位
end
def gold_fenhao
a = $game_party.gold.to_s
@fenhaoshu = a.size/3
@fenhaoyu = a.size%3
@d=[]
@d_n=0
a.scan(/./).each {|a| qudu_gold(a) }
@goldshu=""
b=0
while b<@d_n
if @fenhaoshu==0 #当钱单位个数小于三时
@goldshu+=@d[b]
b+=1
else #当钱单位数大于三时
if @fenhaoyu !=0 #当钱单位个数不为三位数倍数时
while @fenhaoyu != 0
@goldshu+=@d[b]
b+=1
@fenhaoyu-=1
end
@goldshu+=","
else #当钱单位个数为三位数倍数时
d=0
while d != 3
@goldshu+=@d[b]
break if b==@d_n
b+=1
d+=1
end
@goldshu+="," if b != @d_n
end
end
end
end
def qudu_gold(a)
@d[@d_n]=a
@d_n+=1
end
end
作者: RyanBern 时间: 2015-1-31 23:59
本帖最后由 RyanBern 于 2015-2-1 00:06 编辑
支持LZ写脚本,而且顺便回答了XP区的一个问题!
其实可以这样:
def make_gold_text
num = $game_party.gold
output = ""
while num > 0
output = "," + output if output != ""
output = (num % 1000).to_s + output
num /= 1000
end
return output == "" ? "0" : output
end
def make_gold_text
num = $game_party.gold
output = ""
while num > 0
output = "," + output if output != ""
output = (num % 1000).to_s + output
num /= 1000
end
return output == "" ? "0" : output
end
然后直接调用make_gold_text就好了,能少几行是几行。
作者: 恐惧剑刃 时间: 2015-2-1 06:47
taroxd已经给过方法了。。
sprintf('%03d,%03d,%03d', gold/1000000, gold/1000%1000, gold%1000)
%是固定格式
0用0补位
3是宽度
d使用十进制
(以上参考 F1)
在rgss1中 读取地图文件,计时器都使用到了这种方法!
“一个参数”对应“一个字符组”
是把 gold/1000000 , gold/1000%1000, gold%1000 转化十进制并用0补位 最后返回一个字符串
作者: taroxd 时间: 2015-2-1 07:48
RyanBern 发表于 2015-1-31 23:59
支持LZ写脚本,而且顺便回答了XP区的一个问题!
其实可以这样:
def make_gold_text
关于能少几行是几行的想法我还是挺赞同的
gold.to_s.reverse.scan(/.{1,3}/).join(',').reverse
gold.to_s.reverse.scan(/.{1,3}/).join(',').reverse
作者: 邪月长啸 时间: 2015-2-1 21:36
taroxd 发表于 2015-2-1 07:48
关于能少几行是几行的想法我还是挺赞同的
gold.to_s.reverse.scan(/.{1,3}/).join(',').reverse[/pre] ...
小白请问版主
这句脚本要怎么用
不知道要插在哪个地方
作者: chd114 时间: 2015-2-2 11:25
邪月长啸 发表于 2015-2-1 04:36
小白请问版主
这句脚本要怎么用
不知道要插在哪个地方
当然是在显示gold的地方用
作者: timiesea 时间: 2015-2-3 17:02
感觉好强大啊!我那个脚本好像过时了呢。不过同样是新手,很好!塞点糖以资鼓励!
作者: 舞小朵儿 时间: 2015-7-30 15:08
都是大神~~~
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |