[Ajuda] Bug mudar o nick
#1

Код:
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?
Reply
#2

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

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?
Reply
#4

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.
Reply
#5

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.
Reply
#6

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

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;
}
Reply
#8

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.
Reply
#9

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");
Reply
#10

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"
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)