Jump to content
  • 0

Nu se sterge dupa ce se creeaza(obiect)


Punct.

Question

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

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

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!

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • 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.