查看: 3141|回复: 2

[已经解决] 道具快捷键

[复制链接]
梦石
10
星屑
5748
在线时间
1849 小时
注册时间
2013-2-14
回帖
327

开拓者

发表于 2015-4-13 17:30:25 | 显示全部楼层 |阅读模式

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

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

×
有没有这种脚本。
功能是在道具界面选择某物品后(类似口袋妖怪里的道具登记),之后在地图上按快捷键就能使用。

点评

然而很有可能没有  发表于 2015-4-14 01:01
梦石
0
星屑
2310
在线时间
5539 小时
注册时间
2011-1-10
回帖
6353

青铜编剧史诗剧作家剧作品鉴家

发表于 2015-4-13 19:41:07 | 显示全部楼层
道具的公共事件设置:使用后打开开关1
新建一个公共事件,条件是开关1为ON时并行处理,加一个按键判断的条件分歧就行了

点评

觉得用公共事件会很繁琐,还是谢谢提供思路了。。  发表于 2015-4-14 09:46
如果你还想在背包里标示出来那肯定需要脚本的,当然你也可以用更多的数据库来做。也就是有“水壶”和“水壶(已登记)。  发表于 2015-4-13 22:53
你可以开一个总开关,再在公共事件内多重判断。  发表于 2015-4-13 21:20
如果这样不是要所有道具都开公共事件?而且一个开关打开它怎么识别我选的是哪个道具?  发表于 2015-4-13 21:15
因为太过自由导致在剧情中也可以使用……  发表于 2015-4-13 20:17
回复

使用道具 举报

梦石
0
星屑
166
在线时间
454 小时
注册时间
2015-2-25
回帖
358
发表于 2015-4-16 10:13:26 | 显示全部楼层
本帖最后由 howhow1314 于 2015-4-17 11:54 编辑

[pre lang="ruby"]class Window_ItemList < Window_Selectable  
  def process_handling
    return unless open? && active
    return call_handler(:kfc)   if handle?(:kfc) && Input.trigger?(:X)
    super
  end
  alias item_kfc item
  def item
    return @item if @item
    item_kfc
  end
  def item=(i)
   @item = i
  end
  def draw_item_name(item, x, y, enabled = true, width = 172)
    return unless item   
    draw_icon(item.icon_index, x, y, enabled)
    change_color(normal_color, enabled)
    name = item.name
    name = "(A)" + name if $game_party.item_kfc.class == item.class && $game_party.item_kfc.id == item.id
    draw_text(x + 24, y, width, line_height, name)
  end
end

class Game_Party
  attr_accessor :item_kfc
  def use_item_kfc
    if SceneManager.scene_is?(Scene_Map) && !$game_map.interpreter.running? && @item_kfc
        if item_number(@item_kfc) > 0
          SceneManager.call(Scene_Item)
          SceneManager.scene.kfc = true
        end
    end
  end
end

class Scene_Item < Scene_ItemBase
  attr_reader :item_window
  attr_accessor :kfc
  alias start_kfc start
  def start
    start_kfc
    if @kfc
      @kfc = false
      @item_window.item = $game_party.item_kfc
      on_item_ok
    end
  end
  alias create_item_window_kfc create_item_window
  def create_item_window
    create_item_window_kfc
    @item_window.set_handler(:kfc, method(:on_item_kfc))
  end
  def on_item_kfc
    if item_kfc?
      Sound.play_ok
      if $game_party.item_kfc.class == item.class && $game_party.item_kfc.id == item.id
        $game_party.item_kfc = nil
      else
        $game_party.item_kfc = @item_window.item
      end
      @item_window.refresh
    else
      Sound.play_buzzer
    end
  end
  def use_item
    super
    @item_window.redraw_current_item
    @item_window.item = nil      
  end
  def item_kfc?
    item ? @item_window.enable?(item) && (1..10).include?(item.id) : false               #(1..10).include?(item.id) 可以自己改,或者刪掉
  end
end

class Scene_Map
  alias update_scene_kfc update_scene
  def update_scene
    update_scene_kfc
    update_call_kfc unless scene_changing?
  end
  def update_call_kfc
    unless $game_map.interpreter.running?
      $game_party.use_item_kfc if Input.trigger?(:X)
    end
  end
end
[/pre]

A鍵設置/使用

按A前 01.jpg
按A後 02.jpg

点评

非常棒,十分感谢当当酱。。  发表于 2015-4-16 10:49

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部