Im not sure if its the .bsp or the scr i created. Heres the log file.
Code: Select all
sv_maxclients will be changed upon restarting.
g_gametype will be changed upon restarting.
g_gametypestring will be changed upon restarting.
cheats will be changed upon restarting.
------ Server Initialization ------
Server: obj/obj_st_floretes_3
Called FadeSound with: 0.000000
Called FadeSound with: 0.000000
------- S_StopAllSounds (stop music) -------
------- S_StopAllSounds Complete-------
------- S_StopAllSounds (stop music) -------
------- S_StopAllSounds Complete-------
Called FadeSound with: 0.000000
Setting up Shaders
UI_DrawConnect called
^~^~^ Add the following line to the *_precache.scr map script:
cache models/emitters/wider_black_tall.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/emitters/generic_spark.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/weapons/mp44.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/weapons/m1_garand.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/miscobj/coffee_kettle.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/corona_red.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/statweapons/flak88base.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/emitters/firesmoke.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/statweapons/flak88turret.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/items/pulse_explosive.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/animate/vehicle_german_opeltruckgreen.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/lights/lightbulb_caged_red.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/lights/lightbulb_caged_red-lit.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/dummy.tik
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/allied_oss.skc' or 'models/player/allied_oss.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/allied_oss_fps.skc' or 'models/player/allied_oss_fps.skc'
^~^~^ Box data is corrupted for 'models/human/allied_pilot/allied_pilot.skd'
^~^~^ Morph targets data is corrupted for 'models/human/allied_pilot/allied_pilot.skd'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_elite_gestapo.skc' or 'models/player/german_elite_gestapo.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_elite_gestapo_fps.skc' or 'models/player/german_elite_gestapo_fps.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_winter1.skc' or 'models/player/german_winter1.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_winter1_fps.skc' or 'models/player/german_winter1_fps.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_winter2.skc' or 'models/player/german_winter2.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_winter2_fps.skc' or 'models/player/german_winter2_fps.skc'
------ Server Initialization Complete ------ 5.57 seconds
Called FadeSound with: 0.000000
------- Sound Begin Registration -------
------- S_StopAllSounds (stop music) -------
------- S_StopAllSounds Complete-------
------- Sound Begin Registration Complete -------
-----------PARSING 'stf3_sound.scr'------------
Any SetCurrentTiki errors means that tiki wasn't prefetched and tiki-specific sounds for it won't work. To fix prefetch the tiki. Ignore if you don't use that tiki on this level.
^~^~^ Event 'local.master' does not exist.
^~^~^ Failed execution of event for class 'ClientGameCommandManager'
^~^~^ Event 'local.master' does not exist.
^~^~^ Failed execution of event for class 'ClientGameCommandManager'
^~^~^ Event 'local.master' does not exist.
^~^~^ Failed execution of event for class 'ClientGameCommandManager'
^~^~^ Event 'local.master' does not exist.
^~^~^ Failed execution of event for class 'ClientGameCommandManager'
Parse/Load time: 0.148000 seconds.
-------------PARSING 'stf3_sound.scr' DONE---------------
-----------PARSING 'uberdialog.scr'------------
Any SetCurrentTiki errors means that tiki wasn't prefetched and tiki-specific sounds for it won't work. To fix prefetch the tiki. Ignore if you don't use that tiki on this level.
Parse/Load time: 0.337000 seconds.
-------------PARSING 'uberdialog.scr' DONE---------------
-----------PARSING 'ubersound.scr'------------
Any SetCurrentTiki errors means that tiki wasn't prefetched and tiki-specific sounds for it won't work. To fix prefetch the tiki. Ignore if you don't use that tiki on this level.
Parse/Load time: 3.014000 seconds.
-------------PARSING 'ubersound.scr' DONE---------------
stitched 0 LoD cracks
...loaded 7102 faces, 41 meshes, 0 trisurfs, 0 flares
R_LevelMarksLoad: maps/obj/obj_st_floretes_3.dcl not found
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/allied_oss.skc' or 'models/player/allied_oss.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/allied_oss_fps.skc' or 'models/player/allied_oss_fps.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_elite_gestapo.skc' or 'models/player/german_elite_gestapo.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_elite_gestapo_fps.skc' or 'models/player/german_elite_gestapo_fps.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_winter1.skc' or 'models/player/german_winter1.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_winter1_fps.skc' or 'models/player/german_winter1_fps.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_winter2.skc' or 'models/player/german_winter2.skc'
SkeletorCacheFileCallback: Could not open binary file 'newanim/models/player/german_winter2_fps.skc' or 'models/player/german_winter2_fps.skc'
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_paper_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_paper_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_wood_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_wood_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_metal_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_metal_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_stone_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_stone_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_dirt_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_dirt_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_grass_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_grass_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_mud_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_mud_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_water_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_water_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_glass_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_glass_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_sand_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_sand_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_foliage_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_foliage_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_snow_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_snow_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_carpet_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_carpet_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_human_uniform_lite.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bh_human_uniform_hard.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/water_trail_bubble.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_base.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bazookaexp_base.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/heavyshellexp_base.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/tankexp_base.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_paper.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_wood.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_metal.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_stone.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_dirt.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_grass.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_mud.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_water.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_gravel.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_sand.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_foliage.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_snow.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/grenexp_carpet.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/heavyshellexp_dirt.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/heavyshellexp_stone.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/heavyshellexp_snow.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/tankexp_dirt.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/tankexp_stone.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/tankexp_snow.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bazookaexp_dirt.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bazookaexp_stone.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/bazookaexp_snow.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/water_ripple_still.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/water_ripple_moving.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/barrel_oil_leak_big.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/barrel_oil_leak_medium.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/barrel_oil_leak_small.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/barrel_oil_leak_splat.tik
^~^~^ Add the following line to the *_precache.scr map script:
cache models/fx/barrelCode: Select all
//// Saint Floretes 3
//// ARCHITECTURE: FIVEBOY
//// SCRIPTING:.map men
main:
setcvar "g_obj_alliedtext1" "Destory the gun"
setcvar "g_obj_alliedtext2" "ON IT"
setcvar "g_obj_alliedtext3" ""
setcvar "g_obj_axistext1" "Prevent Allies from"
setcvar "g_obj_axistext2" "destroying the Flak88"
setcvar "g_obj_axistext3" "Viel Spass"
setcvar "g_scoreboardpic" "obj_st_floretes_3"
local.master = spawn ScriptMaster
local.master aliascache crossing_bell sound/bridge/xing3.wav soundparms 1.0 0.0 1.0 0.0 1024 6000 auto loaded maps "m dm moh obj "
local.master aliascache bridge_open sound/bridge/Fence_Open.wav soundparms 1.0 0.0 1.0 0.0 1024 6000 auto loaded maps "m dm moh obj "
local.master aliascache bridge_open2 sound/bridge/Mec_GeneratorRun_01.wav soundparms 1.0 0.0 1.0 0.0 1024 6000 auto loaded maps "m dm moh obj "
local.master aliascache bridge_open3 sound/bridge/Gate_Metal_Locked.wav soundparms 1.0 0.0 1.0 0.0 1024 6000 auto loaded maps "m dm moh obj "
///////////////////////
level waitTill prespawn
///////////////////////
//Precache Dm Stuff
exec global/DMprecache.scr
level.script = maps/obj/obj_st_floretes_3.scr
exec global/ambient.scr mohdm4
thread global/exploder.scr::main // Initialize the exploder subsystem
exec global/ai.scr
exec global/door_locked.scr::lock
$bridge2 bind $bridge1
thread truckride
thread bridge
thread red_light
thread elevator_prep
thread upper_button_pushed
thread mid_button_pushed
thread lower_button_pushed
thread force_updoors
thread force_mddoors
thread force_dndoors
thread fifisetup
// prep
$faketruck_model anim idlelights
$faketruck_collision bind $faketruck_model
$wm_fire2 anim stop
$wake_left anim start
$wake_right anim start
level.elipos = 1
level.rdoorpos = 0
/////////////////////
level waittill spawn
////////////////////
level.bomb_damage = 200
level.bomb_explosion_radius = 640
level.defusing_team = "axis"
level.planting_team = "allies"
level.targets_to_destroy = 1
level.dmrespawning = 0 // 1 or 0
level.dmroundlimit = 5 // round time limit in minutes
level.clockside = axis // set to axis, allies, kills, or draw
level waittill roundstart
$flak88_explosive1 thread global/obj_dm.scr::bomb_thinker
$flak88_explosive1 thread axis_win_timer
thread allies_win_bomb
end
//*** --------------------------------------------
//*** "Axis Victory"
//*** --------------------------------------------
axis_win_timer:
level waittill axiswin
end
//*** --------------------------------------------
//*** "Allied Victory"
//*** --------------------------------------------
allies_win_bomb:
while(level.targets_destroyed < level.targets_to_destroy)
waitframe
teamwin allies
end
truckride:
wait 2
$faketruck_model playsound m4l3_truck1
$faketruck_model followpath $faketruck_entrypath
$faketruck_model waitmove
$faketruck_model loopsound m4l2_truckidle
wait 2
$faketruck_model stoploopsound
end
thread bridge
end
bridge:
$bridge_trigger waittill trigger
$boom loopsound crossing_bell
wait 15
$boom time 6
$boom rotatezup 90
$boom waitmove
wait 6
$bridge1 playsound bridge_open
$bridge1 wait 0.1
$bridge1 loopsound bridge_open2
$bridge1 time 20
$bridge1 rotatexup 50
$bridge1 moveto $bridge_way1
$bridge1 waitmove
$bridge1 stoploopsound bridge_open2
$bridge1 playsound bridge_open3
wait 20
//$bridge1 playsound bridge_open
$bridge1 loopsound bridge_open2
$bridge1 time 20
$bridge1 rotatexdown 50
$bridge1 moveto $bridge_way2
$bridge1 waitmove
$bridge1 stoploopsound bridge_open2
$bridge1 playsound bridge_open3
wait 3
$boom time 6
$boom rotatezdown 90
$boom stoploopsound crossing_bell
$boom waitmove
goto bridge
end
red_light:
$lh_red_light show
$lh_clight_on show
$lh_clight_off hide
$lh_dlight light 1 .2 .1 80
wait 2
$lh_red_light hide
$lh_clight_on hide
$lh_clight_off show
$lh_dlight light 0 0 0 0
wait 2
goto red_light
end
//----------------------------------------------------------->
// Three Story Elevator
//----------------------------------------------------------->
elevator_prep:
$elevator_button_up bind $elevator // Attaches the trigger to the elevator so it moves with it.
$elevator_button_dn bind $elevator // Attaches the trigger to the elevator so it moves with it.
$elevator_door_rt bind $elevator // makes door move with the elevator.
$elevator_door_lt bind $elevator
$elevator_hatch moveWest 384 // replaces hatch moved for lighting
$elevator_hatch waitmove
$elevator_hatch rotateXdown 75 //closes the hatch
$elevator_hatch move
$elevator_hatch_trigger bind $elevator
$elevator_hatch bind $elevator
$elevator speed 64 // sets the elevator move speed, 64 units per second in this case
$lowerdoor_rt speed 48
$lowerdoor_lt speed 48
$mid_door_rt speed 48
$mid_door_lt speed 48
$upperdoor_rt speed 48
$upperdoor_lt speed 48
$elevator_door_lt speed 45
$elevator_door_rt speed 45
$elevator_hatch time 2.5 // speed does not work for rotating objects
$floor_id_1 time 4
$floor_id_2 time 4
$floor_id_3 time 4
thread elevator_standby_up
thread elevator_standby_down
thread escape_hatch
end
lower_button_pushed:
$lower_button waittill trigger
thread triggers_off
if (level.elipos == 0) // If elevator at the top, use this thread.
{
thread indicator_move_down2
$elevator moveto $way_floor1
$elevator loopsound lighthouse_run
$elevator waitmove // wait till the elevator has completed the move before doing anything else
$elevator loopsound lighthouse_run wait // stops the sound
$elevator playsound snd_ping
wait 1
thread lower_doors_cycle
level.elipos = 1
wait 10
thread triggers_on
goto lower_button_pushed
}
else
if (level.elipos == 2) // If elevator is midway, use this thread.
{
thread indicator_move_down
$elevator moveto $way_floor1
$elevator loopsound lighthouse_run
$elevator waitmove // wait till the elevator has completed the move before doing anything else
$elevator loopsound lighthouse_run wait // stops the sound
$elevator playsound snd_ping
wait 1
thread lower_doors_cycle
level.elipos = 1
wait 10
thread triggers_on
goto lower_button_pushed
}
else
if (level.elipos == 1) // If elevator at the botom, use this thread.
{
thread lower_doors_cycle
wait 10
thread triggers_on
goto lower_button_pushed
}
end
mid_button_pushed:
$mid_button waittill trigger
thread triggers_off
if (level.elipos == 0) // If elevator at the top, use this thread.
{
thread indicator_move_down
$elevator moveto $way_floor2
$elevator loopsound lighthouse_run
$elevator waitmove // wait till the elevator has completed the move before doing anything else
$elevator loopsound lighthouse_run wait // stops the sound
$elevator playsound snd_ping
wait 1
thread mid_doors_cycle
level.elipos = 2
wait 10
thread triggers_on
goto mid_button_pushed
}
else
if (level.elipos == 2) // If elevator at the top, use this thread.
{
thread mid_doors_cycle
wait 10
thread triggers_on
goto mid_button_pushed
}
else
if (level.elipos == 1) // If elevator at the top, use this thread.
{
thread indicator_move_up
$elevator moveto $way_floor2
$elevator loopsound lighthouse_run
$elevator waitmove // wait till the elevator has completed the move before doing anything else
$elevator loopsound lighthouse_run wait // stops the sound
$elevator playsound snd_ping
wait 1
thread mid_doors_cycle
level.elipos = 2
wait 10
thread triggers_on
goto mid_button_pushed
}
end
upper_button_pushed:
$upper_button waittill trigger
thread triggers_off
if (level.elipos == 2) // If elevator is midway, use this thread.
{
thread indicator_move_up
$elevator moveto $way_floor0
$elevator loopsound lighthouse_run
$elevator waitmove // wait till the elevator has completed the move before doing anything else
$elevator loopsound lighthouse_run wait // stops the sound
$elevator playsound snd_ping
wait 1
thread upper_doors_cycle
level.elipos = 0
wait 10
thread triggers_on
goto upper_button_pushed
}
else
if (level.elipos == 1) // If elevator at the bottom, use this thread.
{
thread indicator_move_up2
$elevator moveto $way_floor0
$elevator loopsound lighthouse_run
$elevator waitmove // wait till the elevator has completed the move before doing anything else
$elevator loopsound lighthouse_run wait // stops the sound
$elevator playsound snd_ping
wait 1
thread upper_doors_cycle
level.elipos = 0
wait 10
thread triggers_on
goto upper_button_pushed
}
else
if (level.elipos == 0) // If elevator at the top, use this thread.
{
thread upper_doors_cycle
wait 10
thread triggers_on
goto upper_button_pushed
}
end
lower_doors_cycle:
thread triggers_off
$elevator_door_rt moveNorth 48 // open
$elevator_door_rt move
$elevator_door_lt moveSouth 48
$elevator_door_lt move
$elevator playsound lighthouse_lever
wait .1
$lowerdoor_rt moveNorth 48 // open
$lowerdoor_rt move
$lowerdoor_lt moveSouth 48
$lowerdoor_lt move
$elevator playsound lighthouse_lever
wait 10
$lowerdoor_rt moveSouth 48 // close
$lowerdoor_rt move
$lowerdoor_lt moveNorth 48
$lowerdoor_lt move
$elevator playsound lighthouse_lever
wait .1
$elevator_door_rt moveSouth 48 // close
$elevator_door_rt move
$elevator_door_lt moveNorth 48
$elevator playsound lighthouse_lever
$elevator_door_lt waitmove
thread triggers_on
goto lower_button_pushed
end
mid_doors_cycle:
thread triggers_off
$elevator_door_rt moveNorth 48 // open
$elevator_door_rt move
$elevator_door_lt moveSouth 48
$elevator_door_lt move
$elevator playsound lighthouse_lever
wait .1
$mid_door_rt moveNorth 48 // open
$mid_door_rt move
$mid_door_lt moveSouth 48
$mid_door_lt move
$elevator playsound lighthouse_lever
wait 10
$mid_door_rt moveSouth 48 // close
$mid_door_rt move
$mid_door_lt moveNorth 48
$mid_door_lt move
$elevator playsound lighthouse_lever
wait .1
$elevator_door_rt moveSouth 48 // close
$elevator_door_rt move
$elevator_door_lt moveNorth 48
$elevator playsound lighthouse_lever
$elevator_door_lt waitmove
thread triggers_on
goto mid_button_pushed
end
upper_doors_cycle:
thread triggers_off
$elevator_door_rt moveNorth 48 // open
$elevator_door_rt move
$elevator_door_lt moveSouth 48
$elevator_door_lt move
$elevator playsound lighthouse_lever
wait .1
$upperdoor_rt moveNorth 48 // open
$upperdoor_rt move
$upperdoor_lt moveSouth 48
$upperdoor_lt move
$elevator playsound lighthouse_lever
wait 10
$upperdoor_rt moveSouth 48 // close
$upperdoor_rt move
$upperdoor_lt moveNorth 48
$upperdoor_lt move
$elevator playsound lighthouse_lever
wait .1
$elevator_door_rt moveSouth 48 // close
$elevator_door_rt move
$elevator_door_lt moveNorth 48
$elevator playsound lighthouse_lever
$elevator_door_lt waitmove
thread triggers_on
goto upper_button_pushed
end
elevator_standby_up:
$elevator_button_up waittill trigger
thread triggers_off
if (level.elipos == 0) // If elevator at the top, use this thread.
{
wait 1
thread upper_doors_cycle
wait 10
thread triggers_on
goto elevator_standby_up
}
else
if (level.elipos == 2) // If elevator is mid way, use this thread.
{
$elevator moveto $way_floor0
$elevator loopsound lighthouse_run
thread indicator_move_up
$elevator waitmove // wait till the elevator has completed the move before doing anything else.
$elevator loopsound lighthouse_run wait // stops the sound
$elevator playsound snd_ping
wait 1
thread upper_doors_cycle
level.elipos = 0
wait 10
thread triggers_on
goto elevator_standby_up
}
else
if (level.elipos == 1) // if elevator state is at the bottom, use this thread.
{
$elevator moveto $way_floor2
$elevator loopsound lighthouse_run
thread indicator_move_up
$elevator waitmove // wait till the elevator has completed the move before doing anything else.
$elevator loopsound lighthouse_run wait // stops the sound
$elevator playsound snd_ping
wait 1
thread mid_doors_cycle
level.elipos = 2
wait 10
thread triggers_on
goto elevator_standby_up
}
end
elevator_standby_down:
$elevator_button_dn waittill trigger
thread triggers_off
if (level.elipos == 0) // If elevator at the top, use this thread.
{
$elevator moveto $way_floor2
$elevator loopsound lighthouse_run
thread indicator_move_down
$elevator waitmove // wait till the elevator has completed the move before doing anything else.
$elevator loopsound lighthouse_run wait // stops the sound
$elevator playsound snd_ping
wait 1
thread mid_doors_cycle
level.elipos = 2
wait 10
thread triggers_on
goto elevator_standby_down
}
else
if (level.elipos == 2) // If elevator is mid way, use this thread.
{
$elevator moveto $way_floor1
$elevator loopsound lighthouse_run
thread indicator_move_down
$elevator waitmove // wait till the elevator has completed the move before doing anything else.
$elevator loopsound lighthouse_run wait // stops the sound
$elevator playsound snd_ping
wait 1
thread lower_doors_cycle
level.elipos = 1
wait 10
thread triggers_on
goto elevator_standby_down
}
else
if (level.elipos == 1) // if elevator state is at the bottom, use this thread.
{
wait 1
thread lower_doors_cycle
wait 10
thread triggers_on
goto elevator_standby_down
}
end
escape_hatch:
$elevator_hatch_trigger waittill trigger
$elevator_hatch rotateXup 75
$elevator_hatch playsound lighthouse_lever
$elevator_hatch waitmove
wait 20
$elevator_hatch rotateXdown 75
$elevator_hatch playsound lighthouse_lever
$elevator_hatch waitmove
goto escape_hatch
end
indicator_move_up:
$floor_id_1 rotateZup -90
$floor_id_1 move
$floor_id_2 rotateZup -90
$floor_id_2 move
$floor_id_3 rotateZup -90
$floor_id_3 move
end
indicator_move_up2:
$floor_id_1 time 8
$floor_id_2 time 8
$floor_id_3 time 8
$floor_id_1 rotateZup -180
$floor_id_1 move
$floor_id_2 rotateZup -180
$floor_id_2 move
$floor_id_3 rotateZup -180
$floor_id_3 move
$floor_id_1 time 4
$floor_id_2 time 4
$floor_id_3 time 4
end
indicator_move_down:
$floor_id_1 rotateZup 90
$floor_id_1 move
$floor_id_2 rotateZup 90
$floor_id_2 move
$floor_id_3 rotateZup 90
$floor_id_3 move
end
indicator_move_down2:
$floor_id_1 time 8
$floor_id_2 time 8
$floor_id_3 time 8
$floor_id_1 rotateZup 180
$floor_id_1 move
$floor_id_2 rotateZup 180
$floor_id_2 move
$floor_id_3 rotateZup 180
$floor_id_3 move
$floor_id_1 time 4
$floor_id_2 time 4
$floor_id_3 time 4
end
triggers_off:
$elevator_button_up nottriggerable // No triggers work while elevator is moving or doors are open.
$elevator_button_dn nottriggerable
$upper_button nottriggerable
$mid_button nottriggerable
$lower_button nottriggerable
$force_upper nottriggerable
$force_mid nottriggerable
$force_lower nottriggerable
end
triggers_on:
$elevator_button_up triggerable // All triggers work when elevator is at rest and doors are closed.
$elevator_button_dn triggerable
$upper_button triggerable
$mid_button triggerable
$lower_button triggerable
$force_upper triggerable
$force_mid triggerable
$force_lower triggerable
end
force_updoors:
$force_upper waittill trigger
if (level.elipos == 0) // If elevator is at the top, use this thread.
{
thread upper_doors_cycle
wait 10
goto force_updoors
}
else
thread triggers_off
$upperdoor_rt moveNorth 48 // open
$upperdoor_rt move
$upperdoor_lt moveSouth 48
$upperdoor_lt move
$upperdoor_rt playsound lighthouse_lever
wait 10
$upperdoor_rt moveSouth 48 // close
$upperdoor_rt move
$upperdoor_lt moveNorth 48
$upperdoor_lt playsound lighthouse_lever
$upperdoor_lt waitmove
thread triggers_on
goto force_updoors
end
force_mddoors:
$force_mid waittill trigger
if (level.elipos == 2) // If elevator is mid way, use this thread.
{
thread mid_doors_cycle
wait 10
goto force_mddoors
}
else
thread triggers_off
$mid_door_rt moveNorth 48 // open
$mid_door_rt move
$mid_door_lt moveSouth 48
$mid_door_lt move
$mid_door_rt playsound lighthouse_lever
wait 10
$mid_door_rt moveSouth 48 // close
$mid_door_rt move
$mid_door_lt moveNorth 48
$mid_door_lt playsound lighthouse_lever
$mid_door_lt waitmove
thread triggers_on
goto force_mddoors
end
force_dndoors:
$force_lower waittill trigger
if (level.elipos == 1) // If elevator is mid way, use this thread.
{
thread lower_doors_cycle
wait 10
goto force_dndoors
}
else
thread triggers_off
$lowerdoor_rt moveNorth 48 // open
$lowerdoor_rt move
$lowerdoor_lt moveSouth 48
$lowerdoor_lt move
$lowerdoor_rt playsound lighthouse_lever
wait 10
$lowerdoor_rt moveSouth 48 // close
$lowerdoor_rt move
$lowerdoor_lt moveNorth 48
$lowerdoor_lt playsound lighthouse_lever
$lowerdoor_lt waitmove
thread triggers_on
goto force_dndoors
end
fifisetup:
thread fifi-triggersetup
level.spawneddogs = 0
level.aggressive = 0
if ($dogpos == NULL)
{
level.dogposs = 0
println "*** ERROR no spawnpoints - "
println "Make spawnpoints with script_origins"
println "with $targetname/dogpos"
}
else
{
level.dogposs = $dogpos.size
}
if (level.dogposs > 0)
{
level.dogpos = exec global/makearray.scr $dogpos
}
//local.origin1 = (0 80 17)
println " fifi inititialized"
while (1)
//iprintlnbold "fifi setup while-loop"
{
println "fifi idle loop "
if (level.spawneddogs < 1)
{
level.aggressive = 0
if ( randomint (20) < 1)
{
iprintlnbold "Warning: Fifi is hungry"
level.fifihungry = 1
}
//iprintlnbold "No fifi's - now spawning"
wait 5
local.ent = spawn animal/german_shepherd.tik "targetname" "spawned_dog"
local.r = randomint ($dogpos.size) + 1
println "local.r=" local.r
local.ent.origin = ($dogpos[local.r].origin)
local.ent.angle = ($dogpos[local.r].angle)
local.ent.health = 10000000
local.ent.sound_awareness = 100
local.ent.noticescale = 50
local.ent.fov = 180
local.ent.hearing = 1600
local.ent.accuracy = 100
local.ent.sight = 4000
local.ent.leash = 10000
if (level.fifihungry == 1)
local.ent.health += 100
level.spawneddogs++
level.dog = local.ent
//iprintlnbold level.dog
println "fifi spawned waiting for victim - still in mainloop sapwnddogs>0"
println "Fifi spawned - triggered victim = " local.victim.origin
println "Fifi spawned waiting for trigger - subloop halted"
local.ent thread fifi-die
//$fifitrigger waittill trigger
//println "Fifi spawned - triggered"
//println "Fifi awake - triggered victim = " local.victim.origin
//local.ent thread fifi-attack
}
wait 15
}
end
fifi-triggersetup:
for (local.i = 1 ; local.i <= $fifitrigger.size ; local.i ++)
{
println "*********************" local.i
$fifitrigger[local.i] thread fifiwaittrigger
}
end
fifiwaittrigger:
while (1)
{
//iprintlnbold "fifiwaittrigger loop"
local.self waittill trigger
//iprintlnbold "triggered"
if (level.spawneddogs > 0 && level.aggressive < 1 )
{
//iprintlnbold "triggered aggressive"
level.dog thread fifi-attack
}
wait 15
}
end
fifi-attack:
level.aggressive = 1
self.enemy = parm.other
self forceactivate
while (isalive self)
{
self thread fifi-bite
wait .1
}
end
fifi-die:
println "deadthread waiting..."
self waittill death
//iprintlnbold "fifi died aggressive = 0 "
level.aggressive = 0
level.spawneddogs--
println "Fifi died - spawnddog should be zero"
wait 5
self delete
println "Dead Fifi removed from thread"
end
fifi-bite:
if (isalive self.enemy == 1)
{
if ( self istouching self.enemy == 1)
//bite!!
{
self setmotionanim dog_bite_leg
if ( self . enemy != $player )
{
self.enemy damage self 75 self (0 0 0) (0 0 0) (0 0 0) 1 9 0 0;
self.enemy damage $world 75 $world (0 0 0) (0 0 0) (0 0 0) 1 24 24 0;
self.health += 15
}
else
{
local . dir = $player . origin - self . origin;
if (level.fifihungry == 1)
{
//EXTRA STRONG !!:-)
self.enemy damage self.enemy 140 $world (0 0 0) local . dir (0 0 0) 1 2 0 0;
}
else
{
self.enemy damage self.enemy 75 $world (0 0 0) local . dir (0 0 0) 1 2 0 0;
}
//fifi eated some of your meat and will become stronger
self.health += 15
}
self waittill flaggedanimdone
}
else
{
//chase enemy
self setmotionanim dog_run
self waittill flaggedanimdone
}
}
end
//goto fifi-bite
thx 5
