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

Project1

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

[RMVX发布] VX 新·华丽商店画面 ---[华丽商店就在此!]

[复制链接]

Lv1.梦旅人

梦石
0
星屑
196
在线时间
835 小时
注册时间
2012-9-16
帖子
1811
跳转到指定楼层
1
发表于 2013-8-4 14:25:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 yangjunyin2002 于 2013-8-4 14:28 编辑

写在前面

又随便写了个脚本,话说终于写了个309行的脚本啦~(注释占了几十行吧...)
然后呢,无聊着就发上来,注释是刚才随便加上去的。。。(我还写了个地图快捷功能脚本,等我发布后,如果这个脚本和地图快捷功能脚本一起用会发生...所以我加了个注释提醒下,如果使用了就改下脚本哪里哪里的。。。)...我不废话了我(众:你还在废话!)然后上截图和脚本和范例吧。。。最好下范例。。。




                         哎呀!我一不小心..把脚本里注释的“商店”写成“菜单”了。。。所以请忽视“十分华丽的菜单脚本”这些注释吧。。。



截图






脚本

                                建议直接下载范例...
  1. =begin

  2.               ┌─────────────────────────┐
  3.               │ 此脚本来自小y游戏制作室,使用和转载请保留此信息。│
  4.               └─────────────────────────┘
  5.                    ┌─────────────────────┐
  6.                    │ 此脚本来自66RPG,使用和转载请保留此信息。│
  7.                    └─────────────────────┘
  8.                  小y脚本站:http://www.ygameSprite.com/(已失效)

  9. -----------------------------------------------------------------------------
  10.                              *新·华丽商店画面*
  11.                                                        by.小y
  12. -----------------------------------------------------------------------------
  13.   ■ 说明
  14.     十分华丽的菜单脚本。
  15.   ■ 功能
  16.     此脚本与一般的菜单脚本的不同点:
  17.         ☞商店画面中的窗口透明度为0,十分简洁而美观
  18.         ☞商店画面各个窗口坐标大幅度更改,十分独特
  19.         ☞商店画面里增加“物品”、“装备”选项,即买即试
  20.         ☞商店画面增加背景图
  21.   ■ 使用
  22.     插入脚本,在游戏Graphics\System文件夹中插入一张名称为“商店背景”
  23.     的图片(也可以在306行设定商店背景图的名称)。
  24.   ■ 注意   【醒目】
  25.     如果你和小y的“地图快捷功能”脚本一起使用,那请注意了!!!因为地图
  26.     快捷功能脚本的场景是直接返回地图画面而不是菜单画面的,所以,你需要把
  27.     77行和91行的$scene = Scene_Menu.new那句改成$scene = Scene_Map.new!
  28. -----------------------------------------------------------------------------

  29. =end

  30. #---------------------------------------
  31. #  ● 脚本部分
  32. #---------------------------------------
  33. #-----------------
  34. #  Window_Gold1
  35. #-----------------
  36. class Window_Gold1 < Window_Base
  37.   def initialize(x, y)
  38.     super(x, y, 160, WLH + 32)
  39.     refresh
  40.   end
  41.   def refresh
  42.     self.contents.clear
  43.     draw_currency_value($game_party.gold, 4, 0, 120)
  44.   end
  45. end
  46. #-----------------
  47. #  Window_Help1
  48. #-----------------
  49. class Window_Help1 < Window_Base
  50.   def initialize
  51.     super(0, 356, 544, WLH + 32)
  52.   end
  53.   def set_text(text, align = 0)
  54.     if text != @text or align != @align
  55.       self.contents.clear
  56.       self.contents.font.color = normal_color
  57.       self.contents.draw_text(4, 0, self.width - 40, WLH, text, align)
  58.       @text = text
  59.       @align = align
  60.     end
  61.   end
  62. end
  63. #-----------------
  64. #  Scene_Equip
  65. #-----------------
  66. class Scene_Equip < Scene_Base
  67.   def return_scene
  68.     if $scene_home == true
  69.       $scene_equip = true
  70.       $scene_home = false
  71.       $scene = Scene_Shop.new
  72.     else
  73.       $scene = Scene_Menu.new(2)
  74.     end
  75.   end
  76. end
  77. #-----------------
  78. #  Scene_Item
  79. #-----------------
  80. class Scene_Item < Scene_Base
  81.   def return_scene
  82.     if $scene_home == true
  83.       $scene_equip = true
  84.       $scene_home = false
  85.       $scene = Scene_Shop.new
  86.     else
  87.       $scene = Scene_Menu.new(0)
  88.     end
  89.   end
  90. end
  91. #-----------------
  92. #  Scene_Shop
  93. #-----------------
  94. class Scene_Shop < Scene_Base
  95.   def start
  96.     super
  97.     create_menu_background
  98.     create_command_window
  99.     @rw = Window_ShopBackground.new(0,0)
  100.     @rw.opacity = 0
  101.     @help1_window = Window_Help1.new
  102.     @gold1_window = Window_Gold1.new(360, 320)#(370, 32)
  103.     @dummy_window = Window_Base.new(159, 112, 385, 304)#(0, 112, 544, 304)
  104.     @buy_window = Window_ShopBuy.new(20, 52)#(0, 112)
  105.     @buy_window.active = false
  106.     @buy_window.visible = false
  107.     @buy_window.help_window = @help1_window
  108.     @sell_window = Window_ShopSell.new(20, 52, 484, 324)#524,364#(0, 112, 544, 304)
  109.     @sell_window.active = false
  110.     @sell_window.visible = false
  111.     @sell_window.help_window = @help1_window
  112.     @number_window = Window_ShopNumber.new(120, 52)#(0, 112)
  113.     @number_window.active = false
  114.     @number_window.visible = false
  115.     @status_window = Window_ShopStatus.new(304, 52)#(304, 112)
  116.     @status_window.visible = false
  117.     @status_window.opacity=0
  118.     @buy_window.opacity=0
  119.     @gold1_window.opacity=0
  120.     @help1_window.opacity=0
  121.     @number_window.opacity=0
  122.     @sell_window.opacity=0
  123.     @status_window.opacity=0
  124.     @dummy_window.opacity=0
  125.     @command_window.opacity=0
  126.   end
  127.   def terminate
  128.     super
  129.     dispose_menu_background
  130.     dispose_command_window
  131.     @rw.dispose
  132.     @help1_window.dispose
  133.     @gold1_window.dispose
  134.     @dummy_window.dispose
  135.     @buy_window.dispose
  136.     @sell_window.dispose
  137.     @number_window.dispose
  138.     @status_window.dispose
  139.   end
  140.   def update
  141.     super
  142.     update_menu_background
  143.     @help1_window.update
  144.     @command_window.update
  145.     @gold1_window.update
  146.     @dummy_window.update
  147.     @buy_window.update
  148.     @sell_window.update
  149.     @number_window.update
  150.     @status_window.update
  151.     if @command_window.active
  152.       update_command_selection
  153.     elsif @buy_window.active
  154.       update_buy_selection
  155.     elsif @sell_window.active
  156.       update_sell_selection
  157.     elsif @number_window.active
  158.       update_number_input
  159.     end
  160.   end
  161.   def create_command_window
  162.     s1 = Vocab::ShopBuy
  163.     s2 = Vocab::ShopSell
  164.     s3 = Vocab::item
  165.     s4 = Vocab::equip
  166.     s5 = Vocab::ShopCancel
  167.     @command_window = Window_Command.new(414, [s1, s2, s3, s4, s5], 5)#384,3
  168.     @command_window.x = 80
  169.     @command_window.y = 7#56
  170.     if $game_temp.shop_purchase_only
  171.       @command_window.draw_item(1, false)
  172.     end
  173.   end
  174.   def update_command_selection
  175.     if Input.trigger?(Input::B)
  176.       Sound.play_cancel
  177.       $scene = Scene_Map.new
  178.     elsif Input.trigger?(Input::C)
  179.       case @command_window.index
  180.       when 0  # 购买
  181.         Sound.play_decision
  182.         @command_window.active = false
  183.         @dummy_window.visible = false
  184.         @buy_window.active = true
  185.         @buy_window.visible = true
  186.         @buy_window.refresh
  187.         @status_window.visible = true
  188.       when 1  # 卖出
  189.         if $game_temp.shop_purchase_only
  190.           Sound.play_buzzer
  191.         else
  192.           Sound.play_decision
  193.           @command_window.active = false
  194.           @dummy_window.visible = false
  195.           @sell_window.active = true
  196.           @sell_window.visible = true
  197.           @sell_window.refresh
  198.         end
  199.       when 2  # 背包
  200.         Sound.play_decision
  201.         $scene_home = true
  202.         $scene = Scene_Item.new
  203.       when 3  # 装备
  204.         Sound.play_decision
  205.         $scene_home = true
  206.         $scene = Scene_Equip.new(0)
  207.       when 4  # 取消
  208.         Sound.play_decision
  209.         $scene = Scene_Map.new
  210.       end
  211.     end
  212.   end
  213.   def update_buy_selection
  214.     @status_window.item = @buy_window.item
  215.     if Input.trigger?(Input::B)
  216.       Sound.play_cancel
  217.       @command_window.active = true
  218.       @dummy_window.visible = true
  219.       @buy_window.active = false
  220.       @buy_window.visible = false
  221.       @status_window.visible = false
  222.       @status_window.item = nil
  223.       @help1_window.set_text("")
  224.       return
  225.     end
  226.     if Input.trigger?(Input::C)
  227.       @item = @buy_window.item
  228.       number = $game_party.item_number(@item)
  229.       if @item == nil or @item.price > $game_party.gold or number == 99
  230.         Sound.play_buzzer
  231.       else
  232.         Sound.play_decision
  233.         max = @item.price == 0 ? 99 : $game_party.gold / @item.price
  234.         max = [max, 99 - number].min
  235.         @buy_window.active = false
  236.         @buy_window.visible = false
  237.         @number_window.set(@item, max, @item.price)
  238.         @number_window.active = true
  239.         @number_window.visible = true
  240.       end
  241.     end
  242.   end
  243.   def update_sell_selection
  244.     if Input.trigger?(Input::B)
  245.       Sound.play_cancel
  246.       @command_window.active = true
  247.       @dummy_window.visible = true
  248.       @sell_window.active = false
  249.       @sell_window.visible = false
  250.       @status_window.item = nil
  251.       @help1_window.set_text("")
  252.     elsif Input.trigger?(Input::C)
  253.       @item = @sell_window.item
  254.       @status_window.item = @item
  255.       if @item == nil or @item.price == 0
  256.         Sound.play_buzzer
  257.       else
  258.         Sound.play_decision
  259.         max = $game_party.item_number(@item)
  260.         @sell_window.active = false
  261.         @sell_window.visible = false
  262.         @number_window.set(@item, max, @item.price / 2)
  263.         @number_window.active = true
  264.         @number_window.visible = true
  265.         @status_window.visible = true
  266.       end
  267.     end
  268.   end
  269.   def decide_number_input
  270.     Sound.play_shop
  271.     @number_window.active = false
  272.     @number_window.visible = false
  273.     case @command_window.index
  274.     when 0  # 购买
  275.       $game_party.lose_gold(@number_window.number * @item.price)
  276.       $game_party.gain_item(@item, @number_window.number)
  277.       @gold1_window.refresh
  278.       @buy_window.refresh
  279.       @status_window.refresh
  280.       @buy_window.active = true
  281.       @buy_window.visible = true
  282.     when 1  # 卖出
  283.       $game_party.gain_gold(@number_window.number * (@item.price / 2))
  284.       $game_party.lose_item(@item, @number_window.number)
  285.       @gold1_window.refresh
  286.       @sell_window.refresh
  287.       @status_window.refresh
  288.       @sell_window.active = true
  289.       @sell_window.visible = true
  290.       @status_window.visible = false
  291.     end
  292.   end
  293. end
  294. #-----------------
  295. #  Window_ShopBackground
  296. #-----------------
  297. class Window_ShopBackground < Window_Base
  298.   def initialize(x, y)
  299.     super(0, 0, 544, 416)
  300.     self.z = 0
  301.     rectrw = Rect.new(0, 0, 640, 480)
  302.     rw = Cache.system("商店背景")
  303.     self.contents.blt(0, 0, rw, rectrw)
  304.   end
  305. end
复制代码
范例

华丽商店脚本-范例.zip (566.53 KB, 下载次数: 184)

——旧坑欢迎戳

Lv1.梦旅人

梦石
0
星屑
70
在线时间
1083 小时
注册时间
2013-3-29
帖子
2394
2
发表于 2013-8-4 14:50:13 | 只看该作者
效果感觉不太好,在所有选项里加个边框可能会好些。

点评

是吗?哦。。。那你可以去改啊。。。脚本121行左右,把window.opacity=0都改成225  发表于 2013-8-4 14:54

坑的进度如上                                                                                                        点击↑
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2339
在线时间
568 小时
注册时间
2012-5-3
帖子
86

开拓者

3
发表于 2013-8-4 23:35:20 | 只看该作者
最近在学脚本。就拿高手做的脚本来研究下吧。看下思路是怎样的。学习学习。

点评

额,说实话我不会写脚本。。。这脚本是我研究了半天才。。。  发表于 2013-8-6 20:49
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 08:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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