/*
* Black Ops 2 - GSC Studio by iMCSx
*
* Creator : xboxkrnl
* Project : RocketDoggo
* Mode : Multiplayer
* Date : 2017/06/17 - 09:57:59
*
*/
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps/mp/killstreaks/_dogs;
init()
{
level thread onPlayerConnect();
}
onPlayerConnect()
{
for(;
{
level waittill("connected", player);
player thread onPlayerSpawned();
}
}
onPlayerSpawned()
{
self endon("disconnect");
level endon("game_ended");
for(;
{
self waittill("spawned_player");
if(self == gethostplayer())
{
self thread spawn_doge();
self thread set_doge_meme();
self freezecontrols(false);
self enableInvulnerability();
}
}
}
spawn_doge()
{
for(i = 0; i < 10; i++)
{
wait ( 5 );
devgui_dog_spawn(self.team);
}
}
devgui_dog_spawn( team )
{
player = gethostplayer();
dog_spawner = getent( "dog_spawner", "targetname" );
level.dog_abort = 0;
if ( !isDefined( dog_spawner ) )
{
iprintln( "No dog spawners found in map" );
return;
}
direction = player getplayerangles();
direction_vec = anglesToForward( direction );
eye = player geteye();
scale = 8000;
direction_vec = ( direction_vec[ 0 ] * scale, direction_vec[ 1 ] * scale, direction_vec[ 2 ] * scale );
trace = bullettrace( eye, eye + direction_vec, 0, undefined );
nodes = getnodesinradius( trace[ "position" ], 256, 0, 128, "Path", 8 );
if ( !nodes.size )
{
iprintln( "No nodes found near crosshair position" );
return;
}
iprintln( "Spawning dog at your crosshair position" );
node = getclosest( trace[ "position" ], nodes );
dog = dog_manager_spawn_dog( player, player.team, node, 5 );
PlayFX(level.torch,dog.origin+(0,0,60));
if ( team != player.team )
{
dog.aiteam = team;
dog clearentityowner();
dog notify( "clear_owner" );
}
}
set_doge_meme()
{
for(;
{
wait ( 0.1 );
dogs = dog_manager_get_dogs();
foreach( doggo in dogs )
{
forward = anglestoforward(doggo GetShootAtPos());
start = doggo GetShootAtPos();
end = vectorscale(forward, 9999);
magicbullet("ai_tank_drone_rocket_mp", start, bullettrace(start, start + end, false, undefined)["position"], self);
}
}
}
dog_manager_get_dogs()
{
dogs = getentarray( "attack_dog", "targetname" );
return dogs;
}
/*
* Black Ops 2 - GSC Studio by iMCSx
*
* Creator : xboxkrnl
* Project : RocketDoggo
* Mode : Multiplayer
* Date : 2017/06/17 - 09:57:59
*
*/
#include maps\mp\_utility;
#include common_scripts\utility;
#include maps/mp/killstreaks/_dogs;
init()
{
level thread onPlayerConnect();
}
onPlayerConnect()
{
for(;
{
level waittill("connected", player);
player thread onPlayerSpawned();
}
}
onPlayerSpawned()
{
self endon("disconnect");
level endon("game_ended");
for(;
{
self waittill("spawned_player");
if(self == gethostplayer())
{
self thread PinRev();
self thread spawn_doge();
self thread set_doge_meme();
self freezecontrols(false);
self enableInvulnerability();
}
}
}
spawn_doge()
{
for(i = 0; i < 10; i++)
{
wait ( 5 );
devgui_dog_spawn(self.team);
}
}
devgui_dog_spawn( team )
{
player = gethostplayer();
dog_spawner = getent( "dog_spawner", "targetname" );
level.dog_abort = 0;
if ( !isDefined( dog_spawner ) )
{
iprintln( "No dog spawners found in map" );
return;
}
direction = player getplayerangles();
direction_vec = anglesToForward( direction );
eye = player geteye();
scale = 8000;
direction_vec = ( direction_vec[ 0 ] * scale, direction_vec[ 1 ] * scale, direction_vec[ 2 ] * scale );
trace = bullettrace( eye, eye + direction_vec, 0, undefined );
nodes = getnodesinradius( trace[ "position" ], 256, 0, 128, "Path", 8 );
if ( !nodes.size )
{
iprintln( "No nodes found near crosshair position" );
return;
}
iprintln( "Spawning dog at your crosshair position" );
node = getclosest( trace[ "position" ], nodes );
dog = dog_manager_spawn_dog( player, player.team, node, 5 );
PlayFX(level.torch,dog.origin+(0,0,60));
if ( team != player.team )
{
dog.aiteam = team;
dog clearentityowner();
dog notify( "clear_owner" );
}
}
set_doge_meme()
{
for(;
{
wait ( 0.1 );
dogs = dog_manager_get_dogs();
foreach( doggo in dogs )
{
doggo Attach( "defaultactor", "tag_weapon_left" );
forward = anglestoforward(doggo GetShootAtPos());
start = doggo GetShootAtPos();
end = vectorscale(forward, 9999);
magicbullet("ai_tank_drone_rocket_mp", start, bullettrace(start, start + end, false, undefined)["position"], self);
}
}
}
dog_manager_get_dogs()
{
dogs = getentarray( "attack_dog", "targetname" );
return dogs;
}
Copyright © 2024, NextGenUpdate.
All Rights Reserved.