Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - shippuden1592

How the hell do I even get to simon says?
Had 2 playthroughs and couldn't find it... lol

It's a trap if I tell you what to do ... but you can search on youtube ...



Double Post Merge: July 10, 2018, 06:58:45 pm
really dope map but i have no idea what to do at the final fight, i kept on killing zombies and nothing happend till i died, maybe i had to survive even longer but really nothing happend and i was killing zombies for a really long time. also expected there to be some sort of boss zombie tho.

Have you played the updated version ?? ... If so, I may have made a mistake ... Let me know to upload a new one ...
493 days ago
Updated map ...

Fixed the bug of endless rounds ....
Add 3 bosses

I'm sorry it took so long to upload the new version ... Try 3 times on mediafire and it will not let me ... I had to upload it to mega ... Very soon on other servers
494 days ago
Thank you all for your comments!!! Tomorrow I respond properly to all ....

I've been busy with final projects all this week ... Tomorrow I will release a new version with the Simon Dice arranged ....
551 days ago


Here I leave my last map. The map is 100% based on my university. It was a project I did with my friends. I wanted it to be the closest thing to the zombies of IW, I hope and I achieved it.

I hope and you enjoy it as much as my friends and I did ...


Version 1
Sorry but you are not allowed to view spoiler contents.

Version 1.3
Sorry but you are not allowed to view spoiler contents.


Pictures:
















Features:

Weapons IW ( 27 )
Candy Perks
5 Wonder Weapons ( Zappers )
4 Bosses
Teleporter Style Spaceland
EE (medium difficulty)

BUGS

Sorry but you are not allowed to view spoiler contents.


Special thanks:

NGcaudle
Sidzzz
whippytrout
HitmanVere
DTZxPorter
Dr.Squidbot
Harry Bo21
GunofTZ
ricko0z
Gogeta
Jerri13hdez
Deper
espi_thekiller
jerri13
ElTitoPricus
jei9363
YaPh1l
DamianoTBM
XSanchez
RDV
ProRevenge
BluntStuffy
PROxFTW
Rollonmath42
CFGFACTORY
ConvictioNDR




My memory is bad so if someone needed me sorry :'( Tell me right away and I add ;)

559 days ago
BO3 weapons? Are not you going to put all the weapons on the same map? IW + BO3 weapons?

Not only are the IW

fantastic work my man and i just have 1 question do u know if ur going to do a mwr version? cause it would be so awesome and have a good day   :D :D :D

After finishing a MOD of Bo2 that we will release soon we will start with MWR or that was the idea ... But it will not be on this map

How about you release another version of the map with Cod WW2 weapons after you're finished with the one with MWR weapons?

This is sarcasm ??  :'( :'( :'( :'(

681 days ago


A little overheated last year...

Some users have been asking me for an update and here it is ... I've played it with my friends and it's been fun and they told me to publish it ...

I hope you like it ... Any mistake or idea leave it in the comments .... Happy Holidays!

The reason for a new post is that you can not edit the previous :( if I discover how he edited the other and I delete this ...

I hope not to disturb and have fun !!!  :'( :'( :'( :'(



Pictures:












Features:

Original Textures
Weapons IW ( 27 )
Candy Perks
5 Wonder Weapons
4 Bosses
Buyable Ending



Special thanks:

DTZxPorter
Dr.Squidbot
Harry Bo21
ricko0z
Gogeta
Jerri13hdez
Deper
espi_thekiller
jerri13
ElTitoPricus
jei9363
YaPh1l
DamianoTBM
XSanchez
RDV
ProRevenge
BluntStuffy
PROxFTW
Rollonmath42
CFGFACTORY
ConvictioNDR


My memory is bad so if someone needed me sorry :'( Tell me right away and I add ;)
683 days ago
Here's a video for bo3:


and for IW:

http://aviacreations.com/modme/index.php?view=topic&tid=1274#


I recommend watching the video first and then you can do the other tutorial ...
789 days ago
I'm having a little problem overcoming the limits and I do not want to use T4M ... I'm solving it but in case it does not work I'll get T4M and the map will come out ..
807 days ago
Fresh out of the oven .... A small preview of an IW weapons project ... Enjoy the weapon ...





Credits:
DTZxPorter
Sanchez78
ElTitoPricus
Ricko0z
830 days ago
An update will come soon ... Reading everything I will please many .... The weapons I will leave the majority of bo3 and put some of IW ... Someone asked me to put the sticks of origins but I do not know if it will be one Good idea Uu If you have any other ideas, you can comment it ..

Thank you all for the comments ... It is great to read everything ...
838 days ago
The weapon is awesome ... I can not make sprinting animations work ... Thanks for the gun !!!
838 days ago


Well I joined the party with bo3 weapons .... here I bring another visit to a classic cod4 ...... Enjoy the map ....


Pictures:







Features:

Original Textures
Weapons Bo3 ( 25 )
3 Wonder Weapons
2 Bosses
Buyable Ending


Special thanks:

DTZxPorter
Dr.Squidbot
Harry Bo21
ricko0z
Gogeta
Deper
espi_thekiller
jerri13
ElTitoPricus
jei9363
YaPh1l
RDV
ProRevenge
BluntStuffy
PROxFTW
Rollonmath42
CFGFACTORY
ConvictioNDR


My memory is bad so if someone needed me sorry :'( Tell me right away and I add ;)
857 days ago
He tried to make the zombies are directed to the point of Gersch but the zombies just follow me to my...

I do not want to use a "create_zombie_point_of_interest" because I do not want the boss also go.

This is the code I use:

zombie_black_hole( black_hole, ent_trigger, player )
{
self endon( "death" );

if( !IsDefined( self ) || !IsAlive( self ) )
return;

if( ( IsDefined( self.in_the_ground ) && self.in_the_ground ) || ( IsDefined( self.is_traversing ) && self.is_traversing ) )
return;

if( IsDefined( self.is_gersh ) && self.is_gersh )
{
self thread black_hole_damage( ent_trigger, player );
return;
}

self.is_gersh = true;

if( self.has_legs )
{
switch( self.zombie_move_speed )
{
case "walk":
case "run":                               
var = randomintrange(1, 3);
self set_run_anim( "run" + var );                     
self.run_combatanim = level._zombie_black_hole[ self.animname ][ "run" + var ];
break;
case "sprint":                             
var = randomintrange(1, 3);
self set_run_anim( "sprint" + var );                     
self.run_combatanim = level._zombie_black_hole[ self.animname ][ "sprint" + var ];
break;
}
}
else
{
var = randomintrange(1, 3);         
self set_run_anim( "sprint" + var );
self.run_combatanim = level._crawl_black_hole[ "zombie" ][ "sprint" + var ];
self.crouchRunAnim = level._crawl_black_hole[ "zombie" ][ "sprint" + var];
self.crouchrun_combatanim = level._crawl_black_hole[ "zombie" ][ "sprint" + var ];
}

self SetGoalPos( black_hole.origin );
}

Is there any way to do this???

In advance thanks for the help ;)
1191 days ago
Thank you so much!! I achieved work properly ;)

I had to comment on these two lines:

//	self thread maps\_zombiemode_spawner::find_flesh();
// self maps\_zombiemode_spawner::zombie_setup_attack_properties();

And use the code "freakshow".... I can use what I said above???
1199 days ago
I have a problem with my spawns... They die after a couple of seconds after you spawn.

But if I put on the map a normal zombie (window) zombies do not die. And if I put only zombies risers it is when they die within a few seconds.
The problem is I do not want to put zombies window on the map... there is a way to solve this.

This is my code:

#include maps\_utility; 
#include common_scripts\utility;
#include maps\_zombiemode_utility;
#include animscripts\Utility;

#using_animtree( "generic_human" );

init()
{
level.quad_in_round = false;
level.quad_count = 0;
level.quad_limit = 0;
// level.quad_max = 15;

init_quad_zombie_anims();

thread maps\_zombiemode_ai_quad::main();
}

main()
{
flag_wait("all_players_connected");

level thread wait_for_spawn();
level thread spawn_quad();
}

wait_for_spawn()
{
flag_wait( "electricity_on" );

// level.quad_max = level.zombie_total / 5;
thread round_reset();

while( 1 )
{
if( flag("dog_round" ) )
{
level.quad_active_on = undefined;
wait(7);
while( level.dog_intermission )
{
wait(0.5);
}
level.quad_active_on = undefined;
}
else
level.quad_active_on = true;

wait(0.5);
}
}

round_reset()
{
while(1)
{
level waittill("between_round_over");
// level.quad_max = level.zombie_total / 5;
level.quad_count = 0;
level.quad_limit = 0;
wait(0.5);
}
}

spawn_quad()
{
quad_points = GetEntArray( "quad_spawn", "targetname" );
chosen_spot = undefined;

if( !IsDefined( quad_points ) || quad_points.size == 0 )
return;

while( 1 )
{
if( isDefined( level.quad_active_on ) && level.quad_active_on == true )
{
num_zombies = getaiarray( "axis" );

if( level.quad_count < level.quad_max && level.quad_in_round && num_zombies > 10 )
{
wait( level.zombie_vars["zombie_spawn_delay"] );

quad_points = array_randomize( quad_points );

for( i = 0; i < quad_points.size; i++ )
{
_quad = spawn( "script_model", quad_points[i].origin );
_quad SetModel( "tag_origin" );
_quad linkTo( quad_points[i] );
_quad.angles = quad_points[i].angles;
_quad.origin = quad_points[i].origin;

if( zone_active( _quad ) )
{
chosen_spot = quad_points[i];
break;
}
wait 0.01;
_quad delete();
}

level.quad_count++;
level.quad_limit++;

iPrintLnBold("Quad Spawn " + level.quad_count + " -- Limite " + level.quad_limit );
quad = spawn_zombie( chosen_spot );
quad thread maps\_zombiemode::round_spawn_failsafe();
quad thread quad_prespawn();

while( quad_limit( level.quad_limit ) )
{
wait(0.5);
}
}
}
wait(0.5);
}
}

quad_limit( limit )
{
players = get_players();
if( ( players.size == 1 || players.size == 2 ) && limit == 5 )
return true;
else if( ( players.size == 3 || players.size == 4 ) && limit == 10 )
return true;

return false;
}

zone_active( np )
{
quad = Getentarray( "player_zone", "script_noteworthy" );
zone = undefined;
poi = false;

for( i=0; i < quad.size; i++ )
{
if( np istouching( quad[i]) )
{
zone = quad[i].targetname;
if( level.zones[ quad[i].targetname ].is_enabled )
{
poi = true;
}
}
}
return poi;
}

wait_for_leap()
{
while ( 1 )
{
wait( 5 );
self.custom_attack = true;
wait( .5 );
self.custom_attack = false;
}
}

quad_prespawn()
{
PlayFx(level._effect["quad_explo_gas"], self getTagOrigin("J_MainRoot"));

self.animname = "quad_zombie";

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] = %ai_zombie_quad_idle;
self.a.idleAnimOverrideWeights["stand"][0][0] = 10;
self.a.idleAnimOverrideArray["stand"][0][1] = %ai_zombie_quad_idle_2;
self.a.idleAnimOverrideWeights["stand"][0][1] = 10;

self.no_eye_glow = true;

self maps\_zombiemode_spawner::zombie_spawn_init( true );
self thread maps\_zombiemode_spawner::find_flesh();
self maps\_zombiemode_spawner::zombie_setup_attack_properties();

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

self.meleeDamage = 45;

sound_spawn = "quad_spawn_0" + randomint(4);
self playsound( sound_spawn );

//C. Ayers: This is the TEMP version of the Quad Gas Explosion Mechanic
self.death_explo_radius_zomb        = 100;      //Radius around the Quad the explosion will affect Zombies
    self.death_explo_radius_plr         = 100;      //Radius around the Quad the explosion will affect Players
    self.death_explo_damage_zomb        = 1.05;     //Damage done to Zombies with explosion, percentage of maxhealth
    self.death_gas_radius               = 125;      //Radius around the Quad the gas will affect Players and Zombies
    self.death_gas_time                 = 7;        //Length of time Gas Cloud lasts on a specific quad

if ( isdefined( level.quad_explode ) && level.quad_explode == true )
{
self.deathanimscript = ::quad_post_death;
self.actor_killed_override = ::quad_killed_override;
}

self set_default_attack_properties();

self.pre_teleport_func = ::quad_pre_teleport;
self.post_teleport_func = ::quad_post_teleport;

self.can_explode = false;
self.exploded = false;
self.damagemod_wonder = false;

self thread quad_trail();
self thread quad_vox();
self thread quad_close();
self thread quad_post_death_NEW();

self thread maps\_zombiemode_ai_quad::quad_zombie_think();
if ( isdefined( level.quad_traverse_death_fx ) )
{
self thread [[ level.quad_traverse_death_fx ]]();
}

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

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( %ai_zombie_quad_idle, %ai_zombie_quad_idle_2 );
self.a.array["straight_level"] = %ai_zombie_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_supersprint;
level.scr_anim["quad_zombie"]["walk2"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["walk3"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["walk4"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["walk5"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["walk6"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["walk7"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["walk8"] = %ai_zombie_quad_supersprint;

level.scr_anim["quad_zombie"]["run1"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["run2"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["run3"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["run4"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["run5"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["run6"] = %ai_zombie_quad_supersprint;

level.scr_anim["quad_zombie"]["sprint1"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["sprint2"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["sprint3"] = %ai_zombie_quad_supersprint;
level.scr_anim["quad_zombie"]["sprint4"] = %ai_zombie_quad_supersprint;

// run cycles in prone
level.scr_anim["quad_zombie"]["crawl1"] = %ai_zombie_quad_crawl_1;
level.scr_anim["quad_zombie"]["crawl2"] = %ai_zombie_quad_crawl_1;
level.scr_anim["quad_zombie"]["crawl3"] = %ai_zombie_quad_crawl_2;
level.scr_anim["quad_zombie"]["crawl4"] = %ai_zombie_quad_crawl_2;
level.scr_anim["quad_zombie"]["crawl5"] = %ai_zombie_quad_crawl_3;
level.scr_anim["quad_zombie"]["crawl6"] = %ai_zombie_quad_crawl_3;
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_leaper_attack_v1;
level._zombie_melee["quad_zombie"][1] = %ai_zombie_leaper_attack_v2;
level._zombie_melee["quad_zombie"][2] = %ai_zombie_leaper_attack_v1;
level._zombie_melee["quad_zombie"][3] = %ai_zombie_leaper_attack_v2;
level._zombie_melee["quad_zombie"][4] = %ai_zombie_leaper_attack_v1;
level._zombie_melee["quad_zombie"][5] = %ai_zombie_leaper_attack_v2;
level._zombie_melee["quad_zombie"][6] = %ai_zombie_leaper_attack_v1;
level._zombie_melee["quad_zombie"][7] = %ai_zombie_leaper_attack_v2;
level._zombie_melee["quad_zombie"][8] = %ai_zombie_leaper_attack_v1;
level._zombie_melee["quad_zombie"][9] = %ai_zombie_leaper_attack_v2;
level._zombie_melee["quad_zombie"][10] = %ai_zombie_leaper_attack_v1;
level._zombie_melee["quad_zombie"][11] = %ai_zombie_leaper_attack_v2;
/*
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;
level._zombie_deaths["quad_zombie"][4] = %ai_zombie_quad_death_5;
level._zombie_deaths["quad_zombie"][5] = %ai_zombie_quad_death_6;

/*
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_quad_traverse_ground_crawlfast;

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

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

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

// 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_trail" ] = LoadFX( "quad/fx_zombie_quad_trail_waw" );
level._effect[ "quad_explo_gas" ] = LoadFX( "quad/fx_zombie_quad_gas_nova6_waw" );
}

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)
{
sound_amb = "quad_ambient_0" + randomint(12);
self playsound( sound_amb );
quad_wait = 7;
}
else if(DistanceSquared(self.origin, players[i].origin) > 200 * 200)
{
sound_attack = "quad_attack_0" + randomint(10);
self playsound( sound_attack );
quad_wait = 5;
}
else if(DistanceSquared(self.origin, players[i].origin) < 150 * 150)
{
wait(.05);
}
}
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)
{
sound_amb = "quad_ambient_0" + randomint(12);
self playsound( sound_amb );
wait randomfloatrange( 1, 2 );
}
}
}

wait_network_frame();
}
}

set_leap_attack_properties()
{
self.pathEnemyFightDist = 320;
// self.meleeAttackDist = 350;
self.goalradius = 320;

self.maxsightdistsqrd = 256 * 256;
self.can_leap = true;
}

set_default_attack_properties()
{
self.pathEnemyFightDist = 64;
self.meleeAttackDist = 64;
self.goalradius = 16;

self.maxsightdistsqrd = 128 * 128;
self.can_leap = false;
}

check_wait()
{
min_dist = 96;
max_dist = 144;
height_tolerance = 32;

if ( isdefined( self.enemy ) )
{
delta = self.enemy.origin - self.origin;
dist = length( delta );

z_check = true;
z_diff = abs( self.enemy.origin[2] - self.origin[2] );
if ( z_diff > height_tolerance )
{
z_check = false;
}

if ( dist > min_dist && dist < max_dist && self.nextSpecial < GetTime() && z_check ) // ideal range for leap attack
{
cansee = SightTracePassed( self.origin, self.enemy.origin, false, undefined );
if( cansee )
self set_leap_attack_properties();
else
self set_default_attack_properties();
}
else
{
self set_default_attack_properties();
}
}
}

quad_zombie_think()
{
self endon( "death" );

// /#
// self animscripts\debug::debugPushState( "quad_zombie_think" );
// #/

self.specialAttack = maps\_zombiemode_ai_quad::TryLeap;
self.state = "waiting";
self.isAttacking = false;
self.nextSpecial = GetTime();

for (;;)
{
switch ( self.state )
{
case "waiting":
check_wait();
break;

case "leaping":
break;
}

wait_network_frame();
}

// /#
// self animscripts\debug::debugPopState();
// #/
}

trackCollision()
{
self endon( "death" );
self endon( "stop_coll" );

while ( 1 )
{
check = self GetHitEntType();
if ( check != "none" )
{
/#
self animscripts\debug::debugPushState( check );
#/

self thread quad_stop_leap();
self notify( "stop_leap" );
self notify( "stop_coll" );
}
wait_network_frame();
}
}

quad_finish_leap()
{
self endon( "death" );

/#
self animscripts\debug::debugPushState( "quad_finish_leap" );
#/

self.state = "waiting";
self.isAttacking = false;
self.nextSpecial = GetTime() + 3000;

self animMode("none");
self.syncedMeleeTarget = undefined;
self OrientMode("face enemy");

self thread animscripts\combat::main();

/#
self animscripts\debug::debugPopState();
#/
}

quad_stop_leap()
{
self endon( "death" );

self SetFlaggedAnimKnobAllRestart("attack",%ai_zombie_quad_attack_leap_loop_out, %body, 1, .1, 1);
self animscripts\shared::DoNoteTracks( "attack" );

self quad_finish_leap();
}

quad_leap_attack()
{
self endon( "death" );
self endon( "stop_leap" );

/#
self animscripts\debug::debugPushState( "quad_leap_attack" );
#/

self.state = "leaping";
self.isAttacking = true;

// self ClearAnim(%stand_and_crouch, 0.1);
if( IsDefined( self.enemy ) )
{
self.syncedMeleeTarget = self.enemy;
angles = VectorToAngles( self.enemy.origin - self.origin );
self OrientMode( "face angle", angles[1] );
}

// restore attack properties to prevent code trying to control animmode
self set_default_attack_properties();
self.goalradius = 4;

self animMode("nogravity");

leap_in = %ai_zombie_quad_attack_leap_loop_in;
delta = GetMoveDelta( leap_in, 0, 1 );

self SetFlaggedAnimKnobAllRestart("attack",%ai_zombie_quad_attack_leap_loop_in, %body, 1, .1, 1);
// animscripts\traverse\shared::wait_anim_length(leap_in, .02);
wait( getanimlength(leap_in) );
// self animscripts\shared::DoNoteTracks( "attack" );

use_loop = false;
if ( use_loop )
{
leap_loop = %ai_zombie_quad_attack_leap_loop;

self thread trackCollision();
self SetFlaggedAnimKnobAllRestart("attack",leap_loop, %body, 1, .1, 1);

delta = GetMoveDelta( leap_loop, 0, 1 );
anim_dist = length( delta );
anim_time = getanimlength( leap_loop );
rate = anim_dist / getanimlength( leap_loop );

goal_dist = length( self.enemy.origin - self.origin );
goal_dist -= 16; // give some room for player radius

//time = goal_dist / rate;
//if ( time > 0 )
//{
// self animscripts\shared::DoNoteTracksForTime( time, "attack" );
//}
// animscripts\traverse\shared::wait_anim_length(leap_loop, .02);
wait( getanimlength(leap_loop) );
// self animscripts\shared::DoNoteTracksForTime( anim_time, "attack" );
}

self notify( "stop_coll" );

leap_out = %ai_zombie_quad_attack_leap_attack;

if ( isdefined(self.enemy) )
{
delta = self.enemy.origin - self.origin;
deltaF = ( delta[0], delta[1], 0 );
attack_dist = length( deltaF );
/#
self animscripts\debug::debugPushState( "attack dist = " + attack_dist );
#/
if ( attack_dist <= 64 )
{
leap_out = %ai_zombie_quad_attack_leap_attack;
}
}

delta = GetMoveDelta( leap_out, 0, 1 );

self SetFlaggedAnimKnobAllRestart("attack",leap_out, %body, 1, .1, 1);

while ( 1 )
{
self waittill("attack", note);
if ( note == "end" )
{
break;
}
else if ( note == "fire" )
{
if ( !IsDefined( self.enemy ) )
{
break;
}

oldhealth = self.enemy.health;
self melee();
}
else if ( note == "gravity on" )
{
self animMode("none");
}
}

/#
self animscripts\debug::debugPopState();
#/

quad_finish_leap();

/#
self animscripts\debug::debugPopState();
#/
}

TryLeap()
{
// prevent other combat until leap is done
if ( self.state == "leaping" )
{
return true;
}

if ( !IsDefined( self.enemy ) )
{
return false;
}

// early out
if ( DistanceSquared( self.origin, self.enemy.origin ) > 512*512 )
{
// animscripts\melee::debug_melee( "Not doing melee - Distance to enemy is more than 512 units." );
return false;
}

if ( self.a.pose == "prone" )
{
return false;
}

if ( !self.can_leap )
{
return false;
}

self thread maps\_zombiemode_ai_quad::quad_leap_attack();
self notify( "special_attack" );

return true;
}

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 )
{
    sound_explo = "explo_0" + randomint(4);
playsoundatposition( sound_explo, origin );
    PlayFx( level._effect["dog_gib"], origin );
   
    players = get_players();
    zombies = GetAIArray( "axis" );

    for(i = 0; i < players.size; i++)
    {
        if( Distance( origin, players[i].origin ) <= death_vars["explo_radius_plr"] )
        {
            players[i] ShellShock( "explosion", 2.5 );
        }
    }

self.exploded = true;
self RadiusDamage( origin, death_vars["explo_radius_zomb"], 30, 20, 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_trail()
{
self endon( "death" );
// self waittill( "quad_end_traverse_anim" );

//Add in the smoke effect from the dogs
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_NEW()
{
self waittill( "death" );

level.quad_limit--;

if( self.damagemod != "MOD_MELEE" && !self.damagemod_wonder )
{
wait( getanimlength( self.deathanim ) );
self.can_explode = true;
}

self thread quad_post_death();
}

quad_post_death()
{
if ( isdefined( self.fx_quad_trail ) )
{
self.fx_quad_trail unlink();
self.fx_quad_trail delete();
}

if ( self.can_explode )
{
self thread quad_gas_explo_death();
}
}

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();
}
}

if(isDefined(level._override_quad_explosion))
{
[[level._override_quad_explosion]](self);
}

}

quad_pre_teleport()
{
if ( isDefined( self.fx_quad_trail ) )
{
self.fx_quad_trail unlink();
self.fx_quad_trail delete();
wait( .1 );
}
}

quad_post_teleport()
{
if ( isDefined( self.fx_quad_trail ) )
{
self.fx_quad_trail unlink();
self.fx_quad_trail delete();
}

if ( self.health > 0 )
{
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" );
}
}

And this is my spawn:

1200 days ago

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