Where can be the problem ? I don't get it
PHP Code:
public fw_PlayerSpawn( id )
{
// Not alive or didn't join a team yet
if ( !is_user_alive( id ) || !cs_get_user_team( id ) )
return;
// Set to Survivor if on Counter team
g_survivor[id] = cs_get_user_team( id ) == CS_TEAM_CT ? true : false;
// Remove previous tasks (if any)
remove_task( id + MODELSET_TASK )
if ( g_survivor[id] )
{
switch (random_num(1, 2))
{
case 1: copy(g_player_model[id], sizeof g_player_model[] - 1, ModelT1)
case 2: copy(g_player_model[id], sizeof g_player_model[] - 1, ModelT2)
}
else if ( g_survivor[id] ) = cs_get_user_team( id ) == CS_TEAM_T ? true : false;
{
case 1: copy(g_player_model[id], sizeof g_player_model[] - 1, ModelCT1)
case 2: copy(g_player_model[id], sizeof g_player_model[] - 1, ModelCT2)
}
// Get current model
new currentmodel[32]
fm_get_user_model( id, currentmodel, charsmax( currentmodel ) )
// Check whether it matches the custom model
if ( !equal( currentmodel, g_player_model[id] ) )
{
// An additional delay is offset at round start
// since SVC_BAD is more likely to be triggered there
if ( get_gametime() - g_roundstarttime < 5.0 )
set_task( 5.0 * MODELCHANGE_DELAY, "fm_user_model_update", id + MODELSET_TASK )
else
fm_user_model_update( id + MODELSET_TASK )
}
}
// Not a survivor, but still has a custom model
else if ( g_has_custom_model[id] )
{
// Reset it back to the default one
fm_reset_user_model( id )
}
}
public fw_SetClientKeyValue( id, const infobuffer[], const key[] )
{
// Block CS model changes
if ( g_has_custom_model[id] && equal( key, "model" ) )
return FMRES_SUPERCEDE;
return FMRES_IGNORED;
}
public fw_ClientUserInfoChanged( id )
{
// Player doesn't have a custom model
if ( !g_has_custom_model[id] )
return FMRES_IGNORED;
// Get current model
static currentmodel[32]
fm_get_user_model( id, currentmodel, charsmax( currentmodel ) )
// Check whether it matches the custom model - if not, set it again
if ( !equal( currentmodel, g_player_model[id] ) && !task_exists( id + MODELSET_TASK ) )
fm_set_user_model( id + MODELSET_TASK )
return FMRES_IGNORED;
}
public fm_user_model_update( taskid )
{
static Float:current_time
current_time = get_gametime()
// Do we need a delay?
if ( current_time - g_models_targettime >= MODELCHANGE_DELAY )
{
fm_set_user_model( taskid )
g_models_targettime = current_time
}
else
{
set_task( (g_models_targettime + MODELCHANGE_DELAY) - current_time, "fm_set_user_model", taskid )
g_models_targettime = g_models_targettime + MODELCHANGE_DELAY
}
}
public fm_set_user_model( player )
{
// Get actual player id
player -= MODELSET_TASK
// Set new model
engfunc( EngFunc_SetClientKeyValue, player, engfunc( EngFunc_GetInfoKeyBuffer, player ), "model", g_player_model[player] )
// Remember this player has a custom model
g_has_custom_model[player] = true
}
stock fm_get_user_model( player, model[], len )
{
// Retrieve current model
engfunc( EngFunc_InfoKeyValue, engfunc( EngFunc_GetInfoKeyBuffer, player ), "model", model, len )
}
stock fm_reset_user_model( player )
{
// Player doesn't have a custom model any longer
g_has_custom_model[player] = false
dllfunc( DLLFunc_ClientUserInfoChanged, player, engfunc( EngFunc_GetInfoKeyBuffer, player ) )
}