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

Project1

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

[已经过期] 如何实现多级金币?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
42 小时
注册时间
2016-11-27
帖子
30
跳转到指定楼层
1
发表于 2017-4-13 09:31:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如,我有50铜币显示50铜币,并且跟着铜币的图标。
然后有150铜币的时候显示1银币50铜币,并且显示银币和铜币的图标,以此类推
比例为 1金币=100银币=10000铜币
商店里的商品也如此显示,怎么做到呢?

点评

可以选择使用多货币系统相关的脚本,然后稍作修改  发表于 2017-4-13 11:43

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 2017-4-13 11:58:31 | 只看该作者
这个链接里的脚本正好能满足你的需求 https://rpg.blue/forum.php?mod=viewthread&tid=349632
笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
42 小时
注册时间
2016-11-27
帖子
30
3
 楼主| 发表于 2017-4-14 08:50:10 | 只看该作者
魔法丶小肉包 发表于 2017-4-13 11:58
这个链接里的脚本正好能满足你的需求 https://rpg.blue/forum.php?mod=viewthread&tid=349632 ...

就是这个,商店里正常使用,菜单里还是只显示一种基础货币
Simple Menu by VitorJ (http://vjrgss.blogspot.com/)
  1. class Window_MenuGold < Window_Base
  2.   def initialize(x,y)
  3.     super(x, y, Graphics.width/3, 48)
  4.     refresh
  5.   end
  6.   def refresh
  7.     contents.clear
  8.     gold = $game_party.gold
  9.     draw_icon(VJSM::Gold_Icon, 0, 0)
  10.     change_color(normal_color)
  11.     draw_text(0, 0, self.contents.width, line_height, gold, 2)
  12.   end
  13. end
复制代码

点评

想让这种菜单兼容多级金币显示  发表于 2017-4-16 14:26
所以呢?你想表达什么呢?是想改成菜单里还是默认显示吗?  发表于 2017-4-14 11:25
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

4
发表于 2017-4-16 14:56:35 | 只看该作者
由于楼上给的链接我打不开(没有VPN)
所以只能根据给出的代码做猜测↓
RUBY 代码复制
  1. class Window_MGold < Window_Base
  2.   def initialize
  3.     super(0, 0, window_width, fitting_height(1))
  4.     refresh
  5.   end
  6.   def window_width
  7.     return 160
  8.   end
  9.   def refresh
  10.     contents.clear
  11.     draw_currency_valuem(value, currency_unit, 4, 0, contents.width - 8)
  12.     draw_icon(343, 0, 0)
  13.   end
  14.   def value
  15.     $game_party.gold
  16.   end
  17.   def currency_unit
  18.     Vocab::currency_unit
  19.   end
  20.   def draw_currency_valuem(value, unit, x, y, width)
  21.     cx = text_size(unit).width
  22.     change_color(normal_color)
  23.     draw_text(x, y, width - cx - 2, line_height, value, 2)
  24.     change_color(system_color)
  25.     draw_text(x, y, width, line_height, unit, 2)
  26.   end
  27.   def open
  28.     refresh
  29.     super
  30.   end
  31. end
  32. class Scene_Menu < Scene_MenuBase
  33.   def create_gold_window
  34.     @gold_window = Window_MGold.new
  35.     @gold_window.x = 0
  36.     @gold_window.y = Graphics.height - @gold_window.height
  37.   end
  38. end
笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
42 小时
注册时间
2016-11-27
帖子
30
5
 楼主| 发表于 2017-4-16 15:55:15 | 只看该作者
魔法丶小肉包 发表于 2017-4-16 14:56
由于楼上给的链接我打不开(没有VPN)
所以只能根据给出的代码做猜测↓
class Window_MGold < Window_Base

  1. #==============================================================================
  2. # Simple Menu by VitorJ (http://vjrgss.blogspot.com/)
  3. #-Funcao-----------------------------------------------------------------------
  4. # Modifica o menu padrao.
  5. #-Nome do mapa-----------------------------------------------------------------
  6. # O nome que aparecera na area de nome do mapa sera o nome escolhido para
  7. # exibicao, caso nao tenha um, ele ira procurar o seguinte comando na nota do
  8. # mapa: <mname>Nome do Mapa</mname>
  9. # Onde o nome do mapa deve ser posto, nao e necessario estar entre aspas.
  10. #==============================================================================
  11. module VJSM
  12.   Icons = []
  13.   #Icones para as opcoes
  14.   Icons[0] = 12                           #物品
  15.   Icons[1] = 4                            #技能
  16.   Icons[2] = 9                            #装备
  17.   Icons[3] = 5                            #状态
  18.   Icons[4] = 15                           #队伍
  19.   Icons[5] = 13                           #数据
  20.   Icons[6] = 6                            #设置
  21.   ##
  22.   Next = "下一等级"                       #Proximo level
  23.   Gold_Icon = 117                         #Icone do gold
  24.   PlayTime_Icon = 49                     #Icone do tempo de jogo
  25.   Map_Icon = 83                          #Icone do mapa atual
  26.   File = "存档"                          #Opзгo de file
  27. end

  28. class Window_MenuStatus < Window_Selectable
  29.   attr_reader   :pending_index
  30.   def initialize(x, y)
  31.     super(x, y, window_width, window_height)
  32.     self.windowskin = Cache.system("Window_Menu")
  33.     @pending_index = -1
  34.     refresh
  35.   end
  36.   def window_width
  37.     Graphics.width
  38.   end
  39.   def window_height
  40.     Graphics.height - 96
  41.   end
  42.   def item_max
  43.     $game_party.members.size
  44.   end
  45.   def col_max
  46.     return 2
  47.   end
  48.   def item_height
  49.     (height - standard_padding * 2) / 2
  50.   end
  51.   def draw_item(index)
  52.     actor = $game_party.members[index]
  53.     enabled = $game_party.battle_members.include?(actor)
  54.     rect = item_rect(index)
  55.     draw_item_background(index)
  56.     draw_actor_name(actor, rect.x+1, rect.y+1)
  57.     draw_actor_face(actor, rect.x+1, rect.y+1 + line_height, enabled)
  58.     draw_actor_class(actor, rect.x+1, (rect.y+rect.height) - (line_height+1))
  59.     draw_actor_level(actor, rect.x+98+16, rect.y+1)
  60.     draw_exp_info(actor, rect.x+98+16, rect.y + line_height)
  61.     draw_actor_hp(actor, rect.x+98+16, rect.y + line_height * 2)
  62.     draw_actor_mp(actor, rect.x+98+16, rect.y + line_height * 3)
  63.     draw_actor_icons(actor, rect.x+98+16, rect.y + line_height * 4)
  64.   end
  65.   def draw_actor_icons(actor, x, y, width = 128)
  66.     icons = (actor.state_icons + actor.buff_icons)
  67.     i = 0
  68.     icons.each do |icon|
  69.       ix = x+(i*24)
  70.       iy = y+(0)
  71.       if i >= 5
  72.         ix = x+((i-5)*24)
  73.         iy = y+(24)
  74.       end
  75.       draw_icon(icon, ix, iy)
  76.       i+= 1
  77.     end
  78.   end
  79.   def draw_exp_info(actor, x, y)
  80.     s2 = actor.max_level? ? "-------" : actor.next_level_exp - actor.exp
  81.     s_next = VJSM::Next
  82.     change_color(system_color)
  83.     draw_text(x, y, 128, line_height, s_next)
  84.     change_color(normal_color)
  85.     draw_text(x, y, 128, line_height, s2, 2)
  86.   end
  87.   def draw_item_background(index)
  88.     if index == @pending_index
  89.       contents.fill_rect(item_rect(index), pending_color)
  90.     end
  91.   end
  92.   def process_ok
  93.     super
  94.     $game_party.menu_actor = $game_party.members[index]
  95.   end
  96.   def select_last
  97.     select($game_party.menu_actor.index || 0)
  98.   end
  99.   def pending_index=(index)
  100.     last_pending_index = @pending_index
  101.     @pending_index = index
  102.     redraw_item(@pending_index)
  103.     redraw_item(last_pending_index)
  104.   end
  105. end
  106. class Window_NewMenuStatus < Window_Base
  107.   def initialize(actor)
  108.     super(0, 0, Graphics.width - 160, 120)
  109.     @actor = actor
  110.     refresh
  111.   end
  112.   def set_actor(actor)
  113.     return if actor == @actor
  114.     @actor = actor
  115.     refresh
  116.   end
  117.   def refresh
  118.     contents.clear
  119.     actor = @actor
  120.     enabled = $game_party.battle_members.include?(actor)
  121.     draw_actor_face(actor,1, 1, enabled)
  122.     draw_actor_simple_status(actor, 108, line_height / 2)
  123.   end
  124. end
  125. class Window_Time < Window_Base
  126.   def initialize(x,y)
  127.     super(x, y, Graphics.width/3, 48)
  128.     refresh
  129.   end
  130.   def update
  131.     refresh
  132.   end
  133.   def refresh
  134.     contents.clear
  135.     playtime = $game_system.playtime_s
  136.     draw_icon(VJSM::PlayTime_Icon, 0, 0)
  137.     change_color(normal_color) #(normal_color) #CHANGED1
  138.     draw_text(0, 0, self.contents.width, line_height, playtime, 2)
  139.   end
  140. end
  141. class Window_MenuGold < Window_Base
  142.   def initialize(x,y)
  143.     super(x, y, Graphics.width/3, 48)
  144.     refresh
  145.   end
  146.   def refresh
  147.     contents.clear
  148.     gold = $game_party.gold
  149.     draw_icon(VJSM::Gold_Icon, 0, 0)
  150.     change_color(normal_color)
  151.     draw_text(0, 0, self.contents.width, line_height, gold, 2)
  152.   end
  153. end
  154. class Window_MenuMapName < Window_Base
  155.   def initialize(x,y)
  156.     super(x, y, (Graphics.width/3)*2, 48)
  157.     refresh
  158.   end
  159.   def refresh
  160.     contents.clear
  161.     if $game_map.display_name.empty?
  162.       map_a = load_data(sprintf("Data/Map%03d.rvdata2", $game_map.map_id))
  163.       note = map_a.note.split("\r\n")
  164.       text = "No Data"
  165.       note.each do |thing|
  166.         if thing.include?("<mname>")
  167.           text = thing
  168.           text.slice!("<mname>")
  169.           text.slice!("</mname>")
  170.         end
  171.       end
  172.       map = text
  173.     else
  174.       map = $game_map.display_name
  175.     end
  176.     change_color(normal_color)
  177.     draw_icon(VJSM::Map_Icon, 0, 0)
  178.     draw_text(0, 0, self.contents.width, line_height, map, 2)
  179.   end
  180. end
  181. class Window_Command_Name < Window_Base
  182.   def initialize(text,w=171)
  183.     super(0, 0, w, 48)
  184.     self.windowskin = Cache.system("Window_Menu") #tip1
  185.     @text = text
  186.     refresh
  187.   end
  188.   def refresh
  189.     contents.clear
  190.     draw_text(0, 0, self.contents.width, self.contents.height, @text, 1)
  191.   end
  192.   def set_text(text)
  193.     return if text == @text
  194.     @text = text
  195.     refresh
  196.   end
  197. end
  198. class Window_MenuFile < Window_Command
  199.   def initialize
  200.     super(0, 0)
  201.     update_placement
  202.   end
  203.   def window_width
  204.     return 160
  205.   end
  206.   def update_placement
  207.     self.x = (Graphics.width - width) / 2
  208.     self.y = (Graphics.height - height) / 2
  209.   end
  210.   def make_command_list
  211.     add_command(Vocab::save, :save, save_enabled)
  212.     add_command(Vocab::continue, :continue)
  213.     add_command(Vocab::cancel,   :cancel)
  214.   end
  215.   def save_enabled
  216.     !$game_system.save_disabled
  217.   end
  218. end
  219. class Window_MenuCommand < Window_Command
  220.   def self.init_command_position
  221.     @@last_command_symbol = nil
  222.   end
  223.   def initialize
  224.     super(0, 0)
  225.     self.windowskin = Cache.system("Window_Menu") #tip2
  226.     select_last
  227.   end
  228.   def item_rect(index)
  229.     rect = Rect.new
  230.     rect.width = item_width
  231.     rect.height = item_height
  232.     rect.x = index % col_max * item_width
  233.     rect.y = index / col_max * item_height
  234.     rect
  235.   end
  236.   def item_width
  237.     return 24
  238.   end
  239.   def window_width
  240.     return 192
  241.   end
  242.   def window_height
  243.     return 48
  244.   end
  245.   def col_max
  246.     return 8
  247.   end
  248.   def visible_line_number
  249.     item_max
  250.   end
  251.   def make_command_list
  252.     add_main_commands
  253.     add_formation_command
  254.     add_original_commands
  255.     add_save_command
  256.     add_game_end_command
  257.   end
  258.   def draw_item(index)
  259.     x = item_rect(index).x
  260.     y = item_rect(index).y
  261.     draw_icon(VJSM::Icons[index], x, y, command_enabled?(index))
  262.   end
  263.   def add_main_commands
  264.     add_command(Vocab::item,   :item,   main_commands_enabled)
  265.     add_command(Vocab::skill,  :skill,  main_commands_enabled)
  266.     add_command(Vocab::equip,  :equip,  main_commands_enabled)
  267.     add_command(Vocab::status, :status, main_commands_enabled)
  268.   end
  269.   def add_formation_command
  270.     add_command(Vocab::formation, :formation, formation_enabled)
  271.   end
  272.   def get_name(index)
  273.     return command_name(index)
  274.   end
  275.   def add_original_commands
  276.   end
  277.   def add_save_command
  278.     add_command(VJSM::File, :file)
  279.   end
  280.   def add_game_end_command
  281.     add_command(Vocab::game_end, :game_end)
  282.   end
  283.   def main_commands_enabled
  284.     $game_party.exists
  285.   end
  286.   def formation_enabled
  287.     $game_party.members.size >= 2 && !$game_system.formation_disabled
  288.   end
  289.   def save_enabled
  290.     !$game_system.save_disabled
  291.   end
  292.   def process_ok
  293.     @@last_command_symbol = current_symbol
  294.     super
  295.   end
  296.   def select_last
  297.     select_symbol(@@last_command_symbol)
  298.   end
  299. end
  300. class Scene_Menu < Scene_MenuBase
  301.   #--------------------------------------------------------------------------
  302.   # * Inicializaзгo do processo
  303.   #--------------------------------------------------------------------------
  304.   def start
  305.     super
  306.     create_command_window
  307.     create_gold_window
  308.     create_status_window
  309.     create_time_window
  310.     create_map_window
  311.   end
  312.   #--------------------------------------------------------------------------
  313.   # * Criaзгo da janela de comando
  314.   #--------------------------------------------------------------------------
  315.   def create_command_window
  316.     @command_window = Window_MenuCommand.new
  317.     @command_window.set_handler(:item,      method(:command_item))
  318.     @command_window.set_handler(:skill,     method(:command_personal))
  319.     @command_window.set_handler(:equip,     method(:command_personal))
  320.     @command_window.set_handler(:status,    method(:command_personal))
  321.     @command_window.set_handler(:formation, method(:command_formation))
  322.     @command_window.set_handler(:file,      method(:command_save))
  323.     @command_window.set_handler(:game_end,  method(:command_game_end))
  324.     @command_window.set_handler(:cancel,    method(:return_scene))
  325.     @command_window.y = 0
  326.     @command_window.x = 0
  327.     @command_name = Window_Command_Name.new(@command_window.get_name(@command_window.index))
  328.     @command_name.y = @command_window.y
  329.     @command_name.x = @command_window.x + @command_window.width
  330.   end
  331.   #--------------------------------------------------------------------------
  332.   # * Criaзгo da janela de dinheiro
  333.   #--------------------------------------------------------------------------
  334.   def create_gold_window
  335.     x = @command_name.x + @command_name.width
  336.     y = @command_name.y
  337.     @gold_window = Window_MenuGold.new(x,y)
  338.   end
  339.   #--------------------------------------------------------------------------
  340.   # * Criaзгo da janela de atributos
  341.   #--------------------------------------------------------------------------
  342.   def create_status_window
  343.     x = @command_window.x
  344.     y = @command_window.y  + @command_window.height
  345.     @status_window = Window_MenuStatus.new(x, y)
  346.   end
  347.   def create_time_window
  348.     y = @status_window.y + @status_window.height
  349.     x = 0
  350.     @window_time = Window_Time.new(x,y)
  351.   end
  352.   def create_map_window
  353.     y = @window_time.y
  354.     x = @window_time.x + @window_time.width
  355.     @window_map = Window_MenuMapName.new(x,y)
  356.   end
  357.   def update
  358.     update_basic
  359.     @command_name.set_text(@command_window.get_name(@command_window.index))
  360.   end
  361.   #--------------------------------------------------------------------------
  362.   # * Comando [Item]
  363.   #--------------------------------------------------------------------------
  364.   def command_item
  365.     SceneManager.call(Scene_Item)
  366.   end
  367.   #--------------------------------------------------------------------------
  368.   # * Comando [Habilidade] [Equipamentos] [Atributos]
  369.   #--------------------------------------------------------------------------
  370.   def command_personal
  371.     @status_window.select_last
  372.     @status_window.activate
  373.     @status_window.set_handler(:ok,     method(:on_personal_ok))
  374.     @status_window.set_handler(:cancel, method(:on_personal_cancel))
  375.   end
  376.   #--------------------------------------------------------------------------
  377.   # * Comando [Formaзгo]
  378.   #--------------------------------------------------------------------------
  379.   def command_formation
  380.     @status_window.select_last
  381.     @status_window.activate
  382.     @status_window.set_handler(:ok,     method(:on_formation_ok))
  383.     @status_window.set_handler(:cancel, method(:on_formation_cancel))
  384.   end
  385.   #--------------------------------------------------------------------------
  386.   # * Comando [Salvar]
  387.   #--------------------------------------------------------------------------
  388.   def command_save
  389.     SceneManager.call(Scene_Save)
  390.   end
  391.   #--------------------------------------------------------------------------
  392.   # * Comando [Fim do Jogo]
  393.   #--------------------------------------------------------------------------
  394.   def command_game_end
  395.     SceneManager.call(Scene_End)
  396.   end
  397.   #--------------------------------------------------------------------------
  398.   # * Comandos individuais [Confirmaзгo]
  399.   #--------------------------------------------------------------------------
  400.   def on_personal_ok
  401.     case @command_window.current_symbol
  402.     when :skill
  403.       SceneManager.call(Scene_Skill)
  404.     when :equip
  405.       SceneManager.call(Scene_Equip)
  406.     when :status
  407.       SceneManager.call(Scene_Status)
  408.     end
  409.   end
  410.   #--------------------------------------------------------------------------
  411.   # * Comandos individuais [Cancelamento]
  412.   #--------------------------------------------------------------------------
  413.   def on_personal_cancel
  414.     @status_window.unselect
  415.     @command_window.activate
  416.   end
  417.   #--------------------------------------------------------------------------
  418.   # * Mudanзa de Ordem [Confirmaзгo]
  419.   #--------------------------------------------------------------------------
  420.   def on_formation_ok
  421.     if @status_window.pending_index >= 0
  422.       $game_party.swap_order(@status_window.index,
  423.                              @status_window.pending_index)
  424.       @status_window.pending_index = -1
  425.       @status_window.redraw_item(@status_window.index)
  426.     else
  427.       @status_window.pending_index = @status_window.index
  428.     end
  429.     @status_window.activate
  430.   end
  431.   #--------------------------------------------------------------------------
  432.   # * Mudanзa de Ordem [Cancelamento]
  433.   #--------------------------------------------------------------------------
  434.   def on_formation_cancel
  435.     if @status_window.pending_index >= 0
  436.       @status_window.pending_index = -1
  437.       @status_window.activate
  438.     else
  439.       @status_window.unselect
  440.       @command_window.activate
  441.     end
  442.   end
  443. end
复制代码
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

6
发表于 2017-4-16 16:57:50 | 只看该作者
RUBY 代码复制
  1. class Scene_Menu < Scene_MenuBase
  2.   def create_gold_window
  3.     @gold_window = Window_Gold.new
  4.     @gold_window.x = @command_name.x + @command_name.width
  5.     @gold_window.y = @command_name.y
  6.   end
  7. end

点评

给你点赞  发表于 2017-4-16 19:07
笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 08:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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