OnPlayerKeyStateChange

Započeo Ciger, Novembar 25, 2021, 18:32:24 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Problem(error/warning):radim posao cistaca ulica i sada mi je potrebno kada dodjem do objekta postavljenog i pritisnem ctrl da pokupi tj obrise objekat ali se nista ne desava
Deo skripte: [pawn]   if(newkeys & KEY_ACTION)
   {
       if(PlayerInfo[playerid][pPosao] == POSAO_CISTAC)
      {
          new Float:Pos[3];
            new ocisceno = 0;
            for(new i = 0; i < sizeof(Smece); i++)
            {
                GetPlayerObjectPos(playerid, Smece, Pos[0], Pos[1], Pos[2]);
                if(IsPlayerInRangeOfPoint(playerid, 2.2, Pos[0], Pos[1], Pos[2]) && VoziloCistac(GetPlayerVehicleID(playerid)))
                {
                    DestroyDynamicObject(Smece);
                    Smece = 999;
                }
                if(Smece == 999)
                {
                    ocisceno++;
                    new string[24];
                    format(string, sizeof(string), "%d/30", ocisceno);
                    SCM(playerid,zuta2,string);
                }
            }
            if(ocisceno == 30)
            {
                SCM(playerid, zuta2, "Uspesno ste ispunili normu, vratite vozilo u krug firme!");
            }
        }
}[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Vaš odgovor
Poslednja Izmena: Novembar 27, 2021, 16:07:05 POSLE PODNE od мυмα

Kako su ti kreirani smece objekti

[Filterscript] Simple Treasure Hunt
[Filterscript] Sistem pecanja
[Filterscript] Meditacija
[Filterscript] Molitva
[Include] Alarm
[Include] Posao Taxi

Prvo proveri da li ti se poziva key kada pritisnes (da nema kakav return ili nesto da prekida kod pre nego sto dodje do tog dela).
mozes odmah unutar if(newkeys & KEY_ACTION), samo print ili SendClientMessage

Drugo, ako ti se poziva to, onda daj VoziloCistac funkciju. Takodje predlazem da load kao prvi plugin (ispred svih ostallih) CrashDetect i da probas onda pa vidis u log da li ti izbacuje nesto mozda (nece me cuditi ako budes imao kakav overflow...)

if(newkeys & KEY_ACTION)
{
SCM(playerid, zuta2, "NECE NISTA");
    if(PlayerInfo[playerid][pPosao] == POSAO_CISTAC)
{
SCM(playerid, zuta2, "NECE NISTA 1");
new Float:Pos[3];
        new pokupljeno = 0;
        for(new i = 0; i < sizeof(Smece); i++)
        {
        SCM(playerid, zuta2, "NECE NISTA 2");
            GetPlayerObjectPos(playerid, Smece[i], Pos[0], Pos[1], Pos[2]);
            if(IsPlayerInRangeOfPoint(playerid, 2.2, Pos[0], Pos[1], Pos[2]) && VoziloCistac(GetPlayerVehicleID(playerid)))
            {
            SCM(playerid, zuta2, "NECE NISTA 3");
                DestroyDynamicObject(Smece[i]);
                Smece[i] = 999;
            }
            if(Smece[i] == 999)
            {
                pokupljeno++;
                new string[512];
                SCM(playerid, zuta2, "NECE NISTA 4");
                format(string, sizeof(string), "%d/30", pokupljeno);
                PlayerTextDrawSetString(playerid, CistacTD[playerid][4], string);
            }
        }
        if(pokupljeno == 30)
        {
            SCM(playerid, zuta2, "Uspesno ste ispunili normu, vratite vozilo u krug firme!");
            SetPlayerCheckpoint(playerid, 1004.9808,-1095.3148,23.8281, 3.0);
        }
        }

Ovde gde pise nece nista 2 tu zapuca posalje jednno 10 poruka, moze pomoc ?

Citat: Ciger poslato Novembar 25, 2021, 20:26:12 POSLE PODNE
if(newkeys & KEY_ACTION)
{
SCM(playerid, zuta2, "NECE NISTA");
    if(PlayerInfo[playerid][pPosao] == POSAO_CISTAC)
{
SCM(playerid, zuta2, "NECE NISTA 1");
new Float:Pos[3];
        new pokupljeno = 0;
        for(new i = 0; i < sizeof(Smece); i++)
        {
        SCM(playerid, zuta2, "NECE NISTA 2");
            GetPlayerObjectPos(playerid, Smece[i], Pos[0], Pos[1], Pos[2]);
            if(IsPlayerInRangeOfPoint(playerid, 2.2, Pos[0], Pos[1], Pos[2]) && VoziloCistac(GetPlayerVehicleID(playerid)))
            {
            SCM(playerid, zuta2, "NECE NISTA 3");
                DestroyDynamicObject(Smece[i]);
                Smece[i] = 999;
            }
            if(Smece[i] == 999)
            {
                pokupljeno++;
                new string[512];
                SCM(playerid, zuta2, "NECE NISTA 4");
                format(string, sizeof(string), "%d/30", pokupljeno);
                PlayerTextDrawSetString(playerid, CistacTD[playerid][4], string);
            }
        }
        if(pokupljeno == 30)
        {
            SCM(playerid, zuta2, "Uspesno ste ispunili normu, vratite vozilo u krug firme!");
            SetPlayerCheckpoint(playerid, 1004.9808,-1095.3148,23.8281, 3.0);
        }
        }

Ovde gde pise nece nista 2 tu zapuca posalje jednno 10 poruka, moze pomoc ?

Zapuca ti 10 poruka jer ti je to u loopu...
SPEED HACK (C++) https://github.com/nouddy/samp-speed-hack
Reliant GameMode (open.mp) https://github.com/nouddy/reliant-omp
SA:MP Landing Page https://github.com/nouddy/samp-landing-page


Kolko drama ima u 7 grama

Pa da ali sto ne izvrsava dalje funkciju, sto ne proveri poziciju objekta i da li je igrac u toj poziciji?

Ocigledno pogresno kreiras objekte, zato sam ti na pocetku trazio da posaljes smece objekt kako kreiras ali tebe boli kurac za mojim komentarom. Provjeravas poziciju igracevog objekta i onda brises dinamican objekat. Jasno je gdje je greska ali ti ne trazis rjesenje nego samo povrsno ispitujes.

[Filterscript] Simple Treasure Hunt
[Filterscript] Sistem pecanja
[Filterscript] Meditacija
[Filterscript] Molitva
[Include] Alarm
[Include] Posao Taxi

Prvo sam pokusa sa komandom da stvorim objekte CreatePlayerObject ali nisu se stvarali pa sam ih pod ongamemodeinit kreirao
Smece[0] = CreateDynamicObject(2840, 1335.57166, -1157.28027, 22.79760,0,0,0); ima ih dvadesetak da ih sve ne postavljam

Objekat kreiras kao dynamic a getujes ga kao GetPlayerObjectPos
Poslednja Izmena: Novembar 25, 2021, 21:16:03 POSLE PODNE od _tayloR

Citat: Ciger poslato Novembar 25, 2021, 21:10:36 POSLE PODNE
Prvo sam pokusa sa komandom da stvorim objekte CreatePlayerObject ali nisu se stvarali pa sam ih pod ongamemodeinit kreirao
Smece[0] = CreateDynamicObject(2840, 1335.57166, -1157.28027, 22.79760,0,0,0); ima ih dvadesetak da ih sve ne postavljam
da si mi to odma rekao do sada bi rijesili problem
GetDynamicObjectPos umjesto getplayerobjectpos i rijesen problem

[Filterscript] Simple Treasure Hunt
[Filterscript] Sistem pecanja
[Filterscript] Meditacija
[Filterscript] Molitva
[Include] Alarm
[Include] Posao Taxi