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

Project1

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

[已经解决] [已解决]轩辕剑菜单中,效果范围无时无法使用

[复制链接]

Lv4.逐梦者

素材区好人

梦石
3
星屑
7522
在线时间
3542 小时
注册时间
2011-7-21
帖子
2284

极短24参与极短23参与极短22参与极短21参与

跳转到指定楼层
1
发表于 2020-3-2 23:55:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 无忧谷主幻 于 2020-3-5 12:44 编辑

虽然换成己方单体,己方全体,使用者后就可以用了,但感觉像是角色吃了该物品似的
轩辕菜单 复杂物品分类.zip (1.03 MB, 下载次数: 56)

Lv3.寻梦者

梦石
0
星屑
2234
在线时间
90 小时
注册时间
2018-6-29
帖子
19

R考场第七期纪念奖

2
发表于 2020-3-3 09:45:41 | 只看该作者
经过了几次测试,效果范围为“无”时可以使用了。改过的地方,搜“宝箱君”就找到了,不行的话就当参考了。(虽然不知道这么改为什么会成功就是了23333)
RUBY 代码复制
  1. #==============================================================================
  2. #复杂物品分类轩辕菜单整合版。脚本来自66RPG。物品分类原作者:柳柳
  3. #轩辕剑菜单原作者:亿万星辰      整合:hktk
  4. #==============================================================================
  5. #==============================================================================
  6. # ■ Window_ItemCommand
  7. #==============================================================================
  8.  
  9. class Window_ItemCommand < Window_Selectable
  10.   attr_accessor :commands
  11.   #--------------------------------------------------------------------------
  12.   # ● 初始化,生成commands窗口
  13.   #--------------------------------------------------------------------------
  14.   def initialize
  15.     super(160, 64, 161, 352)
  16.     @commands = []
  17.     #————————生成commands窗口
  18.     for i in 1...$data_items.size
  19.       if $game_party.item_number(i) > 0
  20.         push = true
  21.         for com in @commands
  22.           if com == $data_items[i].desc
  23.             push = false
  24.           end
  25.         end
  26.         if push == true
  27.           @commands.push($data_items[i].desc)
  28.         end
  29.       end
  30.     end
  31.     for i in 1...$data_weapons.size
  32.       if $game_party.weapon_number(i) > 0
  33.         push = true
  34.         for com in @commands
  35.           if com == $data_weapons[i].desc
  36.             push = false
  37.           end
  38.         end
  39.         if push == true
  40.           @commands.push($data_weapons[i].desc)
  41.         end
  42.       end
  43.     end
  44.     for i in 1...$data_armors.size
  45.       if $game_party.armor_number(i) > 0
  46.         push = true
  47.         for com in @commands
  48.           if com == $data_armors[i].desc
  49.             push = false
  50.           end
  51.         end
  52.         if push == true
  53.           @commands.push($data_armors[i].desc)
  54.         end
  55.       end
  56.     end
  57.     if @commands == []
  58.       @commands.push("普通物品")
  59.     end      
  60.     @item_max = @commands.size
  61.     self.contents = Bitmap.new(width - 32, @item_max * 32)
  62.     refresh
  63.     self.index = 0
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   #--------------------------------------------------------------------------
  67.   def refresh
  68.     self.contents.clear
  69.     for i in 0...@item_max
  70.       draw_item(i, normal_color)
  71.     end
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   #--------------------------------------------------------------------------
  75.   def draw_item(index, color)
  76.     self.contents.font.color = color
  77.     y = index * 32
  78.     self.contents.draw_text(4, y, 128, 32, @commands[index])
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # 只描绘原文字
  82.   #--------------------------------------------------------------------------
  83.   def update_help
  84.     @help_window.set_text(@commands[self.index])
  85.   end
  86. end
  87. #==============================================================================
  88. # ■ Window_ItemList
  89. #==============================================================================
  90.  
  91. class Window_ItemList < Window_Selectable
  92.   #--------------------------------------------------------------------------
  93.   #--------------------------------------------------------------------------
  94.   def initialize
  95.     super(321, 64, 319, 352)
  96.     refresh
  97.     self.index = 0
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   #--------------------------------------------------------------------------
  101.   def item
  102.     return @data[self.index]
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   #--------------------------------------------------------------------------
  106.   def refresh
  107.     if self.contents != nil
  108.       self.contents.dispose
  109.       self.contents = nil
  110.     end
  111.     @data = []
  112.   end
  113.   #--------------------------------------------------------------------------
  114.   #--------------------------------------------------------------------------
  115.   def set_item(command)
  116.     refresh
  117.     for i in 1...$data_items.size
  118.       if $game_party.item_number(i) > 0 and $data_items[i].desc == command
  119.         @data.push($data_items[i])
  120.       end
  121.     end
  122.     for i in 1...$data_weapons.size
  123.       if $game_party.weapon_number(i) > 0 and $data_weapons[i].desc == command
  124.         @data.push($data_weapons[i])
  125.       end
  126.     end
  127.     for i in 1...$data_armors.size
  128.       if $game_party.armor_number(i) > 0 and $data_armors[i].desc == command
  129.         @data.push($data_armors[i])
  130.       end
  131.     end
  132.     @item_max = @data.size
  133.     if @item_max > 0
  134.       self.contents = Bitmap.new(width - 32, row_max * 32)
  135.       self.contents.clear
  136.       for i in 0...@item_max
  137.         draw_item(i)
  138.       end
  139.     end
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   #--------------------------------------------------------------------------
  143.   def item_number
  144.     return @item_max
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   #--------------------------------------------------------------------------
  148.   def draw_item(index)
  149.     item = @data[index]
  150.     case item
  151.     when RPG::Item
  152.       number = $game_party.item_number(item.id)
  153.     when RPG::Weapon
  154.       number = $game_party.weapon_number(item.id)
  155.     when RPG::Armor
  156.       number = $game_party.armor_number(item.id)
  157.     end
  158.     if item.is_a?(RPG::Item) and
  159.       $game_party.item_can_use?(item.id)
  160.       self.contents.font.color = normal_color
  161.     else
  162.       self.contents.font.color = disabled_color
  163.     end
  164.     x = 4
  165.     y = index * 32
  166.     bitmap = RPG::Cache.icon(item.icon_name)
  167.     opacity = self.contents.font.color == normal_color ? 255 : 128
  168.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  169.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  170.     self.contents.draw_text(x + 250, y, 16, 32, ":", 1)
  171.     self.contents.draw_text(x + 258, y, 24, 32, number.to_s, 2)
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   #--------------------------------------------------------------------------
  175.   def update_help
  176.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  177.   end
  178. end
  179. #==============================================================================
  180. #复杂物品分类轩辕菜单整合版。脚本来自66RPG。物品分类原作者:柳柳
  181. #轩辕剑菜单原作者:亿万星辰      整合:hktk
  182. #==============================================================================
  183. #==============================================================================
  184. # ■ Scene_Item
  185. #==============================================================================
  186. class Scene_Item
  187.   def main
  188. #==============================================================================
  189. #这段脚本是为了风格与 轩辕剑菜单 吻合加的。(基本上直接拷过来的)
  190. #==============================================================================
  191.     @command_window = Window_MenuCommand.new(0)
  192.     @gold_window = Window_Gold.new
  193.     @gold_window.x = 0
  194.     @gold_window.y = 416
  195.     @status_window = Window_MenuStatus.new
  196.     @status_window.x = 0
  197.     @status_window.y = 64
  198.     @dummy_window = Window_Base.new(160, 64, 480, 416)
  199.     @dummy_window.back_opacity = 0
  200.     @dummy_sprite = Sprite.new(Viewport.new(160, 64, 480, 416))
  201.     @old_index = @menu_index
  202. #  item  是轩辕剑菜单的物品默认背景图,如果你修改了,也要将这里修改。
  203.     @dummy_sprite.bitmap = Bitmap.new("Graphics/Pictures/item")
  204. #==============================================================================
  205. #这里开始时正式脚本
  206. #==============================================================================
  207.     @itemcommand_window = Window_ItemCommand.new
  208.     @itemcommand_window.opacity = 180
  209.     @command_index = @itemcommand_window.index
  210.     @itemlist_window = Window_ItemList.new
  211.     @itemlist_window.active = false
  212.     @itemlist_window.opacity = 180
  213.     @help_window = Window_Help_New.new
  214.     @help_window.x = 160
  215.     @help_window.y = 416
  216.     @itemcommand_window.help_window = @help_window
  217.     @itemlist_window.help_window = @help_window
  218.     @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
  219.     Graphics.transition
  220.     loop do
  221.       Graphics.update
  222.       Input.update
  223.       update
  224.       if $scene != self
  225.         break
  226.       end
  227.     end
  228.     Graphics.freeze
  229.     @itemcommand_window.dispose
  230.     @itemlist_window.dispose
  231.     @help_window.dispose
  232. #这里是关闭前面那些轩辕剑菜单的各种东西。
  233.     @command_window.dispose
  234.     @gold_window.dispose
  235.     @status_window.dispose
  236.     @dummy_window.dispose
  237.     @dummy_sprite.dispose
  238.   end
  239. #==============================================================================
  240. #刷新内容总算法
  241. #==============================================================================
  242.   def update
  243.     @itemcommand_window.update
  244.     @itemlist_window.update
  245.     @help_window.update
  246.     if @command_index != @itemcommand_window.index
  247.       @command_index = @itemcommand_window.index
  248.       @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
  249.     end
  250.     if @itemcommand_window.active
  251.       update_itemcommand
  252.       return
  253.     end
  254.     if @itemlist_window.active
  255.       update_itemlist
  256.       return
  257.     end
  258.     if @status_window.active
  259.       update_target
  260.       return
  261.     end
  262.   end
  263. #------------------------------------------------------------------------------
  264. #刷新种类菜单
  265. #------------------------------------------------------------------------------
  266.   def update_itemcommand
  267.     if Input.trigger?(Input::B)
  268.       $game_system.se_play($data_system.cancel_se)
  269.       $scene = Scene_Menu.new(0)
  270.       return
  271.     end
  272.     if Input.trigger?(Input::C)
  273.       if @itemlist_window.item_number == 0
  274.         $game_system.se_play($data_system.buzzer_se)
  275.         return
  276.       end
  277.       $game_system.se_play($data_system.decision_se)
  278.       @itemcommand_window.active = false
  279.       @itemlist_window.active = true
  280.       @itemlist_window.index = 0
  281.       return
  282.     end
  283.   end
  284. #------------------------------------------------------------------------------
  285. #刷新物品菜单
  286. #------------------------------------------------------------------------------
  287.   def update_itemlist
  288.     if Input.trigger?(Input::B)
  289.       $game_system.se_play($data_system.cancel_se)
  290.       @itemlist_update = false
  291.       @itemcommand_update = true
  292.       @command_window.active = true
  293.       @itemcommand_window.active = true
  294.       @itemlist_window.active = false
  295.       @itemlist_window.index = 0
  296.       @itemcommand_window.index = @command_index
  297.       return
  298.     end
  299.     if Input.trigger?(Input::C)
  300.       @item = @itemlist_window.item
  301.       unless @item.is_a?(RPG::Item)
  302.         $game_system.se_play($data_system.buzzer_se)
  303.         return
  304.       end
  305.       unless $game_party.item_can_use?(@item.id)
  306.         $game_system.se_play($data_system.buzzer_se)
  307.         return
  308.       end
  309.       $game_system.se_play($data_system.decision_se)
  310.       if @item.scope >= 3
  311.         @itemlist_window.active = false
  312.         @status_window.x = 0
  313.         @status_window.visible = true
  314.         @status_window.active = true
  315.         if @item.scope == 4 || @item.scope == 6
  316.           @status_window.index = -1
  317.         else
  318.           @status_window.index = 0
  319.         end
  320.       if Input.trigger?(Input::C)
  321.       @item = @itemlist_window.item
  322.       unless @item.is_a?(RPG::Item)
  323.         $game_system.se_play($data_system.buzzer_se)
  324.         return
  325.       end
  326.     end #改过的地方==宝箱君
  327.     else
  328.         if @item.common_event_id > 0
  329.           $game_temp.common_event_id = @item.common_event_id
  330.           $game_system.se_play(@item.menu_se)
  331.           if @item.consumable
  332.             $game_party.lose_item(@item.id, 1)  #@item_window<=>@itemlist_window
  333.             @itemlist_window.draw_item(@itemlist_window.index) #改过的地方==宝箱君
  334.           end
  335. #改过的地方===============================宝箱君
  336. =begin
  337.           @item_help_window.dispose
  338.           @itemlist_window.dispose
  339.           @equip_window.dispose
  340. =end
  341. #改过的地方===============================宝箱君
  342.           $scene = Scene_Map.new
  343.           return
  344.         end
  345.       end
  346.       return
  347.     end
  348.   end
  349. #==============================================================================
  350. #刷新光标
  351. #==============================================================================
  352.   def update_target
  353.     if Input.trigger?(Input::B)
  354.       $game_system.se_play($data_system.cancel_se)
  355.       unless $game_party.item_can_use?(@item.id)
  356.         @itemlist_window.refresh
  357.       end
  358.       @itemlist_window.active = true
  359.       @status_window.index = -2
  360.       @status_window.active = false
  361.       @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
  362.       return
  363.     end
  364.     if Input.trigger?(Input::C)
  365.       if $game_party.item_number(@item.id) == 0
  366.         $game_system.se_play($data_system.buzzer_se)
  367.         return
  368.       end
  369.       if @status_window.index == -1
  370.         used = false
  371.         for i in $game_party.actors
  372.           used |= i.item_effect(@item)
  373.         end
  374.       end
  375.       if @status_window.index >= 0
  376.         target = $game_party.actors[@status_window.index]
  377.         used = target.item_effect(@item)
  378.       end
  379.       if used
  380.         $game_system.se_play(@item.menu_se)
  381.         if @item.consumable
  382.           $game_party.lose_item(@item.id, 1)
  383.           @itemlist_window.draw_item(@itemlist_window.index)
  384.           @itemlist_window.set_item(@itemcommand_window.commands[@command_index])
  385.         end
  386.         @status_window.refresh
  387.         if $game_party.all_dead?
  388.           $scene = Scene_Gameover.new
  389.           return
  390.         end
  391.         if @item.common_event_id > 0
  392.           $game_temp.common_event_id = @item.common_event_id
  393.           $scene = Scene_Map.new
  394.           return
  395.         end
  396.       end
  397.       unless used
  398.         $game_system.se_play($data_system.buzzer_se)
  399.       end
  400.       return
  401.     end
  402.   end
  403. end
  404. #end 改过的地方==宝箱君
  405. #==============================================================================
  406. # ■ RPG物品分类追加定义
  407. #==============================================================================
  408. module RPG
  409.   class Weapon
  410.     def description
  411.       description = @description.split(/@/)[0]
  412.       return description != nil ? description : ''
  413.     end
  414.     def desc
  415.       desc = @description.split(/@/)[1]
  416.       return desc != nil ? desc : "普通物品"
  417.     end
  418.   end
  419.   class Item
  420.     def description
  421.       description = @description.split(/@/)[0]
  422.       return description != nil ? description : ''
  423.     end
  424.     def desc
  425.       desc = @description.split(/@/)[1]
  426.       return desc != nil ? desc : "普通物品"
  427.     end
  428.   end
  429.   class Armor
  430.     def description
  431.       description = @description.split(/@/)[0]
  432.       return description != nil ? description : ''
  433.     end
  434.     def desc
  435.       desc = @description.split(/@/)[1]
  436.       return desc != nil ? desc : "普通物品"
  437.     end
  438.   end
  439. end

点评

谢谢,已解决  发表于 2020-3-5 12:44

评分

参与人数 2星屑 +80 +2 收起 理由
RyanBern + 80 + 1 认可答案
无忧谷主幻 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 04:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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