Ne ulazi u proveru u OnPlayerEnterCheckpoint


Započeo V01D, Jun 30, 2021, 09:05:34 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Kada igrac udje u checkpoint, nedje da udje u proveru i odradi ono sto je unutar nje
Deo skripte:
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;
}

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
Poslednja Izmena: Jul 01, 2021, 01:20:06 PRE PODNE od M Ө M Σ N Z I

Postavio si na 15 provjeravaš ako je 15 da odradi, gdje je problem?

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


Sta se nalazi u Novi_SetPlayerCheckpoint f-ji?

Na vanilla modu sve funkcionise kako treba.
Poslednja Izmena: Jun 30, 2021, 13:38:56 POSLE PODNE od tutankamon

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..

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);

Citat: V01D poslato Jun 30, 2021, 13:38:36 POSLE PODNE
Samo ako mu je CP vec prikazan da ga iskljuci i prikaze novi..

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);


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.

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;
}



Ako ne printa onda postavi skroz na pocetak eventa OnPlayerEnterCheckpoint jedan print da vidimo da li poziva uopste.
Poslednja Izmena: Jun 30, 2021, 13:44:06 POSLE PODNE od tutankamon

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.

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;
}



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..