[Ajuda] Textos dentro do dialog duplicando
#1

JБ RESOLVIDO. Manterei o texto, caso alguйm tenha a mesma dъvida.

Olб, boa noite!
Peзo perdгo por ser um tanto leigo no assunto, porйm tentei pesquisar e nгo achei nada relacionado a minha duvida, e nem como solucionб-la.
O problema й o seguinte: Quando eu digito /acmds (comandos de administradores), aparece um dialog com os respectivos comandos para cada cargo administrativo. Ao fechar a dialog e abrir novamente, os mesmos comandos й duplicado, todo o texto (todos mesmo) dб um espaзo e й colado no mesmo dialog ficando gigante (se necessбrio, peзam print que eu posto). Nгo й conflito de IDs de dialog, pois como podem ver no cуdigo abaixo, eu coloquei por nomes diferentes e defini no inнcio, tambйm diferentes. Estou usando strcat, e acho que possa ser algo relacionado a isso (ou nгo, pois tenho outros dialogs como o /creditos ou /comandos, tambйm usando strcat e nгo dб esse bug).
OBS: NГO IREI COLOCAR TODOS OS COMANDOS, POIS ACHO DESNECESSБRIO.
Por favor, alguйm me ajuda?

PHP код:
CMD:acmds(playerid)
{
    if(
PlayerInfo[playerid][pAdmin] < 1)                        return SendClientMessage(playeridCorErro"[ERRO] Comando invбlido.");
    if(
PlayerInfo[playerid][pAdmin] == 1)
    {
    
strcat(acmds,"\n");
    
strcat(acmds,"{00FF00}/a [TEXTO]{FFFFFF} - Envia uma mensagem global.\n");
    
strcat(acmds,"{00FF00}/Responder [ID]    ||    /D [ID]{FFFFFF} - Responde a dъvida de um jogador [{FF0000}Favor responder somente dъvidas{FFFFFF}].\n");
    
strcat(acmds,"{00FF00}/cv [ID]{FFFFFF} - Cria um veнculo.\n");
    
strcat(acmds,"{00FF00}/AC{FFFFFF} - Chat Administrativos.\n");
    
strcat(acmds,"\n");
    
ShowPlayerDialog(playeridDIALOG_ACMDSAJUDANTEDIALOG_STYLE_MSGBOX"Mundo Digital - Comandos de Ajudantes"acmds"Ok""");
    }
       if(
PlayerInfo[playerid][pAdmin] == 2)
    {
    
strcat(acmds,"\n");
    
strcat(acmds,"{00FF00}/a [TEXTO]{FFFFFF} - Envia uma mensagem global.\n");
    
strcat(acmds,"{00FF00}/Responder [ID]    ||    /D [ID]    {FFFFFF} - Responde a dъvida de um jogador [{FF0000}Favor responder somente dъvidas{FFFFFF}].\n");
    
strcat(acmds,"{00FF00}/Congelar [ID]{FFFFFF} - Congela um jogador no local.\n");
    
strcat(acmds,"{00FF00}/Descongelar [ID]{FFFFFF} - Descongela um jogador do local.\n");
    
strcat(acmds,"{00FF00}/Kick [ID] [MOTIVO]{FFFFFF} - Expulsa um jogador do servidor.\n");
    
strcat(acmds,"{00FF00}/Desbanir [NICK COMPLETO]{FFFFFF} - Remove o banimento de um jogador [{FF0000}Usar somente em ъltima chance{FFFFFF}].\n");
    
strcat(acmds,"\n");
    
ShowPlayerDialog(playeridDIALOG_ACMDSMODERADORDIALOG_STYLE_MSGBOX"Mundo Digital - Comandos de Moderadores"acmds"Ok""");
    }
    if(
PlayerInfo[playerid][pAdmin] == 3)
    {
    
strcat(acmds,"\n");
    
strcat(acmds,"{00FF00}/a [TEXTO]{FFFFFF} - Envia uma mensagem global.\n");
    
strcat(acmds,"{00FF00}/CNN [TEXTO]{FFFFFF} - Envia uma mensagem com seu nick no meio da tela.\n");
    
strcat(acmds,"{00FF00}/Responder [ID]    ||    /D [ID]{FFFFFF} - Responde a dъvida de um jogador [{FF0000}Favor responder somente dъvidas{FFFFFF}].\n");
    
strcat(acmds,"{00FF00}/cv [ID] [COR1] [COR2]{FFFFFF} - Cria um veнculo.\n");
    
strcat(acmds,"{00FF00}/Desbanir [NICK COMPLETO]{FFFFFF} - Remove o banimento de um jogador [{FF0000}Usar somente em ъltima chance{FFFFFF}].\n");
    
strcat(acmds,"\n");
    
ShowPlayerDialog(playeridDIALOG_ACMDSADMINISTRADORDIALOG_STYLE_MSGBOX"Mundo Digital - Comandos de Administradores"acmds"Ok""");
    }
    if(
PlayerInfo[playerid][pAdmin] == 4)
    {
    
strcat(acmds,"\n");
    
strcat(acmds,"{00FF00}/a [TEXTO]{FFFFFF} - Envia uma mensagem global.\n");
    
strcat(acmds,"{00FF00}/CNN [TEXTO]{FFFFFF} - Envia uma mensagem com seu nick no meio da tela.\n");
    
strcat(acmds,"{00FF00}/Responder [ID]    ||    /D [ID]{FFFFFF} - Responde a dъvida de um jogador [{FF0000}Favor responder somente dъvidas{FFFFFF}].\n");
    
strcat(acmds,"\n");
    
ShowPlayerDialog(playeridDIALOG_ACMDSSTAFFDIALOG_STYLE_MSGBOX"Mundo Digital - Comandos de Desenvolvedores"acmds"Proximo""Cancelar");
    }
    return 
1;

Reply
#2

Faz reset em el string acmds usando EOS cada vez que voзe quer usarlo, exemplo:

PHP код:
    if(PlayerInfo[playerid][pAdmin] == 3
    {
    
acmds[0] = EOS// aqui
    
strcat(acmds,"\n"); 
    
strcat(acmds,"{00FF00}/a [TEXTO]{FFFFFF} - Envia uma mensagem global.\n"); 
    
strcat(acmds,"{00FF00}/CNN [TEXTO]{FFFFFF} - Envia uma mensagem com seu nick no meio da tela.\n"); 
    
strcat(acmds,"{00FF00}/Responder [ID]    ||    /D [ID]{FFFFFF} - Responde a dъvida de um jogador [{FF0000}Favor responder somente dъvidas{FFFFFF}].\n"); 
    
strcat(acmds,"{00FF00}/cv [ID] [COR1] [COR2]{FFFFFF} - Cria um veнculo.\n"); 
    
strcat(acmds,"{00FF00}/Desbanir [NICK COMPLETO]{FFFFFF} - Remove o banimento de um jogador [{FF0000}Usar somente em ъltima chance{FFFFFF}].\n"); 
    
strcat(acmds,"\n"); 
    
ShowPlayerDialog(playeridDIALOG_ACMDSADMINISTRADORDIALOG_STYLE_MSGBOX"Mundo Digital - Comandos de Administradores"acmds"Ok"""); 
    } 
Eu nao falo portugues
Reply
#3

Muito obrigado, Troydere. Deu certo! +rep
Eu nгo conhecia essa funзгo, e por favor, o senhor poderia me explicar o por quк disso? Em quais casos eu preciso utilizar este EOS?
Reply
#4

Eu falo muito poco portugues, pero EOS quer decir End Of String o '\0'

Voзe pode ler sobre isso aqui:

https://en.wikipedia.org/wiki/Null-terminated_string

PHP код:
string[0] = EOS// modifica o primeiro caractere em \0 e indica al script que [0] й el final de el valor string 
Reply
#5

Quote:
Originally Posted by Troydere
Посмотреть сообщение
Eu falo muito poco portugues, pero EOS quer decir End Of String o '\0'

Voзe pode ler sobre isso aqui:

https://en.wikipedia.org/wiki/Null-terminated_string

PHP код:
string[0] = EOS// modifica o primeiro caractere em \0 e indica al script que [0] й el final de el valor string 
Entendi. Vou ler mais sobre essa funзгo.
Muito obrigado!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)