Jump to content

2pacs

Membru
  • Posts

    65
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by 2pacs

  1. Eu l-am facut doar sa se salveze intr-o variabila, ca poate cineva vrea sa il salveze intr-un sistem de vehicule pe mysql sau pe ini si  este alegerea lui.

     

    Problema mea este ca mi se salveaza doar un sfert din cat am parcurs cu masina(ex: 1 din 3) si intrebarea mea este cum pot face sa se salveze 3 din 3?

    Asta vreau eu sa ii dau de cap.

  2. Poti sa stergi acele printf-uri de la km_counter. Le salvezi kilometrii undeva in MySQL?

     

    Daca nu, atunci mai mergi cu masina si cand vrei sa inchizi server-ul scrie in consola comanda "exit" si vezi iar.

     

    Serverul este pe ini, dar de ce nu se salva cand dadeam "X" la server si se salveaza cu "exit" ?

     

    PS. Din cate vad nu este nici o problema... deci se poate da TC.

  3. Problemă întâlnită (descriere):Merg cu masina 10-20 Kilometrii dar imi salveaza doar 3km dupa restart sau oprirea serverului.
    Ero(area / rile) / warning-(ul / urile):-
    Liniile de cod / sursa / script-ul:mai jos
    Imagini / Video (optional):-
    Aţi încercat să rezolvaţi singur?:Nu am stiut unde ar trebui sa ma uit.

     

    [pawn]new LastCar[MAX_PLAYERS];[/pawn]

    [pawn]new Float:VehicleKM[MAX_VEHICLES];
    new Float:X1[MAX_VEHICLES];
    new Float:Y1[MAX_VEHICLES];
    new Float:Z1[MAX_VEHICLES];
    new Float:X2[MAX_VEHICLES];
    new Float:Y2[MAX_VEHICLES];
    new Float:Z2[MAX_VEHICLES];
    new timerkm[MAX_VEHICLES];
    [/pawn]

     

    [pawn]forward km_counter(vehicleid);
    public km_counter(vehicleid)

    {

    //inlocuim valorile noi cu cele vechi


    printf("#Debug 1: %f %f %f", X1[vehicleid], Y1[vehicleid], Z1[vehicleid]);


    X1[vehicleid] = X2[vehicleid];

    Y1[vehicleid] = Y2[vehicleid];

    Z1[vehicleid] = Z2[vehicleid];


    printf("#Debug 2: %f %f %f", X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);


    //stocam noile valori

    GetVehiclePos(vehicleid, X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);


    printf("#Debug 3: %f %f %f", X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);


    //calculam distanta dintre cele doua punce vehciul punct si cel nou

    X1[vehicleid] -= X2[vehicleid];

    Y1[vehicleid] -= Y2[vehicleid];

    Z1[vehicleid] -= Z2[vehicleid];


    printf("#Debug 4: %f %f %f", X1[vehicleid], Y1[vehicleid], Z1[vehicleid]);


    //acum il transformam in kilometrii(deoarece distanta este in metrii) impartind la 1000.0

    VehicleKM[vehicleid] += floatsqroot((X1[vehicleid]*X1[vehicleid])+(Y1[vehicleid]*Y1[vehicleid])+(Z1[vehicleid]*Z1[vehicleid])) / 1000.0;


    printf("#Debug 5: %f | %f", VehicleKM[vehicleid], floatsqroot((X1[vehicleid]*X1[vehicleid])+(Y1[vehicleid]*Y1[vehicleid])+(Z1[vehicleid]*Z1[vehicleid])) / 1000.0);
    return 1;
    }[/pawn]

     

    [pawn]if(newstate == PLAYER_STATE_DRIVER)

    {

    LastCar[playerid] = GetPlayerVehicleID(playerid);

    }
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    timerkm[vehicleid] = SetTimerEx("km_counter", 1000, 1, "d", vehicleid);//pornim acel timer care masoara kilometrii parcursi
    }
    if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT )
    {
    KillTimer(timerkm[LastCar[playerid]]);
    format(string, sizeof(string), "Vehiculul are in total %d kilometrii parcursi", floatround(VehicleKM[LastCar[playerid]], floatround_ceil));//afisam cati kilometrii are parcursi
    SendClientMessage(playerid, -1, string);
    } [/pawn]

    • Upvote 1
  4. Pai nu ai pus tu bine mesajul.

     

    Ii dau eu de cap pana la urma la treaba cu mesajul, dar am mers cu masina din LS pana in capat in LV si tot pe 0 kilometri imi aparea.

     

     

    edit.

    Am modificat eu putin scriptul poate fii din cauza asta??

     

    [pawn]new Float:VehicleKM[MAX_VEHICLES];

    new Float:X1[MAX_VEHICLES];

    new Float:Y1[MAX_VEHICLES];

    new Float:Z1[MAX_VEHICLES];

    new Float:X2[MAX_VEHICLES];

    new Float:Y2[MAX_VEHICLES];

    new Float:Z2[MAX_VEHICLES];

    new timerkm[MAX_VEHICLES];[/pawn]

     

    [pawn]forward km_counter(vehicleid);

    public km_counter(vehicleid)

    {

    //inlocuim valorile noi cu cele vechi

    X1[vehicleid] = X2[vehicleid];

    Y1[vehicleid] = Y2[vehicleid];

    Z1[vehicleid] = Z2[vehicleid];

    //stocam noile valori

    GetVehiclePos(vehicleid, X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);

    //calculam distanta dintre cele doua punce vehciul punct si cel nou

    X1[vehicleid] -= X2[vehicleid];

    Y1[vehicleid] -= Y2[vehicleid];

    Z1[vehicleid] -= Z2[vehicleid];

    //acum il transformam in kilometrii(deoarece distanta este in metrii) impartind la 1000.0

    VehicleKM[vehicleid] += floatsqroot((X1[vehicleid]*X1[vehicleid])+(Y1[vehicleid]*Y1[vehicleid])+(Z1[vehicleid]*Z1[vehicleid])) / 1000.0;

    }[/pawn]

  5. Ok, acum nu mai primesc nici o eroare... dar acest text imi apare cand ma dau jos din masina, cum fac sa imi apara cand intru in ea??

     

    [pawn]format(string, sizeof(string), "Vehiculul are in total %d kilometrii parcursi",VehicleKM[vehicleid]);[/pawn]

     

     

    edit. am mers cu o masina a unei factiuni din ls pana in capat in lv si tot 0 km imi arata.

  6. Problemă întâlnită (descriere):Am incercat sa fac  primesc erorile astea.
    Ero(area / rile) / warning-(ul / urile):-
    Liniile de cod / sursa / script-ul:-
    Imagini / Video (optional):-
    Aţi încercat să rezolvaţi singur?:nu reusesc.

     

    Primesc cate o eroare din asta la fiecare:

    [pawn]error 010: invalid function or declaration
    ___________________________________
    Float:x1[MAX_VEHICLES],

    Float:y1[MAX_VEHICLES],

    Float:z1[MAX_VEHICLES],

    Float:x2[MAX_VEHICLES],

    Float:y2[MAX_VEHICLES],

    Float:z2[MAX_VEHICLES],[/pawn]

     

    [pawn]error 017: undefined symbol "x1"
    --------------------------------------------
    x1[vehicleid] = x2; AICI EROAREA

    y1[vehicleid] = y2;

    z1[vehicleid] = z2;[/pawn]

     

     

  7. [pawn]new gLastDriver[302];[/pawn]

     

    [pawn]
    if(HireCar[playerid] != 299)
    {
    gLastDriver[HireCar[playerid]] = 300;
    gCarLock[HireCar[playerid]] = 0;
    UnLockCar(HireCar[playerid]);
    if(reason != 0)
    {
    SetVehicleToRespawn(HireCar[playerid]);
    }
    }

    [/pawn]

     

    [pawn]
    if(GangCar[playerid] != 512)
    {
    gLastDriver[GangCar[playerid]] = 520;
    gCarLock[GangCar[playerid]] = 0;
    UnLockCar(GangCar[playerid]);
    }

    [/pawn]

     

    [pawn]if (gLastCar[playerid] > 0)
    {
    gLastDriver[gLastCar[playerid]] = 300;
    if(PlayerInfo[playerid][pPhousekey] != gLastCar[playerid]-1)
    {
    gCarLock[gLastCar[playerid]] = 0;
    UnLockCar(gLastCar[playerid]);
    }
    }[/pawn]

     

    [pawn] if(oldcar != 301)
    {
    if((housecar != oldcar && oldcar != 0) && (HireCar[playerid] != oldcar && newcar != housecar))
    {
    if(gLastDriver[oldcar] == playerid && oldcar != newcar)
    {
    gLastDriver[oldcar] = 300;
    gCarLock[oldcar] = 0;
    UnLockCar(oldcar);
    }
    }
    }[/pawn]

     

    [pawn]if(IsAnOwnableCar(newcar))
    {

    if(CarInfo[newcar][cOwned]==1)
    {
    format(string,sizeof(string),"Vehicle bought to %s",CarInfo[newcar][cOwner]);
    SendClientMessage(playerid, COLOR_BLUE, string);
    }
    }
    gLastCar[playerid] = newcar;
    gLastDriver[newcar] = playerid;
    }[/pawn]

     

    [pawn]public CarInit()
    {
    for(new c = 1; c < 254; c++)
    {
    gLastDriver[c] = 299;
    }
    gLastDriver[301]=255;
    return 1;
    }[/pawn]

     

    Edit !

     

    Am sters din public charcheck astea:

    [pawn]for(new c = 1; c < 400; c++)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new level = PlayerInfo[pJackSkill]
    if (level >= 401)
    {
    SetVehicleParamsForPlayer(c, i, 0, 0);
    }
    }
    }
    if (gLastDriver[c] == 301)
    {

    }
    if (gLastDriver[c] >= 300)
    {
    gLastDriver[c]++;[/pawn]

     

    Nu mai primesc nimic in server_log de la ele, dar... acum cand folosesc comanda "/vama" primesc astea:

     

    [pawn][17:04:52] [debug] Run time error 4: "Array index out of bounds"
    [17:04:52] [debug] Accessing element at index 14 past array upper bound 10
    [17:04:52] [debug] AMX backtrace:
    [17:04:52] [debug] #0 00002f30 in public ExtortionSBiz (0x0000000e, 0x00000032) from facut.amx
    [17:04:52] [debug] #1 0023cc5c in public OnPlayerCommandText (0x00000000, 0x00b41d90) from facut.amx[/pawn]

     

     

    Aici am comanda : 

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.