iFenomenal

Money

Feb 16th, 2019
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.66 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <cstrike>
  3. #include <nvault>
  4.  
  5. #define NV_NAME "GET_MONEY"
  6. #define TAG "[FURIEN]"
  7.  
  8. enum player_struct {
  9. mtime,bool:ftime,key[64]
  10. }
  11. new g_player[33][player_struct];
  12.  
  13. new cvar_save_type,cvar_time,cvar_money;
  14.  
  15. public plugin_init() {
  16.  
  17. register_plugin("Get Money", "1.0", "");
  18.  
  19. cvar_save_type = register_cvar("get_money_save_type","1"); // how to save data 1 by authid, 2 by ip or 3 by name
  20. cvar_time = register_cvar("get_money_minutes","1440"); // time in minutes, 720minutes=12hours it will be auto calculated
  21. cvar_money = register_cvar("get_money","16000"); // how many money to give
  22.  
  23. register_clcmd("say /free", "cmd_money");
  24. register_clcmd("say_team /free", "cmd_money");
  25. }
  26.  
  27. public cmd_money(id) {
  28.  
  29. new nv = nvault_open(NV_NAME);
  30.  
  31. if(nv == INVALID_HANDLE) {
  32. client_print(id,print_chat,"%s For the moment getting money system is inactive..",TAG);
  33. return;
  34. }
  35.  
  36. new txt_min[32],txt_money[10];
  37. new money = get_pcvar_num(cvar_money),pminutes = get_pcvar_num(cvar_time);
  38. copy(txt_money,charsmax(txt_money),(money==1)?"money":"money");
  39. build_time(pminutes,txt_min,charsmax(txt_min));
  40.  
  41. if(g_player[id][ftime]) {
  42. client_print(id,print_chat,"%s You have just received %d money %s, get another in %s !",TAG,money,txt_money,txt_min);
  43. cs_set_user_money(id, cs_get_user_money(id) + money);
  44. g_player[id][ftime]=false;
  45. nvault_touch(nv,g_player[id][key],g_player[id][mtime]=get_systime());
  46. return;
  47. }
  48.  
  49. new user_time=get_systime()-g_player[id][mtime];
  50. new diff_min=(user_time<(pminutes*60))?pminutes-(user_time/60):pminutes;
  51. build_time(diff_min,txt_min,charsmax(txt_min));
  52.  
  53. if(user_time>=(pminutes*60)) {
  54. client_print(id,print_chat,"%s You have just received %d money %s since %s passed !",TAG,money,txt_money,txt_min);
  55. cs_set_user_money(id, cs_get_user_money(id) + money);
  56. nvault_touch(nv,g_player[id][key],g_player[id][mtime]=get_systime());
  57. }
  58. else
  59. client_print(id,print_chat,"%s Retry again in %s for getting %d more money %s !",TAG,txt_min,money,txt_money);
  60.  
  61. nvault_close(nv);
  62. }
  63.  
  64. public client_putinserver(id) {
  65.  
  66. new nv,data[32];
  67. get_auth(id,g_player[id][key],charsmax(g_player[][key]));
  68. g_player[id][mtime]=get_systime();
  69. g_player[id][ftime]=false;
  70. formatex(data,charsmax(data),"%d",g_player[id][mtime]);
  71.  
  72. if((nv=nvault_open(NV_NAME))==INVALID_HANDLE)
  73. return;
  74.  
  75. if(!nvault_lookup(nv,g_player[id][key],data,charsmax(data),g_player[id][mtime])) {
  76. nvault_set(nv,g_player[id][key],data);
  77. g_player[id][ftime]=true;
  78. }
  79.  
  80. nvault_close(nv);
  81. }
  82.  
  83. public client_disconnect(id) {
  84.  
  85. g_player[id][mtime]=0;
  86. g_player[id][ftime]=false;
  87. }
  88.  
  89. stock get_auth(id,data[],len)
  90. switch(get_pcvar_num(cvar_save_type)) {
  91. case 1: get_user_authid(id,data,len);
  92. case 2: get_user_ip(id,data,len,1);
  93. case 3: get_user_name(id,data,len);
  94. }
  95.  
  96. stock build_time(pminutes,data[],len)
  97. if(pminutes==1)
  98. copy(data,len,"1 minute");
  99. else if(pminutes!=1&&pminutes<60)
  100. formatex(data,len,"%d minutes",pminutes);
  101. else if(pminutes==60)
  102. copy(data,len,"1 hour");
  103. else {
  104. new ptime=pminutes/60;
  105. if(ptime*60==pminutes)
  106. formatex(data,len,"%d %s",ptime,(ptime==1)?"hour":"hours");
  107. else {
  108. new diff=pminutes-ptime*60;
  109. formatex(data,len,"%d %s and %d %s",ptime,(ptime==1)?"hour":"hours",diff,(diff==1)?"minute":"minutes");
  110. }
  111. }
Add Comment
Please, Sign In to add comment