Du könntest folgendes versuchen. Ist aber in keinster Weise getestet, mach also ein Backup vom funktionierenden Skript.
Code:
class Shortcut
  def initialize
    @shortcuts = [[65,1],[83,2]]
    @GetKey = Win32API.new 'user32', 'GetAsyncKeyState', 'l', 'l'
  end
  def update

   if $game_system.map_interpreter.running?
     return
   end

   if @wait == nil
    for i in 0...@shortcuts.size
    @item = $data_items[@shortcuts[i][1]]
     if @GetKey.call(@shortcuts[i][0]) != 0 and
     $game_party.item_number(@item.id) > 0 and
     $game_party.actors[0].item_effect(@item) == true and
     $game_party.item_can_use?(@item.id) == true
       $game_system.se_play(@item.menu_se)
       $game_party.lose_item(@item.id, 1)
       $game_player.animation_id = @item.animation2_id
       common_event_id = @item.common_event_id
       if common_event_id > 0
         common_event = $data_common_events[@common_event_id]
         $game_system.map_interpreter.setup(common_event.list, 0)
       else
         @wait = 30
       end
     end
   end
  else @wait = @wait > 0 ? @wait - 1 : nil end
 end
end