SA-MP Forums Archive
[Ajuda] Bug mudar o nick - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Bug mudar o nick (/showthread.php?tid=615516)



Bug mudar o nick - Dishz - 23.08.2016

Код:
dcmd_mudarnick(playerid,params[])
{
	new str[60], str2[60], name[32], logstring[60];

	if(isnull(params)) return SendClientMessage(playerid, ERRO, "[NOVONICK] /MudarNick [Nick novo]");
	if(!IsPlayerSpawned(playerid)) return SendClientMessage(playerid, ERRO, "[ERRO]  Vocк nгo pode usar comandos antes de spawnar!");
	if(strlen(params) < 3) return SendClientMessage(playerid, ERRO,"[ERRO]  Tamanho incorreto (Muito Pequeno)");
	if(strlen(params) > 20) return SendClientMessage(playerid, ERRO,"[ERRO]  Tamanho incorreto (Muito Grande)");
 	if(!dini_Exists(params)) return SendClientMessage(playerid,ERRO,"[ERRO]  O nick digitado jб esta registrado");


 	GetPlayerName(playerid, name, sizeof(name));
 	new oldname[MAX_PLAYER_NAME];
	GetPlayerName(playerid, oldname, MAX_PLAYER_NAME);
 	if(strcmp(oldname,params,true)==0) return SendClientMessage(playerid,ERRO,"[ERRO]  O nick digitado й igual o antigo");
	format(logstring, sizeof(logstring), "[NICK] %s mudou o nick para \"%s\"", name,params);
	SendClientMessageToAll(0xFFFF00FF,logstring);
    
	format(str, sizeof(str), "ZeroAdmin/Accounts/%s.ini", name);

	if(!dini_Exists(str)) return SendClientMessage(playerid, ERRO, "[ERRO] Seu nick atual nгo bate com o nick dos nossos arquivos, consulte um administrador!");

	format(str2, sizeof(str2), "ZeroAdmin/Accounts/%s.ini", params);

	RenameFile(str, str2);

	SetPlayerName(playerid, params);
	SendClientMessage(playerid, ERRO,"[NICK] Vocк trocou seu NickName com sucesso! Vocк deve relogar.");
	SetPlayerHealth(playerid,0.0);
	ForceClassSelection(playerid);

	return true;
}
Seguinte ao adicionar;
Код:
if(!dini_Exists(params)) return SendClientMessage(playerid,ERRO,"[ERRO]  O nick digitado jб esta registrado");
Pra nгo bugar os arquivos, ele nгo estб deixando mudar de nick, qualquer nick que coloque ele diz que jб estб registrado, porйm quando eu tiro o " ! " daqui dini_Exists, funciona, mas quando coloco o nick de alguйm que jб estб registrado ele nгo manda essa mensagem, ele mudar o nick da pessoal pra esse nome que jб tem dono...

Alguйm poderia ajudar?


Re: Bug mudar o nick - F1N4L - 23.08.2016

(!function) = false, neste caso, arquivo NГO existe.
(function) = true, neste caso, arquivo EXISTE.


Re: Bug mudar o nick - Dishz - 23.08.2016

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
(!function) = false, neste caso, arquivo NГO existe.
(function) = true, neste caso, arquivo EXISTE.
Ok final, mas eu coloco com ! ele nгo deixa mudar pra nada, eu tiro o !, posso colocar qualquer nick, o que fazer?


Re: Bug mudar o nick - Whoo - 23.08.2016

No caso vocк estб afirmando que nгo existe por isso o bug.. Tbm vocк estб pagando o nome do player duas vezes nгo sei por que.. E tbm nunca vai existir ja que vocк nгo usou o format pra saber se existe.


Re: Bug mudar o nick - Dishz - 23.08.2016

Quote:
Originally Posted by Whoo
Посмотреть сообщение
No caso vocк estб afirmando que nгo existe por isso o bug.. Tbm vocк estб pagando o nome do player duas vezes nгo sei por que.. E tbm nunca vai existir ja que vocк nгo usou o format pra saber se existe.
Sinceramente, atй desanimo.


Re: Bug mudar o nick - Kamper - 23.08.2016

Quote:
Originally Posted by Dishz
Посмотреть сообщение
Sinceramente, atй desanimo.
Entгo vai jogar peteca. Pra jogar peteca nгo precisa mexer com cуdigos.


Re: Bug mudar o nick - Whoo - 23.08.2016

veja como ficaria
pawn Код:
dcmd_mudarnick(playerid,params[])
{
    new str[60], str2[60], name[32], logstring[60];

    if(isnull(params)) return SendClientMessage(playerid, ERRO, "[NOVONICK] /MudarNick [Nick novo]");
    if(!IsPlayerSpawned(playerid)) return SendClientMessage(playerid, ERRO, "[ERRO]  Vocк nгo pode usar comandos antes de spawnar!");
    if(strlen(params) < 3 ) return SendClientMessage(playerid, ERRO,"[ERRO]  Tamanho incorreto (Muito Pequeno)");
    if(strlen(params) > 20) return SendClientMessage(playerid, ERRO,"[ERRO]  Tamanho incorreto (Muito Grande)");

    GetPlayerName(playerid, name, sizeof(name)); // pego o nome do player...
    format(str, sizeof(str), "ZeroAdmin/Accounts/%s.ini", name); // pego o nick atual na pasta accounts..
    formar(str2, sizeof(str2), "ZeroAdmin/Accounts/%s.ini", params); // pego o nick digitado na pasta accounts...

    if(dini_Exists(str2)) // se o nick formatado em str ja existe na pasta accounts...
    return SendClientMessage(playerid,ERRO,"[ERRO]  O nick digitado jб esta registrado");

    if(strcmp(name, params, true)==0) // se o nick digitado e o nick do player for igual...
    return SendClientMessage(playerid,ERRO,"[ERRO]  O nick digitado й igual o antigo");

    if(!dini_Exists(str)) // se o prуprio nick do player nгo existe que й praticamente impossivel..
    return SendClientMessage(playerid, ERRO, "[ERRO] Seu nick atual nгo bate com o nick dos nossos arquivos, consulte um administrador!");

    format(logstring, sizeof(logstring), "[NICK] %s mudou o nick para \"%s\"", name, params);
    SendClientMessageToAll(0xFFFF00FF,logstring);

    RenameFile(str, str2); // caso tudo der certo..

    SetPlayerName(playerid, params);
    SendClientMessage(playerid, ERRO,"[NICK] Vocк trocou seu NickName com sucesso! Vocк deve relogar.");
    SetPlayerHealth(playerid,0.0);
    ForceClassSelection(playerid);

    return true;
}



Re: Bug mudar o nick - Dishz - 23.08.2016

Whoo, funcionou, explicaзгo facilitou pra entender.. mas quando digito /mudarnick e o mesmo nick, ele dб a mensagem de que jб estб registrado, ao invйs dб outra mensagem, mas isso nгo deve ser problema..
Se eu achar algum bug eu vejo e tento arrumar.


Re: Bug mudar o nick - Whoo - 23.08.2016

sу colocar essa parte:
pawn Код:
if(strcmp(name, params, true)==0) // se o nick digitado e o nick do player for igual...
    return SendClientMessage(playerid,ERRO,"[ERRO]  O nick digitado й igual o antigo");
a cima dessa:
pawn Код:
if(dini_Exists(str2)) // se o nick formatado em str ja existe na pasta accounts...
    return SendClientMessage(playerid,ERRO,"[ERRO]  O nick digitado jб esta registrado");



Re: Bug mudar o nick - arakuta - 23.08.2016

Quote:
Originally Posted by Kamper
Посмотреть сообщение
Entгo vai jogar peteca. Pra jogar peteca nгo precisa mexer com cуdigos.
Joga Badminton? Por que eu jogo e acho mais complicado que programar o.o"