Vuk7

Vehicle Ownership System

Dec 10th, 2017
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.11 KB | None | 0 0
  1. #include <a_samp>
  2. #include <YSI\y_ini>
  3. #include <zcmd>
  4. #include <sscanf2>
  5.  
  6. #define PATH "/Korisnici/%s.ini"
  7.  
  8. #define crvena "{FF0000}"
  9. #define plava "{0BE9F4}"
  10.  
  11. #define SCM SendClientMessage
  12.  
  13. #define MAX_SLOTS 3
  14.  
  15. enum pInfo
  16. {
  17.     pAdmin,
  18.     pVozilo[MAX_SLOTS]
  19. }
  20. new PlayerInfo[MAX_PLAYERS][pInfo];
  21.  
  22. forward LoadUser_data(playerid,name[],value[]);
  23. public LoadUser_data(playerid,name[],value[])
  24. {
  25.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  26.     new str[24];
  27.     for(new i=0;i<MAX_SLOTS;i++)
  28.     {
  29.         format(str,sizeof(str),"Vozilo%d",i);
  30.         INI_Int(str,PlayerInfo[playerid][pVozilo][i]);
  31.     }
  32.     return 1;
  33. }
  34.  
  35. GetName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name; }
  36.  
  37. SacuvajIgraca(playerid)
  38. {
  39.     new str[40];
  40.     format(str,sizeof(str),PATH,GetName(playerid));
  41.     new INI:File = INI_Open(str);
  42.     INI_SetTag(File,"data");
  43.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  44.     for(new i=0;i<MAX_SLOTS;i++)
  45.     {
  46.         format(str,sizeof(str),"Vozilo%d",i);
  47.         INI_WriteInt(File,str,PlayerInfo[playerid][pVozilo][i]);
  48.     }
  49.     INI_Close(File);
  50.     return 1;
  51. }
  52. //------------------------------------------------------------------------------
  53. #define MAX_VOZILA 500
  54. #define VPATH "/Vozila/%d.ini"
  55.  
  56. enum vInfo
  57. {
  58.     vID,
  59.     vModel,
  60.     Float:vX,
  61.     Float:vY,
  62.     Float:vZ,
  63.     Float:vAZ,
  64.     vCol[2]
  65. }
  66. new VoziloInfo[MAX_VOZILA][vInfo];
  67.  
  68. forward LoadVozilo(id,name[],value[]);
  69. public LoadVozilo(id,name[],value[])
  70. {
  71.     INI_Int("Model",VoziloInfo[id][vModel]);
  72.     INI_Float("X",VoziloInfo[id][vX]);
  73.     INI_Float("Y",VoziloInfo[id][vY]);
  74.     INI_Float("Z",VoziloInfo[id][vZ]);
  75.     INI_Float("AZ",VoziloInfo[id][vAZ]);
  76.     INI_Int("Color1",VoziloInfo[id][vCol][0]);
  77.     INI_Int("Color2",VoziloInfo[id][vCol][1]);
  78.     return 1;
  79. }
  80.  
  81. SacuvajVozilo(id)
  82. {
  83.     new str[40];
  84.     format(str,sizeof(str),VPATH,id);
  85.     new INI:File = INI_Open(str);
  86.     INI_SetTag(File,"vozilo");
  87.     INI_WriteInt(File,"Model",VoziloInfo[id][vModel]);
  88.     INI_WriteFloat(File,"X",VoziloInfo[id][vX]);
  89.     INI_WriteFloat(File,"Y",VoziloInfo[id][vY]);
  90.     INI_WriteFloat(File,"Z",VoziloInfo[id][vZ]);
  91.     INI_WriteFloat(File,"AZ",VoziloInfo[id][vAZ]);
  92.     INI_WriteInt(File,"Color1",VoziloInfo[id][vCol][0]);
  93.     INI_WriteInt(File,"Color2",VoziloInfo[id][vCol][1]);
  94.     INI_Close(File);
  95.     return 1;
  96. }
  97.  
  98. VoziloPath(id)
  99. {
  100.     new str[40];
  101.     format(str,sizeof(str),VPATH,id);
  102.     return str;
  103. }
  104.  
  105. UcitajVozila()
  106. {
  107.     new x;
  108.     for(new i=0;i<MAX_VOZILA;i++)
  109.     {
  110.         if(fexist(VoziloPath(i)))
  111.         {
  112.             INI_ParseFile(VoziloPath(i), "LoadVozilo", .bExtra = true, .extra = i);
  113.             VoziloInfo[i][vID] = CreateVehicle(VoziloInfo[i][vModel],VoziloInfo[i][vX],VoziloInfo[i][vY],VoziloInfo[i][vZ],VoziloInfo[i][vAZ],VoziloInfo[i][vCol][0],VoziloInfo[i][vCol][1],5000);
  114.             x++;
  115.         }
  116.     }
  117.     printf("Ucitano %d vozila!",x);
  118.     return 1;
  119. }
  120.  
  121. main()
  122. {
  123.     print("\n----------------------------------");
  124.     print(" Vehicle Owner Ship system");
  125.     print("----------------------------------\n");
  126. }
  127.  
  128. public OnGameModeInit()
  129. {
  130.     SetGameModeText("VOS");
  131.     AddPlayerClass(0, 0.0, 0.0, 5.0, 0.0, 0, 0, 0, 0, 0, 0);
  132.     UcitajVozila();
  133.     return 1;
  134. }
  135.  
  136. public OnGameModeExit()
  137. {
  138.     return 1;
  139. }
  140.  
  141. public OnPlayerRequestClass(playerid, classid)
  142. {
  143.     SetPlayerPos(playerid, 0.0, 0.0, 5.0);
  144.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  145.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  146.     return 1;
  147. }
  148.  
  149. public OnPlayerConnect(playerid)
  150. {
  151.     PlayerInfo[playerid][pAdmin] = 0;
  152.     for(new i=0;i<MAX_SLOTS;i++) { PlayerInfo[playerid][pVozilo][i] = -1; }
  153.     new str[40];
  154.     format(str,sizeof(str),PATH,GetName(playerid));
  155.     if(fexist(str))
  156.     {
  157.         INI_ParseFile(str, "LoadUser_%s", .bExtra = true, .extra = playerid);
  158.     }
  159.     else
  160.     {
  161.         SacuvajIgraca(playerid);
  162.     }
  163.     return 1;
  164. }
  165.  
  166. public OnPlayerDisconnect(playerid, reason)
  167. {
  168.     SacuvajIgraca(playerid);
  169.     return 1;
  170. }
  171.  
  172. public OnPlayerSpawn(playerid)
  173. {
  174.     SetCameraBehindPlayer(playerid);
  175.     return 1;
  176. }
  177.  
  178. public OnPlayerDeath(playerid, killerid, reason)
  179. {
  180.     return 1;
  181. }
  182.  
  183. CMD:kreirajvozilo(playerid,params[])
  184. {
  185.     new model,col1,col2;
  186.     if(sscanf(params,"ddd",model,col1,col2)) return SCM(playerid,-1,""crvena"/kreirajvozilo [model][boja 1][boja 2]");
  187.     if(!IsPlayerConnected(playerid)) return 1;
  188.     if(model < 400 || model > 611) return 1;
  189.     new id = -1;
  190.     for(new i=0;i<MAX_VOZILA;i++)
  191.     {
  192.         if(!fexist(VoziloPath(i))) { id = i; break; }
  193.     }
  194.     if(id == -1) return SCM(playerid,-1,""crvena"Nema vise mijesta za nova vozila!");
  195.     new Float:x,Float:y,Float:z,Float:az;
  196.     GetPlayerPos(playerid,x,y,z);
  197.     GetPlayerFacingAngle(playerid,az);
  198.     VoziloInfo[id][vModel] = model;
  199.     VoziloInfo[id][vX] = x;
  200.     VoziloInfo[id][vY] = y;
  201.     VoziloInfo[id][vZ] = z;
  202.     VoziloInfo[id][vAZ] = az;
  203.     VoziloInfo[id][vCol][0] = col1;
  204.     VoziloInfo[id][vCol][1] = col2;
  205.     VoziloInfo[id][vID] = CreateVehicle(VoziloInfo[id][vModel],VoziloInfo[id][vX],VoziloInfo[id][vY],VoziloInfo[id][vZ],VoziloInfo[id][vAZ],VoziloInfo[id][vCol][0],VoziloInfo[id][vCol][1],5000);
  206.     SacuvajVozilo(id);
  207.     return 1;
  208. }
  209.  
  210. public OnPlayerText(playerid, text[])
  211. {
  212.     return 1;
  213. }
  214.  
  215. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  216. {
  217.     return 1;
  218. }
Advertisement
Add Comment
Please, Sign In to add comment