GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Ryan_Adam - 2014. október 05. - 15:38:55

Cím: Random Object spawnolása, lekérdezése, törlése
Írta: Ryan_Adam - 2014. október 05. - 15:38:55
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  :)
Cím: Random Object spawnolása, lekérdezése, törlése
Írta: rayle - 2014. október 05. - 16:08:57
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;
}
Cím: Random Object spawnolása, lekérdezése, törlése
Írta: Ryan_Adam - 2014. október 05. - 16:21:27
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?
Cím: Random Object spawnolása, lekérdezése, törlése
Írta: rayle - 2014. október 05. - 17:04:29
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;
}
Cím: Random Object spawnolása, lekérdezése, törlése
Írta: Ryan_Adam - 2014. október 05. - 22:12:09
Igen, erre gondoltam :)
Köszönöm mester, nagyon hálás vagyok :DD!