[Ajuda] /mudarnick bugando
#1

Olб, o sistema de mudar nick do meu servidor estб com um bug, muda o nome da conta certinho e salva, mas, em questгo das casas/empresas ele fica o ъltimo nick. Meu gamemode й Trucking

Код:
CMD:mudarnick(playerid, params[])
{
	SendAdminText(playerid, "/mudarnick", params);
    if(PlayerInfo[playerid][NoEvento] == 1) return SendClientMessage(playerid, -1, "{ff0000}Vocк estб no evento!");
	if(APlayerData[playerid][LoggedIn] == true)
	{
		if(MudarNick[playerid] == true)
		{
			if(isnull(params)) SendClientMessage(playerid, -1, "{FF0000}Uso: /mudarnick [NovoNick]");
			else
			{
				if(strlen(params) < 4) return SendClientMessage(playerid, -1, "{FF0000}Minimo 4 Caracterias.");
				if(strlen(params) > 14) return SendClientMessage(playerid, -1, "{FF0000}Maximo 14 Caracterias.");
				new NomeDoIndividuo[24]; // Variavel
				// Geta o Nome Antigo do Player
				GetPlayerName(playerid, NomeDoIndividuo, sizeof(NomeDoIndividuo));
				new Linhas[1000], ContaExiste[50]; // Var das Linhas a ser lida
				format(ContaExiste, sizeof(ContaExiste), PlayerFile, params);
				if(fexist(ContaExiste)) return SendClientMessage(playerid, -1, "{FF0000}Esse Nick ja esta em uso.");

                for(new asd; asd < sizeof(badnames); ++asd)
                {
                    if(strfind(NomeDoIndividuo,badnames[asd]) != -1)
                    {
                        return SendClientMessage(playerid, -1, "{FF0000}Nick Invalido!");
                    }
                }

				format(APlayerData[playerid][PlayerName], 24, params);
				// Casas
				for(new HouseID = 1; HouseID < MAX_HOUSES; HouseID++)
				{
					if(AHouseData[HouseID][Owned] == true)
					{
						if(strcmp(AHouseData[HouseID][Owner], NomeDoIndividuo, false) == 0)
						{
							for(new i; i < MAX_HOUSESPERPLAYER; i++)
							{
								if(APlayerData[playerid][Houses][i] != 0)
								{
									format(AHouseData[HouseID][Owner], 50, APlayerData[playerid][PlayerName]);
									format(AHouseData[HouseID][HouseName], 100, TXT_DefaultHouseName, params);
									House_UpdateEntrance(HouseID);
									HouseFile_Save(HouseID);
									APlayerData[playerid][Houses][i] = HouseID;
									break;
								}
							}
						}
					}
				}
				// Empresas
				for(new BusID = 1; BusID < MAX_BUSINESS; BusID++)
				{
					if (ABusinessData[BusID][Owned] == true)
					{
						if (strcmp(ABusinessData[BusID][Owner], NomeDoIndividuo, false) == 0)
                        {
							for (new i; i < MAX_BUSINESSPERPLAYER; i++)
							{
								if (APlayerData[playerid][Business][i] != 0)
								{
									format(ABusinessData[BusID][Owner], 50, APlayerData[playerid][PlayerName]);
									BusinessFile_Save(BusID);
									Business_UpdateEntrance(BusID);
									APlayerData[playerid][Business][i] = BusID;
									break;
								}
							}
						}
					}
				}
				// Banco
				new FileBank[100], bool:TemContaBanco = false;
				format(FileBank, sizeof(FileBank), BankFile, NomeDoIndividuo);
				if(fexist(FileBank)) TemContaBanco = true;
				if(TemContaBanco == true)
				{
					// Mudanзa na Conta do Banco
					new File:ArquivoBank[2], StrBank[2][50];
					format(StrBank[0], 50, BankFile, NomeDoIndividuo);
					format(StrBank[1], 50, BankFile, APlayerData[playerid][PlayerName]);
					// Abre a Conta Antiga e ja Cria a nova Conta
					ArquivoBank[0] = fopen(StrBank[0], io_read);
					ArquivoBank[1] = fopen(StrBank[1], io_append);
					// Aqui lк todas as linhas da antiga conta e grava na nova
					while(fread(ArquivoBank[0], Linhas)) fwrite(ArquivoBank[1], Linhas);
					// Fecha os Arquivos e Exclui a conta antiga
					fclose(ArquivoBank[0]);
					fclose(ArquivoBank[1]);
					fremove(StrBank[0]);
				}
				// Conta
				new FileAccount[100];
				format(FileAccount, sizeof(FileAccount), PlayerFile, NomeDoIndividuo);
				if(fexist(FileAccount))
				{
					// Mudanзa na Conta do Player
					new File:ArquivoConta[2], StrConta[2][48];
					format(StrConta[0], 48, PlayerFile, NomeDoIndividuo);
					format(StrConta[1], 48, PlayerFile, APlayerData[playerid][PlayerName]);
					// Abre a Conta Antiga e ja Cria a nova Conta
					ArquivoConta[0] = fopen(StrConta[0], io_read);
					ArquivoConta[1] = fopen(StrConta[1], io_append);
					// Aqui lк todas as linhas da antiga conta e grava na nova
					while(fread(ArquivoConta[0], Linhas)) fwrite(ArquivoConta[1], Linhas);
					// Fecha os Arquivos e Exclui a conta antiga
					fclose(ArquivoConta[0]);
					fclose(ArquivoConta[1]);
					fremove(StrConta[0]);
				}
				new FString[128], Name[28];
				GetPlayerName(playerid, Name, sizeof(Name));
				format(FString, sizeof(FString), "{ffff00}O jogador {FFFFFF}%s {ffff00}alterou seu nick para {FFFFFF}%s", Name, params);
				SendClientMessageToAll(-1, FString);
				SetPlayerName(playerid, APlayerData[playerid][PlayerName]); // Muda o Nome do Jogador

                BankFile_Load(playerid);
                                    //----------------------[Casa do Jogador]------------------------------------------//
                new HouseID, BusID;
                for (new HouseSlot; HouseSlot < MAX_HOUSESPERPLAYER; HouseSlot++)
                {
                    HouseID = APlayerData[playerid][Houses][HouseSlot];
                	if (HouseID != 0)
                	{
                        AHouseData[HouseID][Owned] = true;
                        format(AHouseData[HouseID][Owner], 24, NomeDoIndividuo);
                        HouseFile_Save(HouseID);
                        House_UpdateEntrance(HouseID);
                        House_RemoveVehicles(HouseID);
                        HouseFile_Load(HouseID, true);
                    }
                }
                                    //----------------------[Empresa do Jogador]--------------------------------------------//
                for (new BusSlot; BusSlot < MAX_BUSINESSPERPLAYER; BusSlot++)
                {
                    BusID = APlayerData[playerid][Business][BusSlot];
                	if (BusID != 0)
                	{
                        ABusinessData[BusID][Owned] = true;
                        format(ABusinessData[BusID][Owner], 24, NomeDoIndividuo);
                        BusinessFile_Save(BusID);
                        Business_UpdateEntrance(BusID);
                    }
                }

				MudarNick[playerid] = false;
			}
		}
		else
		SendClientMessage(playerid, -1, "{FF0000}Vocк precisa da autorizaзгo de um administrador para mudar seu nick.");
	}
	else
	SendClientMessage(playerid, -1, "{FF0000}Vocк nгo estб logado!");
	return true;
}
Reply
#2

Alguйm poderia me ajudar com esse problema?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)