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

Project1

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

仿轩辕剑新品整理

 关闭 [复制链接]

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
跳转到指定楼层
1
发表于 2008-10-1 02:46:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
仿轩辕剑新品整理

得到物品在新品栏,整理物品在相应栏


  1. #==============================================================================
  2. # ■ 仿轩辕剑新品整理
  3. #
  4. #   本脚本来自www.66RPG.com,使用和转载请保留此信息
  5. #
  6. #------------------------------------------------------------------------------
  7. #
  8. #   说明:1.分类物品在数据库物品的说明栏文字的尾部添加 @分类名称 。 如
  9. #           己方单体HP500回复。@回复物品
  10. #
  11. #         2.整理物品的音效名称$sound,可自行修改。
  12. #
  13. #   作者:ONEWateR
  14. #   
  15. #==============================================================================

  16. $sound = "006-System06"

  17. class Game_Party
  18.   def new_gain_item(item_id, n)
  19.     if item_id > 0
  20.       @new_items[item_id] = [[new_item_number(item_id) + n, 0].max, 99].min
  21.     end
  22.   end
  23.   def new_gain_weapon(weapon_id, n)
  24.     if weapon_id > 0
  25.       @new_weapons[weapon_id] = [[new_weapon_number(weapon_id) + n, 0].max, 99].min
  26.     end
  27.   end
  28.   def new_gain_armor(armor_id, n)
  29.     if armor_id > 0
  30.       @new_armors[armor_id] = [[new_armor_number(armor_id) + n, 0].max, 99].min
  31.     end
  32.   end
  33.   def new_item_number(item_id)
  34.     return @new_items.include?(item_id) ? @new_items[item_id] : 0
  35.   end
  36.   def new_weapon_number(weapon_id)
  37.     return @new_weapons.include?(weapon_id) ? @new_weapons[weapon_id] : 0
  38.   end
  39.   def new_armor_number(armor_id)
  40.     return @new_armors.include?(armor_id) ? @new_armors[armor_id] : 0
  41.   end
  42. end



  43. #==============================================================================
  44. # ■ Harts_Window_ItemTitle
  45. #==============================================================================

  46. class Harts_Window_ItemTitle < Window_Base
  47.   def initialize
  48.     super(0, 0, 160, 64)
  49.     self.contents = Bitmap.new(width - 32, height - 32)
  50.     self.contents.clear
  51.     self.contents.font.color = normal_color
  52.     self.contents.draw_text(4, 0, 120, 32, $data_system.words.item, 1)
  53.   end
  54. end

  55. #==============================================================================
  56. # ■ Harts_Window_ItemCommand
  57. #==============================================================================

  58. class Harts_Window_ItemCommand < Window_Selectable
  59.   attr_accessor :commands
  60.   #--------------------------------------------------------------------------
  61.   # ● 初始化,生成commands窗口
  62.   #--------------------------------------------------------------------------
  63.   def initialize
  64.     super(0, 64, 160, 352)
  65.     command
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   #--------------------------------------------------------------------------
  69.   def command  
  70.     @commands = ["新品"]

  71.     #==============================================================================
  72.     #————————生成commands窗口
  73.     for i in 1...$data_items.size
  74.      # if $game_party.item_number(i) > 0
  75.         push = true
  76.         for com in @commands
  77.           if com == $data_items[i].desc
  78.             push = false
  79.           end
  80.         end
  81.         if push == true
  82.           @commands.push($data_items[i].desc)
  83.         end
  84.      # end
  85.     end
  86.     for i in 1...$data_weapons.size
  87.      # if $game_party.weapon_number(i) > 0
  88.         push = true
  89.         for com in @commands
  90.           if com == $data_weapons[i].desc
  91.             push = false
  92.           end
  93.         end
  94.         if push == true
  95.           @commands.push($data_weapons[i].desc)
  96.         end
  97.     #  end
  98.     end
  99.     for i in 1...$data_armors.size
  100.     #  if $game_party.armor_number(i) > 0
  101.         push = true
  102.         for com in @commands
  103.           if com == $data_armors[i].desc
  104.             push = false
  105.           end
  106.         end
  107.         if push == true
  108.           @commands.push($data_armors[i].desc)
  109.         end
  110.     #  end
  111.     end

  112.     #==============================================================================

  113.     @commands.push("整理")
  114.     @item_max = @commands.size
  115.     self.contents = Bitmap.new(width - 32, @item_max * 32)
  116.     refresh
  117.     self.index = 0

  118.   end
  119.   #--------------------------------------------------------------------------
  120.   #--------------------------------------------------------------------------
  121.   def refresh
  122.     self.contents.clear
  123.     for i in 0...@item_max
  124.       draw_item(i, normal_color)
  125.     end
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   #--------------------------------------------------------------------------
  129.   def draw_item(index, color)
  130.     self.contents.font.color = color
  131.     y = index * 32
  132.     self.contents.draw_text(4, y, 128, 32, @commands[index])
  133.   end
  134.   #--------------------------------------------------------------------------
  135.   # 只描绘原文字
  136.   #--------------------------------------------------------------------------
  137.   def update_help
  138.     @help_window.set_text(@commands[self.index])
  139.   end
  140. end

  141. #==============================================================================
  142. # ■ Window_Item
  143. #==============================================================================

  144. class Harts_Window_ItemList < Window_Selectable
  145.   #--------------------------------------------------------------------------
  146.   #--------------------------------------------------------------------------
  147.   def initialize
  148.     super(160, 0, 480, 416)
  149.     refresh
  150.     self.index = 0
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   #--------------------------------------------------------------------------
  154.   def item
  155.     return @data[self.index]
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   #--------------------------------------------------------------------------
  159.   def refresh
  160.     if self.contents != nil
  161.       self.contents.dispose
  162.       self.contents = nil
  163.     end
  164.     @data = []
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   #--------------------------------------------------------------------------
  168.   
  169. #==============================================================================

  170.   def new_set_item(command)
  171.     refresh
  172.     for i in 1...$data_items.size
  173.       if $game_party.new_item_number(i) > 0
  174.         @data.push($data_items[i])
  175.       end
  176.     end
  177.     for i in 1...$data_weapons.size
  178.       if $game_party.new_weapon_number(i) > 0
  179.         @data.push($data_weapons[i])
  180.       end
  181.     end
  182.     for i in 1...$data_armors.size
  183.       if $game_party.new_armor_number(i) > 0
  184.         @data.push($data_armors[i])
  185.       end
  186.     end
  187.     @item_max = @data.size
  188.     if @item_max > 0
  189.       self.contents = Bitmap.new(width - 32, row_max * 32)
  190.       self.contents.clear
  191.       for i in 0...@item_max
  192.         new_draw_item(i)
  193.       end
  194.     end
  195.   end

  196. #==============================================================================


  197.   def set_item(command)
  198.     refresh
  199.     for i in 1...$data_items.size
  200.       if $game_party.item_number(i) > 0 and $data_items[i].desc == command
  201.         @data.push($data_items[i])
  202.       end
  203.     end
  204.     for i in 1...$data_weapons.size
  205.       if $game_party.weapon_number(i) > 0 and $data_weapons[i].desc == command
  206.         @data.push($data_weapons[i])
  207.       end
  208.     end
  209.     for i in 1...$data_armors.size
  210.       if $game_party.armor_number(i) > 0 and $data_armors[i].desc == command
  211.         @data.push($data_armors[i])
  212.       end
  213.     end
  214.     @item_max = @data.size

  215.     if @item_max > 0
  216.       self.contents = Bitmap.new(width - 32, row_max * 32)
  217.       self.contents.clear
  218.       for i in 0...@item_max
  219.         draw_item(i)
  220.       end   
  221.      end
  222.   end
  223.   #--------------------------------------------------------------------------
  224.   #--------------------------------------------------------------------------
  225.   def item_number
  226.     return @item_max
  227.   end
  228.   #--------------------------------------------------------------------------
  229.   #--------------------------------------------------------------------------
  230.   
  231.   
  232.   
  233. #==============================================================================
  234.   def new_draw_item(index)
  235.     item = @data[index]
  236.     case item
  237.     when RPG::Item
  238.       number = $game_party.new_item_number(item.id)
  239.     when RPG::Weapon
  240.       number = $game_party.new_weapon_number(item.id)
  241.     when RPG::Armor
  242.       number = $game_party.new_armor_number(item.id)
  243.     end
  244.     if item.is_a?(RPG::Item) and
  245.       $game_party.item_can_use?(item.id)
  246.       self.contents.font.color = normal_color
  247.     else
  248.       self.contents.font.color = disabled_color
  249.     end
  250.     x = 4
  251.     y = index * 32
  252.     bitmap = RPG::Cache.icon(item.icon_name)
  253.     opacity = self.contents.font.color == normal_color ? 255 : 128
  254.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  255.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  256.     self.contents.draw_text(x + 400, y, 16, 32, ":", 1)
  257.     self.contents.draw_text(x + 416, y, 24, 32, number.to_s, 2)
  258.   end
  259. #==============================================================================


  260.   def draw_item(index)
  261.     item = @data[index]
  262.     case item
  263.     when RPG::Item
  264.       number = $game_party.item_number(item.id)
  265.     when RPG::Weapon
  266.       number = $game_party.weapon_number(item.id)
  267.     when RPG::Armor
  268.       number = $game_party.armor_number(item.id)
  269.     end
  270.     if item.is_a?(RPG::Item) and
  271.       $game_party.item_can_use?(item.id)
  272.       self.contents.font.color = normal_color
  273.     else
  274.       self.contents.font.color = disabled_color
  275.     end
  276.     x = 4
  277.     y = index * 32
  278.     bitmap = RPG::Cache.icon(item.icon_name)
  279.     opacity = self.contents.font.color == normal_color ? 255 : 128
  280.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  281.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  282.     self.contents.draw_text(x + 400, y, 16, 32, ":", 1)
  283.     self.contents.draw_text(x + 416, y, 24, 32, number.to_s, 2)
  284.   end
  285.   #--------------------------------------------------------------------------
  286.   #--------------------------------------------------------------------------
  287.   def update_help
  288.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  289.   end
  290. end

  291. #==============================================================================
  292. # ■ Harts_Scene_Item
  293. #==============================================================================

  294. class Scene_Item
  295.   #--------------------------------------------------------------------------
  296.   #--------------------------------------------------------------------------
  297.   def main
  298.     @itemtitle_window = Harts_Window_ItemTitle.new
  299.     @itemcommand_window = Harts_Window_ItemCommand.new
  300.     @command_index = @itemcommand_window.index
  301.     @itemlist_window = Harts_Window_ItemList.new
  302.     @itemlist_window.active = false
  303.     @help_window = Window_Help.new
  304.     @help_window.x = 0
  305.     @help_window.y = 416
  306.     @itemcommand_window.help_window = @help_window
  307.     @itemlist_window.help_window = @help_window
  308.     @target_window = Window_Target.new
  309.     @target_window.visible = false
  310.     @target_window.active = false
  311.     @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
  312. #==============================================================================
  313.     @itemlist_window.new_set_item(@itemcommand_window.commands[1])
  314. #==============================================================================
  315.     Graphics.transition
  316.     loop do
  317.       Graphics.update
  318.       Input.update
  319.       update
  320.       if $scene != self
  321.         break
  322.       end
  323.     end
  324.     Graphics.freeze
  325.     @itemtitle_window.dispose
  326.     @itemcommand_window.dispose
  327.     @itemlist_window.dispose
  328.     @help_window.dispose
  329.     @target_window.dispose
  330.   end
  331.   #--------------------------------------------------------------------------
  332.   #--------------------------------------------------------------------------
  333.   def update
  334.     @itemtitle_window.update
  335.     @itemcommand_window.update
  336.     @itemlist_window.update
  337.     @help_window.update
  338.     @target_window.update

  339.     if @command_index != @itemcommand_window.index
  340.       @command_index = @itemcommand_window.index
  341.       @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
  342. #==============================================================================
  343.       @itemlist_window.new_set_item(@itemcommand_window.commands[1])  if @command_index == 0
  344. #==============================================================================

  345.     end
  346.     if @itemcommand_window.active
  347.       update_itemcommand
  348.       return
  349.     end
  350.     if @itemlist_window.active
  351.       update_itemlist
  352.       return
  353.     end
  354.     if @target_window.active
  355.       update_target
  356.       return
  357.     end
  358.   end
  359.   #--------------------------------------------------------------------------
  360.   #--------------------------------------------------------------------------
  361.   def update_itemcommand
  362.    

  363.     if Input.trigger?(Input::B)
  364.       $game_system.se_play($data_system.cancel_se)
  365.       $scene = Scene_Menu.new(0)
  366.       return
  367.     end
  368.     if Input.trigger?(Input::C)
  369. #==============================================================================
  370.       if @itemcommand_window.commands[@command_index] == "整理"
  371.         Audio.se_play("Audio/SE/" + $sound, 80, 0)
  372.         for i in 1..$data_items.size-1
  373.           $game_party.gain_item(i, $game_party.new_item_number(i))
  374.           $game_party.new_gain_item(i, -$game_party.new_item_number(i))
  375.         end
  376.         for i in 1..$data_weapons.size-1
  377.           $game_party.gain_weapon(i, $game_party.new_weapon_number(i))
  378.           $game_party.new_gain_weapon(i, -$game_party.new_weapon_number(i))
  379.         end
  380.         for i in 1..$data_armors.size-1
  381.           $game_party.gain_armor(i, $game_party.new_armor_number(i))
  382.           $game_party.new_gain_armor(i, -$game_party.new_armor_number(i))
  383.         end
  384.       return
  385.       end
  386. #==============================================================================
  387.       if @itemlist_window.item_number == 0
  388.         $game_system.se_play($data_system.buzzer_se)
  389.         return
  390.       end
  391.       $game_system.se_play($data_system.decision_se)
  392.       @itemcommand_window.active = false
  393.       @itemlist_window.active = true
  394.       @itemlist_window.index = 0
  395.       return
  396.     end
  397.   end
  398.   #--------------------------------------------------------------------------
  399.   #--------------------------------------------------------------------------
  400.   def update_itemlist
  401.     if Input.trigger?(Input::B)
  402.       $game_system.se_play($data_system.cancel_se)
  403.       @itemcommand_window.active = true
  404.       @itemlist_window.active = false
  405.       @itemlist_window.index = 0
  406.       @itemcommand_window.index = @command_index
  407.       return
  408.     end
  409.     if Input.trigger?(Input::C)
  410.       @item = @itemlist_window.item
  411.       unless @item.is_a?(RPG::Item)
  412.         $game_system.se_play($data_system.buzzer_se)
  413.         return
  414.       end
  415.       unless $game_party.item_can_use?(@item.id)
  416.         $game_system.se_play($data_system.buzzer_se)
  417.         return
  418.       end
  419.       
  420.       $game_system.se_play($data_system.decision_se)
  421.       if @item.scope >= 3
  422.         @itemlist_window.active = false
  423.         @target_window.x = 304
  424.         @target_window.visible = true
  425.         @target_window.active = true
  426.         if @item.scope == 4 || @item.scope == 6
  427.           @target_window.index = -1
  428.         else
  429.           @target_window.index = 0
  430.         end
  431.       else
  432.         if @item.common_event_id > 0
  433.           $game_temp.common_event_id = @item.common_event_id
  434.           $game_system.se_play(@item.menu_se)
  435.             if @item.consumable
  436.               $game_party.lose_item(@item.id, 1)
  437.               @itemlist_window.draw_item(@itemlist_window.index)
  438.             end
  439.           $scene = Scene_Map.new
  440.           return
  441.         end
  442.       end
  443.       return
  444.     end
  445.   end
  446.   #--------------------------------------------------------------------------
  447.   #--------------------------------------------------------------------------
  448.   def update_target
  449.     if Input.trigger?(Input::B)
  450.       $game_system.se_play($data_system.cancel_se)
  451.       unless $game_party.item_can_use?(@item.id)
  452.         @itemlist_window.refresh
  453.       end
  454.       @itemlist_window.active = true
  455.       @target_window.visible = false
  456.       @target_window.active = false
  457.       @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
  458. #==============================================================================
  459.       @itemlist_window.new_set_item(@itemcommand_window.commands[1]) if @command_index == 0
  460. #==============================================================================
  461.          
  462.       return
  463.     end
  464.     if Input.trigger?(Input::C)
  465. #==============================================================================
  466.        if $game_party.new_item_number(@item.id) == 0 and @command_index == 0
  467.         $game_system.se_play($data_system.buzzer_se)
  468.         return
  469.       end     

  470.       if $game_party.item_number(@item.id) == 0 and @command_index != 0
  471.         $game_system.se_play($data_system.buzzer_se)
  472.         return
  473.       end     

  474. #==============================================================================
  475.       if @target_window.index == -1
  476.         used = false
  477.         for i in $game_party.actors
  478.           used |= i.item_effect(@item)
  479.         end
  480.       end
  481.       if @target_window.index >= 0
  482.         target = $game_party.actors[@target_window.index]
  483.         used = target.item_effect(@item)
  484.       end
  485.       if used
  486.         $game_system.se_play(@item.menu_se)
  487.         if @item.consumable
  488.          
  489. #==============================================================================
  490.           if @command_index == 0
  491.           $game_party.new_lose_item(@item.id, 1)
  492.           else
  493.           $game_party.lose_item(@item.id, 1)
  494.           end
  495. #==============================================================================
  496.           @itemlist_window.draw_item(@itemlist_window.index)
  497.           @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
  498. #==============================================================================
  499.           @itemlist_window.new_set_item(@itemcommand_window.commands[1])  if @command_index == 0
  500. #==============================================================================
  501.         end
  502.         @target_window.refresh
  503.         if $game_party.all_dead?
  504.           $scene = Scene_Gameover.new
  505.           return
  506.         end
  507.         if @item.common_event_id > 0
  508.           $game_temp.common_event_id = @item.common_event_id
  509.           $scene = Scene_Map.new
  510.           return
  511.         end
  512.       end
  513.       unless used
  514.         $game_system.se_play($data_system.buzzer_se)
  515.       end
  516.     return
  517.     end
  518.   end
  519. end

  520. #==============================================================================
  521. # ■ RPG追加定义,使用@符号分类
  522. #==============================================================================

  523. module RPG
  524.   class Weapon
  525.     def description
  526.       description = @description.split(/@/)[0]
  527.       return description != nil ? description : ''
  528.     end
  529.     def desc
  530.       desc = @description.split(/@/)[1]
  531.       return desc != nil ? desc : "普通物品"
  532.     end
  533.   end
  534.   class Item
  535.     def description
  536.       description = @description.split(/@/)[0]
  537.       return description != nil ? description : ''
  538.     end
  539.     def desc
  540.       desc = @description.split(/@/)[1]
  541.       return desc != nil ? desc : "普通物品"
  542.     end
  543.   end
  544.   class Armor
  545.     def description
  546.       description = @description.split(/@/)[0]
  547.       return description != nil ? description : ''
  548.     end
  549.     def desc
  550.       desc = @description.split(/@/)[1]
  551.       return desc != nil ? desc : "普通物品"
  552.     end
  553.   end
  554. end


  555. class Interpreter

  556.   #--------------------------------------------------------------------------
  557.   # ● 增减物品
  558.   #--------------------------------------------------------------------------
  559.   def command_126
  560.     # 获取要操作的值
  561.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  562.     # 增减物品
  563.     $game_party.new_gain_item(@parameters[0], value)
  564.     # 继续
  565.     return true
  566.   end
  567.   #--------------------------------------------------------------------------
  568.   # ● 增减武器
  569.   #--------------------------------------------------------------------------
  570.   def command_127
  571.     # 获取要操作的值
  572.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  573.     # 增减武器
  574.     $game_party.new_gain_weapon(@parameters[0], value)
  575.     # 继续
  576.     return true
  577.   end
  578.   #--------------------------------------------------------------------------
  579.   # ● 增减防具
  580.   #--------------------------------------------------------------------------
  581.   def command_128
  582.     # 获取要操作的值
  583.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  584.     # 增减防具
  585.     $game_party.new_gain_armor(@parameters[0], value)
  586.     # 继续
  587.     return true
  588.   end

  589. end

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


http://rpg.blue/UP_PIC/200801/仿轩辕剑新品整理.rar

Lv1.梦旅人

天壤

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-7-18
帖子
1435
2
发表于 2008-10-1 02:47:28 | 只看该作者
SF.....截图呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
3
 楼主| 发表于 2008-12-28 19:31:05 | 只看该作者
发布完毕
http://rpg.blue/web/htm/news1231.htm
vip += 2
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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