SetPlayerSkin
Descrição
Defina a skin de um jogador. A pele de um jogador é o modelo de seu personagem.
| Nome | Descrição |
|---|---|
| playerid | O ID do jogador cujo skin será definido. |
| skinid | A skin que o jogador deve usar. |
Retornos
true – A função foi executada com sucesso.
false - Falha na execução da função. Isso significa que o jogador especificado não existe.
Observe que o 'sucesso' é relatado mesmo quando o skin ID é inválido (não 0-311 ou 74), mas o skin será definido como ID 0 (CJ).
Exemplos
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/fireman", true) == 0)
{
// Defina a skin do jogador como ID 277, que é um bombeiro.
SetPlayerSkin(playerid, 277);
return 1;
}
return 0;
}
SetPlayerSkinFix(playerid, skinid)
{
if (!IsPlayerConnected(playerid))
{
return 0;
}
// Caso o ID da skin seja inválido, menor que 0, maior que 311 ou igual a 74 (skin inválida), então não faça nada
if (0 > skinid > 311 || skinid == 74)
{
return 0;
}
new
Float:tmpPos[4],
vehicleid = GetPlayerVehicleID(playerid),
seatid = GetPlayerVehicleSeat(playerid);
GetPlayerPos(playerid, tmpPos[0], tmpPos[1], tmpPos[2]);
GetPlayerFacingAngle(playerid, tmpPos[3]);
if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
{
SetPlayerPos(playerid, tmpPos[0], tmpPos[1], tmpPos[2]);
SetPlayerFacingAngle(playerid, tmpPos[3]);
TogglePlayerControllable(playerid, true); // evita qualquer congelamento - opcional
return SetPlayerSkin(playerid, skinid);
}
else if (IsPlayerInAnyVehicle(playerid))
{
new
tmp;
RemovePlayerFromVehicle(playerid);
SetPlayerPos(playerid, tmpPos[0], tmpPos[1], tmpPos[2]);
SetPlayerFacingAngle(playerid, tmpPos[3]);
TogglePlayerControllable(playerid, true); // evitando qualquer congelamento - importante! por causa de fazer animações de saída do veículo
tmp = SetPlayerSkin(playerid, skinid);
PutPlayerInVehicle(playerid, vehicleid, (seatid == 128) ? 0 : seatid);
return tmp;
}
else
{
return SetPlayerSkin(playerid, skinid);
}
}
Notas
aviso
Erros conhecidos:
- Se a skin de um jogador for definida quando ele estiver agachado, em um veículo ou executando certas animações, ele ficará congelado ou com falhas. Isso pode ser corrigido usando TogglePlayerControllable.
- Os jogadores podem ser detectados como agachados através de GetPlayerSpecialAction (SPECIAL_ACTION_DUCK).
- Outros jogadores ao redor do jogador podem bater se ele estiver em um veículo ou se estiver entrando/saindo de um veículo.
- Definir a skin de um jogador quando ele está morto pode derrubar os jogadores ao seu redor.
- Pausas sentadas nas bicicletas.
Funções Relacionadas
- GetPlayerSkin: Obtenha a skin atual de um jogador.
- SetSpawnInfo: Defina a configuração de spawn para um jogador.