Lua SyncedRead: Difference between revisions

From Spring
Jump to navigationJump to search
JK (talk | contribs)
mNo edit summary
JK (talk | contribs)
mNo edit summary
Line 172: Line 172:
     nil | unitTable = { [1] = number unitID, etc... }
     nil | unitTable = { [1] = number unitID, etc... }
'''Spring.GetUnitsInPlanes'''
'''Spring.GetUnitsInPlanes'''
  ( planes = { [1] = { number nx, number ny, number nz, number d }, etc... } ) ->
    nil | unitTable = { [1] = number unitID, etc... }
<font color="darkgreen">
  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
</font>


'''Spring.GetFeaturesInRectangle'''
'''Spring.GetFeaturesInRectangle'''
  ( number xmin, number zmin, number xmax, number zmax [,number teamID] ) ->
    nil | featureTable = { [1] = number featureID, etc... }


'''Spring.GetUnitNearestAlly'''
'''Spring.GetUnitNearestAlly'''
  ( number unitID [, number range ] ) -> nil | number unitID
'''Spring.GetUnitNearestEnemy'''
'''Spring.GetUnitNearestEnemy'''
  ( number unitID [, number range ] ) -> nil | number unitID


'''Spring.GetUnitTooltip'''
'''Spring.GetUnitTooltip'''
  ( number unitID ) -> nil | string tooltip
'''Spring.GetUnitDefID'''
'''Spring.GetUnitDefID'''
  ( number unitID ) -> nil | number unitDefID
'''Spring.GetUnitTeam'''
'''Spring.GetUnitTeam'''
  ( number unitID ) -> nil | number teamID
'''Spring.GetUnitAllyTeam'''
'''Spring.GetUnitAllyTeam'''
  ( number unitID ) -> nil | number allyID
'''Spring.GetUnitLineage'''
'''Spring.GetUnitLineage'''
  ( number unitID ) -> nil | number lineage, boolean lineageRoot
'''Spring.GetUnitNeutral'''
'''Spring.GetUnitNeutral'''
  ( number unitID ) -> nil | boolean neutral
'''Spring.GetUnitHealth'''
'''Spring.GetUnitHealth'''
  ( number unitID ) -> nil | number health, number maxHealth, number paralyzeDamage,
                            number captureProgress, number buildProgress
'''Spring.GetUnitIsStunned'''
'''Spring.GetUnitIsStunned'''
  ( number unitID ) -> nil | boolean stunned_or_inbuild, boolean stunned, boolean inbuild
'''Spring.GetUnitResources'''
'''Spring.GetUnitResources'''
  ( number unitID ) -> nil | number metalMake, number metalUse,
                            number energyMake, number energyUse
'''Spring.GetUnitExperience'''
'''Spring.GetUnitExperience'''
  ( number unitID ) -> nil | number experience
'''Spring.GetUnitStates'''
'''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'''
'''Spring.GetUnitIsActive'''
  ( number unitID ) -> nil | boolean
'''Spring.GetUnitIsCloaked'''
'''Spring.GetUnitIsCloaked'''
  ( number unitID ) -> nil | boolean
'''Spring.GetUnitSelfDTime'''
'''Spring.GetUnitSelfDTime'''
  ( number unitID ) -> nil | number
'''Spring.GetUnitStockpile'''
'''Spring.GetUnitStockpile'''
  ( number unitID ) -> nil | number numStockpiled, number numStockpileQued, number buildPercent
'''Spring.GetUnitHeight'''
'''Spring.GetUnitHeight'''
  ( number unitID ) -> nil | number
'''Spring.GetUnitRadius'''
'''Spring.GetUnitRadius'''
  ( number unitID ) -> nil | number
'''Spring.GetUnitPosition'''
'''Spring.GetUnitPosition'''
  ( number unitID ) -> nil | number x, number y, number z
'''Spring.GetUnitBasePosition'''
'''Spring.GetUnitBasePosition'''
  ( number unitID ) -> nil | number x, number y, number z
'''Spring.GetUnitDirection'''
'''Spring.GetUnitDirection'''
  ( number unitID ) -> nil | number dx, number dy, number dz
'''Spring.GetUnitHeading'''
'''Spring.GetUnitHeading'''
  ( number unitID ) -> nil | number heading
'''Spring.GetUnitVelocity'''
'''Spring.GetUnitVelocity'''
  ( number unitID ) -> nil | number velx, number vely, number velz
'''Spring.GetUnitBuildFacing'''
'''Spring.GetUnitBuildFacing'''
  ( number unitID ) -> nil | number
'''Spring.GetUnitIsBuilding'''
'''Spring.GetUnitIsBuilding'''
  ( number unitID ) -> nil | number unitID
'''Spring.GetUnitTransporter'''
'''Spring.GetUnitTransporter'''
  ( number unitID ) -> nil | number unitID
'''Spring.GetUnitIsTransporting'''
'''Spring.GetUnitIsTransporting'''
  ( number unitID ) -> nil | { [1] = number unitID, etc... }
'''Spring.GetUnitShieldState'''
'''Spring.GetUnitShieldState'''
  ( number unitID ) -> nil | number isEnabled, number curPower
'''Spring.GetUnitWeaponState'''
'''Spring.GetUnitWeaponState'''
  ( number unitID ) -> nil | boolean angleGood, boolean loaded, number reloadFrame,
                            number salvoLeft, number numStockpiled
'''Spring.GetUnitTravel'''
'''Spring.GetUnitTravel'''
  ( number unitID ) -> nil | number travel, number travelPeriod
'''Spring.GetUnitLosState'''
'''Spring.GetUnitLosState'''
  ( number unitID [, number allyTeamID ] ) -> nil |
    { ["los" = true] [, "radar" = true] [, "typed" = true] }
'''Spring.GetUnitSeparation'''
'''Spring.GetUnitSeparation'''
  ( number unitID1, number unitID2 [, boolean 2D ] ) -> nil | number
'''Spring.GetUnitDefDimensions'''
'''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'''
'''Spring.GetUnitCommands'''

Revision as of 06:46, 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

 ( 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 Spring.GetFactoryCounts Spring.GetFactoryCommands

Spring.GetCommandQueue Spring.GetFullBuildQueue Spring.GetRealBuildQueue

Spring.GetUnitCmdDescs Spring.FindUnitCmdDesc

Spring.GetUnitRulesParam Spring.GetUnitRulesParams

Spring.GetAllFeatures Spring.GetFeatureList Spring.GetFeatureDefID Spring.GetFeatureTeam Spring.GetFeatureAllyTeam Spring.GetFeatureHealth Spring.GetFeatureHeight Spring.GetFeatureRadius Spring.GetFeaturePosition Spring.GetFeatureDirection Spring.GetFeatureHeading Spring.GetFeatureResources Spring.GetFeatureNoSelect Spring.GetFeatureResurrect

Spring.GetGroundHeight Spring.GetGroundNormal Spring.GetGroundInfo Spring.GetGroundBlocked Spring.GetGroundExtremes

Spring.TestBuildOrder Spring.Pos2BuildPos Spring.GetPositionLosState Spring.GetClosestValidPosition

Spring.GetUnitPiecePosition Spring.GetUnitPieceDirection Spring.GetUnitPieceMatrix