Guest User

Pomoc ljudi

a guest
May 27th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.98 KB | None | 0 0
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <izcmd>
  4.  
  5. #define INTERVAL (1) // in minutes
  6.  
  7. new giftArea;
  8.  
  9. new DB:db;
  10.  
  11. new playerMinutes[MAX_PLAYERS];
  12. new playerTimer[MAX_PLAYERS];
  13.  
  14. public OnFilterScriptInit()
  15. {
  16. db = db_open("gifts.db");
  17. db_free_result(db_query(db, "CREATE TABLE IF NOT EXIST `PlayerGifts` (`Username` TEXT PRIMARY KEY, `Minutes` NUMBER, `Money` NUMBER, `Score` NUMBER, `Weapons` TEXT, `Ammos` TEXT);"));
  18.  
  19. giftArea = CreateDynamicCircle(1221.3690, -1658.2582, 2.0);
  20. CreateDynamicPickup(1239, 1, 1221.3690, -1658.2582, 11.7969);
  21. CreateDynamic3DTextLabel("Type /getgift to open your present!", 0xFFFFFFFF, 1221.3690, -1658.2582, 11.7969, 100.0);
  22. return 1;
  23. }
  24.  
  25. public OnFilterScriptExit()
  26. {
  27. db_close(db);
  28. return 1;
  29. }
  30.  
  31. public OnPlayerConnect(playerid)
  32. {
  33. new name[MAX_PLAYER_NAME];
  34. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  35.  
  36. new string[150];
  37. format(string, sizeof (string), "SELECT `Minutes` FROM `PlayerGifts` WHERE `Username` = '%q';", name);
  38. new DBResult:result = db_query(db, string);
  39. if (result)
  40. {
  41. playerMinutes[playerid] = db_get_field_int(result, 0);
  42. db_free_result(result);
  43. }
  44. else
  45. {
  46. playerMinutes[playerid] = 0;
  47. format(string, sizeof (string), "INSERT INTO `PlayerGifts` (`Username` = '%q', `Minutes` = 0);", name);
  48. db_free_result(db_query(db, string));
  49. }
  50.  
  51. playerTimer[playerid] = SetTimerEx("OnPlayerTimeUpdate", 60 * 1000, true, "i", playerid);
  52. return 1;
  53. }
  54.  
  55. public OnPlayerDisconnect(playerid, reason)
  56. {
  57. new name[MAX_PLAYER_NAME];
  58. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  59.  
  60. new weapons[100];
  61. weapons = "0";
  62. new ammos[100];
  63. ammos = "0";
  64. new w, a;
  65. for (new i; i < 14; i++)
  66. {
  67. GetPlayerWeaponData(playerid, i, w, a);
  68. format(weapons, sizeof (weapons), "%s,%i", weapons, w);
  69. format(ammos, sizeof (ammos), "%s,%i", ammos, a);
  70. }
  71.  
  72. new string[150];
  73. format(string, sizeof (string), "UPDATE `PlayerGifts` SET `Minutes` = %d, `Moeny` = %d, `Score` = %d, `Weapons` = '%q', `Ammos` = '%q' WHERE `Username` = '%q';", playerMinutes[playerid], GetPlayerMoney(playerid), GetPlayerScore(playerid), weapons, ammos, name);
  74. db_free_result(db_query(db, string));
  75.  
  76. KillTimer(playerTimer[playerid]);
  77. return 1;
  78. }
  79.  
  80. forward OnPlayerTimeUpdate(playerid);
  81. public OnPlayerTimeUpdate(playerid)
  82. {
  83. playerMinutes[playerid]++;
  84. }
  85.  
  86. strsplit(dest[][], string[], const sub[], bool:ignorecase = false, pos = 0, limit = -1, len = sizeof (dest[]))
  87. {
  88. if (pos <= -1)
  89. return 0;
  90.  
  91. if (limit != -1 && limit <= 0)
  92. return 0;
  93.  
  94. new sublen = strlen(sub);
  95. new count;
  96.  
  97. while ((pos = strfind(string, sub, ignorecase, pos)) != -1)
  98. {
  99. strmid((dest[count][0] = EOS, dest[count]), string, 0, (pos + sublen), len);
  100. strdel(string, 0, (pos + sublen));
  101.  
  102. count++;
  103. if (limit > 0 && count >= limit)
  104. {
  105. break;
  106. }
  107. }
  108.  
  109. strcat((dest[count][0] = EOS, dest[count]), string, len);
  110.  
  111. return count;
  112. }
  113.  
  114. public OnPlayerSpawn(playerid)
  115. {
  116. new name[MAX_PLAYER_NAME];
  117. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  118.  
  119. new string[150];
  120. format(string, sizeof (string), "SELECT * FROM `PlayerGifts` WHERE `Username` = '%q';", name);
  121. new DBResult:result = db_query(db, string);
  122. if (result)
  123. {
  124. db_get_field_assoc(result, "Weapons", string, sizeof (string));
  125. new dest[14][10];
  126. new limit = strsplit(dest, string, ",");
  127.  
  128. db_get_field_assoc(result, "Ammos", string, sizeof (string));
  129. new dest2[14][10];
  130. strsplit(dest2, string, ",");
  131.  
  132. for (new i; i < limit; i++)
  133. {
  134. GivePlayerWeapon(playerid, strval(dest[i]), strval(dest2[i]));
  135. }
  136.  
  137. GivePlayerMoney(playerid, db_get_field_assoc_int(result, "Money"));
  138. SetPlayerScore(playerid, GetPlayerScore(playerid) + db_get_field_assoc_int(result, "Score"));
  139.  
  140. db_free_result(result);
  141. }
  142.  
  143. format(string, sizeof (string), "UPDATE `PlayerGifts` SET `Weapons` = '', `Ammos` = '' WHERE `Username` = '%q';", name);
  144. db_free_result(db_query(db, string));
  145. return 1;
  146. }
  147.  
  148. CMD:getgift(playerid)
  149. {
  150. if (!IsPlayerInDynamicArea(playerid, giftArea))
  151. {
  152. GameTextForPlayer(playerid, "~r~You aren't near a gift box!", 5000, 3);
  153. return 1;
  154. }
  155.  
  156. if (playerMinutes[playerid] < INTERVAL)
  157. {
  158. new string[100];
  159. format(string, sizeof (string), "~r~You should wait %i minutes to collect your gift!", (INTERVAL - playerMinutes[playerid]));
  160. GameTextForPlayer(playerid, string, 5000, 3);
  161. return 1;
  162. }
  163.  
  164. switch (random(9))
  165. {
  166. case 0:
  167. {
  168. GivePlayerMoney(playerid, 10000);
  169. SendClientMessage(playerid, 0x00FF00FF, "You have got +$10000 in your gift box.");
  170. }
  171.  
  172. case 1:
  173. {
  174. GivePlayerWeapon(playerid, 24, 50);
  175. SendClientMessage(playerid, 0x00FF00FF, "You have got a Desert eagle in your gift box.");
  176. }
  177.  
  178. case 2:
  179. {
  180. GivePlayerWeapon(playerid, 17, 3);
  181. SendClientMessage(playerid, 0x00FF00FF, "You have got 3 Tear gases in your gift box.");
  182. }
  183.  
  184. case 3:
  185. {
  186. GivePlayerWeapon(playerid, 34, 50);
  187. SendClientMessage(playerid, 0x00FF00FF, "You have got a Sniper rifle in your gift box.");
  188. }
  189.  
  190. case 4:
  191. {
  192. GivePlayerWeapon(playerid, 46, 1);
  193. SendClientMessage(playerid, 0x00FF00FF, "You have got a Parachute in your gift box.");
  194. }
  195.  
  196. case 5:
  197. {
  198. GivePlayerMoney(playerid, 15000);
  199. SendClientMessage(playerid, 0x00FF00FF, "You have got +$15000 in your gift box.");
  200. }
  201.  
  202. case 6:
  203. {
  204. SetPlayerScore(playerid, GetPlayerScore(playerid) + 5);
  205. SendClientMessage(playerid, 0x00FF00FF, "You have got +5 Score in your gift box.");
  206. }
  207.  
  208. case 7:
  209. {
  210. SetPlayerHealth(playerid, 100);
  211. SendClientMessage(playerid, 0x00FF00FF, "You have got 100 Health in your gift box.");
  212. }
  213.  
  214. case 8:
  215. {
  216. SetPlayerArmour(playerid, 100);
  217. SendClientMessage(playerid, 0x00FF00FF, "You have got 100 Armour in your gift box.");
  218. }
  219. }
  220.  
  221. playerMinutes[playerid] -= INTERVAL;
  222.  
  223. GameTextForPlayer(playerid, "~g~~h~~h~You have opened your gift!", 5000, 3);
  224. return 1;
  225. }
Advertisement
Add Comment
Please, Sign In to add comment