Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: V01D poslato Jun 30, 2021, 09:05:34 PRE PODNE

Naslov: Ne ulazi u proveru u OnPlayerEnterCheckpoint
Poruka od: V01D poslato Jun 30, 2021, 09:05:34 PRE PODNE
Problem(error/warning): Kada igrac udje u checkpoint, nedje da udje u proveru i odradi ono sto je unutar nje
Deo skripte: [pawn]CMD:varcheck(playerid) { //Komanda gde sam proveravao vrednost promenljive

    SendInfoMessage(playerid, "playerHacking = %d", playerHacking[playerid]);

    return 1;
}

CMD:kuractest(playerid) { //Komanda da prikaze CP i postavi promenljivu

    playerHacking[playerid] = 15; //Postavio promenljivu

    Novi_SetPlayerCheckpoint(playerid, 583.7122,-1259.1456,17.9459, 4.0); //Postavio CP

    return 1;
}

public OnPlayerEnterCheckpoint(playerid) {

    if(playerHacking[playerid] == 15) { //U ovu proveru ne zeli da udje iako je promenljiva stavljena na 15 i provera je prva u callbacku

        DisablePlayerCheckpoint(playerid); //Gasim CP

        playerHacking[playerid] = 0; //Stavljam na 0

        return 1;
    }

    return 1;
}[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): Crashdetect je ubacen, nema nista. Takodje sam koristio SendClientMessage da vidim gde stane, i skontao da zapravo nije htelo da udje u proveru, dok svaki ostali checkpoint radi.. Nista mi nije jasno
Naslov: Odg: Ne ulazi u proveru u OnPlayerEnterCheckpoint
Poruka od: Muma poslato Jun 30, 2021, 09:59:39 PRE PODNE
Postavio si na 15 provjeravaš ako je 15 da odradi, gdje je problem?
Naslov: Odg: Ne ulazi u proveru u OnPlayerEnterCheckpoint
Poruka od: V01D poslato Jun 30, 2021, 10:54:22 PRE PODNE
Citat: 'xza poslato Jun 30, 2021, 09:59:39 PRE PODNE
Postavio si na 15 provjeravaš ako je 15 da odradi, gdje je problem?

To se i ja pitam iskreno, postavljeno je na 15, kada udje u CP, ako je 15, nece da udje u proveru uopste i odradi ono unutar nje
Naslov: Odg: Ne ulazi u proveru u OnPlayerEnterCheckpoint
Poruka od: Muma poslato Jun 30, 2021, 11:42:18 PRE PODNE
Svašta, prvi put ovo vidim
Naslov: Odg: Ne ulazi u proveru u OnPlayerEnterCheckpoint
Poruka od: tutankamon poslato Jun 30, 2021, 13:33:55 POSLE PODNE
Sta se nalazi u Novi_SetPlayerCheckpoint f-ji?

Na vanilla modu sve funkcionise kako treba.
Naslov: Odg: Ne ulazi u proveru u OnPlayerEnterCheckpoint
Poruka od: V01D poslato Jun 30, 2021, 13:38:36 POSLE PODNE
Citat: tutankamon poslato Jun 30, 2021, 13:33:55 POSLE PODNE
Sta se nalazi u Novi_SetPlayerCheckpoint f-ji?

Samo ako mu je CP vec prikazan da ga iskljuci i prikaze novi..

[pawn]stock Novi_SetPlayerCheckpoint( playerid, Float:x, Float:y, Float:z, Float:size ) {
    if( PlayerCPShow[ playerid ] == true ) {
        DisablePlayerCheckpoint( playerid );
        PlayerCPShow[ playerid ] = false;
   }
   PlayerCPShow[ playerid ] = true;
   SetPlayerCheckpoint( playerid, x, y, z, size);[/pawn]
Naslov: Odg: Ne ulazi u proveru u OnPlayerEnterCheckpoint
Poruka od: tutankamon poslato Jun 30, 2021, 13:42:51 POSLE PODNE
Citat: V01D poslato Jun 30, 2021, 13:38:36 POSLE PODNE
Samo ako mu je CP vec prikazan da ga iskljuci i prikaze novi..

[pawn]stock Novi_SetPlayerCheckpoint( playerid, Float:x, Float:y, Float:z, Float:size ) {
    if( PlayerCPShow[ playerid ] == true ) {
        DisablePlayerCheckpoint( playerid );
        PlayerCPShow[ playerid ] = false;
   }
   PlayerCPShow[ playerid ] = true;
   SetPlayerCheckpoint( playerid, x, y, z, size);[/pawn]

Mozes li probati sa ovim pa postaviti sta je izbacilo u konzoli? Teoretski je skoro ne moguce da nesto kao sto je if ne funkcionise.

[pawn]public OnPlayerEnterCheckpoint(playerid) {

    if(playerHacking[playerid] == 15) {

        DisablePlayerCheckpoint(playerid);

      printf("(if) playerHacking[%d] = %d", playerid, playerHacking[playerid]);

        playerHacking[playerid] = 0;
       

        return 1;
    }
    else
    {
       printf("(else) playerHacking[%d] = %d", playerid, playerHacking[playerid]);
    }

    return 1;
}[/pawn]


Ako ne printa onda postavi skroz na pocetak eventa OnPlayerEnterCheckpoint jedan print da vidimo da li poziva uopste.
Naslov: Odg: Ne ulazi u proveru u OnPlayerEnterCheckpoint
Poruka od: V01D poslato Jun 30, 2021, 13:56:52 POSLE PODNE
Citat: tutankamon poslato Jun 30, 2021, 13:42:51 POSLE PODNE
Mozes li probati sa ovim pa postaviti sta je izbacilo u konzoli? Teoretski je skoro ne moguce da nesto kao sto je if ne funkcionise.

[pawn]public OnPlayerEnterCheckpoint(playerid) {

    if(playerHacking[playerid] == 15) {

        DisablePlayerCheckpoint(playerid);

      printf("(if) playerHacking[%d] = %d", playerid, playerHacking[playerid]);

        playerHacking[playerid] = 0;
       

        return 1;
    }
    else
    {
       printf("(else) playerHacking[%d] = %d", playerid, playerHacking[playerid]);
    }

    return 1;
}[/pawn]


Ako ne printa onda postavi skroz na pocetak eventa OnPlayerEnterCheckpoint jedan print da vidimo da li poziva uopste.

Vec sam pokusao, udje u OnPlayerEnterCheckpoint, izbaci poruku ispred if provere, i iza nje. Promenljiva je na broju 15, stampao sam je i preko /varcheck i unutar OnPlayerEnterCheckpoint.

Resio sam problem tako sto sam dodao novu boolean promenljivu i koristio nju... Nisam siguran sta je tacno ovde bio problem..