Pomoc

Započeo Piricc, juče u 20:33:10 POSLE PODNE

prethodna tema - sledeća tema

Robijas i 3 gostiju pregledaju ovu temu.

Naslov problema*: Problem sa sistemom paketica
Opis problema*: Ovako odradio sam sistem paketica i sve radi bez errora,ingame paketici se mogu stvoriti ali igrac moze otvoriti samo jedan paketic,najlakse objasnjeno je npr.ja dodjem ingame stvorim 10-15 paketica i dodje neki igrac i on moze otvoriti samo 1 paketic kada dodje do drugog pise da nema vise paketica iako stoji pored kreiranog paketica.Da li ima neko ideju kako to da fixam da igrac moze otvarat vise paketica.
Pokušaj rešavanja*: Pokusavao sam nesto ali mi nije islo
Deo programskog koda*: https://pastebin.com/UEcChysQ
Debug informacije://
Fotografija problema u igri: //
Korišćene biblioteke (includes): //
Dodatne informacije: Znam da je ovo sto postavljam glupo al ne mogu da najdem nacin da fixam

Ne mozes da nadjes nacin da fix nesto sto je jako banalno i prosto. Zato sto znas stvari napamet.

new Float:PoklonX[50], Float:PoklonY[50], Float:PoklonZ[50];
new PoklonObject[50];
new bool:PoklonCreated[50];
new const MAX_POKLONA = 50;

stock CreateGift(playerid)
{
    new i;
    for (i = 0; i < MAX_POKLONA; i++)
    {
        if (!PoklonCreated[i])
        {
            GetPlayerPos(playerid, PoklonX[i], PoklonY[i], PoklonZ[i]);
            PoklonX[i] += 1.5;
            PoklonY[i] += 1.5;
            PoklonZ[i] += 0.5;
            PoklonObject[i] = CreateObject(19057, PoklonX[i], PoklonY[i], PoklonZ[i], 0.0, 0.0, 0.0);
            PoklonCreated[i] = true;
            SendClientMessage(playerid, -1, "Stvorili ste novogodišnju kutiju!");
            SendClientMessageToAll(KAZANOVAGAMING, "Novogodišnja kutija je stvorena! Pronađite je i otvorite je.");
            return 1;
        }
    }
    SendClientMessage(playerid, -1, "Maksimalan broj paketića je već stvoren.");
    return 0;
}

stock OpenGift(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);

    for (new i = 0; i < MAX_POKLONA; i++)
    {
        if (PoklonCreated[i] && GetDistanceBetweenPoints3D(x, y, z, PoklonX[i], PoklonY[i], PoklonZ[i]) <= 3.0)
        {
            DestroyObject(PoklonObject[i]);
            PoklonCreated[i] = false;
            new reward = random(3);
            switch (reward)
            {
                case 0:
                {
                    GivePlayerMoney(playerid, 5000);
                    SendClientMessage(playerid, -1, "Otvorili ste kutiju i osvojili 5000$!");
                }
                case 1:
                {
                    PlayerInfo[playerid][xZlato] += 10;
                    SendClientMessage(playerid, -1, "Otvorili ste kutiju i osvojili 10 zlata!");
                }
                case 2:
                {
                    SendClientMessage(playerid, -1, "Otvorili ste kutiju, ali nije bilo ništa unutra. Sretno sljedeći put!");
                }
            }
            return 1;
        }
    }
    SendClientMessage(playerid, -1, "Nema paketića u blizini koje možete otvoriti.");
    return 0;
}

CMD:stvoripoklon(playerid, parms[])
{
    if (PlayerInfo[playerid][xAdmin] < 6) return SendErrorMessage(playerid, "Niste u mogućnosti koristiti ovu komandu.");
    CreateGift(playerid);
    return 1;
}

CMD:otvoripoklon(playerid, parms[])
{
    if (!IsPlayerConnected(playerid)) return SendErrorMessage(playerid, "Niste se ulogovali.");
    if (!OpenGift(playerid)) return SendErrorMessage(playerid, "Trenutno nije moguće otvoriti poklon.");
    return 1;
}
HTML / CSS / Javascript / Inspect : Entry Masterclass.
ReactJS / Tailwind CSS / PWA / Axios / SCSS / Redux, ViteJS : Entry Masterclass.
C / C++ / C# / C-objective - kroz Pawn Lang : Entry Masterclass
Grupisano Pravljenje Objekata : Filterscript.


Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.

Citat: markosimic poslato juče u 20:44:03 POSLE PODNENe mozes da nadjes nacin da fix nesto sto je jako banalno i prosto. Zato sto znas stvari napamet.

new Float:PoklonX[50], Float:PoklonY[50], Float:PoklonZ[50];
new PoklonObject[50];
new bool:PoklonCreated[50];
new const MAX_POKLONA = 50;

stock CreateGift(playerid)
{
    new i;
    for (i = 0; i < MAX_POKLONA; i++)
    {
        if (!PoklonCreated[i])
        {
            GetPlayerPos(playerid, PoklonX[i], PoklonY[i], PoklonZ[i]);
            PoklonX[i] += 1.5;
            PoklonY[i] += 1.5;
            PoklonZ[i] += 0.5;
            PoklonObject[i] = CreateObject(19057, PoklonX[i], PoklonY[i], PoklonZ[i], 0.0, 0.0, 0.0);
            PoklonCreated[i] = true;
            SendClientMessage(playerid, -1, "Stvorili ste novogodišnju kutiju!");
            SendClientMessageToAll(KAZANOVAGAMING, "Novogodišnja kutija je stvorena! Pronađite je i otvorite je.");
            return 1;
        }
    }
    SendClientMessage(playerid, -1, "Maksimalan broj paketića je već stvoren.");
    return 0;
}

stock OpenGift(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);

    for (new i = 0; i < MAX_POKLONA; i++)
    {
        if (PoklonCreated[i] && GetDistanceBetweenPoints3D(x, y, z, PoklonX[i], PoklonY[i], PoklonZ[i]) <= 3.0)
        {
            DestroyObject(PoklonObject[i]);
            PoklonCreated[i] = false;
            new reward = random(3);
            switch (reward)
            {
                case 0:
                {
                    GivePlayerMoney(playerid, 5000);
                    SendClientMessage(playerid, -1, "Otvorili ste kutiju i osvojili 5000$!");
                }
                case 1:
                {
                    PlayerInfo[playerid][xZlato] += 10;
                    SendClientMessage(playerid, -1, "Otvorili ste kutiju i osvojili 10 zlata!");
                }
                case 2:
                {
                    SendClientMessage(playerid, -1, "Otvorili ste kutiju, ali nije bilo ništa unutra. Sretno sljedeći put!");
                }
            }
            return 1;
        }
    }
    SendClientMessage(playerid, -1, "Nema paketića u blizini koje možete otvoriti.");
    return 0;
}

CMD:stvoripoklon(playerid, parms[])
{
    if (PlayerInfo[playerid][xAdmin] < 6) return SendErrorMessage(playerid, "Niste u mogućnosti koristiti ovu komandu.");
    CreateGift(playerid);
    return 1;
}

CMD:otvoripoklon(playerid, parms[])
{
    if (!IsPlayerConnected(playerid)) return SendErrorMessage(playerid, "Niste se ulogovali.");
    if (!OpenGift(playerid)) return SendErrorMessage(playerid, "Trenutno nije moguće otvoriti poklon.");
    return 1;
}
Hvala puno,pokusavao sam na neki tome slican nacin fixat ali mi je izbacivalo error sad vidim gdje je greska,jos jedno Hvala

Citat: markosimic poslato juče u 20:44:03 POSLE PODNENe mozes da nadjes nacin da fix nesto sto je jako banalno i prosto. Zato sto znas stvari napamet.

new Float:PoklonX[50], Float:PoklonY[50], Float:PoklonZ[50];
new PoklonObject[50];
new bool:PoklonCreated[50];
new const MAX_POKLONA = 50;

stock CreateGift(playerid)
{
    new i;
    for (i = 0; i < MAX_POKLONA; i++)
    {
        if (!PoklonCreated[i])
        {
            GetPlayerPos(playerid, PoklonX[i], PoklonY[i], PoklonZ[i]);
            PoklonX[i] += 1.5;
            PoklonY[i] += 1.5;
            PoklonZ[i] += 0.5;
            PoklonObject[i] = CreateObject(19057, PoklonX[i], PoklonY[i], PoklonZ[i], 0.0, 0.0, 0.0);
            PoklonCreated[i] = true;
            SendClientMessage(playerid, -1, "Stvorili ste novogodišnju kutiju!");
            SendClientMessageToAll(KAZANOVAGAMING, "Novogodišnja kutija je stvorena! Pronađite je i otvorite je.");
            return 1;
        }
    }
    SendClientMessage(playerid, -1, "Maksimalan broj paketića je već stvoren.");
    return 0;
}

stock OpenGift(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);

    for (new i = 0; i < MAX_POKLONA; i++)
    {
        if (PoklonCreated[i] && GetDistanceBetweenPoints3D(x, y, z, PoklonX[i], PoklonY[i], PoklonZ[i]) <= 3.0)
        {
            DestroyObject(PoklonObject[i]);
            PoklonCreated[i] = false;
            new reward = random(3);
            switch (reward)
            {
                case 0:
                {
                    GivePlayerMoney(playerid, 5000);
                    SendClientMessage(playerid, -1, "Otvorili ste kutiju i osvojili 5000$!");
                }
                case 1:
                {
                    PlayerInfo[playerid][xZlato] += 10;
                    SendClientMessage(playerid, -1, "Otvorili ste kutiju i osvojili 10 zlata!");
                }
                case 2:
                {
                    SendClientMessage(playerid, -1, "Otvorili ste kutiju, ali nije bilo ništa unutra. Sretno sljedeći put!");
                }
            }
            return 1;
        }
    }
    SendClientMessage(playerid, -1, "Nema paketića u blizini koje možete otvoriti.");
    return 0;
}

CMD:stvoripoklon(playerid, parms[])
{
    if (PlayerInfo[playerid][xAdmin] < 6) return SendErrorMessage(playerid, "Niste u mogućnosti koristiti ovu komandu.");
    CreateGift(playerid);
    return 1;
}

CMD:otvoripoklon(playerid, parms[])
{
    if (!IsPlayerConnected(playerid)) return SendErrorMessage(playerid, "Niste se ulogovali.");
    if (!OpenGift(playerid)) return SendErrorMessage(playerid, "Trenutno nije moguće otvoriti poklon.");
    return 1;
}

Štancuješ odgovore na pomoć, @markosimic . Nema šta, munja nebeska si.


@Piricc Sto ceti dijakritici u komentarima i u SCM? Ako programiras na latinici. Dobro, ako ti nije ANSI videce se, ali ne znam jos nikog da kuca kod na latinicnoj tastaturi. A ovde si kucao bez dijakritika... :o
Poslednja Izmena: danas u 00:56:15 PRE PODNE od Dragi