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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: alonescud
打印 上一主题 下一主题

如何做到 使用物品不进行人物选择,默认给1号角色使用

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

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
11
发表于 2008-11-16 18:34:08 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
13 小时
注册时间
2008-1-11
帖子
330
12
 楼主| 发表于 2008-11-16 20:45:07 | 只看该作者
按上述的方法,物品是会给1号使用,但是还是会同时弹出 Window_MenuStatus(且有Active)

能不能不弹出Window_MenuStatus,使用物品后还是回到“物品选择”
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
13
发表于 2008-11-16 21:09:57 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
13 小时
注册时间
2008-1-11
帖子
330
14
 楼主| 发表于 2008-11-16 21:28:25 | 只看该作者
现在测试了一下,可以了,但是我用了一个"物品数量限制与丢弃"的脚本来,在使用物品完后就会卡死在"物品选择"的界面,能不能也帮忙看一下?{/gg}

那个脚本如下,要修改哪里呢?

  1. #==============================================================================
  2. # ■ 物品丢弃 + 物品种类数限制 —— by 水镜风生
  3. #------------------------------------------------------------------------------
  4. LOSE_ITEM_SE_NAME = "Evasion"
  5. $item_max = 16

  6. #==============================================================================
  7. # ■ Scene_Item
  8. #------------------------------------------------------------------------------
  9. #  处理物品画面的类。
  10. #==============================================================================

  11. class Scene_Item < Scene_Base
  12.   #--------------------------------------------------------------------------
  13.   # ● 开始处理
  14.   #--------------------------------------------------------------------------
  15.   def start
  16.     super
  17.     create_menu_background
  18.     @viewport = Viewport.new(0, 0, 544, 416)
  19.     @help_window = Window_Help.new
  20.     @help_window.viewport = @viewport
  21.     @item_window = Window_Item.new(0, 67, 544, 280)
  22.     @item_window.viewport = @viewport
  23.     @item_window.help_window = @help_window
  24.     @item_window.active = false
  25.     @target_window = Window_MenuStatus.new(0, 0)
  26.     @max_window = Window_Item_Max.new
  27.     @max_window.viewport = @viewport
  28.     @number_window = Window_LoseNumber.new(142, 156)
  29.     @number_window.viewport = @viewport
  30.     @command_window = Window_Command.new(145, ["   使用","   丢弃"], 1, 2)
  31.     @command_window.x = 200
  32.     @command_window.y = 160
  33.     @over_window = Window_Help.new
  34.     @over_window.set_text("背包放不下了,丢弃一些没用的物品吧。")
  35.     @over_window.visible = false
  36.     hide_command_window
  37.     hide_number_window
  38.     hide_target_window
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 结束处理
  42.   #--------------------------------------------------------------------------
  43.   def terminate
  44.     super
  45.     dispose_menu_background
  46.     @viewport.dispose
  47.     @help_window.dispose
  48.     @item_window.dispose
  49.     @target_window.dispose
  50.     @max_window.dispose
  51.     @command_window.dispose
  52.     @number_window.dispose
  53.     @over_window.dispose
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 回到原画面
  57.   #--------------------------------------------------------------------------
  58.   def return_scene
  59.     $scene = Scene_Menu.new(0)
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 更新画面
  63.   #--------------------------------------------------------------------------
  64.   def update
  65.     super
  66.     update_menu_background
  67.     @over_window.update
  68.     @help_window.update
  69.     @item_window.update
  70.     @target_window.update
  71.     @max_window.update
  72.     @command_window.update
  73.     @number_window.update
  74.     if @item_window.active
  75.       update_item_selection
  76.     elsif @target_window.active
  77.       update_target_selection
  78.     elsif @command_window.active
  79.       update_command_selection
  80.     elsif @number_window.active
  81.       update_number_selection
  82.     end
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 更新物品选择
  86.   #--------------------------------------------------------------------------
  87.   def update_item_selection
  88.     if Input.trigger?(Input::B)
  89.       if  $game_party.items.size > $item_max # 如果物品种类超过限制
  90.         Sound.play_buzzer
  91.         @over_window.visible = true
  92.         @item_window.help_window.visible = false
  93.       else
  94.         Sound.play_cancel
  95.         return_scene
  96.       end
  97.     elsif Input.trigger?(Input::C)
  98.       @item_window.help_window.visible = true
  99.       @over_window.visible = false
  100.       @item = @item_window.item
  101.       if @item != nil
  102.         $game_party.last_item_id = @item.id
  103.       end
  104.     Sound.play_decision
  105.     if $game_party.item_can_use?(@item)     # 物品是否可用
  106.         @command_window.draw_item(0,true)      
  107.     else  @command_window.draw_item(0,false) # 不可用的话【使用】选项颜色无效
  108.     end
  109.     if @item.price == 0                     # 物品价格是否为0   
  110.       @command_window.draw_item(1,false)    # 是的话【丢弃】选项无效
  111.     else  
  112.       @command_window.draw_item(1,true)
  113.     end
  114.     show_command_window
  115.     end
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 更新目标选择
  119.   #--------------------------------------------------------------------------
  120.   def update_target_selection
  121.     if Input.trigger?(Input::B)
  122.       Sound.play_cancel
  123.       if $game_party.item_number(@item) == 0    # 判断物品是否耗尽
  124.         @item_window.refresh                    # 刷新窗口内容      
  125.         @max_window.refresh                     # 刷新物品种类窗口
  126.       end
  127.       hide_target_window
  128.     elsif Input.trigger?(Input::C)
  129.       if not $game_party.item_can_use?(@item)
  130.         Sound.play_buzzer
  131.       else
  132.         determine_target
  133.       end
  134.     end
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ★ 更新指令选择
  138.   #--------------------------------------------------------------------------
  139.   def update_command_selection
  140.     if Input.trigger?(Input::B)
  141.       Sound.play_cancel
  142.       hide_command_window
  143.     elsif Input.trigger?(Input::C)
  144.       if @command_window.index == 0
  145.         if $game_party.item_can_use?(@item)
  146.           Sound.play_decision
  147.           @command_window.active = false
  148.           @command_window.visible =false
  149.           determine_item
  150.         else
  151.           Sound.play_buzzer
  152.         end
  153.       elsif  @item == nil or @item.price == 0
  154.         Sound.play_buzzer
  155.       else
  156.         Sound.play_decision
  157.         @command_window.active = false
  158.         @command_window.visible =false        
  159.         max = $game_party.item_number(@item)
  160.         @number_window.set(@item, max)
  161.         show_number_window
  162.       end
  163.     end
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ★ 更新数量输入
  167.   #--------------------------------------------------------------------------
  168.   def update_number_selection   
  169.     if Input.trigger?(Input::B)
  170.       Sound.play_cancel
  171.       hide_number_window
  172.     elsif Input.trigger?(Input::C)
  173.       Audio.se_play("Audio/SE/#{LOSE_ITEM_SE_NAME}", 80, 100)
  174.       $game_party.lose_item(@item, @number_window.number)
  175.       @item_window.refresh
  176.       @max_window.refresh  
  177.       hide_number_window
  178.     end  
  179.   end
  180.   #--------------------------------------------------------------------------
  181.   # ★ 显示指令选择窗口
  182.   #--------------------------------------------------------------------------
  183.   def show_command_window
  184.     @command_window.index = 0
  185.     @item_window.active = false
  186.     @command_window.visible = true
  187.     @command_window.active = true
  188.   end
  189.   #--------------------------------------------------------------------------
  190.   # ★ 显示数量窗口
  191.   #--------------------------------------------------------------------------
  192.   def show_number_window
  193.     @command_window.active = false
  194.     @number_window.visible = true
  195.     @number_window.active = true
  196.   end
  197.   #--------------------------------------------------------------------------
  198.   # ★ 隐藏指令选择窗口
  199.   #--------------------------------------------------------------------------
  200.   def hide_command_window
  201.     @item_window.active = true
  202.     @command_window.visible = false
  203.     @command_window.active = false
  204.     @viewport.rect.set(0, 0, 544, 416)
  205.     @viewport.ox = 0
  206.   end
  207.   #--------------------------------------------------------------------------
  208.   # ★ 隐藏数量窗口
  209.   #--------------------------------------------------------------------------
  210.   def hide_number_window
  211.     @item_window.active = true
  212.     @number_window.visible = false
  213.     @number_window.active = false
  214.     @viewport.rect.set(0, 0, 544, 416)
  215.     @viewport.ox = 0
  216.   end  
  217. end
  218. #==============================================================================
  219. # ■ Window_lost_item  
  220. #------------------------------------------------------------------------------
  221. #  显示物品丢弃数量的窗口,仿 Window_ShopNumber。
  222. #==============================================================================

  223. class Window_LoseNumber < Window_Base
  224.   #--------------------------------------------------------------------------
  225.   # ★ 初始化对像
  226.   #     x      : 窗口 X 座标
  227.   #     y      : 窗口 Y 座标
  228.   #--------------------------------------------------------------------------
  229.   def initialize(x, y)
  230.     super(x, y, 260, 104)
  231.     @item = nil
  232.     @max = 1
  233.     @number = 1
  234.   end
  235.   #--------------------------------------------------------------------------
  236.   # ★ 设置物品、最大数量
  237.   #--------------------------------------------------------------------------
  238.   def set(item, max)
  239.     @item = item
  240.     @max = max
  241.     @number = 1
  242.     refresh
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ★ 设置数量输入
  246.   #--------------------------------------------------------------------------
  247.   def number
  248.     return @number
  249.   end
  250.   #--------------------------------------------------------------------------
  251.   # ★ 刷新
  252.   #--------------------------------------------------------------------------
  253.   def refresh
  254.     y = 24
  255.     self.contents.clear
  256.     draw_item_name(@item, 0, y)
  257.     self.contents.font.color = normal_color
  258.     self.contents.draw_text(164, y, 20, WLH, "×")
  259.     self.contents.draw_text(190, y, 20, WLH, @number, 2)
  260.     self.cursor_rect.set(186, y, 28, WLH)
  261.   end
  262.   #--------------------------------------------------------------------------
  263.   # ★ 更新画面
  264.   #--------------------------------------------------------------------------
  265.   def update
  266.     super
  267.     if self.active
  268.       last_number = @number
  269.       if Input.repeat?(Input::RIGHT) and @number < @max
  270.         @number += 1
  271.       end
  272.       if Input.repeat?(Input::LEFT) and @number > 1
  273.         @number -= 1
  274.       end
  275.       if Input.repeat?(Input::UP) and @number < @max
  276.         @number = [@number + 10, @max].min
  277.       end
  278.       if Input.repeat?(Input::DOWN) and @number > 1
  279.         @number = [@number - 10, 1].max
  280.       end
  281.       if @number != last_number
  282.         Sound.play_cursor
  283.         refresh
  284.       end
  285.     end
  286.   end
  287. end
  288. #==============================================================================
  289. # ■ Window_Item_Max
  290. #-----------------------------------------------------------------------------
  291. #   显示背包容量和当前物品数的窗口
  292. #============================================================================


  293. class Window_Item_Max < Window_Base
  294.   #--------------------------------------------------------------------------
  295.   # ★ 初始化对像
  296.   #--------------------------------------------------------------------------
  297.   def initialize
  298.     super(290, 360, 254, 56)
  299.     refresh
  300.   end
  301.   
  302.   #--------------------------------------------------------------------------
  303.   # ★ 刷新
  304.   #--------------------------------------------------------------------------  
  305.   def refresh
  306.     self.contents.clear
  307.     draw_icon(144, 0, 0)
  308.     self.contents.draw_text(36, 0, 100, 24, "背包容量:")
  309.     item = $game_party.items
  310.     string = item.size.to_s
  311.     self.contents.font.color = knockout_color if item.size > $item_max
  312.     self.contents.draw_text(135, 0, 30, 24, string, 2)
  313.     self.contents.font.color = normal_color
  314.     string = "/ " + $item_max.to_s
  315.     self.contents.draw_text(173, 0, 100, 24, string )
  316.   end
  317.   
  318. end

  319.    
复制代码
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
15
发表于 2008-11-16 21:45:25 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
13 小时
注册时间
2008-1-11
帖子
330
16
 楼主| 发表于 2008-11-16 22:04:32 | 只看该作者
以下引用kissye于2008-11-16 13:45:25的发言:

囧,这样改
def determine_item
   if @item.for_friend?
     show_target_window(@item_window.index % 2 == 0)#这句随便要不要保留,不保留的话物品使用对象是全体时候会卡住
     if @item.for_all?
       @target_window.index = 99
     else
       if not $game_party.item_can_use?(@item)
         Sound.play_buzzer
       else
         @target_window.index = 0
         determine_target
         hide_target_window#加上这句
       end
     end

明白了,十分感谢{/qiang}
   else
     use_item_nontarget
   end
end

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-8 04:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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