[Ajuda] /gmx bugado
#1

Boa tarde/noite.

Meu comando /gmx estб bugado. Quando eu digito /gmx, hб uma pequena demora, pois os veнculos e casas estгo sendo salvos, porйm na hora de salvar o jogador, o server retorna "Server: Unknown Function", e o GMX nгo ocorre.

Code:

pawn Код:
else if(strcmp(cmd, "/gmx", true) == 0)
    {
        if(gPlayerInfo[playerid][PLAYER_ADMIN] < 8000) return 1;
        new file[128];
        for(new i = 0; i < MAX_VEHICLES; i++)
        {
            format(file, sizeof(file), VehFile, i);
            if(vehslots[i]) break;
            if(!dini_Exists(file)) dini_Create(file);
            dini_IntSet(file, "Model", gVehInfo[i][VEH_MODELO]);
            dini_IntSet(file, "Cor1", gVehInfo[i][VEH_COR1]);
            dini_IntSet(file, "Cor2", gVehInfo[i][VEH_COR2]);
            dini_IntSet(file, "Alarme", gVehInfo[i][VEH_ALARME]);
            dini_IntSet(file, "Faccao", gVehInfo[i][VEH_FACCAO]);
            dini_IntSet(file, "isFaccao", gVehInfo[i][VEH_BFACCAO]);
            dini_FloatSet(file, "AngEst", gVehInfo[i][VEH_ESTA]);
            dini_FloatSet(file, "XEst", gVehInfo[i][VEH_ESTX]);
            dini_FloatSet(file, "YEst", gVehInfo[i][VEH_ESTY]);
            dini_FloatSet(file, "ZEst", gVehInfo[i][VEH_ESTZ]);
            dini_IntSet(file, "Helper", gVehInfo[i][VEH_BHELP]);
            dini_IntSet(file, "Conc", gVehInfo[i][VEH_CONC]);
            dini_IntSet(file, "Aprendido", gVehInfo[i][VEH_BAPREND]);
            dini_IntSet(file, "Multa", gVehInfo[i][VEH_AMULTA]);
            dini_IntSet(file, "Venda", gVehInfo[i][VEH_AVENDA]);
            dini_IntSet(file, "Trancado", gVehInfo[i][VEH_TRANC]);
            printf("Salvando car %i", i);
        }
        for(new i = 0; i < MAX_HOUSES; i++)
        {
            SaveHouse(i);
        }
        for(new i = 0; i < MAX_VEHICLES; i++)
        {
            salvarGmx(i);
        }
        SendRconCommand("gmx");
        return 1;
    }
pawn Код:
public salvarGmx(i)
{
    salvarAcc(i);
    gPlayerInfo[i][PLAYER_LOGGED] = 0;
}
pawn Код:
public salvarAcc(playerid)
{
    if(gPlayerInfo[playerid][PLAYER_LOGGED]) {
        new file[100], name[128], Float:x, Float:y, Float:z;
        GetPlayerPos(playerid, x, y, z);
        GetPlayerName(playerid, name, sizeof(name));
        format(file, sizeof(file), PlayerFile, name);
        dini_Set(file,"IP", gPlayerInfo[playerid][PLAYER_IP]);
        dini_IntSet(file,"Reg", gPlayerInfo[playerid][PLAYER_REGGED]);
        dini_Set(file,"Password", gPlayerInfo[playerid][PLAYER_PASS]);
        dini_IntSet(file,"Level", gPlayerInfo[playerid][PLAYER_LEVEL]);
        dini_IntSet(file,"Preso", gPlayerInfo[playerid][PLAYER_PRESO]);
        dini_IntSet(file, "TempoPreso", gPlayerInfo[playerid][PLAYER_PRESO]);
        dini_IntSet(file, "Admin", gPlayerInfo[playerid][PLAYER_ADMIN]);
        dini_IntSet(file,"Dinheiro", gPlayerInfo[playerid][PLAYER_MONEY]);
        dini_IntSet(file,"Respeito", gPlayerInfo[playerid][PLAYER_RESP]);
        dini_IntSet(file, "Org", gPlayerInfo[playerid][PLAYER_ORG]);
        dini_IntSet(file, "COrg", gPlayerInfo[playerid][PLAYER_CORG]);
        dini_IntSet(file,"VIP", gPlayerInfo[playerid][PLAYER_VIP]);
        dini_IntSet(file, "Procurado", gPlayerInfo[playerid][PLAYER_PROCURADO]);
        dini_IntSet(file, "Skin", gPlayerInfo[playerid][PLAYER_SKIN]);
        dini_IntSet(file, "Etnia", gPlayerInfo[playerid][PLAYER_ETNIA]);
        dini_FloatSet(file, "UX", x);
        dini_FloatSet(file, "UY", y);
        dini_FloatSet(file, "UZ", z);
        new ammo[13], weapon[13];
        GetPlayerWeaponData(playerid, 0, ammo[0], weapon[0]);
        GetPlayerWeaponData(playerid, 1, ammo[1], weapon[1]);
        GetPlayerWeaponData(playerid, 2, ammo[2], weapon[2]);
        GetPlayerWeaponData(playerid, 3, ammo[3], weapon[3]);
        GetPlayerWeaponData(playerid, 4, ammo[4], weapon[4]);
        GetPlayerWeaponData(playerid, 5, ammo[5], weapon[5]);
        GetPlayerWeaponData(playerid, 6, ammo[6], weapon[6]);
        GetPlayerWeaponData(playerid, 7, ammo[7], weapon[7]);
        GetPlayerWeaponData(playerid, 8, ammo[8], weapon[8]);
        GetPlayerWeaponData(playerid, 9, ammo[9], weapon[9]);
        GetPlayerWeaponData(playerid, 10, ammo[10], weapon[10]);
        GetPlayerWeaponData(playerid, 11, ammo[11], weapon[11]);
        GetPlayerWeaponData(playerid, 12, ammo[12], weapon[12]);
        dini_IntSet(file, "Slot0", weapon[0]);
        dini_IntSet(file, "Slot1", weapon[1]);
        dini_IntSet(file, "Slot2", weapon[2]);
        dini_IntSet(file, "Slot3", weapon[3]);
        dini_IntSet(file, "Slot4", weapon[4]);
        dini_IntSet(file, "Slot5", weapon[5]);
        dini_IntSet(file, "Slot6", weapon[6]);
        dini_IntSet(file, "Slot7", weapon[7]);
        dini_IntSet(file, "Slot8", weapon[8]);
        dini_IntSet(file, "Slot9", weapon[9]);
        dini_IntSet(file, "Slot10", weapon[10]);
        dini_IntSet(file, "Slot11", weapon[11]);
        dini_IntSet(file, "Slot12", weapon[12]);
        dini_IntSet(file, "ASlot0", ammo[0]);
        dini_IntSet(file, "ASlot1", ammo[1]);
        dini_IntSet(file, "ASlot2", ammo[2]);
        dini_IntSet(file, "ASlot3", ammo[3]);
        dini_IntSet(file, "ASlot4", ammo[4]);
        dini_IntSet(file, "ASlot5", ammo[5]);
        dini_IntSet(file, "ASlot6", ammo[6]);
        dini_IntSet(file, "ASlot7", ammo[7]);
        dini_IntSet(file, "ASlot8", ammo[8]);
        dini_IntSet(file, "ASlot9", ammo[9]);
        dini_IntSet(file, "ASlot10", ammo[10]);
        dini_IntSet(file, "ASlot11", ammo[11]);
        dini_IntSet(file, "ASlot12", ammo[12]);
        dini_IntSet(file, "Colt47", gPlayerInfo[playerid][COLT45]);
        dini_IntSet(file, "9mmSilenced", gPlayerInfo[playerid][COLT45SI]);
        dini_IntSet(file, "Eagle", gPlayerInfo[playerid][EAGLE]);
        dini_IntSet(file, "Shotgun", gPlayerInfo[playerid][SHOTGUN]);
        dini_IntSet(file, "Sawnshotgun", gPlayerInfo[playerid][SAWNSHOT]);
        dini_IntSet(file, "UZI", gPlayerInfo[playerid][UZI]);
        dini_IntSet(file, "AK47", gPlayerInfo[playerid][AK47]);
        dini_IntSet(file, "Materiais", gPlayerInfo[playerid][PLAYER_MATERIAIS]);
        printf("Salvando Player %i", playerid);
    }
    return 1;
}
O servidor chega a printar "Salvando Player 0" [Estou sozinho no servidor], porйm logo em seguida й dado o "Unknown command", como se houvesse algum return 0; D=

Abraзos!
Reply
#2

Nem й bom dar /gmx em nenhum server, a maioria buga, fod# tudo.
Reply
#3

Quote:
Originally Posted by [AF]Junior
Посмотреть сообщение
Nem й bom dar /gmx em nenhum server, a maioria buga, fod# tudo.
Eu agradeceria se conseguisse simplesmentar dar o /gmx.

^_^'
Reply
#4

RPG nгo й comigo nгo, ainda mais tudo zoneado, tenso. Sorry
Reply
#5

Quote:
Originally Posted by [AF]Junior
Посмотреть сообщение
RPG nгo й comigo nгo, ainda mais tudo zoneado, tenso. Sorry
Zoneado? Indentadinho, bonitinho. Sу nгo comento por que й desnecessбrio, visto que eu sei o que cada var faz. E nem й RPG. Й RP ^^

@Topic

Enfim, Testei, e ele nгo passa do ъltimo loop FOR. Eu coloquei um print("Teste"), e o mesmo nгo apareceu no console. Vou fazer mais um teste aqui. Ver atй que ID ele vai...
Reply
#6

alguma var sem tamвnho suficiente usado em loop, exemplo

pawn Код:
new
        basscannon[11];
       
    for(new x = 0; x < 12; x++)
        basscannon[x] = 0;
o server tenta executar a funзгo mas nгo existe o basscannon[12]
relembrando isso й um exemplo, procure cуdigos como este, coisas como essas retornam em algum bug, como parar o loop ali mesmo e causa algums tipos de erros, como por exemplo o que vocк descreveu.
Reply
#7

No teu cуdigo, o ъltimo loop pelo que vi salva os jogadores e define que os mesmos nгo estгo logados certo? Mas vocк estб usando lб MAX_VEHICLES, o certo seria MAX_PLAYERS, por isso estб parando o GMX, sу pode ser. Ah, vocк nгo precisa usar public no savarGMX, sу uma stock basta, pois sу й preciso definir publics se forem chamadas pelo programa host e/ou usadas em um timer.
Reply
#8

Muito obrigado, sr. [BEP]AcerPilot e [S]trong. Era exatamente isso. Nгo sei daonde eu tirei MAX_VEHICLES ao invйs de MAX_PLAYERS.

Obrigado mesmo. Nгo sei se eu consigo dar Rep. para os dois, mas vou tentar.

Abraзгo, e novamente, obrigado MESMO! ^^
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)