Advertisement
ejdrienxd

Untitled

Dec 27th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.81 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <cstrike>
  3. #include <engine>
  4. #include <fakemeta>
  5. #include <fun>
  6. #include <hamsandwich>
  7. #include <stripweapons>
  8. #include <colorchat>
  9.  
  10. new bool:g_Vip[33], gRound=0, menu,
  11. menu_callback_handler, skoki[33];
  12.  
  13. public plugin_init()
  14. {
  15. register_plugin("VIP CS:GO", "1.0", "Lukovsky");
  16.  
  17. register_clcmd("say /vip", "ShowMotd");
  18. register_clcmd("say /vips", "drukuj_vip");
  19.  
  20. register_event("DeathMsg", "DeathMsg", "a");
  21. register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
  22. register_event("TextMsg", "GameCommencing", "a", "2=#Game_will_restart_in");
  23. register_forward(FM_CmdStart, "CmdStartPre");
  24. RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
  25. register_message(get_user_msgid("ScoreAttrib"), "VipStatus");
  26. register_message(get_user_msgid("SayText"),"handleSayText");
  27. }
  28.  
  29. public client_authorized(id)
  30. {
  31. if(get_user_flags(id) & ADMIN_LEVEL_H){
  32. g_Vip[id]=true;
  33. }
  34. }
  35.  
  36. public client_disconnect(id)
  37. {
  38. g_Vip[id]=false;
  39. }
  40.  
  41. public drukuj_vip(id)
  42. {
  43. new licz=0, l=0, wskaz[7]=0, name[48], tekst[7][191];
  44. for(new i=1; i <= 32; i++)
  45. {
  46. if(!is_user_connected(i))
  47. continue;
  48.  
  49. if(is_user_hltv(i))
  50. continue;
  51.  
  52. if(is_user_bot(i))
  53. continue;
  54.  
  55. if((get_user_flags(i) & ADMIN_LEVEL_H))
  56. {
  57. licz++;
  58. l = ilosc_vip();
  59. get_user_name(i, name, 47);
  60.  
  61. if(licz > 0 && licz < 6)
  62. {
  63. wskaz[0] = 1;
  64. add(tekst[0], 190, name);
  65. if(licz == l) add(tekst[0], 190, ".");
  66. else add(tekst[0], 190, ", ");
  67. }
  68. else if(licz > 5 && licz < 11)
  69. {
  70. wskaz[1] = 1;
  71. add(tekst[1], 190, name);
  72. if(licz == l) add(tekst[1], 190, ".");
  73. else add(tekst[1], 190, ", ");
  74. }
  75. else if(licz > 10 && licz < 16)
  76. {
  77. wskaz[2] = 1;
  78. add(tekst[2], 190, name);
  79. if(licz == l) add(tekst[2], 190, ".");
  80. else add(tekst[2], 190, ", ");
  81. }
  82. else if(licz > 15 && licz < 21)
  83. {
  84. wskaz[3] = 1;
  85. add(tekst[3], 190, name);
  86. if(licz == l) add(tekst[3], 190, ".");
  87. else add(tekst[3], 190, ", ");
  88. }
  89. else if(licz > 20 && licz < 26)
  90. {
  91. wskaz[4] = 1;
  92. add(tekst[4], 190, name);
  93. if(licz == l) add(tekst[4], 190, ".");
  94. else add(tekst[4], 190, ", ");
  95. }
  96. else if(licz > 25 && licz < 31)
  97. {
  98. wskaz[5] = 1;
  99. add(tekst[5], 190, name);
  100. if(licz == l) add(tekst[5], 190, ".");
  101. else add(tekst[5], 190, ", ");
  102. }
  103. else if(licz > 30)
  104. {
  105. wskaz[6] = 1;
  106. add(tekst[6], 190, name);
  107. if(licz == l) add(tekst[6], 190, ".");
  108. else add(tekst[6], 190, ", ");
  109. }
  110. }
  111. }
  112.  
  113. if(wskaz[0] == 1)
  114. ColorChat(id, BLUE, "Vipy online:^x04 %s", tekst[0]);
  115. if(wskaz[1] == 1)
  116. ColorChat(id, GREEN, tekst[1]);
  117. if(wskaz[2] == 1)
  118. ColorChat(id, GREEN, tekst[2]);
  119. if(wskaz[3] == 1)
  120. ColorChat(id, GREEN, tekst[3]);
  121. if(wskaz[4] == 1)
  122. ColorChat(id, GREEN, tekst[4]);
  123. if(wskaz[5] == 1)
  124. ColorChat(id, GREEN, tekst[5]);
  125. if(wskaz[6] == 1)
  126. ColorChat(id, GREEN, tekst[6]);
  127. }
  128.  
  129. stock ilosc_vip()
  130. {
  131. new licz=0;
  132. for(new i=1; i <= 32; i++)
  133. {
  134. if(!is_user_connected(i) || is_user_bot(i) || is_user_hltv(i))
  135. continue;
  136.  
  137. if(get_user_flags(i) & ADMIN_LEVEL_H){
  138. licz++;
  139. }
  140. }
  141. return licz;
  142. }
  143.  
  144. public CmdStartPre(id, uc_handle)
  145. {
  146. if(g_Vip[id]){
  147. if(is_user_alive(id) && is_user_connected(id) && !is_user_hltv(id)){
  148. CmdStartPreVip(id, uc_handle);
  149. }
  150. }
  151. }
  152. public CmdStartPreVip(id, uc_handle)
  153. {
  154. new flags = pev(id, pev_flags);
  155. if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id]>0){
  156. --skoki[id];
  157. new Float:velocity[3];
  158. pev(id, pev_velocity,velocity);
  159. velocity[2] = random_float(265.0,285.0);
  160. set_pev(id,pev_velocity,velocity);
  161. } else if(flags & FL_ONGROUND && skoki[id]!=-1){
  162. skoki[id] = 1;
  163. }
  164.  
  165. return PLUGIN_CONTINUE;
  166. }
  167. public event_new_round(){
  168. ++gRound;
  169. }
  170. public GameCommencing(){
  171. gRound=0;
  172. }
  173. public SpawnedEventPre(id)
  174. {
  175. if(is_user_hltv(id))
  176. return PLUGIN_HANDLED;
  177.  
  178. if(get_user_flags(id) & ADMIN_LEVEL_H){
  179. g_Vip[id]=true;
  180. }
  181.  
  182. if(g_Vip[id]){
  183. if(is_user_alive(id)){
  184. SpawnedEventPreVip(id);
  185. }
  186. }
  187.  
  188. return PLUGIN_CONTINUE;
  189. }
  190. public SpawnedEventPreVip(id)
  191. {
  192. cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
  193. skoki[id]=(gRound>=1?1:-1);
  194. show_vip_menu(id);
  195. if(get_user_team(id)==2){
  196. give_item(id, "item_thighpack");
  197. }
  198. }
  199.  
  200. public menu_1_handler(id){
  201. new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0);
  202. give_item(id, "weapon_hegrenade");
  203. ++henum;
  204. new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0);
  205. give_item(id, "weapon_flashbang");
  206. ++fbnum;
  207. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  208. new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0);
  209. give_item(id, "weapon_smokegrenade");
  210. ++sgnum;
  211. StripWeapons(id, Secondary);
  212. give_item(id, "weapon_deagle");
  213. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  214. }
  215. public menu_2_handler(id){
  216. new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0);
  217. give_item(id, "weapon_hegrenade");
  218. ++henum;
  219. new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0);
  220. give_item(id, "weapon_flashbang");
  221. ++fbnum;
  222. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  223. new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0);
  224. give_item(id, "weapon_smokegrenade");
  225. ++sgnum;
  226. StripWeapons(id, Primary);
  227. StripWeapons(id, Secondary);
  228. give_item(id, "weapon_deagle");
  229. give_item(id, "weapon_famas");
  230. cs_set_user_bpammo(id, CSW_FAMAS, 90);
  231. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  232. }
  233. public menu_3_handler(id){
  234. new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0);
  235. give_item(id, "weapon_hegrenade");
  236. ++henum;
  237. new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0);
  238. give_item(id, "weapon_flashbang");
  239. ++fbnum;
  240. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  241. new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0);
  242. give_item(id, "weapon_smokegrenade");
  243. ++sgnum;
  244. StripWeapons(id, Primary);
  245. StripWeapons(id, Secondary);
  246. give_item(id, "weapon_deagle");
  247. give_item(id, "weapon_ak47");
  248. cs_set_user_bpammo(id, CSW_AK47, 90);
  249. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  250. }
  251. public menu_4_handler(id){
  252. new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0);
  253. give_item(id, "weapon_hegrenade");
  254. ++henum;
  255. new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0);
  256. give_item(id, "weapon_flashbang");
  257. ++fbnum;
  258. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  259. new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0);
  260. give_item(id, "weapon_smokegrenade");
  261. ++sgnum;
  262. StripWeapons(id, Primary);
  263. StripWeapons(id, Secondary);
  264. give_item(id, "weapon_deagle");
  265. give_item(id, "weapon_m4a1");
  266. cs_set_user_bpammo(id, CSW_M4A1, 90);
  267. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  268. }
  269. public menu_5_handler(id){
  270. new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0);
  271. give_item(id, "weapon_hegrenade");
  272. ++henum;
  273. new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0);
  274. give_item(id, "weapon_flashbang");
  275. ++fbnum;
  276. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  277. new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0);
  278. give_item(id, "weapon_smokegrenade");
  279. ++sgnum;
  280. StripWeapons(id, Primary);
  281. StripWeapons(id, Secondary);
  282. give_item(id, "weapon_deagle");
  283. give_item(id, "weapon_awp");
  284. cs_set_user_bpammo(id, CSW_AWP, 30);
  285. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  286. }
  287. public menu_6_handler(id){
  288. new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0);
  289. give_item(id, "weapon_hegrenade");
  290. ++henum;
  291. new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0);
  292. give_item(id, "weapon_flashbang");
  293. ++fbnum;
  294. cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
  295. new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0);
  296. give_item(id, "weapon_smokegrenade");
  297. ++sgnum;
  298. StripWeapons(id, Primary);
  299. StripWeapons(id, Secondary);
  300. give_item(id, "weapon_deagle");
  301. give_item(id, "weapon_m249");
  302. cs_set_user_bpammo(id, CSW_M249, 200);
  303. cs_set_user_bpammo(id, CSW_DEAGLE, 35);
  304. }
  305.  
  306. public DeathMsg()
  307. {
  308. new killer=read_data(1);
  309. new victim=read_data(2);
  310.  
  311. if(is_user_hltv(killer))
  312. return PLUGIN_HANDLED;
  313.  
  314. if(is_user_hltv(victim))
  315. return PLUGIN_HANDLED;
  316.  
  317. if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){
  318. DeathMsgVip(killer,victim,read_data(3));
  319. }
  320.  
  321. return PLUGIN_CONTINUE;
  322. }
  323. public DeathMsgVip(kid,vid,hs){
  324. set_user_health(kid, min(get_user_health(kid)+(hs?15:10),110));
  325. cs_set_user_money(kid, cs_get_user_money(kid)+(hs?800:500));
  326. }
  327.  
  328. public show_vip_menu(id){
  329. menu=menu_create("\rMenu VIPa","menu_handler");
  330. menu_callback_handler=menu_makecallback("menu_callback");
  331. new bool:active=false, num=-1;
  332.  
  333. menu_additem(menu,"\wDeagle + Granaty","",0,menu_callback_handler);
  334. if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
  335. active=true;
  336. }
  337.  
  338. menu_additem(menu,"\wFamas + Deagle + Granaty","",0,menu_callback_handler);
  339. if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
  340. active=true;
  341. }
  342. menu_additem(menu,"\wAK47 + Deagle + Granaty","",0,menu_callback_handler);
  343. if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
  344. active=true;
  345. }
  346. menu_additem(menu,"\wM4A1 + Deagle + Granaty","",0,menu_callback_handler);
  347. if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
  348. active=true;
  349. }
  350. menu_additem(menu,"\wAWP + Deagle + Granaty","",0,menu_callback_handler);
  351. if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
  352. active=true;
  353. }
  354. menu_additem(menu,"\wKrowa + Deagle + Granaty","",0,menu_callback_handler);
  355. if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
  356. active=true;
  357. }
  358. if(active){
  359. menu_setprop(menu,MPROP_EXITNAME,"Wyjscie");
  360. menu_setprop(menu,MPROP_TITLE,"\yMenu Vipa");
  361. menu_setprop(menu,MPROP_NUMBER_COLOR,"\r");
  362. menu_display(id, menu);
  363. } else {
  364. menu_destroy(menu);
  365. }
  366. }
  367. public menu_callback(id, menu, item){
  368. if(is_user_alive(id)){
  369. if(gRound>=1){
  370. if(item==0){
  371. return ITEM_ENABLED;
  372. }
  373. }
  374. if(gRound>=2){
  375. if(item==1){
  376. return ITEM_ENABLED;
  377. }
  378. }
  379. if(gRound>=3){
  380. if(item==2){
  381. return ITEM_ENABLED;
  382. }
  383. if(item==3){
  384. return ITEM_ENABLED;
  385. }
  386. if(item==4){
  387. return ITEM_ENABLED;
  388. }
  389. if(item==5){
  390. return ITEM_ENABLED;
  391. }
  392. }
  393. }
  394. return ITEM_DISABLED;
  395. }
  396. public menu_handler(id, menu, item){
  397. if(is_user_alive(id)){
  398. if(gRound>=1){
  399. if(item==0){
  400. menu_1_handler(id);
  401. }
  402. }
  403. if(gRound>=2){
  404. if(item==1){
  405. menu_2_handler(id);
  406. }
  407. }
  408. if(gRound>=3){
  409. if(item==2){
  410. menu_3_handler(id);
  411. }
  412. if(item==3){
  413. menu_4_handler(id);
  414. }
  415. if(item==4){
  416. menu_5_handler(id);
  417. }
  418. if(item==5){
  419. menu_6_handler(id);
  420. }
  421. }
  422. }
  423. menu_destroy(menu);
  424. return PLUGIN_HANDLED;
  425. }
  426. public VipStatus()
  427. {
  428. new id=get_msg_arg_int(1);
  429. if(is_user_alive(id) && !is_user_hltv(id) && g_Vip[id]){
  430. set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2)|4);
  431. }
  432.  
  433. return PLUGIN_CONTINUE;
  434. }
  435.  
  436. public ShowMotd(id){
  437. show_motd(id, "vip.txt", "Informacje o vipie");
  438. }
  439.  
  440. public handleSayText(msgId,msgDest,msgEnt)
  441. {
  442. new id = get_msg_arg_int(1);
  443.  
  444. if(!is_user_connected(id))
  445. return PLUGIN_CONTINUE;
  446.  
  447. if(g_Vip[id])
  448. {
  449. new szTmp[192],szTmp2[192];
  450. get_msg_arg_string(2,szTmp, charsmax( szTmp ) );
  451. new szPrefix[64];
  452.  
  453. if(g_Vip[id]) formatex(szPrefix,charsmax( szPrefix ),"^x01*^x03[VIP]^x01*");
  454.  
  455. if(!equal(szTmp,"#Cstrike_Chat_All"))
  456. {
  457. add(szTmp2, charsmax(szTmp2), "^x01");
  458. add(szTmp2, charsmax(szTmp2), szPrefix);
  459. add(szTmp2, charsmax(szTmp2), " ");
  460. add(szTmp2, charsmax(szTmp2), szTmp);
  461. }
  462. else
  463. {
  464. new szPlayerName[64];
  465. get_user_name(id, szPlayerName, charsmax(szPlayerName));
  466.  
  467. get_msg_arg_string(4, szTmp, charsmax(szTmp));
  468. set_msg_arg_string(4, "");
  469.  
  470. add(szTmp2, charsmax(szTmp2), "^x01");
  471. add(szTmp2, charsmax(szTmp2), szPrefix);
  472. add(szTmp2, charsmax(szTmp2), "^x03 ");
  473. add(szTmp2, charsmax(szTmp2), szPlayerName);
  474. add(szTmp2, charsmax(szTmp2), "^x01 : ");
  475. add(szTmp2, charsmax(szTmp2), szTmp)
  476. }
  477. set_msg_arg_string(2, szTmp2);
  478. }
  479. return PLUGIN_CONTINUE;
  480. }
  481. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  482. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
  483. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement