Call of Duty bo3: ZM Player Models: Difference between revisions

From COD Modding & Mapping Wiki
Jump to navigation Jump to search
(Created page with "This tutorial will explain how to change the regular Zombie Player models (Dempsey, Richtofen, Nikolai and Takeo) with Shadow of Evil player models. Another tutorial will be d...")
 
 
Line 39: Line 39:
return charindexarray[0];
return charindexarray[0];
}
}
else // 2 or more players just assign the lowest unused value
.
{
.
n_characters_defined = 0;
.
 
.
foreach ( player in players )
.
{
.
if ( isDefined( player.characterIndex ) )
{
ArrayRemoveValue( charindexarray, player.characterIndex, false );
n_characters_defined++;
}
}
if ( charindexarray.size > 0 )
{
// If this is the last guy and we don't have Richtofen in the group yet, make sure he's Richtofen
if ( n_characters_defined == (players.size - 1) )
{
if ( !IS_TRUE( level.has_richtofen ) )
{
level.has_richtofen = true;
return 2;
}
}
// Randomize the array
charindexarray = array::randomize(charindexarray);
if ( charindexarray[0] == 2 )
{
level.has_richtofen = true;
}
 
return charindexarray[0];
}
}
 
//failsafe
return 0;
}
}
</pre>
</pre>

Latest revision as of 05:05, 18 October 2016

This tutorial will explain how to change the regular Zombie Player models (Dempsey, Richtofen, Nikolai and Takeo) with Shadow of Evil player models. Another tutorial will be done to explain how to create your own Zombie Player Characters

How it works

  • The zm_usermap.gsc script provided in the Modtools contains the code we need to change to change the assigned Player Models / Characters
  • It now uses indexes (this will be covered in another tutorial)

Lets do this

  • Locate zm_usermap.gsc in \Call of Duty Black Ops III\share\raw\scripts\zm\
  • Copy it and navigate to your map/mod script folder
mods: \Call of Duty Black Ops III\mods\zm_yourmod\scripts\zm
maps: \Call of Duty Black Ops III\usermaps\zm_yourmap\scripts\zm
  • Paste it there
  • open the script and locate the function assign_lowest_unused_character_index(), looks like this
function assign_lowest_unused_character_index()
{
	//get the lowest unused character index
	charindexarray = [];
	charindexarray[0] = 0;// - Dempsey 0)
	charindexarray[1] = 1;// - Nikolai 1)
	charindexarray[2] = 2;// - Richtofen 2)
	charindexarray[3] = 3;// - Takeo 3)

	players = GetPlayers();
	if ( players.size == 1 )
	{
		charindexarray = array::randomize( charindexarray );
		if ( charindexarray[0] == 2 )
		{
			level.has_richtofen = true;
		}

		return charindexarray[0];
	}
	.
	.
	.
	.
	.
	.
}
  • in the top part you can see that the following indexes match certain players characters, the full table is as follow:
Index Character
0 Dempsey
1 Nikolai
2 Richtofen
3 Takeo
4 Shadow of Evil Beast
5 Floyd Campbell
6 Jack Vincent
7 Jessica Rose
8 Nero Blackstone
9 Nikolai
10 untested
11 ..
  • Following the above table you can now change the index in the script, for instance to get all 4 Shadow of Evil Character you would use this:
	charindexarray[0] = 5;
	charindexarray[1] = 6;
	charindexarray[2] = 7;
	charindexarray[3] = 8;
  • Alternatively if you wanted 2X Richtofen and 2X Jack Vincent you can do:
	charindexarray[0] = 2;
	charindexarray[1] = 6;
	charindexarray[2] = 2;
	charindexarray[3] = 6;
  • Or just one character (great to test in solo)
	charindexarray[0] = 7;
	charindexarray[1] = 7;
	charindexarray[2] = 7;
	charindexarray[3] = 7;
  • Once you made your changes, save the file and open your map / mod Zone file and add this line:
scriptparsetree,scripts/zm/zm_usermap.gsc
  • You can now compile/link and try it out!


--Zeroy (talk) 02:04, 18 October 2016 (UTC)