Silent Lua

From MyGamingTalk

silEnT servers support Lua 5.1.4 scripts. Starting from version 0.5.1 the Lua interpreter is inbuilt into the server side mod. Before the vesion 0.5.1, the Lua was installed as an external module. A separate build of the silEnT mod is supplied within the download to admins who still want to use separate Lua library. silEnT's Lua API is aiming to be fully compatible to ETPro's Lua API. The origin of the silEnT Lua API is the Lua module in ETPub version 0.9.1.

Cvars

lua_modules

Description:

List of files to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. The paths are relative to the mod's directory, and can optionally be placed inside pk3 archieves. We are aiming for compatibility with ETPro's Lua Mod API found at http://wolfwiki.anime.net/index.php/Lua_Mod_API.

Type: string

Default: ""

lua_allowedModules

Description:

List of sha1 signatures for the lua modules to be loaded by the Lua API engine. Can be separated by space, comma or semicolon. Only lua modules with the matching sha1 signature listed in this cvar will be allowed to load by the Lua API engine (ACL).

Type: string

Default: ""

Commands

lua_status

Shows information about the scripts currently loaded by the Lua API server engine. This command works also from the client so that players can check what modules are currently loaded by the server.

Interface Function Reference

Modules

RegisterModname

Description

Registers a descriptive name for this Lua module.

Syntax

et.RegisterModname( modname )

  • modname is the name to register the Lua module

Portability

Function is ETPro compatible.

FindSelf

Description

Returns a number indicating the VM slot the current mod is loaded into.

Syntax

vmnumber = et.FindSelf()

Portability

Function is ETPro compatible.

FindMod

Description

Returns the registered module name and the SHA-1 signature of the module loaded in the VM. Do note that each loaded Lua module will have it's own VM.

Syntax

modname, signature = et.FindMod( vmnumber )

  • vmnumber is the number of the VM in where the Lua module is loaded
  • return value (modname, signature) is the registered module's name and the SHA-1 signature. Returns (nil, nil) if there is no module loaded into the given VM number

Portability

Function is ETPro compatible.

IPCSend

Description

Inter Process Communication. This function enables communication between different loaded Lua modules.

Syntax

success = et.IPCSend( vmnumber, message )

  • vmnumber is the number of the loaded module message is sent
  • message is the string to send
  • return value success is 1 if success and 0 if function fails

Portability

Function is ETPro compatible.

Printing

G_Print

Description

Prints text to the server console.

Syntax

et.G_Print( text )

  • text is the printed string

Portability

Function is ETPro compatible.

G_LogPrint

Description

Prints text to the server console and also to the log.

Syntax

et.G_LogPrint( text )

  • text is the printed and logged string

Portability

Function is ETPro compatible.

Argument Handling

ConcatArgs

Description

Function concatenates server command arguments into one string.

Syntax

args = et.ConcatArgs( index )

  • index is the index of the first argument in the concatenated string. First command argument index in general is 1.
  • return value args is the concatenated string

Portability

Function is ETPro compatible.

trap_Argc

Description

Function returns the number of the arguments in the server command.

Syntax

argc = et.trap_Argc()

  • return value argc is the count of arguments. For example for the command "/m gao message", the function would return 2.

Portability

Function is ETPro compatible.

trap_Argv

Description

Function returns argument in the given index.

Syntax

arg = et.trap_Argv( index )

  • index is the argument index to return.
  • return value arg is the argument

Portability

Function is ETPro compatible.

Cvars

trap_Cvar_Get

Description

Returns the value of the given cvar.

Syntax

cvarvalue= et.trap_Cvar_Get( cvar )

  • cvar is the name of the cvar
  • return value cvarvalue is a string containing the value. If there is no cvar with the given name, the returning string has zero length.

Portability

Function is ETPro compatible.

trap_Cvar_Set

Description

Sets value to a cvar.

Syntax

et.trap_CvarSet( name, value )

  • name is the name of the cvar to set
  • value is the new value for the cvar

Portability

Function is ETPro compatible.

Configstrings

trap_GetConfigstring

Description

Returns contents of the configstring at index.

Syntax

configstringvalue = et.trap_GetConfigstring( index )

  • index is the index of the configstring
  • return value configstring contains the full config string

Portability

Function is ETPro compatible.

trap_SetConfigstring

Description

Function sets the full configstring.

Syntax

et.trap_SetConfigstring( index, configstringvalue )

  • index is the configstring index
  • configstringvalue is the full configstring to set

Portability

Function is ETPro compatible.

Server Console and Client Handling

trap_SendConsoleCommand

Description

Sends command to the server console.

Syntax

   et.trap_SendConsoleCommand( when, command )
  • when tells when the command is executed. Possible values are
et.EXEC_NOW - executes instantly
et.EXEC_INSERT - inserts at the current position but doesn't run yet
et.EXEC_APPEND - appends at the end of the command buffer
  • command is the full command to execute

Portability

Function is ETPro compatible.

trap_DropClient

trap_SendServerCommand

ClientNumberFromString

G_Say

ClientUserinfoChanged

trap_GetUserinfo

trap_SetUserinfo

G_Damage

ClientIsFlooding

G_AddSkillPoints

G_LoseSkillPoints

String Utility Functions

Info_RemoveKey

Info_SetValueForKey

Info_ValueForKey

Q_CleanStr

Filesystem

trap_FS_FOpenFile

trap_FS_Read

trap_FS_Write

trap_FS_Rename

trap_FS_FCloseFile

Sounds and Models

G_SoundIndex

G_ModelIndex

G_globalSound

G_Sound

G_ClientSound

Entities

G_Spawn

G_TempEntity

G_FreeEntity

G_EntitiesFree

G_GetSpawnVar

G_SetSpawnVar

trap_LinkEntity

trap_UnlinkEntity

gentity_get

gentity_set

G_AddEvent

Shrubbot

G_shrubbot_permission

G_shrubbot_level

Time

trap_Milliseconds

Callbacks

et_InitGame

et_ShutdownGame

et_RunFrame

et_ClientConnect

et_ClientDisconnect

et_ClientBegin

et_ClientUserinfoChanged

et_ClientSpawn

et_ClientCommand

et_ConsoleCommand

et_UpgradeSkill

et_SetPlayerSkill

et_Print

et_Obituary

References