Esx commands

From EventScripts Community Encyclopedia

es_x versions of EventScripts functions do not expand variables such as server_var() or event_var().

Warning

For anyone new to EventScripts, 95% of the time you should be using the normal commands. It's recommend that newbies stay away from es_x commands entirely until they get more experienced and understand them. These commands only make things a little faster, but they can cause all sorts of issues if you're not careful with them.

Overview

Basically this means that if you did this example:

es_msg The gravity is server_var(sv_gravity)

It would 'expand' the server_var(sv_gravity) part before executing the command. So es_msg would broadcast the following message:

The gravity is 800

If you instead use the es_xmsg command, it will just treat the line as a lump of text and won't expand or read any variables you reference.

So this bad code:

es_xmsg The gravity is server_var(sv_gravity)

wouldn't do anything with the 'server_var' and just output this (which really makes no sense to anyone):

The gravity is server_var(sv_gravity)

Why use es_x commands?

In cases where you are 100% certain that you won't need to expand variables, es_x commands can be used to improve performance of your script. Let's say we wanted to create a variable with a particular hard-coded starting value:

es_setinfo MyVar 33

In the case above, we're not using server_var and event_var, so it'd be handy if we had a way to tell EventScripts not to look for them. This would speed up performance.

This is where an es_x command would come in handy:

es_xsetinfo MyVar 33

Now the line will run a few milliseconds faster.

The most common case to use es_x commands for performance is when working with if then commands. The if command automatically expands all variables on the line, so any command in the then half could be an es_x command. For example:

if (server_var(gravity) notequalto 800) then es_msg Gravity is not normal! gravity: server_var(sv_gravity)

Since the if command goes through the entire line and expands variables, it's already expanding all of the variables es_msg needs in the last half. So you could make the line slightly faster by changing es_msg to es_xmsg in this way:

if (server_var(gravity) notequalto 800) then es_xmsg Gravity is not normal! gravity: server_var(sv_gravity)

The output would be the same, but the speed would slightly increase.

blog comments powered by Disqus