nova crowler

broken avatar :(
Created 594 days ago
by nikfar1
0 Members and 1 Guest are viewing this topic.
903 views
broken avatar :(
×
broken avatar :(
Location: 00persia
Date Registered: 20 December 2012
Last active: 3 days ago
Posts
66
Respect
Forum Rank
Rotting Walker
Primary Group
Member
×
nikfar1's Groups
nikfar1's Contact & Social Links
hi everyone

I want to bring nova crawlers to my map and spawn inside the playable area.my problem is thay dont spawn.please help me..
this is my script
[noae]
#include maps\_utility; 
#include common_scripts\utility;
#include maps\_zombiemode_utility;
#include animscripts\Utility;

init()
{
thread quads_enabled();
init_quad_zombie_anims();

level.quad_spawners = GetEntArray( "quad_zombie_spawner", "script_noteworthy" );
array_thread( level.quad_spawners, ::add_spawn_function, maps\_zombiemode_ai_quad::quad_prespawn );
}

quads_enabled()
{
level.quads = false;

// flag_wait("electricity_on");
level.quads = true;
}

#using_animtree( "generic_human" );
quad_prespawn()
{

if( level.quads == false )
{
// iprintln( "level quads false or count higher than 10" );
self DetachAll();
character\char_ger_pnzrgren_helm_zombies_gear1::main();
self.animname = "zombie";
self maps\_zombiemode_spawner::zombie_spawn_init( true );
return;
}
else
self.animname = "quad_zombie";
self.quad = true;

self.custom_idle_setup = maps\_zombiemode_ai_quad::quad_zombie_idle_setup;

self.a.idleAnimOverrideArray = [];
self.a.idleAnimOverrideArray["stand"] = [];
self.a.idleAnimOverrideArray["stand"] = [];
self.a.idleAnimOverrideArray["stand"][0][0] = %quad_idle;
self.a.idleAnimOverrideWeights["stand"][0][0] = 10;
self.no_eye_glow = true;

self maps\_zombiemode_spawner::zombie_spawn_init( true );

self.maxhealth = int( self.maxhealth * 0.75 );
self.health = self.maxhealth;
self.meleeDamage = 45;

self playsound( "quad_spawn1" );

self.death_explo_radius_zomb        = 96;     
    self.death_explo_radius_plr         = 96;     
    self.death_explo_damage_zomb        = 0.75;     
    self.death_gas_radius               = 125;     
    self.death_gas_time                 = 7;

self.deathanimscript = ::quad_post_death;
//self.actor_killed_override = ::quad_killed_override;

//self set_default_attack_properties();
self.thundergun_disintegrate_func = ::quad_thundergun_disintegrate;
self.thundergun_knockdown_func = ::quad_thundergun_knockdown;

self.can_explode = false;

if ( isdefined( level.quad_explode ) && level.quad_explode == true )
{
self.can_explode = true;
}
self.exploded = false;
self thread quad_trail();
self thread quad_vox();

if ( isdefined( level.quad_traverse_death_fx ) )
{
self thread [[ level.quad_traverse_death_fx ]]();
}


}

quad_zombie_idle_setup()
{

self.a.array["turn_left_45"] = %exposed_tracking_turn45L;
self.a.array["turn_left_90"] = %exposed_tracking_turn90L;
self.a.array["turn_left_135"] = %exposed_tracking_turn135L;
self.a.array["turn_left_180"] = %exposed_tracking_turn180L;
self.a.array["turn_right_45"] = %exposed_tracking_turn45R;
self.a.array["turn_right_90"] = %exposed_tracking_turn90R;
self.a.array["turn_right_135"] = %exposed_tracking_turn135R;
self.a.array["turn_right_180"] = %exposed_tracking_turn180L;
self.a.array["exposed_idle"] = array( %quad_idle, %quad_idle );
self.a.array["straight_level"] = %quad_idle;
self.a.array["stand_2_crouch"] = %ai_zombie_shot_leg_right_2_crawl;
}

init_quad_zombie_anims()
{
// deaths
level.scr_anim["quad_zombie"]["death1"] = %ai_zombie_quad_death;
level.scr_anim["quad_zombie"]["death2"] = %ai_zombie_quad_death_2;
level.scr_anim["quad_zombie"]["death3"] = %ai_zombie_quad_death_3;
level.scr_anim["quad_zombie"]["death4"] = %ai_zombie_quad_death_4;

// run cycles
level.scr_anim["quad_zombie"]["walk1"] = %ai_zombie_quad_crawl;
level.scr_anim["quad_zombie"]["walk2"] = %ai_zombie_quad_crawl;
level.scr_anim["quad_zombie"]["walk3"] = %ai_zombie_quad_crawl;
level.scr_anim["quad_zombie"]["walk4"] = %ai_zombie_quad_crawl_2;
level.scr_anim["quad_zombie"]["walk5"] = %ai_zombie_quad_crawl_2;
level.scr_anim["quad_zombie"]["walk6"] = %ai_zombie_quad_crawl_3;
level.scr_anim["quad_zombie"]["walk7"] = %ai_zombie_quad_crawl_3;
level.scr_anim["quad_zombie"]["walk8"] = %ai_zombie_quad_crawl_3;

level.scr_anim["quad_zombie"]["run1"] = %ai_zombie_quad_crawl_run;
level.scr_anim["quad_zombie"]["run2"] = %ai_zombie_quad_crawl_run_2;
level.scr_anim["quad_zombie"]["run3"] = %ai_zombie_quad_crawl_run_3;
level.scr_anim["quad_zombie"]["run4"] = %ai_zombie_quad_crawl_run_4;
level.scr_anim["quad_zombie"]["run5"] = %ai_zombie_quad_crawl_run_5;
level.scr_anim["quad_zombie"]["run6"] = %ai_zombie_quad_crawl_run;

level.scr_anim["quad_zombie"]["sprint1"] = %ai_zombie_quad_crawl_sprint;
level.scr_anim["quad_zombie"]["sprint2"] = %ai_zombie_quad_crawl_sprint_2;
level.scr_anim["quad_zombie"]["sprint3"] = %ai_zombie_quad_crawl_sprint_3;
level.scr_anim["quad_zombie"]["sprint4"] = %ai_zombie_quad_crawl_sprint;
level.scr_anim["quad_zombie"]["sprint5"] = %ai_zombie_quad_crawl_sprint_3;
level.scr_anim["quad_zombie"]["sprint6"] = %ai_zombie_quad_crawl_sprint_2;

// run cycles in prone
level.scr_anim["quad_zombie"]["crawl1"] = %ai_zombie_crawl;
level.scr_anim["quad_zombie"]["crawl2"] = %ai_zombie_crawl_v1;
level.scr_anim["quad_zombie"]["crawl3"] = %ai_zombie_crawl_v2;
level.scr_anim["quad_zombie"]["crawl4"] = %ai_zombie_crawl_v3;
level.scr_anim["quad_zombie"]["crawl5"] = %ai_zombie_crawl_v4;
level.scr_anim["quad_zombie"]["crawl6"] = %ai_zombie_crawl_v5;
level.scr_anim["quad_zombie"]["crawl_hand_1"] = %ai_zombie_walk_on_hands_a;
level.scr_anim["quad_zombie"]["crawl_hand_2"] = %ai_zombie_walk_on_hands_b;

level.scr_anim["quad_zombie"]["crawl_sprint1"] = %ai_zombie_crawl_sprint;
level.scr_anim["quad_zombie"]["crawl_sprint2"] = %ai_zombie_crawl_sprint_1;
level.scr_anim["quad_zombie"]["crawl_sprint3"] = %ai_zombie_crawl_sprint_2;

if( !isDefined( level._zombie_melee ) )
{
level._zombie_melee = [];
}
if( !isDefined( level._zombie_walk_melee ) )
{
level._zombie_walk_melee = [];
}
if( !isDefined( level._zombie_run_melee ) )
{
level._zombie_run_melee = [];
}

level._zombie_melee["quad_zombie"] = [];
level._zombie_walk_melee["quad_zombie"] = [];
level._zombie_run_melee["quad_zombie"] = [];

level._zombie_melee["quad_zombie"][0] = %ai_zombie_quad_attack;
level._zombie_melee["quad_zombie"][1] = %ai_zombie_quad_attack_2;
level._zombie_melee["quad_zombie"][2] = %ai_zombie_quad_attack_3;
level._zombie_melee["quad_zombie"][3] = %ai_zombie_quad_attack_4;
level._zombie_melee["quad_zombie"][4] = %ai_zombie_quad_attack_5;
level._zombie_melee["quad_zombie"][5] = %ai_zombie_quad_attack_6;
level._zombie_melee["quad_zombie"][6] = %ai_zombie_quad_attack_double;
level._zombie_melee["quad_zombie"][7] = %ai_zombie_quad_attack_double_2;
level._zombie_melee["quad_zombie"][8] = %ai_zombie_quad_attack_double_3;
level._zombie_melee["quad_zombie"][9] = %ai_zombie_quad_attack_double_4;
level._zombie_melee["quad_zombie"][10] = %ai_zombie_quad_attack_double_5;
level._zombie_melee["quad_zombie"][11] = %ai_zombie_quad_attack_double_6;
/*
level._zombie_run_melee["quad_zombie"][0] = %ai_zombie_quad_attack;
level._zombie_run_melee["quad_zombie"][1] = %ai_zombie_quad_attack;
level._zombie_run_melee["quad_zombie"][2] = %ai_zombie_quad_attack;
level._zombie_walk_melee["quad_zombie"][0] = %ai_zombie_quad_attack;
level._zombie_walk_melee["quad_zombie"][1] = %ai_zombie_quad_attack;
level._zombie_walk_melee["quad_zombie"][2] = %ai_zombie_quad_attack;
level._zombie_walk_melee["quad_zombie"][3] = %ai_zombie_quad_attack;
*/

if( isDefined( level.quad_zombie_anim_override ) )
{
[[ level.quad_zombie_anim_override ]]();
}

// melee in crawl
if( !isDefined( level._zombie_melee_crawl ) )
{
level._zombie_melee_crawl = [];
}
level._zombie_melee_crawl["quad_zombie"] = [];
level._zombie_melee_crawl["quad_zombie"][0] = %ai_zombie_attack_crawl;
level._zombie_melee_crawl["quad_zombie"][1] = %ai_zombie_attack_crawl_lunge;

if( !isDefined( level._zombie_stumpy_melee ) )
{
level._zombie_stumpy_melee = [];
}
level._zombie_stumpy_melee["quad_zombie"] = [];
level._zombie_stumpy_melee["quad_zombie"][0] = %ai_zombie_walk_on_hands_shot_a;
level._zombie_stumpy_melee["quad_zombie"][1] = %ai_zombie_walk_on_hands_shot_b;

// tesla deaths
if( !isDefined( level._zombie_tesla_death ) )
{
level._zombie_tesla_death = [];
}
level._zombie_tesla_death["quad_zombie"] = [];
level._zombie_tesla_death["quad_zombie"][0] = %ai_zombie_quad_death_tesla;
level._zombie_tesla_death["quad_zombie"][1] = %ai_zombie_quad_death_tesla_2;
level._zombie_tesla_death["quad_zombie"][2] = %ai_zombie_quad_death_tesla_3;
level._zombie_tesla_death["quad_zombie"][3] = %ai_zombie_quad_death_tesla_4;

if( !isDefined( level._zombie_tesla_crawl_death ) )
{
level._zombie_tesla_crawl_death = [];
}
level._zombie_tesla_crawl_death["quad_zombie"] = [];
level._zombie_tesla_crawl_death["quad_zombie"][0] = %ai_zombie_tesla_crawl_death_a;
level._zombie_tesla_crawl_death["quad_zombie"][1] = %ai_zombie_tesla_crawl_death_b;


// deaths
if( !isDefined( level._zombie_deaths ) )
{
level._zombie_deaths = [];
}
level._zombie_deaths["quad_zombie"] = [];
level._zombie_deaths["quad_zombie"][0] = %ai_zombie_quad_death;
level._zombie_deaths["quad_zombie"][1] = %ai_zombie_quad_death_2;
level._zombie_deaths["quad_zombie"][2] = %ai_zombie_quad_death_3;
level._zombie_deaths["quad_zombie"][3] = %ai_zombie_quad_death_4;

/*
ground crawl
*/

if( !isDefined( level._zombie_rise_anims ) )
{
level._zombie_rise_anims = [];
}

// set up the arrays
level._zombie_rise_anims["quad_zombie"] = [];

level._zombie_rise_anims["quad_zombie"][1]["walk"][0] = %ai_zombie_traverse_ground_v1_crawl;

level._zombie_rise_anims["quad_zombie"][1]["run"][0] = %ai_zombie_traverse_ground_v1_crawlfast;

level._zombie_rise_anims["quad_zombie"][1]["sprint"][0] = %ai_zombie_traverse_ground_v1_crawlfast;

level._zombie_rise_anims["quad_zombie"][2]["walk"][0] = %ai_zombie_traverse_ground_v1_crawl;

// ground crawl death
if( !isDefined( level._zombie_rise_death_anims ) )
{
level._zombie_rise_death_anims = [];
}

level._zombie_rise_death_anims["quad_zombie"] = [];

level._zombie_rise_death_anims["quad_zombie"][1]["in"][0] = %ai_zombie_traverse_ground_v1_deathinside;
level._zombie_rise_death_anims["quad_zombie"][1]["in"][1] = %ai_zombie_traverse_ground_v1_deathinside_alt;

level._zombie_rise_death_anims["quad_zombie"][1]["out"][0] = %ai_zombie_traverse_ground_v1_deathoutside;
level._zombie_rise_death_anims["quad_zombie"][1]["out"][1] = %ai_zombie_traverse_ground_v1_deathoutside_alt;

level._zombie_rise_death_anims["quad_zombie"][2]["in"][0] = %ai_zombie_traverse_ground_v2_death_low;
level._zombie_rise_death_anims["quad_zombie"][2]["in"][1] = %ai_zombie_traverse_ground_v2_death_low_alt;

level._zombie_rise_death_anims["quad_zombie"][2]["out"][0] = %ai_zombie_traverse_ground_v2_death_high;
level._zombie_rise_death_anims["quad_zombie"][2]["out"][1] = %ai_zombie_traverse_ground_v2_death_high_alt;

//taunts
if( !isDefined( level._zombie_run_taunt ) )
{
level._zombie_run_taunt = [];
}
if( !isDefined( level._zombie_board_taunt ) )
{
level._zombie_board_taunt = [];
}
level._zombie_run_taunt["quad_zombie"] = [];
level._zombie_board_taunt["quad_zombie"] = [];

level._zombie_board_taunt["quad_zombie"][0] = %ai_zombie_quad_taunt;
level._zombie_board_taunt["quad_zombie"][1] = %ai_zombie_quad_taunt_2;
level._zombie_board_taunt["quad_zombie"][2] = %ai_zombie_quad_taunt_3;
level._zombie_board_taunt["quad_zombie"][3] = %ai_zombie_quad_taunt_4;
level._zombie_board_taunt["quad_zombie"][4] = %ai_zombie_quad_taunt_5;
level._zombie_board_taunt["quad_zombie"][5] = %ai_zombie_quad_taunt_6;

level._effect[ "quad_explo_gas" ]         = LoadFX( "maps/zombie/fx_zombie_quad_gas_nova6" );
level._effect[ "quad_trail" ] = Loadfx( "maps/zombie/fx_zombie_quad_trail" );
}
quad_thundergun_disintegrate( player )
{
self endon( "death" );
self DoDamage( self.health + 666, player.origin, player );
}
quad_thundergun_knockdown( player, gib )
{
self endon( "death" );
damage = int( self.maxhealth * 0.5 );
self DoDamage( damage, player.origin, player );
}
quad_trail()
{
self endon( "death" );
//self waittill( "quad_end_traverse_anim" );

self.fx_quad_trail = Spawn( "script_model", self GetTagOrigin( "tag_origin" ) );
self.fx_quad_trail.angles = self GetTagAngles( "tag_origin" );
self.fx_quad_trail SetModel( "tag_origin" );
self.fx_quad_trail LinkTo( self, "tag_origin" );
maps\_zombiemode_net::network_safe_play_fx_on_tag( "quad_fx", 2, level._effect[ "quad_trail" ], self.fx_quad_trail, "tag_origin" );
}
quad_post_death()
{
if( self.can_explode == true )
{
if ( isdefined( self.fx_quad_trail ) )
{
self.fx_quad_trail unlink();
self.fx_quad_trail delete();
}

mod = self.damagemod;

if ( mod == "MOD_PISTOL_BULLET" ||  mod == "MOD_RIFLE_BULLET" )
{
self thread quad_gas_explo_death();
}
}
}
quad_gas_explo_death()
{   
    death_vars = [];
    death_vars["explo_radius_zomb"]     = self.death_explo_radius_zomb;
    death_vars["explo_radius_plr"]      = self.death_explo_radius_plr;
    death_vars["explo_damage_zomb"]     = self.death_explo_damage_zomb;
    death_vars["gas_radius"]            = self.death_gas_radius;
    death_vars["gas_time"]              = self.death_gas_time;

self thread quad_death_explo( self.origin, death_vars );
level thread quad_gas_area_of_effect( self.origin, death_vars );
self Delete();
}
quad_death_explo( origin, death_vars )
{
    playsoundatposition( "quad_explo1", origin );
    PlayFx( level._effect["dog_gib"], origin );
   
    players = get_players();
    zombies = GetAIArray( "axis" );

for(i = 0; i < zombies.size; i++)
    {
        if( Distance( origin, zombies[i].origin ) <= death_vars["explo_radius_zomb"] )
        {
            if( zombies[i].animname != "quad_zombie" )
            {
if( zombies[i].animname != "boss_zombie" )
{
zombies[i] DoDamage( zombies[i].maxhealth * death_vars["explo_damage_zomb"], origin );
}
            }
        }
    }

    for(i = 0; i < players.size; i++)
    {
        if( Distance( origin, players[i].origin ) <= death_vars["explo_radius_plr"] )
        {
            players[i] ShellShock( "explosion", 2.5 );
RadiusDamage( players[i].origin, death_vars["explo_radius_zomb"], 15, 10, self, "MOD_EXPLOSIVE" );
        }
    }
self.exploded = true;
//self RadiusDamage( origin, death_vars["explo_radius_zomb"], level.zombie_health, level.zombie_health, self, "MOD_EXPLOSIVE" );
   
}
quad_gas_area_of_effect( origin, death_vars )
{
effectArea = spawn( "trigger_radius", origin, 0, death_vars["gas_radius"], 100 );



PlayFX( level._effect[ "quad_explo_gas" ], origin );

gas_time = 0;
   
while( gas_time <= death_vars["gas_time"] )
{
players = get_players();

for(i = 0; i < players.size; i++)
{
if( players[i] IsTouching( effectArea ))
{

players[i] setblur( 4, .1 );
}
else
{
players[i] setblur( 0, .5 );
}
}

wait(1);
gas_time = gas_time + 1;
}
players = get_players();
for ( i = 0; i < players.size; i++ )
{
players[i] setblur( 0, .5 );
}


effectArea Delete();


}
quad_killed_override( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime )
{
if ( sMeansOfDeath == "MOD_PISTOL_BULLET" || sMeansOfDeath == "MOD_RIFLE_BULLET" )
{
self.can_explode = true;
}
else
{
self.can_explode = false;
if ( isdefined( self.fx_quad_trail ) )
{
self.fx_quad_trail unlink();
self.fx_quad_trail delete();
}
}
}
quad_vox()
{
self endon( "death" );

wait( 5 );

quad_wait = 5;

while(1)
{
players = getplayers();

for(i=0;i<players.size;i++)
{
if(DistanceSquared(self.origin, players[i].origin) > 1200 * 1200)
{
self playsound( "quad_amb" );
quad_wait = 8;
}
else if(DistanceSquared(self.origin, players[i].origin) > 200 * 200)
{
self playsound( "quad_vox" );
quad_wait = 6;
}
else if(DistanceSquared(self.origin, players[i].origin) < 150 * 150)
{
self playsound( "quad_close" );
quad_wait = 3;
}
}
wait randomfloatrange( 1, quad_wait );
}
}
quad_close()
{
self endon( "death" );

while(1)
{
players = getplayers();

for(i=0;i<players.size;i++)
{
if ( is_player_valid( players[i], true ) )
{
if(DistanceSquared(self.origin, players[i].origin) < 150 * 150)
{
self playsound( "quad_close" );
wait randomfloatrange( 1, 2 );
}
}
}
wait_network_frame();
}
}
[/noae]

And this is my spawn


This topic contains a post which is marked as the Best Answer. Click here to view it.
broken avatar :(
×
broken avatar :(
Location: kh
Date Registered: 9 August 2013
Last active: 211 days ago
Posts
503
Respect
Forum Rank
Zombie Enslaver
Primary Group
Member
×
codmoddd1234's Groups
codmoddd1234's Contact & Social Links
Try the gsc from here.
[You are not allowed to view external links. Register or Login to see them]
broken avatar :(
×
broken avatar :(
Location: 00persia
Date Registered: 20 December 2012
Last active: 3 days ago
Posts
66
Respect
Forum Rank
Rotting Walker
Primary Group
Member
×
nikfar1's Groups
nikfar1's Contact & Social Links
Thanks codmoddd1234 for replying
I used this script before but it dosent work.
Do i need to add script struct like riser spawner and how to link this spawner to zones?
Marked as best answer by nikfar1 on Today at 05:31:28 pm
broken avatar :(
×
broken avatar :(
Location: kh
Date Registered: 9 August 2013
Last active: 211 days ago
Posts
503
Respect
Forum Rank
Zombie Enslaver
Primary Group
Member
×
codmoddd1234's Groups
codmoddd1234's Contact & Social Links
In your picture your missing the kvp
targetname "ZONE NAME"
count 9999
script_forcespawn 1
//
The only difference between zombie and crawler kvp is the "script_noteworthy"
Regular zombie can be crawlers by changing the "script_noteworthy" only.
broken avatar :(
×
broken avatar :(
Location: 00persia
Date Registered: 20 December 2012
Last active: 3 days ago
Posts
66
Respect
Forum Rank
Rotting Walker
Primary Group
Member
×
nikfar1's Groups
nikfar1's Contact & Social Links
thanks again codmoddd1234 for helping me
I did it what you said and everything works fine. ;)   +1

 

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
Loading ...