home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Revista CD Expert 42
/
CDGAMER42.iso
/
Egoboo
/
egoboo.exe
/
egoboo
/
modules
/
healer.mod
/
objects
/
bossnecr.obj
/
script.txt
< prev
next >
Wrap
Text File
|
2000-10-29
|
9KB
|
402 lines
//------------------------------------------------------------------------------
// Each hand has a spell usage list, which is stored in content. 8 bits
// for each hand, bits 0-7 for left, 8-15 for right.
// Bit 7 - 1 is useable, 0 is unuseable
// Bit 6 - 1 is one shot, 0 is unlimited uses
// Bit 5 - 1 is need a [HUMA] corpse, 0 is use anytime
// Bit 4 - \Charge time
// Bit 3 - /
// Bit 2 - \
// Bit 1 - Range
// Bit 0 - /
//------------------------------------------------------------------------------
// ZZ> Handle death by sending a message and other stuff
IfKilled
tmpargument = 2
tmpdistance = rand & 1023 + 10000
PlaySound
// Send messages
IfTargetIsOnHatedTeam
tmpargument = 0
Else
tmpargument = 1
SendMessageNear
// Drop goodies
tmpargument = 65535
DropMoney
// Make the character body
tmpargument = 45
SetBumpHeight
// Award quest experience
tmpargument = 100
tmpdistance = EXPQUEST
GiveExperienceToTargetTeam
// Finish it up
BeatModule
EnableExport
// Mark this module as beaten, hidden modules may open up
tmpargument = [BEAT]
AddIDSZ
// Fix the end text
ClearEndMessage
tmpargument = 3
AddEndMessage
// Order team to die
tmpdistance = [EVIL]
tmpargument = [UNDO]
OrderSpecialID
// Put out the eyes
DisaffirmCharacter
//------------------------------------------------------------------------------
// ZZ> Oops
IfHealed
tmpargument = 2
SendMessageNear
//------------------------------------------------------------------------------
// ZZ> Keep 'em guessin'
IfAttacked
tmpargument = rand & 1
tmpdistance = rand & 1023 + 10000
PlaySound
SetTargetToWhoeverAttacked
IfTargetIsOnHatedTeam
GetState
Else
SetTargetToOldTarget
IfStateIs1
GetState
Else
IfStateIs2
GetState
Else
// Teleport away...
tmpargument = 1
SetState
tmpargument = 20
SetTime
//------------------------------------------------------------------------------
IfBumped
IfStateIs1
GetState
Else
IfStateIs2
GetState
Else
// Teleport away...
tmpargument = 1
SetState
tmpargument = 0
SetTime
//------------------------------------------------------------------------------
// ZZ> For charging a spell...
IfStateIs10
// Left hand
IfTimeOut
// Release the spell?
tmpx = targetdistance - 128
GetContent
tmpy = tmpargument & 7 < 7
IfXIsLessThanY
// Distance is good...
tmpx = selfmana
tmpy = 256
IfXIsMoreThanY
// Is it one use?
tmpy = 64
tmpx = tmpargument & tmpy
IfXIsEqualToY
tmpargument = tmpargument + 128
SetContent
tmpargument = 0
SetState
Else
// Get more mana first
tmpargument = LATCHLEFT
PressLatchButton
Else
// Get closer first
tmpargument = LATCHLEFT
PressLatchButton
tmpx = targetx - selfx > 1 + selfx
tmpy = targety - selfy > 1 + selfy
ClearWaypoints
AddWaypoint
tmpargument = 10
SetTime
Else
// Keep charging
tmpargument = LATCHLEFT
PressLatchButton
tmpx = targetx - selfx > 1 + selfx
tmpy = targety - selfy > 1 + selfy
ClearWaypoints
AddWaypoint
IfStateIs11
// Right hand
IfTimeOut
// Release the spell?
tmpx = targetdistance - 128
GetContent
tmpy = tmpargument & 1792 > 1
IfXIsLessThanY
// Distance is good...
tmpx = selfmana
tmpy = 256
IfXIsMoreThanY
// Is it one use?
tmpy = 16384
tmpx = tmpargument & tmpy
IfXIsEqualToY
tmpargument = tmpargument + 32768
SetContent
tmpargument = 0
SetState
Else
// Get more mana first
tmpargument = LATCHRIGHT
PressLatchButton
Else
// Get closer first
tmpargument = LATCHRIGHT
PressLatchButton
tmpx = targetx - selfx > 1 + selfx
tmpy = targety - selfy > 1 + selfy
ClearWaypoints
AddWaypoint
tmpargument = 10
SetTime
Else
// Keep charging
tmpargument = LATCHRIGHT
PressLatchButton
tmpx = targetx - selfx > 1 + selfx
tmpy = targety - selfy > 1 + selfy
ClearWaypoints
AddWaypoint
//------------------------------------------------------------------------------
// ZZ> Find something to do...
IfTimeOut
CleanUp
IfStateIs15
// Fall through to normal state
tmpargument = 0
SetState
IfStateIs13
// Un-charged spell in right hand...
IfTargetIsOnHatedTeam
tmpx = targetdistance - 128
GetContent
tmpy = tmpargument & 1792 > 1
IfXIsLessThanY
// Distance is good...
IfFacingTarget
tmpargument = LATCHRIGHT
PressLatchButton
tmpargument = 15
SetState
tmpargument = rand & 15 + 20
SetTime
Else
tmpargument = 0
SetState
IfStateIs12
IfTargetIsOnHatedTeam
// Un-charged spell in left hand...
tmpx = targetdistance - 128
GetContent
tmpy = tmpargument & 7 < 7
IfXIsLessThanY
// Distance is good...
IfFacingTarget
tmpargument = LATCHLEFT
PressLatchButton
tmpargument = 15
SetState
tmpargument = rand & 15 + 20
SetTime
Else
tmpargument = 0
SetState
IfStateIs3
// Pick a spell to use on the enemy... Left or right
IfTargetIsOnHatedTeam
GetContent
tmpx = tmpargument & 32896
tmpy = 0
IfXIsEqualToY
// Neither hand is useable... Fall through to state 1
tmpargument = 1
SetState
Else
tmpy = 32896
IfXIsEqualToY
// Both hands are useable, so pick one... 0 or 8
tmpx = rand & 8
Else
// Figure out if it's left or right... 0 or 8
tmpx = tmpx > 12
tmpy = 0
tmpturn = 11 // Right hand state
IfXIsEqualToY
tmpturn = 10 // Left hand state
tmpargument = tmpargument > tmpx & 127
tmpy = 32
tmpx = tmpargument & tmpy
IfXIsEqualToY
// We need a [HUMA] corpse around...
tmpx = tmpargument // Save it...
tmpargument = [HUMA]
tmpdistance = 7 // Dead friends and enemies...
SetTargetToNearestBlahID
tmpargument = tmpx & 24 < 4
SetTime
tmpargument = tmpturn
SetState
Else
// Drop back to normal state
tmpargument = 0
SetState
Else
// Just set the state and time...
tmpargument = tmpargument & 24 < 4
SetTime
tmpx = tmpargument
tmpy = 0
IfXIsEqualToY
// Use states 12 and 13 for uncharged spells...
tmpturn = tmpturn + 2
tmpargument = tmpturn
SetState
IfStateIs2
// Halfway through a teleport
tmpargument = rand & 15 + 35
SetTime
tmpx = rand & 511 - 256 + selfx
tmpy = rand & 511 - 256 + selfy
Teleport
tmpx = rand & 511 - 256 + selfx
tmpy = rand & 511 - 256 + selfy
Teleport
tmpargument = 15
SetState
// Face the target
tmpx = targetx
tmpy = targety
ClearWaypoints
AddWaypoint
IfStateIs1
// Want to start a teleport
tmpargument = ACTIONMJ
DoAction
tmpargument = 2
SetState
tmpargument = 40 // Don't let 'em get hit out of it...
SetDamageTime
tmpargument = 16
SetTime
Else
// Try again in a bit...
tmpargument = 5
SetTime
IfStateIs0
tmpargument = 20
SetTime
tmpx = rand & 255
tmpy = 200
IfXIsMoreThanY
// Teleport...
tmpargument = 1
SetState
SetTime
Else
// Go after enemies
SetTargetToNearestEnemy
tmpargument = rand & 7 + 4
SetTime
tmpargument = 3
SetState
tmpx = targetx
tmpy = targety
Else
// Wander around
tmpargument = rand & 15 + 25
SetTime
tmpx = rand & 511 - 256 + selfspawnx
tmpy = rand & 511 - 256 + selfspawny
ClearWaypoints
AddWaypoint
//------------------------------------------------------------------------------
// ZZ> Put on some eyes
IfSpawned
tmpargument = 6
tmpdistance = 9
SpawnAttachedParticle
tmpdistance = 10
SpawnAttachedParticle
//------------------------------------------------------------------------------
End
//------------------------------------------------------------------------------