Editing WeaponCtrJump

From Eternity Wiki
Jump to navigationJump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
{{codepointer|description=
Player weapon codepointer. Parameterized codepointer.
This codepointer compares one of the counters with a value or another counter, and jumps instantly to frame ''statenum'' if the condition is met.|usage=
 
'''WeaponCtrJump'''(''statenum'', ''checktype'', ''value'', ''cnum'', ''psprnum'')|parameters=
:''Usage:''
*''statenum'': name or Dehacked number of frame to jump to.
::'''WeaponCtrJump'''(''statenum'', ''checktype'', ''value'', ''cnum'', ''psprnum'')
*''checktype'': what type of comparison to apply, depending on the number or mnemonic used.
===Effect===
::'''Numbers 0-6 are used to compare a counter value with a constant
This codepointer is used for frame scripting within a player weapons' frames. It's not designed to affect non-player game world objects or the player avatar. It's used on the frames of guns that typically appear in front of the game screen.
 
In Eternity each player weapon has three (or eight in the development versions) counters that can be edited and conditionally checked by codepointers to achieve scripted effects.
 
This codepointer compares one of the counters with a value or another counter, and jumps instantly to frame ''statenum'' if the condition is met. Otherwise, it will work normally and jump to next frame after frame's tics duration. This can be used for any of two weapon sprite types: normal gun, or muzzle flash.
 
===Arguments===
*'''args0''': ''statenum'': name or Dehacked number of frame to jump to.
*'''args1''': ''checktype'': what type of comparison to apply, depending on the number or mnemonic used.
::'''Numbers 0-6 are used to compare a counter value with a constant, specified by the ''value'' argument:'''
:::0 ''less''
:::0 ''less''
:::1 ''lessorequal''
:::1 ''lessorequal''
Line 20: Line 29:
:::12 ''notequal_counter''
:::12 ''notequal_counter''
:::13 ''and_counter''.
:::13 ''and_counter''.
*''value'': constant value or counter number (0-2) to compare against ('''right operand''').
*'''args2''': ''value'': constant value or counter number (0-2 or 0-7 in development versions) to compare against ('''right operand''').
*''cnum'': counter number (0-2) to compare ('''left operand''').
*'''args3''': ''cnum'': counter number (0-2 or 0-7) to compare ('''left operand''').
*''psprnum'': what gun sprite type this function affects:
*'''args4''': ''psprnum'': what gun sprite type this function affects:
::0 ''weapon'': affect main weapon sprite
::0 ''weapon'': affect main weapon sprite
::1 ''flash'': affect muzzle flash sprite (which appears overlapping the main weapon sprite).|examples=
::1 ''flash'': affect muzzle flash sprite (which appears overlapping the main weapon sprite).
{{example|description=The following example modifies the Doom pistol to go into recharging animation after each ten shots, IF there is ammo left:|code=
 
  '''framedelta'''             <nowiki>{</nowiki> '''name'''=S_PISTOL3; '''action'''=[[WeaponSetCtr]](0,1,add); '''tics'''=0; '''nextframe'''=S_PISTOL3TESTAMMO<nowiki>}</nowiki>
===Example===
The following example modifies the Doom pistol to go into recharging animation after each ten shots, IF there is ammo left:
  '''framedelta''' { '''name'''=S_PISTOL3; '''action'''=[[WeaponSetCtr]](0,1,add); '''tics'''=0; '''nextframe'''=S_PISTOL3TESTAMMO}
'''frame''' S_PISTOL3TESTAMMO {'''cmp'''="PISG|2|*|0|[[CheckReload]]|@next"}      # CheckReload so it doesn't recharge when no ammo
'''frame''' S_PISTOL3TESTCTR {'''cmp'''="PISG|2|*|0|''WeaponCtrJump''(S_PISTOLRECHARGE,equal,10,0,weapon)|@next"} # use 0 tics so duration is always 0
'''frame''' S_PISTOL3NORMAL {'''cmp'''="PISG|2|*|4|*|S_PISTOL4"} # same form as ''original'' S_PISTOL3.
   
   
# CheckReload so it doesn't recharge when no ammo
  '''frame''' S_PISTOLRECHARGE {'''cmp'''="PISG|2|*|4|WeaponSetCtr(0,0,assign)|S_PISTOLREC1"}  # reset counter if recharge happens.
  '''frame''' S_PISTOL3TESTAMMO <nowiki>{</nowiki> '''cmp'''="PISG<nowiki>|2|*|0|</nowiki>[[CheckReload]]                                      <nowiki>|@next"</nowiki><nowiki>}</nowiki>
  # Add S_PISTOLREC1 and subsequent frames here.
==See also==
# use 0 tics so duration is always 0   
*[[List of codepointers]]
'''frame''' S_PISTOL3TESTCTR  <nowiki>{</nowiki> '''cmp'''="PISG<nowiki>|2|*|0|</nowiki>''WeaponCtrJump''(S_PISTOLRECHARGE,equal,10,0,weapon)<nowiki>|@next"</nowiki><nowiki>}</nowiki>
[[Category:Codepointers]]
# same form as ''original'' S_PISTOL3.
'''frame''' S_PISTOL3NORMAL   <nowiki>{</nowiki> '''cmp'''="PISG<nowiki>|2|*|4|</nowiki>*                                                <nowiki>|</nowiki>S_PISTOL4"<nowiki>}</nowiki>
# reset counter if recharge happens.
'''frame''' S_PISTOLRECHARGE  <nowiki>{</nowiki> '''cmp'''="PISG<nowiki>|2|*|4|</nowiki>WeaponSetCtr(0,0,assign)                        <nowiki>|</nowiki>S_PISTOLREC1"<nowiki>}</nowiki> 
  # Add S_PISTOLREC1 and subsequent frames here.}}|notes=This codepointer is used for frame scripting within a player weapons' frames. It's not designed to affect non-player game world objects or the player avatar. It's used on the frames of guns that typically appear in front of the game screen.
 
In Eternity each player weapon has three counters that can be edited and conditionally checked by codepointers to achieve scripted effects.
 
Otherwise, it will work normally and jump to next frame after frame's tics duration. This can be used for any of two weapon sprite types: normal gun, or muzzle flash.|seealso=
*[[List_of_codepointers#Frame_scripting|Weapon frame scripting codepointers]]}}
Please note that all contributions to Eternity Wiki are considered to be released under the GNU Free Documentation License 1.2 (see Eternity Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)

Templates used on this page: