KevY007

MafiaOink's Xmas Giftbox System v1.1

Dec 30th, 2015
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.84 KB | None | 0 0
  1. // MafiaOink's XMas GiftBox System v1.1 //
  2.  
  3. /*
  4.  
  5. Changes:
  6.  
  7. * File system now changed to y_ini because dini sucks
  8.  
  9. Fixes:
  10.  
  11. * Saving System not working with getplayerpoolsize() in y_ini
  12.  
  13. This is a giftbox system so it will get prizes from your script, a function:
  14. public OnPlayerRetrieveGift(playerid, gift)
  15. will be called and the gift is random, You can edit it..
  16.  
  17. Dont forget to add that function on your main gm and add prizes yourself
  18. */
  19.  
  20. #include <a_samp>
  21. #include <YSI\y_ini>
  22. #include <zcmd>
  23.  
  24. #define MAX_GIFTID 5 // Ur setting not mine / This System never returns random gift id as 0! only 1 and more, even if u make it MAX_GIFTID 0 it wont return to prevent glitch
  25.  
  26. new Cooldown[MAX_PLAYERS];
  27.  
  28. #define GiftCoolDown 3600 // How much seconds? 1 hour = 3600 half hour = 1300 1 min = 60 10 min = 600 half min = 30
  29.  
  30. stock GetPlayerNameEx(playerid)
  31. {
  32. new CName[MAX_PLAYER_NAME];
  33. GetPlayerName(playerid, CName, MAX_PLAYER_NAME);
  34. return CName;
  35. }
  36.  
  37. stock GetPlayerAccountPath(playerid)
  38. {
  39. new path[128];
  40. format(path, sizeof(path), "/MoGiftbox/%s.ini", GetPlayerNameEx(playerid));
  41. return path;
  42. }
  43.  
  44. // Uncomment the line below to enable SNOW(might be laggy for noob pc)
  45. //#define Snow_Enable
  46.  
  47. new XMasObject[9];
  48.  
  49. public OnFilterScriptInit()
  50. {
  51. print("XMas Giftbox 0.3.7 has been Loaded\nBy MafiaOink\nHas a gift system near tree at mulholland!");
  52. XMasObject[0] = CreateObject(19076, 1376.81421, -1101.88611, 23.34148, 0.00000, 0.00000, 0.00000);
  53. XMasObject[1] = CreateObject(19054, 1374.91821, -1102.08887, 24.02473, 0.00000, 0.00000, 24.34395);
  54. XMasObject[2] = CreateObject(19055, 1375.42529, -1100.02661, 24.01450, 0.00000, 0.00000, 0.00000);
  55. XMasObject[3] = CreateObject(19056, 1373.51965, -1101.07129, 24.01930, 0.00000, 0.00000, 0.00000);
  56. XMasObject[4] = CreateObject(19064, 1373.07971, -1100.65381, 24.55350, 0.00000, 40.00000, 131.86729);
  57. XMasObject[5] = CreateObject(19057, 1377.66382, -1100.22583, 23.98165, 0.00000, 0.00000, 0.00000);
  58. XMasObject[6] = CreateObject(19058, 1378.35156, -1102.72412, 23.86090, 0.00000, 0.00000, 0.00000);
  59. XMasObject[7] = CreateObject(19063, 1376.68970, -1101.77039, 36.35170, 180.00000, 0.00000, 0.00000);
  60. #if defined Snow_Enable
  61. XMasObject[8] = CreateObject(18864, 1362.55774, -1099.42810, 25.72931, 0.00000, 0.00000, 0.00000);
  62. #endif
  63.  
  64. SetTimer("SecondUpdate", 1150, true);
  65. SetTimer("SaveAll", 5000, true);
  66. return 1;
  67. }
  68.  
  69. forward SaveAll();
  70. public SaveAll()
  71. {
  72. for(new playeridw=0;playeridw<MAX_PLAYERS;playeridw++)
  73. {
  74. if(IsPlayerConnected(playeridw))
  75. {
  76. new INI:File = INI_Open(GetPlayerAccountPath(playeridw));
  77. INI_WriteInt(File,"Cooldown",Cooldown[playeridw]);
  78. INI_Close(File);
  79. }
  80. }
  81. return 1;
  82. }
  83.  
  84. forward SecondUpdate();
  85. public SecondUpdate()
  86. {
  87. for(new pl=0;pl<MAX_PLAYERS ;pl++)
  88. {
  89. if(IsPlayerConnected(pl))
  90. {
  91. if(Cooldown[pl] != 0)
  92. {
  93. Cooldown[pl]--;
  94. }
  95. }
  96. }
  97. return 1;
  98. }
  99.  
  100. public OnFilterScriptExit()
  101. {
  102. print("XMas 0.3.7 is now exiting\nDeleting objects...");
  103. for(new Object=0;Object<sizeof(XMasObject);Object++)
  104. {
  105. if(IsValidObject(Object))
  106. {
  107. printf("Object %d of this filterscript has been removed", Object);
  108. DestroyObject(XMasObject[Object]);
  109. }
  110. }
  111. return 1;
  112. }
  113.  
  114. forward LoadPlayer(playerid, name[], value[]);
  115. public LoadPlayer(playerid, name[], value[])
  116. {
  117. INI_Int("Cooldown", Cooldown[playerid]);
  118. return 1;
  119. }
  120.  
  121. public OnPlayerConnect(playerid)
  122. {
  123. Cooldown[playerid] = 0;
  124. if(fexist(GetPlayerAccountPath(playerid)))
  125. {
  126. INI_ParseFile(GetPlayerAccountPath(playerid), "LoadPlayer", .bExtra = true, .extra = playerid);
  127. }
  128. else
  129. {
  130. new INI:playerfile = INI_Open(GetPlayerAccountPath(playerid));
  131. INI_WriteInt(playerfile, "Cooldown", Cooldown[playerid]);
  132. INI_Close(playerfile);
  133. }
  134. return 1;
  135. }
  136.  
  137. CMD:giftbox(playerid, params[])
  138. {
  139. if(IsPlayerInRangeOfPoint(playerid, 10.0, 1376.81421, -1101.88611, 23.34148))
  140. {
  141. if(Cooldown[playerid] == 0)
  142. {
  143. new randomid = random(MAX_GIFTID);
  144. if(randomid == 0) return cmd_giftbox(playerid, params);
  145. // THIS SCRIPT NEVER RETURNS RANDOM GIFTBOX ID AS 0!! BEWARE
  146. SendClientMessage(playerid, 0xAFAFAFAA, "You close your eyes and slowly open the giftbox......");
  147. CallRemoteFunction("OnPlayerRetrieveGift", "dd", playerid, randomid);
  148. Cooldown[playerid] = 3600;
  149. }
  150. else
  151. {
  152. new str[128];
  153. format(str, 128, "{FF0000}You are still on a cooldown of %d minutes(%d seconds)", Cooldown[playerid]/60, Cooldown[playerid]);
  154. SendClientMessage(playerid, -1, str);
  155. }
  156. }
  157. else
  158. {
  159. new str[128];
  160. format(str, 128, "{FF0000}You are not near the XMas Tree, Distance: %0.2f meters", GetPlayerDistanceFromPoint(playerid, 1376.81421, -1101.88611, 23.34148));
  161. SendClientMessage(playerid, -1, str);
  162. }
  163. return 1;
  164. }
Add Comment
Please, Sign In to add comment