User Tools

Site Tools


crpl:docs:destroy

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
crpl:docs:destroy [2014/10/01 15:02] – external edit 127.0.0.1crpl:docs:destroy [2021/02/05 11:43] (current) – Rmoved discussion tag Karsten75
Line 1: Line 1:
-~~DISCUSSION~~+
 <- [[crpl:crplreference| CRPL reference]] <- [[crpl:crplreference#unit_commands|Unit Commands]] <- [[crpl:crplreference| CRPL reference]] <- [[crpl:crplreference#unit_commands|Unit Commands]]
 =====  Destroy  ===== =====  Destroy  =====
  
 ^ Arguments ^ Result ^ Notation ^ ^ Arguments ^ Result ^ Notation ^
-|Unit UID to Destroy, Explosion Mode (0,1,2,3)| |%%n1 n2--%%|+|Unit UID to Destroy, Explosion Mode (0,1,2,3)| |''n1 n2 --''|
  
  
Line 13: Line 13:
 For the explosion mode argument,  0 means no explosion and no sound,  For the explosion mode argument,  0 means no explosion and no sound, 
 1 means a small soundless flash, 2 means a full explosion with sound, 3 means full explosion but no sound. 1 means a small soundless flash, 2 means a full explosion with sound, 3 means full explosion but no sound.
 +
 +**Note:** If Destroy is called on SELF, the script will stop at that line. Any code after won't be executed.
 +
 +<color #ed1c24>Bug warning:</color> There is some issue when deleting a docked guppy or a guppy base, the Destroy function is called again on the next pair of numbers on the stack and can potentially destroy another unit! I recommend using the SafeDestroy function from the example when deleting guppies, strafers or bobmers just to be safe.
 === Examples === === Examples ===
-<code>+<code prpl>
 $targetX:0 $targetX:0
 $targetY:0 $targetY:0
Line 31: Line 35:
  SetCreeper(CurrentCoords <-payload)  SetCreeper(CurrentCoords <-payload)
 endif endif
 +
 +# Gets around the bug with guppies and works for other units as well
 +:SafeDestroy # uid mode -
 +    ->SD_Mode
 +    ->SD_Uid
 +    StackSize ->SD_Size # stack size without the arguments
 +    -1 -1 # extra pair of arguments to be consumed if needed
 +    <-SD_Uid <-SD_Mode Destroy # this may or may not consume the additinal arguments
 +    StackSize <-SD_Size do # remove extra arguments if not consumed by Destroy
 +        pop
 +    loop
 </code>  </code> 
crpl/docs/destroy.1412190170.txt.gz · Last modified: 2014/10/01 15:02 by 127.0.0.1