Lua SyncedRead: Difference between revisions
mNo edit summary |
No edit summary |
||
| Line 265: | Line 265: | ||
( number unitID [, number allyTeamID ] ) -> nil | | ( number unitID [, number allyTeamID ] ) -> nil | | ||
{ ["los" = true] [, "radar" = true] [, "typed" = true] } | { ["los" = true] [, "radar" = true] [, "typed" = true] } | ||
'''Spring.GetUnitSeparation''' | '''Spring.GetUnitSeparation''' <font color="darkgreen">returns the distance of 2 units</font> | ||
( number unitID1, number unitID2 [, boolean 2D ] ) -> nil | number | ( number unitID1, number unitID2 [, boolean 2D ] ) -> nil | number | ||
'''Spring.GetUnitDefDimensions''' | '''Spring.GetUnitDefDimensions''' | ||
( number unitDefID ) -> nil | { | ( number unitDefID ) -> nil | | ||
{ | |||
"height" = number, | "height" = number, | ||
"radius" = number, | "radius" = number, | ||
| Line 283: | Line 284: | ||
'''Spring.GetUnitCommands''' | '''Spring.GetUnitCommands''' | ||
( number unitID [, number count] ) -> nil | commandQueueTable = { | |||
[1] = { | |||
"id" = number, | |||
"params" = { [1] = number, ...}, | |||
"options" = { | |||
"coded" = number, | |||
"alt" = boolean, | |||
"ctrl" = boolean, | |||
"shift" = boolean, | |||
"right" = boolean, | |||
"internal" = boolean | |||
} | |||
}, ... | |||
} | |||
'''Spring.GetCommandQueue''' | '''Spring.GetCommandQueue''' | ||
( number unitID [, number count] ) -> nil | commandQueueTable = { | |||
[1] = { | |||
"id" = number, | |||
"params" = { [1] = number, ...}, | |||
"options" = { | |||
"coded" = number, | |||
"alt" = boolean, | |||
"ctrl" = boolean, | |||
"shift" = boolean, | |||
"right" = boolean, | |||
"internal" = boolean | |||
} | |||
}, ... | |||
} | |||
'''Spring.GetFullBuildQueue''' | '''Spring.GetFullBuildQueue''' | ||
'''Spring.GetRealBuildQueue''' | nil | buildOrders = { | ||
[1] = { [number unitDefID] = number count }, etc... | |||
} | |||
'''Spring.GetRealBuildQueue''' (cleans the buildqueue of things the unit can't build itself) | |||
nil | buildOrders = { | |||
[1] = { [number unitDefID] = number count }, etc... | |||
} | |||
'''Spring.GetFactoryCommands''' | |||
( number unitID [, number count] ) -> nil | commandQueueTable = { | |||
[1] = { | |||
"id" = number, | |||
"params" = { [1] = number, ...}, | |||
"options" = { | |||
"coded" = number, | |||
"alt" = boolean, | |||
"ctrl" = boolean, | |||
"shift" = boolean, | |||
"right" = boolean, | |||
"internal" = boolean | |||
} | |||
}, ... | |||
} | |||
'''Spring.GetFactoryCounts''' (used to get the buildqueue of a factory) | |||
( number unitID [, number count [, boolean noCMDs ] ] ) -> nil | commandQueueTable = { | |||
[number unitDefID | number -cmdID] = number count, ... | |||
} | |||
'''Spring.GetUnitCmdDescs''' | '''Spring.GetUnitCmdDescs''' | ||
( number unitID [, number startIndex [, number endIndex ] ] ) -> nil | { | |||
[1] = { | |||
"id" = number, | |||
"type" = number, | |||
"name" = string, | |||
"action" = string, | |||
"tooltip" = string, | |||
"texture" = string, | |||
"cursor" = string, | |||
"hidden" = boolean, | |||
"disabled" = boolean, | |||
"showUnique" = boolean, | |||
"onlyTexture" = boolean, | |||
"params" = { [1] = string, ... } | |||
}, ... | |||
} | |||
'''Spring.FindUnitCmdDesc''' | '''Spring.FindUnitCmdDesc''' | ||
( number unitID, number cmdID ) -> nil | number index | |||
'''Spring.GetUnitRulesParam''' | '''Spring.GetUnitRulesParam''' | ||
( number unitID, number index | string ruleName ) -> nil | number value | |||
'''Spring.GetUnitRulesParams''' | '''Spring.GetUnitRulesParams''' | ||
( number unitID ) -> nil | { [rule1] = number value1, [rule2] = number value2, ... } | |||
'''Spring.GetAllFeatures''' | '''Spring.GetAllFeatures''' | ||
'''Spring.GetFeatureList''' | ( ) -> nil | { [1] = number featureID, ... } | ||
'''Spring.GetFeatureList''' // NOTE: this is not really required now the all FeatureDefs are pre-loaded | |||
'''Spring.GetFeatureDefID''' | '''Spring.GetFeatureDefID''' | ||
( number featureID ) -> nil | number featureDefID | |||
'''Spring.GetFeatureTeam''' | '''Spring.GetFeatureTeam''' | ||
( number featureID ) -> nil | number teamID | |||
'''Spring.GetFeatureAllyTeam''' | '''Spring.GetFeatureAllyTeam''' | ||
( number featureID ) -> nil | number allyID | |||
'''Spring.GetFeatureHealth''' | '''Spring.GetFeatureHealth''' | ||
( number featureID ) -> nil | number health, number maxHealth, number resurrectProgress | |||
'''Spring.GetFeatureHeight''' | '''Spring.GetFeatureHeight''' | ||
( number featureID ) -> nil | number | |||
'''Spring.GetFeatureRadius''' | '''Spring.GetFeatureRadius''' | ||
( number featureID ) -> nil | number | |||
'''Spring.GetFeaturePosition''' | '''Spring.GetFeaturePosition''' | ||
( number featureID ) -> nil | number x, number y, number z | |||
'''Spring.GetFeatureDirection''' | '''Spring.GetFeatureDirection''' | ||
( number featureID ) -> nil | number dirx, number diry, number dirz | |||
'''Spring.GetFeatureHeading''' | '''Spring.GetFeatureHeading''' | ||
( number featureID ) -> nil | number heading | |||
'''Spring.GetFeatureResources''' | '''Spring.GetFeatureResources''' | ||
( number featureID ) -> nil | number RemainingMetal, number maxMetal, | |||
number RemainingEnergy, number maxEnergy, number reclaimLeft | |||
'''Spring.GetFeatureNoSelect''' | '''Spring.GetFeatureNoSelect''' | ||
( number featureID ) -> nil | boolean noSelect | |||
'''Spring.GetFeatureResurrect''' | '''Spring.GetFeatureResurrect''' | ||
( number featureID ) -> nil | boolean createdFromUnit, number buildFacing | |||
'''Spring.GetGroundHeight''' | '''Spring.GetGroundHeight''' | ||
( number x, number y ) -> number z | |||
'''Spring.GetGroundNormal''' | '''Spring.GetGroundNormal''' | ||
( number x, number y ) -> number x, number y, number z | |||
'''Spring.GetGroundInfo''' | '''Spring.GetGroundInfo''' | ||
( number x, number y ) -> string "Type", number metal, number hardness, | |||
number tankSpeed, number kbotSpeed, number hoverSpeed, | |||
number shipSpeed, boolean noTracks | |||
'''Spring.GetGroundBlocked''' | '''Spring.GetGroundBlocked''' | ||
( number x, number y | | |||
number x1, number y1, number x2, number y2 ) -> nil | | |||
string "feature", number featureID | | |||
string "unit", number unitID | |||
'''Spring.GetGroundExtremes''' | '''Spring.GetGroundExtremes''' | ||
( ) -> nil | number minHeight, number maxHeight | |||
'''Spring.TestBuildOrder''' | '''Spring.TestBuildOrder''' | ||
( number unitDefID, number x, number y, number z, number facing) | |||
-> number blocking [,number featureID] | |||
<font color="darkgreen">blocking can be: | |||
0 - blocked | |||
1 - mobile unit in the way | |||
2 - free (or if featureID is != 0 then with a | |||
blocking feature that can be reclaimed)</font> | |||
'''Spring.Pos2BuildPos''' | '''Spring.Pos2BuildPos''' | ||
( number unitDefID, number x, number y, number z ) -> nil | number x, number y, number z | |||
'''Spring.GetPositionLosState''' | '''Spring.GetPositionLosState''' | ||
'''Spring.GetClosestValidPosition''' | ( number x, number y, number z [, number teamID] ) | ||
-> boolean visible, boolean inLos, boolean inRadar | |||
'''Spring.GetClosestValidPosition''' //NOT FINISHED YET | |||
( number unitDefID, number x, number z, number r ) -> nil | |||
'''Spring.GetUnitPiecePosition''' | '''Spring.GetUnitPiecePosition''' | ||
( number unitID, number piece ) -> number posx, number posy, number posz | |||
'''Spring.GetUnitPieceDirection''' | '''Spring.GetUnitPieceDirection''' | ||
( number unitID, number piece ) -> number dirx, number diry, number dirz | |||
'''Spring.GetUnitPieceMatrix''' | '''Spring.GetUnitPieceMatrix''' | ||
( number unitID, number piece ) -> { [1] = number, ... , [16] = number } | |||
Revision as of 17:17, 28 September 2007
Spring.ALL_UNITS -> number
Spring.MY_UNITS -> number
Spring.ALLY_UNITS -> number
Spring.ENEMY_UNITS -> number
Spring.IsCheatingEnabled
( ) -> boolean
Spring.IsDevLuaEnabled
( ) -> boolean
Spring.IsEditDefsEnabled
( ) -> boolean
Spring.AreHelperAIsEnabled
( ) -> boolean
Spring.IsGameOver
( ) -> boolean
Spring.GetGaiaTeamID
( ) -> number teamID
Spring.GetRulesInfoMap
( string key ) -> string
( ) -> { [key1] = string value1, [key2] = string value2, ... }
Spring.GetGameSpeed
( ) -> number userSpeedFactor, number speedFactor, boolean paused
Spring.GetGameFrame
( ) -> number frameNum%dayFrames, number frameNum/dayFrames
Spring.GetGameSeconds
( ) -> number seconds
Spring.GetGameRulesParam
( number index | string ruleName ) -> number value
Spring.GetGameRulesParams
( ) -> { [rule1] = number value1, [rule2] = number value2, ... }
Spring.GetWind
( ) -> number dirX, number dirY, number dirZ,
number strength, number normDirX, number normDirY, number normDirZ
Spring.GetHeadingFromVector
( number x, number z ) -> number heading
Spring.GetVectorFromHeading
( number heading ) -> number x, number z
Spring.GetAllyTeamStartBox
( number allyID ) -> number xmin, number zmin, number xmax, number zmax
Spring.GetTeamStartPosition
( number teamID ) -> number x, number y, number z
Spring.GetPlayerList
( [number teamID, boolean onlyActive] ) -> nil | { [1] = number playerID, etc... }
Spring.GetTeamList
( [number allyTeamID] ) -> nil | { [1] = number teamID, etc... }
Spring.GetAllyTeamList
( ) -> { [1] = number allyTeamID, etc... }
Spring.GetPlayerInfo
( number playerID ) ->
nil | string "name",
boolean active,
boolean spectator,
number teamID,
number allyTeamID,
number pingTime,
number cpuUsage,
string country,
number rank
Spring.GetPlayerControlledUnit
( number playerID ) -> nil | number unitID
Spring.GetTeamInfo
( number teamID ) ->
nil | number teamNum,
number leader,
boolean active,
boolean isDead,
boolean isAiTeam,
string "side",
number allyTeam
Spring.GetTeamResources
( number teamID, string "metal" | "energy" ) ->
nil | number currentLevel,
number storage,
number pull,
number income,
number expense,
number share,
number sent,
number received
Spring.GetTeamUnitStats
( number teamID ) ->
nil | number killed,
number died,
number capturedBy,
number capturedFrom,
number received,
number sent
Spring.GetTeamRulesParam
( number teamID, number index | string ruleName ) -> nil | number value
Spring.GetTeamRulesParams
( number teamID ) -> nil | { [rule1] = number value1, [rule2] = number value2, ... }
Spring.GetTeamStatsHistory
( number teamID, number startTime, number endTime ) ->
{
[1] = {
"frame" = number,
"metalUsed" = number,
"metalProduced" = number,
"metalExcess" = number,
"metalReceived" = number,
"metalSent" = number,
"energyUsed" = number,
"energyProduced" = number,
"energyExcess" = number,
"energyReceived" = number,
"energySent" = number,
"damageDealt" = number,
"damageReceived" = number,
"unitsProduced" = number,
"unitsDied" = number,
"unitsReceived" = number,
"unitsSent" = number,
"unitsCaptured" = number,
"unitsOutCaptured" = number,
"unitsKilled" = number
},
[2] = {...}, ...
}
Spring.AreTeamsAllied
( number teamID1, number teamID2 ) -> nil | boolean
Spring.ArePlayersAllied
( number playerID1, number playerID2 ) -> nil | boolean
Spring.GetAllUnits
( ) -> nil | unitTable = { [1] = number unitID, ... }
Spring.GetTeamUnits
( number teamID ) -> nil | unitTable = { [1] = number unitID, etc... }
Spring.GetTeamUnitsSorted
( number teamID ) -> nil |
unitDefTable = {
[number unitDefID] = { [1] = [number unitID], etc... },
etc...
}
Spring.GetTeamUnitsCounts
( number teamID ) -> nil | countTable = { [number unitDefID] = count, etc... }
Spring.GetTeamUnitsByDefs
( number teamID, number unitDefID | { number unitDefID1, ... } ) ->
nil | unitTable = { [1] = number unitID, etc... }
Spring.GetTeamUnitDefCount
( number teamID, number unitDefID ) -> nil | number count
Spring.GetTeamUnitCount
( number teamID ) -> nil | number count
Spring.GetUnitsInRectangle
( number xmin, number zmin, number xmax, number zmax [,number teamID] ) ->
nil | unitTable = { [1] = number unitID, etc... }
Spring.GetUnitsInBox
( number xmin, number ymin, number zmin,
number xmax, number ymax, number zmax [,number teamID] ) ->
nil | unitTable = { [1] = number unitID, etc... }
Spring.GetUnitsInSphere
( number x, number y, number z, number radius [,number teamID] ) ->
nil | unitTable = { [1] = number unitID, etc... }
Spring.GetUnitsInCylinder
( number x, number z, number radius [,number teamID] ) ->
nil | unitTable = { [1] = number unitID, etc... }
Spring.GetUnitsInPlanes
( planes = { [1] = { number nx, number ny, number nz, number d }, etc... } ) ->
nil | unitTable = { [1] = number unitID, etc... }
plane normals point towards accepted space, so the acceptance criteria for each plane is: radius = unit radius px, py, pz = unit position [(nx * px) + (ny * py) + (nz * pz) + (d - radius)] <= 0
Spring.GetFeaturesInRectangle
( number xmin, number zmin, number xmax, number zmax [,number teamID] ) ->
nil | featureTable = { [1] = number featureID, etc... }
Spring.GetUnitNearestAlly
( number unitID [, number range ] ) -> nil | number unitID
Spring.GetUnitNearestEnemy
( number unitID [, number range ] ) -> nil | number unitID
Spring.GetUnitTooltip
( number unitID ) -> nil | string tooltip
Spring.GetUnitDefID
( number unitID ) -> nil | number unitDefID
Spring.GetUnitTeam
( number unitID ) -> nil | number teamID
Spring.GetUnitAllyTeam
( number unitID ) -> nil | number allyID
Spring.GetUnitLineage
( number unitID ) -> nil | number lineage, boolean lineageRoot
Spring.GetUnitNeutral
( number unitID ) -> nil | boolean neutral
Spring.GetUnitHealth
( number unitID ) -> nil | number health, number maxHealth, number paralyzeDamage,
number captureProgress, number buildProgress
Spring.GetUnitIsStunned
( number unitID ) -> nil | boolean stunned_or_inbuild, boolean stunned, boolean inbuild
Spring.GetUnitResources
( number unitID ) -> nil | number metalMake, number metalUse,
number energyMake, number energyUse
Spring.GetUnitExperience
( number unitID ) -> nil | number experience
Spring.GetUnitStates
( number unitID ) -> nil | {
"firestate" = number,
"movestate" = number,
"repeat" = boolean,
"cloak" = boolean,
"active" = boolean,
"trajectory" = boolean,
["autoland" = boolean,]
["autorepairlevel" = number,]
["loopbackattack" = boolean]
}
Spring.GetUnitIsActive
( number unitID ) -> nil | boolean
Spring.GetUnitIsCloaked
( number unitID ) -> nil | boolean
Spring.GetUnitSelfDTime
( number unitID ) -> nil | number
Spring.GetUnitStockpile
( number unitID ) -> nil | number numStockpiled, number numStockpileQued, number buildPercent
Spring.GetUnitHeight
( number unitID ) -> nil | number
Spring.GetUnitRadius
( number unitID ) -> nil | number
Spring.GetUnitPosition
( number unitID ) -> nil | number x, number y, number z
Spring.GetUnitBasePosition
( number unitID ) -> nil | number x, number y, number z
Spring.GetUnitDirection
( number unitID ) -> nil | number dx, number dy, number dz
Spring.GetUnitHeading
( number unitID ) -> nil | number heading
Spring.GetUnitVelocity
( number unitID ) -> nil | number velx, number vely, number velz
Spring.GetUnitBuildFacing
( number unitID ) -> nil | number
Spring.GetUnitIsBuilding
( number unitID ) -> nil | number unitID
Spring.GetUnitTransporter
( number unitID ) -> nil | number unitID
Spring.GetUnitIsTransporting
( number unitID ) -> nil | { [1] = number unitID, etc... }
Spring.GetUnitShieldState
( number unitID ) -> nil | number isEnabled, number curPower
Spring.GetUnitWeaponState
( number unitID ) -> nil | boolean angleGood, boolean loaded, number reloadFrame,
number salvoLeft, number numStockpiled
Spring.GetUnitTravel
( number unitID ) -> nil | number travel, number travelPeriod
Spring.GetUnitLosState
( number unitID [, number allyTeamID ] ) -> nil |
{ ["los" = true] [, "radar" = true] [, "typed" = true] }
Spring.GetUnitSeparation returns the distance of 2 units
( number unitID1, number unitID2 [, boolean 2D ] ) -> nil | number
Spring.GetUnitDefDimensions
( number unitDefID ) -> nil |
{
"height" = number,
"radius" = number,
"midx" = number,
"minx" = number,
"maxx" = number,
"midy" = number,
"miny" = number,
"maxy" = number,
"midz" = number,
"minz" = number,
"maxz" = number
}
Spring.GetUnitCommands
( number unitID [, number count] ) -> nil | commandQueueTable = {
[1] = {
"id" = number,
"params" = { [1] = number, ...},
"options" = {
"coded" = number,
"alt" = boolean,
"ctrl" = boolean,
"shift" = boolean,
"right" = boolean,
"internal" = boolean
}
}, ...
}
Spring.GetCommandQueue
( number unitID [, number count] ) -> nil | commandQueueTable = {
[1] = {
"id" = number,
"params" = { [1] = number, ...},
"options" = {
"coded" = number,
"alt" = boolean,
"ctrl" = boolean,
"shift" = boolean,
"right" = boolean,
"internal" = boolean
}
}, ...
}
Spring.GetFullBuildQueue
nil | buildOrders = {
[1] = { [number unitDefID] = number count }, etc...
}
Spring.GetRealBuildQueue (cleans the buildqueue of things the unit can't build itself)
nil | buildOrders = {
[1] = { [number unitDefID] = number count }, etc...
}
Spring.GetFactoryCommands
( number unitID [, number count] ) -> nil | commandQueueTable = {
[1] = {
"id" = number,
"params" = { [1] = number, ...},
"options" = {
"coded" = number,
"alt" = boolean,
"ctrl" = boolean,
"shift" = boolean,
"right" = boolean,
"internal" = boolean
}
}, ...
}
Spring.GetFactoryCounts (used to get the buildqueue of a factory)
( number unitID [, number count [, boolean noCMDs ] ] ) -> nil | commandQueueTable = {
[number unitDefID | number -cmdID] = number count, ...
}
Spring.GetUnitCmdDescs
( number unitID [, number startIndex [, number endIndex ] ] ) -> nil | {
[1] = {
"id" = number,
"type" = number,
"name" = string,
"action" = string,
"tooltip" = string,
"texture" = string,
"cursor" = string,
"hidden" = boolean,
"disabled" = boolean,
"showUnique" = boolean,
"onlyTexture" = boolean,
"params" = { [1] = string, ... }
}, ...
}
Spring.FindUnitCmdDesc
( number unitID, number cmdID ) -> nil | number index
Spring.GetUnitRulesParam
( number unitID, number index | string ruleName ) -> nil | number value
Spring.GetUnitRulesParams
( number unitID ) -> nil | { [rule1] = number value1, [rule2] = number value2, ... }
Spring.GetAllFeatures
( ) -> nil | { [1] = number featureID, ... }
Spring.GetFeatureList // NOTE: this is not really required now the all FeatureDefs are pre-loaded
Spring.GetFeatureDefID
( number featureID ) -> nil | number featureDefID
Spring.GetFeatureTeam
( number featureID ) -> nil | number teamID
Spring.GetFeatureAllyTeam
( number featureID ) -> nil | number allyID
Spring.GetFeatureHealth
( number featureID ) -> nil | number health, number maxHealth, number resurrectProgress
Spring.GetFeatureHeight
( number featureID ) -> nil | number
Spring.GetFeatureRadius
( number featureID ) -> nil | number
Spring.GetFeaturePosition
( number featureID ) -> nil | number x, number y, number z
Spring.GetFeatureDirection
( number featureID ) -> nil | number dirx, number diry, number dirz
Spring.GetFeatureHeading
( number featureID ) -> nil | number heading
Spring.GetFeatureResources
( number featureID ) -> nil | number RemainingMetal, number maxMetal,
number RemainingEnergy, number maxEnergy, number reclaimLeft
Spring.GetFeatureNoSelect
( number featureID ) -> nil | boolean noSelect
Spring.GetFeatureResurrect
( number featureID ) -> nil | boolean createdFromUnit, number buildFacing
Spring.GetGroundHeight
( number x, number y ) -> number z
Spring.GetGroundNormal
( number x, number y ) -> number x, number y, number z
Spring.GetGroundInfo
( number x, number y ) -> string "Type", number metal, number hardness,
number tankSpeed, number kbotSpeed, number hoverSpeed,
number shipSpeed, boolean noTracks
Spring.GetGroundBlocked
( number x, number y |
number x1, number y1, number x2, number y2 ) -> nil |
string "feature", number featureID |
string "unit", number unitID
Spring.GetGroundExtremes
( ) -> nil | number minHeight, number maxHeight
Spring.TestBuildOrder
( number unitDefID, number x, number y, number z, number facing)
-> number blocking [,number featureID]
blocking can be:
0 - blocked
1 - mobile unit in the way
2 - free (or if featureID is != 0 then with a
blocking feature that can be reclaimed)
Spring.Pos2BuildPos
( number unitDefID, number x, number y, number z ) -> nil | number x, number y, number z
Spring.GetPositionLosState
( number x, number y, number z [, number teamID] ) -> boolean visible, boolean inLos, boolean inRadar
Spring.GetClosestValidPosition //NOT FINISHED YET
( number unitDefID, number x, number z, number r ) -> nil
Spring.GetUnitPiecePosition
( number unitID, number piece ) -> number posx, number posy, number posz
Spring.GetUnitPieceDirection
( number unitID, number piece ) -> number dirx, number diry, number dirz
Spring.GetUnitPieceMatrix
( number unitID, number piece ) -> { [1] = number, ... , [16] = number }