Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2018
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.56 KB | None | 0 0
  1. /*==============================
  2. Deer Hunt
  3.  
  4. Created by Leonard Barosan
  5. ==============================*/
  6.  
  7.  
  8. #include <YSI\y_timers>
  9. #include <YSI\y_hooks>
  10.  
  11.  
  12. #define E_STATE_WAITING 0
  13. #define E_STATE_SPAWNED 1
  14.  
  15.  
  16. new Float: deerPosition[][] =
  17. {
  18. {1039.5654, -56.6318, 88.8042},
  19. {2318.6270, -812.4302, 126.3353},
  20. {-1456.4644, -2541.0186, 61.3894},
  21. {-2489.5391, -2647.9526, 70.5215}
  22. };
  23.  
  24.  
  25. enum deerInfo
  26. {
  27. deerID,
  28.  
  29. Float: deerPosX,
  30. Float: deerPosY,
  31. Float: deerPosZ,
  32.  
  33. deerState,
  34. deerTime
  35. }
  36.  
  37. new deerVariables[deerInfo];
  38. new deerZone[32];
  39. new Iterator: playerKillDeer<MAX_PLAYERS>;
  40.  
  41.  
  42. task spawnDeer[5000]()
  43. {
  44. switch(deerVariables[deerState])
  45. {
  46. case E_STATE_WAITING:
  47. {
  48. if(deerVariables[deerTime] && deerVariables[deerTime] <= gettime() && !deerVariables[deerID])
  49. {
  50. deerVariables[deerState] = E_STATE_SPAWNED;
  51. deerVariables[deerTime] = gettime() + 1600;
  52.  
  53. new rand = random(sizeof(deerPosition));
  54.  
  55. deerVariables[deerPosX] = deerPosition[rand][0];
  56. deerVariables[deerPosY] = deerPosition[rand][1];
  57. deerVariables[deerPosZ] = deerPosition[rand][2];
  58.  
  59. deerVariables[deerID] = CreateDynamicObject(19315, deerVariables[deerPosX], deerVariables[deerPosY], deerVariables[deerPosZ], 0.0, 0.0, 0.0);
  60.  
  61. GetPlayer3DZone2(deerVariables[deerPosX], deerVariables[deerPosY], deerVariables[deerPosZ], deerZone, sizeof deerZone);
  62.  
  63. foreach(new x : Player)
  64. {
  65. SCMEx(x, COLOR_GREEN, "(Deer Hunter): {FFFFFF}O caprioara tocmai a fost zarita in zone %s. Primul care o ucide va castiga un premiu special.", deerZone);
  66. SCM(x, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Daca aceasta nu va fi gasita in 30 minute, server-ul va spawna alta caprioara.");
  67. }
  68.  
  69. return 1;
  70. }
  71. }
  72.  
  73. case E_STATE_SPAWNED:
  74. {
  75. if(deerVariables[deerTime] && deerVariables[deerTime] <= gettime())
  76. {
  77. deerVariables[deerTime] = gettime() + 600;
  78. deerVariables[deerState] = E_STATE_WAITING;
  79. deerVariables[deerID] = 0;
  80.  
  81. DestroyDynamicObject(deerVariables[deerID]);
  82.  
  83. foreach(new x : Player)
  84. {
  85. SCM(x, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Nimeni nu a reusit sa ucida caprioara, server-ul va spawna alta in aproximativ 10 minute.");
  86. }
  87.  
  88. return 1;
  89. }
  90.  
  91. if(deerVariables[deerTime] && deerVariables[deerTime] - gettime() <= 60)
  92. {
  93. GetPlayer3DZone2(deerVariables[deerPosX], deerVariables[deerPosY], deerVariables[deerPosZ], deerZone, sizeof deerZone);
  94.  
  95. foreach(new x : Player)
  96. {
  97. SCM(x, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Daca numeni nu va gasi caprioara in aproximativ 1 minut, aceasta se va intoarce la familia ei.");
  98. SCMEx(x, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Caprioara se afla in zona %s.", deerZone);
  99. }
  100. }
  101. }
  102. }
  103.  
  104. return 1;
  105. }
  106.  
  107.  
  108. hook OnGameModeInit()
  109. {
  110. deerVariables[deerTime] = gettime() + 600;
  111. deerVariables[deerState] = E_STATE_WAITING;
  112. return 1;
  113. }
  114.  
  115.  
  116. hook OnPlayerDisconnect(playerid, reason)
  117. {
  118. if(Iter_Contains(playerKillDeer, playerid)) Iter_Remove(playerKillDeer, playerid);
  119. return 1;
  120. }
  121.  
  122.  
  123. public OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z)
  124. {
  125. if(objectid == deerVariables[deerID])
  126. {
  127. if(weaponid != 31) return SCM(playerid, COLOR_GREY, "Ai nevoie de un M4 pentru a omora caprioara.");
  128. if(GetPVarInt(playerid, "deerDead") == 1) return 1;
  129.  
  130. new Float: deerX, Float: deerY, Float: deerZ;
  131.  
  132. GetDynamicObjectPos(objectid, deerX, deerY, deerZ);
  133. SetDynamicObjectRot(objectid, 90, 0, 0);
  134. SetDynamicObjectPos(objectid, deerX, deerY, deerZ - 0.5);
  135.  
  136. deerVariables[deerTime] = gettime() + 1600;
  137. deerVariables[deerState] = E_STATE_WAITING;
  138.  
  139. foreach(new xyz : Player)
  140. {
  141. SCMEx(xyz, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Caprioara a fost ucisa cu sange rece de catre %s (ID: %d).", PlayerInfo[playerid][pUsername], playerid);
  142. SCM(xyz, COLOR_GREEN, "(Deer Hunter): {FFFFFF}O alta caprioara va fi spawnata in aproximativ 30 minute.");
  143. }
  144.  
  145. givePlayerAward(playerid);
  146.  
  147. SetPVarInt(playerid, "deerDead", 1);
  148. Iter_Add(playerKillDeer, playerid);
  149.  
  150. defer destroyDeer();
  151. }
  152.  
  153. return 1;
  154. }
  155.  
  156.  
  157. timer destroyDeer[3500]()
  158. {
  159. DestroyDynamicObject(deerVariables[deerID]);
  160. deerVariables[deerID] = 0;
  161.  
  162. foreach(new x : playerKillDeer)
  163. {
  164. DeletePVar(x, "deerDead");
  165. Iter_SafeRemove(playerKillDeer, x, x);
  166. }
  167. }
  168.  
  169.  
  170. function givePlayerAward(playerid)
  171. {
  172. new award = random(100);
  173. new amount;
  174.  
  175. switch(award)
  176. {
  177. case 0..10:
  178. {
  179. amount = 5 + random(10);
  180.  
  181. PlayerInfo[playerid][pPremiumPoints] = amount;
  182. UpdateVar(playerid, "GoldPoints", amount);
  183.  
  184. va_GameTextForPlayer(playerid, "+ %d premium points", 2500, 1, amount);
  185. SCMEx(playerid, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Ai primit %d premium points pentru uciderea acestei caprioare.", amount);
  186. }
  187.  
  188. case 11..50:
  189. {
  190. amount = 1 + random(5);
  191.  
  192. PlayerInfo[playerid][pExp] = amount;
  193. UpdateVar(playerid, "Respect", amount);
  194.  
  195. va_GameTextForPlayer(playerid, "+ %d respect points", 2500, 1, amount);
  196. SCMEx(playerid, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Ai primit %d respect points pentru uciderea acestei caprioare.", amount);
  197. }
  198.  
  199. default:
  200. {
  201. amount = 100000 + random(150000);
  202.  
  203. GivePlayerCash(playerid, amount);
  204. UpdateVar(playerid, "Money", amount);
  205.  
  206. va_GameTextForPlayer(playerid, "+ $%s", 2500, 1, FormatNumber(amount));
  207. SCMEx(playerid, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Ai primit $%s pentru uciderea acestei caprioare.", FormatNumber(amount));
  208. }
  209. }
  210.  
  211. return 1;
  212. }
  213.  
  214.  
  215. CMD:gotodeer(playerid, params[])
  216. {
  217. if(PlayerInfo[playerid][pAdmin] < 7) return SCM(playerid, COLOR_RED, AdminOnly);
  218.  
  219. SetPlayerPos(playerid, deerVariables[deerPosX] + 5, deerVariables[deerPosY] + 5, deerVariables[deerPosZ] + 5);
  220.  
  221. return 1;
  222. }
  223.  
  224. CMD:deerspawn(playerid, params[])
  225. {
  226. if(PlayerInfo[playerid][pAdmin] < 7) return SCM(playerid, COLOR_RED, AdminOnly);
  227.  
  228. deerVariables[deerTime] = gettime() + 5;
  229.  
  230. return 1;
  231. }
  232.  
  233.  
  234. CMD:deer(playerid, params[])
  235. {
  236. switch(deerVariables[deerState])
  237. {
  238. case E_STATE_WAITING: SCMEx(playerid, COLOR_GREEN, "(Deer Hunter): {FFFFFF}Urmatoarea caprioara va fi spawnata in aproximativ %s.", CalculeazaTimp2(deerVariables[deerTime] - gettime()));
  239. case E_STATE_SPAWNED:
  240. {
  241. GetPlayer3DZone2(deerVariables[deerPosX], deerVariables[deerPosY], deerVariables[deerPosZ], deerZone, sizeof deerZone);
  242. SCMEx(playerid, COLOR_GREEN, "(Deer Hunter): {FFFFFF}O caprioara a fost zarita in zona %s, fii primul care o ucide pentru a castiga un premiu special.", deerZone);
  243. }
  244. }
  245.  
  246. return true;
  247. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement