Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function widget:GetInfo()
- return {
- name = "Mex Defense (v1.0)",
- desc = "automates constructors to build basic defenses next to every mex built",
- author = "AutoWar",
- date = "2015",
- license = "GNU GPL, v2 or later",
- layer = 9999,
- enabled = true
- }
- end
- -----------------------------------------------------------------
- local spGetUnitNearestEnemy = Spring.GetUnitNearestEnemy
- local spGetAllUnits = Spring.GetAllUnits --( ) -> nil | unitTable = { [1] = number unitID, ... }
- local spMarkerAddPoint = Spring.MarkerAddPoint
- local spEcho = Spring.Echo
- local spInsertUnitCmdDesc = Spring.InsertUnitCmdDesc
- local spGetUnitAllyTeam = Spring.GetUnitAllyTeam
- local spValidUnitID = Spring.ValidUnitID
- local spGetUnitPosition = Spring.GetUnitPosition
- local spGetUnitDefID = Spring.GetUnitDefID
- local spGiveOrderToUnit = Spring.GiveOrderToUnit
- local spGetUnitStates = Spring.GetUnitStates
- local spGiveOrderToUnitArray= Spring.GiveOrderToUnitArray
- local spGetUnitIsDead = Spring.GetUnitIsDead
- local spValidUnitID = Spring.ValidUnitID
- local spGetTeamUnits = Spring.GetTeamUnits --( number teamID ) -> nil | unitTable = { [1] = number unitID, etc... }
- local spGetMyTeamID = Spring.GetMyTeamID
- local spGetMyAllyTeamID = Spring.GetMyAllyTeamID
- local spIsUnitIcon = Spring.IsUnitIcon
- local myAllyID = Spring.GetMyAllyTeamID()
- local myTeamID = Spring.GetMyTeamID()
- local CMD_ATTACK = CMD.ATTACK
- local CMD_MOVE = CMD.MOVE
- local CMD_UNIT_SET_TARGET = 34923
- local spGetAllyTeamList = Spring.GetAllyTeamList --( ) -> { [1] = number allyTeamID, etc... }
- local spGetTeamList = Spring.GetTeamList --( [number allyTeamID = -1] ) -> nil | { [1] = number teamID, etc... }
- local spGetUnitTeam = Spring.GetUnitTeam --( number unitID ) -> nil | number teamID
- local CMD_LOAD_UNITS = CMD.LOAD_UNITS -- expect 1 parameter in return (unitid) or 4 parameters in return (mappos+radius)
- local spGetUnitTransporter = Spring.GetUnitTransporter --( number unitID ) -> nil | number unitID
- local spGetUnitIsTransporting = Spring.GetUnitIsTransporting --( number unitID ) -> nil | { [1] = number unitID, etc... }
- local spGetUnitHealth = Spring.GetUnitHealth --( number unitID ) -> nil | number health, number maxHealth, number paralyzeDamage, number captureProgress, number buildProgress
- local spGetUnitIsStunned = Spring.GetUnitIsStunned --( number unitID ) -> nil | boolean stunned_or_inbuild, boolean stunned, boolean inbuild
- local spGetUnitRulesParam = Spring.GetUnitRulesParam --( number unitID, number index | string ruleName ) -> nil | number value | string value
- local CMD_OPT_SHIFT = CMD.OPT_SHIFT --If the unit is working down a shift queue, add it seemless into it
- local CMD_INSERT = CMD.INSERT
- local spGetCommandQueue = Spring.GetCommandQueue --( number unitID, number count = 0 ) -> nil | number commandQueueSize, ( number unitID [, number count = -1] ) -> nil | table commandQueueTable = {[1] = {("id"=number),("params"={ [1]=number, ...}),("options"={"coded"=number,"alt"=boolean,"ctrl"=boolean,"shift"=boolean,"right"=boolean,"internal"=boolean,"meta"=boolean}}), ...}
- local spGetSelectedUnits = Spring.GetSelectedUnits --( ) -> { [1] = unitID, ... }
- local spGetGroundHeight = Spring.GetGroundHeight --(x,z)
- -----------------------------------------------------------------
- -----------------------------------------------------------------
- local function Distance(x1,z1,x2,z2)
- return math.sqrt((x1-x2)^2 + (z1-z2)^2)
- end
- local function GetUnitName(unitID)
- if spValidUnitID(unitID)==true and spGetUnitDefID(unitID) then
- return UnitDefs[spGetUnitDefID(unitID)].name
- end
- end
- -----------------------------------------------------------------
- function widget:UnitCreated(unitID, unitDefID, unitTeam, builderID)
- if unitDefID==UnitDefNames["cormex"].id then
- local x,y,z = spGetUnitPosition (unitID)
- --Spring.GiveOrderToUnit(builderID, -UnitDefNames["corllt"].id, {x+50,0,z}, {"shift"})
- spGiveOrderToUnit(builderID, CMD.INSERT, {1, -UnitDefNames["corllt"].id, CMD.OPT_SHIFT, x+50,0,z}, {"alt"})
- spGiveOrderToUnit(builderID, CMD.INSERT, {1, -UnitDefNames["corrad"].id, CMD.OPT_SHIFT, x-50,0,z}, {"alt"})
- spGiveOrderToUnit(builderID, CMD.INSERT, {1, -UnitDefNames["armwin"].id, CMD.OPT_SHIFT, x-100,0,z}, {"alt"})
- if spGetGroundHeight(x,z)<=0 then
- spGiveOrderToUnit(builderID, CMD.INSERT, {1, -UnitDefNames["turrettorp"].id, CMD.OPT_SHIFT, x+100,0,z}, {"alt"})
- end
- end
- end
- --[[
- Mex Defense
- automates the constructor to build an LLT , radar, wind gen, and on sea an urchin, next to every mex built
- ]]
Advertisement
Add Comment
Please, Sign In to add comment