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

Project1

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

[已经解决] 【真实商店脚本】如何设置当100号开关打开时无法卖出物品

 关闭 [复制链接]

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

跳转到指定楼层
1
发表于 2011-6-11 12:56:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 天使喝可乐 于 2011-6-12 15:24 编辑

真实商店脚本:(和原商店不冲突,卖出的物品有剩余数量限制)
请问如何设置,当100号开关打开时,所有的真实商店的“卖出”为灰色(不可用)?(原商店不受影响)
谢谢啦~

  1. #==============================================================================
  2. # 本脚本来自www.66rpg.com,转载和使用请保留此信息
  3. # 脚本名:真实商店,脚本作者:柳柳
  4. #==============================================================================
  5. #
  6. # 功能:
  7. #
  8. # 买进卖出的物品在商店有所体现,卖出后会在商店可买物品中出现,物品有数量限制
  9. # 商店可进货出货————总之就是模拟真实商店。
  10. #  
  11. # 这个脚本和原装商店并不冲突,两个商店可以并存。
  12. #
  13. # 使用方法:
  14. #
  15. # 1、在下面被井号框起来的中间部分,设置初期物品。格式如下:
  16. #    @goods[商店编号] = [ [种类,ID,可卖数量] ,  [种类,ID,可卖数量]......]
  17. #    其中种类,0为道具,1为武器,2为防具;ID是数据库编号
  18. #
  19. # 2、调用:$scene = Scene_Shop_Va.new(商店编号)  
  20. #    比如你可以直接测试$scene = Scene_Shop_Va.new(1),已经设置好了。
  21. #
  22. # 3、商店出货:$game_system.shop_change(商店编号,种类,ID,数量)
  23. #    如果是进货,把数量设置为负数即可
  24. #
  25. #==============================================================================
  26. # ■ Scene_Shop
  27. #------------------------------------------------------------------------------
  28. #  处理商店画面的类。
  29. #==============================================================================
  30. class Game_System
  31. attr_accessor :goods   
  32. alias vaule_shop_66RPG_initialize initialize
  33. def initialize
  34.    vaule_shop_66RPG_initialize
  35.    @goods = []
  36. #======================================================================
  37.    # 初期的时候的商店物品,编号顺序:种类,ID,可卖数量
  38.    @goods[1] = [[0,1,12],[0,7,8],[0,8,2],[0,11,3]]
  39.    #↑红水 红草 黄草 绿草
  40.    @goods[2] = [[0,26,10],[0,702,60],[0,703,18],[0,704,22],[2,901,1]]
  41.    #↑葡萄汁 制造品红黄白药水 +2紫蝶(3000)
  42.    @goods[3] = [[0,156,13],[0,35,5],[2,64,1]]
  43.    #↑蝴蝶翅膀 红色榴莲 海盗头巾     ←艾尔贝塔
  44.    @goods[4] = [[2,60,1],[2,62,1],[2,68,1],[2,73,1]]
  45.    #↑军帽2W CHINA125000 骨制35500 蘑菇15W
  46.    @goods[5] = [[1,32,1],[2,258,1],[0,802,1]]
  47.    #↑+7反击12W 剑士头盔25000 疯兔卡
  48.    @goods[6] = [[2,330,1],[2,333,1]]
  49.    #↑+7铁质铠甲 88000   +9 三叶铁甲虫 丝质外袍  35W
  50.    @goods[7] = [[1,233,1],[2,407,1],[2,410,3],[2,601,2]]
  51.    #↑+4生存8W5 谎言45600  十字钢盾4W  FLG 3W
  52.    @goods[8] = [[1,34,1],[1,35,2],[1,36,1],[1,37,1]]
  53.    #↑4属性短剑 1W   
  54.    @goods[9] = [[0,195,45]]
  55.    #↑空瓶 50Z
  56.    @goods[10] = [[0,402,1]]
  57.    #↑绯红之玉
  58.    @goods[11] = [[0,208,39],[0,209,47],[0,210,121],[0,213,1]]
  59.    #↑黄 红 蓝石 紫宝石
  60.    @goods[12] = [[0,531,1]]
  61.    #↑小恶魔翅膀
  62. #======================================================================
  63. end
  64. def shop_change(shop,kind,id,delnumber)
  65.    dl = delnumber
  66.    for dt in $game_system.goods[shop]
  67.      if (dt[0]==kind) and (dt[1]==id)
  68.        dt[2] -= dl
  69.        dt[2] = [dt[2],99].min
  70.        if dt[2] == 0
  71.          $game_system.goods[shop].delete(dt)
  72.        end
  73.        return
  74.      end
  75.    end
  76.    $game_system.goods[shop].push([kind,id,-delnumber])
  77. end
  78. end

  79. class Scene_Shop_Va
  80. def initialize(shop_number)
  81.    # 当前商店编号
  82.    @shop_now = shop_number     
  83. end   
  84. #--------------------------------------------------------------------------
  85. # ● 主处理
  86. #--------------------------------------------------------------------------
  87. def main
  88.    # 生成帮助窗口
  89.    @help_window = Window_Help.new
  90.    # 生成指令窗口
  91.    @command_window = Window_ShopCommand.new
  92.    # 生成金钱窗口
  93.    @gold_window = Window_Gold.new
  94.    @gold_window.x = 480
  95.    @gold_window.y = 64
  96.    # 生成时间窗口
  97.    @dummy_window = Window_Base.new(0, 128, 640, 352)
  98.    # 生成购买窗口
  99.    @buy_window = Window_ShopBuy_Va.new($game_system.goods[@shop_now])
  100.    @buy_window.active = false
  101.    @buy_window.visible = false
  102.    @buy_window.help_window = @help_window
  103.    # 生成卖出窗口
  104.    @sell_window = Window_ShopSell.new
  105.    @sell_window.active = false
  106.    @sell_window.visible = false
  107.    @sell_window.help_window = @help_window
  108.    # 生成数量输入窗口
  109.    @number_window = Window_ShopNumber.new
  110.    @number_window.active = false
  111.    @number_window.visible = false
  112.    # 生成状态窗口
  113.    @status_window = Window_ShopStatus.new
  114.    @status_window.visible = false
  115.    # 执行过渡
  116.    Graphics.transition
  117.    # 主循环
  118.    loop do
  119.      # 刷新游戏画面
  120.      Graphics.update
  121.      # 刷新输入信息
  122.      Input.update
  123.      # 刷新画面
  124.      update
  125.      # 如果画面切换的话就中断循环
  126.      if $scene != self
  127.        break
  128.      end
  129.    end
  130.    # 准备过渡
  131.    Graphics.freeze
  132.    # 释放窗口
  133.    @help_window.dispose
  134.    @command_window.dispose
  135.    @gold_window.dispose
  136.    @dummy_window.dispose
  137.    @buy_window.dispose
  138.    @sell_window.dispose
  139.    @number_window.dispose
  140.    @status_window.dispose
  141. end
  142. #--------------------------------------------------------------------------
  143. # ● 刷新画面
  144. #--------------------------------------------------------------------------
  145. def update
  146.    # 刷新窗口
  147.    @help_window.update
  148.    @command_window.update
  149.    @gold_window.update
  150.    @dummy_window.update
  151.    @buy_window.update
  152.    @sell_window.update
  153.    @number_window.update
  154.    @status_window.update
  155.    # 指令窗口激活的情况下: 调用 update_command
  156.    if @command_window.active
  157.      update_command
  158.      return
  159.    end
  160.    # 购买窗口激活的情况下: 调用 update_buy
  161.    if @buy_window.active
  162.      update_buy
  163.      return
  164.    end
  165.    # 卖出窗口激活的情况下: 调用 update_sell
  166.    if @sell_window.active
  167.      update_sell
  168.      return
  169.    end
  170.    # 个数输入窗口激活的情况下: 调用 update_number
  171.    if @number_window.active
  172.      update_number
  173.      return
  174.    end
  175. end
  176. #--------------------------------------------------------------------------
  177. # ● 刷新画面 (指令窗口激活的情况下)
  178. #--------------------------------------------------------------------------
  179. def update_command
  180.    # 按下 B 键的情况下
  181.    if Input.trigger?(Input::B)
  182.      # 演奏取消 SE
  183.      $game_system.se_play($data_system.cancel_se)
  184.      # 切换到地图画面
  185.      $scene = Scene_Map.new
  186.      return
  187.    end
  188.    # 按下 C 键的情况下
  189.    if Input.trigger?(Input::C)
  190.      # 命令窗口光标位置分支
  191.      case @command_window.index
  192.      when 0  # 购买
  193.        # 演奏确定 SE
  194.        $game_system.se_play($data_system.decision_se)
  195.        # 窗口状态转向购买模式
  196.        @command_window.active = false
  197.        @dummy_window.visible = false
  198.        @buy_window.active = true
  199.        @buy_window.visible = true
  200.        @buy_window.refresh
  201.        @status_window.visible = true
  202.      when 1  # 卖出
  203.        # 演奏确定 SE
  204.        $game_system.se_play($data_system.decision_se)
  205.        # 窗口状态转向卖出模式
  206.        @command_window.active = false
  207.        @dummy_window.visible = false
  208.        @sell_window.active = true
  209.        @sell_window.visible = true
  210.        @sell_window.refresh
  211.      when 2  # 取消
  212.        # 演奏确定 SE
  213.        $game_system.se_play($data_system.decision_se)
  214.        # 切换到地图画面
  215.        $scene = Scene_Map.new
  216.      end
  217.      return
  218.    end
  219. end
  220. #--------------------------------------------------------------------------
  221. # ● 刷新画面 (购买窗口激活的情况下)
  222. #--------------------------------------------------------------------------
  223. def update_buy
  224.    # 设置状态窗口的物品
  225.    @status_window.item = @buy_window.item
  226.    # 按下 B 键的情况下
  227.    if Input.trigger?(Input::B)
  228.      # 演奏取消 SE
  229.      $game_system.se_play($data_system.cancel_se)
  230.      # 窗口状态转向初期模式
  231.      @command_window.active = true
  232.      @dummy_window.visible = true
  233.      @buy_window.active = false
  234.      @buy_window.visible = false
  235.      @status_window.visible = false
  236.      @status_window.item = nil
  237.      # 删除帮助文本
  238.      @help_window.set_text("")
  239.      return
  240.    end
  241.    # 按下 C 键的情况下
  242.    if Input.trigger?(Input::C)
  243.      # 获取物品
  244.      @item = @buy_window.item
  245.      # 物品无效的情况下、或者价格在所持金以上的情况下
  246.      if @item == nil or @item.price > $game_party.gold
  247.        # 演奏冻结 SE
  248.        $game_system.se_play($data_system.buzzer_se)
  249.        return
  250.      end
  251.      # 获取物品所持数
  252.      case @item
  253.      when RPG::Item
  254.        number = $game_party.item_number(@item.id)
  255.      when RPG::Weapon
  256.        number = $game_party.weapon_number(@item.id)
  257.      when RPG::Armor
  258.        number = $game_party.armor_number(@item.id)
  259.      end
  260.      # 如果已经拥有了 99 个情况下
  261.      if number == 99
  262.        # 演奏冻结 SE
  263.        $game_system.se_play($data_system.buzzer_se)
  264.        return
  265.      end
  266.      # 演奏确定 SE
  267.      $game_system.se_play($data_system.decision_se)
  268.      # 计算可以最多购买的数量
  269.      max = @item.price == 0 ? 99 : $game_party.gold / @item.price
  270.      max = [[max, 99 - number].min,@buy_window.item_number].min
  271.      # 窗口状态转向数值输入模式
  272.      @buy_window.active = false
  273.      @buy_window.visible = false
  274.      @number_window.set(@item, max, @item.price)
  275.      @number_window.active = true
  276.      @number_window.visible = true
  277.    end
  278. end
  279. #--------------------------------------------------------------------------
  280. # ● 画面更新 (卖出窗口激活的情况下)
  281. #--------------------------------------------------------------------------
  282. def update_sell
  283.    # 按下 B 键的情况下
  284.    if Input.trigger?(Input::B)
  285.      # 演奏取消 SE
  286.      $game_system.se_play($data_system.cancel_se)
  287.      # 窗口状态转向初期模式
  288.      @command_window.active = true
  289.      @dummy_window.visible = true
  290.      @sell_window.active = false
  291.      @sell_window.visible = false
  292.      @status_window.item = nil
  293.      # 删除帮助文本
  294.      @help_window.set_text("")
  295.      return
  296.    end
  297.    # 按下 C 键的情况下
  298.    if Input.trigger?(Input::C)
  299.      # 获取物品
  300.      @item = @sell_window.item
  301.      # 设置状态窗口的物品
  302.      @status_window.item = @item
  303.      # 物品无效的情况下、或者价格为 0 (不能卖出) 的情况下
  304.      if @item == nil or @item.price == 0
  305.        # 演奏冻结 SE
  306.        $game_system.se_play($data_system.buzzer_se)
  307.        return
  308.      end
  309.      # 演奏确定 SE
  310.      $game_system.se_play($data_system.decision_se)
  311.      # 获取物品的所持数
  312.      case @item
  313.      when RPG::Item
  314.        number = $game_party.item_number(@item.id)
  315.      when RPG::Weapon
  316.        number = $game_party.weapon_number(@item.id)
  317.      when RPG::Armor
  318.        number = $game_party.armor_number(@item.id)
  319.      end
  320.      # 最大卖出个数 = 物品的所持数
  321.      max = number
  322.      # 窗口状态转向个数输入模式
  323.      @sell_window.active = false
  324.      @sell_window.visible = false
  325.      @number_window.set(@item, max, @item.price / 2)
  326.      @number_window.active = true
  327.      @number_window.visible = true
  328.      @status_window.visible = true
  329.    end
  330. end
  331. #--------------------------------------------------------------------------
  332. # ● 刷新画面 (个数输入窗口激活的情况下)
  333. #--------------------------------------------------------------------------
  334. def update_number
  335.    # 按下 B 键的情况下
  336.    if Input.trigger?(Input::B)
  337.      # 演奏取消 SE
  338.      $game_system.se_play($data_system.cancel_se)
  339.      # 设置个数输入窗口为不活动·非可视状态
  340.      @number_window.active = false
  341.      @number_window.visible = false
  342.      # 命令窗口光标位置分支
  343.      case @command_window.index
  344.      when 0  # 购买
  345.        # 窗口状态转向购买模式
  346.        @buy_window.active = true
  347.        @buy_window.visible = true
  348.      when 1  # 卖出
  349.        # 窗口状态转向卖出模式
  350.        @sell_window.active = true
  351.        @sell_window.visible = true
  352.        @status_window.visible = false
  353.      end
  354.      return
  355.    end
  356.    # 按下 C 键的情况下
  357.    if Input.trigger?(Input::C)
  358.      # 演奏商店 SE
  359.      $game_system.se_play($data_system.shop_se)
  360.      # 设置个数输入窗口为不活动·非可视状态
  361.      @number_window.active = false
  362.      @number_window.visible = false
  363.      # 命令窗口光标位置分支
  364.      case @command_window.index
  365.      when 0  # 购买
  366.        # 购买处理
  367.        temp = 0
  368.        $game_party.lose_gold(@number_window.number * @item.price)
  369.        case @item
  370.        when RPG::Item
  371.          $game_party.gain_item(@item.id, @number_window.number)
  372.        when RPG::Weapon
  373.          $game_party.gain_weapon(@item.id, @number_window.number)
  374.          temp = 1
  375.        when RPG::Armor
  376.          $game_party.gain_armor(@item.id, @number_window.number)
  377.          temp = 2
  378.        end
  379.        goods_del(temp,@item.id,@number_window.number)
  380.        # 刷新各窗口
  381.        @buy_window = Window_ShopBuy_Va.new($game_system.goods[@shop_now])
  382.        @buy_window.help_window = @help_window
  383.        @gold_window.refresh
  384.        @buy_window.refresh
  385.        @status_window.refresh
  386.        # 窗口状态转向购买模式
  387.        @buy_window.active = true
  388.        @buy_window.visible = true
  389.      when 1  # 卖出
  390.        # 卖出处理
  391.        $game_party.gain_gold(@number_window.number * (@item.price / 2))
  392.        temp = 0
  393.        case @item
  394.        when RPG::Item
  395.          $game_party.lose_item(@item.id, @number_window.number)
  396.        when RPG::Weapon
  397.          $game_party.lose_weapon(@item.id, @number_window.number)
  398.          temp = 1
  399.        when RPG::Armor
  400.          $game_party.lose_armor(@item.id, @number_window.number)
  401.          temp = 2
  402.        end
  403.        # 刷新各窗口
  404.        goods_del(temp,@item.id,-@number_window.number)
  405.        @buy_window = Window_ShopBuy_Va.new($game_system.goods[@shop_now])
  406.        @buy_window.active = false
  407.        @buy_window.visible = false
  408.        @buy_window.help_window = @help_window
  409.        @gold_window.refresh
  410.        @sell_window.refresh
  411.        @status_window.refresh
  412.        # 窗口状态转向卖出模式
  413.        @sell_window.active = true
  414.        @sell_window.visible = true
  415.        @status_window.visible = false
  416.      end
  417.      return
  418.    end
  419. end
  420. # 删除可出售商品内容
  421. def goods_del(kind,id,delnumber)
  422.    dl = delnumber
  423.    for dt in $game_system.goods[@shop_now]
  424.      if (dt[0]==kind) and (dt[1]==id)
  425.        dt[2] -= dl
  426.        dt[2] = [dt[2],99].min
  427.        if dt[2] == 0
  428.          $game_system.goods[@shop_now].delete(dt)
  429.        end
  430.        return
  431.      end
  432.    end
  433.    $game_system.goods[@shop_now].push([kind,id,-delnumber])
  434. end
  435. end

  436. #==============================================================================
  437. # ■ Window_ShopBuy_Va
  438. #------------------------------------------------------------------------------
  439. #  商店画面、浏览显示可以购买的商品的窗口。
  440. #==============================================================================

  441. class Window_ShopBuy_Va < Window_Selectable
  442. attr_accessor :shop_goods
  443. #--------------------------------------------------------------------------
  444. # ● 初始化对像
  445. #     shop_goods : 商品
  446. #--------------------------------------------------------------------------
  447. def initialize(shop_goods)
  448.    super(0, 128, 368, 352)
  449.    @shop_goods = shop_goods
  450.    refresh
  451.    self.index = 0
  452. end
  453. #--------------------------------------------------------------------------
  454. # ● 获取物品
  455. #--------------------------------------------------------------------------
  456. def item
  457.    return @data[self.index]
  458. end
  459. #--------------------------------------------------------------------------
  460. # ● 获取物品
  461. #--------------------------------------------------------------------------
  462. def item_number
  463.    return @data_number[self.index]
  464. end
  465. #--------------------------------------------------------------------------
  466. # ● 刷新
  467. #--------------------------------------------------------------------------
  468. def refresh
  469.    if self.contents != nil
  470.      self.contents.dispose
  471.      self.contents = nil
  472.    end
  473.    @data = []
  474.    @data_number = []
  475.    for goods_item in @shop_goods
  476.      case goods_item[0]
  477.      when 0
  478.        item = $data_items[goods_item[1]]
  479.      when 1
  480.        item = $data_weapons[goods_item[1]]
  481.      when 2
  482.        item = $data_armors[goods_item[1]]
  483.      end
  484.      if (item != nil) and (goods_item[2] != 0)
  485.        @data.push(item)
  486.        @data_number.push(goods_item[2])
  487.      else
  488.        @data.delete(item)
  489.      end
  490.    end
  491.    # 如果项目数不是 0 就生成位图、描绘全部项目
  492.    @item_max = @data.size
  493.    if @item_max > 0
  494.      self.contents = Bitmap.new(width - 32, row_max * 32)
  495.      for i in 0...@item_max
  496.        draw_item(i)
  497.      end
  498.    end
  499. end
  500. #--------------------------------------------------------------------------
  501. # ● 描绘羡慕
  502. #     index : 项目编号
  503. #--------------------------------------------------------------------------
  504. def draw_item(index)
  505.    item = @data[index]
  506.    # 获取物品所持数
  507.    case item
  508.    when RPG::Item
  509.      number = $game_party.item_number(item.id)
  510.    when RPG::Weapon
  511.      number = $game_party.weapon_number(item.id)
  512.    when RPG::Armor
  513.      number = $game_party.armor_number(item.id)
  514.    end
  515.    # 价格在所持金以下、并且所持数不是 99 的情况下为普通文字颜色
  516.    # 除此之外的情况设置为无效文字色
  517.    if item.price <= $game_party.gold and number < 99
  518.      self.contents.font.color = normal_color
  519.    else
  520.      self.contents.font.color = disabled_color
  521.    end
  522.    x = 4
  523.    y = index * 32
  524.    rect = Rect.new(x, y, self.width - 32, 32)
  525.    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  526.    bitmap = RPG::Cache.icon(item.icon_name)
  527.    opacity = self.contents.font.color == normal_color ? 255 : 128
  528.    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  529.    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  530.    self.contents.draw_text(x + 240, y, 88, 32, "剩  ", 2)
  531.    self.contents.draw_text(x + 240, y, 88, 32, @data_number[index].to_s, 2)
  532.    self.contents.draw_text(x + 180, y, 88, 32, item.price.to_s, 2)
  533. end
  534. #--------------------------------------------------------------------------
  535. # ● 刷新帮助文本
  536. #--------------------------------------------------------------------------
  537. def update_help
  538.    @help_window.set_text(self.item == nil ? "" : self.item.description)
  539. end
  540. end




  541. #==============================================================================
  542. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  543. #==============================================================================
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-9-4
帖子
36
2
发表于 2011-6-11 14:30:23 | 只看该作者
  1. class Scene_Shop_Va
  2. def update_sell
  3.    # 按下 B 键的情况下
  4.    if Input.trigger?(Input::B)
  5.      # 演奏取消 SE
  6.      $game_system.se_play($data_system.cancel_se)
  7.      # 窗口状态转向初期模式
  8.      @command_window.active = true
  9.      @dummy_window.visible = true
  10.      @sell_window.active = false
  11.      @sell_window.visible = false
  12.      @status_window.item = nil
  13.      # 删除帮助文本
  14.      @help_window.set_text("")
  15.      return
  16.    end
  17.    # 按下 C 键的情况下
  18.    if Input.trigger?(Input::C)
  19.      if $game_switches[100]
  20.        $game_system.se_play($data_system.buzzer_se)
  21.        return
  22.      end
  23.      # 获取物品
  24.      @item = @sell_window.item
  25.      # 设置状态窗口的物品
  26.      @status_window.item = @item
  27.      # 物品无效的情况下、或者价格为 0 (不能卖出) 的情况下
  28.      if @item == nil or @item.price == 0
  29.        # 演奏冻结 SE
  30.        $game_system.se_play($data_system.buzzer_se)
  31.        return
  32.      end
  33.      # 演奏确定 SE
  34.      $game_system.se_play($data_system.decision_se)
  35.      # 获取物品的所持数
  36.      case @item
  37.      when RPG::Item
  38.        number = $game_party.item_number(@item.id)
  39.      when RPG::Weapon
  40.        number = $game_party.weapon_number(@item.id)
  41.      when RPG::Armor
  42.        number = $game_party.armor_number(@item.id)
  43.      end
  44.      # 最大卖出个数 = 物品的所持数
  45.      max = number
  46.      # 窗口状态转向个数输入模式
  47.      @sell_window.active = false
  48.      @sell_window.visible = false
  49.      @number_window.set(@item, max, @item.price / 2)
  50.      @number_window.active = true
  51.      @number_window.visible = true
  52.      @status_window.visible = true
  53.    end
  54. end
  55. end
  56. class Window_ShopSell
  57.   def refresh
  58.     if self.contents != nil
  59.       self.contents.dispose
  60.       self.contents = nil
  61.     end
  62.     @data = []
  63.     for i in 1...$data_items.size
  64.       if $game_party.item_number(i) > 0
  65.         @data.push($data_items[i])
  66.       end
  67.     end
  68.     for i in 1...$data_weapons.size
  69.       if $game_party.weapon_number(i) > 0
  70.         @data.push($data_weapons[i])
  71.       end
  72.     end
  73.     for i in 1...$data_armors.size
  74.       if $game_party.armor_number(i) > 0
  75.         @data.push($data_armors[i])
  76.       end
  77.     end
  78.     # 如果项目数不是 0 就生成位图、描绘全部项目
  79.     @item_max = @data.size
  80.     if @item_max > 0
  81.       self.contents = Bitmap.new(width - 32, row_max * 32)
  82.       for i in 0...@item_max
  83.         draw_item(i)
  84.       end
  85.     end
  86.   end
  87.   def draw_item(index)
  88.     item = @data[index]
  89.     case item
  90.     when RPG::Item
  91.       number = $game_party.item_number(item.id)
  92.     when RPG::Weapon
  93.       number = $game_party.weapon_number(item.id)
  94.     when RPG::Armor
  95.       number = $game_party.armor_number(item.id)
  96.     end
  97.     # 可以卖掉的显示为普通文字颜色、除此之外设置成无效文字颜色
  98.     if item.price > 0
  99.       self.contents.font.color = normal_color
  100.     else
  101.       self.contents.font.color = disabled_color
  102.     end
  103.     if $game_switches[100]
  104.       self.contents.font.color = disabled_color
  105.     end
  106.     x = 4 + index % 2 * (288 + 32)
  107.     y = index / 2 * 32
  108.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  109.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  110.     bitmap = RPG::Cache.icon(item.icon_name)
  111.     opacity = self.contents.font.color == normal_color ? 255 : 128
  112.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  113.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  114.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  115.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  116.   end
  117. end
复制代码

点评

这个……怎么用……  发表于 2011-6-11 23:04

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
fux2 + 200 + 2 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

3
 楼主| 发表于 2011-6-11 23:05:03 | 只看该作者
LS的脚本是什么情况……

点评

插入main脚本之前啊  发表于 2011-6-12 10:09
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

4
 楼主| 发表于 2011-6-12 11:20:46 | 只看该作者
谢谢啦!
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
49
在线时间
1 小时
注册时间
2011-5-17
帖子
15
5
发表于 2011-6-13 09:06:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
280
在线时间
2 小时
注册时间
2011-6-2
帖子
3
6
发表于 2011-6-14 15:03:33 | 只看该作者
完全看不懂,。。。。直接复制进去好了
春梦都没做一个,春天就过去了。。。。。情何以堪啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 05:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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