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: inf - 2014. február 23. - 15:19:41

Cím: /v -vel lehívott jármûvek törlése
Írta: inf - 2014. február 23. - 15:19:41
Sziasztok!
Valaki megtudná csinálni a jármû lehívó parancsomba azt hogy ha beírom pl.: /delcars akkor törli azokat a jármûveket amiket /v -vel hívtak le. És ha lehet akkor úgy legyen a /delcars hogy aki a /v -vel lehívott jármûvében ül azt a jármûvet ne törölje.
Elõre is köszi!
/v parancsom:
 
CMD:v(playerid, params[])
{
new Vehicle[32], VehicleID, ColorOne, ColorTwo, Float:pX,Float:pY, Float:pZ, Float:pAngle;
JatekosInfo[playerid][CanSpawnVehicle] = 1;
if(sscanf(params, \"s[32]D(-1)D(-1)\", Vehicle, ColorOne, ColorTwo))
{
JatekosInfo[playerid][CanSpawnVehicle] = 1;
Msg(playerid, \"{\"vzold\"}Használat: /v [Jármû Név / Jármû ID] [szin 1] [szin 2]\");
return 1;
}
if(JatekosInfo[playerid][CanSpawnVehicle])
{
VehicleID = GetVehicleModelIDFromName(Vehicle);
{
   if(VehicleID == -1 )
   {
      VehicleID = strval(Vehicle);
      if(VehicleID < 400 || VehicleID > 611 )
      {
         return Msg(playerid, \"{\"piros\"}Nincs ilyen jármû!\");
      }
   }
   GetPlayerPos(playerid, pX, pY, pZ);
   GetPlayerFacingAngle(playerid, pAngle);
   JatekosInfo[playerid][spawnVehicle] = CreateVehicle(VehicleID, pX, pY, pZ+2.0, pAngle, ColorOne, ColorTwo, -1);
   LinkVehicleToInterior(JatekosInfo[playerid][spawnVehicle], GetPlayerInterior(playerid));
   PutPlayerInVehicle(playerid, JatekosInfo[playerid][spawnVehicle], 0);
   Msg(playerid, \"{\"vzold\"}A jármû sikeresen le lett kérve!\");
}
} else {
Msg(playerid,\"{\"piros\"}You can not spawn vehicles in this zone!\");
}
return 1;
}
Cím: /v -vel lehívott jármûvek törlése
Írta: TheDon - 2014. február 23. - 15:39:06
Ha nem baj inkább nem kódot írok, hanem egy kis segítséget, hogy ezzel is tanulhass.
Elõször is:
Ahhoz, hogy a /v-s jármûveket töröld, ha jól láttam a JatekosInfo[playerid][spawnVehicle] változó fog kelleni. Na ha ezt egy for ciklussal és a DestroyVehicle(vehicleid) függvénnyel összerakod, törli mindet.
 

for(new i = 0; i < MAX_PLAYERS; i++)
   DestroyVehicle(JatekosInfo[spawnVehicle]);

 
Na ha ez meg van, akkor meg kell nézni, hogy van e valaki a kocsiban.
Itt is egy for ciklussal végignézel minden játékost, hogy az adott jármûben ül-e valaki, és ha ül akkor egyszerûen kihagyod, egy if-else feltételes elágazással a kocsi törlését.
Remélem tudtam segíteni.
Ha ez sem elég akkor kérlek szólj és segítek.
Sok sikert.
The Don
Cím: /v -vel lehívott jármûvek törlése
Írta: inf - 2014. február 23. - 15:45:00
Az a baj vele, hogy csak a utolsó lehívott jármûvet törli a többit nem.
Cím: /v -vel lehívott jármûvek törlése
Írta: TheDon - 2014. február 23. - 15:46:42
De mindenki csak egyet hívhat le nem?
Cím: /v -vel lehívott jármûvek törlése
Írta: inf - 2014. február 23. - 15:48:11
Nem itt nem törlõdik az elõzõ lehívott jármû. Direkt így van.
Cím: /v -vel lehívott jármûvek törlése
Írta: TheDon - 2014. február 23. - 15:49:13
Akkor viszont minden jármûvet menteni kell változóban. Kivéve ha nincsenek állandó jármûvek amiket a modba írtál.
Cím: /v -vel lehívott jármûvek törlése
Írta: inf - 2014. március 06. - 16:30:14
De vannak.