Szerző Téma: Objec törlési fail  (Megtekintve 992 alkalommal)

Nem elérhető RIP

Objec törlési fail
« Dátum: 2016. március 28. - 01:06:33 »
0 Show voters
Sziasztok, csináltam gyakorlás kép egy olyan scriptet, ami lerak egy karácsonyfát (sok értelme nincs de legalább ezt is kipróbáltam :DD)
Viszont ha már lerakjuk akkor jó lenne törölni is és itt jön a probléma. Lekérem, hogy létezik e az object majd utána törlöm de törlés helyett ott marad, a SendClientMessage szöveg lefut meg minden de a fát nem törli.
 

CMD:fa(playerid, params[])
{
new Float:x, Float:y, Float:z;
new fa = CreateObject(19076, x, y+1, z-1, 0, 0, 0);
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid, 0xFFFFFFFF, \"{1E90FF}Teszt Szerver: {FFFFFF}Nem használhatod ezt a parancsot!\");
    if(isnull(params))
return SendClientMessage(playerid, 0xFFFFFFFF, \"{1E90FF}Teszt Szerver: {FFFFFF}Használat: /fa [lerak, töröl]\");
    if(!strcmp(params, \"lerak\", true))
    {
GetPlayerPos(playerid, x, y, z);
fa = CreateObject(19076, x, y+1, z-1, 0, 0, 0);
SendClientMessageToAll(0xFFFFFFFF, \"{1E90FF}Teszt Szerver: {FFFFFF}Sikeresen leraktad a karácsonyfát!\");
}
else if(!strcmp(params, \"töröl\", true))
{
    if(IsValidObject(fa)) DestroyObject(fa);
SendClientMessage(playerid, 0xFFFFFFFF, \"{1E90FF}Teszt Szerver: {FFFFFF}Sikeresen törölted a karácsonyfá(ka)t!\");
}
return 1;
}

 
Köszönöm előre is a válaszokat :)

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Objec törlési fail
« Válasz #1 Dátum: 2016. március 28. - 01:25:01 »
0 Show voters
A változónak nem kell object létrehozást hozzárendelni, szóval simán new fa;

Nem elérhető RIP

Objec törlési fail
« Válasz #2 Dátum: 2016. március 28. - 01:34:52 »
0 Show voters
Úgy is próbáltam már, de nem működött ezért próbáltam így, de onnan kiveszem majd akkor ha az oda nem kell.

Objec törlési fail
« Válasz #3 Dátum: 2016. március 28. - 04:07:50 »
+1 Show voters

#include <a_samp>
#include <zcmd>
#include <sscanf2>
public OnFilterScriptInit(){return 1;}
public OnFilterScriptExit()
{
return 1;
}
#define MAXKARACSONYFA 10
enum karacsonyfaenum
{
kFaID,
Float:kFaPoz[3],
bool:kLerakva,
kObject
};
new Karacsonyfa[MAXKARACSONYFA][karacsonyfaenum]
CMD:fa(playerid,params[])
{
new parameterek[32],formazas[32];
new Float:poz[3];
GetPlayerPos(playerid,poz[0],poz[1],poz[2]);
if(sscanf(params, \"s[32]{}\", parameterek))
{
SendClientMessage(playerid,-1,\"/fa [Lerak | Töröl]\");
return 1;
}
if(!strcmp(parameterek,\"lerak\"))
{
new id = -1;
for(new i=0;i<MAXKARACSONYFA;i++)
{
   if(Karacsonyfa[kLerakva] == false)
   {
      id = i;
      break;
   }
}
if(id == -1)
{
   SendClientMessage(playerid,-1,\"Nincs több hely!\");
   return 1;
}
Karacsonyfa[id][kFaID] = id;
Karacsonyfa[id][kLerakva] = true;
Karacsonyfa[id][kFaPoz][0] = poz[0];
Karacsonyfa[id][kFaPoz][1] = poz[1]+1;
Karacsonyfa[id][kFaPoz][2] = poz[2]-1;
Karacsonyfa[id][kObject] = CreateObject(19076,poz[0],poz[1]+1,poz[2]-1,0,0,0);
format(formazas,sizeof(formazas),\"Leraktad a %d ID jű fát!\",id);
SendClientMessage(playerid,-1,formazas);
return 1;
}
else if(!strcmp(parameterek,\"töröl\"))
{
new id = -1
if(sscanf(params, \"{s[32]}d\",id))      
{
   SendClientMessage(playerid,-1,\"Adj meg egy ID-t!\");
   return 1;
}
if(Karacsonyfa[id][kLerakva] == false)
{
   SendClientMessage(playerid,-1,\"Hiba lepett fel!\");
   return 1;
}
Karacsonyfa[id][kFaID] = 0;
Karacsonyfa[id][kLerakva] = false;
Karacsonyfa[id][kFaPoz][0] = 0;
Karacsonyfa[id][kFaPoz][1] = 0;
Karacsonyfa[id][kFaPoz][2] = -50;
DestroyObject(Karacsonyfa[id][kObject]);
format(formazas,sizeof(formazas),\"Törölted a %d ID jű fát!\",id);
SendClientMessage(playerid,-1,formazas);
}
return 1;
}

 
ha bármi gond lenne írj nyugodtan!
Teszteltem !
MEGY!
ha kell átküldöm a pluginomat is és az include mellé! mert nem mind1!
így most 10 et rakhatsz le! és mind a 10 et KÜLÖN törölheted!

Nem elérhető RIP

Objec törlési fail
« Válasz #4 Dátum: 2016. március 28. - 17:24:41 »
0 Show voters
Esetleg azt nem tudod megmondani, hogy az általam megírtba mi a hiba a törlésnél?
Azt köszönöm egyébként, hogy megírtad, csak sosem fogom megtanulni tényleg, ha teljesen készen kapom meg.
Ezt is csak azért kérdeztem mert már mindent próbáltam ezzel kapcsolatban de nem akart sehogy sem összejönni.

Objec törlési fail
« Válasz #5 Dátum: 2016. március 29. - 00:19:00 »
0 Show voters
Story annyi hogy a te rendszered úgy megy lerakhatsz fákat annyit amennyit akarsz
de csak az utolsót tudod mindig törölni mivel egy változód van amibe tárolhatsz infot és az mindig az utolsó fa lesz..
a tömbös megoldás jobb mert így a többit is tudod törölni ha arról van szó.
Nem teljesen kész mert lehet rajta még bővíteni mint álllat :D [igen direkt írtam 3db L betűvel]
ez csak egy minta úgymond hogy tudsz a tömbel játszani..
sok mindenhez jó lehet sőt mindenhez IS jó!

Nem elérhető RIP

Objec törlési fail
« Válasz #6 Dátum: 2016. március 29. - 00:39:43 »
0 Show voters
Megpróbálom majd megfejteni a dolgot :), mindenesetre tényleg köszönöm, hogy fordítottál rá egy kis időt és megírd ezt. Csak sajnos még elég kezdő vagyok a dologban. :)

Objec törlési fail
« Válasz #7 Dátum: 2016. március 29. - 01:08:05 »
0 Show voters
Semmi baj majd belejössz!
Bocsi hogy nem tudok értelmesen magyarázni de nem igazán tudok tanárkodni.
én megoldalni tudom nem elmagyarázni hogy mit miért kell használni :D

Objec törlési fail
« Válasz #8 Dátum: 2016. március 29. - 10:41:31 »
0 Show voters
Hogy lehettek ennyire hülyék? Nézzetek már rá a scriptre, hát 2x hozza létre a karácsonyfát, ha a lerakás parancsot írja be. Azért nem törli ki a karácsonyfát, mivel mind2 object ugyan ott van, és az egyik felülírja a másikat..

Nem elérhető RIP

Objec törlési fail
« Válasz #9 Dátum: 2016. március 29. - 23:39:33 »
0 Show voters
A 4. és a 13. sorra gondolsz?
Teszt ként írtam felülre csak a 4 sorba a dolgot, az már nincs ott, és úgy sem működik. Ha esetleg nem erre gondoltál, akkor leírnád, hogy mire?

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal