Advertisement
Guest User

sistem chestii by senorel

a guest
Apr 10th, 2021
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.89 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <fun>
  5. #include <hamsandwich>
  6.  
  7. /* Credite The Kalu pentru codurile de amx_give */
  8.  
  9. #define NAME_LENGHT 33
  10. #define ADMIN_ACCESS ADMIN_RCON
  11.  
  12. new const TAG[] = "^x04[Laleagane.Ro]^x01"
  13.  
  14. /*------------------------------------------------*/
  15. new g_iUserSilverPoints[33], g_iUserGoldPoints[33]
  16. new File[128]
  17.  
  18. enum {
  19. SILVER_KILL,
  20. SILVER_KNIFE,
  21. SILVER_HE,
  22. SILVER_HS_BONUS,
  23. SILVER_BMB_PLANT,
  24. SILVER_BMB_DEFUSE,
  25. MAX_VARS
  26. }
  27.  
  28.  
  29. new Config[MAX_VARS]
  30.  
  31. public plugin_init()
  32. {
  33. register_plugin("Points System", "1.0", "SenorAMXX")
  34.  
  35. /*-----------[EVENTURI]-----------*/
  36. register_event( "DeathMsg", "event_DeathMsg", "a" )
  37.  
  38. /*-----------[CVARE]-----------*/
  39. Config[SILVER_KILL] = register_cvar("silver_kill_points", "10")
  40. Config[SILVER_KNIFE] = register_cvar("silver_knife_points", "50")
  41. Config[SILVER_HS_BONUS] = register_cvar("silver_hs_bonus", "50")
  42. Config[SILVER_HE] = register_cvar("silver_grenade_kill", "30")
  43. Config[SILVER_BMB_PLANT] = register_cvar("silver_bomb_planted", "35")
  44. Config[SILVER_BMB_DEFUSE] = register_cvar("silver_bomb_defused", "35")
  45.  
  46. register_clcmd("say /points", "CheckPoints")
  47. register_clcmd("say /pall", "ShowPointsPlayers")
  48.  
  49. register_concmd( "amx_give_gold" ,"give_gold", ADMIN_ACCESS, "< nume / @ALL / @T / @CT > < gold >" )
  50. register_concmd( "amx_give_silver" ,"give_silver", ADMIN_ACCESS, "< nume / @ALL / @T / @CT > < silver >" )
  51.  
  52. new DataDir[ 64 ]
  53. get_datadir( DataDir, 63 )
  54. format( File, 127, "%s/JahkoPuncte.dat", DataDir )
  55. }
  56.  
  57. public plugin_natives()
  58. {
  59. register_native("get_user_silver", "native_get_user_silver", 1)
  60. register_native("set_user_silver", "native_set_user_silver", 1)
  61. register_native("get_user_gold", "native_get_user_gold", 1)
  62. register_native("set_user_gold", "native_set_user_gold", 1)
  63. }
  64.  
  65. public native_get_user_silver(id) return g_iUserSilverPoints[id]
  66. public native_set_user_silver(id,silver) g_iUserSilverPoints[id] = silver
  67. public native_get_user_gold(id) return g_iUserGoldPoints[id]
  68. public native_set_user_gold(id,gold) g_iUserGoldPoints[id] = gold
  69.  
  70. public client_putinserver(id) LoadUserPoints(id)
  71. public client_disconnected(id) SaveUserPoints(id)
  72.  
  73.  
  74. public event_DeathMsg()
  75. {
  76. new iKiller = read_data(1)
  77. new iVictim = read_data(2)
  78. new iHS = read_data(3)
  79. new weapon = get_user_weapon(iKiller)
  80.  
  81. if(!is_user_connected(iKiller) || !is_user_connected(iVictim))
  82. {
  83. return
  84. }
  85.  
  86. if(iKiller == iVictim)
  87. {
  88. return
  89. }
  90.  
  91. if(weapon == CSW_KNIFE)
  92. {
  93. if(iHS)
  94. {
  95. new a = get_pcvar_num(Config[SILVER_KNIFE])
  96. new b = get_pcvar_num(Config[SILVER_HS_BONUS])
  97. new sum = a+b
  98. g_iUserSilverPoints[iKiller] += sum
  99. print_color(iKiller, "%s You got ^x03[%d]^x01 silver points for giving HS with the KNIFE!",TAG,sum)
  100. SaveUserPoints(iKiller)
  101. }
  102. else
  103. {
  104. new a = get_pcvar_num(Config[SILVER_KNIFE])
  105. g_iUserSilverPoints[iKiller] += a
  106. print_color(iKiller, "%s You got ^x03[%d]^x01 silver points for killing someone with knife!",TAG,a)
  107. SaveUserPoints(iKiller)
  108. }
  109. }
  110.  
  111. if(weapon == CSW_HEGRENADE)
  112. {
  113. new a = get_pcvar_num(Config[SILVER_HE])
  114.  
  115. g_iUserSilverPoints[iKiller] += a
  116. print_color(iKiller, "%s You got ^x03[%d]^x01 silver points for killing someone with Grenade!",TAG,a)
  117. SaveUserPoints(iKiller)
  118. }
  119.  
  120. if(iHS && !(weapon == CSW_KNIFE))
  121. {
  122. new a = get_pcvar_num(Config[SILVER_KILL])
  123. new b = get_pcvar_num(Config[SILVER_HS_BONUS])
  124. new sum = a+b
  125. g_iUserSilverPoints[iKiller] += sum
  126. print_color(iKiller, "%s You got ^x03[%d]^x01 silver points for HS!",TAG,sum)
  127. SaveUserPoints(iKiller)
  128. }
  129. else
  130. {
  131. new a = get_pcvar_num(Config[SILVER_KILL])
  132. g_iUserSilverPoints[iKiller] += a
  133. print_color(iKiller, "%s You got ^x03[%d]^x01 silver points for killing someone!",TAG,a)
  134. SaveUserPoints(iKiller)
  135. }
  136. }
  137.  
  138.  
  139. public bomb_planted(iExploder)
  140. {
  141. new a = get_pcvar_num(Config[SILVER_BMB_PLANT])
  142. new name[NAME_LENGHT]
  143. get_user_name(iExploder, name, charsmax(name))
  144. if(!is_user_connected(iExploder)) return PLUGIN_CONTINUE
  145.  
  146. g_iUserSilverPoints[iExploder] += get_pcvar_num(Config[SILVER_BMB_PLANT])
  147. print_color(0, "%s ^x03%s^x01 got ^x03[%d]^x01 silver points for planting the bomb",TAG,name,a)
  148. SaveUserPoints(iExploder)
  149. return PLUGIN_CONTINUE
  150. }
  151.  
  152. public bomb_defused(iDefuser)
  153. {
  154. new a = get_pcvar_num(Config[SILVER_BMB_DEFUSE])
  155. new name[33]
  156. get_user_name(iDefuser, name, charsmax(name))
  157. if(!is_user_connected(iDefuser)) return PLUGIN_CONTINUE
  158.  
  159. g_iUserSilverPoints[iDefuser] += get_pcvar_num(Config[SILVER_BMB_DEFUSE])
  160. print_color(0, "%s ^x03%s^x01 got ^x03[%d]^x01 for defusing the bomb",TAG,name,a)
  161. SaveUserPoints(iDefuser)
  162. return PLUGIN_CONTINUE
  163. }
  164.  
  165. public CheckPoints(id)
  166. {
  167. new a = g_iUserSilverPoints[id]
  168. new b = g_iUserGoldPoints[id]
  169. print_color(id, "%s You have ^x03[%d]^x01 silver points and ^x03[%d]^x01 gold points",TAG,a,b)
  170. }
  171.  
  172. public SaveUserPoints(id) {
  173.  
  174. new name[NAME_LENGHT]
  175. get_user_name(id, name, charsmax(name))
  176.  
  177. static Data[1024]
  178. new x = g_iUserSilverPoints[id]
  179. new y = g_iUserGoldPoints[id]
  180. formatex(Data, sizeof(Data) - 1, "^"%d^" ^"%d^"",x,y)
  181.  
  182. new Save[512]
  183. format(Save, 511, "^"%s^" %s", name, Data)
  184.  
  185. new Line[128], Linie, IsPlayer = false, Arg1[32]
  186.  
  187. new FileOpen = fopen(File, "rt")
  188.  
  189. while(!feof(FileOpen)) {
  190.  
  191. fgets(FileOpen, Line, 127)
  192. trim(Line)
  193.  
  194. parse(Line, Arg1, 31)
  195.  
  196. if(equali( Arg1, name)) {
  197.  
  198. write_file(File, Save, Linie)
  199. IsPlayer = true
  200. break
  201. }
  202.  
  203. Linie++
  204. }
  205.  
  206. fclose(FileOpen)
  207.  
  208. if(!IsPlayer) {
  209.  
  210. write_file(File, Save, -1)
  211. }
  212. }
  213. public ShowPointsPlayers(id) {
  214.  
  215. new iPlayers[32], iPlayersNum, szName[40], szMotd[1024], len
  216.  
  217. len = formatex(szMotd, charsmax(szMotd), "<html> ")
  218. get_players(iPlayers, iPlayersNum)
  219.  
  220. for( new i = 0 ; i < iPlayersNum ; i++ ) {
  221. if(is_user_bot(iPlayers[i])) return
  222. new b = g_iUserGoldPoints[iPlayers[i]]
  223. new a = g_iUserSilverPoints[iPlayers[i]]
  224. get_user_name( iPlayers[ i ], szName, charsmax( szName ) )
  225. len += formatex( szMotd[ len ], charsmax( szMotd ) - len, "<body style=^"background-color:dark;^"><br><center> <font color=white><bold>Name:</bold></font> <font color=yellow><bold>%s</bold></font> | <font color=grey><bold>Silver:</bold></font> <font color=#8A2BE2>%d</font> | <font color=#grey><bold>Gold:</bold></font> <font color=#8A2BE2>%d</font></body></center><br>", szName,a,b);
  226. }
  227.  
  228. formatex(szMotd[len], charsmax(szMotd) - len, "</html>" );
  229. show_motd(id, szMotd);
  230. }
  231.  
  232. public LoadUserPoints(id) {
  233.  
  234. new name[NAME_LENGHT]
  235. get_user_name(id, name, charsmax(name))
  236.  
  237. new Line[128], IsPlayer = false, Arg1[32], Arg2[32], Arg3[32]
  238.  
  239. new FileOpen = fopen(File, "rt")
  240.  
  241. while(!feof(FileOpen)) {
  242.  
  243. fgets(FileOpen, Line, 127)
  244. trim(Line)
  245.  
  246. parse(Line, Arg1, 31, Arg2, 31, Arg3, 31)
  247.  
  248. if(equali(Arg1, name)) {
  249.  
  250. g_iUserSilverPoints[id] = str_to_num(Arg2)
  251. g_iUserGoldPoints[id] = str_to_num(Arg3)
  252. IsPlayer = true
  253. break
  254. }
  255. }
  256.  
  257. fclose(FileOpen)
  258.  
  259. if(!IsPlayer) {
  260.  
  261. g_iUserSilverPoints[id] = 1
  262. g_iUserGoldPoints[id] = 1
  263. }
  264. }
  265.  
  266.  
  267. public give_gold( id ) {
  268.  
  269. if( !( get_user_flags( id ) & ADMIN_ACCESS ) ) {
  270.  
  271. client_cmd( id, "echo Nu ai acces la aceasta comanda!" )
  272. return 1
  273. }
  274.  
  275. new name[NAME_LENGHT]
  276. get_user_name(id, name, charsmax(name))
  277.  
  278. new szFirstArg[ 32 ], szSecondArg[ 10 ];
  279.  
  280. read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 )
  281. read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 )
  282.  
  283. if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) ) {
  284.  
  285. client_cmd( id, "echo amx_give_gold < nume / @ALL / @T / @CT > < gold >" )
  286. return 1
  287. }
  288.  
  289. new iPlayers[ 32 ]
  290. new iPlayersNum
  291.  
  292. new iPoints = str_to_num( szSecondArg )
  293. if( iPoints <= 0 ) {
  294.  
  295. client_cmd( id, "echo Valoare Punctelor trebuie sa fie mai mare decat 0!" )
  296. return 1
  297. }
  298.  
  299. if( szFirstArg[ 0 ] == '@' ) {
  300.  
  301. switch ( szFirstArg[ 1 ] ) {
  302.  
  303. case 'A': {
  304.  
  305. if( equal( szFirstArg, "@ALL" ) ) {
  306.  
  307. get_players( iPlayers, iPlayersNum, "ch" )
  308. for( new i = 0; i < iPlayersNum ; i++ )
  309. g_iUserGoldPoints[ iPlayers[ i ] ] += iPoints
  310.  
  311. print_color(0, "%s Admin ^x03[%s]^x01 gave to all players ^03[%i]^01 gold !",TAG, name, iPoints)
  312. return 1
  313. }
  314. }
  315.  
  316. case 'T': {
  317.  
  318. if( equal( szFirstArg, "@T" ) ) {
  319.  
  320. get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" )
  321. if( iPlayersNum == 0 ) {
  322.  
  323. client_cmd( id, "echo Nu se afla niciun jucator in aceasta echipa!" )
  324. return 1
  325. }
  326.  
  327. for( new i = 0; i < iPlayersNum ; i++ )
  328. g_iUserGoldPoints[ iPlayers[ i ] ] += iPoints
  329.  
  330. print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03T^x01 team ^03[%i]^01 gold !",TAG, name, iPoints)
  331. return 1
  332. }
  333. }
  334.  
  335. case 'C': {
  336.  
  337. if( equal( szFirstArg, "@CT" ) ) {
  338.  
  339. get_players( iPlayers, iPlayersNum, "ceh", "CT" )
  340. if( iPlayersNum == 0 ) {
  341.  
  342. client_cmd( id, "echo Nu se afla niciun jucator in aceasta echipa!" )
  343. return 1
  344. }
  345.  
  346. for( new i = 0; i < iPlayersNum ; i++ )
  347. g_iUserGoldPoints[ iPlayers[ i ] ] += iPoints
  348. print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03CT^x01 team ^03[%i]^01 gold !",TAG, name, iPoints)
  349.  
  350. return 1
  351. }
  352. }
  353. }
  354. }
  355.  
  356.  
  357. new iPlayer = cmd_target( id, szFirstArg, 8 )
  358. if( !iPlayer ) {
  359.  
  360. client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg )
  361. return 1
  362. }
  363.  
  364. g_iUserGoldPoints[ iPlayer ] += iPoints
  365.  
  366. new szName[ 32 ]
  367. get_user_name( iPlayer, szName, sizeof ( szName ) -1 )
  368.  
  369. print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03[%s]^x01 -> ^03[%i]^01 gold !",TAG, name, szName, iPoints)
  370.  
  371. return 1
  372. }
  373.  
  374.  
  375. public give_silver( id ) {
  376.  
  377. if( !( get_user_flags( id ) & ADMIN_ACCESS ) ) {
  378.  
  379. client_cmd( id, "echo Nu ai acces la aceasta comanda!" )
  380. return 1
  381. }
  382.  
  383. new name[NAME_LENGHT]
  384. get_user_name(id, name, charsmax(name))
  385.  
  386. new szFirstArg[ 32 ], szSecondArg[ 10 ]
  387.  
  388. read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 )
  389. read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 )
  390.  
  391. if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) ) {
  392.  
  393. client_cmd( id, "echo amx_give_silver < nume / @ALL / @T / @CT > < silver >" )
  394. return 1;
  395. }
  396.  
  397. new iPlayers[ 32 ];
  398. new iPlayersNum;
  399.  
  400. new iPoints = str_to_num( szSecondArg );
  401. if( iPoints <= 0 ) {
  402.  
  403. client_cmd( id, "echo Valoare Punctelor trebuie sa fie mai mare decat 0!" );
  404. return 1;
  405. }
  406.  
  407. if( szFirstArg[ 0 ] == '@' ) {
  408.  
  409. switch ( szFirstArg[ 1 ] ) {
  410.  
  411. case 'A': {
  412.  
  413. if( equal( szFirstArg, "@ALL" ) ) {
  414.  
  415. get_players( iPlayers, iPlayersNum, "ch" )
  416. for( new i = 0; i < iPlayersNum ; i++ )
  417. g_iUserSilverPoints[ iPlayers[ i ] ] += iPoints
  418.  
  419. print_color(0, "%s Admin ^x03[%s]^x01 gave to all players ^03[%i]^01 silver !",TAG, name, iPoints)
  420. return 1
  421. }
  422. }
  423.  
  424. case 'T': {
  425.  
  426. if( equal( szFirstArg, "@T" ) ) {
  427.  
  428. get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" )
  429. if( iPlayersNum == 0 ) {
  430.  
  431. client_cmd( id, "echo Nu se afla niciun jucator in aceasta echipa!" )
  432. return 1
  433. }
  434.  
  435. for( new i = 0; i < iPlayersNum ; i++ )
  436. g_iUserSilverPoints[ iPlayers[ i ] ] += iPoints
  437.  
  438. print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03T^x01 team ^03[%i]^01 silver !",TAG, name, iPoints)
  439. return 1
  440. }
  441. }
  442.  
  443. case 'C': {
  444.  
  445. if( equal( szFirstArg, "@CT" ) ) {
  446.  
  447. get_players( iPlayers, iPlayersNum, "ceh", "CT" )
  448. if( iPlayersNum == 0 ) {
  449.  
  450. client_cmd( id, "echo Nu se afla niciun jucator in aceasta echipa!" )
  451. return 1
  452. }
  453.  
  454. for( new i = 0; i < iPlayersNum ; i++ )
  455. g_iUserSilverPoints[ iPlayers[ i ] ] += iPoints
  456. print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03CT^x01 team ^03[%i]^01 silver !",TAG, name, iPoints)
  457.  
  458. return 1
  459. }
  460. }
  461. }
  462. }
  463.  
  464.  
  465. new iPlayer = cmd_target( id, szFirstArg, 8 )
  466. if( !iPlayer ) {
  467.  
  468. client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg )
  469. return 1
  470. }
  471.  
  472. g_iUserSilverPoints[ iPlayer ] += iPoints;
  473.  
  474. new szName[ 32 ]
  475. get_user_name( iPlayer, szName, sizeof ( szName ) -1 )
  476.  
  477. print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03[%s]^x01 -> ^03[%i]^01 gold !",TAG, name, szName, iPoints)
  478.  
  479. return 1
  480. }
  481.  
  482. stock print_color(id, const message[], {Float,Sql,Result,_}:...)
  483. {
  484. new Buffer[128],Buffer2[128]
  485. new players[32], index, num, i
  486.  
  487. formatex(Buffer2, sizeof Buffer2 - 1, "%s",message)
  488. vformat(Buffer, sizeof Buffer - 1, Buffer2, 3)
  489. get_players(players, num,"c")
  490.  
  491. if(id)
  492. {
  493. message_begin(MSG_ONE,get_user_msgid("SayText"),_,id)
  494. write_byte(id)
  495. write_string(Buffer)
  496. message_end()
  497. }
  498. else
  499. {
  500. for( i = 0; i < num;i++ )
  501. {
  502. index = players[i]
  503. if( !is_user_connected(index)) continue;
  504.  
  505. message_begin(MSG_ONE,get_user_msgid("SayText"),_,index)
  506. write_byte(index)
  507. write_string( Buffer )
  508. message_end()
  509. }
  510. }
  511. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement