First commit
This commit is contained in:
		@@ -0,0 +1,119 @@
 | 
			
		||||
extraHotkeys = {}
 | 
			
		||||
 | 
			
		||||
function addExtraHotkey(name, description, callback)
 | 
			
		||||
  table.insert(extraHotkeys, {
 | 
			
		||||
    name = name:lower(),
 | 
			
		||||
    description = tr(description),
 | 
			
		||||
    callback = callback
 | 
			
		||||
  })
 | 
			
		||||
  
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function setupExtraHotkeys(combobox)
 | 
			
		||||
  addExtraHotkey("none", "None", nil)
 | 
			
		||||
  addExtraHotkey("cancelAttack", "Stop attacking", function(repeated)
 | 
			
		||||
    if not repeated then
 | 
			
		||||
      g_game.attack(nil)
 | 
			
		||||
    end
 | 
			
		||||
  end)
 | 
			
		||||
  addExtraHotkey("attackNext", "Attack next target from battle list", function(repeated)
 | 
			
		||||
    if repeated or not modules.game_battle then
 | 
			
		||||
      return
 | 
			
		||||
    end
 | 
			
		||||
    local battlePanel = modules.game_battle.battlePanel
 | 
			
		||||
    local attackedCreature = g_game.getAttackingCreature()
 | 
			
		||||
    local nextChild = nil
 | 
			
		||||
    local breakNext = false
 | 
			
		||||
    for i, child in ipairs(battlePanel:getChildren()) do    
 | 
			
		||||
      if not child.creature or not child:isOn() then
 | 
			
		||||
        break
 | 
			
		||||
      end
 | 
			
		||||
      nextChild = child
 | 
			
		||||
      if breakNext then
 | 
			
		||||
        break
 | 
			
		||||
      end
 | 
			
		||||
      if child.creature == attackedCreature then
 | 
			
		||||
        breakNext = true
 | 
			
		||||
        nextChild = battlePanel:getFirstChild()
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
    if not breakNext then
 | 
			
		||||
      nextChild = battlePanel:getFirstChild()
 | 
			
		||||
    end
 | 
			
		||||
    if nextChild and nextChild.creature ~= attackedCreature then
 | 
			
		||||
      g_game.attack(nextChild.creature)
 | 
			
		||||
    end
 | 
			
		||||
  end)
 | 
			
		||||
  
 | 
			
		||||
  addExtraHotkey("attackPrevious", "Attack previous target from battle list", function(repeated)
 | 
			
		||||
    if repeated or not modules.game_battle then
 | 
			
		||||
      return
 | 
			
		||||
    end
 | 
			
		||||
    local battlePanel = modules.game_battle.battlePanel
 | 
			
		||||
    local attackedCreature = g_game.getAttackingCreature()
 | 
			
		||||
    local prevChild = nil
 | 
			
		||||
    for i, child in ipairs(battlePanel:getChildren()) do
 | 
			
		||||
      if not child.creature or not child:isOn() then
 | 
			
		||||
        break
 | 
			
		||||
      end
 | 
			
		||||
      if child.creature == attackedCreature then
 | 
			
		||||
        break
 | 
			
		||||
      end
 | 
			
		||||
      prevChild = child    
 | 
			
		||||
    end
 | 
			
		||||
    if prevChild and prevChild.creature ~= attackedCreature then
 | 
			
		||||
      g_game.attack(prevChild.creature)
 | 
			
		||||
    end
 | 
			
		||||
  end)
 | 
			
		||||
 | 
			
		||||
  addExtraHotkey("toogleWsad", "Enable/disable wsad walking", function(repeated)
 | 
			
		||||
    if repeated or not modules.game_console then
 | 
			
		||||
      return
 | 
			
		||||
    end
 | 
			
		||||
    if not modules.game_console.consoleToggleChat:isChecked() then
 | 
			
		||||
      modules.game_console.disableChat(true) 
 | 
			
		||||
    else
 | 
			
		||||
      modules.game_console.enableChat(true) 
 | 
			
		||||
    end    
 | 
			
		||||
  end)  
 | 
			
		||||
  
 | 
			
		||||
  for index, actionDetails in ipairs(extraHotkeys) do
 | 
			
		||||
    combobox:addOption(actionDetails.description)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function executeExtraHotkey(action, repeated)
 | 
			
		||||
  action = action:lower()
 | 
			
		||||
  for index, actionDetails in ipairs(extraHotkeys) do
 | 
			
		||||
    if actionDetails.name == action and actionDetails.callback then
 | 
			
		||||
      actionDetails.callback(repeated)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function translateActionToActionComboboxIndex(action)
 | 
			
		||||
  action = action:lower()
 | 
			
		||||
  for index, actionDetails in ipairs(extraHotkeys) do
 | 
			
		||||
    if actionDetails.name == action then
 | 
			
		||||
      return index
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  return 1
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function translateActionComboboxIndexToAction(index)
 | 
			
		||||
  if index > 1 and index <= #extraHotkeys then
 | 
			
		||||
    return extraHotkeys[index].name  
 | 
			
		||||
  end
 | 
			
		||||
  return nil
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function getActionDescription(action)
 | 
			
		||||
  action = action:lower()
 | 
			
		||||
  for index, actionDetails in ipairs(extraHotkeys) do
 | 
			
		||||
    if actionDetails.name == action then
 | 
			
		||||
      return actionDetails.description
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  return "invalid action"
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user