Advertisement
Guest User

Untitled

a guest
Jan 31st, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 33.41 KB | None | 0 0
  1. #include < amxmodx >
  2. #include < amxmisc >
  3. #include < cstrike >
  4. #include < fakemeta >
  5. #include < hamsandwich >
  6. #include < nvault >
  7. #include < fun >
  8.  
  9. #pragma semicolon 1
  10.  
  11.  
  12. #define PLUGIN "Furien Credits System AIO + FCS Shop"
  13. #define VERSION "1.3.3Beta"
  14.  
  15. #define ONE_DAY_IN_SECONDS 86400
  16. #define TASK_PTR 06091993
  17. #define FCS_TEAM_FURIEN CS_TEAM_T
  18. #define FCS_TEAM_ANTIFURIEN CS_TEAM_CT
  19.  
  20. enum Color
  21. {
  22. NORMAL = 1, // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
  23. GREEN, // Culoare Verde.
  24. TEAM_COLOR, // Culoare Rosu, Albastru, Gri.
  25. GREY, // Culoarea Gri.
  26. RED, // Culoarea Rosu.
  27. BLUE, // Culoarea Albastru.
  28. };
  29.  
  30. new TeamName[ ][ ] =
  31. {
  32. "",
  33. "TERRORIST",
  34. "CT",
  35. "SPECTATOR"
  36. };
  37.  
  38. new const g_szTag[ ] = "[Furien Credits]";
  39. new const g_szGiveCreditsFlag[ ] = "a";
  40. new g_szMenuName[ ] = "\rFCS\y SHOP";
  41.  
  42. enum _:iCvars
  43. {
  44. ENABLE,
  45.  
  46. NADES_PRICE,
  47. NADES_TO,
  48.  
  49. HP_PRICE,
  50. HP_AMOUNT,
  51. HP_TO,
  52.  
  53. AP_PRICE,
  54. AP_AMOUNT,
  55. AP_TO,
  56.  
  57. DEAGLE_PRICE,
  58. DEAGLE_BACKPACK_AMMO,
  59. DEAGLE_TO,
  60.  
  61. SPEED_PRICE,
  62. SPEED_AMOUNT,
  63. SPEED_DURATION,
  64. SPEED_TO,
  65.  
  66. GRAVITY_PRICE,
  67. GRAVITY_AMOUNT,
  68. GRAVITY_DURATION,
  69. GRAVITY_TO
  70.  
  71.  
  72. }
  73.  
  74. enum _:WhatUserHas
  75. {
  76. SPEED,
  77. GRAVITY,
  78. }
  79.  
  80. new g_iCvar[ iCvars ];
  81. new g_iCvarPruneDays;
  82. new g_iCvarEntry;
  83. new g_iCvarRetire;
  84.  
  85. new g_iCvarPTREnable;
  86. new g_iCvarPTRMinutes;
  87. new g_iCvarPTRCredits;
  88.  
  89. new g_iCvarKREnable;
  90. new g_iCvarKRCredits;
  91. new g_iCvarKRHSCredits;
  92.  
  93. new g_iCvarTSEnable;
  94. new g_iCvarTSMaxCredits;
  95.  
  96. new g_iCvarWTREnable;
  97. new g_iCvarWTRFurien;
  98. new g_iCvarWTRAnti;
  99.  
  100. new g_szName[ 33 ][ 32 ];
  101. new g_iUserCredits[ 33 ];
  102. new g_iUserTime[ 33 ];
  103. new g_iUserRetired[ 33 ];
  104.  
  105. new bool:g_bUserHas[ 33 ][ WhatUserHas ];
  106.  
  107. new iVault;
  108. new g_iMaxPlayers;
  109.  
  110. // Do not modify this.
  111. new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
  112.  
  113.  
  114. public plugin_init( )
  115. {
  116. register_plugin( PLUGIN, VERSION, "Askhanar" );
  117. register_cvar( "fcs_version_aio_shop", VERSION, FCVAR_SERVER | FCVAR_SPONLY );
  118.  
  119. g_iCvarPruneDays = register_cvar( "fcs_prunedays", "15" );
  120. g_iCvarEntry = register_cvar( "fcs_entry_credits", "300" );
  121. g_iCvarRetire = register_cvar( "fcs_maxretrive", "0" );
  122.  
  123. g_iCvarPTREnable = register_cvar( "fcs_ptr_enable", "1" );
  124. g_iCvarPTRMinutes = register_cvar( "fcs_ptr_minutes", "5" );
  125. g_iCvarPTRCredits = register_cvar( "fcs_ptr_credits", "15" );
  126.  
  127. g_iCvarKREnable = register_cvar( "fcs_kr_enable", "1" );
  128. g_iCvarKRCredits = register_cvar( "fcs_kr_credits", "7" );
  129. g_iCvarKRHSCredits = register_cvar( "fcs_kr_hscredits", "3" );//( bonus, fcs_kr_credits + fcs_kr_hscredits )
  130.  
  131. g_iCvarTSEnable = register_cvar("fcs_transfer_enable", "1" );
  132. g_iCvarTSMaxCredits = register_cvar("fcs_transfer_maxcredits", "50" );
  133.  
  134. g_iCvarWTREnable = register_cvar( "fcs_wtr_enable", "1" );
  135. g_iCvarWTRFurien = register_cvar( "fcs_wtr_furien", "12" );
  136. g_iCvarWTRAnti = register_cvar( "fcs_wtr_antifurien", "20" );
  137.  
  138. g_iCvar[ ENABLE ] = register_cvar( "fcsshop_enable", "1" );
  139.  
  140. g_iCvar[ NADES_PRICE ] = register_cvar( "fcsshop_nades_price", "25" );
  141. g_iCvar[ NADES_TO ] = register_cvar( "fcsshop_nades_team", "1" );
  142.  
  143. g_iCvar[ HP_PRICE ] = register_cvar( "fcsshop_hp_price", "60" );
  144. g_iCvar[ HP_AMOUNT ] = register_cvar( "fcsshop_hp_amount", "300" );
  145. g_iCvar[ HP_TO ] = register_cvar( "fcsshop_hp_team", "3" );
  146.  
  147. g_iCvar[ AP_PRICE ] = register_cvar( "fcsshop_ap_price", "55" );
  148. g_iCvar[ AP_AMOUNT ] = register_cvar( "fcsshop_ap_amount", "500" );
  149. g_iCvar[ AP_TO ] = register_cvar( "fcsshop_ap_team", "3" );
  150.  
  151. g_iCvar[ DEAGLE_PRICE ] = register_cvar( "fcsshop_deagle_price", "80" );
  152. g_iCvar[ DEAGLE_BACKPACK_AMMO ] = register_cvar( "fcsshop_deagle_ammo", "21" );
  153. g_iCvar[ DEAGLE_TO ] = register_cvar( "fcsshop_deagle_team", "1" );
  154.  
  155. g_iCvar[ SPEED_PRICE ] = register_cvar( "fcsshop_speed_price", "75" );
  156. g_iCvar[ SPEED_AMOUNT ] = register_cvar( "fcsshop_speed_amount", "500" );
  157. g_iCvar[ SPEED_DURATION ] = register_cvar( "fcsshop_speed_duration", "1" );
  158. g_iCvar[ SPEED_TO ] = register_cvar( "fcsshop_speed_team", "2" );
  159.  
  160. g_iCvar[ GRAVITY_PRICE ] = register_cvar( "fcsshop_gravity_price", "80" );
  161. g_iCvar[ GRAVITY_AMOUNT ] = register_cvar( "fcsshop_gravity_amount", "300" );
  162. g_iCvar[ GRAVITY_DURATION ] = register_cvar( "fcsshop_gravity_duration", "1" );
  163. g_iCvar[ GRAVITY_TO ] = register_cvar( "fcsshop_gravity_team", "2" );
  164.  
  165. register_clcmd( "say", "ClCmdSay" );
  166. register_clcmd( "say_team", "ClCmdSay" );
  167.  
  168. register_clcmd( "say /depozit", "ClCmdSayDepozit" );
  169. register_clcmd( "say /deposit", "ClCmdSayDepozit" );
  170. register_clcmd( "say_team /depozit", "ClCmdSayDepozit" );
  171. register_clcmd( "say_team /deposit", "ClCmdSayDepozit" );
  172.  
  173. register_clcmd( "say /retrage", "ClCmdSayRetrage" );
  174. register_clcmd( "say /withdraw", "ClCmdSayRetrage" );
  175. register_clcmd( "say_team /retrage", "ClCmdSayRetrage" );
  176. register_clcmd( "say_team /withdraw", "ClCmdSayRetrage" );
  177.  
  178. register_clcmd( "say fcshop", "ClCmdSayShop" );
  179. register_clcmd( "say_team fcshop", "ClCmdSayShop" );
  180. register_clcmd( "say /fcshop", "ClCmdSayShop" );
  181. register_clcmd( "say_team /fcshop", "ClCmdSayShop" );
  182.  
  183. register_clcmd( "fcs_credite", "ClCmdCredits" );
  184. register_clcmd( "fcs_credits", "ClCmdCredits" );
  185.  
  186. register_clcmd( "donate", "ClCmdFcsDonate" );
  187. register_clcmd( "transfer", "ClCmdFcsDonate" );
  188.  
  189. register_clcmd( "amx_give_credits", "ClCmdGiveCredits" );
  190. register_clcmd( "amx_take_credits", "ClCmdTakeCredits" );
  191.  
  192. RegisterHam( Ham_Spawn, "player", "ham_SpawnPlayerPost", true );
  193. RegisterHam( Ham_Killed, "player", "ham_PlayerKilledPre",true );
  194. RegisterHam( Ham_Player_ResetMaxSpeed, "player", "ham_PlayerResetMaxSpeedPre", true );
  195. register_forward( FM_ClientUserInfoChanged, "Fwd_ClientUserInfoChanged" );
  196.  
  197. register_event( "DeathMsg","ev_DeathMsg", "a" );
  198. register_event( "SendAudio", "ev_SendAudioTerWin", "a", "2=%!MRAD_terwin" );
  199. register_event( "SendAudio", "ev_SendAudioCtWin", "a", "2=%!MRAD_ctwin" );
  200.  
  201.  
  202. iVault = nvault_open( "FurienCreditsSystem" );
  203. if( iVault == INVALID_HANDLE )
  204. set_fail_state( "nValut returned invalid handle!" );
  205.  
  206. set_task( 1.0, "task_PTRFunctions", TASK_PTR, _, _, "b", 0 );
  207. g_iMaxPlayers = get_maxplayers( );
  208.  
  209. }
  210.  
  211. public plugin_natives()
  212. {
  213.  
  214. register_library( "fcs" );
  215. register_native( "fcs_get_user_credits", "_fcs_get_user_credits" );
  216. register_native( "fcs_set_user_credits", "_fcs_set_user_credits" );
  217.  
  218. }
  219.  
  220. public _fcs_get_user_credits( iPlugin, iParams )
  221. {
  222. return g_iUserCredits[ get_param( 1 ) ];
  223. }
  224.  
  225. public _fcs_set_user_credits( iPlugin, iParams )
  226. {
  227. new id = get_param( 1 );
  228. g_iUserCredits[ id ] = max( 0, get_param( 2 ) );
  229. SaveCredits( id );
  230. return g_iUserCredits[ id ];
  231. }
  232.  
  233. public client_putinserver( id )
  234. {
  235. if( is_user_bot( id ) )
  236. return PLUGIN_CONTINUE;
  237.  
  238. get_user_name( id, g_szName[ id ], sizeof ( g_szName[] ) -1 );
  239. LoadCredits( id );
  240.  
  241. g_iUserTime[ id ] = 0;
  242. g_iUserRetired[ id ] = 0;
  243. g_bUserHas[ id ][ SPEED ] = false;
  244. g_bUserHas[ id ][ GRAVITY ] = false;
  245.  
  246. return PLUGIN_CONTINUE;
  247.  
  248. }
  249.  
  250. public client_disconnect( id )
  251. {
  252. if( is_user_bot( id ) )
  253. return PLUGIN_CONTINUE;
  254.  
  255. SaveCredits( id );
  256. g_iUserRetired[ id ] = 0;
  257. g_bUserHas[ id ][ SPEED ] = false;
  258. g_bUserHas[ id ][ GRAVITY ] = false;
  259.  
  260. return PLUGIN_CONTINUE;
  261.  
  262. }
  263.  
  264. public ClCmdSay( id )
  265. {
  266. static szArgs[192];
  267. read_args( szArgs, sizeof ( szArgs ) -1 );
  268.  
  269. if( !szArgs[ 0 ] )
  270. return 0;
  271.  
  272. new szCommand[ 15 ];
  273. remove_quotes( szArgs[ 0 ] );
  274.  
  275. if( equal( szArgs, "/credite", strlen( "/credite" ) )
  276. || equal( szArgs, "/credits", strlen( "/credits" ) ) )
  277. {
  278. replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
  279. formatex( szCommand, sizeof ( szCommand ) -1, "fcs_%s", szArgs );
  280. client_cmd( id, szCommand );
  281. return 1;
  282. }
  283. else if( equal( szArgs, "/transfer", strlen( "/transfer" ) )
  284. || equal( szArgs, "/donate", strlen( "/donate" ) ) )
  285. {
  286. replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
  287. formatex( szCommand, sizeof ( szCommand ) -1, "%s", szArgs );
  288. client_cmd( id, szCommand );
  289. return 1;
  290. }
  291.  
  292. return 0;
  293. }
  294.  
  295. public ClCmdCredits( id )
  296. {
  297. if( !is_user_connected( id ) )
  298. return 1;
  299.  
  300. new szArg[ 32 ];
  301. read_argv( 1, szArg, sizeof ( szArg ) -1 );
  302.  
  303. if( equal( szArg, "" ) )
  304. {
  305.  
  306. ColorChat( id, RED, "^x04%s^x01 Ai^x03 %i^x01 credite.", g_szTag, g_iUserCredits[ id ] );
  307. return 1;
  308. }
  309.  
  310. new iPlayer = cmd_target( id, szArg, 8 );
  311. if( !iPlayer || !is_user_connected( iPlayer ) )
  312. {
  313. ColorChat( id, RED,"^x04%s^x01 Jucatorul specificat nu a fost gasit!", g_szTag, szArg );
  314. return 1;
  315. }
  316.  
  317. new szName[ 32 ];
  318. get_user_name( iPlayer, szName, sizeof ( szName ) -1 );
  319. ColorChat( id, RED,"^x04%s^x01 Jucatorul^x03 %s^x01 are^x03 %i^x01 credit%s", g_szTag, szName, g_iUserCredits[ iPlayer ], g_iUserCredits[ iPlayer ] == 1 ? "." : "e." );
  320.  
  321. return 1;
  322.  
  323. }
  324.  
  325. public ClCmdSayDepozit( id)
  326. {
  327.  
  328. if( !is_user_connected( id ) )
  329. return 1;
  330.  
  331. new iTeam = get_user_team( id );
  332.  
  333. if( 1 <= iTeam <= 2 )
  334. {
  335. new iMoney = cs_get_user_money( id );
  336. if( iMoney >= 16000 )
  337. {
  338.  
  339. ColorChat( id, RED, "^x04%s^x01 Ai depozitat^x03 16000$^x01 si ai primit^x03 1^x01 credit.", g_szTag );
  340. cs_set_user_money( id, iMoney - 16000 );
  341. g_iUserCredits[ id ] += 1;
  342.  
  343. SaveCredits( id );
  344. return 1;
  345. }
  346. else
  347. {
  348. ColorChat( id, RED, "^x04%s^x01 Iti trebuie^x03 16000$^x01 pentru a putea depozita.", g_szTag );
  349. return 1;
  350. }
  351. }
  352.  
  353. return 1;
  354.  
  355. }
  356.  
  357. public ClCmdSayRetrage( id)
  358. {
  359.  
  360. new iTeam = get_user_team( id );
  361.  
  362. if( 1 <= iTeam <= 2 )
  363. {
  364.  
  365. if( g_iUserCredits[ id ] > 0 )
  366. {
  367. new iMaxRetrieve = get_pcvar_num( g_iCvarRetire );
  368. if( iMaxRetrieve > 0 )
  369. {
  370. if( g_iUserRetired[ id ] >= iMaxRetrieve )
  371. {
  372. ColorChat( id, RED, "^x04%s^x01 Ai retras deja^x03 %i^x01 credit%s runda asta^x01.", g_szTag, iMaxRetrieve, iMaxRetrieve == 1 ? "" : "e" );
  373. return PLUGIN_HANDLED;
  374. }
  375. }
  376.  
  377. new iMoney = cs_get_user_money( id );
  378.  
  379. ColorChat( id, RED, "^x04%s^x01 Ai retras^x03 1^x01 credit si, ai primi^x03 16000$^x01.", g_szTag );
  380. cs_set_user_money( id, iMoney + 16000 );
  381.  
  382. g_iUserCredits[ id ] -=1;
  383. g_iUserRetired[ id ]++;
  384.  
  385. SaveCredits( id );
  386.  
  387. if( ( iMoney + 16000 ) > 16000 )
  388. {
  389. ColorChat( id, RED, "^x04%s^x03 ATENTIE^x01, ai^x03 %i$^x01 !", g_szTag, iMoney + 16000 );
  390. ColorChat( id, RED, "^x04%s^x01 La spawn, vei pierde tot ce depaseste suma de^x03 16000$^x01.", g_szTag );
  391. return 1;
  392. }
  393. }
  394. else
  395. {
  396. ColorChat(id, RED, "^x04%s^x03 NU^x01 ai ce sa retragi, ai^x03 0^x01 credite.", g_szTag );
  397. return 1;
  398. }
  399.  
  400. }
  401.  
  402. return 1;
  403.  
  404. }
  405.  
  406. public ClCmdSayShop( id )
  407. {
  408.  
  409.  
  410. if( get_pcvar_num( g_iCvar[ ENABLE ] ) == 0 )
  411. {
  412. ColorChat( id, RED, "^x04%s^x03 Comanda dezactivata de catre server!", g_szTag );
  413. return PLUGIN_HANDLED;
  414. }
  415.  
  416. if( !is_user_alive( id ) )
  417. {
  418. ColorChat( id, RED, "^x04%s^x03 Trebuie sa fii in viata!", g_szTag );
  419. return PLUGIN_HANDLED;
  420. }
  421.  
  422.  
  423. ShopMenu( id );
  424. return PLUGIN_HANDLED;
  425.  
  426. }
  427.  
  428. public ShopMenu( id )
  429. {
  430. new szMenuName[ 64 ];
  431. formatex( szMenuName, sizeof ( szMenuName ) -1, "%s^n\yCredite: \r%i", g_szMenuName, g_iUserCredits[ id ] );
  432. new iMenu = menu_create( szMenuName, "ShopMenuHandler" );
  433. new iCallBack = menu_makecallback( "CallBackShop" );
  434.  
  435. new szBuffer[ 6 ][ 64 ], szBufferKey[ 5 ], iBufferKey = 1;
  436. formatex( szBuffer[ 0 ], sizeof ( szBuffer[ ] ) -1, "\r[ \yFULL\r ] \wGrenades\y [\r %iC\y ]", get_pcvar_num( g_iCvar[ NADES_PRICE ] ) );
  437. formatex( szBuffer[ 1 ], sizeof ( szBuffer[ ] ) -1, "\r[ \y%i\r ] \wHP\y [\r %iC\y ]", get_pcvar_num( g_iCvar[ HP_AMOUNT ] ), get_pcvar_num( g_iCvar[ HP_PRICE ] ) );
  438. formatex( szBuffer[ 2 ], sizeof ( szBuffer[ ] ) -1, "\r[ \y%i\r ] \wAP\y [\r %iC\y ]", get_pcvar_num( g_iCvar[ AP_AMOUNT ] ), get_pcvar_num( g_iCvar[ AP_PRICE ] ) );
  439. formatex( szBuffer[ 3 ], sizeof ( szBuffer[ ] ) -1, "\r[ \y%i AMMO\r ] \wDeagle\y [\r %iC\y ]", get_pcvar_num( g_iCvar[ DEAGLE_BACKPACK_AMMO ] ), get_pcvar_num( g_iCvar[ DEAGLE_PRICE ] ) );
  440. formatex( szBuffer[ 4 ], sizeof ( szBuffer[ ] ) -1, "\r[ \y%.1f\r ] \wSpeed\y [\r %iC\y ]", float( get_pcvar_num( g_iCvar[ SPEED_AMOUNT ] ) ), get_pcvar_num( g_iCvar[ SPEED_PRICE ] ) );
  441. formatex( szBuffer[ 5 ], sizeof ( szBuffer[ ] ) -1, "\r[ \y%i\r ] \wGravity\y [\r %iC\y ]", get_pcvar_num( g_iCvar[ GRAVITY_AMOUNT ] ), get_pcvar_num( g_iCvar[ GRAVITY_PRICE ] ) );
  442.  
  443. for( new i = 0; i < 6; i++ )
  444. {
  445. formatex( szBufferKey, sizeof ( szBufferKey ) -1, "%i", iBufferKey );
  446. menu_additem( iMenu, szBuffer[ i ], szBufferKey, _, iCallBack );
  447.  
  448. iBufferKey++;
  449. }
  450.  
  451. menu_setprop( iMenu, MPROP_EXITNAME, "\wIesire" );
  452.  
  453. menu_display( id, iMenu, 0 );
  454.  
  455. }
  456.  
  457. /*=======================================================================================s=P=u=f=?*/
  458.  
  459. public ShopMenuHandler( id, iMenu, iItem )
  460. {
  461. if( iItem == MENU_EXIT )
  462. {
  463. menu_destroy( iMenu );
  464. return 1PLUGIN_HANDLED;
  465. }
  466.  
  467. new data[ 6 ], iName[ 64 ];
  468. new iaccess, callback;
  469.  
  470. menu_item_getinfo( iMenu, iItem, iaccess, data, 5, iName, 63, callback );
  471.  
  472. new key = str_to_num( data );
  473. //new page = floatround( str_to_float( data ) / 7.0001, floatround_floor );
  474.  
  475. menu_destroy( iMenu );
  476. switch( key )
  477. {
  478. case 1:
  479. {
  480. new iNeededCredits;
  481. iNeededCredits = get_pcvar_num( g_iCvar[ NADES_PRICE ] );
  482.  
  483. if( g_iUserCredits[ id ] < iNeededCredits )
  484. {
  485. ColorChat( id, RED, "^x04%s^x03 NU^x01 ai destule credite, iti mai trebuie^x03 %i credite^x01 !", g_szTag, iNeededCredits - g_iUserCredits[ id ] );
  486. return PLUGIN_HANDLED;
  487. }
  488.  
  489. if( bUserHasAnyNade( id ) )
  490. {
  491. ColorChat( id, RED, "^x04%s^x03 Ai cel putin o grenada in mana, nu poti cumpara altele!", g_szTag );
  492. return PLUGIN_HANDLED;
  493. }
  494.  
  495. g_iUserCredits[ id ] -= iNeededCredits;
  496. ColorChat( id, RED, "^x04%s^x01 Ai cumparat^x03 FULL Grenades^x01 pentru^x03 %i credite^x01 !", g_szTag, iNeededCredits );
  497.  
  498. give_item( id, "weapon_hegrenade" );
  499. give_item( id, "weapon_flashbang" );
  500. give_item( id, "weapon_flashbang" );
  501. give_item( id, "weapon_smokegrenade" );
  502.  
  503. }
  504.  
  505. case 2:
  506. {
  507. new iNeededCredits;
  508. iNeededCredits = get_pcvar_num( g_iCvar[ HP_PRICE ] );
  509.  
  510. if( g_iUserCredits[ id ] < iNeededCredits )
  511. {
  512. ColorChat( id, RED, "^x04%s^x03 NU^x01 ai destule credite, iti mai trebuie^x03 %i credite^x01 !", g_szTag, iNeededCredits - g_iUserCredits[ id ] );
  513. return PLUGIN_HANDLED;
  514. }
  515.  
  516. g_iUserCredits[ id ] -= iNeededCredits;
  517.  
  518. new iHP = get_pcvar_num( g_iCvar[ HP_AMOUNT ] );
  519. ColorChat( id, RED, "^x04%s^x01 Ai cumparat^x03 %i HP^x01 pentru^x03 %i credite^x01 !", g_szTag, iHP, iNeededCredits );
  520.  
  521. set_user_health( id, get_user_health( id ) + iHP );
  522.  
  523. }
  524.  
  525. case 3:
  526. {
  527. new iNeededCredits;
  528. iNeededCredits = get_pcvar_num( g_iCvar[ AP_PRICE ] );
  529.  
  530. if( g_iUserCredits[ id ] < iNeededCredits )
  531. {
  532. ColorChat( id, RED, "^x04%s^x03 NU^x01 ai destule credite, iti mai trebuie^x03 %i credite^x01 !", g_szTag, iNeededCredits - g_iUserCredits[ id ] );
  533. return PLUGIN_HANDLED;
  534. }
  535.  
  536. g_iUserCredits[ id ] -= iNeededCredits;
  537.  
  538. new iAP = get_pcvar_num( g_iCvar[ AP_AMOUNT ] );
  539. ColorChat( id, RED, "^x04%s^x01 Ai cumparat^x03 %i AP^x01 pentru^x03 %i credite^x01 !", g_szTag, iAP, iNeededCredits );
  540.  
  541. set_user_armor( id, get_user_armor( id ) + iAP );
  542.  
  543. }
  544.  
  545. case 4:
  546. {
  547. new iNeededCredits;
  548. iNeededCredits = get_pcvar_num( g_iCvar[ DEAGLE_PRICE ] );
  549.  
  550. if( g_iUserCredits[ id ] < iNeededCredits )
  551. {
  552. ColorChat( id, RED, "^x04%s^x03 NU^x01 ai destule credite, iti mai trebuie^x03 %i credite^x01 !", g_szTag, iNeededCredits - g_iUserCredits[ id ] );
  553. return PLUGIN_HANDLED;
  554. }
  555.  
  556. g_iUserCredits[ id ] -= iNeededCredits;
  557.  
  558. new iAMMO = get_pcvar_num( g_iCvar[ DEAGLE_BACKPACK_AMMO ] );
  559. ColorChat( id, RED, "^x04%s^x01 Ai cumparat^x03 %i AMMO Deagle^x01 pentru^x03 %i credite^x01 !", g_szTag, iAMMO, iNeededCredits );
  560.  
  561. give_item( id, "weapon_deagle" );
  562. cs_set_user_bpammo( id, CSW_DEAGLE, iAMMO );
  563.  
  564. }
  565.  
  566. case 5:
  567. {
  568. new iNeededCredits;
  569. iNeededCredits = get_pcvar_num( g_iCvar[ SPEED_PRICE ] );
  570.  
  571. if( g_iUserCredits[ id ] < iNeededCredits )
  572. {
  573. ColorChat( id, RED, "^x04%s^x03 NU^x01 ai destule credite, iti mai trebuie^x03 %i credite^x01 !", g_szTag, iNeededCredits - g_iUserCredits[ id ] );
  574. return PLUGIN_HANDLED;
  575. }
  576.  
  577. g_iUserCredits[ id ] -= iNeededCredits;
  578.  
  579. new iSpeed = get_pcvar_num( g_iCvar[ SPEED_AMOUNT ] );
  580. ColorChat( id, RED, "^x04%s^x01 Ai cumparat^x03 %.1f Speed^x01 pentru^x03 %i credite^x01 !", g_szTag, float( iSpeed ), iNeededCredits );
  581.  
  582. g_bUserHas[ id ][ SPEED ] = true;
  583. engfunc( EngFunc_SetClientMaxspeed, id, float( iSpeed ) );
  584. set_pev( id, pev_maxspeed, float( iSpeed ) );
  585.  
  586. /* SlowHack o_O
  587. client_cmd( id, "cl_forwardspeed %0.1f;cl_sidespeed %0.1f;cl_backspeed %0.1f", float( iSpeed ), float( iSpeed ), float( iSpeed ) );
  588. */
  589. }
  590.  
  591. case 6:
  592. {
  593. new iNeededCredits;
  594. iNeededCredits = get_pcvar_num( g_iCvar[ GRAVITY_PRICE ] );
  595.  
  596. if( g_iUserCredits[ id ] < iNeededCredits )
  597. {
  598. ColorChat( id, RED, "^x04%s^x03 NU^x01 ai destule credite, iti mai trebuie^x03 %i credite^x01 !", g_szTag, iNeededCredits - g_iUserCredits[ id ] );
  599. return PLUGIN_HANDLED;
  600. }
  601.  
  602. g_iUserCredits[ id ] -= iNeededCredits;
  603.  
  604. new iGravity = get_pcvar_num( g_iCvar[ GRAVITY_AMOUNT ] );
  605. ColorChat( id, RED, "^x04%s^x01 Ai cumparat^x03 %i Gravity^x01 pentru^x03 %i credite^x01 !", g_szTag, iGravity, iNeededCredits );
  606.  
  607. set_user_gravity( id, float( iGravity ) * 0.00125 );
  608. g_bUserHas[ id ][ GRAVITY ] = true;
  609. }
  610.  
  611. }
  612.  
  613. return PLUGIN_CONTINUE;
  614.  
  615. }
  616.  
  617. public CallBackShop( id, iMenu, iItem )
  618. {
  619. static _access, szInfo[ 4 ], callback;
  620. menu_item_getinfo( iMenu, iItem, _access, szInfo, sizeof ( szInfo ) -1, _, _, callback );
  621.  
  622. //if( szInfo[ 0 ] == '0' ) return ITEM_ENABLED;
  623.  
  624. if( szInfo[ 0 ] == '1' )
  625. {
  626. if( get_pcvar_num( g_iCvar[ NADES_TO ] ) == 3 || fcs_get_user_team( id ) == get_pcvar_num( g_iCvar[ NADES_TO ] ) )
  627. return ITEM_ENABLED;
  628. }
  629. else if( szInfo[ 0 ] == '2' )
  630. {
  631. if( get_pcvar_num( g_iCvar[ HP_TO ] ) == 3 || fcs_get_user_team( id ) == get_pcvar_num( g_iCvar[ HP_TO ] ) )
  632. return ITEM_ENABLED;
  633. }
  634. else if( szInfo[ 0 ] == '3' )
  635. {
  636. if( get_pcvar_num( g_iCvar[ AP_TO ] ) == 3 || fcs_get_user_team( id ) == get_pcvar_num( g_iCvar[ AP_TO ] ) )
  637. return ITEM_ENABLED;
  638. }
  639. else if( szInfo[ 0 ] == '4' )
  640. {
  641. if( get_pcvar_num( g_iCvar[ DEAGLE_TO ] ) == 3 || fcs_get_user_team( id ) == get_pcvar_num( g_iCvar[ DEAGLE_TO] ) )
  642. return ITEM_ENABLED;
  643. }
  644. else if( szInfo[ 0 ] == '5' )
  645. {
  646. if( get_pcvar_num( g_iCvar[ SPEED_TO ] ) == 3 || fcs_get_user_team( id ) == get_pcvar_num( g_iCvar[ SPEED_TO ] ) )
  647. return ITEM_ENABLED;
  648. }
  649.  
  650. else if( szInfo[ 0 ] == '6' )
  651. {
  652. if( get_pcvar_num( g_iCvar[ GRAVITY_TO ] ) == 3 || fcs_get_user_team( id ) == get_pcvar_num( g_iCvar[ GRAVITY_TO ] ) )
  653. return ITEM_ENABLED;
  654. }
  655.  
  656. return ITEM_DISABLED;
  657. }
  658.  
  659. public ClCmdGiveCredits( id )
  660. {
  661.  
  662. if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
  663. {
  664. client_cmd( id, "echo NU ai acces la aceasta comanda!" );
  665. return 1;
  666. }
  667.  
  668. new szFirstArg[ 32 ], szSecondArg[ 10 ];
  669.  
  670. read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
  671. read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
  672.  
  673. if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
  674. {
  675. client_cmd( id, "echo amx_give_credits < nume/ @ALL/ @T/ @CT > < credite >" );
  676. return 1;
  677. }
  678.  
  679. new iPlayers[ 32 ];
  680. new iPlayersNum;
  681.  
  682. new iCredits = str_to_num( szSecondArg );
  683. if( iCredits <= 0 )
  684. {
  685. client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
  686. return 1;
  687. }
  688.  
  689. if( szFirstArg[ 0 ] == '@' )
  690. {
  691.  
  692. switch ( szFirstArg[ 1 ] )
  693. {
  694. case 'A':
  695. {
  696. if( equal( szFirstArg, "@ALL" ) )
  697. {
  698.  
  699. get_players( iPlayers, iPlayersNum, "ch" );
  700. for( new i = 0; i < iPlayersNum ; i++ )
  701. g_iUserCredits[ iPlayers[ i ] ] += iCredits;
  702.  
  703. new szName[ 32 ];
  704. get_user_name( id, szName, sizeof ( szName ) -1 );
  705. ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite tuturor jucatorilor!", g_szTag, szName, iCredits );
  706. return 1;
  707. }
  708. }
  709.  
  710. case 'T':
  711. {
  712. if( equal( szFirstArg, "@T" ) )
  713. {
  714.  
  715. get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" );
  716. if( iPlayersNum == 0 )
  717. {
  718. client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
  719. return 1;
  720. }
  721. for( new i = 0; i < iPlayersNum ; i++ )
  722. g_iUserCredits[ iPlayers[ i ] ] += iCredits;
  723.  
  724. new szName[ 32 ];
  725. get_user_name( id, szName, sizeof ( szName ) -1 );
  726. ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 TERO^x01!", g_szTag, szName, iCredits );
  727. return 1;
  728. }
  729. }
  730.  
  731. case 'C':
  732. {
  733. if( equal( szFirstArg, "@CT" ) )
  734. {
  735.  
  736. get_players( iPlayers, iPlayersNum, "ceh", "CT" );
  737. if( iPlayersNum == 0 )
  738. {
  739. client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
  740. return 1;
  741. }
  742. for( new i = 0; i < iPlayersNum ; i++ )
  743. g_iUserCredits[ iPlayers[ i ] ] += iCredits;
  744.  
  745. new szName[ 32 ];
  746. get_user_name( id, szName, sizeof ( szName ) -1 );
  747. ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 CT^x01!", g_szTag, szName, iCredits );
  748. return 1;
  749. }
  750. }
  751. }
  752. }
  753.  
  754. new iPlayer = cmd_target( id, szFirstArg, 8 );
  755. if( !iPlayer )
  756. {
  757. client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
  758. return 1;
  759. }
  760.  
  761. g_iUserCredits[ iPlayer ] += iCredits;
  762.  
  763. new szName[ 32 ], _szName[ 32 ];
  764. get_user_name( id, szName, sizeof ( szName ) -1 );
  765. get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
  766.  
  767. ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a dat^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
  768.  
  769. return 1;
  770.  
  771.  
  772. }
  773.  
  774. public ClCmdTakeCredits( id )
  775. {
  776.  
  777. if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
  778. {
  779. client_cmd( id, "echo NU ai acces la aceasta comanda!" );
  780. return 1;
  781. }
  782.  
  783. new szFirstArg[ 32 ], szSecondArg[ 10 ];
  784.  
  785. read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
  786. read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
  787.  
  788. if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
  789. {
  790. client_cmd( id, "echo amx_take_credits < nume > < credite >" );
  791. return 1;
  792. }
  793.  
  794. new iCredits = str_to_num( szSecondArg );
  795. if( iCredits <= 0 )
  796. {
  797. client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
  798. return 1;
  799. }
  800.  
  801. new iPlayer = cmd_target( id, szFirstArg, 8 );
  802. if( !iPlayer )
  803. {
  804. client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
  805. return 1;
  806. }
  807.  
  808. if( g_iUserCredits[ iPlayer ] < iCredits )
  809. {
  810. client_cmd( id, "echo Jucatorul %s nu are atatea credite!Are doar %i", szFirstArg, g_iUserCredits[ iPlayer ] );
  811. return 1;
  812. }
  813.  
  814. g_iUserCredits[ iPlayer ] -= iCredits;
  815.  
  816. new szName[ 32 ], _szName[ 32 ];
  817. get_user_name( id, szName, sizeof ( szName ) -1 );
  818. get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
  819.  
  820. ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a sters^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
  821.  
  822. return 1;
  823.  
  824.  
  825. }
  826.  
  827. public ClCmdFcsDonate( id )
  828. {
  829. if( get_pcvar_num( g_iCvarTSEnable ) != 1 )
  830. {
  831. ColorChat( id, RED, "^x04%s^x01 Comanda dezactivata de catre server!", g_szTag );
  832. return PLUGIN_HANDLED;
  833. }
  834.  
  835. new szFirstArg[ 32 ], szSecondArg[ 10 ];
  836.  
  837. read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
  838. read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
  839.  
  840. if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
  841. {
  842. ColorChat( id, RED, "^x04%s^x01 Folosire:^x03 /transfer^x01 sau^x03 /donate^x01 <^x03 nume^x01 > <^x03 credite^x01 >.", g_szTag );
  843. return 1;
  844. }
  845.  
  846. new iPlayer = cmd_target( id, szFirstArg, 8 );
  847.  
  848. if( !iPlayer )
  849. {
  850. ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", g_szTag );
  851. return PLUGIN_HANDLED;
  852. }
  853.  
  854. //if( iPlayer == id )
  855. //{
  856. // ColorChat( id, RED, "^x04%s^x01 Nu-ti poti transfera credite.", g_szTag );
  857. // return PLUGIN_HANDLED;
  858. //}
  859.  
  860.  
  861. new iCredits;
  862. iCredits = str_to_num( szSecondArg );
  863.  
  864.  
  865. if( iCredits <= 0 )
  866. {
  867. ColorChat( id, RED, "^x04%s^x01 Trebuie sa introduci o valoare mai mare de 0.", g_szTag );
  868. return PLUGIN_HANDLED;
  869. }
  870.  
  871. new iMaxCredits = get_pcvar_num( g_iCvarTSMaxCredits );
  872. if( iCredits > iMaxCredits )
  873. {
  874. ColorChat( id, RED, "^x04%s^x01 Poti transfera maxim^x03 %i^x01 credit%s o data!", g_szTag, iMaxCredits, iMaxCredits == 1 ? "" : "e" );
  875. return PLUGIN_HANDLED;
  876. }
  877.  
  878. if( g_iUserCredits[ id ] < iCredits )
  879. {
  880. ColorChat( id, RED, "^x04%s^x01 Nu ai destule credite, ai doar^x03 %i credit%s^x01.", g_szTag, g_iUserCredits[ id ], g_iUserCredits[ id ] == 1 ? "" : "e" );
  881. return 1;
  882. }
  883.  
  884. g_iUserCredits[ id ] -= iCredits;
  885. g_iUserCredits[ iPlayer ] += iCredits;
  886.  
  887. SaveCredits( id );
  888. SaveCredits( iPlayer );
  889.  
  890. new szFirstName[ 32 ], szSecondName[ 32 ];
  891.  
  892. get_user_name( id, szFirstName, sizeof ( szFirstName ) -1 );
  893. get_user_name( iPlayer, szSecondName, sizeof ( szSecondName ) -1 );
  894.  
  895. ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a transferat^03 %i credit%s^x01 lui^x03 %s^x01 .", g_szTag, szFirstName, iCredits, iCredits == 1 ? "" : "e", szSecondName );
  896. return PLUGIN_HANDLED;
  897. }
  898.  
  899. public ham_SpawnPlayerPost( id )
  900. {
  901. if( !is_user_alive( id ) )
  902. return;
  903.  
  904. g_iUserRetired[ id ] = 0;
  905.  
  906. if( get_pcvar_num( g_iCvar[ SPEED_DURATION ] ) == 1 )
  907. {
  908. if( g_bUserHas[ id ][ SPEED ] )
  909. {
  910. new iSpeed = get_pcvar_num( g_iCvar[ SPEED_AMOUNT ] );
  911. engfunc( EngFunc_SetClientMaxspeed, id, float( iSpeed ) );
  912. set_pev( id, pev_maxspeed, float( iSpeed ) );
  913.  
  914. /* SlowHack o_O
  915. client_cmd( id, "cl_forwardspeed %0.1f;cl_sidespeed %0.1f;cl_backspeed %0.1f", float( iSpeed ), float( iSpeed ), float( iSpeed ) );
  916. */
  917. }
  918. }
  919. else
  920. g_bUserHas[ id ][ SPEED ] = false;
  921.  
  922. if( get_pcvar_num( g_iCvar[ GRAVITY_DURATION ] ) == 1 )
  923. {
  924. if( g_bUserHas[ id ][ GRAVITY ] )
  925. set_user_gravity( id, float( get_pcvar_num( g_iCvar[ GRAVITY_AMOUNT ] ) ) * 0.00125 );
  926. }
  927. else
  928. g_bUserHas[ id ][ GRAVITY ] = false;
  929.  
  930. }
  931.  
  932. public ham_PlayerKilledPre( id )
  933. {
  934. g_bUserHas[ id ][ SPEED ] = false;
  935. g_bUserHas[ id ][ GRAVITY ] = false;
  936. }
  937.  
  938. public ham_PlayerResetMaxSpeedPre( id )
  939. {
  940.  
  941. if( is_user_alive( id ) /*&& get_user_maxspeed( id ) != 1.0*/ )
  942. {
  943.  
  944. if( g_bUserHas[ id ][ SPEED ] )
  945. {
  946.  
  947. static Float:flMaxSpeed;
  948. flMaxSpeed = float( get_pcvar_num( g_iCvar[ SPEED_AMOUNT ] ) );
  949.  
  950. engfunc( EngFunc_SetClientMaxspeed, id, flMaxSpeed );
  951. set_pev( id, pev_maxspeed, flMaxSpeed );
  952.  
  953. }
  954.  
  955.  
  956. /* SlowHack o_O
  957. client_cmd( id, "cl_forwardspeed %0.1f;cl_sidespeed %0.1f;cl_backspeed %0.1f", flMaxSpeed, flMaxSpeed, flMaxSpeed );
  958. */
  959. }
  960. }
  961.  
  962. public Fwd_ClientUserInfoChanged( id, szBuffer )
  963. {
  964. if ( !is_user_connected( id ) )
  965. return FMRES_IGNORED;
  966.  
  967. static szNewName[ 32 ];
  968.  
  969. engfunc( EngFunc_InfoKeyValue, szBuffer, "name", szNewName, sizeof ( szNewName ) -1 );
  970.  
  971. if ( equal( szNewName, g_szName[ id ] ) )
  972. return FMRES_IGNORED;
  973.  
  974. SaveCredits( id );
  975.  
  976. ColorChat( id, RED, "^x04%s^x01 Tocmai ti-ai schimbat numele din^x03 %s^x01 in^x03 %s^x01 !", g_szTag, g_szName[ id ], szNewName );
  977. ColorChat( id, RED, "^x04%s^x01 Am salvat^x03 %i^x01 credite pe numele^x03 %s^x01 !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
  978.  
  979. copy( g_szName[ id ], sizeof ( g_szName[] ) -1, szNewName );
  980. LoadCredits( id );
  981.  
  982. ColorChat( id, RED, "^x04%s^x01 Am incarcat^x03 %i^x01 credite de pe noul nume (^x03 %s^x01 ) !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
  983.  
  984. return FMRES_IGNORED;
  985. }
  986.  
  987.  
  988. public LoadCredits( id )
  989. {
  990. static szData[ 256 ], iTimestamp;
  991.  
  992. if( nvault_lookup( iVault, g_szName[ id ], szData, sizeof ( szData ) -1, iTimestamp ) )
  993. {
  994. static szCredits[ 15 ];
  995. parse( szData, szCredits, sizeof ( szCredits ) -1 );
  996. g_iUserCredits[ id ] = str_to_num( szCredits );
  997. return;
  998. }
  999. else
  1000. {
  1001. g_iUserCredits[ id ] = get_pcvar_num( g_iCvarEntry );
  1002. }
  1003.  
  1004. }
  1005.  
  1006.  
  1007. public SaveCredits( id )
  1008. {
  1009.  
  1010. static szData[ 256 ];
  1011. formatex( szData, sizeof ( szData ) -1, "%i", g_iUserCredits[ id ] );
  1012.  
  1013. nvault_set( iVault, g_szName[ id ], szData );
  1014. }
  1015.  
  1016.  
  1017. public task_PTRFunctions( )
  1018. {
  1019. if( get_pcvar_num( g_iCvarPTREnable ) != 1 )
  1020. return;
  1021.  
  1022. static iPlayers[ 32 ];
  1023. static iPlayersNum;
  1024.  
  1025. get_players( iPlayers, iPlayersNum, "ch" );
  1026. if( !iPlayersNum )
  1027. return;
  1028.  
  1029. static id, i;
  1030. for( i = 0; i < iPlayersNum; i++ )
  1031. {
  1032. id = iPlayers[ i ];
  1033.  
  1034. g_iUserTime[ id ]++;
  1035. static iTime;
  1036. iTime = get_pcvar_num( g_iCvarPTRMinutes ) ;
  1037.  
  1038. if( g_iUserTime[ id ] >= iTime * 60 )
  1039. {
  1040. g_iUserTime[ id ] -= iTime * 60;
  1041.  
  1042. static iCredits;
  1043. iCredits = get_pcvar_num( g_iCvarPTRCredits );
  1044.  
  1045. g_iUserCredits[ id ] += iCredits;
  1046. ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credite pentru^x03 %i^x01 minute jucate!",
  1047. g_szTag, iCredits, iTime );
  1048.  
  1049. SaveCredits( id );
  1050.  
  1051. }
  1052. }
  1053.  
  1054. }
  1055.  
  1056. public ev_DeathMsg( )
  1057. {
  1058. if( get_pcvar_num( g_iCvarKREnable ) != 1 )
  1059. return;
  1060. new iKiller = read_data( 1 );
  1061. if( iKiller == read_data( 2 ) )
  1062. return;
  1063.  
  1064. new iCredits = get_pcvar_num( g_iCvarKRCredits );
  1065.  
  1066. if( read_data( 3 ) )
  1067. iCredits += get_pcvar_num( g_iCvarKRHSCredits );
  1068.  
  1069. g_iUserCredits[ iKiller ] += iCredits;
  1070. SaveCredits( iKiller );
  1071.  
  1072. }
  1073.  
  1074. public ev_SendAudioTerWin( )
  1075. {
  1076. static iCvarEnable, iCvarFurienReward;
  1077. iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
  1078. iCvarFurienReward = get_pcvar_num( g_iCvarWTRFurien );
  1079.  
  1080. if( iCvarEnable != 1 || iCvarFurienReward == 0 )
  1081. return;
  1082.  
  1083. GiveTeamReward( FCS_TEAM_FURIEN, iCvarFurienReward );
  1084.  
  1085. }
  1086.  
  1087.  
  1088. public ev_SendAudioCtWin( )
  1089. {
  1090.  
  1091. static iCvarEnable, iCvarAntiReward;
  1092. iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
  1093. iCvarAntiReward = get_pcvar_num( g_iCvarWTRAnti );
  1094.  
  1095. if( iCvarEnable != 1 || iCvarAntiReward == 0 )
  1096. return;
  1097.  
  1098. GiveTeamReward( FCS_TEAM_ANTIFURIEN, iCvarAntiReward );
  1099. }
  1100.  
  1101. public GiveTeamReward( const CsTeams:iTeam, iCredits )
  1102. {
  1103.  
  1104. for( new id = 1; id <= g_iMaxPlayers; id++ )
  1105. {
  1106. if( cs_get_user_team( id ) == iTeam )
  1107. {
  1108. ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credit%s pentru castigarea rundei!", g_szTag, iCredits, iCredits == 1 ? "" : "e" );
  1109. g_iUserCredits[ id ] += iCredits;
  1110. SaveCredits( id );
  1111. }
  1112. }
  1113. }
  1114.  
  1115. public plugin_end( )
  1116. {
  1117. new iDays = get_pcvar_num( g_iCvarPruneDays );
  1118. if( iDays > 0 )
  1119. {
  1120. nvault_prune( iVault, 0, get_systime( ) - ( iDays * ONE_DAY_IN_SECONDS ) );
  1121. }
  1122.  
  1123. nvault_close( iVault );
  1124. }
  1125.  
  1126. stock bool:bUserHasAnyNade( id )
  1127. {
  1128.  
  1129. if( user_has_weapon( id, CSW_HEGRENADE ) || user_has_weapon( id, CSW_FLASHBANG )
  1130. || user_has_weapon( id, CSW_SMOKEGRENADE ) )
  1131. return true;
  1132.  
  1133. return false;
  1134.  
  1135. }
  1136.  
  1137. stock fcs_get_user_team( id )
  1138. {
  1139. new iTeam = -1;
  1140. if( cs_get_user_team( id ) == CS_TEAM_T ) iTeam = 1;
  1141. else if( cs_get_user_team( id ) == CS_TEAM_CT ) iTeam = 2;
  1142.  
  1143. return iTeam;
  1144. }
  1145.  
  1146. ColorChat( id, Color:iType, const msg[ ], { Float, Sql, Result, _}:... )
  1147. {
  1148.  
  1149. // Daca nu se afla nici un jucator pe server oprim TOT. Altfel dam de erori..
  1150. if( !get_playersnum( ) ) return;
  1151.  
  1152. new szMessage[ 256 ];
  1153.  
  1154. switch( iType )
  1155. {
  1156. // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
  1157. case NORMAL: szMessage[ 0 ] = 0x01;
  1158.  
  1159. // Culoare Verde.
  1160. case GREEN: szMessage[ 0 ] = 0x04;
  1161.  
  1162. // Alb, Rosu, Albastru.
  1163. default: szMessage[ 0 ] = 0x03;
  1164. }
  1165.  
  1166. vformat( szMessage[ 1 ], 251, msg, 4 );
  1167.  
  1168. // Ne asiguram ca mesajul nu este mai lung de 192 de caractere.Altfel pica server-ul.
  1169. szMessage[ 192 ] = '^0';
  1170.  
  1171.  
  1172. new iTeam, iColorChange, iPlayerIndex, MSG_Type;
  1173.  
  1174. if( id )
  1175. {
  1176. MSG_Type = MSG_ONE_UNRELIABLE;
  1177. iPlayerIndex = id;
  1178. }
  1179. else
  1180. {
  1181. iPlayerIndex = CC_FindPlayer( );
  1182. MSG_Type = MSG_ALL;
  1183. }
  1184.  
  1185. iTeam = get_user_team( iPlayerIndex );
  1186. iColorChange = CC_ColorSelection( iPlayerIndex, MSG_Type, iType);
  1187.  
  1188. CC_ShowColorMessage( iPlayerIndex, MSG_Type, szMessage );
  1189.  
  1190. if( iColorChange ) CC_Team_Info( iPlayerIndex, MSG_Type, TeamName[ iTeam ] );
  1191.  
  1192. }
  1193.  
  1194. CC_ShowColorMessage( id, const iType, const szMessage[ ] )
  1195. {
  1196.  
  1197. static bool:bSayTextUsed;
  1198. static iMsgSayText;
  1199.  
  1200. if( !bSayTextUsed )
  1201. {
  1202. iMsgSayText = get_user_msgid( "SayText" );
  1203. bSayTextUsed = true;
  1204. }
  1205.  
  1206. message_begin( iType, iMsgSayText, _, id );
  1207. write_byte( id );
  1208. write_string( szMessage );
  1209. message_end( );
  1210. }
  1211.  
  1212. CC_Team_Info( id, const iType, const szTeam[ ] )
  1213. {
  1214. static bool:bTeamInfoUsed;
  1215. static iMsgTeamInfo;
  1216. if( !bTeamInfoUsed )
  1217. {
  1218. iMsgTeamInfo = get_user_msgid( "TeamInfo" );
  1219. bTeamInfoUsed = true;
  1220. }
  1221.  
  1222. message_begin( iType, iMsgTeamInfo, _, id );
  1223. write_byte( id );
  1224. write_string( szTeam );
  1225. message_end( );
  1226.  
  1227. return 1;
  1228. }
  1229.  
  1230. CC_ColorSelection( id, const iType, Color:iColorType)
  1231. {
  1232. switch( iColorType )
  1233. {
  1234.  
  1235. case RED: return CC_Team_Info( id, iType, TeamName[ 1 ] );
  1236. case BLUE: return CC_Team_Info( id, iType, TeamName[ 2 ] );
  1237. case GREY: return CC_Team_Info( id, iType, TeamName[ 0 ] );
  1238.  
  1239. }
  1240.  
  1241. return 0;
  1242. }
  1243.  
  1244. CC_FindPlayer( )
  1245. {
  1246. new iMaxPlayers = get_maxplayers( );
  1247.  
  1248. for( new i = 1; i <= iMaxPlayers; i++ )
  1249. if( is_user_connected( i ) )
  1250. return i;
  1251.  
  1252. return -1;
  1253. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement