Guest User

samp money-config.inc zile42O

a guest
Aug 13th, 2018
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.64 KB | None | 0 0
  1. /*
  2. Include:
  3. money-config.inc
  4.  
  5. * Functions for anti money hack
  6.  
  7. * Author: (zile42O)
  8. * Created date: (13/8/2018)
  9.  
  10. (c) Copyright 2018
  11.  
  12. */
  13. #if defined _inc_money_config
  14. #endinput
  15. #endif
  16. #define _inc_money_config
  17.  
  18. #include "a_samp"
  19.  
  20. #define MC_RESOLUTION 1
  21.  
  22. // RESOLUTION TYPES:
  23. // 1 - 1980 x 1080 x 16
  24. // 2 - 1024 x 728 x 32
  25. // 3 - 800 x 600 x 32
  26.  
  27. new mc_player_money[MAX_PLAYERS];
  28. new mc_player_tick[MAX_PLAYERS];
  29. new mc_player_color_money[MAX_PLAYERS];
  30. new bool:mc_player_spawned[MAX_PLAYERS];
  31.  
  32. new PlayerText: MC_MONEY_TD[MAX_PLAYERS];
  33. new PlayerText: MC_MONEY_INFO_TD[MAX_PLAYERS];
  34.  
  35. new const MAX_MONEY = 9999999999,
  36. MIN_MONEY = -9999999999;
  37. new const
  38. MONEY_BAR_COLOR = 0x005623FF, // Dark green
  39. MONEY_POSI_COL = 0x11DD65FF, // Light green
  40. MONEY_NEGA_COL = 0xDD1111FF; // Light red
  41.  
  42. forward SetMoneyInfo(playerid, amount, bool:type, timems);
  43. forward OnPlayerTakeMoney(playerid, amount);
  44.  
  45. //
  46.  
  47.  
  48. public OnPlayerConnect(playerid)
  49. {
  50. mc_player_spawned[playerid] = false;
  51. mc_player_color_money[playerid] = MONEY_BAR_COLOR; //default
  52. mc_player_money[playerid] = 0;
  53. //TDs
  54. //Resolutions:
  55. //Res 1:
  56. #if MC_RESOLUTION == 1
  57. MC_MONEY_TD[playerid] = CreatePlayerTextDraw(playerid, 607.366943, 77.814590, "$00000000");
  58. PlayerTextDrawLetterSize(playerid, MC_MONEY_TD[playerid], 0.547333, 2.130961);
  59. //Res 2:
  60. #elseif MC_RESOLUTION == 2
  61. MC_MONEY_TD[playerid] = CreatePlayerTextDraw(playerid, 608.125000, 78.666564, "$00000000");
  62. PlayerTextDrawLetterSize(playerid, MC_MONEY_TD[playerid], 0.552501, 1.945835);
  63. #elseif MC_RESOLUTION == 3
  64. //Res 3:
  65. MC_MONEY_TD[playerid] = CreatePlayerTextDraw(playerid, 608.399658, 77.103370, "$00000000");
  66. PlayerTextDrawLetterSize(playerid, MC_MONEY_TD[playerid], 0.557600, 2.130131);
  67. #endif
  68. //Other
  69. PlayerTextDrawAlignment(playerid, MC_MONEY_TD[playerid], 3);
  70. PlayerTextDrawColor(playerid, MC_MONEY_TD[playerid], MONEY_BAR_COLOR);
  71. PlayerTextDrawSetShadow(playerid, MC_MONEY_TD[playerid], 0);
  72. PlayerTextDrawSetOutline(playerid, MC_MONEY_TD[playerid], 2);
  73. PlayerTextDrawBackgroundColor(playerid, MC_MONEY_TD[playerid], 255);
  74. PlayerTextDrawFont(playerid, MC_MONEY_TD[playerid], 3);
  75. PlayerTextDrawSetProportional(playerid, MC_MONEY_TD[playerid], 1);
  76. PlayerTextDrawSetShadow(playerid, MC_MONEY_TD[playerid], 0);
  77.  
  78. MC_MONEY_INFO_TD[playerid] = CreatePlayerTextDraw(playerid, 494.333282, 84.637123, "_");
  79. PlayerTextDrawLetterSize(playerid, MC_MONEY_INFO_TD[playerid], 0.264999, 1.085630);
  80. PlayerTextDrawAlignment(playerid, MC_MONEY_INFO_TD[playerid], 3);
  81. PlayerTextDrawColor(playerid, MC_MONEY_INFO_TD[playerid], -1);
  82. PlayerTextDrawSetShadow(playerid, MC_MONEY_INFO_TD[playerid], 0);
  83. PlayerTextDrawSetOutline(playerid, MC_MONEY_INFO_TD[playerid], 0);
  84. PlayerTextDrawBackgroundColor(playerid, MC_MONEY_INFO_TD[playerid], 255);
  85. PlayerTextDrawFont(playerid, MC_MONEY_INFO_TD[playerid], 3);
  86. PlayerTextDrawSetProportional(playerid, MC_MONEY_INFO_TD[playerid], 1);
  87. PlayerTextDrawSetShadow(playerid, MC_MONEY_INFO_TD[playerid], 0);
  88.  
  89.  
  90.  
  91. #if defined MC_OnPlayerConnect
  92. return MC_OnPlayerConnect(playerid);
  93. #else
  94. return 1;
  95. #endif
  96. }
  97.  
  98. public OnPlayerDisconnect(playerid, reason)
  99. {
  100. mc_player_spawned[playerid] = false;
  101. PlayerTextDrawDestroy(playerid, MC_MONEY_TD[playerid]);
  102. PlayerTextDrawDestroy(playerid, MC_MONEY_INFO_TD[playerid]);
  103. mc_player_money[playerid] = 0;
  104. #if defined MC_OnPlayerDisconnect
  105. return MC_OnPlayerDisconnect(playerid, reason);
  106. #else
  107. return 1;
  108. #endif
  109. }
  110.  
  111. public OnPlayerSpawn(playerid)
  112. {
  113. mc_player_spawned[playerid] = true;
  114. PlayerTextDrawShow(playerid, MC_MONEY_TD[playerid]);
  115. PlayerTextDrawShow(playerid, MC_MONEY_INFO_TD[playerid]);
  116. #if defined MC_OnPlayerSpawn
  117. return MC_OnPlayerSpawn(playerid);
  118. #else
  119. return 1;
  120. #endif
  121. }
  122.  
  123. stock ChangeColorMoneyForPlayer(playerid, newcolor)
  124. {
  125. if(mc_player_spawned[playerid] == false) return false;
  126. if(GetPlayerMoney(playerid) < 0) return false;
  127. mc_player_color_money[playerid] = newcolor;
  128.  
  129. PlayerTextDrawColor(playerid, MC_MONEY_TD[playerid], mc_player_color_money[playerid]);
  130. PlayerTextDrawHide(playerid, MC_MONEY_TD[playerid]);
  131. PlayerTextDrawShow(playerid, MC_MONEY_TD[playerid]);
  132. return true;
  133. }
  134. stock MC_GivePlayerMoney(playerid, money)
  135. {
  136. if(money == 0) return false;
  137. if(mc_player_spawned[playerid] == false)
  138. {
  139. printf("MoneyConfig: Can't set for id:%d money: %d cause is player not spawned", playerid, money);
  140. return false;
  141. }
  142. if (money > MAX_MONEY)
  143. {
  144. printf("MoneyConfig: Can't set for id:%d money: %d cause is max limit %d", playerid, money, MAX_MONEY);
  145. return false;
  146. }
  147. if (money < MIN_MONEY)
  148. {
  149. printf("MoneyConfig: Can't set for id:%d money: %d cause is min limit %d", playerid, money, MIN_MONEY);
  150. return false;
  151. }
  152. if (money > 0)
  153. {
  154. SetMoneyInfo(playerid, money, true, 1500);
  155. mc_player_money[playerid] += money;
  156. }
  157. else if (money < 0)
  158. {
  159. SetMoneyInfo(playerid, money, false, 1500);
  160. mc_player_money[playerid] -= abs(money);
  161. }
  162. ResetPlayerMoney(playerid);
  163. CallLocalFunction("OnPlayerTakeMoney", "id", playerid, mc_player_money[playerid]);
  164. return GivePlayerMoney(playerid, mc_player_money[playerid]);
  165. }
  166. stock abs( value )
  167. {
  168. return ((value < 0 ) ? (-value) : (value));
  169. }
  170.  
  171. #if defined _ALS_GivePlayerMoney
  172. #undef GivePlayerMoney
  173. #else
  174. #define _ALS_GivePlayerMoney
  175. #endif
  176. #define GivePlayerMoney MC_GivePlayerMoney
  177.  
  178. public OnPlayerTakeMoney(playerid, amount)
  179. {
  180. new arg[60];
  181. if(amount == 0)
  182. {
  183. format(arg,sizeof(arg),"$00000000");
  184. PlayerTextDrawSetString(playerid, MC_MONEY_TD[playerid], arg);
  185. PlayerTextDrawColor(playerid, MC_MONEY_TD[playerid], mc_player_color_money[playerid]);
  186. PlayerTextDrawHide(playerid, MC_MONEY_TD[playerid]);
  187. }
  188. else if (amount > 0)
  189. {
  190. format(arg,sizeof(arg),"$%08d", amount);
  191. PlayerTextDrawSetString(playerid, MC_MONEY_TD[playerid], arg);
  192. PlayerTextDrawColor(playerid, MC_MONEY_TD[playerid], mc_player_color_money[playerid]);
  193. PlayerTextDrawHide(playerid, MC_MONEY_TD[playerid]);
  194. }
  195. else if (amount < 0)
  196. {
  197. format(arg,sizeof(arg),"$%08d", amount);
  198. PlayerTextDrawSetString(playerid, MC_MONEY_TD[playerid], arg);
  199. PlayerTextDrawColor(playerid, MC_MONEY_TD[playerid], MONEY_NEGA_COL);
  200. PlayerTextDrawHide(playerid, MC_MONEY_TD[playerid]);
  201. }
  202. PlayerTextDrawShow(playerid, MC_MONEY_TD[playerid]);
  203. return true;
  204. }
  205.  
  206. public SetMoneyInfo(playerid, amount, bool:type, timems)
  207. {
  208. new arg[60];
  209. if (mc_player_tick[playerid] < GetTickCount())
  210. {
  211. mc_player_tick[playerid] = GetTickCount() + timems;
  212.  
  213. if (type == true)
  214. {
  215. format(arg,sizeof(arg),"+$%d", amount);
  216. PlayerTextDrawColor(playerid, MC_MONEY_INFO_TD[playerid], MONEY_POSI_COL);
  217. PlayerTextDrawHide(playerid, MC_MONEY_INFO_TD[playerid]);
  218. }
  219. else
  220. {
  221. format(arg,sizeof(arg),"$%d", amount);
  222. PlayerTextDrawColor(playerid, MC_MONEY_INFO_TD[playerid], MONEY_NEGA_COL);
  223. PlayerTextDrawHide(playerid, MC_MONEY_INFO_TD[playerid]);
  224. }
  225. PlayerTextDrawSetString(playerid, MC_MONEY_INFO_TD[playerid], arg);
  226. PlayerTextDrawShow(playerid, MC_MONEY_INFO_TD[playerid]);
  227. SetTimerEx("InfoMoneyOff", timems, false, "i", playerid);
  228. }
  229. return true;
  230. }
  231. forward InfoMoneyOff(playerid);
  232. public InfoMoneyOff(playerid)
  233. {
  234. PlayerTextDrawSetString(playerid, MC_MONEY_INFO_TD[playerid], "_");
  235. return true;
  236. }
  237.  
  238. stock MC_ResetPlayerMoney(playerid)
  239. {
  240. mc_player_money[playerid] = 0; //Reset
  241. CallLocalFunction("OnPlayerTakeMoney", "id", playerid, mc_player_money[playerid]);
  242. return ResetPlayerMoney(playerid);
  243. }
  244. #if defined _ALS_ResetPlayerMoney
  245. #undef ResetPlayerMoney
  246. #else
  247. #define _ALS_ResetPlayerMoney
  248. #endif
  249. #define ResetPlayerMoney MC_ResetPlayerMoney
  250.  
  251. stock MC_GetPlayerMoney(playerid)
  252. {
  253. return mc_player_money[playerid];
  254. }
  255. #if defined _ALS_GetPlayerMoney
  256. #undef GetPlayerMoney
  257. #else
  258. #define _ALS_GetPlayerMoney
  259. #endif
  260. #define GetPlayerMoney MC_GetPlayerMoney
  261. //
  262.  
  263.  
  264. #if defined _ALS_OnPlayerConnect
  265. #undef OnPlayerConnect
  266. #else
  267. #define _ALS_OnPlayerConnect
  268. #endif
  269. #define OnPlayerConnect MC_OnPlayerConnect
  270. #if defined MC_OnPlayerConnect
  271. forward MC_OnPlayerConnect(playerid);
  272. #endif
  273.  
  274. #if defined _ALS_OnPlayerDisconnect
  275. #undef OnPlayerDisconnect
  276. #else
  277. #define _ALS_OnPlayerDisconnect
  278. #endif
  279. #define OnPlayerDisconnect MC_OnPlayerDisconnect
  280. #if defined MC_OnPlayerDisconnect
  281. forward MC_OnPlayerDisconnect(playerid);
  282. #endif
  283.  
  284. #if defined _ALS_OnPlayerSpawn
  285. #undef OnPlayerSpawn
  286. #else
  287. #define _ALS_OnPlayerSpawn
  288. #endif
  289. #define OnPlayerSpawn MC_OnPlayerSpawn
  290. #if defined MC_OnPlayerSpawn
  291. forward MC_OnPlayerSpawn(playerid);
  292. #endif
Add Comment
Please, Sign In to add comment