Szerző Téma: Kocsi spawnolás [FIX]  (Megtekintve 1297 alkalommal)

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Kocsi spawnolás [FIX]
« Dátum: 2014. Augusztus 21. - 10:39:23 »
0 Show voters
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!
« Utoljára szerkesztve: 2014. Augusztus 22. - 07:47:13 írta 1Mark6 »

Nem elérhető huhboy

  • 894
  • huhboy
    • Profil megtekintése
Kocsi spawnolás [FIX]
« Válasz #1 Dátum: 2014. Augusztus 21. - 13:30:58 »
0 Show voters
É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. :)
Spoiler for ja igen:
a színek definiálását kihagytad a kódból :)

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Kocsi spawnolás [FIX]
« Válasz #2 Dátum: 2014. Augusztus 21. - 13:34:33 »
0 Show voters
Köszönöm az észrevételt!
Próbálom átdolgozni!

Kocsi spawnolás [FIX]
« Válasz #3 Dátum: 2014. Augusztus 21. - 13:39:57 »
0 Show voters
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  ^-^



Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Kocsi spawnolás [FIX]
« Válasz #4 Dátum: 2014. Augusztus 21. - 17:18:45 »
0 Show voters
Azt is megcsináltam már amint leszek géprõl fel is rakom :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal