Advertisement
Guest User

Untitled

a guest
Mar 24th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.71 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <cstrike>
  3. #include <fun>
  4. #include <hamsandwich>
  5. #include <engine>
  6. #include <fakemeta>
  7. #include <fakemeta_util>
  8. #include <colorchat>
  9.  
  10. #define VIP_LEVEL_ACCES ADMIN_LEVEL_H
  11. #define VIP_Menu 3 // Incepand cu spawn-ul respectiv
  12.  
  13. #define SCOREATTRIB_NONE 0
  14. #define SCOREATTRIB_DEAD ( 1 << 0 )
  15. #define SCOREATTRIB_BOMB ( 1 << 1 )
  16. #define SCOREATTRIB_VIP ( 1 << 2 )
  17.  
  18. #define REMOVE_FLAGS "r"
  19.  
  20. new const RMaps [ ] [ ] =
  21. {
  22. "35hp_gx",
  23. "35hp_2",
  24. "awp_india"
  25.  
  26. };
  27.  
  28. new const g_szBeginning[ ] = "Membrii VIP"
  29.  
  30. new runda_spawn_vip
  31.  
  32. const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
  33. const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);
  34.  
  35. new g_szMessage[ 256 ];
  36. new cvar_vip_maxap, cvar_vip_maxhp, cvar_vip_showC, cvar_vip_showH, cvar_vip_in_out, cvar_tag, cvar_start_hp, cvar_start_ap, cvar_start_money, cvar_vip_jump, cvar_hp_kill, cvar_ap_kill, jumpnum[33], bool: dojump[33], bool:use[33], SyncHudMessage;
  37.  
  38. public plugin_init()
  39. {
  40. register_plugin("Classic VIP-FIROGINAL.RO", "5.0.2", "Devil aKa. StefaN@CSX");
  41.  
  42. RegisterHam(Ham_Spawn, "player", "Spawn", 1);
  43.  
  44. // register_clcmd("say /vmenu", "vip_menu", -1);
  45. register_clcmd("say /vip", "vip_info");
  46. register_clcmd("say", "handle_say");
  47. register_clcmd("say_team", "handle_say");
  48.  
  49. register_event("DeathMsg", "eDeathMsg", "a");
  50. register_event("HLTV", "Event_NewRound", "a", "1=0", "2=0");
  51. register_message(get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib");
  52.  
  53. cvar_tag = register_cvar("amx_vip_tag", "VIP");
  54. cvar_start_hp = register_cvar("amx_start_hp", "100");
  55. cvar_start_ap = register_cvar("amx_start_ap", "100");
  56. cvar_start_money = register_cvar("amx_start_money", "4000");
  57. cvar_vip_jump = register_cvar("amx_vip_jump", "1" );
  58. cvar_hp_kill = register_cvar("amx_vip_addhp", "10");
  59. cvar_ap_kill = register_cvar("amx_vip_addap", "10");
  60. cvar_vip_in_out = register_cvar("amx_vip_in_out", "1");
  61. cvar_vip_showC = register_cvar("amx_vip_show_chat", "1");
  62. cvar_vip_showH = register_cvar("amx_vip_show_hud", "0");
  63. cvar_vip_maxhp = register_cvar("amx_vip_maxhp", "110");
  64. cvar_vip_maxap = register_cvar("amx_vip_maxap", "100");
  65.  
  66.  
  67.  
  68.  
  69. set_task(120.0, "mesaj_info", _, _, _, "b");
  70. set_task( 1.0, "TaskDisplayVips", _, _, _, "b", 0 );
  71. SyncHudMessage = CreateHudSyncObj( );
  72.  
  73. }
  74.  
  75. public Event_NewRound()
  76. {
  77. arrayset(use, false, 33);
  78. }
  79.  
  80. public vip_menu(id)
  81. {
  82. if(!is_user_alive(id))
  83. return;
  84.  
  85. new menu
  86. switch(cs_get_user_team(id))
  87. {
  88. case CS_TEAM_CT:
  89. {
  90. menu = menu_create("\\PITESTI [\\VIP Classic\\] \\Meniu \\VIP", "menu_ammunition");
  91. menu_additem(menu, "M4a1+Deagle+Set grenazi", "1", VIP_LEVEL_ACCES);
  92. menu_additem(menu, "Ak47+Deagle+Set grenazi", "2", VIP_LEVEL_ACCES);
  93. menu_additem(menu, "Awp+Deagle+Set grenazi", "3", VIP_LEVEL_ACCES);
  94. }
  95.  
  96. case CS_TEAM_T:
  97. {
  98. menu = menu_create("\\PITESTI [\\VIP Classic\\] \\Meniu \\VIP", "menu_ammunition");
  99. menu_additem(menu, "Ak47+Deagle+Set grenazi", "1", VIP_LEVEL_ACCES);
  100. menu_additem(menu, "M4a1+Deagle+Set grenazi", "2", VIP_LEVEL_ACCES);
  101. menu_additem(menu, "Awp+Deagle+Set grenazi", "3", VIP_LEVEL_ACCES);
  102. }
  103. }
  104. menu_display(id, menu, 0)
  105. }
  106.  
  107. public menu_ammunition ( id, menu, item )
  108. {
  109. new tag[32];
  110. get_pcvar_string(cvar_tag, tag, charsmax(tag));
  111.  
  112. if(use[id])
  113. {
  114. ColorChat(id, GREEN,"^3[%s] ^1Meniul poate fi folosit doar o data pe runda !", tag);
  115. return PLUGIN_HANDLED;
  116. }
  117.  
  118. if(item == MENU_EXIT)
  119. {
  120. return PLUGIN_HANDLED;
  121. }
  122.  
  123. new data[6], szName[64];
  124. new access, callback;
  125. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  126. new key = str_to_num(data);
  127.  
  128. if(cs_get_user_team(id) == CS_TEAM_CT)
  129. switch(key)
  130. {
  131. case 1:
  132. {
  133. drop_weapons(id, 1)
  134. drop_weapons(id, 2)
  135. give_item(id, "weapon_knife");
  136. give_item(id, "weapon_m4a1");
  137. give_item(id, "weapon_deagle");
  138. give_item(id, "weapon_hegrenade");
  139. give_item(id, "weapon_flashbang");
  140. give_item(id, "item_thighpack");
  141. cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
  142. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  143. cs_set_user_bpammo(id, CSW_M4A1, 90);
  144. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  145. ColorChat(id,GREEN,"^3[%s] ^1Ai ales ^4M4a1^1+^4Deagle^1+^4Set grenazi^1.",tag);
  146. }
  147. case 2:
  148. {
  149. drop_weapons(id, 1)
  150. drop_weapons(id, 2)
  151. give_item(id, "weapon_knife");
  152. give_item(id, "weapon_ak47");
  153. give_item(id, "weapon_deagle");
  154. give_item(id, "weapon_hegrenade");
  155. give_item(id, "weapon_flashbang");
  156. give_item(id, "item_thighpack");
  157.  
  158. cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
  159. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  160. cs_set_user_bpammo(id, CSW_AK47, 90);
  161. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  162. ColorChat(id,GREEN,"^3[%s] ^1Ai ales ^4Ak47^1+^4Deagle^1+^4Set grenazi^1.",tag);
  163. }
  164. case 3:
  165. {
  166. drop_weapons(id, 1)
  167. drop_weapons(id, 2)
  168. give_item(id, "weapon_knife");
  169. give_item(id, "weapon_awp");
  170. give_item(id, "weapon_deagle");
  171. give_item(id, "weapon_hegrenade");
  172. give_item(id, "weapon_flashbang");
  173. give_item(id, "item_thighpack");
  174. cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
  175. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  176. cs_set_user_bpammo(id, CSW_AWP, 30);
  177. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  178. ColorChat(id,GREEN,"^3[%s] ^1Ai ales ^4Awp^1+^4Deagle^1+^4Set grenazi^1.",tag);
  179. }
  180. }
  181. if(cs_get_user_team(id) == CS_TEAM_T)
  182. switch(key)
  183. {
  184. case 1:
  185. {
  186. drop_weapons(id, 1)
  187. drop_weapons(id, 2)
  188. give_item(id, "weapon_knife");
  189. give_item(id, "weapon_ak47");
  190. give_item(id, "weapon_deagle");
  191. give_item(id, "weapon_hegrenade");
  192. give_item(id, "weapon_flashbang");
  193. give_item(id, "item_thighpack");
  194. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  195. cs_set_user_bpammo(id, CSW_AK47, 90);
  196. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  197. ColorChat(id,GREEN,"^3[%s] ^1Ai ales ^4Ak47^1+^4Deagle^1+^4Set grenazi^1.",tag);
  198. }
  199. case 2:
  200. {
  201. drop_weapons(id, 1)
  202. drop_weapons(id, 2)
  203. give_item(id, "weapon_knife");
  204. give_item(id, "weapon_m4a1");
  205. give_item(id, "weapon_deagle");
  206. give_item(id, "weapon_hegrenade");
  207. give_item(id, "weapon_flashbang");
  208. give_item(id, "item_thighpack");
  209. cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
  210. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  211. cs_set_user_bpammo(id, CSW_M4A1, 90);
  212. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  213. ColorChat(id,GREEN,"^3[%s] ^1Ai ales ^4M4a1^1+^4Deagle^1+^4Set grenazi^1.",tag);
  214. }
  215. case 3:
  216. {
  217. drop_weapons(id, 1)
  218. drop_weapons(id, 2)
  219. give_item(id, "weapon_knife");
  220. give_item(id, "weapon_awp");
  221. give_item(id, "weapon_deagle");
  222. give_item(id, "weapon_hegrenade");
  223. give_item(id, "weapon_flashbang");
  224. give_item(id, "item_thighpack");
  225. cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
  226. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  227. cs_set_user_bpammo(id, CSW_AWP, 30);
  228. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  229. ColorChat(id,GREEN,"^3[%s] ^1Ai ales ^4Awp^1+^4Deagle^1+^4Set grenazi^1.",tag);
  230. }
  231. }
  232. menu_destroy(menu);
  233. use[id] = true;
  234. return PLUGIN_HANDLED;
  235. }
  236.  
  237. public Spawn(id)
  238. {
  239. if(!is_user_alive(id))
  240. return;
  241. runda_spawn_vip++
  242. new CsTeams:team = cs_get_user_team(id)
  243. if(get_user_flags(id) & VIP_LEVEL_ACCES)
  244. {
  245. switch(team)
  246. {
  247. case CS_TEAM_T:
  248. {
  249. set_user_health(id, get_pcvar_num(cvar_start_hp));
  250. set_user_armor(id, get_pcvar_num(cvar_start_ap));
  251. cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(cvar_start_money));
  252. if(runda_spawn_vip >= VIP_Menu) vip_menu(id)
  253. }
  254. case CS_TEAM_CT:
  255. {
  256. set_user_health(id, get_pcvar_num( cvar_start_hp ));
  257. set_user_armor(id, get_pcvar_num( cvar_start_ap ));
  258. cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(cvar_start_money));
  259. if(runda_spawn_vip >= VIP_Menu) vip_menu(id)
  260. }
  261. }
  262. }
  263.  
  264. new MapName[32]; get_mapname(MapName, sizeof(MapName));
  265. for (new i = 0; i < sizeof (RMaps); i ++)
  266. {
  267. if(equali (MapName, RMaps[i]))
  268. {
  269. remove_user_flags (id, read_flags(REMOVE_FLAGS));
  270. }
  271. }
  272. }
  273.  
  274. public client_putinserver(id)
  275. {
  276. set_task(2.0, "in", id);
  277.  
  278. jumpnum[id] = 0;
  279. dojump[id] = false;
  280. }
  281.  
  282. public client_disconnect( id )
  283. {
  284. set_task(2.0, "out", id);
  285.  
  286. jumpnum[id] = 0;
  287. dojump[id] = false;
  288. }
  289.  
  290. public client_PreThink( id )
  291. {
  292. if(!is_user_alive(id))
  293. return PLUGIN_CONTINUE;
  294.  
  295. new BUTON = get_user_button(id)
  296. new OLDBUTON = get_user_oldbutton(id)
  297. new JUMP_VIP = get_pcvar_num(cvar_vip_jump)
  298.  
  299. if((BUTON & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(OLDBUTON & IN_JUMP))
  300. {
  301. if(((get_user_flags(id) & VIP_LEVEL_ACCES) && (jumpnum[id] < JUMP_VIP)))
  302. {
  303. dojump[id] = true
  304. jumpnum[id]++
  305. }
  306. }
  307.  
  308. if((BUTON & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
  309. {
  310. jumpnum[id] = 0
  311. }
  312.  
  313. return PLUGIN_CONTINUE;
  314. }
  315.  
  316. public client_PostThink(id)
  317. {
  318. if(!is_user_alive(id))
  319. return PLUGIN_CONTINUE;
  320.  
  321. if(dojump[id] == true)
  322. {
  323. new Float: velocity[3]
  324. entity_get_vector(id, EV_VEC_velocity, velocity)
  325. velocity[2] = random_float(265.0, 285.0)
  326. entity_set_vector(id, EV_VEC_velocity, velocity)
  327. dojump[id] = false
  328. }
  329. return PLUGIN_CONTINUE;
  330. }
  331.  
  332. public eDeathMsg()
  333. {
  334. new id_Killer = read_data(1);
  335. new VIP_MAXHP = get_pcvar_num(cvar_vip_maxhp);
  336. new VIP_MAX_HP = get_user_health(id_Killer);
  337. new VIP_MAXAP = get_pcvar_num(cvar_vip_maxap);
  338. new VIP_MAX_AP = get_user_armor(id_Killer);
  339.  
  340. if(is_user_alive(id_Killer))
  341. {
  342. if(get_user_flags(id_Killer) & VIP_LEVEL_ACCES )
  343. {
  344. set_user_health(id_Killer, get_user_health(id_Killer) + get_pcvar_num(cvar_hp_kill));
  345. set_user_armor(id_Killer, get_user_armor(id_Killer) + get_pcvar_num(cvar_ap_kill));
  346. }
  347. }
  348.  
  349. if(VIP_MAX_HP >= VIP_MAXHP)
  350. {
  351. set_user_health(id_Killer, get_pcvar_num(cvar_vip_maxhp));
  352. return PLUGIN_HANDLED;
  353. }
  354.  
  355. if(VIP_MAX_AP >= VIP_MAXAP)
  356. {
  357. set_user_armor(id_Killer, get_pcvar_num(cvar_vip_maxap));
  358. return PLUGIN_HANDLED;
  359. }
  360.  
  361. return PLUGIN_HANDLED;
  362. }
  363.  
  364. public in(id)
  365. {
  366. if(get_pcvar_num(cvar_vip_in_out))
  367. {
  368. new tag[32], name[32];
  369.  
  370. get_pcvar_string(cvar_tag, tag, charsmax(tag));
  371. get_user_name(id, name, charsmax(name));
  372.  
  373. if(get_user_flags(id) & VIP_LEVEL_ACCES)
  374. {
  375. ColorChat(0, GREEN, "^3[%s] ^4%s ^1s-a conectat.", tag, name);
  376. }
  377. return PLUGIN_HANDLED;
  378. }
  379. return PLUGIN_CONTINUE;
  380. }
  381.  
  382. public out(id)
  383. {
  384. if(get_pcvar_num(cvar_vip_in_out))
  385. {
  386. new tag[32], name[32];
  387.  
  388. get_pcvar_string(cvar_tag, tag, charsmax(tag));
  389. get_user_name(id, name, charsmax(name));
  390.  
  391. if(get_user_flags(id) & VIP_LEVEL_ACCES)
  392. {
  393. ColorChat(0, GREEN, "^3[%s] ^4%s ^1s-a deconectat.", tag, name);
  394. }
  395. return PLUGIN_HANDLED;
  396. }
  397. return PLUGIN_CONTINUE;
  398. }
  399.  
  400. public vip_info(id)
  401. {
  402. show_motd(id, "/addons/amxmodx/configs/vip_info.html");
  403. }
  404.  
  405. public mesaj_info()
  406. {
  407. new tag[32];
  408. get_pcvar_string(cvar_tag, tag, charsmax(tag));
  409.  
  410. ColorChat(0, GREEN, "^3[%s] ^1Tastati in chat ^4/vip ^1pentru a vedea beneficiile si pretul vip-ului.", tag);
  411. }
  412.  
  413. public TaskDisplayVips( )
  414. {
  415. if(get_pcvar_num(cvar_vip_showH))
  416. {
  417. static iPlayers[ 32 ];
  418. static iPlayersNum;
  419.  
  420. get_players( iPlayers, iPlayersNum, "ch" );
  421. if( !iPlayersNum )
  422. return 1;
  423.  
  424. static iVipsConnected, szVipsNames[ 128 ], szName[ 32 ];
  425. formatex( szVipsNames, sizeof ( szVipsNames ) -1, "" ); // Is this needed ?
  426. iVipsConnected = 0;
  427.  
  428. static id, i;
  429. for( i = 0; i < iPlayersNum; i++ )
  430. {
  431. id = iPlayers[ i ];
  432. if( get_user_flags( id ) & VIP_LEVEL_ACCES )
  433. {
  434. get_user_name( id, szName, sizeof ( szName ) -1 );
  435.  
  436. add( szVipsNames, sizeof ( szVipsNames ) -1, szName );
  437. add( szVipsNames, sizeof ( szVipsNames ) -1, "^n" );
  438.  
  439. iVipsConnected++;
  440. }
  441. }
  442.  
  443. formatex( g_szMessage, sizeof ( g_szMessage ) -1, "%s ( %i )^n%s",
  444. g_szBeginning, iVipsConnected, szVipsNames );
  445.  
  446. set_hudmessage( 25, 255, 25, 0.01, 0.25, 0, 0.0, 1.0, 0.1, 0.1, -1 );
  447. ShowSyncHudMsg( 0, SyncHudMessage, g_szMessage );
  448. }
  449. return PLUGIN_CONTINUE;
  450.  
  451. }
  452.  
  453. public handle_say(id)
  454. {
  455. new said[192];
  456. read_args(said,192);
  457. if(contain(said, "/vips") != -1)
  458. set_task(0.1,"print_adminlist",id);
  459. return PLUGIN_CONTINUE;
  460. }
  461.  
  462. public print_adminlist(user)
  463. {
  464. if(get_pcvar_num(cvar_vip_showC))
  465. {
  466. new tag[32];
  467. get_pcvar_string(cvar_tag, tag, charsmax(tag));
  468.  
  469. new adminnames[33][32];
  470. new message[256];
  471. new id, count, x, len;
  472.  
  473. for(id = 1 ; id <= get_maxplayers() ; id++)
  474. if(is_user_connected(id))
  475. if(get_user_flags(id) & VIP_LEVEL_ACCES)
  476. get_user_name(id, adminnames[count++], charsmax(adminnames[ ]));
  477.  
  478. len = format(message, 255, "^3[%s] ^1VIP-ii online sunt:^4 " ,tag);
  479. if(count > 0)
  480. {
  481. for(x = 0 ; x < count ; x++)
  482. {
  483. len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"");
  484. if(len > 96)
  485. {
  486. print_message(user, message);
  487. len = format(message, 255, " ");
  488. }
  489. }
  490. print_message(user, message);
  491. }
  492. else
  493. {
  494. ColorChat(0, GREEN, "^3[%s] ^1Nu sunt ^4VIP^1-i online.", tag);
  495. }
  496. }
  497. return PLUGIN_CONTINUE;
  498. }
  499.  
  500. print_message(id, msg[])
  501. {
  502. message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
  503. write_byte(id);
  504. write_string(msg);
  505. message_end();
  506. }
  507.  
  508. public MessageScoreAttrib(iMsgID, iDest, iReceiver) // Display VIP pe TAB
  509. {
  510. new iPlayer = get_msg_arg_int(1);
  511. if(is_user_connected( iPlayer )
  512. && (get_user_flags( iPlayer ) & VIP_LEVEL_ACCES))
  513. {
  514. set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
  515. }
  516. }
  517.  
  518. stock drop_weapons(id, dropwhat)
  519. {
  520. static Weapons[32], Num, i, WeaponID;
  521. Num = 0;
  522. get_user_weapons(id, Weapons, Num);
  523. for(i = 0; i < Num; i ++)
  524. {
  525. WeaponID = Weapons[i];
  526. if((dropwhat == 1 && ((1 << WeaponID) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1 << WeaponID) & SECONDARY_WEAPONS_BIT_SUM )))
  527. {
  528. static DropName[32], WeaponEntity;
  529. get_weaponname(WeaponID, DropName, charsmax(DropName));
  530. WeaponEntity = fm_find_ent_by_owner(-1, DropName, id);
  531. set_pev(WeaponEntity, pev_iuser1, cs_get_user_bpammo (id, WeaponID));
  532. engclient_cmd(id, "drop", DropName);
  533. cs_set_user_bpammo(id, WeaponID, 0);
  534. }
  535. }
  536. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement