Engine:CCMD varedit

Revision as of 03:58, 14 October 2023 by Bear (talk | contribs) (→‎Details)
Console commands

Sets an existing variable in the current context, reports variable value.

bob fred

Associations

  • Is the default command for the 'global' context.
  • Does not have its own command name in 'global'.

Arguments

  • name - name for variable to set
  • value (optional) - the value to set. If no value, then prints value if exists.

Details

Can be used to set or report a value for an existing variable. Will fail if variable does not already exist.

Behaves like a combination of 'var' and 'set', but will never create a variable:

  • varedit - Never creates a variable, and sets anytime variable already exists.
  • var - Will create and set a variable, only if the variable does not yet exist.
  • set - Will create or set a variable, any time.

Examples

Default values

  • 'bob' without a value. Variable 'bob' doesn't exist, and 'bob' is not the name of anything else.
> bob
Unknown: bob
  • Tries to set variable 'bob' to 'fred'. Fails as 'bob' does not exist.
> bob fred
Unknown: bob
  • Using the 'set' command to create the variable 'bob' and set to 'fred'.
> set bob fred
  • Same as the first example, but now 'bob' exists.
> bob
'bob' is 'fred'
  • Try to set existing 'bob' to 'james', value changes.
> bob james
> bob
'bob' is 'james'

Change if exists

In this example let's pretend 'bob' is a Client module variable. Client when started will create 'bob' with a default value in the 'global' context.

  • Variable 'bob' doesn't exist, and 'bob' is not the name of anything else.
> bob
Unknown: bob
  • Tries to set variable 'bob' to 'fred'. Fails as 'bob' does not exist. Which is good.
> bob fred
Unknown: bob
  • Using the 'client' context run the Client 'start' command which will create the variable 'bob' with a default value of '8080'.
> client start
  • Same as the first example, but now 'bob' exists.
> bob
'bob' is '8080'
  • Try to set existing 'bob' to '8081', value changes.
> bob 8081
> bob
'bob' is '8081'

Macro

In this example 'bob' is still a Client module variable. We want to check the old value of bob before restarting the client.

  • Check the value of bob. Stop the service. Then start client and then change the value after started. Client was not started previously.
> bob; client stop; client start; bob 8081; bob
Unknown: bob
Client not started.
Client started.
8081
  • Same but Client fails to start, and removed or did not yet create the variable 'bob' before returning.
> bob; client stop; client start; bob 8081; bob
Unknown: bob
Client not started.
Client could not start.
Unknown: bob
Unknown: bob

Notes

  • This is a 'default' command for the global context and is used by simply using the 'name' and 'value' directly in a statement. It does not have a name in global to call it by name.