Aparecendo o nome Tag para o player que não é Administrador - hiago01 - 25/03/2023
Boa noite a todos preciso de uma ajuda , eu criei 3DTextLabel dynamic para player e admin , eu coloco para abrir ambos para os jogadores setados conforme mais quando entra mais de 2 jogadores ele buga aparece o texto do Admin para o jogador que não está setado oque pode ser todo o sistema da verificação está em OnPlayerupgate?
RE: Aparecendo o nome Tag para o player que não é Administrador - Vel - 25/03/2023
Poste seu código para que possamos ajudar.
RE: Aparecendo o nome Tag para o player que não é Administrador - hiago01 - 26/03/2023
Aqui está e que não sei lidar muito com forum mais ai está obrigado pela resposta
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
RE: Aparecendo o nome Tag para o player que não é Administrador - hiago01 - 26/03/2023
Está tudo no Onplayerupdate
RE: Aparecendo o nome Tag para o player que não é Administrador - White_Blue - 26/03/2023
(26/03/2023 00:07)hiago01 Escreveu: Aqui está e que não sei lidar muito com forum mais ai está obrigado pela resposta
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 Tem muita coisa confusa/desnecessária nesse código.
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; }
RE: Aparecendo o nome Tag para o player que não é Administrador - hiago01 - 26/03/2023
(26/03/2023 02:16)hiago01 Escreveu: Está tudo no Onplayerupdate Obrigado desse jeito foi mais não e como estou querendo fazer, quando update name vai ele atualiza para todos
refiz em cima do seu contigo mais em vez de só dar update em cima dos administrador ele faz para todos jogadores
Código: switch(PlayerData[i][pAdmin]) { // foreach em todos administrador
case 0,1,2,3,4,5,6,7: // case teste de 0,7 admins no caso todos
{
if(PlayerData[playerid][pAdmin] == 0) // CASO O JOGADOR NÃO SEGA ADMIN ELE NÃO RECEBE TEXT LABEL
{
[color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]UpdateDynamic3DTextLabelText(AdminLabel[i], 0xFFFFFFAA," [JOGADOR]");[/font][/size][/color]
}
if(PlayerData[playerid][pAdmin] == 7) // CASO JOGADOR NA LOAD SEJA ADMIN APARECE TODOS TEXTO LABEL
{
format(str, sizeof(str), "[TEXTO PARA ADMIN] NOME ID",GetName(i), i);
UpdateDynamic3DTextLabelText(AdminLabel[i], 0xFFFFFFAA,str);
((((((( OBSERVAÇÃO AQUI QUE DEVERIA APARECE SÓ PARA ADMIN APARECE PARA TODOS O TEXTO ADMIN TEM COMO FAZER SÓ PARA SO ADMINS VER ESSE TEXTO ))))))))))) ??
}
}
[color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]
[code/][/font][/size][/color]
RE: Aparecendo o nome Tag para o player que não é Administrador - White_Blue - 26/03/2023
(26/03/2023 10:39)hiago01 Escreveu: (26/03/2023 02:16)hiago01 Escreveu: Está tudo no Onplayerupdate Obrigado desse jeito foi mais não e como estou querendo fazer, quando update name vai ele atualiza para todos
refiz em cima do seu contigo mais em vez de só dar update em cima dos administrador ele faz para todos jogadores
Código: switch(PlayerData[i][pAdmin]) { // foreach em todos administrador
case 0,1,2,3,4,5,6,7: // case teste de 0,7 admins no caso todos
{
if(PlayerData[playerid][pAdmin] == 0) // CASO O JOGADOR NÃO SEGA ADMIN ELE NÃO RECEBE TEXT LABEL
{
[color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]UpdateDynamic3DTextLabelText(AdminLabel[i], 0xFFFFFFAA," [JOGADOR]");[/font][/size][/color]
}
if(PlayerData[playerid][pAdmin] == 7) // CASO JOGADOR NA LOAD SEJA ADMIN APARECE TODOS TEXTO LABEL
{
format(str, sizeof(str), "[TEXTO PARA ADMIN] NOME ID",GetName(i), i);
UpdateDynamic3DTextLabelText(AdminLabel[i], 0xFFFFFFAA,str);
((((((( OBSERVAÇÃO AQUI QUE DEVERIA APARECE SÓ PARA ADMIN APARECE PARA TODOS O TEXTO ADMIN TEM COMO FAZER SÓ PARA SO ADMINS VER ESSE TEXTO ))))))))))) ??
}
}
[color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]
[code/][/font][/size][/color]
Não estou entendendo bem o que você quer, se possível me chamar no Discord para podermos resolver isso mais rapidamente.
|