Project1

标题: 关于随机属性与商店的问题,请大神帮忙解决。 [打印本页]

作者: 封尘    时间: 2016-4-20 23:05
标题: 关于随机属性与商店的问题,请大神帮忙解决。
  刚从网上找了整合版的随机属性的最终修改的版本,可是用了之后商店卖的东西都是身上的装备而且只有一件,鞋子之类的东西根本不显示了 ,我把脚本删了就恢复正常了,求各位大神们帮我看一下吧,谢谢大神们了。
下面是脚本和图.  第一次发帖子,不太懂规矩,请原谅。

5CHIHGSAYSN~0GRHOW9O7ID.png (957 Bytes, 下载次数: 32)

这是商店卖的东西

这是商店卖的东西

5~$GFQN}Z6A2_PG82C{TJ$2.png (246.55 KB, 下载次数: 30)

这是进到游戏后的商店

这是进到游戏后的商店

作者: 封尘    时间: 2016-4-21 08:16
这把长剑还是我有装备着的,如果我什么装备都没有,商店里就什么都没得卖。
作者: 夜狠简单    时间: 2016-4-21 14:31
总感觉还少了什么东西,尤其是$base

作者: 封尘    时间: 2016-4-21 19:50
http://pan.baidu.com/s/1slqYRyH
这是我的网盘链接  希望大神能够帮帮我,在下感激不尽!
作者: 夜狠简单    时间: 2016-4-21 21:19
本帖最后由 夜狠简单 于 2016-4-21 22:33 编辑

RUBY 代码复制
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 简易商店拓展描绘脚本 - FSL_SHOP ◆ VX ◆
  3. #_/
  4. #_/    ◇ 许可协议 :FSL       ◇
  5. #_/    ◇ 项目分类 : 角色辅助  ◇
  6. #_/    ◇ 项目版本 : 1.5.903   ◇
  7. #_/    ◇ 建立日期 : 2010/8/26 ◇
  8. #_/    ◇ 最后更新 : 2010/9/03 ◇
  9. #_/----------------------------------------------------------------------------
  10. #_/  作者:wangswz DeathKing
  11. #_/  引用网址: [url]http://rpg.blue/thread-154915-1-1.html[/url]
  12. #_/============================================================================
  13. #_/ 【基本机能】方便商店购物选择
  14. #_/  放在默认脚本之后,Main脚本之前,通过事件指令【商店处理】调用。
  15. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  16. #===============================================================================
  17. #-------------------------------------------------------------------------------
  18. # ▼ 通用配置模块
  19. #-------------------------------------------------------------------------------
  20. module FSL
  21.   module SHOP
  22.     # ◆ 无法装备的提示信息
  23.     Shop_help = "-无法装备-"
  24.  
  25.     # ◆ 无法使用的提示信息
  26.     Shop_help2 = "-无法使用-"
  27.  
  28.     # ◆ 设置atk def spi agi 上升 下降 相等时 图标显示 4个一组
  29.     Shop_icon = [
  30.     120,121,122,123,
  31.     124,125,126,127,
  32.       0,  0,  0,  0
  33.     ]
  34.   end
  35. end
  36. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  37. $imported = {} if $imported == nil
  38. $fscript = {} if $fscript == nil
  39. $fscript["FSL_SHOP"] = "1.5.903"
  40. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  41.  
  42. #==============================================================================
  43. # ■ Scene_Map
  44. #==============================================================================
  45.  
  46. class Scene_Map < Scene_Base
  47.   #--------------------------------------------------------------------------
  48.   # ● ショップ画面への切り替え
  49.   #--------------------------------------------------------------------------
  50.   def call_shop
  51.     if $imported["ComposeItem"] == true && $game_switches[KGC::ComposeItem::COMPOSE_CALL_SWITCH]
  52.       # 合成画面に移行
  53.       $game_temp.next_scene = nil
  54.       $game_switches[KGC::ComposeItem::COMPOSE_CALL_SWITCH] = false
  55.       $scene = Scene_ComposeItem.new
  56.     else
  57.       $game_temp.next_scene = nil
  58.       $scene = Scene_Shop2.new
  59.     end
  60.   end
  61. end
  62. #==============================================================================
  63. # ■ Scene_Shop
  64. #------------------------------------------------------------------------------
  65. #  处理商店画面的类。
  66. #==============================================================================
  67.  
  68. class Scene_Shop2 < Scene_Base
  69.   #--------------------------------------------------------------------------
  70.   # ● 开始处理
  71.   #--------------------------------------------------------------------------
  72.   def start
  73.     super
  74.     create_menu_background
  75.     create_command_window
  76.     create_command_window2
  77.     @help_window = Window_Help.new
  78.     @gold_window = Window_Gold.new(384, 56)
  79.     @dummy_window = Window_Base.new(0, 112, 544, 304)
  80.     @dummy_window2 = Window_Base.new(304, 112, 240, 304)
  81.     @dummy_window3 = Window_Base.new(0, 168, 304, 248)
  82.     @dummy_window2.visible = false
  83.     @dummy_window3.visible = false
  84.     @buy_window = Window_ShopBuy2.new(0, 168)
  85.     @buy_window.active = false
  86.     @buy_window.visible = false
  87.     @buy_window.help_window = @help_window
  88.     @sell_window = Window_ShopSell.new(0, 112, 544, 304)
  89.     @sell_window.active = false
  90.     @sell_window.visible = false
  91.     @sell_window.help_window = @help_window
  92.     @number_window = Window_ShopNumber.new(0, 112)
  93.     @number_window.active = false
  94.     @number_window.visible = false
  95.     @actor_index = 0
  96.     @status_window = Window_Shop_ActorStatus.new($game_party.members[@actor_index])
  97.     @status_window.visible = false
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● 结束处理
  101.   #--------------------------------------------------------------------------
  102.   def terminate
  103.     super
  104.     dispose_menu_background
  105.     dispose_command_window
  106.     dispose_command_window2
  107.     @help_window.dispose
  108.     @gold_window.dispose
  109.     @dummy_window.dispose
  110.     @dummy_window2.dispose
  111.     @dummy_window3.dispose
  112.     @buy_window.dispose
  113.     @sell_window.dispose
  114.     @number_window.dispose
  115.     @status_window.dispose
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 更新画面
  119.   #--------------------------------------------------------------------------
  120.   def update
  121.     super
  122.     update_menu_background
  123.     @help_window.update
  124.     @command_window.update
  125.     @command_window2.update
  126.     @gold_window.update
  127.     @dummy_window.update
  128.     @dummy_window2.update
  129.     @dummy_window3.update
  130.     @buy_window.update
  131.     @sell_window.update
  132.     @number_window.update
  133.     @status_window.update
  134.     if @command_window.active
  135.       update_command_selection
  136.     elsif @buy_window.active
  137.       update_buy_selection1
  138.     elsif @sell_window.active
  139.       update_sell_selection
  140.     elsif @number_window.active
  141.       update_number_input
  142.     elsif @command_window2.active
  143.       update_command_selection2
  144.     end
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ● 生成命令窗口
  148.   #--------------------------------------------------------------------------
  149.   def create_command_window
  150.     s1 = Vocab::ShopBuy
  151.     s2 = Vocab::ShopSell
  152.     s3 = Vocab::ShopCancel
  153.     @command_window = Window_Command.new(384, [s1, s2, s3], 3)
  154.     @command_window.y = 56
  155.     if $game_temp.shop_purchase_only
  156.       @command_window.draw_item(1, false)
  157.     end
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   # ● 释放命令窗口
  161.   #--------------------------------------------------------------------------
  162.   def dispose_command_window
  163.     @command_window.dispose
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 更新命令窗口
  167.   #--------------------------------------------------------------------------
  168.   def update_command_selection
  169.     if Input.trigger?(Input::B)
  170.       Sound.play_cancel
  171.       $scene = Scene_Map.new
  172.     elsif Input.trigger?(Input::C)
  173.       case @command_window.index
  174.       when 0  # 买入
  175.         Sound.play_decision
  176.         @command_window.active = false
  177.         @dummy_window.visible = false
  178.         @dummy_window2.visible = true
  179.         @dummy_window3.visible = true
  180.         @command_window2.active = true
  181.         @command_window2.visible = true
  182.       when 1  # 卖出
  183.         if $game_temp.shop_purchase_only
  184.           Sound.play_buzzer
  185.         else
  186.           Sound.play_decision
  187.           @command_window.active = false
  188.           @dummy_window.visible = false
  189.           @sell_window.active = true
  190.           @sell_window.visible = true
  191.           @sell_window.refresh
  192.         end
  193.       when 2  # 离开
  194.         Sound.play_decision
  195.         $scene = Scene_Map.new
  196.       end
  197.     end
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 生成二级命令窗口
  201.   #--------------------------------------------------------------------------
  202.   def create_command_window2
  203.     s1 = "物品"
  204.     s2 = "武器"
  205.     s3 = "防具"
  206.     @command_window2 = Window_Command.new(304, [s1, s2, s3], 3)
  207.     @command_window2.x = 0
  208.     @command_window2.y = 112
  209.     @command_window2.active = false
  210.     @command_window2.visible = false
  211.   end
  212.   #--------------------------------------------------------------------------
  213.   # ● 释放二级命令窗口
  214.   #--------------------------------------------------------------------------
  215.   def dispose_command_window2
  216.     @command_window2.dispose
  217.   end
  218.   #--------------------------------------------------------------------------
  219.   # ● 更新二级命令窗口
  220.   #--------------------------------------------------------------------------
  221.   def update_command_selection2
  222.     if Input.trigger?(Input::B)
  223.       Sound.play_cancel
  224.       @command_window.active = true
  225.       @command_window2.active = false
  226.       @command_window2.visible = false
  227.       @dummy_window.visible = true
  228.       @dummy_window2.visible = false
  229.       @dummy_window3.visible = false
  230.       @buy_window.active = false
  231.       @buy_window.visible = false
  232.       @status_window.visible = false
  233.       @status_window.item = nil
  234.       @help_window.set_text("")
  235.       return
  236.     elsif Input.trigger?(Input::C)
  237.       case @command_window2.index
  238.       when 0
  239.         Sound.play_decision
  240.         @command_window2.active = false
  241.         @buy_window.index = 0
  242.         @buy_window.active = true
  243.         @buy_window.visible = true
  244.         @buy_window.type = 0
  245.         @buy_window.refresh
  246.         @status_window.visible = true
  247.       when 1
  248.         Sound.play_decision
  249.         @command_window2.active = false
  250.         @buy_window.index = 0
  251.         @buy_window.active = true
  252.         @buy_window.visible = true
  253.         @buy_window.type = 1
  254.         @buy_window.refresh
  255.         @status_window.visible = true
  256.       when 2
  257.         Sound.play_decision
  258.         @command_window2.active = false
  259.         @buy_window.index = 0
  260.         @buy_window.active = true
  261.         @buy_window.visible = true
  262.         @buy_window.type = 2
  263.         @buy_window.refresh
  264.         @status_window.visible = true
  265.       end
  266.     end
  267.   end
  268.   #--------------------------------------------------------------------------
  269.   # ● 更新买入选择
  270.   #--------------------------------------------------------------------------
  271.   def update_buy_selection1
  272.     @status_window.item = @buy_window.item
  273.     if Input.trigger?(Input::B)
  274.       Sound.play_cancel
  275.       @command_window2.active = true
  276.       @buy_window.active = false
  277.       @buy_window.visible = false
  278.       @status_window.visible = false
  279.       @status_window.item = nil
  280.       @help_window.set_text("")
  281.       return
  282.     end
  283.     if Input.trigger?(Input::C)
  284.       @item = @buy_window.item
  285.       number = $game_party.item_number(@item)
  286.       if $imported["LimitBreak"] == true
  287.         if @item == nil || @item.price > $game_party.gold ||
  288.           number == @item.number_limit
  289.           Sound.play_buzzer
  290.         else
  291.           Sound.play_decision
  292.           max = (@item.price == 0 ?
  293.           @item.number_limit : $game_party.gold / @item.price)
  294.           max = [max, @item.number_limit - number].min
  295.           @buy_window.active = false
  296.           @buy_window.visible = false
  297.           @number_window.set(@item, max, @item.price)
  298.           @number_window.active = true
  299.           @number_window.visible = true
  300.         end
  301.       else
  302.         if @item == nil or @item.price > $game_party.gold or number == 99
  303.           Sound.play_buzzer
  304.         else
  305.           Sound.play_decision
  306.           max = @item.price == 0 ? 99 : $game_party.gold / @item.price
  307.           max = [max, 99 - number].min
  308.           @buy_window.active = false
  309.           @buy_window.visible = false
  310.           @number_window.set(@item, max, @item.price)
  311.           @number_window.active = true
  312.           @number_window.visible = true
  313.         end
  314.       end
  315.     end
  316.     if Input.trigger?(Input::RIGHT)
  317.       Sound.play_cursor
  318.       next_actor
  319.     elsif Input.trigger?(Input::LEFT)
  320.       Sound.play_cursor
  321.       prev_actor
  322.     end
  323.     if Input.trigger?(Input::X)
  324.       @buy_window.sort_item
  325.     end
  326.   end
  327.   #--------------------------------------------------------------------------
  328.   # ● 切换至下一角色画面
  329.   #--------------------------------------------------------------------------
  330.   def next_actor
  331.     @actor_index += 1
  332.     @actor_index %= $game_party.members.size
  333.     @status_window.actor = ($game_party.members[@actor_index])
  334.   end
  335.   #--------------------------------------------------------------------------
  336.   # ● 切换至上一角色画面
  337.   #--------------------------------------------------------------------------
  338.   def prev_actor
  339.     @actor_index += $game_party.members.size - 1
  340.     @actor_index %= $game_party.members.size
  341.     @status_window.actor = ($game_party.members[@actor_index])
  342.   end
  343.   #--------------------------------------------------------------------------
  344.   # ● 更新卖出选择
  345.   #--------------------------------------------------------------------------
  346.   def update_sell_selection
  347.     if Input.trigger?(Input::B)
  348.       Sound.play_cancel
  349.       @command_window.active = true
  350.       @dummy_window.visible = true
  351.       @sell_window.active = false
  352.       @sell_window.visible = false
  353.       @status_window.item = nil
  354.       @help_window.set_text("")
  355.     elsif Input.trigger?(Input::C)
  356.       @item = @sell_window.item
  357.       @status_window.item = @item
  358.       if @item == nil or @item.price == 0
  359.         Sound.play_buzzer
  360.       else
  361.         Sound.play_decision
  362.         max = $game_party.item_number(@item)
  363.         @sell_window.active = false
  364.         @sell_window.visible = false
  365.         @number_window.set(@item, max, @item.price / 2)
  366.         @number_window.active = true
  367.         @number_window.visible = true
  368.         @status_window.visible = true
  369.       end
  370.     end
  371.   end
  372.   #--------------------------------------------------------------------------
  373.   # ● 更新数值输入
  374.   #--------------------------------------------------------------------------
  375.   def update_number_input
  376.     if Input.trigger?(Input::B)
  377.       cancel_number_input
  378.     elsif Input.trigger?(Input::C)
  379.       decide_number_input
  380.     end
  381.   end
  382.   #--------------------------------------------------------------------------
  383.   # ● 取消数值输入
  384.   #--------------------------------------------------------------------------
  385.   def cancel_number_input
  386.     Sound.play_cancel
  387.     @number_window.active = false
  388.     @number_window.visible = false
  389.     case @command_window.index
  390.     when 0  # 买入
  391.       @buy_window.active = true
  392.       @buy_window.visible = true
  393.     when 1  # 卖出
  394.       @sell_window.active = true
  395.       @sell_window.visible = true
  396.       @status_window.visible = false
  397.     end
  398.   end
  399.   #--------------------------------------------------------------------------
  400.   # ● 确认数值输入
  401.   #--------------------------------------------------------------------------
  402.   def decide_number_input
  403.     Sound.play_shop
  404.     @number_window.active = false
  405.     @number_window.visible = false
  406.     case @command_window.index
  407.     when 0  # 买入
  408.       $game_party.lose_gold(@number_window.number * @item.price)
  409.       $game_party.gain_item(@item, @number_window.number)
  410.       @gold_window.refresh
  411.       @buy_window.refresh
  412.       @status_window.refresh
  413.       @buy_window.active = true
  414.       @buy_window.visible = true
  415.     when 1  # 卖出
  416.       $game_party.gain_gold(@number_window.number * (@item.price / 2))
  417.       $game_party.lose_item(@item, @number_window.number)
  418.       @gold_window.refresh
  419.       @sell_window.refresh
  420.       @status_window.refresh
  421.       @sell_window.active = true
  422.       @sell_window.visible = true
  423.       @status_window.visible = false
  424.     end
  425.   end
  426. end
  427. #==============================================================================
  428. # ■ Window_Shop_ActorStatus
  429. #------------------------------------------------------------------------------
  430. #  显示角色的状态窗口。
  431. #==============================================================================
  432.  
  433. class Window_Shop_ActorStatus < Window_Base
  434.   #--------------------------------------------------------------------------
  435.   # ● 初始化对像
  436.   #     actor : 角色
  437.   #--------------------------------------------------------------------------
  438.   def initialize(actor, item = nil, sort = 0)
  439.     super(304, 112, 240, 304)
  440.     @item = item
  441.     @actor = actor
  442.     @sort = sort
  443.     refresh
  444.   end
  445.   #--------------------------------------------------------------------------
  446.   # ● 刷新
  447.   #--------------------------------------------------------------------------
  448.   def refresh
  449.     self.contents.clear
  450.     draw_Shopface(@actor.face_name, @actor.face_index, 84, 4)
  451.     draw_actor_name(@actor, 4, 0)
  452.     draw_actor_graphic(@actor, 192, 56)
  453.  
  454.     if @item != nil
  455.       draw_actor_parameter_change(@actor, 4, 96)
  456.       number = $game_party.item_number(@item)
  457.       self.contents.font.color = system_color
  458.       self.contents.draw_text(4, WLH * 10, 200, WLH, Vocab::Possession)
  459.       self.contents.font.color = normal_color
  460.       self.contents.draw_text(4, WLH * 10, 200, WLH, number, 2)
  461.       if @item.is_a?(RPG::Item) && @item.scope > 0
  462.         draw_item_parameter_change(4, 48)
  463.       elsif @item.is_a?(RPG::Item)
  464.         self.contents.font.color = system_color
  465.         self.contents.draw_text(0, y + 24, 200, WLH, FSL::SHOP::Shop_help2, 1)
  466.       end
  467.     end
  468.   end
  469.   #--------------------------------------------------------------------------
  470.   # ● 绘制物品效果
  471.   #     x     : 绘制点 X 座标
  472.   #     y     : 绘制点 Y 座标
  473.   #--------------------------------------------------------------------------
  474.   def draw_item_parameter_change(x, y)
  475.     if @item.scope > 6
  476.       draw_actor_hp(@actor, x, y)
  477.       draw_actor_mp(@actor, x, y + 24)
  478.       self.contents.font.color = system_color
  479.       self.contents.draw_text(x, y + WLH * 2, 200, WLH, "hp mp 回复值/率", 2)
  480.  
  481.       self.contents.font.color = hp_gauge_color1
  482.       self.contents.draw_text(x - 10, y + WLH * 3, 104, WLH, sprintf("%d", @item.hp_recovery), 2)
  483.       self.contents.draw_text(x, y + WLH * 4, 104, WLH, sprintf("%d", @item.hp_recovery_rate)+"%", 2)
  484.  
  485.       self.contents.font.color = mp_gauge_color1
  486.       self.contents.draw_text(x - 10, y + WLH * 3, 200, WLH, sprintf("%d", @item.mp_recovery), 2)
  487.       self.contents.draw_text(x, y + WLH * 4, 200, WLH, sprintf("%d", @item.mp_recovery_rate)+"%", 2)
  488.  
  489.       if @item.parameter_type > 0
  490.         self.contents.font.color = system_color
  491.         self.contents.draw_text(x, y + WLH * 7, 200, WLH, "增加能力")
  492.         self.contents.font.color = normal_color
  493.         case @item.parameter_type
  494.         when 1
  495.           self.contents.draw_text(x, y + WLH * 7, 200, WLH, "HP", 1)
  496.         when 2
  497.           self.contents.draw_text(x, y + WLH * 7, 200, WLH, "MP", 1)
  498.         when 3
  499.           self.contents.draw_text(x, y + WLH * 7, 200, WLH, "ATK", 1)
  500.         when 4
  501.           self.contents.draw_text(x, y + WLH * 7, 200, WLH, "DEF", 1)
  502.         when 5
  503.           self.contents.draw_text(x, y + WLH * 7, 200, WLH, "SPI", 1)
  504.         when 6
  505.           self.contents.draw_text(x, y + WLH * 7, 200, WLH, "AGI", 1)
  506.         end
  507.         self.contents.draw_text(x, y + WLH * 7, 200, WLH, sprintf("%d", @item.parameter_points), 2)
  508.       else
  509.         self.contents.font.color = text_color(7)
  510.         self.contents.draw_text(x, y + WLH * 7, 200, WLH, "增加能力")
  511.       end
  512.     else
  513.       self.contents.font.color = normal_color
  514.       draw_actor_parameter(@actor, x, y, 0)
  515.       draw_actor_parameter(@actor, x, y + 24, 2)
  516.  
  517.       self.contents.font.color = system_color
  518.       self.contents.draw_text(x, y + WLH * 2, 240, WLH, "伤害值 力量/精神影响")
  519.  
  520.       self.contents.font.color = normal_color
  521.       self.contents.draw_text(x, y + WLH * 3, 104, WLH, sprintf("%d", @item.base_damage))
  522.  
  523.       self.contents.font.color = hp_gauge_color1
  524.       self.contents.draw_text(x, y + WLH * 4, 104, WLH, sprintf("%d", @item.atk_f), 2)
  525.  
  526.       self.contents.font.color = mp_gauge_color1
  527.       self.contents.draw_text(x, y + WLH * 4, 200, WLH, sprintf("%d", @item.spi_f), 2)
  528.     end
  529.  
  530.     self.contents.font.color = system_color
  531.     if @item.plus_state_set.size == 0
  532.       self.contents.font.color = text_color(7)
  533.     end
  534.     self.contents.draw_text(x, y + WLH * 5, 200, WLH, "增益")
  535.     self.contents.font.color = system_color
  536.     if @item.minus_state_set.size == 0
  537.       self.contents.font.color = text_color(7)
  538.     end
  539.     self.contents.draw_text(x, y + WLH * 6, 200, WLH, "削减")
  540.     m = 48
  541.     for i in @item.plus_state_set
  542.       draw_icon($data_states[i].icon_index, x + m, y + WLH * 5)
  543.       break if m == 168
  544.       m += 24
  545.     end
  546.     m = 48
  547.     for i in @item.minus_state_set
  548.       draw_icon($data_states[i].icon_index, x + m, y + WLH * 6)
  549.       break if m == 168
  550.       m += 24
  551.     end
  552.   end
  553.   #--------------------------------------------------------------------------
  554.   # ● 绘制角色当前装备和能力值
  555.   #     actor : 角色
  556.   #     x     : 绘制点 X 座标
  557.   #     y     : 绘制点 Y 座标
  558.   #--------------------------------------------------------------------------
  559.   def draw_actor_parameter_change(actor, x, y)
  560.     return if @item.is_a?(RPG::Item)
  561.     enabled = actor.equippable?(@item)
  562.     if @item.is_a?(RPG::Weapon)
  563.       item1 = weaker_weapon(actor)
  564.     elsif actor.two_swords_style and @item.kind == 0
  565.       item1 = nil
  566.     else
  567.       if $imported["EquipExtension"] == true
  568.         index = actor.equip_type.index(@item.kind)
  569.         item1 = (index != nil ? actor.equips[1 + index] : nil)
  570.       else
  571.         item1 = actor.equips[1 + @item.kind]
  572.       end
  573.     end
  574.  
  575.     if enabled
  576.  
  577.       atk1 = item1 == nil ? 0 : item1.atk
  578.       atk2 = @item == nil ? 0 : @item.atk
  579.       change = atk2 - atk1
  580.       shop_change(change)
  581.       if change > 0
  582.         draw_icon(FSL::SHOP::Shop_icon[0], 108, y + WLH)
  583.       elsif  change < 0
  584.         draw_icon(FSL::SHOP::Shop_icon[4], 108, y + WLH)
  585.       else
  586.         draw_icon(FSL::SHOP::Shop_icon[8], 108, y + WLH)
  587.       end
  588.       self.contents.draw_text(x, y + WLH, 200, WLH, sprintf("%d", atk2), 2)
  589.  
  590.       def1 = item1 == nil ? 0 : item1.def
  591.       def2 = @item == nil ? 0 : @item.def
  592.       change = def2 - def1
  593.       shop_change(change)
  594.       if change > 0
  595.         draw_icon(FSL::SHOP::Shop_icon[1], 108, y + WLH * 2)
  596.       elsif  change < 0
  597.         draw_icon(FSL::SHOP::Shop_icon[5], 108, y + WLH * 2)
  598.       else
  599.         draw_icon(FSL::SHOP::Shop_icon[9], 108, y + WLH)
  600.       end
  601.       self.contents.draw_text(x, y + WLH * 2, 200, WLH, sprintf("%d", def2), 2)
  602.  
  603.       spi1 = item1 == nil ? 0 : item1.spi
  604.       spi2 = @item == nil ? 0 : @item.spi
  605.       change = spi2 - spi1
  606.       shop_change(change)
  607.       if change > 0
  608.         draw_icon(FSL::SHOP::Shop_icon[2], 108, y + WLH * 3)
  609.       elsif  change < 0
  610.         draw_icon(FSL::SHOP::Shop_icon[6], 108, y + WLH * 3)
  611.       else
  612.         draw_icon(FSL::SHOP::Shop_icon[10], 108, y + WLH)
  613.       end
  614.       self.contents.draw_text(x, y + WLH * 3, 200, WLH, sprintf("%d", spi2), 2)
  615.  
  616.       agi1 = item1 == nil ? 0 : item1.agi
  617.       agi2 = @item == nil ? 0 : @item.agi
  618.       change = agi2 - agi1
  619.       shop_change(change)
  620.       if change > 0
  621.         draw_icon(FSL::SHOP::Shop_icon[3], 108, y + WLH * 4)
  622.       elsif  change < 0
  623.         draw_icon(FSL::SHOP::Shop_icon[7], 108, y + WLH * 4)
  624.       else
  625.         draw_icon(FSL::SHOP::Shop_icon[11], 108, y + WLH)
  626.       end
  627.       self.contents.draw_text(x, y + WLH * 4, 200, WLH, sprintf("%d", agi2), 2)
  628.  
  629.       self.contents.font.color = system_color
  630.       self.contents.draw_text(4, y - 32, 204, WLH, "当前装备")
  631.  
  632.       self.contents.draw_text(x + 45, y + WLH, 200, WLH, sprintf("%d", atk1))
  633.       self.contents.draw_text(x + 45, y + WLH * 2, 200, WLH, sprintf("%d", def1))
  634.       self.contents.draw_text(x + 45, y + WLH * 3, 200, WLH, sprintf("%d", spi1))
  635.       self.contents.draw_text(x + 45, y + WLH * 4, 200, WLH, sprintf("%d", agi1))
  636.  
  637.       self.contents.draw_text(0, y + WLH, 200, WLH, "攻击")
  638.       self.contents.draw_text(0, y + WLH * 2, 200, WLH, "防御")
  639.       self.contents.draw_text(0, y + WLH * 3, 200, WLH, "精神")
  640.       self.contents.draw_text(0, y + WLH * 4, 200, WLH, "敏捷")
  641.  
  642.       if item1 != nil
  643.         self.contents.draw_text(24, y, 208, WLH, item1.name)
  644.         draw_icon(item1.icon_index, 0, y)
  645.       else
  646.         self.contents.draw_text(24, y, 208, WLH, "无")
  647.       end
  648.     else
  649.       self.contents.font.color = normal_color
  650.       self.contents.draw_text(0, y + 24, 200, WLH, FSL::SHOP::Shop_help, 1)
  651.     end
  652.   end
  653.   #--------------------------------------------------------------------------
  654.   # ● 判断数值颜色
  655.   #     change : 数值
  656.   #--------------------------------------------------------------------------
  657.   def shop_change(change)
  658.     if change == 0
  659.       self.contents.font.color = normal_color
  660.     else
  661.       self.contents.font.color = change>0 ? power_up_color : power_down_color
  662.     end
  663.   end
  664.   #--------------------------------------------------------------------------
  665.   # ● 获取双刀派角色所装备的武器中较弱的武器
  666.   #     actor : 角色
  667.   #--------------------------------------------------------------------------
  668.   def weaker_weapon(actor)
  669.     if actor.two_swords_style
  670.       weapon1 = actor.weapons[0]
  671.       weapon2 = actor.weapons[1]
  672.       if weapon1 == nil or weapon2 == nil
  673.         return nil
  674.       elsif weapon1.atk < weapon2.atk
  675.         return weapon1
  676.       else
  677.         return weapon2
  678.       end
  679.     else
  680.       return actor.weapons[0]
  681.     end
  682.   end
  683.   #--------------------------------------------------------------------------
  684.   # ● 设置角色
  685.   #     actor : 角色
  686.   #--------------------------------------------------------------------------
  687.   def actor=(actor)
  688.     if @actor != actor
  689.       @actor = actor
  690.       refresh
  691.     end
  692.   end
  693.   #--------------------------------------------------------------------------
  694.   # ● 设置物品
  695.   #     item : 新物品
  696.   #--------------------------------------------------------------------------
  697.   def item=(item)
  698.     if @item != item
  699.       @item = item
  700.       refresh
  701.     end
  702.   end
  703.   #--------------------------------------------------------------------------
  704.   # ● 绘制头像部分图
  705.   #     face_name  : 头像文件名
  706.   #     face_index : 头像号码
  707.   #     x     : 描画目标 X 坐标
  708.   #     y     : 描画目标 Y 坐标
  709.   #     size       : 显示大小
  710.   #--------------------------------------------------------------------------
  711.   def draw_Shopface(face_name, face_index, x, y, size = 96)
  712.     bitmap = Cache.face(face_name)
  713.     rect = Rect.new(0, 0, 0, 0)
  714.     rect.x = face_index % 4 * 96 + (96 - size) / 2
  715.     rect.y = face_index / 4 * 96 + (96 - size) / 2 + size / 4
  716.     rect.width = size
  717.     rect.height = size / 2
  718.     self.contents.blt(x, y, bitmap, rect)
  719.     bitmap.dispose
  720.   end
  721. end
  722. #==============================================================================
  723. # ■ Window_ShopBuy2
  724. #------------------------------------------------------------------------------
  725. #  商店画面、浏览显示可以购买的商品的窗口。
  726. #==============================================================================
  727.  
  728. class Window_ShopBuy2 < Window_Selectable
  729.   #--------------------------------------------------------------------------
  730.   # ● 初始化对像
  731.   #     x      : 窗口 X 座标
  732.   #     y      : 窗口 Y 座标
  733.   #--------------------------------------------------------------------------
  734.   def initialize(x, y)
  735.     super(x, y, 304, 248)
  736.     @shop_goods = $game_temp.shop_goods
  737.     @type = 0
  738.     @sort = 0
  739.     refresh
  740.     self.index = 0
  741.   end
  742.   #--------------------------------------------------------------------------
  743.   # ● 商品类型
  744.   #--------------------------------------------------------------------------
  745.   def type=(type)
  746.     if @type != type
  747.       @type = type
  748.       refresh
  749.     end
  750.   end
  751.   #--------------------------------------------------------------------------
  752.   # ● 获取商品
  753.   #--------------------------------------------------------------------------
  754.   def item
  755.     if @type == 0
  756.       return @data1[self.index]
  757.     elsif @type == 1
  758.       return @data2[self.index]
  759.     else
  760.       return @data3[self.index]
  761.     end
  762.   end
  763.   #--------------------------------------------------------------------------
  764.   # ● 刷新
  765.   #--------------------------------------------------------------------------
  766.   def refresh
  767.     @data1 = []
  768.     @data2 = []
  769.     @data3 = []
  770.     $data_items         = load_data("Data/Items.rvdata")
  771.     $data_weapons       = load_data("Data/Weapons.rvdata")
  772.     $data_armors        = load_data("Data/Armors.rvdata")
  773.     for goods_item in @shop_goods
  774.       case goods_item[0]
  775.       when 0
  776.         item = $data_items[goods_item[1]]
  777.         if item != nil
  778.           @data1.push(item)
  779.         end
  780.       when 1
  781.         item = $data_weapons[goods_item[1]]
  782.         if item != nil
  783.           @data2.push(item)
  784.         end
  785.       when 2
  786.         item = $data_armors[goods_item[1]]
  787.         if item != nil
  788.           @data3.push(item)
  789.         end
  790.       end
  791.     end
  792.     for i in [email]0...@data2.size[/email]
  793.       for j in [email]i...@data2.size[/email]
  794.         if @data2[i].atk < @data2[j].atk
  795.           m = @data2[i]
  796.           @data2[i] = @data2[j]
  797.           @data2[j] = m
  798.         end
  799.       end
  800.     end
  801.     for i in [email]0...@data3.size[/email]
  802.       for j in [email]i...@data3.size[/email]
  803.         if @data3[i].atk < @data3[j].atk
  804.           m = @data3[i]
  805.           @data3[i] = @data3[j]
  806.           @data3[j] = m
  807.         end
  808.       end
  809.     end
  810.     @sort = 1
  811.     if    @type == 0
  812.       @item_max = @data1.size
  813.     elsif @type == 1
  814.       @item_max = @data2.size
  815.     else
  816.       @item_max = @data3.size
  817.     end
  818.  
  819.     create_contents
  820.     for i in 0...@item_max
  821.       draw_item1(i)
  822.     end
  823.   end
  824.   #--------------------------------------------------------------------------
  825.   # ● 绘制商品
  826.   #     index : 商品索引
  827.   #--------------------------------------------------------------------------
  828.   def draw_item1(index)
  829.     if    @type == 0
  830.       item = @data1[index]
  831.     elsif @type == 1
  832.       item = @data2[index]
  833.     else
  834.       item = @data3[index]
  835.     end
  836.     number = $game_party.item_number(item)
  837.     if $imported["LimitBreak"] == true
  838.       enabled = (item.price <= $game_party.gold && number < item.number_limit)
  839.     else
  840.       enabled = (item.price <= $game_party.gold and number < 99)
  841.     end
  842.     rect = item_rect(index)
  843.     self.contents.clear_rect(rect)
  844.     draw_item_name(item, rect.x, rect.y, enabled)
  845.     rect.width -= 4
  846.     self.contents.draw_text(rect, item.price, 2)
  847.   end
  848.   #--------------------------------------------------------------------------
  849.   # ● 顺位排序
  850.   #--------------------------------------------------------------------------
  851.   def sort_item
  852.     case @sort
  853.     when 0
  854.       for i in [email]0...@data2.size[/email]
  855.         for j in [email]i...@data2.size[/email]
  856.           if @data2[i].atk < @data2[j].atk
  857.             m = @data2[i]
  858.             @data2[i] = @data2[j]
  859.             @data2[j] = m
  860.           end
  861.         end
  862.       end
  863.       for i in [email]0...@data3.size[/email]
  864.         for j in [email]i...@data3.size[/email]
  865.           if @data3[i].atk < @data3[j].atk
  866.             m = @data3[i]
  867.             @data3[i] = @data3[j]
  868.             @data3[j] = m
  869.           end
  870.         end
  871.       end
  872.       @sort = 1
  873.     when 1
  874.       for i in [email]0...@data2.size[/email]
  875.         for j in [email]i...@data2.size[/email]
  876.           if @data2[i].def < @data2[j].def
  877.             m = @data2[i]
  878.             @data2[i] = @data2[j]
  879.             @data2[j] = m
  880.           end
  881.         end
  882.       end
  883.       for i in [email]0...@data3.size[/email]
  884.         for j in [email]i...@data3.size[/email]
  885.           if @data3[i].def < @data3[j].def
  886.             m = @data3[i]
  887.             @data3[i] = @data3[j]
  888.             @data3[j] = m
  889.           end
  890.         end
  891.       end
  892.       @sort = 2
  893.     when 2
  894.       for i in [email]0...@data2.size[/email]
  895.         for j in [email]i...@data2.size[/email]
  896.           if @data2[i].spi < @data2[j].spi
  897.             m = @data2[i]
  898.             @data2[i] = @data2[j]
  899.             @data2[j] = m
  900.           end
  901.         end
  902.       end
  903.       for i in [email]0...@data3.size[/email]
  904.         for j in [email]i...@data3.size[/email]
  905.           if @data3[i].spi < @data3[j].spi
  906.             m = @data3[i]
  907.             @data3[i] = @data3[j]
  908.             @data3[j] = m
  909.           end
  910.         end
  911.       end
  912.       @sort = 3
  913.     when 3
  914.       for i in [email]0...@data2.size[/email]
  915.         for j in [email]i...@data2.size[/email]
  916.           if @data2[i].agi < @data2[j].agi
  917.             m = @data2[i]
  918.             @data2[i] = @data2[j]
  919.             @data2[j] = m
  920.           end
  921.         end
  922.       end
  923.       for i in [email]0...@data3.size[/email]
  924.         for j in [email]i...@data3.size[/email]
  925.           if @data3[i].agi < @data3[j].agi
  926.             m = @data3[i]
  927.             @data3[i] = @data3[j]
  928.             @data3[j] = m
  929.           end
  930.         end
  931.       end
  932.       @sort = 0
  933.     end
  934.     if    @type == 0
  935.       @item_max = @data1.size
  936.     elsif @type == 1
  937.       @item_max = @data2.size
  938.     else
  939.       @item_max = @data3.size
  940.     end
  941.  
  942.     create_contents
  943.     for i in 0...@item_max
  944.       draw_item1(i)
  945.     end
  946.   end
  947.   #--------------------------------------------------------------------------
  948.   # ● 更新帮助窗口文字
  949.   #--------------------------------------------------------------------------
  950.   def update_help
  951.     @help_window.set_text(item == nil ? "" : item.description)
  952.   end
  953. end

作者: 封尘    时间: 2016-4-21 22:23
夜狠简单 发表于 2016-4-21 21:19
[fold=商店(替换原来的)]#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ ...

非常感谢!但是他又提示错误,我把它调个位置还是报错,为什么呢?

IZX)GL`5PDP`7{AR(29TG63.png (3.82 KB, 下载次数: 27)

IZX)GL`5PDP`7{AR(29TG63.png

作者: 夜狠简单    时间: 2016-4-21 22:27
封尘 发表于 2016-4-21 22:23
非常感谢!但是他又提示错误,我把它调个位置还是报错,为什么呢?

你原来的商店脚本还在吗?其实就是加了三句
    $data_items         = load_data("Data/Items.rvdata")
    $data_weapons       = load_data("Data/Weapons.rvdata")
    $data_armors        = load_data("Data/Armors.rvdata")
加的位置看下面


#==============================================================================
# ■ Window_ShopBuy2
#------------------------------------------------------------------------------
#  商店画面、浏览显示可以购买的商品的窗口。
#==============================================================================

class Window_ShopBuy2 < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     x      : 窗口 X 座标
  #     y      : 窗口 Y 座标
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 304, 248)
    @shop_goods = $game_temp.shop_goods
    @type = 0
    @sort = 0
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # ● 商品类型
  #--------------------------------------------------------------------------
  def type=(type)
    if @type != type
      @type = type
      refresh
    end
  end
  #--------------------------------------------------------------------------
  # ● 获取商品
  #--------------------------------------------------------------------------
  def item
    if @type == 0
      return @data1[self.index]
    elsif @type == 1
      return @data2[self.index]
    else
      return @data3[self.index]
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    @data1 = []
    @data2 = []
    @data3 = []
    $data_items         = load_data("Data/Items.rvdata")
    $data_weapons       = load_data("Data/Weapons.rvdata")
    $data_armors        = load_data("Data/Armors.rvdata")
    for goods_item in @shop_goods
      case goods_item[0]
      when 0
        item = $data_items[goods_item[1]]
        if item != nil
          @data1.push(item)
        end
      when 1
        item = $data_weapons[goods_item[1]]
        if item != nil
          @data2.push(item)
        end
      when 2
        item = $data_armors[goods_item[1]]
        if item != nil
          @data3.push(item)
        end
      end
    end
作者: 封尘    时间: 2016-4-21 22:44
夜狠简单 发表于 2016-4-21 22:27
你原来的商店脚本还在吗?其实就是加了三句
    $data_items         = load_data("Data/Items.rvdata")
...

我看了一下,出错的那一行有个 for i in [email protected]
我把关于email的所有语句都删了,问题完美解决!谢谢!




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