Lua SyncedCtrl: Difference between revisions

From Spring
Jump to navigationJump to search
JK (talk | contribs)
No edit summary
JK (talk | contribs)
Line 283: Line 283:


= Command Descriptions =
= Command Descriptions =
<font color="green" style="font-size:120%">Don't work in unsynced code.</font><br><br>
<font color="green" style="font-size:120%">Doesn't work in unsynced code.</font><br><br>


'''Spring.EditUnitCmdDesc'''
'''Spring.EditUnitCmdDesc'''
Line 310: Line 310:
'''Spring.RemoveUnitCmdDesc'''
'''Spring.RemoveUnitCmdDesc'''
   ( number unitID [, number cmdDescID ] ) -> nil
   ( number unitID [, number cmdDescID ] ) -> nil


= Other =
= Other =

Revision as of 12:17, 13 August 2007

SendMessage

Spring.SendMessage

 ( string "message" ) -> nil

Spring.SendMessageToPlayer

 ( number playerID, string "message" ) -> nil

Spring.SendMessageToTeam

 ( number teamID, string "message" ) -> nil

Spring.SendMessageToAllyTeam

 ( number allyID, string "message" ) -> nil

Spring.SendMessageToSpectators

 ( string "message" ) -> nil


Ressources

Spring.AddTeamResource

 ( number teamID, string "m" | "e", number amount ) -> nil

Spring.UseTeamResource

 ( number teamID, 
   string "m" | "e", number amount |
   { m = number amount, e = number amount}
 ) -> nil | boolean hadEnough

Spring.SetTeamResource

 ( number teamID, string res, number amount ) -> nil

 possible values for res are:
   "m"  = metal
   "e"  = energy
   "ms"  = metal storage
   "es"  = energy storage

Spring.SetTeamShareLevel

 ( number teamID, string "m" | "e", number amount ) -> nil


Unit Handling

Spring.CreateUnit

 ( string "defName",
   number x, number y, number z,
   (number facing | string "facing"),
   number teamID ) -> number unitID

 possible string values for facing are:
   "s"  = south
   "e"  = east
   "n"  = north
   "w"  = west

Spring.DestroyUnit

 ( number unitID,
   [boolean selfd,]
   [boolean reclaimWreckage,]
   [number attackerID] ) -> nil

Spring.TransferUnit

 ( number unitID,
   numer newTeamID,
   boolean given ) -> nil


Unit Control

Spring.SetUnitCosts

 ( number unitID, { 
    [ buildTime  = number amount ],
    [ metalCost  = number amount ],
    [ energyCost = number amount ]
  } ) -> nil

Spring.SetUnitResourcing

 ( number unitID,
   string res, number amount |
   { res = number amount, ... }
 ) -> nil

 possible values for res are: "[u|c][u|m][m|e]"
      unconditional | conditional
                use | make
              metal | energy

Spring.SetUnitTooltip

 ( number unitID, string "tooltip" ) -> nil

Spring.SetUnitHealth

 ( number unitID,
   number health |
   { [ health   = number health ],
     [ capture  = number capture ],
     [ paralyze = number paralyze ],
     [ build    = number build ] }
 ) -> nil

Spring.SetUnitMaxHealth

 ( number unitID, number maxHealth ) -> nil

Spring.SetUnitStockpile

 ( number unitID, number stockpile) -> nil

Spring.SetUnitExperience

 ( number unitID, number experience ) -> nil

Spring.SetUnitCloak

 ( number unitID, boolean cloaked ) -> nil

Spring.SetUnitStealth

 ( number unitID, boolean stealth ) -> nil

Spring.SetUnitNoDraw

 ( number unitID, boolean noDraw ) -> nil

Spring.SetUnitNoSelect

 ( number unitID, boolean noSelect ) -> nil

Spring.SetUnitNoMinimap

 ( number unitID, boolean noMinimap ) -> nil

Spring.SetUnitAlwaysVisible

 ( number unitID, boolean alwaysVisible ) -> nil

Spring.SetUnitBlocking

 ( number unitID, boolean noBlock) -> nil

Spring.SetUnitMetalExtraction

 ( number unitID, number depth [,number range] ) -> nil

Spring.SetUnitBuildSpeed

 ( number builderID,
   number buildSpeed, [ number repairSpeed [, number reclaimSpeed
 [,number resurrectSpeed [, number captureSpeed [, number terraformSpeed ]] ]]] ) -> nil

Spring.SetUnitShieldState

 ( number unitID, boolean enabled [, number power] ) -> nil

Spring.SetUnitTravel

 ( number unitID, number travel [, number travelPeriod] ) -> nil

Spring.SetUnitPhysics

 ( number unitID,
   number posx, number posy, number posz,
   number velx, number vely, number velz,
   number rotx, number roty, number rotz,
 ) -> nil

Spring.SetUnitPosition

 ( number unitID, number x, number z [, boolean alwaysAboveSea] ) -> nil

Spring.SetUnitVelocity

 ( number unitID, number velx, number vely, number velz ) -> nil

Spring.SetUnitRotation

 ( number unitID, number rotx, number roty, number rotz ) -> nil

Spring.AddUnitImpulse

 ( number unitID, number x, number y, number z ) -> nil


Unit Ressourcing

Spring.AddUnitResource

 ( number unitID, string "m" | "e", number amount ) -> nil

Spring.UseUnitResource

 ( number unitID, string "m" | "e", number amount ) -> nil


Feature Creation

Spring.CreateFeature

 (  string "defName", number x, number y, number z
  [,number heading [, number AllyTeamID ]] ) -> number featureID

Spring.DestroyFeature

 ( number featureID ) -> nil

Spring.TransferFeature

 ( number featureID, number AllyTeamID ) -> nil


Feature Handling

Spring.SetFeatureHealth

 ( number featureID, number health) -> nil

Spring.SetFeatureReclaim

 ( number featureID, number reclaimLeft) -> nil

Spring.SetFeatureResurrect

 ( number featureID, string "UnitDefName?" [, number facing | string "facing" ] ) -> nil

 possible string values for facing are:
   "s"  = south
   "e"  = east
   "n"  = north
   "w"  = west

Spring.SetFeaturePosition

 ( number featureID, number x, number y, number z ) -> nil

Spring.SetFeatureDirection

 ( number featureID, number x, number y, number z ) -> nil

Spring.SetFeatureNoSelect

 ( number featureID, boolean noSelect ) -> nil


Spring.RemoveBuildingDecal

 ( number unitID ) -> nil


Lua to COB

Spring.CallCOBScript

 ( number unitID, number funcID | string funcName, number retArgs, COBArg1, COBArg2, ... )
   -> nil | number returnValue, number retArg1, number retArg2, ...

Spring.CallCOBScriptCB

 ( number unitID, number funcID | string funcName, number retArgs, COBArg1, COBArg2, ... )
   -> nil | number returnValue, number CallbackData, number retArg1, number retArg2, ...

Spring.GetCOBScriptID

 ( number unitID, string funcName ) -> nil | number funcID

Spring.GetUnitCOBValue

Spring.SetUnitCOBValue


Give Order

Works in unsynced code, too.

Spring.GiveOrderToUnit

 ( number unitID,
   number cmdID,
   params = {number, etc...},
   options = {"alt", "ctrl", "shift", "right"} ) -> nil

Spring.GiveOrderToUnitMap

 ( unitMap = { [unitID] = dontCare, etc... },
   number cmdID,
   params = {number, etc...},
   options = {"alt", "ctrl", "shift", "right"} ) -> nil

Spring.GiveOrderToUnitArray

 ( unitArray = { [1] = unitID, etc... },
   number cmdID,
   params = {number, etc...},
   options = {"alt", "ctrl", "shift", "right"} ) -> nil

Spring.GiveOrderArrayToUnitMap

 ( unitMap = { [number unitID] = dontCare, etc... },
   orderArray = {
     { number cmdID,
       params = {number, etc...},
       options = {"alt", "ctrl", "shift", "right"}
   },
   etc...
  }) -> nil

Spring.GiveOrderArrayToUnitArray

 ( unitArray = { [1] = number unitID, etc... },
   orderArray = {
     { number cmdID,
       params = {number, etc...},
       options = {"alt", "ctrl", "shift", "right"}
    },
   etc...
 }) -> nil


Heightmap

Spring.LevelHeightMap

 ( number x1, number z1 [, number x2, number z2], number height ) -> nil

Spring.AdjustHeightMap

 ( number x1, number z1 [, number x2, number z2], number height ) -> nil

Spring.RevertHeightMap

 ( number x1, number z1 [, number x2, number z2], number origFactor ) -> nil


Command Descriptions

Doesn't work in unsynced code.

Spring.EditUnitCmdDesc

 ( number unitID, number cmdDescID, table cmdArray ) -> nil

 structure of cmdArray:
 {
   [ id          = int ],
   [ type        = int ],
   [ name        = string ],
   [ action      = string ],
   [ tooltip     = string ],
   [ texture     = string ],
   [ cursor      = string ],
   [ hidden      = boolean ],
   [ disabled    = boolean ],
   [ showUnique  = boolean ],
   [ onlyTexture = boolean ],
   [ params      = { string = string, ... } ]
 }

Spring.InsertUnitCmdDesc

 ( number unitID [, number cmdDescID ] , table cmdArray ) -> nil

Spring.RemoveUnitCmdDesc

 ( number unitID [, number cmdDescID ] ) -> nil

Other

Spring.SetNoPause

 ( boolean noPause ) -> nil

Spring.SetUnitToFeature

 ( boolean noPause ) -> nil