

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.zeroy.com/index.php?action=history&amp;feed=atom&amp;title=Call_of_duty_bo3%3A_ZM_Cleanup</id>
	<title>Call of duty bo3: ZM Cleanup - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.zeroy.com/index.php?action=history&amp;feed=atom&amp;title=Call_of_duty_bo3%3A_ZM_Cleanup"/>
	<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_duty_bo3:_ZM_Cleanup&amp;action=history"/>
	<updated>2026-05-06T15:32:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_duty_bo3:_ZM_Cleanup&amp;diff=17174&amp;oldid=prev</id>
		<title>Zeroy: Created page with &quot;== Explanation ==  This code here will allow for 2 things: &lt;br&gt; * Removing and re-spawning Zombies too far from the player into a zone closer to the player * Add Point Of Inte...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_duty_bo3:_ZM_Cleanup&amp;diff=17174&amp;oldid=prev"/>
		<updated>2018-02-23T22:11:43Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Explanation ==  This code here will allow for 2 things: &amp;lt;br&amp;gt; * Removing and re-spawning Zombies too far from the player into a zone closer to the player * Add Point Of Inte...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Explanation ==&lt;br /&gt;
&lt;br /&gt;
This code here will allow for 2 things:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Removing and re-spawning Zombies too far from the player into a zone closer to the player&lt;br /&gt;
* Add Point Of Interest using &amp;quot;dog_location&amp;quot; for Zombies during Solo Revive or Zombie Blood&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
* In your Map GSC, before the first Main function add this:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#using scripts\zm\zm_giant_cleanup_mgr;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* After the zm_usermap::main() in the Main function add this:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	level.enemy_location_override_func = &amp;amp;enemy_location_override;&lt;br /&gt;
	level.no_target_override = &amp;amp;no_target_override;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now after the main function add this new functions:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function enemy_location_override( zombie, enemy )&lt;br /&gt;
{&lt;br /&gt;
	AIProfile_BeginEntry( &amp;quot;factory-enemy_location_override&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
	if ( IS_TRUE( zombie.is_trapped ) )&lt;br /&gt;
	{&lt;br /&gt;
		AIProfile_EndEntry();&lt;br /&gt;
		return zombie.origin;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	AIProfile_EndEntry();&lt;br /&gt;
	return undefined;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// --------------------------------&lt;br /&gt;
//	NO TARGET OVERRIDE&lt;br /&gt;
// --------------------------------&lt;br /&gt;
function validate_and_set_no_target_position( position )&lt;br /&gt;
{&lt;br /&gt;
	if( IsDefined( position ) )&lt;br /&gt;
	{&lt;br /&gt;
		goal_point = GetClosestPointOnNavMesh( position.origin, 100 );&lt;br /&gt;
		if( IsDefined( goal_point ) )&lt;br /&gt;
		{&lt;br /&gt;
			self SetGoal( goal_point );&lt;br /&gt;
			self.has_exit_point = 1;&lt;br /&gt;
			return true;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function no_target_override( zombie )&lt;br /&gt;
{&lt;br /&gt;
	if( isdefined( zombie.has_exit_point ) )&lt;br /&gt;
	{&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	players = level.players;&lt;br /&gt;
	&lt;br /&gt;
	dist_zombie = 0;&lt;br /&gt;
	dist_player = 0;&lt;br /&gt;
	dest = 0;&lt;br /&gt;
&lt;br /&gt;
	if ( isdefined( level.zm_loc_types[ &amp;quot;dog_location&amp;quot; ] ) )&lt;br /&gt;
	{&lt;br /&gt;
		locs = array::randomize( level.zm_loc_types[ &amp;quot;dog_location&amp;quot; ] );&lt;br /&gt;
		&lt;br /&gt;
		for ( i = 0; i &amp;lt; locs.size; i++ )&lt;br /&gt;
		{&lt;br /&gt;
			found_point = false;&lt;br /&gt;
			foreach( player in players )&lt;br /&gt;
			{&lt;br /&gt;
				if( player laststand::player_is_in_laststand() )&lt;br /&gt;
				{&lt;br /&gt;
					continue;&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				away = VectorNormalize( self.origin - player.origin );&lt;br /&gt;
				endPos = self.origin + VectorScale( away, 600 );&lt;br /&gt;
				dist_zombie = DistanceSquared( locs[i].origin, endPos );&lt;br /&gt;
				dist_player = DistanceSquared( locs[i].origin, player.origin );&lt;br /&gt;
		&lt;br /&gt;
				if ( dist_zombie &amp;lt; dist_player )&lt;br /&gt;
				{&lt;br /&gt;
					dest = i;&lt;br /&gt;
					found_point= true;&lt;br /&gt;
				}&lt;br /&gt;
				else&lt;br /&gt;
				{&lt;br /&gt;
					found_point = false;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if( found_point )&lt;br /&gt;
			{&lt;br /&gt;
				if( zombie validate_and_set_no_target_position( locs[i] ) )&lt;br /&gt;
				{&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	escape_position = zombie giant_cleanup::get_escape_position_in_current_zone();&lt;br /&gt;
			&lt;br /&gt;
	if( zombie validate_and_set_no_target_position( escape_position ) )&lt;br /&gt;
	{&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	escape_position = zombie giant_cleanup::get_escape_position();&lt;br /&gt;
	&lt;br /&gt;
	if( zombie validate_and_set_no_target_position( escape_position ) )&lt;br /&gt;
	{&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	zombie.has_exit_point = 1;&lt;br /&gt;
	&lt;br /&gt;
	zombie SetGoal( zombie.origin );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zone File ==&lt;br /&gt;
&lt;br /&gt;
* In your Zone file add this line:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scriptparsetree,scripts/zm/zm_giant_cleanup_mgr.gsc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
This is Treyarch&amp;#039;s code, as seen in The Giant&lt;br /&gt;
&lt;br /&gt;
~~&lt;/div&gt;</summary>
		<author><name>Zeroy</name></author>
	</entry>
</feed>