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

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

Fresh out of the oven .... A small preview of an IW weapons project ... Enjoy the weapon ...





Credits:
DTZxPorter
Sanchez78
ElTitoPricus
Ricko0z
7 years 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 ...
7 years ago
The weapon is awesome ... I can not make sprinting animations work ... Thanks for the gun !!!
7 years 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 ;)
7 years 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:

Code Snippet
Plaintext
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 ;)
8 years ago
Thank you so much!! I achieved work properly ;)

I had to comment on these two lines:

Code Snippet
Plaintext
//	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???
8 years 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:

Code Snippet
Plaintext
#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:

8 years ago


A couple of weeks I started this project and I would like to see their views and ideas for the map. The comment box is open gladly ;)

The map is designed in high school where I studied. I think inspiration is always such ideas.

Still much but I leave some catches progress:









Features:

Spoiler: click to open...
*FOR THE MOMENT*

Perks Bo1/Bo2

---In the course will be added....

I'll be posting updates soon....


Which is the maximum allowed models???
8 years ago
New link added ;) Version without T4M (still leave the other version, he quickly fix the fix version T4M ;) my pc is fucked a few days ago but now is alive ;) )

Fixes
*Add Nova Crawlers (thanks rdv and Harry Bo21)
*Round off dogs
8 years ago
looks like an amazing map but when I try to load it up solo my whole waw crashes

If you put "d3d9.dll" in the root directory of waw??
8 years ago


Xmas Cobos is adapted from my map "Theft Cobos". He planned to have released on December 25 :'( but my map hit all boundaries and thought not release :'( but someone told me about the configuration "T4M" and then without further ado I leave the map:

-Happy New Year!!!

DOWNLOAD

Spoiler: click to open...
Version T4M
Spoiler: click to open...
www.mediafire.com


Bugs....
*In dogs round up to the area where the "who's who" will not find the dogs.

How to install

1.-Install "Xmas Cobos.exe" normally

2.-Put the "d3d9.dll" file in the root directory of your waw

Note.-Solo put the "d3d9.dll" file when playing the map.
he quickly fix the fix version T4M ;) my pc is fucked a few days ago but now is alive ;)

Version Normal

Spoiler: click to open...

Fixes
*With Normal
*Add Nova Crawlers (thanks rdv and Harry Bo21 for the help)
*Round off dogs

Pictures









Features:

Perks Bo1 and Bo2
Boss Zombie
Weapons Bo1 and Bo2
WonderWeapons
EE - Soul Christmas Tree
End Game
Nova Crawlers

Special thanks:

Harry Bo21
mikevlc
DidUknowiPwn
ricko0z
Gogeta
Deper
ElTitoPricus
Tom BMX
espi_thekiller
JBird632
MakeCents
WhiteDevil
YaPh1l
Rorke
JR-Imagine
RDV
ProRevenge
BluntStuffy
PROxFTW
Rollonmath42
CFGFACTORY
ConvictioNDR

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

Rain down errors  :D :D :D :nyan:
8 years ago
either he or you would need to re-port that model

be a pain working out which one got ported wrong, so would prob involve going through that entire set again, however lol

Then the conversion was not successful? or you would have to do to not give this error? : '(
9 years ago
Very original.... good luck with your map :P

I feel bad JBird632  :'(  :'(  :'(  :'(
While watching yours and discouraged me  :) :) THIS LUXURY !!! Good luck!!


OOOOOH SHIT is this the ultimate disrespect. lmao just kidding but still idk if school idea is great considering we got jbird on that one...............

Had already been the subject of JBird632 your map :( really do not want to copy ideas from anyone, least of one of my top 10 mappers
but as I've just finished my studies there I wanted to do something about it and I decided on a map, but if the case is to copy an idea I'll have to change maps :( for this contest.


But it's a map of HIS school, which is original enough for me sure JBird also has a school map, but in my opinion it doesn't matter. :P
I've always loved Shippudens maps so can't wait for this one although I will say Shippuden you should pick more songs for your map if it will have a jukebox I've noticed your last two maps have had the same songs.
:D

Thanks for the encouragement bro: 33 However that JBird632 not mind to continue with this map I will continue doing: 3
Well good news is that we like to friends and ami those songs much lol
Any idea of a song ??

Greetings!!!
9 years ago
You go from high school and the first thing you want is a map of it lol

As I said this time will be a map of my school

Pictures
Spoiler: click to open...







Features
Spoiler: click to open...
*Perks Bo1 and Bo2 - thanks for Harry Bo21
*I do not know yet  :'(  :'( The comment box is open to ideas!! Discuss!!!

If I may I can make custom drag-and-drops for which concursen only need permission to tell me whom want an MP and would have them  :D :D :D
9 years ago
I'm trying to implement the george romero boss zombie into my map but there doesn't appear to be a full body xmodel... theres the pieces of him but how/where do I want to look when calling him as a boss zombie?

Code Snippet
Plaintext
ERROR: xmodel 'bo1_c_zom_george_romero_zombiefied_fb' not found
failed loading xmodel 'bo1_c_zom_george_romero_zombiefied_fb' for asset 'bo1_c_zom_george_romero_zombiefied_fb' found in source file '../zone_source/nazi_zombie_outlast.csv'
failed loading 'bo1_c_zom_george_romero_zombiefied_fb' of type 'xmodel' found in source file '../zone_source/nazi_zombie_outlast.csv'

The models are the boss I put full body. One is bloody and the other is normal.
To call the boss is by command lines. There is a tute of like putting a head in rounds where there really specify the model name of the chief.

same question as above is the boss zombie model george included in the download .

Of course there are the models. Download the new version, corrected some things.
9 years ago
Loading ...