home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Revista CD Expert 42
/
CDGAMER42.iso
/
Egoboo
/
egoboo.exe
/
egoboo
/
modules
/
advent.mod
/
objects
/
trog.obj
/
script.txt
< prev
next >
Wrap
Text File
|
2000-05-26
|
4KB
|
107 lines
// ZZ> This function makes the character wanders around its enemy
IfCleanedUp // Respawn
RespawnCharacter //
IfKilled // This reduces the height of the char
tmpargument = 0 //
SendMessageNear //
tmpargument = 40 //
SetBumpSize //
tmpargument = 45 //
SetBumpHeight //
tmpargument = 65535 // Drop money
DropMoney //
tmpargument = 2 //
tmpdistance = rand & 4095 + 8000 //
PlaySound //
IfAttacked // Counter attack
SetTargetToWhoeverAttacked //
IfTargetIsOnHatedTeam //
BecomeLeader //
tmpargument = 1 // Enter combat mode
SetState //
Else //
SetTargetToOldTarget //
tmpargument = rand & 1 //
tmpdistance = rand & 4095 + 8000 //
PlaySound //
IfTargetKilled // Return to follow mode
tmpargument = 0 //
SetState //
IfBumped // Attack whoever it bumped
SetTargetToWhoeverBumped //
IfTargetIsOnHatedTeam // Make sure it's an enemy
IfHoldingMeleeWeapon // Got Weapon?
PressLatchButton //
Else // Scooch around friendly
tmpx = rand & 255 + targetx - 128 //
tmpy = rand & 255 + targety - 128 //
ClearWaypoints //
AddWaypoint //
SetTargetToOldTarget //
IfTimeOut // This is done every so often
SetTargetToNearbyEnemy // Look for enemies
tmpargument = 1 // Enter combat mode
SetState //
BecomeLeader //
tmpx = rand & 255 //
tmpy = 25 //
IfXIsLessThanY // Play a random grunt?
tmpargument = 3 //
tmpdistance = rand & 4095 + 9000 //
PlaySound //
IfStateIs0 // State 0 ( Follow )
tmpx = rand & 1023 - 512 + leaderx //
tmpy = rand & 1023 - 512 + leadery //
Else // State 1 ( Combat )
tmpx = targetdistance // Too far?
tmpy = 2000 //
IfXIsMoreThanY //
tmpargument = 0
SetState // Revert to follow mode
tmpx = selfx
tmpy = selfy
Else
tmpy = 150
IfXIsLessThanY
// Run away
tmpx = targetx
tmpy = targety
tmpturn = targetturnto + 32768
tmpdistance = 800
Compass
Else
tmpy = 0 // Unarmed...
IfHoldingMeleeWeapon // Got Weapon?
tmpy = 350
Else
IfHoldingRangedWeapon
tmpy = 800
IfXIsLessThanY
tmpx = 800
IfXIsEqualToY
// Ranged weapon, so lead the target
tmpx = targetspeedx * tmpx > 4 + targetx
tmpy = targetspeedy * tmpx > 4 + targety
IfFacingTarget
PressLatchButton
Else
// Melee weapon, so run around the target...
tmpx = rand & 511 - 256 + targetx
tmpy = rand & 511 - 256 + targety
IfFacingTarget
PressLatchButton
tmpx = targetx
tmpy = targety
Else
// Not close enough, so run at the target
tmpx = targetx
tmpy = targety
tmpturn = targetturnto
tmpdistance = 400
Compass
ClearWaypoints //
AddWaypoint //
tmpargument = rand & 15 + 10 // Wait a while and try again
SetTime //
End // Finished with this character