hook_copyqueue.lua

来自「这是整套横扫千军3D版游戏的源码」· LUA 代码 · 共 75 行

LUA
75
字号
--------------------------------------------------------------------------------------------------------------------------------------------------------------------  file:    hook_copyqueue.lua--  brief:   CTRL+GUARD copies a unit's command queue--  author:  Dave Rodgers----  Copyright (C) 2007.--  Licensed under the terms of the GNU GPL, v2 or later.------------------------------------------------------------------------------------------------------------------------------------------------------------------function widget:GetInfo()  return {    name      = "CopyQueue",    desc      = "CTRL+GUARD copies a units commands instead of guarding",    author    = "trepan",    date      = "Jan 8, 2007",    license   = "GNU GPL, v2 or later",    layer     = 0,    enabled   = false  --  loaded by default?  }end----------------------------------------------------------------------------------------------------------------------------------------------------------------function widget:CommandNotify(id, params, options)  -- GUARD + CTRL = copy command queue  if ((id ~= CMD.GUARD) or (not options.ctrl)) then    return false  end  local targetID = params[1];  local queue = Spring.GetCommandQueue(targetID);  if (queue == nil) then    return false  --  might not be an ally  end  -- copy states  local states = Spring.GetUnitStates(targetID)  if (states ~= nil) then    Spring.GiveOrder(CMD.FIRE_STATE, { states.firestate }, 0)    Spring.GiveOrder(CMD.MOVE_STATE, { states.movestate }, 0)    Spring.GiveOrder(CMD.REPEAT,     { states['repeat']  and 1 or 0 }, 0)    Spring.GiveOrder(CMD.ONOFF,      { states.active     and 1 or 0 }, 0)    Spring.GiveOrder(CMD.CLOAK,      { states.cloak      and 1 or 0 }, 0)    Spring.GiveOrder(CMD.TRAJECTORY, { states.trajectory and 1 or 0 }, 0)  end  -- copy commands  local firstShift = false   if (not options.shift) then    Spring.GiveOrder( CMD.STOP, {}, {} )    firstShift = true  end  for k,v in ipairs(queue) do  --  in order    local opts = v.options    if (not opts.internal) then      local newopts = {}      if (opts.alt)   then table.insert(newopts, "alt")   end      if (opts.ctrl)  then table.insert(newopts, "ctrl")  end      if (opts.right) then table.insert(newopts, "right") end      if (not firstShift) then        table.insert(newopts, "shift")      end      Spring.GiveOrder(v.id, v.params, opts.coded)      firstShift = false    end  end  return true  --  do not add the original GUARD commandend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?