Advertisement
Guest User

cod

a guest
Dec 18th, 2018
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.74 KB | None | 0 0
  1. /*=======================
  2. Winter Mission
  3. by MadalinAdv
  4.  
  5. Ce trebuie sa faci:
  6. 1.Pui #include <nume> dupa OnGameModeInit
  7. 2. La enum pInfo sau cum ai tu pui pWinterObjects.
  8. 3. La OnPlayerLogin adaugi PlayerInfo[playerid][pWinterObjects] = cache_get_field_content_int(0, "WinterObjects");
  9. 4. De adaugat in tabelul users un field cu "WinterObjects"
  10. =======================*/
  11.  
  12. #include <YSI\y_timers>
  13. #include <YSI\y_va>
  14. #include <YSI\y_hooks>
  15. #include <YSI\y_iterate>
  16.  
  17. new PlayerText:WinterPTD[MAX_PLAYERS][1];
  18. new Iterator:PlayersInWinterQuest<MAX_PLAYERS>;
  19. new WinterCar[MAX_PLAYERS], WinterCP[MAX_PLAYERS], WinterRandom[MAX_PLAYERS], WinterTime[MAX_PLAYERS];
  20.  
  21. hook OnPlayerConnect(playerid) {
  22. WinterCar[playerid] = 0;
  23. WinterCP[playerid] = 0;
  24. WinterRandom[playerid] = 0;
  25. WinterTime[playerid] = 0;
  26. LoadWinterTD(playerid);
  27. }
  28. hook OnPlayerDisconnect(playerid, reason) {
  29. if(Iter_Contains(PlayersInWinterQuest, playerid)) {
  30. WinterCar[playerid] = 0;
  31. WinterCP[playerid] = 0;
  32. WinterRandom[playerid] = 0;
  33. WinterTime[playerid] = 0;
  34. Iter_Remove(PlayersInWinterQuest, playerid);
  35. PlayerTextDrawHide(playerid, WinterPTD[playerid][0]);
  36. new query[128];
  37. mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[playerid][pWinterObjects], PlayerInfo[playerid][pSQLID]);
  38. mysql_tquery(SQL, query, "", "");
  39. }
  40. return 1;
  41. }
  42. hook OnPlayerDeath(playerid) {
  43. if(Iter_Contains(PlayersInWinterQuest, playerid)) {
  44. DestroyVehicle(WinterCar[playerid]);
  45. WinterCar[playerid] = 0;
  46. WinterCP[playerid] = 0;
  47. WinterRandom[playerid] = 0;
  48. WinterTime[playerid] = 0;
  49. SCM(playerid, -1, "Quest esuat, ai murit");
  50. Iter_Remove(PlayersInWinterQuest, playerid);
  51. PlayerTextDrawHide(playerid, WinterPTD[playerid][0]);
  52. new query[128];
  53. mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[playerid][pWinterObjects], PlayerInfo[playerid][pSQLID]);
  54. mysql_tquery(SQL, query, "", "");
  55. }
  56. return 1;
  57. }
  58. hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  59. if(newkeys == KEY_CTRL_BACK) {
  60. if(Iter_Contains(PlayersInWinterQuest, playerid)) {
  61. new car = GetClosestVehicle(playerid);
  62. if(!IsPlayerNearVehicle(playerid, car, 5) && !IsABoat(car)) return 1;
  63. else if(!IsPlayerNearVehicle(playerid, car, 10) && IsABoat(car)) return 1;
  64.  
  65. if(GetPVarInt(playerid, "HaveGift") == 1) return 1;
  66.  
  67. if(WinterCar[playerid] != car) return SCM(playerid, -1, "Nu esti in spatele vehiculului de la quest.");
  68. if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu poti ridica cadoul dintr-un vehicul!");
  69. if(!IsPlayerInRangeOfPoint(playerid, 20, HouseInfo[WinterRandom[playerid]][hEntrancex],HouseInfo[WinterRandom[playerid]][hEntrancey],HouseInfo[WinterRandom[playerid]][hEntrancez])) return SCM(playerid, -1, "Nu poti ridica cadoul deoarece distnata dintre tine si checkpoint este prea mare.");
  70.  
  71.  
  72. SetPVarInt(playerid, "HaveGift", 1);
  73. SCM(playerid, COLOR_LGREEN, "Ai luat cadoul cu succes, il poti duce la checkpoint!");
  74. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
  75. SetPlayerAttachedObject( playerid, 6, 19056, 1, 0.299822, 0.663485, -0.036337, 184.311355, 90.004089, 0.000000, 1.000000, 1.000000, 1.000000 );
  76. }
  77. }
  78. return 1;
  79. }
  80. /*hook OnPlayerExitVehicle(playerid, vehicleid) {
  81. if(vehicleid == WinterCar[playerid]) {
  82. SCM(playerid, -1, "Quest esuat, te ai dat jos.");
  83. DisablePlayerCheckpointEx(playerid);
  84. Iter_Remove(PlayersInWinterQuest, playerid);
  85. DestroyVehicle(WinterCar[playerid]);
  86. WinterRandom[playerid] = 0;
  87. WinterCar[playerid] = 0;
  88. WinterCP[playerid] = 0;
  89. PlayerTextDrawHide(playerid, WinterPTD[playerid][0]);
  90. WinterTime[playerid] = 0;
  91. new query[128];
  92. mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[playerid][pWinterObjects], PlayerInfo[playerid][pSQLID]);
  93. mysql_tquery(SQL, query, "", "");
  94. }
  95. }*/
  96.  
  97. stock RandomEx(minim, maxim) return random(maxim - minim) + minim;
  98. hook OnPlayerEnterCheckpoint(playerid) {
  99. switch(WinterCP[playerid]) {
  100. case 69: {
  101. if(PlayerInfo[playerid][pWinterObjects] == 11) {
  102. new premiu;
  103. switch(random(100)) {
  104. case 0..85: {
  105. premiu = RandomEx(5000000, 10000000);
  106. GivePlayerCash(playerid, premiu);
  107. Update(playerid, pCash);
  108. va_SendClientMessage(playerid, -1, "Ai completat quest-ul si ai castigat %s$, felicitari.", FormatNumber(premiu));
  109. }
  110. case 86..95: {
  111. premiu = RandomEx(5, 50);
  112. PlayerInfo[playerid][pPremiumPoints] += premiu;
  113. Update(playerid, pPremiumPoints);
  114. va_SendClientMessage(playerid, -1, "Ai completat quest-ul si ai castigat %d puncte premium, felicitari.", premiu);
  115. }
  116. case 96..98: {
  117. if(GetSlots(playerid) == GetVehicles(playerid)) {
  118. premiu = RandomEx(5000000, 10000000);
  119. GivePlayerCash(playerid, premiu);
  120. Update(playerid, pCash);
  121. va_SendClientMessage(playerid, -1, "Ai completat quest-ul si ai castigat %s$, felicitari.", FormatNumber(premiu));
  122. }
  123. else {
  124. GiveVehicle(playerid, 402);
  125. SCM(playerid, -1, "Felicitari, ai castigat un vehicul de tip Buffalo.");
  126. }
  127. }
  128. case 99..100: {
  129. if(GetSlots(playerid) == GetVehicles(playerid)) {
  130. premiu = RandomEx(5000000, 10000000);
  131. GivePlayerCash(playerid, premiu);
  132. Update(playerid, pCash);
  133. va_SendClientMessage(playerid, -1, "Ai completat quest-ul si ai castigat %s$, felicitari.", FormatNumber(premiu));
  134. }
  135. else {
  136. GiveVehicle(playerid, 562);
  137. SCM(playerid, -1, "Felicitari, ai castigat un vehicul de tip Elegy.");
  138. }
  139. }
  140. }
  141. DisablePlayerCheckpointEx(playerid);
  142. Iter_Remove(PlayersInWinterQuest, playerid);
  143. DestroyVehicle(WinterCar[playerid]);
  144. WinterRandom[playerid] = 0;
  145. WinterTime[playerid] = 0;
  146. WinterCar[playerid] = 0;
  147. WinterCP[playerid] = 0;
  148. if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu poti livra cadoul dintr-un vehicul!");
  149. if(GetPVarInt(playerid, "HaveGift") == 0) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu ai cadoul! Pentru a-l lua, du-te in spatele vehiculului si apasa H.");
  150. SetPVarInt(playerid, "HaveGift", 0);
  151. RemovePlayerAttachedObject(playerid, 6);
  152. SetPlayerSpecialAction(playerid, 0);
  153. ClearAnimations(playerid);
  154. PlayerTextDrawHide(playerid, WinterPTD[playerid][0]);
  155. }
  156. else {
  157. if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu poti livra cadoul dintr-un vehicul!");
  158. if(GetPVarInt(playerid, "HaveGift") == 0) return SCM(playerid, COLOR_LGREEN, "Eroare: Nu ai cadoul! Pentru a-l lua, du-te in spatele vehiculului si apasa H.");
  159. PlayerInfo[playerid][pWinterObjects] ++;
  160. SetPVarInt(playerid, "HaveGift", 0);
  161. RemovePlayerAttachedObject(playerid, 6);
  162. SetPlayerSpecialAction(playerid, 0);
  163. ClearAnimations(playerid);
  164. new query[128];
  165. mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[playerid][pWinterObjects], PlayerInfo[playerid][pSQLID]);
  166. mysql_tquery(SQL, query, "", "");
  167. new j = random(housess)+1;
  168. if(j == 0) j = 1;
  169. WinterRandom[playerid] = j;
  170. SetPlayerCheckpointEx(playerid, HouseInfo[j][hEntrancex],HouseInfo[j][hEntrancey],HouseInfo[j][hEntrancez], 7.0);
  171. SCM(playerid, -1, "Ai livrat cadoul cu succes, ti-am pus un nou checkpoint.");
  172. }
  173. }
  174. }
  175. return 1;
  176. }
  177. stock CalculeazaTimpQuest(secunde) {
  178. new time = secunde;
  179. time = time%3600;
  180. new minute = time/60;
  181. time = time%60;
  182. new secunde2 = time;
  183. new string[10];
  184. format(string, sizeof(string), "%02d:%02d",minute,secunde2);
  185. return string;
  186. }
  187. function LoadWinterTD(playerid) {
  188. WinterPTD[playerid][0] = CreatePlayerTextDraw(playerid, 87.999794, 271.718505, "~r~Winter Quest~n~~w~Obiecte Colectate: ~b~69~n~~w~Timp Ramas: ~y~20:00~n~~w~Distance to next object: ~g~[]1337 m");
  189. PlayerTextDrawLetterSize(playerid, WinterPTD[playerid][0], 0.181333, 1.044149);
  190. PlayerTextDrawTextSize(playerid, WinterPTD[playerid][0], 10.199999, 97.000000);
  191. PlayerTextDrawAlignment(playerid, WinterPTD[playerid][0], 2);
  192. PlayerTextDrawColor(playerid, WinterPTD[playerid][0], -1);
  193. PlayerTextDrawUseBox(playerid, WinterPTD[playerid][0], 1);
  194. PlayerTextDrawBoxColor(playerid, WinterPTD[playerid][0], 255);
  195. PlayerTextDrawSetShadow(playerid, WinterPTD[playerid][0], -1);
  196. PlayerTextDrawSetOutline(playerid, WinterPTD[playerid][0], -1);
  197. PlayerTextDrawBackgroundColor(playerid, WinterPTD[playerid][0], 255);
  198. PlayerTextDrawFont(playerid, WinterPTD[playerid][0], 2);
  199. PlayerTextDrawSetProportional(playerid, WinterPTD[playerid][0], 1);
  200. PlayerTextDrawSetShadow(playerid, WinterPTD[playerid][0], -1);
  201. return 1;
  202. }
  203. task CheckWInterQuest[1000]() {
  204. new hour, minn, sec;
  205. gettime(hour,minn,sec);
  206. if(hour == 00 && minn == 0) {
  207. foreach(new x: Player) {
  208. PlayerInfo[x][pWinterObjects] = 0;
  209. }
  210. new query[128];
  211. mysql_format(SQL, query, sizeof(query), "UPDATE `users` SET `WinterObjects`='0'");
  212. mysql_tquery(SQL, query, "", "");
  213. }
  214. foreach(new x: PlayersInWinterQuest) {
  215. if(IsPlayerConnected(x)) {
  216. if(PlayerInfo[x][pWinterObjects] <= 10) {
  217. WinterTime[x] --;
  218. if(WinterTime[x] != 0) {
  219. new tdstring[256];
  220. format(tdstring, sizeof(tdstring), "~r~Winter Quest~n~~w~Obiecte Colectate: ~b~%d/10~n~~w~Timp Ramas: ~y~%s~n~~w~Distance to next object: ~g~[]%0.1fm", PlayerInfo[x][pWinterObjects],CalculeazaTimpQuest(WinterTime[x]),GetPlayerDistanceFromPoint(x, HouseInfo[WinterRandom[x]][hEntrancex],HouseInfo[WinterRandom[x]][hEntrancey],HouseInfo[WinterRandom[x]][hEntrancez]));
  221. PlayerTextDrawSetString(x, WinterPTD[x][0],tdstring);
  222. PlayerTextDrawShow(x, WinterPTD[x][0]);
  223. }
  224. else {
  225. SCM(x, -1, "Timpul a expirat. Ai esuat quest-ul.");
  226.  
  227. WinterCP[x] = 0;
  228. WinterCar[x] = 0;
  229. WinterRandom[x] = 0;
  230. WinterTime[x] = 0;
  231. Iter_Remove(PlayersInWinterQuest, x);
  232.  
  233. new query[128];
  234. mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[x][pWinterObjects], PlayerInfo[x][pSQLID]);
  235. mysql_tquery(SQL, query, "", "");
  236.  
  237. PlayerTextDrawHide(x, WinterPTD[x][0]);
  238. }
  239. }
  240. }
  241. }
  242. return 1;
  243. }
  244. YCMD:startquest(playerid, parmas[], help) {
  245. if(PlayerInfo[playerid][pWinterObjects] == 10) return SCM(playerid, -1, "Ai deja quest-ul completat.");
  246. if(Iter_Contains(PlayersInWinterQuest, playerid)) SCM(playerid, -1, "Faci deja quest-ul, foloseste comanda /stopquest pt a renunta.");
  247. //Sa adaugi daca are licenta de condus
  248.  
  249. new Float:pos[3];
  250. GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  251. WinterCar[playerid] = CreateVehicleEx(482, pos[0], pos[1], pos[2], 0.0, 3, 3, 300);
  252. PutPlayerInVehicle(playerid, WinterCar[playerid], 0);
  253.  
  254. Iter_Add(PlayersInWinterQuest, playerid);
  255. SCM(playerid, -1, "Du-te la checkpoint pt a livra cadoul");
  256.  
  257. new j = random(housess)+1;
  258. if(j == 0) j = 1;
  259.  
  260. WinterTime[playerid] = 1200;
  261. WinterRandom[playerid] = j;
  262. SetPlayerCheckpointEx(playerid, HouseInfo[j][hEntrancex],HouseInfo[j][hEntrancey],HouseInfo[j][hEntrancez], 7.0);
  263.  
  264. WinterCP[playerid] = 69;
  265.  
  266. return 1;
  267. }
  268.  
  269. YCMD:stopquest(playerid, params[], help) {
  270. if(Iter_Contains(PlayersInWinterQuest, playerid)) SCM(playerid, -1, "Nu faci quest-ul de iarna.");
  271. DestroyVehicle(WinterCar[playerid]);
  272. WinterCP[playerid] = 0;
  273. WinterCar[playerid] = 0;
  274. WinterRandom[playerid] = 0;
  275. WinterTime[playerid] = 0;
  276. Iter_Remove(PlayersInWinterQuest, playerid);
  277. DisablePlayerCheckpoint(playerid);
  278.  
  279. new query[128];
  280. mysql_format(SQL, query, 128, "UPDATE `users` SET `WinterObjects`=%d WHERE `id`=%d", PlayerInfo[playerid][pWinterObjects], PlayerInfo[playerid][pSQLID]);
  281. mysql_tquery(SQL, query, "", "");
  282.  
  283. PlayerTextDrawHide(playerid, WinterPTD[playerid][0]);
  284.  
  285. return 1;
  286. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement