home *** CD-ROM | disk | FTP | other *** search
- #
- # deatchmatch.tcl
- #
- # Server side event handling in multiplayer deathmatch session.
- #
-
-
- # Lighthouse was destroyed
- on lighthouse_destroyed {
-
- puts "*** Lighthouse was destoyed"
-
- # Find destroyed lighthouse
- # Iterate through clans
- for {set i [/world/clans.gethead]} \
- {$i != "null"} \
- {set i [$i.getsucc]} {
-
- # Iterate through objects in clan
- for {set j [$i.gethead]} \
- {$j != "null"} \
- {set j [$j.getsucc]} {
-
- # Look for lighthouse
- if {[$j.isvehicleclass "concret.technical.static.building.towncenter"] == "true"} {
-
- if {([$j.getstate] == "explode") ||
- ([$j.getartefactmode] == "true")} {
-
- # kill Maennel
- set userclan [$j.getclan]
- set maennel [$userclan.getmaennel]
- if {$maennel != "null"} {
- $maennel.reduceenergy 100000
- }
-
- # Handle `explode' state
- set ID [$j.getmachineid]
-
- /world/session/$ID.setloosed "true"
-
- puts "*** Player `$ID' was killed. "
- }
- }
- }
- }
- }
-
-
- # Character was killed.
- on character_destroyed {
-
- puts "*** Character was killed"
-
- # Find killed character;
- # Iterate through clans
- for {set i [/world/clans.gethead]} \
- {$i != "null"} \
- {set i [$i.getsucc]} {
-
- # Iterate through objects in clan
- for {set j [$i.gethead]} \
- {$j != "null"} \
- {set j [$j.getsucc]} {
-
- # Look for character
- if {[$j.isvehicleclass "concret.technical.dynamic.maennel"] == "true"} {
-
- if {[$j.getstate] == "gameend"} {
-
- # Mark user as dead.
- set ID [$j.getmachineid]
-
- # /world/session/$ID.setloosed "true"
-
- puts "*** Player `$ID' was killed. "
- }
- }
- }
- }
- }
-
-
- # Game over! Find player who won!
- on game_over {
-
- puts "*** Game Over"
-
- # Find Client who won game
- for {set i [/world/session.gethead]} \
- {$i != "null"} \
- {set i [$i.getsucc]} {
-
- if {[$i.hasloosed] == "false"} {
- $i.setwon "true"
-
- puts "*** Player `$i' has won. "
- }
- }
- }
-