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.

Topics - shippuden1592



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

801 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 ;)
924 days ago
Fresh out of the oven .... A small preview of an IW weapons project ... Enjoy the weapon ...





Credits:
DTZxPorter
Sanchez78
ElTitoPricus
Ricko0z
1071 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 ;)
1099 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 ;)
1432 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:

1441 days 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:

Sorry but you are not allowed to view spoiler contents.

I'll be posting updates soon....


Which is the maximum allowed models???
1452 days 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

Sorry but you are not allowed to view spoiler contents.

Version Normal

Sorry but you are not allowed to view spoiler contents.
[/spoiler]

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:
1653 days 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
Sorry but you are not allowed to view spoiler contents.

Features
Sorry but you are not allowed to view spoiler contents.

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
1798 days ago


Hello such people and slightly behind this christmas but anyway here are the map and I hope to enjoy any errors or constructive advice let it in the comments.


Mediafire


Mega

mega.co.nz


PICTURES







Caracteristicas
*BO Perks y electric cherry
*Weapons MW,BO1,BO2 (4 Wonder weapons)
*Custom Sky
*Custom Zombies (BO1 y BO2)
*Build Power Switch
*Boss
*End Game
*Custom Main Menu thanks for DidUknowiPwn

Credits :
*Tito
*deper
*Gogeta22344
*pedrehitor74
*Espi_thekiller
*javipotter
*Tom_BMX
*treminaor
*JR-Imagine
*bamskater33
*ZOMB1E-KLLR
*ConvictioNDR
*zombie madness
*elfenliedtopfan5
*rollonmath42
*jjbradman
*DidUknowiPwn
*Zer0w
*reaaL
*Slash
*UGX-Community
2005 days ago
Hello there people here I bring different models of zombies of Bo1 and Bo2.

Simply drag the files that come in the rar to your mods folder at:

C:\Users\*Usuario*\AppData\Local\Activision\CoDWaW\mods\mapname

and replaces the "localized_mapname" with the name of your map. example "localized_nazi_zombie_cobos".


BO1

Five




Ascension



ugx-mods.com


Call of the Dead



www.mediafire.com


Comes including romero boss, if you plan to use this is the name of their models:
Note: The model of the boss is already included in the .ff file there is no need for it on your mod.csv


bo1_c_zom_george_romero_light_fb
bo1_c_zom_george_romero_zombiefied_fb

Shangri la




They are also included:

-Napalm (models name):


bo1_c_viet_zombie_napalm
bo1_c_viet_zombie_napalm_head

-Shrieker Zombie (models name):

bo1_c_viet_zombie_sonic_bandanna
bo1_c_viet_zombie_sonic_body
bo1_c_viet_zombie_sonic_g_headoff
bo1_c_viet_zombie_sonic_head

Go to _zombiemode_spawner and search function "zombie_head_gib (attacker)" and replace it with this:

zombie_head_gib( attacker )
{
if ( is_german_build() )
{
return;
}

if( IsDefined( self.head_gibbed ) && self.head_gibbed )
{
return;
}

if( !isDefined( level.head_gibs_this_frame ) )
{
level thread cap_zombie_head_gibs();
}

if( level.head_gibs_this_frame >= level.max_head_gibs_per_frame )
{
return;
}

level.head_gibs_this_frame++;

self.head_gibbed = true;
self zombie_eye_glow_stop();

size = self GetAttachSize();
for( i = 0; i < size; i++ )
{
model = self GetAttachModelName( i );
if( IsSubStr( model, "head" ) )
{
// SRS 9/2/2008: wet em up
self thread headshot_blood_fx();
precacheModel("bo1_c_viet_zombie_nohat");
self.hatmodel_launch = spawn("script_model",self.origin + (0,0,64));
self.hatmodel_launch setmodel("bo1_c_viet_zombie_nohat");
self.hatmodel_launch PhysicsLaunch( self.hatmodel_launch.origin, (0,0,5000) );
self.hatmodel_launch thread timed_delete(5);

if(self.hatModel == "bo1_c_viet_zombie_nva1_gasmask")
self Detach("bo1_c_viet_zombie_nva1_gasmask", "" , true);
else
self Detach("bo1_c_viet_zombie_nohat", "" , true);

self play_sound_on_ent( "zombie_head_gib" );

self Detach( model, "", true );
self Attach( "char_ger_honorgd_zomb_behead", "", true );
break;
}
}

self thread damage_over_time( self.health * 0.2, 1, attacker );
}

timed_delete(time)
{
wait time;
self delete();
}

Moon



ugx-mods.com


UGX Version

www.mediafire.com



BO2


Tranzit



ugx-mods.com


Nuketown



www.mediafire.com


go to _zombiemode_spawner function in "zombie_head_gib( attacker )" replaces this

self Attach( "char_ger_honorgd_zomb_behead", "", true );

for all this

if(self.model == "bo2_c_zom_dlc0_zom_haz_body1")
self Attach( "bo2_c_zom_dlc0_zom_haz_body1_behead", "", true );

else if(self.model == "bo2_c_zom_dlc0_zom_haz_body2")
self Attach( "bo2_c_zom_dlc0_zom_haz_body2_behead", "", true );

else if(self.model == "bo2_c_zom_dlc0_zom_solciv_body1")
self Attach( "bo2_c_zom_dlc0_zom_solciv_body1_behead", "", true );

else if(self.model == "bo2_c_zom_dlc0_zom_sol_body1")
self Attach( "bo2_c_zom_dlc0_zom_sol_body1_behead", "", true );

else
self Attach( "char_ger_honorgd_zomb_behead", "", true );

Die Rise



www.mediafire.com


Mod of the dead - Version UGX - Coming soon



Buried




Replace all "zombie_head_gib" function with this:

zombie_head_gib( attacker )
{
if ( is_german_build() )
{
return;
}

if( IsDefined( self.head_gibbed ) && self.head_gibbed )
{
return;
}

if( !isDefined( level.head_gibs_this_frame ) )
{
level thread cap_zombie_head_gibs();
}

if( level.head_gibs_this_frame >= level.max_head_gibs_per_frame )
{
return;
}

level.head_gibs_this_frame++;

self.head_gibbed = true;
self zombie_eye_glow_stop();

size = self GetAttachSize();
for( i = 0; i < size; i++ )
{
model = self GetAttachModelName( i );
if( IsSubStr( model, "head" ) )
{
// SRS 9/2/2008: wet em up
self thread headshot_blood_fx();

precacheModel("bo2_c_zom_zombie_buried_civilian_hats1");
precacheModel("bo2_c_zom_zombie_buried_civilian_hats2");
precacheModel("bo2_c_zom_zombie_buried_civilian_hats3");
precacheModel("bo2_c_zom_zombie_buried_civilian_hats4");
precacheModel("bo2_c_zom_zombie_buried_miner_hats1");
precacheModel("bo2_c_zom_zombie_buried_miner_hats2");
precacheModel("bo2_c_zom_zombie_buried_civilian_nohat");

self.hatmodel_launch = spawn("script_model",self.origin + (0,0,64));
self.hatmodel_launch setmodel(self.hatModel);
self.hatmodel_launch PhysicsLaunch( self.hatmodel_launch.origin, (0,0,5000) );
self.hatmodel_launch thread timed_delete(5);

self Detach(self.hatModel, "" , true);

self play_sound_on_ent( "zombie_head_gib" );

self Detach( model, "", true );

if(self.model == "bo2_c_zom_zombie_buried_sgirl_body1" || self.model == "bo2_c_zom_zombie_buried_sgirl_body2" || self.model == "bo2_c_zom_zombie_buried_sgirl_body3")
self Attach( "bo2_c_zom_zombie_buried_sgirl_g_behead", "", true );
else
self Attach( "bo2_c_zom_zombie_buried_civilian_g_behead", "", true );
break;
}
}

self thread damage_over_time( self.health * 0.2, 1, attacker );
}

timed_delete(time)
{

wait time;

self delete();

}


Origins - Coming soon



Note.- If you want to combine any of these packs with the waw zombies do the following:
Open your namedrop.iwd and seek "AItype" folder in there open the "axis_zombie_ger_ber_sshonor.gsc" file
In the switch where "codescripts \ character :: get_random_character (3)" says depending on the number you have total 2.
And add two case more like this:


case 0:
character\char_ger_honorguard_zombies::main();
break;
  case 1:
character\char_ger_honorguard2_zombies::main();
break;

Remember that the number of the case will depend on the above.

And add this:


character\char_ger_honorguard_zombies::precache();
character\char_ger_honorguard2_zombies::precache();

under another "character".

Note.- If you use any of the models also thank bo2 "deper" since I spend the models.

Thanks to
deper (by models)
jei9363
ConvictioNDR

Any questions or comments Leave him mistake !!!!!
2033 days ago
Hello there people.
I come to bring 2 different camos for your custom maps and I hope you like it.
Note: If you want you can make a copy of your files to replace.

First you have to download the .Rar, which is posted at the bottom of this post.

There will be 4 folders in the file:
camo2
images
material_properties
materials

We all with the exception of the "camo2" to root / raw and we would have to replace and you put the first camo. If you want to put the other simply copy the images that are in the "camo2" raw folder / images and the other would be camo.
Do not forget to spend your mapname pictures / images and mark them in the mod.

A few pictures:



2093 days ago
Hello there people in the community.
This time I come with a pack of zombies bo2.


UGX Version

www.mediafire.com


Normal Version

www.mediafire.com


Simply drag the files that come in the rar to your mods folder at:

C:\Users\*Usuario*\AppData\Local\Activision\CoDWaW\mods\mapname

and replaces the "localized_mapname" with the name of your map. example "localized_nazi_zombie_cobos".



PICTURES







Upcoming pack`s
Call of the dead
Shangri la
Die Rise (maybe)
Buried (maybe)


Note: If anyone is in the map contest Christmas and want to use any of these zombies warn by mp. Only those who participate.

Thanks to
deper (by models)
jei9363
ConvictioNDR


Any questions or comments Leave him mistake !!!!!
2093 days ago
Hello there people in the community.
This time I come with a pack of zombies bo1.


UGX Version

www.mediafire.com


Normal Version

www.mediafire.com


Simply drag the files that come in the rar to your mods folder at:

C:\Users\*Usuario*\AppData\Local\Activision\CoDWaW\mods\mapname

and replaces the "localized_mapname" with the name of your map. example "localized_nazi_zombie_cobos".



PICTURES








Upcoming pack`s
Call of the dead
Shangri la
Tranzit (maybe)
Die Rise (maybe)
Buried (maybe)


Thanks to
jei9363
ConvictioNDR


Any questions or comments Leave him mistake !!!!!
2099 days ago
Hello there people in the community.
This time I come with a pack of zombies bo1.


Version Fixed
[/size]
www.mediafire.com


PICTURES



Go to _zombiemode_spawner.gsc and find this "zombie_head_gib (attacker)" function to replace all of this:

zombie_head_gib( attacker )
{
if ( is_german_build() )
{
return;
}

if( IsDefined( self.head_gibbed ) && self.head_gibbed )
{
return;
}

if( !isDefined( level.head_gibs_this_frame ) )
{
level thread cap_zombie_head_gibs();
}

if( level.head_gibs_this_frame >= level.max_head_gibs_per_frame )
{
return;
}
 
level.head_gibs_this_frame++;

self.head_gibbed = true;
self zombie_eye_glow_stop();

size = self GetAttachSize();
for( i = 0; i < size; i++ )
{
model = self GetAttachModelName( i );
if( IsSubStr( model, "head" ) )
{
// SRS 9/2/2008: wet em up
self thread headshot_blood_fx();
if(self.zomb_text == "tech_cap_1")
{
precacheModel("bo1_c_zom_moon_tech_cap_1");
self.hatmodel_launch = spawn("script_model",self.origin + (0,0,64));
self.hatmodel_launch setmodel("bo1_c_zom_moon_tech_cap_1");
self.hatmodel_launch PhysicsLaunch( self.hatmodel_launch.origin, (0,0,5000) );
self.hatmodel_launch thread timed_delete(5);

self Detach("bo1_c_zom_moon_tech_cap_1", "" , true);
}
else if(self.zomb_text == "tech_cap_2")
{
precacheModel("bo1_c_zom_moon_tech_cap_2");
self.hatmodel_launch = spawn("script_model",self.origin + (0,0,64));
self.hatmodel_launch setmodel("bo1_c_zom_moon_tech_cap_2");
self.hatmodel_launch PhysicsLaunch( self.hatmodel_launch.origin, (0,0,5000) );
self.hatmodel_launch thread timed_delete(5);

self Detach("bo1_c_zom_moon_tech_cap_2", "" , true);
}
else if(self.zomb_text == "tech_cap_3")
{
precacheModel("bo1_c_zom_moon_tech_cap_3");
self.hatmodel_launch = spawn("script_model",self.origin + (0,0,64));
self.hatmodel_launch setmodel("bo1_c_zom_moon_tech_cap_3");
self.hatmodel_launch PhysicsLaunch( self.hatmodel_launch.origin, (0,0,5000) );
self.hatmodel_launch thread timed_delete(5);

self Detach("bo1_c_zom_moon_tech_cap_3", "" , true);
}

self play_sound_on_ent( "zombie_head_gib" );

self Detach( model, "", true );
self Attach( "char_ger_honorgd_zomb_behead", "", true );
break;
}
}

self thread damage_over_time( self.health * 0.2, 1, attacker );
}

And add this at the end:

timed_delete(time)
{

wait time;

self delete();

}

Upcoming pack`s
Call of the dead
Shangri la
Ascension
Tranzit (maybe)


Thanks to
jei9363
ConvictioNDR


Any questions or comments Leave him mistake !!!!!

2107 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 Facebook
Sign In with Twitch
Loading ...