home *** CD-ROM | disk | FTP | other *** search
- IfSpawned
- // Decide which weapon to use
- IfHoldingRangedWeapon
- tmpargument = 0
- SetState
- Else
- tmpargument = 1
- SetState
- tmpargument = 2
- IfArmorIs
- // Sleeping
- tmpargument = 8
- SetState
- tmpargument = rand & 63 + 32
- SetTime
- tmpargument = ACTIONMK
- DoActionOverride
- KeepAction
- Else
- tmpargument = 100
- SetTime
-
-
- //------------------------------------------------------------------------------
- IfBumped
- SetTargetToWhoeverBumped
- IfStateIs8
- IfTargetIsOnHatedTeam
- // Bumping a sleeping Cobol... How rude!
- tmpargument = 8
- tmpdistance = rand & 2047 + 13000
- PlaySound
-
-
- tmpargument = 4
- SendMessageNear
- tmpargument = ACTIONMJ
- DoActionOverride
- UnkeepAction
- // Start combat
- tmpargument = 2
- IfHoldingMeleeWeapon
- tmpargument = 5
- SetState
- tmpargument = 0
- ChangeArmor
- tmpargument = 15
- SetTime
- Else
- // Jump over barriers, onto mounts
- IfTargetIsAlive
- IfTargetIsAPlatform
- // Jump over some stuff
- tmpargument = LATCHJUMP
- PressLatchButton
- IfTargetIsAMount
- // Jump onto mounts
- tmpx = targetx
- tmpy = targety
- ClearWaypoints
- AddWaypoint
-
- tmpargument = 30
- SetTime
- Else
- // Jump over corpses
- tmpargument = LATCHJUMP
- PressLatchButton
- SetTargetToOldTarget
-
-
- //------------------------------------------------------------------------------
- IfStateIs7
- // Blocking... Need to keep that button pressed
- IfTimeOut
- // Revert to combat state
- tmpargument = 5
- SetState
- // Attack now if possible
- GetContent
- tmpx = targetdistance
- tmpy = tmpargument
- IfXIsLessThanY
- IfHoldingMeleeWeapon
- PressLatchButton
- Else
- IfHoldingShield
- PressLatchButton
-
-
- //------------------------------------------------------------------------------
- IfKilled
- // Tell the players
- tmpargument = 0
- IfArmorIs
- // A normal Cobol
- tmpargument = rand & 2
- ChangeArmor
- tmpargument = 0
- IfTargetIsOnSameTeam
- tmpargument = 1
- SendMessageNear
- Else
- tmpargument = 1
- IfArmorIs
- // A Cobol Captain
- tmpargument = 2
- IfTargetIsOnSameTeam
- tmpargument = 3
- SendMessageNear
- // Give bonus points
- tmpargument = 10
- tmpdistance = EXPROLEPLAY
- GiveExperienceToTarget
-
-
-
-
- // Just to be sure
- tmpargument = ACTIONKA
- DoActionOverride
- KeepAction
-
-
- tmpargument = 1
- tmpdistance = rand & 2047 + 13000
- PlaySound
-
-
- // Drop goodies
- tmpargument = 65535
- DropMoney
-
-
- // Make the character body
- tmpargument = 40
- SetBumpHeight
-
-
- // Make the next part not happen...
- tmpargument = 50
- SetTime
-
-
-
- //------------------------------------------------------------------------------
- IfAttacked
- SetTargetToWhoeverAttacked
- IfStateIs8
- // A sleeping Cobol
- tmpargument = [DISA]
- IfTargetHasSkillID
- // This is what Rogues do best...
- tmpargument = 5
- Else
- // Just a normal player
- tmpargument = 6
- SendMessageNear
-
-
- // Give experience
- tmpargument = 30
- tmpdistance = EXPMURDER
- GiveExperienceToTarget
-
-
- // Do it
- SetTargetToSelf
- KillTarget
- Else
- IfTargetIsOnHatedTeam
- // Counter attack
- GetState
- tmpargument = tmpargument & 1 + 4 // Preserve even/odd
- SetState
-
- // Check for instant death
- tmpargument = [DISA]
- IfTargetHasSkillID
- // Allow Rogues to backstab
- GetDamageType
- tmpx = tmpargument
- tmpy = DAMAGEPOKE
- IfXIsEqualToY
- IfHitFromBehind
- tmpargument = 8
- SendMessageNear
-
- tmpargument = 30
- tmpdistance = EXPMURDER
- GiveExperienceToTarget
-
- // Do it
- tmpargument = 2
- ChangeArmor
- SetTargetToSelf
- KillTarget
- Else
- // Friendly fire, get out of the way
- tmpx = rand & 511 - 256 + selfx
- tmpy = rand & 511 - 256 + selfy
- ClearWaypoints
- AddWaypoint
- SetTargetToOldTarget
-
-
- // Tell everyone to charge
- tmpargument = 5
- IssueOrder
-
-
- tmpargument = rand & 1 + 2
- tmpdistance = rand & 2047 + 13000
- PlaySound
-
-
-
- //------------------------------------------------------------------------------
- IfTimeOut
- // Check if the current target is alive or not
- IfStateIs8
- GetState // NOP
- Else
- IfTargetIsAlive
- IfTargetIsOnHatedTeam
- GetState // NOP
- Else
- // Revert to target acquisition state ( Invisible enemy? Dismount? )
- GetState
- tmpargument = tmpargument & 1 // Retain even/odd
- SetState
- Else
- // Revert to target acquisition state
- GetState
- tmpargument = tmpargument & 1 // Retain even/odd
- SetState
-
-
- tmpargument = 100 // Default time... Shouldn't be needed
- IfSitting
- // Riding some type of animal...
- // Acquire a target
- SetTurnModeToVelocity
- SetTargetToNearestEnemy
- // Charge towards enemy
- tmpx = targetx
- tmpy = targety
- tmpturn = targetturnto
- tmpdistance = 300
- Compass
- ClearWaypoints
- AddWaypoint
-
-
-
- // Check for special mount attacks
- tmpx = targetdistance
- tmpy = 200
- IfXIsLessThanY
- tmpargument = [XFUN]
- SetOldTarget
- SetTargetToWhoeverIsHolding
- IfTargetHasAnyID
- tmpargument = LATCHRIGHT
- PressLatchButton
- SetTargetToOldTarget
- Else
- // Don't let the enemy jump over
- SetTargetToOldTarget
- tmpx = selfz
- tmpy = targetz - 40
- IfXIsLessThanY
- IfHoldingMeleeWeapon
- PressLatchButton
-
-
- tmpargument = rand & 15 + 15 // TIme
- Else
- // Guard the start position
- tmpx = rand & 511 - 256 + selfspawnx
- tmpy = rand & 511 - 256 + selfspawny
- ClearWaypoints
- AddWaypoint
- tmpargument = rand & 31 + 30 // TIme
- Else
- // Foot soldier...
- // Behave according to state
- IfStateIsOdd
- // Odd states are for melee weapons
- IfTargetIsAttacking
- IfHoldingShield
- // Is the enemy facing the character?
- tmpturn = selfturn - targetturn
- tmpx = tmpturn
- tmpy = 24768
- IfXIsMoreThanY
- tmpy = 40768
- IfXIsLessThanY
- // Defend
- PressLatchButton
- tmpargument = 7
- SetState
-
- // Tell everyone to attack while Cobol hides... Coward
- tmpargument = 5
- IssueOrder
- tmpargument = rand & 15 + 15 // Time
- IfStateIs3
- // Circle around the enemy
- SetTurnModeToWatchTarget
-
-
-
- tmpx = targetx
- tmpy = targety
- SetTargetToNearestFriend
- tmpdistance = 200
- tmpturn = targetdistance
- IfDistanceIsMoreThanTurn
- // The friend is close, so move away
- tmpturn = targetturnto + 32768
- tmpdistance = 400
- Compass
- // Make it look better
- tmpargument = ACTIONWB
- DoAction
- SetTargetToOldTarget
- tmpturn = targetturnto + 32768
- tmpdistance = 300
- Compass
- ClearWaypoints
- AddWaypoint
-
-
- // Randomly issue the battle cry
- tmpx = rand & 1023
- tmpy = 5
- IfXIsLessThanY
- tmpargument = 10
- tmpdistance = rand & 2047 + 13000
- PlaySound
- tmpargument = 5
- IssueOrder
-
-
- // Issue the battle cry if there's a threat
- tmpx = targetdistance
- tmpy = 250
- IfXIsLessThanY
- tmpargument = 5
- IssueOrder
- IfHoldingMeleeWeapon
- PressLatchButton
-
-
- tmpargument = rand & 15 + 10 // Time
- IfStateIs5
- // Randomly issue the retreat order
- tmpx = rand & 1023
- tmpy = 20
- IfXIsLessThanY
- tmpargument = 9
- tmpdistance = rand & 2047 + 13000
- PlaySound
- tmpargument = 3
- IssueOrder
-
-
-
- // Charge and attack the enemy
- GetContent // Desired range
- tmpx = targetdistance
- tmpy = tmpargument
- IfXIsLessThanY
- // Close enough to attack
- IfHoldingMeleeWeapon
- PressLatchButton
- // Circle up again
- tmpx = targetx
- tmpy = targety
- tmpturn = targetturnto + 32768
- tmpdistance = 600
- Compass
- ClearWaypoints
- AddWaypoint
- tmpargument = 3
- SetState
- tmpargument = rand & 15 + 40 // Time
- Else
- // Too far, so get closer
- tmpx = targetx
- tmpy = targety
- tmpturn = targetturnto
- IfHoldingMeleeWeapon
- // 1 = left, 2 = right
- tmpargument = tmpargument < 13 // 8192 or 16384
- tmpturn = tmpturn + tmpargument - 12288
- tmpdistance = 400
- Compass
- ClearWaypoints
- AddWaypoint
- tmpargument = rand & 15 + 8 // Time
- IfStateIs1
- // Rummage for a weapon
- IfHoldingMeleeWeapon
- // Acquire a target
- SetTurnModeToVelocity
- tmpdistance = 250000 // Square of distance to check
- SetTargetToDistantEnemy
- // Charge towards enemy
- tmpx = targetx
- tmpy = targety
- ClearWaypoints
- AddWaypoint
-
- // Next time, circle up
- tmpargument = 3
- SetState
- tmpargument = 20 // Time
- Else
- // Guard the start position
- tmpx = rand & 511 - 256 + selfspawnx
- tmpy = rand & 511 - 256 + selfspawny
- ClearWaypoints
- AddWaypoint
- tmpargument = rand & 15 + 30 // Time
- Else
- // Draw a new weapon
- tmpargument = LATCHPACKRIGHT
- PressLatchButton
- tmpargument = 15 // Time
- Else
- // Even states are for ranged weapons...
- IfStateIs8 // ...and sleeping
- // Sleepy Z's
- tmpx = selfx
- tmpy = selfy
- tmpdistance = selfz
- tmpargument = 6
- SpawnExactParticle
-
-
- // Snore...
- tmpargument = rand & 3 + 4
- tmpdistance = rand & 2047 + 15000
- PlaySound
-
-
- tmpargument = ACTIONMK
- DoAction
- tmpdistance = 160000 // Distance to check
- SetTargetToDistantEnemy
- IfTargetIsSneaking
- tmpargument = 100 // Time
- Else
- // Too Loud
- // Too close... Wake up
- tmpargument = 8
- tmpdistance = rand & 2047 + 13000
- PlaySound
-
-
- tmpargument = 4
- SendMessageNear
- tmpargument = ACTIONMJ
- DoActionOverride
- UnkeepAction
- // Start combat
- tmpargument = 2
- IfHoldingMeleeWeapon
- tmpargument = 5
- SetState
- tmpargument = 0
- ChangeArmor
- tmpargument = 30 // Time
- Else
- tmpargument = 100 // Time
- IfStateIs6
- // Decide whether to shoot again or not
- tmpy = 120
- tmpargument = 1
- IfArmorIs
- tmpy = 0 // Captains don't run away
- GetContent
- tmpx = targetdistance
- IfXIsLessThanY
- // Too close
- tmpargument = 0
- SetState
- Else
- // Fire again
- tmpy = tmpargument + 200
- IfXIsMoreThanY
- // Enemy is too far
- tmpargument = 0
- SetState
- Else
- // Fire again
- tmpargument = 4
- SetState
- // Time needn't be set here
- IfStateIs4
- // Fire at the enemy
- tmpargument = 6
- SetState
-
-
- // Don't shoot if friends are too close
- SetTargetToNearestFriend
- tmpx = targetdistance
- tmpy = 00
- IfXIsLessThanY
- // Keep distance from friends
- tmpx = targetx
- tmpy = targety
- tmpturn = rand & 8191 + 28000 + targetturnto
- tmpdistance = 300
- Compass
- ClearWaypoints
- AddWaypoint
- Else
- // Safe to fire
- SetTargetToOldTarget
- IfHoldingRangedWeapon
- SetTurnModeToWatchTarget
- IfFacingTarget
- PressLatchButton
- Else
- // // Reload the weapon...
- // SetOldTarget
- // SetTargetToSelf
- // tmpargument = [WOOD]
- // RestockTargetAmmoIDAll
- // SetTargetToOldTarget
-
-
- // Draw a new weapon
- DropWeapons
- // Go to close range mode
- tmpargument = 100
- SetContent
- // Now using melee weapons
- tmpargument = 1
- SetState
- Else
- // Safe to fire
- IfHoldingRangedWeapon
- IfFacingTarget
- PressLatchButton
- Else
- // // Reload the weapon...
- // SetOldTarget
- // SetTargetToSelf
- // tmpargument = [WOOD]
- // RestockTargetAmmoIDAll
- // SetTargetToOldTarget
-
-
- // Draw a new weapon
- DropWeapons
- // Go to close range mode
- tmpargument = 100
- SetContent
- // Now using melee weapons
- tmpargument = 1
- SetState
-
-
-
- tmpargument = rand & 7 + 10 // Time before next check
- IfStateIs2
- // Get into firing position
- SetTurnModeToVelocity
- tmpx = targetx
- tmpy = targety
-
-
- SetTargetToNearestFriend
- tmpx = targetdistance
- tmpy = 100
- IfXIsLessThanY
- // Keep distance from friends
- tmpx = targetx
- tmpy = targety
- SetTargetToOldTarget
- Else
- SetTargetToOldTarget
- tmpx = targetx
- tmpy = targety
- // Keep running away
- tmpturn = xyturnto + 32768
- GetContent
- tmpdistance = tmpargument // Desired range
- Compass
- ClearWaypoints
- AddWaypoint
-
-
-
- // Check distance to target
- tmpx = targetx - selfx
- tmpy = targety - selfy
- tmpx = xydistance // Pythag thing... targetdistance isn't as good
- GetContent
- tmpy = tmpargument - 300 // The desired range ( MIN )
- tmpargument = rand & 15 + 15 // Default time
- IfXIsMoreThanY
- tmpy = tmpy + 600 // The desired range ( MAX )
- IfXIsLessThanY
- // Target is in range, so switch to fire state
- tmpargument = 4
- SetState
- SetTurnModeToWatchTarget
- tmpargument = 30 // Time before shooting
- IfStateIs0
- // Acquire a target
- SetTurnModeToVelocity
- SetTargetToNearestEnemy
- // Move away from enemy
- tmpx = targetx
- tmpy = targety
- tmpturn = targetturnto + 32768
- tmpdistance = 650
- Compass
- ClearWaypoints
- AddWaypoint
-
- // Go to position state
- tmpargument = 2
- SetState
- tmpargument = 50 // Time
- Else
- // Guard the start position
- tmpx = selfspawnx
- tmpy = selfspawny
- ClearWaypoints
- AddWaypoint
- tmpargument = rand & 15 + 30 // Time
-
-
- // tmpargument is set above
- SetTime
-
-
-
- //------------------------------------------------------------------------------
- IfOrdered
- // Someone said to wake up
- IfStateIs8
- tmpx = selforder
- tmpy = [WAKE]
- IfXIsEqualToY
- // Always awaken
- tmpx = 0
- Else
- // Check distance to enemy
- tmpx = 9999
- SetTargetToNearestEnemy
- tmpx = targetdistance
- tmpy = 800
- IfXIsLessThanY
- // Wake up
- tmpargument = 8
- tmpdistance = rand & 2047 + 13000
- PlaySound
-
-
- tmpargument = 4
- SendMessageNear
- tmpargument = ACTIONMJ
- DoActionOverride
- UnkeepAction
- // Start combat
- tmpargument = 2
- IfHoldingMeleeWeapon
- tmpargument = 5
- SetState
- tmpargument = 0
- ChangeArmor
- tmpargument = 15
- SetTime
- Else
- // Ignore wake orders...
- tmpx = selforder
- tmpy = [WAKE]
- IfXIsEqualToY
- GetState // NOP
- Else
- // Someone said to attack ( hand to hand )
- IfStateIsOdd
- IfStateIs3
- tmpargument = 5
- SetState
- IfStateIs5
- tmpargument = selforder
- SetState
- tmpargument = rand & 7
- SetTime
-
-
- //------------------------------------------------------------------------------
- IfHealed
- tmpargument = 7
- SendMessageNear
-
-
-
- //------------------------------------------------------------------------------
- End
- //------------------------------------------------------------------------------
-