Jump to content
  • 0

Nu se sterge dupa ce se creeaza(obiect)


Question

Posted (edited)

Problema intalnita (descriere): Am facut doua comenzi(/cb pentru a crea un obiect si /db pentru a-l sterge)(este vorba despre un blocaj pentru trafic). Pentru a nu se crea obiecte in prostie, am pus sa se faca maxim 20 de obiecte. Pana aici totul perfect. Cand vine vremea sa sterg obiectele folosind /db, am zis sa le pun sa se stearga in ordine inversa fata de cum s-au creat, adica de la ultimul la primul. Comanda se executa, dar obiectul nu se sterge. Pentru a intelege mai bine, am sa pun un filmulet: https://youtu.be/4iFwua835oc
Ero(area / rile) / warning-(ul / urile): -
Liniile de cod / sursa / script-ul(obligatoriu):

 

new RBT[MAX_PLAYERS] = 0; // Contorizez mereu cate obiecte are fiecare jucator
new bool:RoadBlock[20][MAX_PLAYERS]; // 20 obiecte pentru fiecare player, in care se retine daca obiectul este ccreat sau nu
new RB[20][MAX_PLAYERS]; // Obiectele pentru fiecare jucator
 
    if(strcmp(cmd,"/creeazablocaj",true)==0 || strcmp(cmd,"/cb",true)==0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pFactiune] == 1 || PlayerInfo[playerid][pLider] == 1)
            {
                if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, c_alb, "Nu poti folosi aceasta comanda intr-un vehicul.");
                new Float:X, Float:Y, Float:Z, Float:A;
                GetPlayerPos(playerid, X, Y, Z);
                GetPlayerFacingAngle(playerid, A);
                if(RBT[playerid] < 21)
                    RBT[playerid] ++;
                else return SCM(playerid, c_alb, "( {3691E0}CMD{FFFFFF} ) Nu poti crea alt blocaj.");
                if(RoadBlock[RBT[playerid]][playerid] == true) return SCM(playerid, c_alb, "( {3691E0}CMD{FFFFFF} ) S-a produs o eroare.");
                RoadBlock[RBT[playerid]][playerid] = true;
                RB[RBT[playerid]][playerid] = CreateObject(979, X, Y, Z, 0.0, 0.0, A);
                SetPlayerPos(playerid, X, Y, Z+2.0);
                format(string, sizeof(string), "~w~Blocaj %d ~r~creat", RBT[playerid]-1);
                GameTextForPlayer(playerid, string, 3000, 5);
            } else return SCM(playerid, c_alb, "( {3691E0}CMD{FFFFFF} ) Nu esti politist.");
        }
        return 1;
    }
 
    if(strcmp(cmd,"/distrugeblocaj",true)==0 || strcmp(cmd,"/db",true)==0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pFactiune] == 1 || PlayerInfo[playerid][pLider] == 1)
            {
                if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, c_alb, "Nu poti folosi aceasta comanda intr-un vehicul.");
                if(RBT[playerid] < 1) return SCM(playerid, c_alb, "( {3691E0}CMD{FFFFFF} ) Nu poti crea alt blocaj.");
                if(RoadBlock[RBT[playerid]][playerid] == false) return SCM(playerid, c_alb, "( {3691E0}CMD{FFFFFF} ) S-a produs o eroare.");
                RoadBlock[RBT[playerid]][playerid] = false;
                DestroyObject(RoadBlock[RBT[playerid]-1][playerid]);
                RBT[playerid] --;
                format(string, sizeof(string), "~w~Blocaj %d ~r~distrus", RBT[playerid]);
                GameTextForPlayer(playerid, string, 3000, 5);
            } else return SCM(playerid, c_alb, "( {3691E0}CMD{FFFFFF} ) Nu esti politist.");
        }
        return 1;
    }


Imagini / Video (optional): https://youtu.be/4iFwua835oc
Ati incercat sa rezolvati singur?: Da.

Edited by Punct.

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

6 answers to this question

Recommended Posts

  • 0
Posted

Te-ai complicat degeaba, nu era mai ușor să faci așa? (Funcționează, e verificat de mine)

CMD:cb(playerid,params[])
{
	new Float:X, Float:Y, Float:Z, Float:A;
 	GetPlayerPos(playerid, X, Y, Z);
  	GetPlayerFacingAngle(playerid, A);
   	if(RBT[playerid] < 21)
    	RBT[playerid] ++;
    else return SendClientMessageEx(playerid, COLOR_WHITE, "( {3691E0}CMD{FFFFFF} ) Nu poti crea alt blocaj.");
    RBT[playerid] = CreateObject(979, X, Y, Z, 0.0, 0.0, A);
    SetPlayerPos(playerid, X, Y, Z+2.0);
    format(string, sizeof(string), "~w~Blocaj %d ~r~creat", RBT[playerid]-1);
    GameTextForPlayer(playerid, string, 3000, 5);
    return 1;
}
CMD:db(playerid,params[])
{
    if(RBT[playerid] < 1) return SendClientMessageEx(playerid, COLOR_WHITE, "( {3691E0}CMD{FFFFFF} ) Nu ai blocaj.");
    DestroyObject(RBT[playerid]);
	RBT[playerid]--;
	format(string, sizeof(string), "~w~Blocaj %d ~r~distrus", RBT[playerid]);
    GameTextForPlayer(playerid, string, 3000, 5);
    return 1;
}

PS# Modifică după cum le-ai declarat tu!

  • 0
Posted (edited)

Bun. AM modificat dupa cum mi-ai dat tu, dar imediat cum folosesc /cb, se creaza obiectul si imi zice "Blocaj 601 creat". Daca-l sterg, se sterge obiectul si imi zice "Blocaj 601 distrus", si daca tot folosesc /db tot scade acel numar..

 

Dupa nu mai pot crea alt obiect.

Edited by Punct.

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

  • 0
Posted

Presupun ca n-ai umblat la:
new RBT[MAX_PLAYERS] = 0;

​Nu. Si am pus si la OnPlayerConnect:

RBT[playerid] = 0;

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

  • 0
Posted

Totuși e curios cum de te lasă să pui, de ce îți da 601 dacă tu ai decizie pe RBT[playerid] < 21 .. încearcă sa inițializezi cu 1;

 

  • 0
Posted (edited)

am incercat. aceeasi problema.

 

Edit: Am pus cum vrea el.. cu 600+ :))

Cand se creeaza, incepe de la 600 si se duce pana la 620. Pe ecran afiseaza numarul cum trebuie, adica RBT[playerid]-600 :))

 

Daca se poate rezolva altfel va rog sa postati.. ca e cam aiurea sa le numerotez de la 600..

Edited by Punct.

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.