111 lines
2.4 KiB
Plaintext
111 lines
2.4 KiB
Plaintext
|
#include maps\mp\_utility;
|
||
|
#include common_scripts\utility;
|
||
|
|
||
|
/*QUAKED trigger_multiple_area (0.12 0.23 1.0)
|
||
|
defaulttexture="trigger"
|
||
|
"script_area" - A localized string that names the area. e.g. "MP_FLOWER_SHOP"
|
||
|
Defines an area that the player is in.*/
|
||
|
|
||
|
/*QUAKED trigger_multiple_softlanding (0.12 0.23 1.0)
|
||
|
defaulttexture="trigger"
|
||
|
"script_type" - "car", "boxes", "trash"
|
||
|
Defines a soft landing area.*/
|
||
|
|
||
|
/*QUAKED script_vehicle_snowmobile_player_mp (1 0 0) (-16 -16 -24) (16 16 32) USABLE SPAWNER
|
||
|
|
||
|
put this in your GSC:
|
||
|
maps\_snowmobile_player::main( "vehicle_snowmobile" );
|
||
|
|
||
|
and these lines in your CSV:
|
||
|
include,vehicle_snowmobile_snowmobile_player
|
||
|
sound,vehicle_snowmobile,vehicle_standard,all_sp
|
||
|
|
||
|
|
||
|
defaultmdl="vehicle_snowmobile"
|
||
|
default:"vehicletype" "snowmobile_player_mp"
|
||
|
*/
|
||
|
|
||
|
init()
|
||
|
{
|
||
|
level.softLandingTriggers = getEntArray( "trigger_multiple_softlanding", "classname" );
|
||
|
|
||
|
destructibles = getEntArray( "destructible_vehicle", "targetname" );
|
||
|
|
||
|
foreach ( trigger in level.softLandingTriggers )
|
||
|
{
|
||
|
if ( trigger.script_type != "car" )
|
||
|
continue;
|
||
|
|
||
|
foreach ( destructible in destructibles )
|
||
|
{
|
||
|
/*
|
||
|
if ( !trigger isTouching( destructible ) )
|
||
|
{
|
||
|
println( distance( trigger.origin, destructible.origin ) );
|
||
|
continue;
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
if ( distance( trigger.origin, destructible.origin ) > 64.0 )
|
||
|
continue;
|
||
|
|
||
|
assert( !isDefined( trigger.destructible ) );
|
||
|
|
||
|
trigger.destructible = destructible;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//foreach ( trigger in level.softLandingTriggers )
|
||
|
// trigger thread common_scripts\_dynamic_world::triggerTouchThink( ::playerEnterSoftLanding, ::playerLeaveSoftLanding );
|
||
|
|
||
|
thread onPlayerConnect();
|
||
|
}
|
||
|
|
||
|
|
||
|
onPlayerConnect()
|
||
|
{
|
||
|
for ( ;; )
|
||
|
{
|
||
|
level waittill ( "connected", player );
|
||
|
|
||
|
player.softLanding = undefined;
|
||
|
|
||
|
player thread softLandingWaiter();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
playerEnterSoftLanding( trigger )
|
||
|
{
|
||
|
self.softLanding = trigger;
|
||
|
}
|
||
|
|
||
|
|
||
|
playerLeaveSoftLanding( trigger )
|
||
|
{
|
||
|
self.softLanding = undefined;
|
||
|
}
|
||
|
|
||
|
|
||
|
softLandingWaiter()
|
||
|
{
|
||
|
self endon ( "disconnect" );
|
||
|
|
||
|
for ( ;; )
|
||
|
{
|
||
|
self waittill ( "soft_landing", trigger, damage );
|
||
|
|
||
|
//if ( damage < 10 )
|
||
|
// continue;
|
||
|
|
||
|
if ( !isDefined( trigger.destructible ) )
|
||
|
continue;
|
||
|
|
||
|
//magicBullet( "mp5_mp", self.origin, self.origin + (0,0,-100), self );
|
||
|
|
||
|
//self waittill( "damage", damage, attacker, direction_vec, point, type, modelName, tagName, partName, dflags );
|
||
|
|
||
|
//traceData = bulletTrace( self.origin, self.origin + (0,0,-100), true, self );
|
||
|
|
||
|
}
|
||
|
}
|