State: Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 1: Line 1:
A state is a block of code written outside of any [[actor]]s or [[event]]s, that can be called from within them. This is useful because it allows you to use the same code in multiple places without rewriting it.
A state is a block of code written outside of any [[actor]]s or [[event]]s, that can be called from within them. This is useful because it allows you to use the same code in multiple places without rewriting it.


Syntax for state creation:
Use the token '''defstate''' to create a state outside of other states, actors, or events. ('''State''' works too, but '''defstate''' is preferable if you use a syntax highlighter that can collapse blocks.) The token '''ends''' marks the end of the state.


'''state''' <name><br>
'''defstate''' <name>
:(state code...)<br>
    // (state code...)
[[ends]]
'''ends'''
 
<name> is the name of the state.
 
(state code...) is the code executed within that state.
 
[[ends]] denotes the end of a state.


Calling a state within an [[actor]] is simply:  <code>'''state''' <name></code>
Calling a state within an [[actor]] is simply:  <code>'''state''' <name></code>
Line 21: Line 15:
  define MYACTOR3 3587
  define MYACTOR3 3587
   
   
  state spawnblood
  defstate spawnblood
ifhitweapon
    ifhitweapon
{
    {
    guts JIBS6 12
        guts JIBS6 12
    spawn BLOODPOOL
        spawn BLOODPOOL
    killit
        killit
}
    }
  ends
  ends
   
   

Latest revision as of 23:00, 23 September 2015

A state is a block of code written outside of any actors or events, that can be called from within them. This is useful because it allows you to use the same code in multiple places without rewriting it.

Use the token defstate to create a state outside of other states, actors, or events. (State works too, but defstate is preferable if you use a syntax highlighter that can collapse blocks.) The token ends marks the end of the state.

defstate <name>
    // (state code...)
ends

Calling a state within an actor is simply: state <name>

Example code:

define MYACTOR1 3585
define MYACTOR2 3586
define MYACTOR3 3587

defstate spawnblood
    ifhitweapon
    {
        guts JIBS6 12
        spawn BLOODPOOL
        killit
    }
ends

useractor notenemy MYACTOR1 2
    state spawnblood
enda

useractor notenemy MYACTOR2 2
    state spawnblood
enda

useractor notenemy MYACTOR3 2
    state spawnblood
enda

Use break to exit a state before all of its code is finished executing.