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

Project1

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

求物品分类脚本,全部分

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-1-21
帖子
6
跳转到指定楼层
1
发表于 2009-1-22 20:49:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
2
发表于 2009-1-22 20:52:48 | 只看该作者
http://rpg.blue/web/htm/news128.htm

http://rpg.blue/web/htm/news842.htm
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
256 小时
注册时间
2008-8-1
帖子
532
3
发表于 2009-1-22 21:11:17 | 只看该作者
轩辕剑菜单美化版http://rpg.blue/web/htm/news567.htm
那个图的效果看此脚本图片自己做吧
  1. # ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载请保留此信息
  3. # ————————————————————————————————————

  4. #==============================================================================
  5. # ■ Harts_Window_ItemTitle
  6. #------------------------------------------------------------------------------
  7. #  アイテム画面で、タイトルを表示するウィンドウ。
  8. #==============================================================================

  9. class Harts_Window_ItemTitle < Window_Base
  10.   #--------------------------------------------------------------------------
  11.   # ● オブジェクト初期化
  12.   #--------------------------------------------------------------------------
  13.   def initialize
  14.   # picture = "Graphics/Battlebacks/北惧.jpg"
  15.   # @sprite = sprite.new
  16.   # @sprite.bitmap = Bitmap.new(picture)

  17.    # @bitmap1=Bitmap.new("Graphics/Battlebacks/北惧.jpg")
  18.    # @src_rect1=Rect.new(0,0,@bitmap1.width,@bitmap1.height)
  19.     super(0, 0, 160, 64)
  20.     self.contents = Bitmap.new(width - 32, height - 32)
  21.     self.contents.clear
  22.      self.opacity = 180
  23.     self.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  24.     #self.contents.blt(x,y,@bitmap1,@src_rect1)
  25.     self.contents.font.color = normal_color
  26.     self.contents.draw_text(4, 0, 120, 32, $data_system.words.item, 1)
  27.   end
  28. end

  29. #==============================================================================
  30. # ■ Harts_Window_ItemCommand
  31. #------------------------------------------------------------------------------
  32. #  アイテムの種別選択を行うウィンドウです。
  33. #==============================================================================

  34. class Harts_Window_ItemCommand < Window_Selectable
  35.   #--------------------------------------------------------------------------
  36.   # ● オブジェクト初期化
  37.   #--------------------------------------------------------------------------
  38.   def initialize
  39.    super(305, 354, 350, 100)
  40.     self.contents = Bitmap.new(width - 32, height - 32)
  41.     @item_max = 5
  42.     @column_max = 5
  43.    # picture = "Graphics/Battlebacks/北惧.jpg"
  44.    #@sprite = sprite.new
  45.    #@sprite.bitmap = Bitmap.new(picture)
  46.    # @commands = ["药物", "食物", "特殊道具","装备","剧情道具"]
  47.   #  @command_window = Window_MenuCommand.new
  48.      self.opacity = 100
  49.     self.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  50.     refresh
  51.     self.index = 0
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● リフレッシュ
  55.   #--------------------------------------------------------------------------
  56.   def refresh
  57.     self.contents.clear
  58.     for i in 0... @column_max#@item_max
  59.     draw_item(i, normal_color)
  60.     end
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 項目の描画
  64.   # index : 項目番号
  65.   # color : 文字色
  66.   #--------------------------------------------------------------------------
  67.   def draw_item(index, color)
  68.     self.contents.font.color = color
  69.     # src_rect = Rect.new(0, 0, 560, 128)
  70.    #  back_help = Bitmap.new("Graphics/system/menu/back/底图.png")
  71.     # self.contents.blt(0, -3, back_help, src_rect, 255)
  72.      self.opacity =0
  73.     x = index * 52
  74.     self.contents.draw_text(x, 4, 128, 32, "")#@commands[index])
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● ヘルプテキスト更新
  78.   #--------------------------------------------------------------------------
  79.   def update_help
  80.     case self.index
  81.     when 0
  82.       @text ="药物" #@commands[0]
  83.        contents.clear
  84.       src_rect = Rect.new(0, 0, 560, 128)
  85.      back_help = Bitmap.new("Graphics/system/menu/back/底图-药物.png")
  86.      self.contents.blt(0, -3, back_help, src_rect, 255)
  87.    

  88.     when 1
  89.       @text ="食物" #@commands[1]
  90.       contents.clear
  91.       src_rect = Rect.new(0, 0, 560, 128)
  92.      back_help = Bitmap.new("Graphics/system/menu/back/底图-食物.png")
  93.      self.contents.blt(0, -3, back_help, src_rect, 255)
  94.    
  95.     when 2
  96.       @text = "特殊"#@commands[2]
  97.      contents.clear
  98.       src_rect = Rect.new(0, 0, 560, 128)
  99.      back_help = Bitmap.new("Graphics/system/menu/back/底图-特殊.png")
  100.      self.contents.blt(0, -3, back_help, src_rect, 255)
  101.      
  102.     when 3
  103.       @text ="装备" #@commands[3]
  104.       contents.clear
  105.       src_rect = Rect.new(0, 0, 560, 128)
  106.      back_help = Bitmap.new("Graphics/system/menu/back/底图-装备.png")
  107.      self.contents.blt(0, -3, back_help, src_rect, 255)
  108.     when 4
  109.       @text = "剧情"#@commands[4]
  110.       contents.clear
  111.       src_rect = Rect.new(0, 0, 560, 128)
  112.      back_help = Bitmap.new("Graphics/system/menu/back/底图-剧情.png")
  113.      self.contents.blt(0, -3, back_help, src_rect, 255)
  114.   #  when 5
  115.    #   @text = @commands[5]
  116.    # when 6
  117.     #  @text = @commands[6]
  118.     #when 7
  119.      # @text = @commands[7]
  120.     #when 8
  121.      # @text = @commands[8]
  122.     end
  123.     @help_window.set_text(@text)
  124.   end
  125.   
  126.   def update_cursor_rect
  127.     # 光标位置不满 0 的情况下
  128.     if @index < 0
  129.       self.cursor_rect.empty
  130.       return
  131.     end
  132.     # 获取当前的行
  133.     row = @index / @column_max
  134.     # 当前行被显示开头行前面的情况下
  135.     if row < self.top_row
  136.       # 从当前行向开头行滚动
  137.       self.top_row = row
  138.     end
  139.     # 当前行被显示末尾行之后的情况下
  140.     if row > self.top_row + (self.page_row_max - 1)
  141.       # 从当前行向末尾滚动
  142.       self.top_row = row - (self.page_row_max - 1)
  143.     end
  144.     # 计算光标的宽
  145.     cursor_width = self.width / @column_max# - 32
  146.     # 计算光标坐标
  147.     x = 700#@index % @column_max * (cursor_width + 32)
  148.     y = 0#@index / @column_max * 52 - self.oy
  149.     # 更新国标矩形
  150.     self.cursor_rect.set(x, y, cursor_width, 32)
  151.   end
  152.   def update
  153.     super
  154.     # 可以移动光标的情况下
  155.     if self.active and @item_max > 0 and @index >= 0
  156.       # 方向键下被按下的情况下
  157.       
  158.       # R 键被按下的情况下
  159.       if Input.repeat?(Input::R)
  160.         # 显示的最后行在数据中最后行上方的情况下
  161.         if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
  162.           # 光标向后移动一页
  163.           $game_system.se_play($data_system.cursor_se)
  164.           @index = [@index + self.page_item_max, @item_max - 1].min
  165.           self.top_row += self.page_row_max
  166.         end
  167.       end
  168.       # L 键被按下的情况下
  169.       if Input.repeat?(Input::L)
  170.         # 显示的开头行在位置 0 之后的情况下
  171.         if self.top_row > 0
  172.           # 光标向前移动一页
  173.           $game_system.se_play($data_system.cursor_se)
  174.           @index = [@index - self.page_item_max, 0].max
  175.           self.top_row -= self.page_row_max
  176.         end
  177.       end
  178.     end
  179.     # 刷新帮助文本 (update_help 定义了继承目标)
  180.     if self.active and @help_window != nil
  181.       update_help
  182.     end
  183.     # 刷新光标矩形
  184.     update_cursor_rect
  185.   end
  186. end

  187. #==============================================================================
  188. # ■ Window_Item
  189. #------------------------------------------------------------------------------
  190. #  アイテム画面で、所持アイテムの一覧を表示するウィンドウです。
  191. #==============================================================================

  192. class Harts_Window_ItemList < Window_Selectable
  193.   #--------------------------------------------------------------------------
  194.   # ● オブジェクト初期化
  195.   #--------------------------------------------------------------------------
  196.   def initialize
  197.     super(320, 30, 300, 340)
  198.     @column_max = 2
  199.      self.opacity = 150
  200.    
  201.     refresh
  202.     self.index = 0
  203.     self.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  204.    
  205.     refresh
  206.     self.index = 0
  207.   end
  208.   #--------------------------------------------------------------------------
  209.   # ● アイテムの取得
  210.   #--------------------------------------------------------------------------
  211.   def item
  212.     return @data[self.index]
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ● リフレッシュ
  216.   #--------------------------------------------------------------------------
  217.   def refresh
  218.     if self.contents != nil
  219.       self.contents.dispose
  220.       self.contents = nil
  221.     end
  222.     @data = []
  223.   end
  224.   #--------------------------------------------------------------------------
  225.   # ● アイテム一覧設定
  226.   # command : 選択中のコマンド
  227.   #--------------------------------------------------------------------------
  228.   def set_item(command)
  229.     refresh
  230.     case command  
  231.     when 0            #药品,特点是分散度为0
  232.       for i in 1...$data_items.size
  233.         if ($data_items[i].variance == 0 and $game_party.item_number(i) > 0)
  234.           @data.push($data_items[i])
  235.         end
  236.       end
  237.     when 1            #食物类,特点是分散度为1  
  238.       for i in 1...$data_items.size
  239.         if ($data_items[i].variance == 1 and $game_party.item_number(i) > 0)
  240.           @data.push($data_items[i])
  241.         end
  242.       end
  243.     when 2            #杂货类,特点是分散度为2
  244.       for i in 1...$data_items.size
  245.         if ($data_items[i].variance == 2 and $game_party.item_number(i) > 0)
  246.           @data.push($data_items[i])
  247.         end
  248.       end
  249.     when 3            #各种装备:根据原本类push
  250.       for i in 1...$data_weapons.size
  251.         if $game_party.weapon_number(i) > 0
  252.           @data.push($data_weapons[i])
  253.         end
  254.       end
  255.       for i in 1...$data_armors.size
  256.         if $game_party.armor_number(i) > 0
  257.           @data.push($data_armors[i])
  258.         end
  259.       end
  260.     when 4            #剧情:特点是分散度为3
  261.       for i in 1...$data_items.size
  262.         if ($data_items[i].variance == 3 and $game_party.item_number(i) > 0)
  263.           @data.push($data_items[i])
  264.         end
  265.       end
  266.    
  267.     end
  268.     # 項目数が 0 でなければビットマップを作成し、全項目を描画
  269.     @item_max = @data.size
  270.     if @item_max > 0
  271.       self.contents = Bitmap.new(width - 32, row_max * 52)
  272.       self.contents.clear
  273.       for i in 0...@item_max
  274.         draw_item(i)
  275.       end
  276.     end
  277.   end
  278.   #--------------------------------------------------------------------------
  279.   # ● 種類別アイテム数の取得
  280.   #--------------------------------------------------------------------------
  281.   def item_number
  282.     return @item_max
  283.   end
  284.   #--------------------------------------------------------------------------
  285.   # ● 項目の描画
  286.   # index : 項目番号
  287.   #--------------------------------------------------------------------------
  288.   def draw_item(index)
  289.     item = @data[index]
  290.     case item
  291.     when RPG::Item
  292.       number = $game_party.item_number(item.id)
  293.     when RPG::Weapon
  294.       number = $game_party.weapon_number(item.id)
  295.     when RPG::Armor
  296.       number = $game_party.armor_number(item.id)
  297.     end
  298.     if item.is_a?(RPG::Item) and
  299.        $game_party.item_can_use?(item.id)
  300.       self.contents.font.color = normal_color
  301.     else
  302.       self.contents.font.color = disabled_color
  303.     end
  304.     x = 4 + index % 2 * (self.width / 2)
  305.     y = index / 2 * 52
  306.     rect = Rect.new(x, y, self.width/ @column_max  - 32, 32+52)
  307.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  308.     bitmap = RPG::Cache.icon(item.icon_name)
  309.     opacity = self.contents.font.color == normal_color ? 255 : 128
  310.     self.contents.blt(x-5, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  311.     self.contents.font.size = 18
  312.     self.contents.draw_text(x + 25, y, 212, 32, item.name, 0)
  313.    # self.contents.draw_text(x + 20, y, 200, 32, ":", 1)
  314.     self.contents.draw_text(x + 72, y, 42, 73, number.to_s, 2)
  315.   
  316.   end
  317.   #--------------------------------------------------------------------------
  318.   # ● 刷新帮助文本
  319.   #--------------------------------------------------------------------------
  320.   def update_help
  321.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  322.   end
  323.   
  324.    #--------------------------------------------------------------------------
  325.   # ● 获取 1 页可以显示的行数
  326.   #--------------------------------------------------------------------------
  327.   def page_row_max
  328.     # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 32
  329.     return (self.height - 52) / 52
  330.   end
  331.   #--------------------------------------------------------------------------
  332.   # ● 获取 1 页可以显示的项目数
  333.   #--------------------------------------------------------------------------
  334.   def page_item_max
  335.     # 将行数 page_row_max 乘上列数 @column_max
  336.     return page_row_max * @column_max
  337.   end
  338.   
  339.     # ● 刷新光标矩形
  340.   #--------------------------------------------------------------------------
  341. def update_cursor_rect
  342.     # 光标位置不满 0 的情况下
  343.     if @index < 0
  344.       self.cursor_rect.empty
  345.       return
  346.     end
  347.     # 获取当前的行
  348.     row = @index / @column_max
  349.     # 当前行被显示开头行前面的情况下
  350.     if row < self.top_row
  351.       # 从当前行向开头行滚动
  352.       self.top_row = row
  353.     end
  354.     # 当前行被显示末尾行之后的情况下
  355.     if row > self.top_row + (self.page_row_max - 1)
  356.       # 从当前行向末尾滚动
  357.       self.top_row = row - (self.page_row_max - 1)
  358.     end
  359.     # 计算光标的宽
  360.     cursor_width = self.width / @column_max - 32
  361.     # 计算光标坐标
  362.     x = @index % @column_max * (cursor_width + 32)
  363.     y = @index / @column_max * 52 - self.oy
  364.     # 更新国标矩形
  365.     self.cursor_rect.set(x, y, cursor_width, 52)
  366.   end
  367.   #-----------------------
  368.   def update
  369.     super
  370.     # 可以移动光标的情况下
  371.     if self.active and @item_max > 0 and @index >= 0
  372.       # 方向键下被按下的情况下
  373.       
  374.       # R 键被按下的情况下
  375.       if Input.repeat?(Input::R)
  376.         # 显示的最后行在数据中最后行上方的情况下
  377.         if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
  378.           # 光标向后移动一页
  379.           $game_system.se_play($data_system.cursor_se)
  380.           @index = [@index + self.page_item_max, @item_max - 1].min
  381.           self.top_row += self.page_row_max
  382.         end
  383.       end
  384.       # L 键被按下的情况下
  385.       if Input.repeat?(Input::L)
  386.         # 显示的开头行在位置 0 之后的情况下
  387.         if self.top_row > 0
  388.           # 光标向前移动一页
  389.           $game_system.se_play($data_system.cursor_se)
  390.           @index = [@index - self.page_item_max, 0].max
  391.           self.top_row -= self.page_row_max
  392.         end
  393.       end
  394.     end
  395.     # 刷新帮助文本 (update_help 定义了继承目标)
  396.     if self.active and @help_window != nil
  397.       update_help
  398.     end
  399.     # 刷新光标矩形
  400.     update_cursor_rect
  401.   end
  402. end

  403. #==============================================================================
  404. # ■ Harts_Scene_Item
  405. #------------------------------------------------------------------------------
  406. #  アイテム画面の処理を行うクラスです。再定義
  407. #==============================================================================

  408. class Scene_Item
  409.   #--------------------------------------------------------------------------
  410.   # ● メイン処理
  411.   #--------------------------------------------------------------------------
  412.   def main
  413.   # picture = "Graphics/Battlebacks/北惧.jpg"
  414.    #@sprite = Sprite.new
  415.    #@sprite.bitmap = Bitmap.new(picture)

  416.     # タイトルウィンドウを作成
  417.     #@itemtitle_window = Harts_Window_ItemTitle.new
  418.     #コマンドウィンドウを作成
  419.     @itemcommand_window = Harts_Window_ItemCommand.new
  420.     @command_index = @itemcommand_window.index
  421.     #アイテムウィンドウを作成
  422.     @itemlist_window = Harts_Window_ItemList.new
  423.     @itemlist_window.active = false
  424.     #ヘルプウィンドウを作成
  425.     #@help_window = Window_Help.new
  426.     #@help_window.x = 0
  427.     #@help_window.y = 416
  428.     # ヘルプウィンドウを関連付け
  429.     @itemcommand_window.help_window = @help_window
  430.     @itemlist_window.help_window = @help_window
  431.     # ターゲットウィンドウを作成 (不可視?非アクティブに設定)
  432.     @target_window = Window_Target.new
  433.     @target_window.visible = false
  434.     @target_window.active = false
  435.     # アイテムウィンドウ内容表示
  436.     @itemlist_window.set_item(@command_index)
  437.     # トランジション実行
  438.     Graphics.transition
  439.     # メインループ
  440.     loop do
  441.       # ゲーム画面を更新
  442.       Graphics.update
  443.       # 入力情報を更新
  444.       Input.update
  445.       # フレーム更新
  446.       update
  447.       # 画面が切り替わったらループを中断
  448.       if $scene != self
  449.         break
  450.       end
  451.     end
  452.     # トランジション準備
  453.     Graphics.freeze
  454.     # ウィンドウを解放
  455. #     @sprite.dispose
  456. #  @sprite.bitmap.dispose unless @sprite.bitmap.disposed?
  457. #   @itemtitle_window.dispose
  458.     @itemcommand_window.dispose
  459.     @itemlist_window.dispose
  460.   #  @help_window.dispose
  461.     @target_window.dispose
  462.   end
  463.   #--------------------------------------------------------------------------
  464.   # ● フレーム更新
  465.   #--------------------------------------------------------------------------
  466.   def update
  467.     # ウィンドウを更新
  468. #    @itemtitle_window.update
  469.     @itemcommand_window.update
  470.     @itemlist_window.update
  471. #   @help_window.update
  472.     @target_window.update
  473.     if @command_index != @itemcommand_window.index
  474.       @command_index = @itemcommand_window.index
  475.       @itemlist_window.set_item(@command_index)
  476.     end
  477.     # コマンドウィンドウがアクティブの場合: update_itemcommand を呼ぶ
  478.     if @itemcommand_window.active
  479.       update_itemcommand
  480.       return
  481.     end
  482.     # アイテムウィンドウがアクティブの場合: update_itemlist を呼ぶ
  483.     if @itemlist_window.active
  484.       update_itemlist
  485.       return
  486.     end
  487.     # ターゲットウィンドウがアクティブの場合: update_target を呼ぶ
  488.     if @target_window.active
  489.       update_target
  490.       return
  491.     end
  492.   end
  493.   #--------------------------------------------------------------------------
  494.   # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  495.   #--------------------------------------------------------------------------
  496.   def update_itemcommand
  497.   # B ボタンが押された場合
  498.   if Input.trigger?(Input::B)
  499.   # キャンセル SE を演奏
  500.   $game_system.se_play($data_system.cancel_se)
  501.   # メニュー画面に切り替え
  502.   $scene = Scene_Menu.new(0)
  503.   return
  504.   end
  505.   # C ボタンが押された場合
  506.   if Input.trigger?(Input::C)
  507.   # 選択中のコマンドのアイテムがない場合
  508.   if @itemlist_window.item_number == 0
  509.   # ブザー SE を演奏
  510.   $game_system.se_play($data_system.buzzer_se)
  511.   return
  512.   end
  513.   # 決定 SE を演奏
  514.   $game_system.se_play($data_system.decision_se)
  515.   # アイテムウィンドウをアクティブにする
  516.   @itemcommand_window.active = false
  517.   @itemlist_window.active = true
  518.   @itemlist_window.index = 0
  519.   return
  520.   end
  521.   end
  522.   #--------------------------------------------------------------------------
  523.   # ● フレーム更新 (アイテムウィンドウがアクティブの場合)
  524.   #--------------------------------------------------------------------------
  525.   def update_itemlist
  526.     # B ボタンが押された場合
  527.     if Input.trigger?(Input::B)
  528.       # キャンセル SE を演奏
  529.       $game_system.se_play($data_system.cancel_se)
  530.       # アイテムウィンドウをアクティブにする
  531.       @itemcommand_window.active = true
  532.       @itemlist_window.active = false
  533.       @itemlist_window.index = 0
  534.       @itemcommand_window.index = @command_index
  535.       return
  536.     end
  537.     # C ボタンが押された場合
  538.     if Input.trigger?(Input::C)
  539.       # アイテムウィンドウで現在選択されているデータを取得
  540.       @item = @itemlist_window.item
  541.       # 使用アイテムではない場合
  542.       unless @item.is_a?(RPG::Item)
  543.         # ブザー SE を演奏
  544.         $game_system.se_play($data_system.buzzer_se)
  545.         return
  546.       end
  547.       # 使用できない場合
  548.       unless $game_party.item_can_use?(@item.id)
  549.         # ブザー SE を演奏
  550.         $game_system.se_play($data_system.buzzer_se)
  551.         return
  552.       end
  553.       # 決定 SE を演奏
  554.       $game_system.se_play($data_system.decision_se)
  555.       # 効果範囲が味方の場合
  556.       if @item.scope >= 3
  557.         # ターゲットウィンドウをアクティブ化
  558.         @itemlist_window.active = false
  559.         @target_window.x = 304
  560.         @target_window.visible = true
  561.         @target_window.active = true
  562.         # 効果範囲 (単体/全体) に応じてカーソル位置を設定
  563.         if @item.scope == 4 || @item.scope == 6
  564.           @target_window.index = -1
  565.         else
  566.           @target_window.index = 0
  567.         end
  568.         # 効果範囲が味方以外の場合
  569.       else
  570.         # コモンイベント ID が有効の場合
  571.         if @item.common_event_id > 0
  572.           # コモンイベント呼び出し予約
  573.           $game_temp.common_event_id = @item.common_event_id
  574.           # アイテムの使用時 SE を演奏
  575.           $game_system.se_play(@item.menu_se)
  576.           # 消耗品の場合
  577.             if @item.consumable
  578.               # 使用したアイテムを 1 減らす
  579.               $game_party.lose_item(@item.id, 1)
  580.               # アイテムウィンドウの項目を再描画
  581.               @itemlist_window.draw_item(@itemlist_window.index)
  582.             end
  583.           # マップ画面に切り替え
  584.           $scene = Scene_Map.new
  585.           return
  586.         end
  587.       end
  588.       return
  589.     end
  590.   end
  591.   #--------------------------------------------------------------------------
  592.   # ● フレーム更新 (ターゲットウィンドウがアクティブの場合)
  593.   #--------------------------------------------------------------------------
  594.   def update_target
  595.     # B ボタンが押された場合
  596.     if Input.trigger?(Input::B)
  597.       # キャンセル SE を演奏
  598.       $game_system.se_play($data_system.cancel_se)
  599.       # アイテム切れなどで使用できなくなった場合
  600.       unless $game_party.item_can_use?(@item.id)
  601.         # アイテムウィンドウの内容を再作成
  602.         @itemlist_window.refresh
  603.       end
  604.       # ターゲットウィンドウを消去
  605.       @itemlist_window.active = true
  606.       @target_window.visible = false
  607.       @target_window.active = false
  608.       @itemlist_window.set_item(@command_index)
  609.       return
  610.     end
  611.     # C ボタンが押された場合
  612.     if Input.trigger?(Input::C)
  613.       # アイテムを使い切った場合
  614.       if $game_party.item_number(@item.id) == 0
  615.         # ブザー SE を演奏
  616.         $game_system.se_play($data_system.buzzer_se)
  617.         return
  618.       end
  619.       # ターゲットが全体の場合
  620.       if @target_window.index == -1
  621.         # パーティ全体にアイテムの使用効果を適用
  622.         used = false
  623.         for i in $game_party.actors
  624.           used |= i.item_effect(@item)
  625.         end
  626.       end
  627.       # ターゲットが単体の場合
  628.       if @target_window.index >= 0
  629.         # ターゲットのアクターにアイテムの使用効果を適用
  630.         target = $game_party.actors[@target_window.index]
  631.         used = target.item_effect(@item)
  632.       end
  633.       # アイテムを使った場合
  634.       if used
  635.         # アイテムの使用時 SE を演奏
  636.         $game_system.se_play(@item.menu_se)
  637.         # 消耗品の場合
  638.         if @item.consumable
  639.           # 使用したアイテムを 1 減らす
  640.           $game_party.lose_item(@item.id, 1)
  641.           # アイテムウィンドウの項目を再描画
  642.           @itemlist_window.draw_item(@itemlist_window.index)
  643.           @itemlist_window.set_item(@command_index)
  644.         end
  645.         # ターゲットウィンドウの内容を再作成
  646.         @target_window.refresh
  647.         # 全滅の場合
  648.         if $game_party.all_dead?
  649.           # ゲームオーバー画面に切り替え
  650.           $scene = Scene_Gameover.new
  651.           return
  652.         end
  653.         # コモンイベント ID が有効の場合
  654.         if @item.common_event_id > 0
  655.           # コモンイベント呼び出し予約
  656.           $game_temp.common_event_id = @item.common_event_id
  657.           # マップ画面に切り替え
  658.           $scene = Scene_Map.new
  659.           return
  660.         end
  661.       end
  662.       # アイテムを使わなかった場合
  663.       unless used
  664.         # ブザー SE を演奏
  665.         $game_system.se_play($data_system.buzzer_se)
  666.       end
  667.     return
  668.     end
  669.   end
  670. end

复制代码




系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
《神雕侠侣后传》预告系统:完全鼠标操作。战斗:全动画CP制战斗。系统:100%,已完成。素材:人物60%,地图20%剧情:20%。CG动画:100%。http://rpg.blue/forumTopicR ... 2%2D23+21%3A42%3A05
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-1-21
帖子
6
4
 楼主| 发表于 2009-1-23 01:42:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-19 02:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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