Project1

标题: 道具快捷键 [打印本页]

作者: hijl1990    时间: 2015-4-13 17:30
标题: 道具快捷键
有没有这种脚本。
功能是在道具界面选择某物品后(类似口袋妖怪里的道具登记),之后在地图上按快捷键就能使用。


作者: H·H·Y    时间: 2015-4-13 19:41
道具的公共事件设置:使用后打开开关1
新建一个公共事件,条件是开关1为ON时并行处理,加一个按键判断的条件分歧就行了
作者: howhow1314    时间: 2015-4-16 10:13
本帖最后由 howhow1314 于 2015-4-17 11:54 编辑

RUBY 代码复制
  1. class Window_ItemList < Window_Selectable  
  2.   def process_handling
  3.     return unless open? && active
  4.     return call_handler(:kfc)   if handle?(:kfc) && Input.trigger?(:X)
  5.     super
  6.   end
  7.   alias item_kfc item
  8.   def item
  9.     return @item if @item
  10.     item_kfc
  11.   end
  12.   def item=(i)
  13.    @item = i
  14.   end
  15.   def draw_item_name(item, x, y, enabled = true, width = 172)
  16.     return unless item   
  17.     draw_icon(item.icon_index, x, y, enabled)
  18.     change_color(normal_color, enabled)
  19.     name = item.name
  20.     name = "(A)" + name if $game_party.item_kfc.class == item.class && $game_party.item_kfc.id == item.id
  21.     draw_text(x + 24, y, width, line_height, name)
  22.   end
  23. end
  24.  
  25. class Game_Party
  26.   attr_accessor :item_kfc
  27.   def use_item_kfc
  28.     if SceneManager.scene_is?(Scene_Map) && !$game_map.interpreter.running? && @item_kfc
  29.         if item_number(@item_kfc) > 0
  30.           SceneManager.call(Scene_Item)
  31.           SceneManager.scene.kfc = true
  32.         end
  33.     end
  34.   end
  35. end
  36.  
  37. class Scene_Item < Scene_ItemBase
  38.   attr_reader :item_window
  39.   attr_accessor :kfc
  40.   alias start_kfc start
  41.   def start
  42.     start_kfc
  43.     if @kfc
  44.       @kfc = false
  45.       @item_window.item = $game_party.item_kfc
  46.       on_item_ok
  47.     end
  48.   end
  49.   alias create_item_window_kfc create_item_window
  50.   def create_item_window
  51.     create_item_window_kfc
  52.     @item_window.set_handler(:kfc, method(:on_item_kfc))
  53.   end
  54.   def on_item_kfc
  55.     if item_kfc?
  56.       Sound.play_ok
  57.       if $game_party.item_kfc.class == item.class && $game_party.item_kfc.id == item.id
  58.         $game_party.item_kfc = nil
  59.       else
  60.         $game_party.item_kfc = @item_window.item
  61.       end
  62.       @item_window.refresh
  63.     else
  64.       Sound.play_buzzer
  65.     end
  66.   end
  67.   def use_item
  68.     super
  69.     @item_window.redraw_current_item
  70.     @item_window.item = nil      
  71.   end
  72.   def item_kfc?
  73.     item ? @item_window.enable?(item) && (1..10).include?(item.id) : false               #(1..10).include?(item.id) 可以自己改,或者刪掉
  74.   end
  75. end
  76.  
  77. class Scene_Map
  78.   alias update_scene_kfc update_scene
  79.   def update_scene
  80.     update_scene_kfc
  81.     update_call_kfc unless scene_changing?
  82.   end
  83.   def update_call_kfc
  84.     unless $game_map.interpreter.running?
  85.       $game_party.use_item_kfc if Input.trigger?(:X)
  86.     end
  87.   end
  88. end


A鍵設置/使用

按A前
按A後




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1