Advertisement
Guest User

asdas

a guest
Jul 4th, 2015
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.84 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <fun>
  3. #include <cstrike>
  4. #include <hamsandwich>
  5. #include <fakemeta>
  6. #include <fakemeta_util>
  7.  
  8. #define PLUGIN "Vip PaintBall by lucy"
  9. #define VERSION "0.1"
  10.  
  11. //#define VIP_ACCESS ADMIN_LEVEL_H
  12.  
  13. //------| Gradul care sa-l aiba Vip-u |------//
  14.  
  15. #define FILE_VIP "VIP_List.ini"
  16.  
  17.  
  18. // Variabile Utile
  19. new File[256];
  20. new VIPList[256][32];
  21. new MaxVIPList;
  22. new bool:is_user_vip[33] = false;
  23.  
  24. //------| Vips Online/List |------//
  25. new maxplayers
  26. static const COLOR[] = "^x04"; // Green for display VIP
  27.  
  28.  
  29. // weapons offsets
  30. #define OFFSET_CLIPAMMO 51
  31. #define OFFSET_LINUX_WEAPONS 4
  32. #define fm_cs_set_weapon_ammo(%1,%2) set_pdata_int(%1, OFFSET_CLIPAMMO, %2, OFFSET_LINUX_WEAPONS)
  33.  
  34. // players offsets
  35. #define m_pActiveItem 373
  36.  
  37. const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
  38.  
  39. new const g_MaxClipAmmo[] =
  40. {
  41. 0, 13, //CSW_P228 0, 10, //CSW_SCOUT 0, //CSW_HEGRENADE 7, //CSW_XM1014 0, //CSW_C4
  42. 30,//CSW_MAC10 30, //CSW_AUG 0, //CSW_SMOKEGRENADE 15,//CSW_ELITE
  43. 20,//CSW_FIVESEVEN 25,//CSW_UMP45 30, //CSW_SG550
  44. 35, //CSW_GALIL 25, //CSW_FAMAS 12,//CSW_USP 20,//CSW_GLOCK18
  45. 10, //CSW_AWP 30,//CSW_MP5NAVY 100,//CSW_M249 8, //CSW_M3 30, //CSW_M4A1
  46. 30,//CSW_TMP 20, //CSW_G3SG1 0, //CSW_FLASHBANG 7, //CSW_DEAGLE
  47. 30, //CSW_SG552 30, //CSW_AK47 0, //CSW_KNIFE 50//CSW_P90
  48. }
  49.  
  50. new bool: lucyHasOne[ 33 ], lucyHasUnAmmo[ 33 ];
  51. new l_Health, l_Armor, l_Speed;
  52.  
  53. public plugin_init( ) {
  54.  
  55. register_plugin( PLUGIN, VERSION, "lucy" );
  56.  
  57. RegisterHam ( Ham_Spawn, "player", "lucyBool", 1 );
  58. //RegisterHam(Ham_Player_ResetMaxSpeed,"player","playerResetMaxSpeed",1)
  59.  
  60. register_event("CurWeapon" , "ShowlucyUnAmmo" , "be" , "1=1" );
  61. register_event("DeathMsg", "event_DeathMsg", "be");
  62. register_event("ResetHUD", "ResetHUD", "be");
  63.  
  64. //register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" );
  65.  
  66. //CVAR by lucy
  67. l_Health = register_cvar("set_lucy_hp", "100");
  68. l_Armor = register_cvar("set_lucy_ap", "100");
  69. l_Speed = register_cvar("set_lucy_speed", "200");
  70.  
  71. // say
  72. register_clcmd ( "say /vippb", "ShowTaskVipPB", -1 );
  73. register_clcmd ( "say vippb", "ShowTaskVipPB", -1 );
  74. register_clcmd ( "say_team /vippb", "ShowTaskVipPB", -1 );
  75. register_clcmd ( "/vippb", "ShowTaskVipPB", -1 );
  76. register_clcmd("say /vip ","ShowMotd")
  77. register_clcmd("say /vipinfo ","ShowMotd")
  78. register_clcmd("say /vip_info ","ShowMotd")
  79. register_clcmd("say vipinfo ","ShowMotd")
  80. register_clcmd("say vip_info ","ShowMotd")
  81. register_clcmd("say_team /vip ","ShowMotd")
  82. register_clcmd("say_team /vipinfo ","ShowMotd")
  83. register_clcmd("say_team /vip_info ","ShowMotd")
  84. register_clcmd("say_team vipinfo ","ShowMotd")
  85. register_clcmd("say_team vip_info ","ShowMotd")
  86. }
  87.  
  88. public event_DeathMsg( ) {
  89.  
  90. new iAttacker = read_data( 1 );
  91. if(!is_user_alive( iAttacker ) ) {
  92. fm_set_user_health(iAttacker, get_user_health( iAttacker ) + 30 );
  93. }
  94. set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 2.0);
  95. show_hudmessage(iAttacker, "+ 30 HP");
  96. Color( iAttacker, "^4Ai Primit ^3+ 30 HP ^4Pentru Kill" );
  97. }
  98.  
  99. public ShowlucyUnAmmo( id ) {
  100.  
  101. if( lucyHasUnAmmo[ id ] ) {
  102. new iWeapon = read_data(2)
  103. if( !( NOCLIP_WPN_BS & (1<<iWeapon) ) )
  104. {
  105. fm_cs_set_weapon_ammo( get_pdata_cbase(id, m_pActiveItem) , g_MaxClipAmmo[ iWeapon ] )
  106. }
  107.  
  108. }
  109. //lucyHasUnAmmo[ id ] = false;
  110. return 1;
  111. }
  112.  
  113. public ResetHUD( id ) {
  114.  
  115. set_task(0.1, "VIP", id + 6910 );
  116. //set_task(0.1, "msgScoreAttrib", id + 6910)
  117. }
  118.  
  119. public client_connect( id )
  120. {
  121.  
  122. if (Check_Is_User_On_List(id))
  123. {
  124. is_user_vip[id] = true;
  125.  
  126. }
  127. else
  128. {
  129. is_user_vip[id] = false;
  130. }
  131. if ( is_user_vip[id] )
  132. {
  133.  
  134. //client_cmd( id, "bind c /vippb" );
  135. client_cmd(id,"bind c ^"/vippb^"");
  136. client_cmd( id, "say /vippb - Tasta C" );
  137. //client_cmd( id, ^"bind c say /vippb^"" );
  138. }
  139.  
  140. }
  141.  
  142. public user_conected( id ) {
  143.  
  144. //ExecuteHamB( Ham_Player_ResetMaxSpeed, id );
  145. lucyHasOne[ id ] = false;
  146. lucyHasUnAmmo[ id ] = false;
  147.  
  148. }
  149.  
  150. public lucyBool( id ) {
  151.  
  152. lucyHasOne[ id ] = false;
  153. lucyHasUnAmmo[ id ] = false;
  154. }
  155.  
  156.  
  157. public ShowTaskVipPB ( id ) {
  158.  
  159. if( is_user_vip[id] ) {
  160. if ( get_user_team ( id ) == 1 ) {
  161.  
  162. set_task( 0.1, "ShowVipPB", id );
  163. cs_set_user_vip(id, 0, 0, 1)
  164. return 1;
  165. }
  166.  
  167. if ( get_user_team ( id ) == 2 ) {
  168.  
  169. set_task( 0.1, "ShowVipPB", id );
  170. cs_set_user_vip(id, 0, 0, 1)
  171. return 1;
  172. }
  173. }
  174. Color( id, "^4Nu esti ^3VIP ^4Doar ^3Vipi Au ACCES la acest meniu ^1!" );
  175. return 1;
  176. }
  177.  
  178. public ShowVipPB ( id, level, cid ) {
  179.  
  180. new menu = menu_create ( "\wMenu \rVIP PB", "VipPB" );
  181.  
  182. menu_additem ( menu, "\rViata ", "1", 0);
  183. menu_additem ( menu, "\rArmura ", "2", 0);
  184. menu_additem ( menu, "\rViteza ", "3", 0);
  185. menu_additem ( menu, "\rGloante Nelimitate", "4", 0);
  186. menu_additem ( menu, "\rPachet Grenazi : 1HE, 2FB, 1SMOKE", "5", 0);
  187. menu_additem ( menu, "\rNoClip & Godmode \yMenu", "6", 0);
  188. //menu_additem ( menu, "\rGodMode \d10 sec", "7", 0);
  189.  
  190. menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
  191. menu_display ( id, menu, 0 );
  192.  
  193.  
  194. return 1;
  195. }
  196.  
  197. public VipPB( id, menu, item ) {
  198.  
  199. if( item == MENU_EXIT )
  200. {
  201. return 1;
  202. }
  203.  
  204. new data [ 6 ], szName [ 64 ];
  205. new access, callback;
  206. menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
  207. new key = str_to_num ( data );
  208.  
  209. switch(key)
  210. {
  211. case 1:
  212. {
  213. if( lucyHasOne[ id ] )
  214. {
  215.  
  216. Color( id, "^4Ai voie sa iti iei un ^1lucru ^4Doar o data pe runda ^1!" );
  217. return 1;
  218. }
  219.  
  220. Color( id, "^4Ai Luat ^1 %i ^3HP !", get_pcvar_num( l_Health ) );
  221.  
  222. fm_set_user_health(id, get_user_health( id ) + get_pcvar_num( l_Health ) );
  223. lucyHasOne[ id ] = true;
  224. }
  225. case 2:
  226. {
  227. if( lucyHasOne[ id ] ) {
  228.  
  229. Color( id, "^4Ai voie sa iti iei un ^1lucru ^4Doar o data pe runda ^1!" );
  230. return 1;
  231. }
  232.  
  233. Color( id, "^4Ai Luat ^1 %i ^3Armura !", get_pcvar_num( l_Armor ) );
  234.  
  235. fm_set_user_armor(id, get_user_armor( id ) + get_pcvar_num( l_Armor ) );
  236. lucyHasOne[ id ] = true;
  237. }
  238. case 3:
  239. {
  240. if( lucyHasOne[ id ] ) {
  241.  
  242. Color( id, "^4Ai voie sa iti iei un ^1lucru ^4Doar o data pe runda ^1!" );
  243. return 1;
  244. }
  245.  
  246. Color( id, "^4Ai Luat ^1 %i ^3Viteza !", get_pcvar_num( l_Speed ) );
  247.  
  248. fm_set_user_maxspeed(id, get_user_maxspeed( id ) + get_pcvar_num( l_Speed ) )
  249. lucyHasOne[ id ] = true;
  250.  
  251. }
  252.  
  253. case 4:
  254. {
  255. if( lucyHasOne[ id ] ) {
  256.  
  257. Color( id, "^4Ai voie sa iti iei un ^1lucru ^4Doar o data pe runda ^1!" );
  258. return 1;
  259. }
  260.  
  261. Color( id, "^4Ai Luat ^3 Gloante Nelimitate Toata Runda ^1!" );
  262. lucyHasUnAmmo[ id ] = true;
  263. lucyHasOne[ id ] = true;
  264. }
  265. case 5:
  266. {
  267. if( lucyHasOne[ id ] ) {
  268.  
  269. Color( id, "^4Ai voie sa iti iei un ^1lucru ^4Doar o data pe runda ^1!" );
  270. return 1;
  271. }
  272.  
  273. fm_give_item(id, "weapon_hegrenade" );
  274. fm_give_item(id, "weapon_flashbang" );
  275. fm_give_item(id, "weapon_flashbang" );
  276. fm_give_item(id, "weapon_smokegrenade" );
  277. Color( id, "^4Ai Luat ^3 Pachet Grenazi !" );
  278. lucyHasOne[ id ] = true;
  279. }
  280. case 6:
  281. {
  282. if( lucyHasOne[ id ] ) {
  283.  
  284. Color( id, "^4Ai voie sa iti iei un ^1lucru ^4Doar o data pe runda ^1!" );
  285. return 1;
  286. }
  287.  
  288. set_task( 0.1, "MenulucyGmNc", id );
  289. lucyHasOne[ id ] = true;
  290. }
  291. /* case 7:
  292. {
  293. if( lucyHasOne[ id ] ) {
  294.  
  295. Color( id, "^4Ai voie sa iti iei un ^1lucru ^4Doar o data pe runda ^1!" );
  296. return 1;
  297. }
  298.  
  299. set_task( 0.1, "lMenulucyGmNc", id );
  300. lucyHasOne[ id ] = true;
  301. }*/
  302. }
  303. return 1;
  304. }
  305. /*
  306. public lucy_NoClip( id ) {
  307.  
  308. set_user_noclip(id, 1 );
  309. Color( id, "^4Ai Luat ^3NoClip ^1 10 ^4secunde !");
  310.  
  311. set_task( 10.0, "lucyNoClipOF", id );
  312.  
  313. }
  314. public lucyNoClipOF( id ) {
  315.  
  316. set_user_noclip(id, 0 );
  317. Color( id, "^4Numai ai ^3NoClip !" );
  318. }
  319.  
  320. public lucyGodMode( id ) {
  321.  
  322. fm_set_user_godmode(id, 0);
  323. Color( id, "^4Ai Luat ^3GodMode ^1 10 ^4secunde !");
  324. set_task( 10.0, "lucy_GodModeOF", id );
  325. }
  326.  
  327.  
  328. public lucy_GodModeOF( id ) {
  329.  
  330. fm_set_user_godmode(id, 0);
  331. Color( id, "^4Numai ai ^3GodMode !" )
  332. }
  333. */
  334.  
  335. public MenulucyGmNc( id ) {
  336.  
  337. new lMenu = menu_create( "\wMenu \rNoClip \w& \rGodMode \w!", "GmNc" );
  338.  
  339. new szOptiuni[ 32 ];
  340.  
  341.  
  342. formatex( szOptiuni, 31, "NoClip : %s", ( fm_get_user_noclip( id ) ? "\rDezactiveaza" : "\rActiveaza" ) );
  343. menu_additem( lMenu, szOptiuni, "1" );
  344. formatex( szOptiuni, 31, "GodMode : %s", ( fm_get_user_godmode( id ) ? "\rDezactiveaza" : "\rActiveaza" ) );
  345. menu_additem( lMenu, szOptiuni, "2", 0 );
  346.  
  347. menu_display( id, lMenu, 0 );
  348.  
  349. }
  350.  
  351.  
  352. public GmNc(id , lMenu , iItem) {
  353.  
  354. if( iItem == MENU_EXIT )
  355. {
  356. menu_destroy( lMenu );
  357. return PLUGIN_HANDLED;
  358. }
  359.  
  360. new szInfo[ 3 ];
  361. new iAccess, iCallback;
  362. menu_item_getinfo( lMenu, iItem, iAccess, szInfo, 2, _, _, iCallback );
  363.  
  364. switch( str_to_num( szInfo ) )
  365. {
  366. case 1:
  367. {
  368. switch( fm_get_user_noclip( id ) )
  369. {
  370. case 0:
  371. {
  372. fm_set_user_noclip(id, 1 );
  373.  
  374. Color( id, "^4Ai ^1Activat ^3NoClip" );
  375. MenulucyGmNc( id )
  376. }
  377. case 1:
  378. {
  379. fm_set_user_noclip(id, 0 );
  380.  
  381. Color( id, "^4Ai ^1Dezactivat ^3NoClip" );
  382. MenulucyGmNc( id )
  383. }
  384. }
  385. }
  386. case 2:
  387. {
  388. switch( fm_get_user_godmode( id ) )
  389. {
  390. case 0:
  391. {
  392. fm_set_user_godmode( id, 1 );
  393. Color( id, "^4Ai ^1Activat ^3GodMode" );
  394. MenulucyGmNc( id )
  395. }
  396. case 1:
  397. {
  398. fm_set_user_godmode( id, 0 );
  399. Color( id, "^4Ai ^1Dezactivat ^3GodMode" );
  400. MenulucyGmNc( id )
  401. }
  402. }
  403. }
  404. }
  405. return 0
  406. }
  407. /*
  408. public playerResetMaxSpeed(id)
  409. {
  410. static Float:maxspeed
  411. pev(id,pev_maxspeed,maxspeed)
  412.  
  413. if(maxspeed != 1.0)
  414. {
  415. set_pev(id,pev_maxspeed,maxspeed + get_pcvar_float( l_Speed ) )
  416. }
  417. }
  418. */
  419. /*
  420. public msgScoreAttrib( const MsgId, const MsgType, const MsgDest ) {
  421.  
  422. static id;
  423. id = get_msg_arg_int( 1 );
  424.  
  425. if( ( is_user_vip[id] ) && ( get_user_team( id ) == 2 ) && !get_msg_arg_int( 2 ))
  426. set_msg_arg_int( 2, ARG_BYTE, ( 1 << 2 ) );
  427. }
  428. */
  429.  
  430. public VIP(TaskID) {
  431.  
  432. new id = TaskID - 6910
  433.  
  434. if( is_user_vip[id] ) {
  435.  
  436. message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
  437. write_byte(id)
  438. write_byte(4)
  439. message_end()
  440. }
  441. }
  442.  
  443. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  444. // VIP Online/List |
  445. //==========================================================================================================
  446. public print_adminlist(user) {
  447. new adminnames[33][32];
  448. new message[256];
  449. new id, count, x, len;
  450.  
  451. for(id = 1 ; id <= maxplayers ; id++)
  452. if(is_user_connected(id))
  453. if(is_user_vip[id])
  454. get_user_name(id, adminnames[count++], 31);
  455.  
  456. len = format(message, 255, "%s VIP ONLINE: ",COLOR);
  457. if(count > 0) {
  458. for(x = 0 ; x < count ; x++) {
  459. len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"");
  460. if(len > 96) {
  461. print_message(user, message);
  462. len = format(message, 255, "%s ",COLOR);
  463. }
  464. }
  465. print_message(user, message);
  466. }
  467. else {
  468. len += format(message[len], 255-len, "Nu sunt VIP online.");
  469. print_message(user, message);
  470. }
  471. }
  472. print_message(id, msg[]) {
  473. message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
  474. write_byte(id);
  475. write_string(msg);
  476. message_end();
  477. }
  478. public handle_say(id) {
  479. new said[192];
  480. read_args(said,192);
  481. if(contain(said, "/vips") != -1)
  482. set_task(0.1,"print_adminlist",id);
  483. return PLUGIN_CONTINUE;
  484. }
  485. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  486. // VIP Motd |
  487. //==========================================================================================================
  488. public ShowMotd(id) {
  489. show_motd(id, "vip.txt")
  490. }
  491.  
  492.  
  493. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  494. // VIP File|
  495. //==========================================================================================================
  496. public plugin_cfg () {
  497.  
  498.  
  499. new File_Director[64];
  500.  
  501. // Stabilire Locatie
  502.  
  503.  
  504. //get_configsdir(File_Director, charsmax(File_Director))
  505.  
  506. // Charsmax este echivalentul a Size of - 1 deci e mai la indemana charsmax
  507. formatex(File, charsmax(File), "%s/%s", File_Director, FILE_VIP)
  508.  
  509. // Creare Fisier
  510. if(!file_exists (File))
  511. {
  512. write_file (File,"; ===========================================================");
  513. write_file (File,"; --------------------- VIP LIST ----------------------------");
  514. write_file (File,"; ===========================================================");
  515. write_file (File,"; Nota: Incepe randul cu ^";^" pentru a dezactiva un VIP");
  516. }
  517.  
  518.  
  519. new Buffer[192], iLine, iLenght;
  520.  
  521. while (iLine == read_file(File, iLine, Buffer, charsmax (Buffer), iLenght))
  522. {
  523. // Filtru Exceptie : Rand Gol / Rand inceput cu ";" / sau puteti sa va modificati voi conditia dupa bunul plac
  524. // Functia Strlen returneaza lungimea Buffer-ului adica randului curent pe care suntem
  525.  
  526. if ( !strlen (Buffer) || Buffer[0] == ';' )
  527. continue;
  528.  
  529. // Copiere Nume Jucator in Variabila
  530.  
  531. copy ( VIPList[MaxVIPList++], 32, Buffer )
  532.  
  533. }
  534.  
  535. }
  536.  
  537.  
  538. stock Check_Is_User_On_List(id)
  539. {
  540. new Name[32]
  541. get_user_name(id, Name, 31)
  542.  
  543. for( new i; i < MaxVIPList; i++ )
  544. {
  545. // Functia Strcmp compara 2 stringuri si returneaza 0 doar daca acestea sunt egale
  546. // Se putea folosi si equal dar cel mai bine recomand strcmp
  547.  
  548. if (!strcmp(Name,VIPList[i]))
  549. return 1
  550. }
  551.  
  552. return 0
  553.  
  554. }
  555.  
  556.  
  557.  
  558.  
  559. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  560. // Stock Color |
  561. //==========================================================================================================
  562. stock Color(const id, const input[], any:...) {
  563. new count = 1, players[32];
  564. static msg[191];
  565. vformat(msg, 190, input, 3);
  566.  
  567. replace_all(msg, 190, "!x04", "^4");
  568. replace_all(msg, 190, "!x01", "^1");
  569. replace_all(msg, 190, "!x03", "^3");
  570.  
  571. if(id) players[0] = id;
  572. else get_players(players, count, "ch"); {
  573. for(new i = 0; i < count; i++) {
  574. if(is_user_connected(players[i])) {
  575. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  576. write_byte(players[i]);
  577. write_string(msg);
  578. message_end();
  579. }
  580. }
  581. }
  582. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement