UGX-Mods Login

or login with an authentication provider below
Sign In with Google
Sign In with Twitter
Sign In with Discord
Sign In with Steam
Sign In with Facebook
Sign In with Twitch

"special_dog_spawn" function from (factory) for (sumpf). How?

broken avatar :(
Created 8 years ago
by ville88
0 Members and 1 Guest are viewing this topic.
1,909 views
broken avatar :(
×
broken avatar :(
Location: rueurope
Date Registered: 2 January 2012
Last active: 2 months ago
Posts
303
Respect
Forum Rank
Perk Hacker
Primary Group
Member
My Contact & Social Links
More
×
ville88's Groups
Need add function from nazi_zombie_factory to nazi_zombie_sumpf.

i copy and paste this function "special_dog_spawn" from _zombiemode_dogs.gsc (nazi_zombie_factory)

Code Snippet
Plaintext
special_dog_spawn( spawners, num_to_spawn )
{
dogs = GetAISpeciesArray( "all", "dog" );

if ( IsDefined( dogs ) && dogs.size >= 2 )
{
return false;
}

if ( !IsDefined(num_to_spawn) )
{
num_to_spawn = 1;
}

spawn_point = undefined;
count = 0;
while ( count < num_to_spawn )
{
//update the player array.
players = get_players();
favorite_enemy = get_favorite_enemy();

if ( IsDefined( spawners ) )
{
spawn_point = spawners[ RandomInt(spawners.size) ];
ai = spawn_zombie( spawn_point );

if( IsDefined( ai ) )
{
ai.favoriteenemy = favorite_enemy;
spawn_point thread dog_spawn_fx( ai );
// level.zombie_total--;
count++;
flag_set( "dog_clips" );
}
}
else
{
if ( IsDefined( level.dog_spawn_func ) )
{
spawn_loc = [[level.dog_spawn_func]]( level.enemy_dog_spawns, favorite_enemy );

ai = spawn_zombie( level.enemy_dog_spawns[0] );
if( IsDefined( ai ) )
{
ai.favoriteenemy = favorite_enemy;
spawn_loc thread dog_spawn_fx( ai, spawn_loc );
// level.zombie_total--;
count++;
flag_set( "dog_clips" );
}
}
else
{
// Old method
spawn_point = dog_spawn_sumpf_logic( level.enemy_dog_spawns, favorite_enemy );
ai = spawn_zombie( spawn_point );

if( IsDefined( ai ) )
{
ai.favoriteenemy = favorite_enemy;
spawn_point thread dog_spawn_fx( ai );
// level.zombie_total--;
count++;
flag_set( "dog_clips" );
}
}
}

waiting_for_next_dog_spawn( count, num_to_spawn );
}

return true;
}

to _zombiemode_dogs.gsc (nazi_zombie_sumpf)

And copy and replace function "round_spawning"
from _zombiemode.gsc (nazi_zombie_factory)

Code Snippet
Plaintext
round_spawning()
{
level endon( "intermission" );
/#
level endon( "kill_round" );
#/

if( level.intermission )
{
return;
}

if( level.enemy_spawns.size < 1 )
{
ASSERTMSG( "No spawners with targetname zombie_spawner in map." );
return;
}

/#
if ( GetDVarInt( "zombie_cheat" ) == 2 || GetDVarInt( "zombie_cheat" ) >= 4 )
{
return;
}
#/

ai_calculate_health();

count = 0;

//CODER MOD: TOMMY K
players = get_players();
for( i = 0; i < players.size; i++ )
{
players[i].zombification_time = 0;
}

max = level.zombie_vars["zombie_max_ai"];

multiplier = level.round_number / 5;
if( multiplier < 1 )
{
multiplier = 1;
}

// After round 10, exponentially have more AI attack the player
if( level.round_number >= 10 )
{
multiplier *= level.round_number * 0.15;
}

player_num = get_players().size;

if( player_num == 1 )
{
max += int( ( 0.5 * level.zombie_vars["zombie_ai_per_player"] ) * multiplier );
}
else
{
max += int( ( ( player_num - 1 ) * level.zombie_vars["zombie_ai_per_player"] ) * multiplier );
}



if(level.round_number < 3 && level.script == "nazi_zombie_asylum")
{
if(get_players().size > 1)
{

max = get_players().size * 3 + level.round_number;

}
else
{

max = 6;

}
}
else if ( level.first_round )
{
max = int( max * 0.2 );
}
else if (level.round_number < 3)
{
max = int( max * 0.4 );
}
else if (level.round_number < 4)
{
max = int( max * 0.6 );
}
else if (level.round_number < 5)
{
max = int( max * 0.8 );
}


level.zombie_total = max;
mixed_spawns = 0; // Number of mixed spawns this round.  Currently means number of dogs in a mixed round

// DEBUG HACK:
//max = 1;
old_spawn = undefined;
while( count < max )
{

spawn_point = level.enemy_spawns[RandomInt( level.enemy_spawns.size )];

if( !IsDefined( old_spawn ) )
{
old_spawn = spawn_point;
}
else if( Spawn_point == old_spawn )
{
spawn_point = level.enemy_spawns[RandomInt( level.enemy_spawns.size )];
}
old_spawn = spawn_point;

// iPrintLn(spawn_point.targetname + " " + level.zombie_vars["zombie_spawn_delay"]);
while( get_enemy_count() > 31 )
{
wait( 0.05 );
}

// MM Mix in dog spawns...
if ( IsDefined( level.mixed_rounds_enabled ) && level.mixed_rounds_enabled == 1 )
{
spawn_dog = false;
if ( level.round_number > 30 )
{
if ( RandomInt(100) < 3 )
{
spawn_dog = true;
}
}
else if ( level.round_number > 25 && mixed_spawns < 3 )
{
if ( RandomInt(100) < 2 )
{
spawn_dog = true;
}
}
else if ( level.round_number > 20 && mixed_spawns < 2 )
{
if ( RandomInt(100) < 2 )
{
spawn_dog = true;
}
}
else if ( level.round_number > 15 && mixed_spawns < 1 )
{
if ( RandomInt(100) < 1 )
{
spawn_dog = true;
}
}

if ( spawn_dog )
{
keys = GetArrayKeys( level.zones );
for ( i=0; i<keys.size; i++ )
{
if ( level.zones[ keys[i] ].is_occupied )
{
akeys = GetArrayKeys( level.zones[ keys[i] ].adjacent_zones );
for ( k=0; k<akeys.size; k++ )
{
if ( level.zones[ akeys[k] ].is_active &&
!level.zones[ akeys[k] ].is_occupied &&
level.zones[ akeys[k] ].dog_locations.size > 0 )
{
maps\_zombiemode_dogs::special_dog_spawn( undefined, 1 );
level.zombie_total--;
wait_network_frame();
}
}
}
}
}
}

ai = spawn_zombie( spawn_point );
if( IsDefined( ai ) )
{
level.zombie_total--;
ai thread round_spawn_failsafe();
count++;
}
wait( level.zombie_vars["zombie_spawn_delay"] );
wait_network_frame();
}

if( level.round_number > 3 )
{
zombies = getaiarray( "axis" );
while( zombies.size > 0 )
{
if( zombies.size == 1 && zombies[0].has_legs == true )
{
var = randomintrange(1, 4);
zombies[0] set_run_anim( "sprint" + var );                       
zombies[0].run_combatanim = level.scr_anim[zombies[0].animname]["sprint" + var];
}
wait(0.5);
zombies = getaiarray("axis");
}

}

}

to _zombiemode.gsc (nazi_zombie_sumpf)

but dogs do not spawn with zombies after 16 rounds. They are invisible and die

the reason for this? "round_spawning_function"

Code Snippet
Plaintext
			if ( spawn_dog )
{
keys = GetArrayKeys( level.zones );
for ( i=0; i<keys.size; i++ )
{
if ( level.zones[ keys[i] ].is_occupied )
{
akeys = GetArrayKeys( level.zones[ keys[i] ].adjacent_zones );
for ( k=0; k<akeys.size; k++ )
{
if ( level.zones[ akeys[k] ].is_active &&
!level.zones[ akeys[k] ].is_occupied &&
level.zones[ akeys[k] ].dog_locations.size > 0 )
{
maps\_zombiemode_dogs::special_dog_spawn( undefined, 1 );
level.zombie_total--;
wait_network_frame();
}
Last Edit: June 26, 2016, 04:21:19 pm by ville88
broken avatar :(
×
broken avatar :(
Location: us
Date Registered: 30 October 2013
Last active: 3 months ago
Posts
84
Respect
Forum Rank
Rotting Walker
Primary Group
Member
My Contact & Social Links
More
×
WECoyote99's Groups
WECoyote99's Contact & Social LinksFcochis1afscsrpinoWECoyote99
is it the _zombiemode_net  prob cause I deleted that and they spawn but no effects
broken avatar :(
×
broken avatar :(
Location: rueurope
Date Registered: 2 January 2012
Last active: 2 months ago
Posts
303
Respect
Forum Rank
Perk Hacker
Primary Group
Member
My Contact & Social Links
More
×
ville88's Groups
dogs do not find the area for spawning

 
Loading ...