17.09.2016, 20:15
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; }