OnPlayerKeyStateChange

Započeo Ciger
pre 4 godine
716
pregleda
11
postova
Kroni
Underboss
pre 4 godine
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:
	if(newkeys & KEY_ACTION)
{
    if(PlayerInfo == POSAO_CISTAC)
{
    new Float:Pos;
            new ocisceno = 0;
            for(new i = 0; i < sizeof(Smece); i++)
            {
                GetPlayerObjectPos(playerid, Smece, Pos, Pos, Pos);
                if(IsPlayerInRangeOfPoint(playerid, 2.2, Pos, Pos, Pos) && VoziloCistac(GetPlayerVehicleID(playerid)))
                {
                    DestroyDynamicObject(Smece);
                    Smece = 999;
                }
                if(Smece == 999)
                {
                    ocisceno++;
                    new string;
                    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!");
            }
        }
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Vaš odgovor
Dellenzi_Car
Underboss
pre 4 godine
Kako su ti kreirani smece objekti
NegativeIQ
Kingpin
pre 4 godine
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...)
Kroni
Underboss
pre 4 godine
	if(newkeys & KEY_ACTION)
{
SCM(playerid, zuta2, "NECE NISTA");
    if(PlayerInfo == POSAO_CISTAC)
{
SCM(playerid, zuta2, "NECE NISTA 1");
new Float:Pos;
        new pokupljeno = 0;
        for(new i = 0; i < sizeof(Smece); i++)
        {
        SCM(playerid, zuta2, "NECE NISTA 2");
            GetPlayerObjectPos(playerid, Smece, Pos, Pos, Pos);
            if(IsPlayerInRangeOfPoint(playerid, 2.2, Pos, Pos, Pos) && VoziloCistac(GetPlayerVehicleID(playerid)))
            {
            SCM(playerid, zuta2, "NECE NISTA 3");
                DestroyDynamicObject(Smece);
                Smece = 999;
            }
            if(Smece == 999)
            {
                pokupljeno++;
                new string;
                SCM(playerid, zuta2, "NECE NISTA 4");
                format(string, sizeof(string), "%d/30", pokupljeno);
                PlayerTextDrawSetString(playerid, CistacTD, 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 ?
D1NO
Crime Lord
pre 4 godine
Ciger wrote on November 25, 2021, 7:26 pm:
	if(newkeys & KEY_ACTION)
{
SCM(playerid, zuta2, "NECE NISTA");
    if(PlayerInfo == POSAO_CISTAC)
{
SCM(playerid, zuta2, "NECE NISTA 1");
new Float:Pos;
        new pokupljeno = 0;
        for(new i = 0; i < sizeof(Smece); i++)
        {
        SCM(playerid, zuta2, "NECE NISTA 2");
            GetPlayerObjectPos(playerid, Smece, Pos, Pos, Pos);
            if(IsPlayerInRangeOfPoint(playerid, 2.2, Pos, Pos, Pos) && VoziloCistac(GetPlayerVehicleID(playerid)))
            {
            SCM(playerid, zuta2, "NECE NISTA 3");
                DestroyDynamicObject(Smece);
                Smece = 999;
            }
            if(Smece == 999)
            {
                pokupljeno++;
                new string;
                SCM(playerid, zuta2, "NECE NISTA 4");
                format(string, sizeof(string), "%d/30", pokupljeno);
                PlayerTextDrawSetString(playerid, CistacTD, 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...
Kroni
Underboss
pre 4 godine
Pa da ali sto ne izvrsava dalje funkciju, sto ne proveri poziciju objekta i da li je igrac u toj poziciji?
Dellenzi_Car
Underboss
pre 4 godine
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.
Kroni
Underboss
pre 4 godine
Prvo sam pokusa sa komandom da stvorim objekte CreatePlayerObject ali nisu se stvarali pa sam ih pod ongamemodeinit kreirao
Smece = CreateDynamicObject(2840, 1335.57166, -1157.28027, 22.79760,0,0,0);
ima ih dvadesetak da ih sve ne postavljam
Taylor Script
Made Man
pre 4 godine
Objekat kreiras kao dynamic a getujes ga kao GetPlayerObjectPos
Dellenzi_Car
Underboss
pre 4 godine
Ciger wrote on November 25, 2021, 8:10 pm:
Prvo sam pokusa sa komandom da stvorim objekte CreatePlayerObject ali nisu se stvarali pa sam ih pod ongamemodeinit kreirao
Smece = 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
Kroni
Underboss
pre 4 godine
Hvala, reseno

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava