<- CRPL reference <- Unit Commands

Destroy

Arguments Result Notation
Unit UID to Destroy, Explosion Mode (0,1,2,3) n1 n2 –

Description

Destroys the specified unit. WARNING: ENSURE YOU HAVE SAVED THE MAP BEFORE CALLING THIS! This call will destroy the unit! 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.

Note: If Destroy is called on SELF, the script will stop at that line. Any code after won't be executed.

Bug warning: 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

$targetX:0
$targetY:0
$speed:7.0
$payload:20
 
once
	SetUnitAttribute(self CONST_CREATEPZ false)
	QueueMove(<-targetX <-targetY <-speed)
endonce
 
if (GetQueuedMoveCount eq0)
	#Done
	Destroy(self 2)
 
	SetCreeper(CurrentCoords <-payload)
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