Lua SyncedCtrl: Difference between revisions

From Spring
Jump to navigationJump to search
JK (talk | contribs)
New page: = SendMessage = '''SendMessage''' ( string "message" ) -> nil '''SendMessageToPlayer''' ( number playerID, string "message" ) -> nil '''SendMessageToTeam''' ( number teamID, string...
 
JK (talk | contribs)
No edit summary
Line 1: Line 1:
= SendMessage =
= SendMessage =
'''SendMessage'''
'''Spring.SendMessage'''
   ( string "message" ) -> nil
   ( string "message" ) -> nil


'''SendMessageToPlayer'''
'''Spring.SendMessageToPlayer'''
   ( number playerID, string "message" ) -> nil
   ( number playerID, string "message" ) -> nil


'''SendMessageToTeam'''
'''Spring.SendMessageToTeam'''
   ( number teamID, string "message" ) -> nil
   ( number teamID, string "message" ) -> nil


'''SendMessageToAllyTeam'''
'''Spring.SendMessageToAllyTeam'''
   ( number allyID, string "message" ) -> nil
   ( number allyID, string "message" ) -> nil


'''SendMessageToSpectators'''
'''Spring.SendMessageToSpectators'''
   ( string "message" ) -> nil
   ( string "message" ) -> nil




= Ressources =
= Ressources =
'''AddTeamResource'''
'''Spring.AddTeamResource'''
   ( number teamID, string "m" | "e", number amount ) -> nil
   ( number teamID, string "m" | "e", number amount ) -> nil
'''UseTeamResource'''
'''Spring.UseTeamResource'''
   ( number teamID,  
   ( number teamID,  
     string "m" | "e", number amount |
     string "m" | "e", number amount |
Line 25: Line 25:
   ) -> nil | boolean hadEnough
   ) -> nil | boolean hadEnough


'''SetTeamResource'''
'''Spring.SetTeamResource'''
   ( number teamID, string res, number amount ) -> nil
   ( number teamID, string res, number amount ) -> nil
<font color="green">
<font color="green">
Line 35: Line 35:
</font>
</font>


'''SetTeamShareLevel'''
'''Spring.SetTeamShareLevel'''
   ( number teamID, string "m" | "e", number amount ) -> nil
   ( number teamID, string "m" | "e", number amount ) -> nil




= Unit Handling =
= Unit Handling =
'''CreateUnit'''
'''Spring.CreateUnit'''
   ( string "defName",
   ( string "defName",
     number x, number y, number z,
     number x, number y, number z,
Line 53: Line 53:
</font>
</font>


'''DestroyUnit'''
'''Spring.DestroyUnit'''
   ( number unitID,
   ( number unitID,
     [boolean selfd,]
     [boolean selfd,]
Line 59: Line 59:
     [number attackerID] ) -> nil
     [number attackerID] ) -> nil


'''TransferUnit'''
'''Spring.TransferUnit'''
   ( number unitID,
   ( number unitID,
     numer newTeamID,
     numer newTeamID,
Line 66: Line 66:


== Unit Control ==
== Unit Control ==
'''SetUnitCosts'''
'''Spring.SetUnitCosts'''
   ( number unitID, {  
   ( number unitID, {  
     [ buildTime  = number amount ],
     [ buildTime  = number amount ],
Line 73: Line 73:
   } ) -> nil
   } ) -> nil


'''SetUnitResourcing'''
'''Spring.SetUnitResourcing'''
   ( number unitID,
   ( number unitID,
     string res, number amount |
     string res, number amount |
Line 85: Line 85:
</font>
</font>


'''SetUnitTooltip'''
'''Spring.SetUnitTooltip'''
   ( number unitID, string "tooltip" ) -> nil
   ( number unitID, string "tooltip" ) -> nil


'''SetUnitHealth'''
'''Spring.SetUnitHealth'''
   ( number unitID,
   ( number unitID,
     number health |
     number health |
Line 97: Line 97:
   ) -> nil
   ) -> nil


'''SetUnitMaxHealth'''
'''Spring.SetUnitMaxHealth'''
   ( number unitID, number maxHealth ) -> nil
   ( number unitID, number maxHealth ) -> nil


'''SetUnitStockpile'''
'''Spring.SetUnitStockpile'''
   ( number unitID, number stockpile) -> nil
   ( number unitID, number stockpile) -> nil


'''SetUnitExperience'''
'''Spring.SetUnitExperience'''
   ( number unitID, number experience ) -> nil
   ( number unitID, number experience ) -> nil


'''SetUnitCloak'''
'''Spring.SetUnitCloak'''
   ( number unitID, boolean cloaked ) -> nil
   ( number unitID, boolean cloaked ) -> nil


'''SetUnitStealth'''
'''Spring.SetUnitStealth'''
   ( number unitID, boolean stealth ) -> nil
   ( number unitID, boolean stealth ) -> nil


'''SetUnitNoDraw'''
'''Spring.SetUnitNoDraw'''
   ( number unitID, boolean noDraw ) -> nil
   ( number unitID, boolean noDraw ) -> nil


'''SetUnitNoSelect'''
'''Spring.SetUnitNoSelect'''
   ( number unitID, boolean noSelect ) -> nil
   ( number unitID, boolean noSelect ) -> nil


'''SetUnitNoMinimap'''
'''Spring.SetUnitNoMinimap'''
   ( number unitID, boolean noMinimap ) -> nil
   ( number unitID, boolean noMinimap ) -> nil


'''SetUnitAlwaysVisible'''
'''Spring.SetUnitAlwaysVisible'''
   ( number unitID, boolean alwaysVisible ) -> nil
   ( number unitID, boolean alwaysVisible ) -> nil


'''SetUnitBlocking'''
'''Spring.SetUnitBlocking'''
   ( number unitID, boolean noBlock) -> nil
   ( number unitID, boolean noBlock) -> nil


'''SetUnitMetalExtraction'''
'''Spring.SetUnitMetalExtraction'''
   ( number unitID, number depth [,number range] ) -> nil
   ( number unitID, number depth [,number range] ) -> nil


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


'''SetUnitShieldState'''
'''Spring.SetUnitShieldState'''
   ( number unitID, boolean enabled [, number power] ) -> nil
   ( number unitID, boolean enabled [, number power] ) -> nil


'''SetUnitTravel'''
'''Spring.SetUnitTravel'''
   ( number unitID, number travel [, number travelPeriod] ) -> nil
   ( number unitID, number travel [, number travelPeriod] ) -> nil


'''SetUnitPhysics'''
'''Spring.SetUnitPhysics'''
   ( number unitID,
   ( number unitID,
     number posx, number posy, number posz,
     number posx, number posy, number posz,
Line 148: Line 148:
   ) -> nil
   ) -> nil


'''SetUnitPosition'''
'''Spring.SetUnitPosition'''
   ( number unitID, number x, number z [, boolean alwaysAboveSea] ) -> nil
   ( number unitID, number x, number z [, boolean alwaysAboveSea] ) -> nil


'''SetUnitVelocity'''
'''Spring.SetUnitVelocity'''
   ( number unitID, number velx, number vely, number velz ) -> nil
   ( number unitID, number velx, number vely, number velz ) -> nil


'''SetUnitRotation'''
'''Spring.SetUnitRotation'''
   ( number unitID, number rotx, number roty, number rotz ) -> nil
   ( number unitID, number rotx, number roty, number rotz ) -> nil


'''AddUnitImpulse'''
'''Spring.AddUnitImpulse'''
   ( number unitID, number x, number y, number z ) -> nil
   ( number unitID, number x, number y, number z ) -> nil




== Unit Ressourcing ==
== Unit Ressourcing ==
'''AddUnitResource'''
'''Spring.AddUnitResource'''
   ( number unitID, string "m" | "e", number amount ) -> nil
   ( number unitID, string "m" | "e", number amount ) -> nil


'''UseUnitResource'''
'''Spring.UseUnitResource'''
   ( number unitID, string "m" | "e", number amount ) -> nil
   ( number unitID, string "m" | "e", number amount ) -> nil




= Feature Creation =
= Feature Creation =
'''CreateFeature'''
'''Spring.CreateFeature'''
   (  string "defName", number x, number y, number z
   (  string "defName", number x, number y, number z
   [,number heading [, number AllyTeamID ]] ) -> number featureID
   [,number heading [, number AllyTeamID ]] ) -> number featureID


'''DestroyFeature'''
'''Spring.DestroyFeature'''
   ( number featureID ) -> nil
   ( number featureID ) -> nil


'''TransferFeature'''
'''Spring.TransferFeature'''
   ( number featureID, number AllyTeamID ) -> nil
   ( number featureID, number AllyTeamID ) -> nil




== Feature Handling ==
== Feature Handling ==
'''SetFeatureHealth'''
'''Spring.SetFeatureHealth'''
   ( number featureID, number health) -> nil
   ( number featureID, number health) -> nil


'''SetFeatureReclaim'''
'''Spring.SetFeatureReclaim'''
   ( number featureID, number reclaimLeft) -> nil
   ( number featureID, number reclaimLeft) -> nil


'''SetFeatureResurrect'''
'''Spring.SetFeatureResurrect'''
   ( number featureID, string "UnitDefName?" [, number facing | string "facing" ] ) -> nil
   ( number featureID, string "UnitDefName?" [, number facing | string "facing" ] ) -> nil
<font color="green">
<font color="green">
Line 198: Line 198:
</font>
</font>


'''SetFeaturePosition'''
'''Spring.SetFeaturePosition'''
   ( number featureID, number x, number y, number z ) -> nil
   ( number featureID, number x, number y, number z ) -> nil


'''SetFeatureDirection'''
'''Spring.SetFeatureDirection'''
   ( number featureID, number x, number y, number z ) -> nil
   ( number featureID, number x, number y, number z ) -> nil


'''SetFeatureNoSelect'''
'''Spring.SetFeatureNoSelect'''
   ( number featureID, boolean noSelect ) -> nil
   ( number featureID, boolean noSelect ) -> nil




'''RemoveBuildingDecal'''
'''Spring.RemoveBuildingDecal'''
   ( number unitID ) -> nil
   ( number unitID ) -> nil




= Lua to COB =
= Lua to COB =
'''CallCOBScript'''
'''Spring.CallCOBScript'''
   ( number unitID, number funcID | string funcName, number retArgs, COBArg1, COBArg2, ... )
   ( number unitID, number funcID | string funcName, number retArgs, COBArg1, COBArg2, ... )
     -> nil | number returnValue, number retArg1, number retArg2, ...
     -> nil | number returnValue, number retArg1, number retArg2, ...


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


'''GetCOBScriptID'''
'''Spring.GetCOBScriptID'''
   ( number unitID, string funcName ) -> nil | number funcID
   ( number unitID, string funcName ) -> nil | number funcID


'''GetUnitCOBValue'''
'''Spring.GetUnitCOBValue'''


'''SetUnitCOBValue'''
'''Spring.SetUnitCOBValue'''




= Give Order =
= Give Order =
'''GiveOrderToUnit'''
<font color="green" style="font-size:120%">Works in unsynced code, too.</font><br><br>
 
'''Spring.GiveOrderToUnit'''
   ( number unitID,
   ( number unitID,
     number cmdID,
     number cmdID,
Line 236: Line 238:
     options = {"alt", "ctrl", "shift", "right"} ) -> nil
     options = {"alt", "ctrl", "shift", "right"} ) -> nil


'''GiveOrderToUnitMap'''
'''Spring.GiveOrderToUnitMap'''
   ( unitMap = { [unitID] = dontCare, etc... },
   ( unitMap = { [unitID] = dontCare, etc... },
     number cmdID,
     number cmdID,
Line 242: Line 244:
     options = {"alt", "ctrl", "shift", "right"} ) -> nil
     options = {"alt", "ctrl", "shift", "right"} ) -> nil


'''GiveOrderToUnitArray'''
'''Spring.GiveOrderToUnitArray'''
   ( unitArray = { [1] = unitID, etc... },
   ( unitArray = { [1] = unitID, etc... },
     number cmdID,
     number cmdID,
Line 248: Line 250:
     options = {"alt", "ctrl", "shift", "right"} ) -> nil
     options = {"alt", "ctrl", "shift", "right"} ) -> nil


'''GiveOrderArrayToUnitMap'''
'''Spring.GiveOrderArrayToUnitMap'''
   ( unitMap = { [number unitID] = dontCare, etc... },
   ( unitMap = { [number unitID] = dontCare, etc... },
     orderArray = {
     orderArray = {
Line 258: Line 260:
   }) -> nil
   }) -> nil


'''GiveOrderArrayToUnitArray'''
'''Spring.GiveOrderArrayToUnitArray'''
   ( unitArray = { [1] = number unitID, etc... },
   ( unitArray = { [1] = number unitID, etc... },
     orderArray = {
     orderArray = {
Line 270: Line 272:


= Heightmap =
= Heightmap =
'''LevelHeightMap'''
'''Spring.LevelHeightMap'''
   ( number x1, number z1 [, number x2, number z2], number height ) -> nil
   ( number x1, number z1 [, number x2, number z2], number height ) -> nil


'''AdjustHeightMap'''
'''Spring.AdjustHeightMap'''
   ( number x1, number z1 [, number x2, number z2], number height ) -> nil
   ( number x1, number z1 [, number x2, number z2], number height ) -> nil


'''RevertHeightMap'''
'''Spring.RevertHeightMap'''
   ( number x1, number z1 [, number x2, number z2], number origFactor ) -> nil
   ( number x1, number z1 [, number x2, number z2], number origFactor ) -> nil




= Command Descriptions =
= Command Descriptions =
'''EditUnitCmdDesc'''
<font color="green" style="font-size:120%">Don't work in unsynced code.</font><br><br>
 
'''Spring.EditUnitCmdDesc'''
   ( number unitID, number cmdDescID, table cmdArray ) -> nil
   ( number unitID, number cmdDescID, table cmdArray ) -> nil
<font color="green">
<font color="green">
Line 301: Line 305:
</font>
</font>


'''InsertUnitCmdDesc'''
'''Spring.InsertUnitCmdDesc'''
   ( number unitID [, number cmdDescID ] , table cmdArray ) -> nil
   ( number unitID [, number cmdDescID ] , table cmdArray ) -> nil


'''RemoveUnitCmdDesc'''
'''Spring.RemoveUnitCmdDesc'''
   ( number unitID [, number cmdDescID ] ) -> nil
   ( number unitID [, number cmdDescID ] ) -> nil




= Other =
= Other =
'''SetNoPause'''
'''Spring.SetNoPause'''
   ( boolean noPause ) -> nil
   ( boolean noPause ) -> nil


'''SetUnitToFeature'''
'''Spring.SetUnitToFeature'''
   ( boolean noPause ) -> nil
   ( boolean noPause ) -> nil

Revision as of 17:07, 11 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

Don'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