Mhh my opinion is little different, i used this because the hiddenflag caused changerace problems..(I want to make it hidden to stop people asking the admins)
my example:
Step 1 : Add the private race users to the admin database with AdminFlag T (Custom Adminflag 6)
Step 2 : Open War3Source_Engine_MenuChangerace.sp and search for this line :
Format(rdisp,sizeof(rdisp),"%s%T",extra,"{racename} [L {amount}] ({amount}:{amount})",GetTrans(),rname,War3_GetLevel(client,x),yourteam,otherteam); then add this :
if(!StrEqual(rname, "PRIVATE RACE FULL NAME"))
{
###CODE###
}Example :
if(!StrEqual(rname, "Lich"))
{
Format(rdisp,sizeof(rdisp),"%s%T",extra,"{racename} [L {amount}] ({amount}:{amount})",GetTrans(),rname,War3_GetLevel(client,x),yourteam,otherteam);
new minlevel=W3GetRaceMinLevelRequired(x);
if(minlevel<0) minlevel=0;
if(minlevel)
{
Format(rdisp,sizeof(rdisp),"%s %T",rdisp,"reqlvl {amount}",GetTrans(),minlevel);
}
AddMenuItem(crMenu,rbuf,rdisp,(minlevel<=W3GetTotalLevels(client)||W3IsDeveloper(client))?ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);
}
Step 3 : add a changerace console command or something like that to the race you want to make private
Example :
RegAdminCmd("war3_private_lich", Command_HiddenLich, ADMFLAG_CUSTOM6, "Private Race");
public Action:Command_HiddenLich(client, args)
{
War3_SetRace(client,thisRaceID);
}
(BTW. It appears in raceinfo, war3stats etc. but is not displayed in changerace)
very complex but it should work great
Mfg
Revan