Ajuda com tag - BatataDoce - 28/09/2022
Comecei a criar um sistema de admin, mas to enfrentando problema com as tags
Código PHP: CMD:setadmin(playerid,params[]) { new id,valor,string[100],Text3D:text[MAX_PLAYERS]; if(IsPlayerAdmin(playerid)) { if(sscanf(params,"ii",id,valor)) return SendClientMessage(playerid,0xFF0000FF,"| Admin |Utilize /daradmin id level(0-5)"); { if(IsPlayerConnected(id)) { pinfo[id] [admin] = valor;
if(valor == 0) { format(string,100,"| Admin | Você foi removido da equipe admin"); SendClientMessage(id,0x008080FF,string); Delete3DTextLabel(text[id]); } if(valor == 1) { format(string,100,"| Admin | Você agora se tornou 'Estagiário' da equipe!"); SendClientMessage(id,0x008080FF,string); Delete3DTextLabel(text[id]); text[id] = Create3DTextLabel("Estagiário", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0); Attach3DTextLabelToPlayer(text[id], id, 0.0, 0.0, 0.7); } if(valor == 2) { format(string,100,"| Admin | Você agora se tornou 'Ajudante' da equipe!"); SendClientMessage(id,0x008080FF,string); Delete3DTextLabel(text[id]); text[id] = Create3DTextLabel("Ajudante", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0); Attach3DTextLabelToPlayer(text[id], id, 0.0, 0.0, 0.7); } if(valor == 3) { format(string,100,"| Admin | Você agora se tornou 'Moderador' da equipe!"); SendClientMessage(id,0x008080FF,string); Delete3DTextLabel(text[id]); text[id] = Create3DTextLabel("Moderador", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0); Attach3DTextLabelToPlayer(text[id], id, 0.0, 0.0, 0.7); } if(valor == 4) { format(string,100,"| Admin | Você agora se tornou 'Adminstrador' da equipe!"); SendClientMessage(id,0x008080FF,string); Delete3DTextLabel(text[id]); text[id] = Create3DTextLabel("Adminstrador", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0); Attach3DTextLabelToPlayer(text[id], id, 0.0, 0.0, 0.7); } if(valor == 5) { format(string,100,"| Admin | Você agora se tornou 'Gestor' da equipe!"); SendClientMessage(id,0x008080FF,string); Delete3DTextLabel(text[id]); text[id] = Create3DTextLabel("Gestor", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0); Attach3DTextLabelToPlayer(text[id], id, 0.0, 0.0, 0.7); }
} } } else SendClientMessage(playerid,0xFF0000FF,"[>>]Erro"); return 1; }
O problema seria é que quando eu seto adm pra min, a tag vem pra min, mas quando eu seto tbm em outra pessoa, a minha tag é excluída
obs: to usando Delete3DTextLabel(text[id]) para caso eu queira setar outro cargo pra min,n fique 2 tag em cima da outra
RE: Ajuda com tag - Vel - 28/09/2022
Basta mover a variável "text" pra fora do comando.
E eu recomendaria mudar o nome também.
RE: Ajuda com tag - xbruno1000x - 28/09/2022
Por que deletar e criar uma tag nova? Já tentou usar o Update3DTextLabelText?
Essa função permite atualizar o texto do 3DTextLabel, acredito que seja melhor para o seu propósito.
Documentação:
https://open.mp/pt-br/docs/scripting/functions/Update3DTextLabelText
RE: Ajuda com tag - Device-Black - 28/09/2022
Voce pode usar chatbubble tambem
RE: Ajuda com tag - CoelhaO_LokaO - 28/09/2022
Código PHP: new Text3D:text[MAX_PLAYERS];
enum admnivel{ id_admin, nome_admin[13] } new chamaadm[][admnivel] = { {0,"Nenhum"}, {1,"Estagiário"}, {2,"Ajudante"}, {3,"Moderador"}, {4,"Adminstrador"}, {5,"Gestor"}
}
CMD:setadmin(playerid,params[]) { new id,valor,string[100]; if(IsPlayerAdmin(playerid)) { if(sscanf(params,"ii",id,valor)) return SendClientMessage(playerid,0xFF0000FF,"| Admin |Utilize /daradmin id level(0-5)"); { if(IsPlayerConnected(id)) { pinfo[id] [admin] = valor;
if(pinfo[id] [admin] > 0){ new teste[200]; format(teste, sizeof(teste), "%s" chamaadm[valor][nome_admin]);
text[id] = Create3DTextLabel(teste, 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0); Attach3DTextLabelToPlayer(text[id], id, 0.0, 0.0, 0.7); }
} } } else SendClientMessage(playerid,0xFF0000FF,"[>>]Erro"); return 1; }
RE: Ajuda com tag - White_Blue - 28/09/2022
(28/09/2022 16:07)Device-Black Escreveu: Voce pode usar chatbubble tambem
SetPlayerChatBubble pelo que eu sei é para quando um player digitar aparecer a mensagem sob a cabeça do personagem.
RE: Ajuda com tag - Device-Black - 29/09/2022
(28/09/2022 20:19)White_Blue Escreveu: (28/09/2022 16:07)Device-Black Escreveu: Voce pode usar chatbubble tambem
SetPlayerChatBubble pelo que eu sei é para quando um player digitar aparecer a mensagem sob a cabeça do personagem.
Sim... Mas não é exclusivo do OnPlayerText, funciona perfeitamente pro caso
RE: Ajuda com tag - BatataDoce - 30/09/2022
(28/09/2022 18:26)CoelhaO_LokaO Escreveu: Código PHP: new Text3D:text[MAX_PLAYERS];
enum admnivel{ id_admin, nome_admin[13] } new chamaadm[][admnivel] = { {0,"Nenhum"}, {1,"Estagiário"}, {2,"Ajudante"}, {3,"Moderador"}, {4,"Adminstrador"}, {5,"Gestor"}
}
CMD:setadmin(playerid,params[]) { new id,valor,string[100]; if(IsPlayerAdmin(playerid)) { if(sscanf(params,"ii",id,valor)) return SendClientMessage(playerid,0xFF0000FF,"| Admin |Utilize /daradmin id level(0-5)"); { if(IsPlayerConnected(id)) { pinfo[id] [admin] = valor;
if(pinfo[id] [admin] > 0){ new teste[200]; format(teste, sizeof(teste), "%s" chamaadm[valor][nome_admin]);
text[id] = Create3DTextLabel(teste, 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0); Attach3DTextLabelToPlayer(text[id], id, 0.0, 0.0, 0.7); }
} } } else SendClientMessage(playerid,0xFF0000FF,"[>>]Erro"); return 1; }
Eu fiz uma alteração tendo em mente isso oq vc mandou, mas mesmo assim, não funiona, eu coloco a tag em min, dps quando vou colocar em outra pessoa, a minha tag é excluída, só n entendo o pq já pq a variável já é diferente
Código PHP: CMD:setadmin(playerid,params[]) { if(IsPlayerAdmin(playerid)) { new valor; if(sscanf(params,"ii",idtag,valor)) return SendClientMessage(playerid,0xFF0000FF,"| Admin |Utilize /daradmin id level(0-5)"); { if(IsPlayerConnected(idtag)) { pinfo [idtag] [admin] = valor;
if(pinfo [idtag] [admin] == 0) { Delete3DTextLabel(tagadm[idtag]); return 1; }
if(pinfo[idtag] [admin] > 0 && pinfo[idtag] [admin] < 5) {
new teste[200]; format(teste, sizeof(teste), "%s",GetAdmin(idtag)); Delete3DTextLabel(tagadm[idtag]);
tagadm[idtag] = Create3DTextLabel(teste, 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(tagadm[idtag], idtag, 0.0, 0.0, 0.7); return 1; } else SendClientMessage(playerid, 0xFF0000FF, "| Admin |Escolha um level de 0 a 5");
} else SendClientMessage(playerid, 0xFF0000FF, "| Admin |Jogador não encontrado."); } } else SendClientMessage(playerid,0xFF0000FF,"[>>]Erro"); return 1; }
RE: Ajuda com tag - White_Blue - 30/09/2022
Código PHP: CMD:setadmin(playerid, params[]) { new plid, nivel, tag[128], Text3D:tagg[MAX_PLAYERS]; if(sscanf(params, "ud", plid, nivel)) return SendClientMessage(playerid, -1, "Use: /setadmin [playerid] [nível]"); if(!IsPlayerConnected(plid)) return SendClientMessage(playerid, -1, "| Admin |Jogador não encontrado"); if(nivel > 0 && nivel < 6) { switch(nivel) { case 1: tag = "Helper"; case 2: tag = "Mod"; case 3: tag = "Adm"; } } else pinfo[plid][admin] = 0, Delete3DTextLabel(plid, tagg[plid]);
pinfo[plid][admin] = nivel; tagg[plid] = Create3DTextLabel(tag, -1, 30.0, 40.0, 50.0, 0); Attach3DTextLabelToPlayer(tagg[plid], plid, 0.0, 0.0, 0.7); return 1; }
Refiz o comando, teste e veja se funciona.
RE: Ajuda com tag - Device-Black - 01/10/2022
Tambem tem esse modo
https://pastebin.com/3425ARHd
|