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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: 1Mark6 - 2014. Augusztus 21. - 10:39:23

Cím: Kocsi spawnolás [FIX]
Írta: 1Mark6 - 2014. Augusztus 21. - 10:39:23
Sziasztok!
Ahogy kértétek meg csináltam ennek a parancsnak a FIX verzját... igaz úgy csináltam meg ahogy tudtam ahogy nekem egyszerû volt,
Mostmár lehet spawnoltatni kocsit, átszinezni, és csak 1-et rakhatsz le ha még1-et leakarsz akkor az elözöt törölnöd kell.
 
#define SZURKE 0xAFAFAFAA
#define SIKER 0x49d929AA
new kocsi[MAX_PLAYERS];
new vkocsi[MAX_PLAYERS];
new torollehet[MAX_PLAYERS];
forward tkocsi(playerid);
CMD:kocsi(playerid,params[])
{
  if(IsPlayerConnected(playerid))
  {
     new kocsiid;
     
     if(sscanf(params,\"i\",kocsiid)) return SendClientMessage(playerid,HIBA,\"Használat : /kocsi (kocsi id)\");
     {
          if(kocsiid <= 611 && kocsiid >= 400)
          {
             if(kocsi[playerid] == 1) return SendClientMessage(playerid,HIBA,\"Ne spammelj! Várj 10mp hogy újra használhasd a parancsot!\");
             if(vkocsi[playerid] == 1) return SendClientMessage(playerid,HIBA,\"Már leraktál egy kocsit elötte töröld ki!\");
             new Float:X, Float:Y, Float:Z, Float:A, str[128];
             GetPlayerPos(playerid,X,Y,Z);
             GetPlayerFacingAngle(playerid,A);
             CreateVehicle(kocsiid,X,Y,Z,A, 0, 0,60);
             GetPlayerName(playerid,nev,sizeof(nev));
             printf(\" %s lespawnolt egy jarmuvet Model : %d\",nev,kocsiid);
             format(str,sizeof(str),\"Lespawnoltál egy jármuvet! ID: %d ! Ha nem tetszik a szine /alakit és átszinzheted!\",kocsiid);
             SendClientMessage(playerid,SZURKE,str);
             PutPlayerInVehicle(playerid, kocsiid, 0);
             SetTimerEx(\"tkocsi\", 10000, 0, \"i\", playerid);
             kocsi[playerid] = 1;
             vkocsi[playerid] = 1;
          }
          else SendClientMessage(playerid,HIBA,\"Hiba : A kocsinak 400-611 között kell lennie.\");
          }
  }
  else SendClientMessage(playerid,HIBA, \"Nem vagy fent a szerveren!\");
  return 1;
}
CMD:alakit(playerid, params[])
{
    new color[2];
    new string[128];
    if(sscanf(params, \"ii\", color[0], color[1])) return SendClientMessage(playerid, HIBA, \"Használat : /alakit (szin 1) (szin 2)\");
    if(color[0] <= 255 && color[0] >= 0)
    {
      if(color[1] <= 255 && color[1] >= 0)
      {
        format(string, sizeof(string), \"Átfestetted a kocsidat: %i és %i.\", color[0], color[1]);
        SendClientMessage(playerid, SIKER, string);
        ChangeVehicleColor(GetPlayerVehicleID(playerid), color[0], color[1]);
         }
   else SendClientMessage(playerid,HIBA,\"Hiba : A szin-nek 0-255 között kell lennie.\");
   }
else SendClientMessage(playerid,HIBA,\"Hiba : A szin-nek 0-255 között kell lennie.\");
    return 1;
}
 
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER) // ha sofõr akkor megadja a törlési lehetõséget...
    {
torollehet[playerid] = 1;
    }
return 1;
}
public tkocsi(playerid) // ez pedig az anti spawm miatt van hogy ne tudjanak csak 10mp-krént kocsikat lerakni..
{
  kocsi[playerid] = 0;
  return 1;
}
CMD:torol(playerid, params[])
{
new kocsiid =GetPlayerVehicleID(playerid);
if(torollehet[playerid] ==1 )
{
  DestroyVehicle(kocsiid);
  vkocsi[playerid] = 0;
}
else SendClientMessage(playerid,HIBA,\"Nem vagy sofõr!\"); // Ezt a trollok ellen csináltam meg hogy ne az legyen hogy beül utasnak és törli a kocsit...
return 1;
}

 
Ennyi is lenne a kis kódóm.
Használjátok mostmár FIX-elve rendesen!
Cím: Kocsi spawnolás [FIX]
Írta: huhboy - 2014. Augusztus 21. - 13:30:58
Én még létrehoznék benne egy változót, mégpedig a kocsiid tárolására.
Hogy miért?
Amikor lekérsz egy autót, lementené, illetve ha legközelebb ismét lekérsz, az elõzõt törölné.
Ez azért jó, mert így nem halmozódik fel a szerver plusz autóval mindenhol, mert a jelenlegi kóddal ezek a kocsik mind megmaradnának.
De ezt eltekintve nem rosz. :)
a színek definiálását kihagytad a kódból :)
Cím: Kocsi spawnolás [FIX]
Írta: 1Mark6 - 2014. Augusztus 21. - 13:34:33
Köszönöm az észrevételt!
Próbálom átdolgozni!
Cím: Kocsi spawnolás [FIX]
Írta: .random. - 2014. Augusztus 21. - 13:39:57
Szép lett gratulálok  :D

Csak még ...


A GetPlayerPos(); -alá, mivel ezt nem kérted le..



GetPlayerFacingAngle(playerid, A);

 

És még azt is megoldhattad volna sscanf -al, hogy a kocsi színét is tudják beállítani /kocsi [iD] [szín1] [szín2]

De kezdésnek szép munka  ^-^


Cím: Kocsi spawnolás [FIX]
Írta: 1Mark6 - 2014. Augusztus 21. - 17:18:45
Azt is megcsináltam már amint leszek géprõl fel is rakom :D