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: takehun - 2012. november 27. - 15:34:37

Cím: AttachObjectToVehicle leszedése
Írta: takehun - 2012. november 27. - 15:34:37
Üdv, az volna a gondom, hogy nem szedi le a felrakott objectet...   :no:  Mi lehet a baj?
Köszönöm szépen!
 
CMD:felrak1(playerid, params[])
{
new object1 = CreateObject(19410, 0, 0, -1000, 0, 0, 0, 100);
AttachObjectToVehicle(object1, GetPlayerVehicleID(playerid), 0.009998, -3.140001, 1.550000, 0.000000, 0.000000, 0.000000);
return 1;
}
CMD:leszed1(playerid, params[])
{
DestroyObject(19410);
return 1;
}
Cím: AttachObjectToVehicle leszedése
Írta: ZyZu. - 2012. november 27. - 15:38:09
CMD:felrak1(playerid, params[])
{
new object1 = CreateObject(19410, 0, 0, -1000, 0, 0, 0, 100);
AttachObjectToVehicle(object1, GetPlayerVehicleID(playerid), 0.009998, -3.140001, 1.550000, 0.000000, 0.000000, 0.000000);
return 1;
}
CMD:leszed1(playerid, params[])
{
        new object1 = CreateObject(19410, 0, 0, -1000, 0, 0, 0, 100);
DestroyObject(object1);
return 1;
}

 
Probáld meg így hátha jó :D :)
Cím: AttachObjectToVehicle leszedése
Írta: takehun - 2012. november 27. - 17:09:14
SE.   :-[
Egyébként amit írtál, az így lenne helyes:
 
CMD:leszed1(playerid, params[])
{
    new object1 = CreateObject(19410, 0, 0, -1000, 0, 0, 0, 100);
DestroyObject(object1);
return 1;
}

 
De mivel nem mûködik, így ez is felejtõs...
Cím: AttachObjectToVehicle leszedése
Írta: Zsolesszka - 2012. november 27. - 18:01:45
Ne hülyéskedjetek már.
Létrehoztok egy objectet aminek az azonosító számát tároljátok egy lokál változóban, majd azt akarjátok törölni?
 

new object1;
CMD:felrak1(playerid, params[])
{
object1 = CreateObject(19410, 0, 0, -1000, 0, 0, 0, 100);
AttachObjectToVehicle(object1, GetPlayerVehicleID(playerid), 0.009998, -3.140001, 1.550000, 0.000000, 0.000000, 0.000000);
return 1;
}
CMD:leszed1(playerid, params[])
{
DestroyObject(object1);
return 1;
}

 
Így már mûködõképes, viszont több hátránya is van.
Ha kétszer írja be valaki a felrak1 parancsot akkor a legelsõ objectet nem tudja törölni.
Ugyanez a helyzet akkor is, ha másik játékos is használja a felrak1 parancsot, akkor még az is elõfordulhat hogy más játékos törli az objectet szintén egy másik játékosnak.
 
   new object1[MAX_PLAYERS];
CMD:felrak1(playerid, params[])
{
object1[playerid] = CreateObject(19410, 0, 0, -1000, 0, 0, 0, 100);
AttachObjectToVehicle(object1[playerid], GetPlayerVehicleID(playerid), 0.009998, -3.140001, 1.550000, 0.000000, 0.000000, 0.000000);
return 1;
}
CMD:leszed1(playerid, params[])
{
DestroyObject(object1[playerid]);
return 1;
}

 
Így már minden játékosnak lehet saját object a jármûvén és csak is a sajátját tudja törölni.
Viszont szintén ha kétszer használja a felrak1 parancsot akkor a legelsõt nem tudja törölni, tehát tovább kell bõvíteni a dolgot, vagy több object azonosító számot tárolni játékosonként, vagy letiltani a parancs használatát ha már egyszer használta. Persze oda kell figyelni arra is ha kilép a szerverrõl akkor az általa létrehozott object törlésre is kerüljön ha a játékos ezt nem teszi meg.
 :)


Edit: Javítva.
Cím: AttachObjectToVehicle leszedése
Írta: takehun - 2012. november 27. - 20:02:43
Rendben köszi, mûködik ;)
Itt kihagytad a [playerid] -t:
 
AttachObjectToVehicle(object1[playerid], GetPlayerVehicleID(playerid), 0.009998, -3.140001, 1.550000, 0.000000, 0.000000, 0.000000);