Advertisement
Guest User

MowerJob by L3o - updated

a guest
Mar 21st, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.02 KB | None | 0 0
  1. /*
  2. -= INFO =-
  3. Created by: Leo
  4. Slike posla: http://imgur.com/a/QOkKo */
  5.  
  6. //======= [ include ] ======//
  7. #include <a_samp>
  8. #include <zcmd>
  9. #include <eSelection>
  10. #include <sscanf2>
  11. #include <streamer>
  12. #include < YSI\y_va >
  13.  
  14. //======= [ vars ] ======//
  15. enum pInfo
  16. {
  17. player_Job,
  18. player_Skin
  19. };
  20. new PlayerData[MAX_PLAYERS][pInfo];
  21.  
  22. new bool:job_Uniform[MAX_PLAYERS],
  23. bool:Mower_Started[MAX_PLAYERS];
  24.  
  25. new Grass[17][MAX_PLAYERS],
  26. GrassTimer[MAX_PLAYERS],
  27. MowerVehicle[4],
  28. skins_MowerJob[] = /* */ { 8,42 };
  29.  
  30. //======= [ defines ] ======//
  31. #define MODEL_SELECTION_UNIFORM (1)
  32. #define MOWER_JOB 1
  33. //======= [ functions ] ======//
  34. stock MoweJobVehicles(carid)
  35. {
  36. for(new i = 0; i < sizeof(MowerVehicle); i++)
  37. {
  38. if (carid >= MowerVehicle[0] && carid <= sizeof MowerVehicle) return true;
  39. }
  40. return 0;
  41. }
  42. //----------------------------------------------------------
  43. stock randomEx(min,max) { return (min+random(max)); } // credits samp
  44. //----------------------------------------------------------
  45. forward TimerGrass(playerid);
  46. public TimerGrass(playerid)
  47. {
  48. new Float:Pos[3];
  49. new removed_grass = 0;
  50.  
  51. for(new i = 0; i < sizeof(Grass); i++)
  52. {
  53. GetPlayerObjectPos(playerid, Grass[i][playerid], Pos[0], Pos[1], Pos[2]);
  54. if(IsPlayerInRangeOfPoint(playerid, 3.0, Pos[0], Pos[1], Pos[2]) && MoweJobVehicles(GetPlayerVehicleID(playerid)))
  55. {
  56. DestroyPlayerObject(playerid, Grass[i][playerid]);
  57. Grass[i][playerid] = 999;
  58. }
  59. if(Grass[i][playerid] == 999)
  60. {
  61. removed_grass++;
  62. }
  63. }
  64.  
  65. if(removed_grass == 17)
  66. {
  67. // Stop Player Job
  68. Mower_Started[playerid] = false;
  69. KillTimer(GrassTimer[playerid]);
  70.  
  71. new mower_payday = randomEx(100, 50);
  72. va_SendClientMessage(playerid, -1, "[PAYDAY]: Uspiješno ste pokosili svu travu i zaradili %d.", mower_payday);
  73. GivePlayerMoney(playerid, mower_payday);
  74. }
  75. }
  76. //----------------------------------------------------------
  77. stock CreateGrassForPlayer(playerid)
  78. {
  79. // Var CreatePlayerObject
  80. Grass[0][playerid] = CreatePlayerObject(playerid,821, 1908.66748, -1183.56079, 20.87046, 0.00000, 0.00000, 0.00000);
  81. Grass[1][playerid] = CreatePlayerObject(playerid,821, 1923.24792, -1182.05432, 19.85537, 0.00000, 0.00000, 0.00000);
  82. Grass[2][playerid] = CreatePlayerObject(playerid,821, 1884.72900, -1171.30200, 22.47716, 0.00000, 0.00000, 0.00000);
  83. Grass[3][playerid] = CreatePlayerObject(playerid,821, 1873.03149, -1198.99585, 19.89127, 0.00000, 0.00000, 0.00000);
  84. Grass[4][playerid] = CreatePlayerObject(playerid,821, 1900.64783, -1222.04260, 15.61076, 0.00000, 0.00000, 0.00000);
  85. Grass[5][playerid] = CreatePlayerObject(playerid,821, 1920.42053, -1218.84888, 17.98026, 0.00000, 0.00000, 1.15910);
  86. Grass[6][playerid] = CreatePlayerObject(playerid,821, 1890.01416, -1243.77710, 12.58360, 0.00000, 0.00000, 0.00000);
  87. Grass[7][playerid] = CreatePlayerObject(playerid,821, 1945.88672, -1228.82397, 18.26256, 0.00000, 0.00000, 0.00000);
  88. Grass[8][playerid] = CreatePlayerObject(playerid,821, 1959.61267, -1244.40356, 18.67745, 0.00000, 0.00000, 0.00000);
  89. Grass[9][playerid] = CreatePlayerObject(playerid,821, 2003.01489, -1223.30603, 19.24441, 0.00000, 0.00000, 0.00000);
  90. Grass[10][playerid] = CreatePlayerObject(playerid,821, 1994.17078, -1242.32458, 19.24441, 0.00000, 0.00000, 0.00000);
  91. Grass[11][playerid] = CreatePlayerObject(playerid,821, 2048.46558, -1244.06897, 22.09180, 0.00000, 0.00000, 0.00000);
  92. Grass[12][playerid] = CreatePlayerObject(playerid,821, 2050.03931, -1226.33813, 22.09180, 0.00000, 0.00000, 0.00000);
  93. Grass[13][playerid] = CreatePlayerObject(playerid,821, 2036.11426, -1202.06763, 20.66650, 0.00000, 0.00000, 0.00000);
  94. Grass[14][playerid] = CreatePlayerObject(playerid,821, 2049.18628, -1176.05688, 21.79180, 0.00000, 0.00000, 0.00000);
  95. Grass[15][playerid] = CreatePlayerObject(playerid,821, 2018.26306, -1190.21240, 19.74308, 0.00000, 0.00000, 0.00000);
  96. Grass[16][playerid] = CreatePlayerObject(playerid,821, 2000.27991, -1169.34619, 19.03198, 0.00000, 0.00000, 0.00000);
  97. return 1;
  98. }
  99. //----------------------------------------------------------
  100. main()
  101. {
  102. print("- Mower Job Loaded");
  103. }
  104. //----------------------------------------------------------
  105. public OnPlayerConnect(playerid)
  106. {
  107. //== Test ==//
  108. PlayerData[playerid][player_Skin] = 177;
  109. SetPlayerSkin(playerid, 177);
  110.  
  111. Mower_Started[playerid] = false;
  112. PlayerData[playerid][player_Job] = 0;
  113. return 1;
  114. }
  115. //----------------------------------------------------------
  116. public OnPlayerSpawn(playerid)
  117. {
  118. //== Test ==//
  119. SetPlayerPos(playerid, 1883.2881, -1151.2875, 23.0440);
  120. return 1;
  121. }
  122. //----------------------------------------------------------
  123. public OnGameModeInit()
  124. {
  125. //== Mower Pickup
  126. AddStaticPickup(1210, 23,1888.0514, -1147.8807, 24.5296);
  127.  
  128. //== Mower Take-job
  129. CreateDynamicObject(4638, 1888.61377, -1146.40674, 24.83438, 0.00000, 0.00000, 0.00000, -1, -1, -1, 300.00, 300.00);
  130.  
  131. //== Mower Vehicle's
  132. MowerVehicle[0] = AddStaticVehicleEx(572,1878.2330, -1147.2213, 23.3851,179.1567, 127, 127, 1000);
  133. MowerVehicle[1] = AddStaticVehicleEx(572,1880.3384, -1147.2148, 23.3851,180.1096, 127, 127, 1000);
  134. MowerVehicle[2] = AddStaticVehicleEx(572,1882.4224, -1147.2557, 23.3851,180.8310, 127, 127, 1000);
  135. MowerVehicle[3] = AddStaticVehicleEx(572,1884.4325, -1147.3085, 23.3851,180.8310, 127, 127, 1000);
  136. return 1;
  137. }
  138. //----------------------------------------------------------
  139. public OnModelSelectionResponse(playerid, extraid, index, modelid, response)
  140. {
  141. if ((response) && (extraid == MODEL_SELECTION_UNIFORM))
  142. {
  143. SetPlayerSkin(playerid, skins_MowerJob[index]);
  144. SendClientMessage(playerid, -1, "[INFO]: Obukli ste uniformu za posao.");
  145. job_Uniform[playerid] = true;
  146. }
  147. return 1;
  148. }
  149. //----------------------------------------------------------
  150. public OnPlayerStateChange(playerid, newstate, oldstate)
  151. {
  152. if(MoweJobVehicles(GetPlayerVehicleID(playerid)) && PlayerData[playerid][player_Job] != MOWER_JOB)
  153. {
  154. SendClientMessage(playerid, -1, "[ERROR]: Kako bi koristili ovo vozilo, morate biti zaposljeni kao mower!");
  155. RemovePlayerFromVehicle(playerid);
  156. }
  157. return 1;
  158. }
  159. //----------------------------------------------------------
  160. CMD:mower(playerid, params[])
  161. {
  162. new action[15];
  163. if(sscanf(params, "s[15] ", action))
  164. {
  165. SendClientMessage(playerid, -1, "/mower [action].");
  166. SendClientMessage(playerid, -1, "-> uniform, takejob, start, quitjob, stopjob");
  167. return 1;
  168. }
  169. if(strcmp(action,"uniform",true) == 0)
  170. {
  171. if((PlayerData[playerid][player_Job] != MOWER_JOB)) return SendClientMessage(playerid, -1,"[ERROR]: Kako bi koristili ovu komandu morate biti zaposleni kao mower.");
  172. switch(job_Uniform[playerid])
  173. {
  174. case 0:
  175. {
  176. ShowModelSelectionMenu(playerid, "Select Skin", MODEL_SELECTION_UNIFORM, skins_MowerJob, sizeof(skins_MowerJob), -16.0, 0.0, -55.0);
  177. }
  178. case 1:
  179. {
  180. job_Uniform[playerid] = false;
  181. SetPlayerSkin(playerid, PlayerData[playerid][player_Skin]);
  182. SendClientMessage(playerid, -1, "[INFO]: Skinuli ste uniformu za posao.");
  183. }
  184. }
  185. }
  186. if(strcmp(action,"takejob",true) == 0)
  187. {
  188. if(PlayerData[playerid][player_Job] == MOWER_JOB) return SendClientMessage(playerid, -1, "[ERROR]: Vec ste zaposleni kao mower, prvo morate dati otkaz(/mower quitjob)!");
  189. if(!IsPlayerInRangeOfPoint(playerid, 2, 1888.0514, -1147.8807, 24.5296)) return SendClientMessage(playerid, -1, "[ERROR]: Morate se nalaziti na pickup-u kako bi se zaposlili kao mower.");
  190.  
  191. // Set Player Job
  192. PlayerData[playerid][player_Job] = MOWER_JOB;
  193. SendClientMessage(playerid, -1, "[NEW JOB]: Uspiješno ste se zaposlili kao mower, sve komande mozete vidjeti na /mower.");
  194. }
  195. if(strcmp(action,"quitjob",true) == 0)
  196. {
  197. if(PlayerData[playerid][player_Job] != MOWER_JOB) return SendClientMessage(playerid, -1, "[ERROR]: Vi niste zaposleni kao mower, ne mozete dati otkaz!");
  198. if(!IsPlayerInRangeOfPoint(playerid, 2, 1888.0514, -1147.8807, 24.5296)) return SendClientMessage(playerid, -1, "[ERROR]: Morate se nalaziti na pickup-u kako bi dali otkaz kao mower.");
  199.  
  200. // Set Player Job
  201. PlayerData[playerid][player_Job] = 0;
  202. SendClientMessage(playerid, -1, "[QUIT JOB]: Uspiješno ste dali otkaz kao mower.");
  203. }
  204. if(strcmp(action,"startjob",true) == 0)
  205. {
  206. if(PlayerData[playerid][player_Job] != MOWER_JOB) return SendClientMessage(playerid, -1, "[ERROR]: Kako bi pokrenuli posao morate biti zaposleni kao mower.");
  207. if(job_Uniform[playerid] == false) return SendClientMessage(playerid, -1, "[ERROR]: Kako bi zapoceli posao morate imati opremu na sebi.");
  208. if(Mower_Started[playerid] == true) return SendClientMessage(playerid, -1, "[ERROR]: Vec ste zapoceli sa kosenjem trave, kako bi prekinuli posao kucajte /mower stopjob.");
  209.  
  210. // Start Player Job
  211. Mower_Started[playerid] = true;
  212. CreateGrassForPlayer(playerid);
  213. GrassTimer[playerid] = SetTimerEx("TimerGrass", 500, true, "i", playerid);
  214.  
  215. SendClientMessage(playerid, -1, "[MOWER]: Uspiješno ste zapoceli posao, pokosite sve trave!");
  216. }
  217. if(strcmp(action,"stopjob",true) == 0)
  218. {
  219. if(PlayerData[playerid][player_Job] != MOWER_JOB) return SendClientMessage(playerid, -1, "[ERROR]: Vi niste zaposleni kao mower, ne mozete koristiti ovu komandu.");
  220. if(Mower_Started[playerid] == false) return SendClientMessage(playerid, -1, "[ERROR]: Vi nemate pokrenut 'mower-job', kako bi pokrenuli posao kucajte /mower startjob.");
  221.  
  222. // Stop Player Job
  223. Mower_Started[playerid] = false;
  224. KillTimer(GrassTimer[playerid]);
  225.  
  226. for(new removeObj_Grass = 0; removeObj_Grass < 16; removeObj_Grass++) { DestroyPlayerObject(playerid, Grass[removeObj_Grass][playerid]); }
  227. SendClientMessage(playerid, -1, "[STOP JOB]: Uspiješno ste stopirali posao, kako bi ponovo zapoceli posao kucajte /mower startjob.");
  228. }
  229. return 1;
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement