Szerző Téma: Random Object spawnolása, lekérdezése, törlése  (Megtekintve 880 alkalommal)

Random Object spawnolása, lekérdezése, törlése
« Dátum: 2014. október 05. - 15:38:55 »
0 Show voters
Hy all!
Elakadtam a lassú fejlesztésemben.
Elkezdtem egy olyan kis scriptet össze állítani, ami abból állna, hogy az utcára lespawnolna idõközönként szemét objecteket, majd azokat fel lehessen venni ha mellette vagy, majd kitörli az objectet.
Eddig erre jutottam, eddig minden rendben, csak nem törli ki az objectet.
 

new szemetobj[50];
public OnGameModeInit()
{
SetTimer(\"Szemetek\", 60000, true);  //6 percenként spawnoljon
}
forward Szemetek();
public Szemetek()
{
for(new i;i<MAX_SLOT;i++)
{
        switch(random(3))
        {
case 0: szemetobj[0] = CreateObject(2838,125.36540, -107.04950, 0.61040,0,0,0);
case 1: szemetobj[1] = CreateObject(2838,125.45841, -112.04668, 0.61040,0,0,0);
case 2: szemetobj[2] = CreateObject(2838,125.54805, -101.97482, 0.61040,0,0,0);
}
        }
return 1;
}
 
CMD:szemetszed(playerid,params[])
{
new Counter=0;
    new Float:Pos[3];
for(new i = 0; i < sizeof(szemetobj); i++)
{
    GetObjectPos(szemetobj, Pos[0], Pos[1], Pos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 1.5, Pos[0], Pos[1], Pos[2]))
                {
                    Counter++;
                    if(Counter>= sizeof(szemetobj))
                       {
                           SendClientMessage(playerid,COLOR_RED,\"Nem vagy szemét közelében!\");
                           return 0;
                       }
DestroyObject(szemetobj);
SendClientMessage(playerid, NARANCS, \"Izéne, kikéne törölni\");
         }
}
return 1;
}

 
Mi lehet a hiba?  :hmmm:
Aki segít, és elõrébb is jutok annak +!
ui.: Rájöttem hogy rossz helyre nyitottam, megkérhetnék egy moderátort hogy átrakja? Köszönöm  :)
« Utoljára szerkesztve: 2014. október 05. - 22:07:40 írta Flash »

Nem elérhető rayle

  • 174
    • Profil megtekintése
Random Object spawnolása, lekérdezése, törlése
« Válasz #1 Dátum: 2014. október 05. - 16:08:57 »
+1 Show voters
Elvileg mûködik.
 
new szemetobj[3];
public OnGameModeInit()
{
SetTimer(\"Szemetek\", 60*1000*6, true);  //6 percenként spawnoljon
}
forward Szemetek();
public Szemetek()
{
        switch(random(3))
        {
case 0: szemetobj[0] = CreateObject(2838,125.36540, -107.04950, 0.61040,0,0,0);
case 1: szemetobj[1] = CreateObject(2838,125.45841, -112.04668, 0.61040,0,0,0);
case 2: szemetobj[2] = CreateObject(2838,125.54805, -101.97482, 0.61040,0,0,0);
}
return 1;
}
CMD:szemetszed(playerid,params[])
{
new kozel = false;
new Float:Pos[3];
for(new i = 0; i < sizeof(szemetobj); i++)
{
GetObjectPos(szemetobj, Pos[0], Pos[1], Pos[2]);
if(IsPlayerInRangeOfPoint(playerid, 1.5, Pos[0], Pos[1], Pos[2]))
                {
   kozel = true;
   DestroyObject(szemetobj);
   SendClientMessage(playerid, NARANCS, \"Izéne, kikéne törölni\");
   break;
            }
}
if(!kozel) SendClientMessage(playerid,COLOR_RED,\"Nem vagy szemét közelében!\");
return 1;
}

Random Object spawnolása, lekérdezése, törlése
« Válasz #2 Dátum: 2014. október 05. - 16:21:27 »
0 Show voters
Kiváló, mûködik, már csak egy baj van.
Az elsõ objectet lerakja egybõl, mikor elindul, és azt nem lehet felvenni, de a másik 2-õt igen, miért ? : :hmmm:
ui.: Rendben, megoldottam, köszönöm <3
de még egy gond fenn akadt, ha egy koordinátára lespawnol még egy object, és felveszem, de akkor a másik ami elõtte ott volt azt nem lehet kitörölni, ezt hogy lehetne megoldani?
« Utoljára szerkesztve: 2014. október 05. - 16:29:16 írta Ryan_Adam »

Nem elérhető rayle

  • 174
    • Profil megtekintése
Random Object spawnolása, lekérdezése, törlése
« Válasz #3 Dátum: 2014. október 05. - 17:04:29 »
0 Show voters
Akár úgy is meglehet oldani, hogy egy helyre több szemét nem spawnolhat.
forward Szemetek();
public Szemetek()
{
        switch(random(3))
        {
                case 0: if(!IsValidObject(szemetobj[0])) szemetobj[0] = CreateObject(2838,125.36540, -107.04950, 0.61040,0,0,0);
                case 1: if(!IsValidObject(szemetobj[1])) szemetobj[1] = CreateObject(2838,125.45841, -112.04668, 0.61040,0,0,0);
                case 2: if(!IsValidObject(szemetobj[2])) szemetobj[2] = CreateObject(2838,125.54805, -101.97482, 0.61040,0,0,0);
        }
        return 1;
}

Random Object spawnolása, lekérdezése, törlése
« Válasz #4 Dátum: 2014. október 05. - 22:12:09 »
0 Show voters
Igen, erre gondoltam :)
Köszönöm mester, nagyon hálás vagyok :DD!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal