HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /*
  2. * _______ _ _ __ __
  3. * | _____/ | | | | \ \ __ / /
  4. * | | | | | | | | / \ | |
  5. * | | | |____| | | |/ __ \| |
  6. * | | ___ | ______ | | / \ |
  7. * | | |_ | | | | | | / \ |
  8. * | | | | | | | | | | | |
  9. * | |____| | | | | | | | | |
  10. * |_______/ |_| |_| \_/ \_/
  11. *
  12. *
  13. *
  14. * Last Edited: 12-31-07
  15. *
  16. * ============
  17. * Changelog:
  18. * ============
  19. *
  20. * v2.0
  21. * -Added ML
  22. *
  23. * v1.5
  24. * -Optimized Reading/Writing Files
  25. *
  26. * v1.2
  27. * -Misc. Bug Fixes
  28. *
  29. * v1.0
  30. * -Initial Release
  31. *
  32. */
  33.  
  34. #define VERSION "2.0"
  35.  
  36. #include <amxmodx>
  37. #include <amxmisc>
  38. #include <cstrike>
  39.  
  40. new bank[33]
  41. new configfile[200]
  42. new authid[33][32]
  43. new pcvar
  44.  
  45. public plugin_init()
  46. {
  47. register_plugin("Simple CS Bank",VERSION,"GHW_Chronic")
  48. pcvar = register_cvar("bank_save","1")
  49.  
  50. new configsdir[200]
  51. get_configsdir(configsdir,199)
  52. format(configfile,199,"%s/cs_bank.ini",configsdir)
  53.  
  54. register_dictionary("GHW_CS_Bank.txt")
  55. }
  56.  
  57. public client_putinserver(id)
  58. {
  59. if(!is_user_bot(id)) set_task(5.0,"client_authorized2",id)
  60. }
  61.  
  62. public client_authorized2(id)
  63. {
  64. bank[id] = 0
  65. if(get_pcvar_num(pcvar))
  66. set_task(10.0,"read_file2",id)
  67. set_task(0.1,"cpt",id,"",0,"b")
  68. }
  69.  
  70. public client_disconnect(id)
  71. {
  72. if(!is_user_bot(id) && get_pcvar_num(pcvar))
  73. save_money(id)
  74. }
  75.  
  76. public cpt(id)
  77. {
  78. if(is_user_alive(id))
  79. {
  80. if(cs_get_user_money(id)>10000)
  81. {
  82. bank[id]+= cs_get_user_money(id) - 10000
  83. cs_set_user_money(id,10000)
  84. }
  85. if(cs_get_user_money(id)<10000)
  86. {
  87. if(bank[id] < 10000 - cs_get_user_money(id))
  88. {
  89. cs_set_user_money(id,cs_get_user_money(id)+bank[id])
  90. bank[id]=0
  91. }
  92. else
  93. {
  94. bank[id]-= 10000 - cs_get_user_money(id)
  95. cs_set_user_money(id,10000)
  96. }
  97. }
  98. set_hudmessage(0, 255, 0, 0.7, 0.87, 0, 6.0, 0.1, 0.1, 0.2, next_hudchannel(id) )
  99. show_hudmessage(id,"%L",id,"MSG_BANK",bank[id])
  100. }
  101. }
  102.  
  103. public read_file2(id)
  104. {
  105. if(is_user_connected(id) && file_exists(configfile))
  106. {
  107. get_user_authid(id,authid[id],31)
  108. new read[32]
  109. new filepointer = fopen(configfile,"r")
  110. while(fgets(filepointer,read,31))
  111. {
  112. replace(read,31,"^n","")
  113. if(equali(read,authid[id]))
  114. {
  115. fgets(filepointer,read,31)
  116. if(cs_get_user_money(id)<10000)
  117. {
  118. if(cs_get_user_money(id) + str_to_num(read)<=10000)
  119. {
  120. cs_set_user_money(id,cs_get_user_money(id) + str_to_num(read))
  121. }
  122. if(cs_get_user_money(id) + str_to_num(read)>10000)
  123. {
  124. bank[id] += (str_to_num(read) + cs_get_user_money(id)) - 10000
  125. cs_set_user_money(id,10000)
  126. }
  127. }
  128. else
  129. {
  130. bank[id] += str_to_num(read)
  131. }
  132. break;
  133.  
  134. }
  135. }
  136. fclose(filepointer)
  137. }
  138. }
  139.  
  140. public save_money(id)
  141. {
  142. new string[32]
  143. format(string,31,"%d",bank[id])
  144. new i, line
  145. new filepointer = fopen(configfile,"r")
  146. if(filepointer)
  147. {
  148. new read[32]
  149. while(fgets(filepointer,read,31))
  150. {
  151. replace(read,31,"^n","")
  152. server_print("%d. %s",i,read)
  153. if(equali(read,authid[id]))
  154. {
  155. line=1
  156. break;
  157. }
  158. i++
  159. }
  160. }
  161. fclose(filepointer)
  162. if(!line) write_file(configfile,authid[id],i)
  163. write_file(configfile,string,i+1)
  164. }
  165.