26/03/2023 08:46
(26/03/2023 00:07)hiago01 Escreveu: Aqui está e que não sei lidar muito com forum mais ai está obrigado pela respostaTem muita coisa confusa/desnecessária nesse código.
Código:if(PlayerData[playerid][pAdmin] >= 1)
{
if (!IsValidDynamic3DTextLabel(PlayerSpawnLabel[playerid]))
{
format(strsave, sizeof(strsave), "{00FF00} ID: {FFFFFF}%i {00FF00}({FFFFFF}%s{00FF00})\n Nome: {FFFFFF}%s\n", i, PlayerName(i), GetName(i));
PlayerSpawnLabel[i] = CreateDynamic3DTextLabel(strsave, 0xFFFFFFFF, 0.0, 0.0, 0.1, NT_DISTANCE, .attachedplayer = i, .testlos = 1);
}
Attach3DTextLabelToPlayer(PlayerSpawnLabel[i], i, 0.0, 0.0, 0.27);
}
if(PlayerData[playerid][pAdmin] < 1)
{
if (IsValidDynamic3DTextLabel(PlayerSpawnLabel[i]))
{
Delete3DTextLabel(PlayerSpawnLabel[i]);
PlayerSpawnLabel[i] = Text3D:INVALID_3DTEXT_ID;
KillTimer(SpawnLabelDespawnTimer[i]);
}
}
if(PlayerData[playerid][pAdmin] >= 1) // TODOS QUE SÃO ADMINS
if(PlayerData[playerid][pAdmin] < 1)// TODOS PLAYERS
Eu coloco mensagem para testa funciona mais quando loga mais de 2 Jogadores ele aparece o do Admin sem o jogador ser Admin
Fora que não é recomendado que você coloque isso na callback OnPlayerUpdate, a callback OnPlayerUpdate é chamada milhares de vezes durante a execução do programa, causando problemas de desempenho.
Simplesmente crie uma função que carregue as Textlabels na OnPlayerConnect e depois crie a textlabel na ou na OnPlayerSpawn.
Código PHP:
new Text3D:PlayerLabel[MAX_PLAYERS];
new Text3D:AdminLabel[MAX_PLAYERS];
public OnPlayerSpawn(playerid) {
PlayerLabel[playerid] = CreateDynamic3DTextLabel(" ", -1, 0.0, 0.0, 0.3, 20.0, playerid, INVALID_VEHICLE_ID, 1, -1, -1, -1, 200.0);
AdminLabel[playerid] = CreateDynamic3DTextLabel(" ", -1, 0.0, 0.0, 0.5, 20.0, playerid, INVALID_VEHICLE_ID, 0, -1, -1, -1, 200.0);
return 1;
}
public OnPlayerConnect(playerid) {
Load3DTextLabels(playerid);
return 1;
}
stock Load3DTextLabels(playerid) {
new str[128];
switch(PlayerData[playerid][pAdmin]) {
case 1: UpdateDynamic3DTextLabelText(AdminLabel[playerid], 0xFFFFFFAA, "[Estagiário]");
// Crie aqui a tag que você quiser basta usar o case em ordem númerica.
}
format(string, sizeof(string), "%s (%d)", GetPlayerNameEx(playerid), playerid);
UpdateDynamic3DTextLabelText(PlayerLabel[playerid], 0xFFFFFFAA, str);
return 1;
}
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.