Code:
alienme(id, facehugger)
{
ExecuteForward(g_fwUserAlien_attempt, g_fwReturnValue, id, facehugger);
if (g_fwReturnValue >= AVP_PLUGIN_HANDLED && !g_newround && fn_GetAliens() > g_lastplayerleaving)
return;
ExecuteForward(g_fwUserAlienized_pre, g_fwReturnValue, id, facehugger);
if (g_predator[id] && g_thermal_nvision[id])
{
emit_sound(id, CHAN_STATIC, PRD_VISION_SOUNDS[3], VOL_NORM, ATTN_NORM, SND_STOP, PITCH_NORM);
play_ambience_sound(id);
}
reset_vars(id, 0);
g_alien[id] = true;
if (!facehugger)
{
switch (get_pcvar_num(cvar_alien_camera))
{
case 1: set_view(id, CAMERA_UPLEFT);
case 2: set_view(id, CAMERA_3RDPERSON);
}
}
else
{
g_facehugger[id] = true;
set_view(id, CAMERA_3RDPERSON);
}
drop_user_weapons(id, 1);
drop_user_weapons(id, 2);
if (cs_get_user_team(id) != CS_TEAM_T)
cs_set_user_team(id, CS_TEAM_T);
play_array_sound(id, CHAN_VOICE, alien_turnedin);
if (is_user_bot(id) && !facehugger)
g_alien_class[id][0] = random_num(0, g_alien_classes_i - 1);
else
{
set_task(1.0, "task_screen_fade", id+TASK_SCREENFADE, _, _, "b");
if (get_pcvar_num(cvar_alien_nvision[0]) > 0)
{
g_nvision[id] = true;
if (get_pcvar_num(cvar_alien_nvision[0]) == 1)
{
set_task(0.1, "task_set_user_nvision", id+TASK_NVISION, _, _, "b")
g_nvisionenabled[id] = true;
}
}
}
if (!facehugger)
{
g_alien_class[id][1] = g_alien_class[id][0];
new eClassData[ClassData];
ArrayGetArray(array_alien_classes, g_alien_class[id][0], eClassData);
set_user_health(id, eClassData[ClassHealth]);
set_user_gravity(id, eClassData[ClassGravity]);
cs_set_player_model(id, eClassData[ClassModel]);
strip_user_weapons(id);
give_item(id, "weapon_knife");
}
else
{
set_user_health(id, get_pcvar_num(cvar_facehugger_health));
set_user_gravity(id, get_pcvar_float(cvar_facehugger_gravity));
cs_set_player_model(id, facehugger_model);
strip_user_weapons(id);
}
ExecuteHamB(Ham_Player_ResetMaxSpeed, id);
menu_game(id);
ExecuteForward(g_fwUserAlienized_post, g_fwReturnValue, id, facehugger);
}