Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Wklejka wai8rtmygeo dodana przez djmiw, 12.06.2013 17:44
Typ:



1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
616.
617.
618.
619.
620.
621.
622.
623.
624.
625.
626.
627.
628.
629.
630.
631.
632.
633.
634.
635.
636.
637.
638.
639.
640.
641.
642.
643.
644.
645.
646.
647.
648.
649.
650.
651.
652.
653.
654.
655.
656.
657.
658.
659.
660.
661.
662.
663.
664.
665.
666.
667.
668.
669.
670.
671.
672.
673.
674.
675.
676.
677.
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
691.
692.
693.
694.
695.
696.
697.
698.
699.
700.
701.
702.
703.
704.
705.
706.
707.
708.
709.
710.
711.
712.
713.
714.
715.
716.
717.
718.
719.
720.
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
747.
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
761.
762.
763.
764.
765.
766.
767.
768.
769.
770.
771.
772.
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
786.
787.
788.
789.
790.
791.
792.
793.
794.
795.
796.
797.
798.
799.
800.
801.
802.
803.
804.
805.
806.
807.
808.
809.
810.
811.
812.
813.
814.
815.
816.
817.
818.
819.
820.
821.
822.
823.
824.
825.
826.
827.
828.
829.
830.
831.
832.
833.
834.
835.
836.
837.
838.
839.
840.
841.
842.
843.
844.
845.
846.
847.
848.
849.
850.
851.
852.
853.
854.
855.
856.
857.
858.
859.
860.
861.
862.
863.
864.
865.
866.
867.
868.
869.
870.
871.
872.
873.
874.
875.
876.
877.
878.
879.
880.
881.
882.
883.
884.
885.
886.
887.
888.
889.
890.
891.
892.
893.
894.
895.
896.
897.
898.
899.
900.
901.
902.
903.
904.
905.
906.
907.
908.
909.
910.
911.
912.
913.
914.
915.
916.
917.
918.
919.
920.
921.
922.
923.
924.
925.
926.
927.
928.
929.
930.
931.
932.
933.
934.
935.
936.
937.
938.
939.
940.
941.
942.
943.
944.
945.
946.
947.
948.
949.
950.
951.
952.
953.
954.
955.
956.
957.
958.
959.
960.
961.
962.
963.
964.
965.
966.
967.
968.
969.
970.
971.
972.
973.
974.
975.
976.
977.
978.
979.
980.
981.
982.
983.
984.
985.
986.
987.
988.
989.
990.
991.
992.
993.
994.
995.
996.
997.
998.
999.
1000.
1001.
1002.
1003.
1004.
1005.
1006.
1007.
1008.
1009.
1010.
1011.
1012.
1013.
1014.
1015.
1016.
1017.
1018.
1019.
1020.
1021.
1022.
1023.
1024.
1025.
1026.
1027.
1028.
1029.
1030.
1031.
1032.
1033.
1034.
1035.
1036.
1037.
1038.
1039.
1040.
1041.
1042.
1043.
1044.
1045.
1046.
1047.
1048.
1049.
1050.
1051.
1052.
1053.
1054.
1055.
1056.
1057.
1058.
1059.
1060.
1061.
1062.
1063.
1064.
1065.
1066.
1067.
1068.
1069.
1070.
1071.
1072.
1073.
1074.
1075.
1076.
1077.
1078.
1079.
1080.
1081.
1082.
1083.
1084.
1085.
1086.
1087.
1088.
1089.
1090.
1091.
1092.
1093.
1094.
1095.
1096.
1097.
1098.
1099.
1100.
1101.
1102.
1103.
1104.
1105.
1106.
1107.
1108.
1109.
1110.
1111.
1112.
1113.
1114.
1115.
1116.
1117.
1118.
1119.
1120.
1121.
1122.
1123.
1124.
1125.
1126.
1127.
1128.
1129.
1130.
1131.
1132.
1133.
1134.
1135.
1136.
1137.
1138.
1139.
1140.
1141.
1142.
1143.
1144.
1145.
1146.
1147.
1148.
1149.
1150.
1151.
1152.
1153.
1154.
1155.
1156.
1157.
1158.
1159.
1160.
1161.
1162.
1163.
1164.
1165.
1166.
1167.
1168.
1169.
1170.
1171.
1172.
1173.
1174.
1175.
1176.
1177.
1178.
1179.
1180.
1181.
1182.
1183.
1184.
1185.
1186.
1187.
1188.
1189.
1190.
1191.
1192.
1193.
1194.
1195.
1196.
1197.
1198.
1199.
1200.
1201.
1202.
1203.
1204.
1205.
1206.
1207.
1208.
1209.
1210.
1211.
1212.
1213.
1214.
1215.
1216.
1217.
1218.
1219.
1220.
1221.
1222.
1223.
1224.
1225.
1226.
1227.
1228.
1229.
1230.
1231.
1232.
1233.
1234.
1235.
1236.
1237.
1238.
1239.
1240.
1241.
1242.
1243.
1244.
1245.
1246.
1247.
1248.
1249.
1250.
1251.
1252.
1253.
1254.
1255.
1256.
1257.
1258.
1259.
1260.
1261.
1262.
1263.
1264.
1265.
1266.
1267.
1268.
1269.
1270.
1271.
1272.
1273.
1274.
1275.
1276.
1277.
1278.
1279.
1280.
1281.
1282.
1283.
1284.
1285.
1286.
1287.
1288.
1289.
1290.
1291.
1292.
1293.
1294.
1295.
1296.
1297.
1298.
1299.
1300.
1301.
1302.
1303.
1304.
1305.
1306.
1307.
1308.
1309.
1310.
1311.
1312.
1313.
1314.
1315.
1316.
1317.
1318.
1319.
1320.
1321.
1322.
1323.
1324.
1325.
1326.
1327.
1328.
1329.
1330.
1331.
1332.
1333.
1334.
1335.
1336.
1337.
1338.
1339.
1340.
1341.
1342.
1343.
1344.
1345.
1346.
1347.
1348.
1349.
1350.
1351.
1352.
1353.
1354.
1355.
1356.
1357.
1358.
1359.
1360.
1361.
1362.
1363.
1364.
1365.
1366.
1367.
1368.
1369.
1370.
1371.
1372.
1373.
1374.
1375.
1376.
1377.
1378.
1379.
1380.
1381.
1382.
1383.
1384.
1385.
1386.
1387.
1388.
1389.
1390.
1391.
1392.
1393.
1394.
1395.
1396.
1397.
1398.
1399.
1400.
1401.
1402.
1403.
1404.
1405.
1406.
1407.
1408.
1409.
1410.
1411.
1412.
1413.
1414.
1415.
1416.
1417.
1418.
1419.
1420.
1421.
1422.
1423.
1424.
1425.
1426.
1427.
1428.
1429.
1430.
1431.
1432.
1433.
1434.
1435.
1436.
1437.
1438.
1439.
1440.
1441.
1442.
1443.
1444.
1445.
1446.
1447.
1448.
1449.
1450.
1451.
1452.
1453.
1454.
1455.
1456.
1457.
1458.
1459.
1460.
1461.
1462.
1463.
1464.
1465.
1466.
1467.
1468.
1469.
1470.
1471.
1472.
1473.
1474.
1475.
1476.
1477.
1478.
1479.
1480.
1481.
1482.
1483.
1484.
1485.
1486.
1487.
1488.
1489.
1490.
1491.
1492.
1493.
1494.
1495.
1496.
1497.
1498.
1499.
1500.
1501.
1502.
1503.
1504.
#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <engine>
#include <fakemeta>
#include <fun>
#include <xs>
#include "wyzwania.inl"
 
#define PLUGIN "KillStreak"
#define VERSION "1.4c"
#define AUTHOR "Cypis"
 
#define MAX_DIST 8192.0
#define MAX 32
 
//Jak odkomentujemy to sentry gun nie bedzie dzialal na tarcze jak bd mial ja gracz
#define TARCZA
 
#define COD_NOWY
 
new const maxAmmo[31]={0,52,0,90,1,32,1,100,90,1,120,100,100,90,90,90,100,120,30,120,200,32,90,120,90,2,35,90,90,0,100};
new sprite_blast, cache_trail;
 
new SyncHudObj;
 
new licznik_zabic[MAX+1], bool:radar[2], bool:nalot[MAX+1], bool:predator[MAX+1], bool:nuke[MAX+1], bool:emp[MAX+1], bool:cuav[MAX+1], bool:uav[MAX+1], bool:pack[MAX+1], bool:sentrys[MAX+1];
new user_controll[MAX+1], emp_czasowe = 0, bool:nuke_koniec;
new PobraneOrigin[3], ZmienKilla[2], bool:airdrop[MAX+1];
 
new msgHostagePos, msgHostageK, msgHideWeapon, msgScreenShake, msgBarTime, msgScreenFade;
 
public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
 
	register_think("sentry","SentryThink");
 
	register_touch("predator", "*", "touchedpredator");
	register_touch("bomb", "*", "touchedrocket");
 
	register_forward(FM_ClientKill, "cmdKill");
 
	RegisterHam(Ham_TakeDamage, "func_breakable", "TakeDamage");
	RegisterHam(Ham_Killed, "player", "SmiercGracza", 1);
 
	register_event("CurWeapon","CurWeapon","be", "1=1");
	register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
	register_message(get_user_msgid("DeathMsg"), "message_DeathMsg");
 
	register_cvar("ks_hpsentry", "2500");
 
	register_clcmd("say /ks", "UzyjNagrody");
	register_clcmd("say /ks2", "SzybszeUzycie");
	register_clcmd("say /killstreak", "UzyjNagrody");
 
	msgHostagePos = get_user_msgid("HostagePos");
	msgHostageK = get_user_msgid("HostageK");
	msgHideWeapon = get_user_msgid("HideWeapon");
	msgScreenShake = get_user_msgid("ScreenShake");
	msgBarTime = get_user_msgid("BarTime");
	msgScreenFade = get_user_msgid("ScreenFade");
 
	SyncHudObj = CreateHudSyncObj(4);
 
	set_task(2.0,"radar_scan", .flags="b");
 
	ks_plugin_init();
}
 
public plugin_precache()
{
	sprite_blast = precache_model("sprites/dexplo.spr");
	cache_trail = precache_model("sprites/smoke.spr");
 
	precache_model("models/p_hegrenade.mdl");
	precache_model("models/cod_carepackage.mdl");
	precache_model("models/cod_plane.mdl");
	precache_model("models/cod_predator.mdl");
	precache_model("models/sentrygun_mw2.mdl");
 
	precache_sound("mw/nuke_friend.wav");
	precache_sound("mw/nuke_enemy.wav");
	precache_sound("mw/nuke_give.wav");
 
	precache_sound("mw/jet_fly1.wav");
	//precache_sound("mw/jet_fly2.wav");
 
	precache_sound("mw/emp_effect.wav");
	precache_sound("mw/emp_friend.wav");
	precache_sound("mw/emp_enemy.wav");
	precache_sound("mw/emp_give.wav");
 
	precache_sound("mw/counter_friend.wav");
	precache_sound("mw/counter_enemy.wav");
	precache_sound("mw/counter_give.wav");
 
	precache_sound("mw/air_friend.wav");
	precache_sound("mw/air_enemy.wav");
	precache_sound("mw/air_give.wav");
 
	precache_sound("mw/predator_friend.wav");
	precache_sound("mw/predator_enemy.wav");
	precache_sound("mw/predator_give.wav");
 
	precache_sound("mw/uav_friend.wav");
	precache_sound("mw/uav_enemy.wav");
	precache_sound("mw/uav_give.wav");
 
	precache_sound("mw/carepackage_friend.wav");
	precache_sound("mw/carepackage_enemy.wav");
	precache_sound("mw/carepackage_give.wav");
 
	precache_sound("mw/firemw.wav");
	precache_sound("mw/plant.wav");
	precache_sound("mw/sentrygun_starts.wav");
	precache_sound("mw/sentrygun_stops.wav");
	precache_sound("mw/sentrygun_gone.wav");
	precache_sound("mw/sentrygun_friend.wav");
	precache_sound("mw/sentrygun_enemy.wav");
	precache_sound("mw/sentrygun_give.wav");
 
	precache_sound("mw/emergairdrop_friend.wav");
	precache_sound("mw/emergairdrop_enemy.wav");
	precache_sound("mw/emergairdrop_give.wav");
 
	precache_model("models/computergibs.mdl");
	ks_plugin_precache();
}
 
public SzybszeUzycie(id)
{
	if(!is_user_alive(id) || (emp_czasowe && cs_get_user_team(id) != cs_get_user_team(emp_czasowe)))
		return PLUGIN_CONTINUE;
 
	if(uav[id] && !cuav[id] && !pack[id] && !predator[id] && !sentrys[id] && !nalot[id] && !airdrop[id] && !emp[id] && !nuke[id])
		CreateUVA(id);
 
	if(cuav[id] && !pack[id] && !predator[id] && !sentrys[id] && !nalot[id] && !airdrop[id] && !emp[id] && !nuke[id])
		CreateCUVA(id);
 
	if(pack[id] && !predator[id] && !sentrys[id] && !nalot[id] && !airdrop[id] && !emp[id] && !nuke[id])
		CreatePack(id);
 
	if(predator[id] && !sentrys[id] && !nalot[id] && !airdrop[id] && !emp[id] && !nuke[id])
		CreatePredator(id);
 
	if(sentrys[id] && !nalot[id] && !airdrop[id] && !emp[id] && !nuke[id])
		CreateSentry(id);
 
	if(nalot[id] && !airdrop[id] && !emp[id] && !nuke[id])
		CreateNalot(id);
 
	if(airdrop[id] && !emp[id] && !nuke[id])
		CreateAirDrop(id);
 
	if(emp[id] && !nuke[id])
		CreateEmp(id);
 
	if(nuke[id])
		CreateNuke(id);
	return PLUGIN_CONTINUE;
}
 
public UzyjNagrody(id)
{
	new menu = menu_create("KillStreak:", "Nagrody_Handler");
	new cb = menu_makecallback("Nagrody_Callback");
	menu_additem(menu, "UAV", _, _, cb);
	menu_additem(menu, "Counter-UAV", _, _, cb);
	menu_additem(menu, "Care Package", _, _, cb);
	menu_additem(menu, "Predator Missle", _, _, cb);
	menu_additem(menu, "Sentry Gun", _, _, cb);
	menu_additem(menu, "Airstrike", _, _, cb);
	menu_additem(menu, "Emergency Airdrop", _, _, cb);
	menu_additem(menu, "EMP", _, _, cb);
	menu_additem(menu, "Nuke", _, _, cb);
 
	new Tekst[128] = "Wyjdz^nyKill Streak v";
	add(Tekst, 127, VERSION);
	add(Tekst, 127, " by r");
	add(Tekst, 127, AUTHOR);
	menu_setprop(menu, MPROP_EXITNAME, Tekst);
	menu_display(id, menu)
}
 
public Nagrody_Callback(id, menu, item)
{
	if(!uav[id] && item == 0 || !cuav[id] && item == 1 || !pack[id] && item == 2 || !predator[id] && item == 3  || !sentrys[id] && item == 4|| !nalot[id] && item == 5 || !airdrop[id] && item == 6  || !emp[id] && item == 7 || !nuke[id] && item == 8)
		return ITEM_DISABLED;
 
	return ITEM_ENABLED;
}
 
public Nagrody_Handler(id, menu, item)
{
	if(!is_user_alive(id))
		return PLUGIN_HANDLED;
 
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
 
	if(!uav[id] && item == 0 || !cuav[id] && item == 1 || !pack[id] && item == 2 || !predator[id] && item == 3  || !sentrys[id] && item == 4|| !nalot[id] && item == 5 || !airdrop[id] && item == 6 || !emp[id] && item == 7 || !nuke[id] && item == 8)
		return PLUGIN_HANDLED;
 
	if(item <= 6 && emp_czasowe && get_user_team(id) != get_user_team(emp_czasowe))
		return PLUGIN_HANDLED;
 
	switch(item)
	{
		case 0: CreateUVA(id);
		case 1: CreateCUVA(id);
		case 2: CreatePack(id);
		case 3: CreatePredator(id);
		case 4: CreateSentry(id);
		case 5: CreateNalot(id);
		case 6: CreateAirDrop(id);
		case 7:{
			if(!emp_czasowe)
				CreateEmp(id);
		} 
		case 8:{
			if(!nuke_koniec)
				CreateNuke(id);
		}
	}		
	return PLUGIN_HANDLED;
}
 
public NowaRunda()
{
	new num, players[32];
	get_players(players, num, "gh");
	for(new i = 0; i < num; i++)
	{
		if(task_exists(players[i]+997))
			remove_task(players[i]+997);
	}
 
	remove_entity_name("predator");
	remove_entity_name("bomb");
	//remove_entity_name("sentry");
}
 
public client_putinserver(id)
{
	licznik_zabic[id] = 0;
	user_controll[id] = 0;
 
	nalot[id] = false;
	predator[id] = false;
	nuke[id] = false;
	cuav[id] = false;
	uav[id] = false;
	emp[id] = false;
	pack[id] = false;
	sentrys[id] = false;
	airdrop[id] = false;
 
	ks_client_putinserver(id);
}
 
public client_disconnect(id)
{
	new ent = -1
	while((ent = find_ent_by_class(ent, "sentry")))
	{
		if(entity_get_int(ent, EV_INT_iuser2) == id)
			remove_entity(ent);
	}
	return PLUGIN_CONTINUE;
}
 
public SmiercGracza(id, attacker)
{	
	if(!is_user_alive(attacker) || !is_user_connected(attacker))
		return HAM_IGNORED;
 
	if(cs_get_user_team(attacker) != cs_get_user_team(id) && !nuke_koniec)
	{
		licznik_zabic[attacker]++;
		switch(licznik_zabic[attacker])
		{
			case 3:
			{
				uav[attacker] = true;
				OdgrajDzwieki(attacker, "UAV^nWpisz /ks i wybierz zeby go uzyc", "uav");
			}
			case 4:
			{
				switch(random_num(1,2))
				{
					case 1:
					{
						cuav[attacker] = true;
						OdgrajDzwieki(attacker, "Counter-Uav^nWpisz /ks i wybierz zeby go uzyc", "counter");
					}
					case 2:
					{
						pack[attacker] = true;
						OdgrajDzwieki(attacker, "Care Package^nWpisz /ks i wybierz zeby go uzyc", "carepackage");
					}
				}
			}
			case 5:
			{
				switch(random_num(1,2))
				{
					case 1:
					{
						predator[attacker] = true;
						OdgrajDzwieki(attacker, "Predator Missible^nWpisz /ks i wybierz zeby go uzyc", "predator");
					}
					case 2:
					{
						sentrys[attacker] = true;
						OdgrajDzwieki(attacker, "Sentry Gun^nWpisz /ks i wybierz zeby go postawic", "sentrygun");
					}
				}
 
			}
			case 6:
			{
				nalot[attacker] = true;
				OdgrajDzwieki(attacker, "Airstreak^nWpisz /ks i wybierz zeby go uzyc", "air");
			}
			case 9:
			{
				airdrop[attacker] = true;
				OdgrajDzwieki(attacker, "Emergency Airdrop^nWpisz /ks i wybierz zeby go uzyc", "emergairdrop");
			}
			case 15:
			{
				emp[attacker] = true;
				OdgrajDzwieki(attacker, "EMP^nWpisz /ks i wybierz zeby go uzyc", "emp");
			}
			case 20:
			{
				nuke[attacker] = true;
				OdgrajDzwieki(attacker, "Nuke^nWpisz /ks i wybierz zeby go uzyc", "nuke");
			}
		}
	}
	licznik_zabic[id] = 0;
	user_controll[id] = 0;
 
	new ent = find_drop_pack(id, "pack");
	if(is_valid_ent(ent))
	{
		if(task_exists(2571+ent))
		{
			remove_task(2571+ent);
			bartime(id, 0);
		}
	}
	return HAM_IGNORED;
}
 
public OdgrajDzwieki(id, szNazwa[], sciezka[])
{
	set_hudmessage(255, 255, 255, -1.0, 0.25, 0, 6.0, 7.0);
	ShowSyncHudMsg(id, SyncHudObj, szNazwa);
	client_cmd(id, "spk sound/mw/%s_give.wav", sciezka);
}
 
//uav
public CreateUVA(id)
{
	static CzasUav[2];
	new team = cs_get_user_team(id) == CS_TEAM_T? 0: 1;
	uav[id] = false;
	radar[team] = true;
 
	new num, players[32];
	get_players(players, num, "gh")
	for(new a = 0; a < num; a++)
	{
		new i = players[a]
		if(cs_get_user_team(id) != cs_get_user_team(i))
			client_cmd(i, "spk sound/mw/uav_enemy.wav")
		else
			client_cmd(i, "spk sound/mw/uav_friend.wav")
	}
	print_info(id, "UAV");
	radar_scan();
 
	if(task_exists(7354+team))
	{
		new times = (CzasUav[team]-get_systime())+60;
		change_task(7354+team, float(times));
		CzasUav[team] = CzasUav[team]+times;
	}
	else
	{
		new data[1];
		data[0] = team;
		set_task(60.0, "deluav", 7354+team, data, 1);
		CzasUav[team] = get_systime()+60;
	}
}
 
public deluav(data[1])
{
	radar[data[0]] = false;
}
 
public radar_scan()
{
	new num, players[32];
	get_players(players, num, "gh")
	for(new i=0; i<num; i++)
	{
		new id = players[i];
		if(!is_user_alive(id) || !radar[cs_get_user_team(id) == CS_TEAM_T? 0: 1])
			continue;
 
		if(!emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe)))
			radar_continue(id);
	}
}
 
radar_continue(id)
{
	new num, players[32], PlayerCoords[3];
	get_players(players, num, "gh");
	for(new a=0; a<num; a++)
	{
		new i = players[a];     
		if(!is_user_alive(i) || cs_get_user_team(i) == cs_get_user_team(id)) 
			continue;
 
		get_user_origin(i, PlayerCoords);
 
		message_begin(MSG_ONE_UNRELIABLE, msgHostagePos, .player = id);
		write_byte(id);
		write_byte(i);
		write_coord(PlayerCoords[0]);
		write_coord(PlayerCoords[1]);
		write_coord(PlayerCoords[2]);
		message_end();
 
		message_begin(MSG_ONE_UNRELIABLE, msgHostageK, .player = id);
		write_byte(i);
		message_end();
	}	
}
 
//airpack
public CreatePack(id)
{
	new num, players[32];
	get_players(players, num, "gh");
	for(new a = 0; a < num; a++)
	{
		new i = players[a];
		if(cs_get_user_team(id) != cs_get_user_team(i))
			client_cmd(i, "spk sound/mw/carepackage_enemy.wav");
		else
			client_cmd(i, "spk sound/mw/carepackage_friend.wav");
	}
	print_info(id, "Care Package");
	CreatePlane(id);
	pack[id] = false
	set_task(1.0, "CarePack", id+742)
}
 
public CarePack(taskid)
{
	new id = (taskid - 742)
 
	PobraneOrigin[2] += 150; 
	new Float:LocVecs[3];
	IVecFVec(PobraneOrigin, LocVecs);
 
	new ent = create_ent(id, "pack", "models/cod_carepackage.mdl", 1, 6, LocVecs);
	entity_set_int(ent, EV_INT_iuser1, LosujNagrode());
}
 
//emergy airdrop
public CreateAirDrop(id)
{
	new num, players[32];
	get_players(players, num, "gh");
	for(new a = 0; a < num; a++)
	{
		new i = players[a];
		if(cs_get_user_team(id) != cs_get_user_team(i))
			client_cmd(i, "spk sound/mw/emergairdrop_enemy.wav");
		else
			client_cmd(i, "spk sound/mw/emergairdrop_friend.wav");
	}
	print_info(id, "Emergency Airdrop");
	CreatePlane(id);
	set_task(1.0, "CareEmpPack", id+746);
	airdrop[id] = false;
}
 
public CareEmpPack(id)
{
	id -=  746;
	new Float:LocVecs[4][3], k;
	for(new i=0; i<4; i++)
	{
		k = 0;
jeszczeraz:
		if(k > 40)
			continue;
 
		LocVecs[i][0] = PobraneOrigin[0] + random_float(-300.0,300.0);
		LocVecs[i][1] = PobraneOrigin[1] + random_float(-300.0,300.0);
		LocVecs[i][2] = PobraneOrigin[2] + 150.0;
		if(!is_hull_vacant(LocVecs[i], HULL_HUMAN))
		{
			k++;
			goto jeszczeraz;
		}
	}
	new ent, co_ma_dostac[4];
	for(new i=0; i<4; i++)
	{
		ent = create_ent(id, "pack", "models/cod_carepackage.mdl", 1, 6, LocVecs[i]);
 
sprawdz:
		co_ma_dostac[i] = LosujNagrode();
		if(i > 1)
		{
			for(new k=0; k<i; k++)
			{
				if(co_ma_dostac[i] == co_ma_dostac[k] && i != k)
					goto sprawdz;
			}
		}
		entity_set_int(ent, EV_INT_iuser1, co_ma_dostac[i]);
	}
}
 
stock LosujNagrode()
{
	new nagroda;
	switch(random_num(0, 113))	
	{
		case 0..19: 	nagroda = 1; //uav
		case 20..44: 	nagroda = 2; //cuav
		case 45..69: 	nagroda = 3; //sentry
		case 70..92: 	nagroda = 4; //predator
		case 93..109: 	nagroda = 5; //nalot
		case 110..113: 	nagroda = 6; //emp
	}
	return nagroda;
}
 
public pickup_pack(info[2])
{
	new id = info[0];
	new ent = info[1];
 
	if(!is_user_connected(id) || !is_user_alive(id))
		return;
 
	new weapons[32], weaponsnum;
	get_user_weapons(id, weapons, weaponsnum);
	for(new i=0; i<weaponsnum; i++)
		if(maxAmmo[weapons[i]] > 0)
			cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
 
	give_item(id, "weapon_hegrenade");
	give_item(id, "weapon_flashbang");
	give_item(id, "weapon_flashbang");			
	give_item(id, "weapon_smokegrenade");
	switch(entity_get_int(ent, EV_INT_iuser1))	
	{
		case 1:
		{
			uav[id] = true;
			client_cmd(id, "spk sound/mw/uav_give.wav");
		}
		case 2:
		{
			cuav[id] = true;
			client_cmd(id, "spk sound/mw/counter_give.wav");
		}
		case 3:
		{
			sentrys[id] = true;
			client_cmd(id, "spk sound/mw/sentrygun_give.wav");
		}
		case 4:
		{
			predator[id] = true;
			client_cmd(id, "spk sound/mw/predator_give.wav");
		}
		case 5:
		{
			nalot[id] = true;
			client_cmd(id, "spk sound/mw/air_give.wav");
		}
		case 6:
		{
			emp[id] = true;
			client_cmd(id, "spk sound/mw/emp_give.wav");
		}
	}		
	remove_entity(ent);
}
 
public client_PreThink(id)
{	
	if(!is_user_alive(id))
		return PLUGIN_CONTINUE;	
 
	if(user_controll[id])
	{
		new ent2 = user_controll[id];
		if(is_valid_ent(ent2))
		{
			new Float:Velocity[3], Float:Angle[3];
			velocity_by_aim(id, 500, Velocity);
			entity_get_vector(id, EV_VEC_v_angle, Angle);
 
			entity_set_vector(ent2, EV_VEC_velocity, Velocity);
			entity_set_vector(ent2, EV_VEC_angles, Angle);
		}
		else
			attach_view(id, id);
	}
 
	static ent_id[MAX+1];
	new ent = find_drop_pack(id, "pack");
	if(is_valid_ent(ent))
	{
		if(!task_exists(2571+ent))
		{
			ent_id[id] = ent;
			bartime(id, 3);
 
			new info[2];
			info[0] = id;
			info[1] = ent;
			set_task(3.0, "pickup_pack", 2571+ent, info, 2);
		}
	}
	else
	{
		if(task_exists(2571+ent_id[id]))
		{
			remove_task(2571+ent_id[id]);
			bartime(id, 0);
			ent_id[id] = 0;
		}
	}
	return PLUGIN_CONTINUE;
}
 
//counter-uva
public CreateCUVA(id)
{
	cuav[id] = false;
	new num, players[32];
	get_players(players, num, "gh");
 
	for(new a = 0; a < num; a++)
	{
		new i = players[a];
		if(cs_get_user_team(id) != cs_get_user_team(i))
			client_cmd(i, "spk sound/mw/counter_enemy.wav");
		else
			client_cmd(i, "spk sound/mw/counter_friend.wav");
	}
 
	radar[cs_get_user_team(id) == CS_TEAM_T? 1: 0] = false;
	print_info(id, "Counter-UAV");
}
 
//emp
public CreateEmp(id)
{
	client_cmd(0, "spk sound/mw/emp_effect.wav");
	emp[id] = false;
	new num, players[32];
	get_players(players, num, "gh")
	for(new a = 0; a < num; a++)
	{
		new i = players[a];
		if(cs_get_user_team(id) != cs_get_user_team(i))
		{
			if(is_user_alive(i))
			{
				Display_Fade(i,1<<12,1<<12,1<<16,255, 255,0,166);
				message_begin(MSG_ONE_UNRELIABLE, msgHideWeapon, .player = i);
				write_byte(0x29); //(1<<0)|(1<<3)|(1<<5)
				message_end();
			}
			client_cmd(i, "spk sound/mw/emp_enemy.wav");
		}
		else
			client_cmd(i, "spk sound/mw/emp_friend.wav");
	}
	print_info(id, "EMP", "e");
	emp_czasowe = id;
 
	set_task(120.0,"del_emp");
}
 
public del_emp()
{
	message_begin(MSG_BROADCAST, msgHideWeapon); 
	write_byte(0);
	message_end();
 
	emp_czasowe = 0;
}
 
public CurWeapon(id)
{
	if(emp_czasowe && get_user_team(id) != get_user_team(emp_czasowe))
	{
		message_begin(MSG_ONE_UNRELIABLE, msgHideWeapon, .player = id); 
		write_byte(0x29); //(1<<0)|(1<<3)|(1<<5)
		message_end(); 
	}
}
 
//nuke
public CreateNuke(id)
{
	new num, players[32];
	get_players(players, num, "gh");
	for(new a = 0; a < num; a++)
	{
		new i = players[a];
		if(cs_get_user_team(id) != cs_get_user_team(i))
			client_cmd(i, "spk sound/mw/nuke_enemy.wav");
		else
			client_cmd(i, "spk sound/mw/nuke_friend.wav");
	}
	Display_Fade(0,(10<<12),(10<<12),(1<<16),255, 42, 42,171);
 
	print_info(id, "Nuke", "e");
	set_task(10.0,"ShakeHud");
	set_task(13.5,"del_nuke", id);
 
	nuke_koniec = true;
	nuke[id] = false;
}
 
public ShakeHud()
{
	Display_Fade(0,(3<<12),(3<<12),(1<<16),255, 85, 42,215);
 
	message_begin(MSG_BROADCAST, msgScreenShake);
	write_short(255<<12);
	write_short(4<<12);
	write_short(255<<12);
	message_end();
}
 
public del_nuke(id)
{
	new num, players[32];
	get_players(players, num, "gh");
	for(new a = 0; a < num; a++)
	{
		new i = players[a];
		if(is_user_alive(i) && id != i)
		{
			if(cs_get_user_team(id) != cs_get_user_team(i))
			{
				cs_set_user_armor(i, 0, CS_ARMOR_NONE);
				UTIL_Kill(id, i, float(get_user_health(i)), DMG_BULLET);
			}
			else
				user_silentkill(i);
		}
	}
	if(is_user_alive(id))
		user_silentkill(id);
 
	nuke_koniec = false;
	licznik_zabic[id] = 0;
 
	set_dhudmessage(0, 255, 0, -1.0, 0.40, 0, 0.5, 10.0, 0.0, 1.0, true);
	show_dhudmessage(0, "Zwyciezyli %s!^n^nUzyli NUKE!", cs_get_user_team(id) == CS_TEAM_T? "Terorysci": "Anty Terorysci");
	set_task(10.0, "ZmienMape", 8021);
}
 
public ZmienMape()
{
	new szFile[64], szMap[35];
	get_cvar_string("amx_nextmap", szMap, 34);
	formatex(szFile, 63, "maps/%s.bsp", szMap);
 
	if(!file_exists(szFile))
	{
		new File[35], ilosc;
		if(file_exists("addons/amxmodx/configs/maps.ini"))
			copy(File, 34, "addons/amxmodx/configs/maps.ini");
		else if(file_exists("mapcycle.txt"))
			copy(File, 34, "mapcycle.txt");
		else
			return;
 
		new szCurrent[35], szTablica[64], iLen, size;
		size = file_size(File, 1);
		get_mapname(szCurrent, 34);
 
losuj_mape:
		read_file(File, random_num(0, size), szTablica, 63, iLen);
		trim(szTablica);
 
		if(iLen && !equali(szTablica, szCurrent) && (contain(szTablica, ";") == -1))
		{
			copy(szMap, 34, szTablica);
		}
		else
		{
			if(++ilosc > 10)
				return;
 
			goto losuj_mape;
		}
		set_cvar_string("amx_nextmap", szMap);
	}
	server_cmd("changelevel %s", szMap);
}
 
//nalot
public CreateNalot(id)
{
	new num, players[32];
	get_players(players, num, "gh");
	for(new a = 0; a < num; a++)
	{
		new i = players[a];
		if(cs_get_user_team(id) != cs_get_user_team(i))
			client_cmd(i, "spk sound/mw/air_enemy.wav");
		else
			client_cmd(i, "spk sound/mw/air_friend.wav");
	}
	print_info(id, "Airstrike");
	set_task(1.0, "CreateBombs", id+997, _, _, "a", 3);
	CreatePlane(id);
	nalot[id] = false;
}
 
public CreateBombs(taskid)
{	
	new id = (taskid-997);
 
	new radlocation[3];
	PobraneOrigin[0] += random_num(-300,300);
	PobraneOrigin[1] += random_num(-300,300);
	PobraneOrigin[2] += 50;
 
	for(new i=0; i<15; i++) 
	{
		radlocation[0] = PobraneOrigin[0]+1*random_num(-150,150); 
		radlocation[1] = PobraneOrigin[1]+1*random_num(-150,150); 
		radlocation[2] = PobraneOrigin[2]; 
 
		new Float:LocVec[3]; 
		IVecFVec(radlocation, LocVec); 
		create_ent(id, "bomb", "models/p_hegrenade.mdl", 2, 10, LocVec);
	}
}  
 
public CreatePlane(id)
{
	new Float:Origin[3], Float:Angle[3], Float:Velocity[3], ent;
 
	get_user_origin(id, PobraneOrigin, 3);
 
	velocity_by_aim(id, 1000, Velocity);
	entity_get_vector(id, EV_VEC_origin, Origin);
	entity_get_vector(id, EV_VEC_v_angle, Angle);
 
	Angle[0] = Velocity[2] = 0.0;
	Origin[2] += 200.0;
 
	ent = create_ent(id, "samolot", "models/cod_plane.mdl", 2, 8, Origin);
 
	entity_set_vector(ent, EV_VEC_velocity, Velocity);
	entity_set_vector(ent, EV_VEC_angles, Angle);
 
	emit_sound(ent, CHAN_ITEM, "mw/jet_fly1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
	set_task(4.5, "del_plane", ent+5731);
}
 
public del_plane(taskid)
	remove_entity(taskid-5731);
 
public touchedrocket(ent, id)
{
	if(!is_valid_ent(ent))
		return PLUGIN_CONTINUE;
 
	bombs_explode(ent, 100.0, 150.0);
	return PLUGIN_CONTINUE;
}
 
//predator
public CreatePredator(id)
{
	new num, players[32];
	get_players(players, num, "gh");
	for(new a = 0; a < num; a++)
	{
		new i = players[a];
		if(cs_get_user_team(id) != cs_get_user_team(i))
			client_cmd(i, "spk sound/mw/predator_enemy.wav");
		else
			client_cmd(i, "spk sound/mw/predator_friend.wav");
	}
	print_info(id, "Predator Missle");
 
	new Float:Origin[3], Float:Angle[3], Float:Velocity[3], ent;
 
	velocity_by_aim(id, 700, Velocity);
	entity_get_vector(id, EV_VEC_origin, Origin);
	entity_get_vector(id, EV_VEC_v_angle, Angle);
 
	Angle[0] *= -1.0;
 
	ent = create_ent(id, "predator", "models/cod_predator.mdl", 2, 5, Origin);
 
	entity_set_vector(ent, EV_VEC_velocity, Velocity);
	entity_set_vector(ent, EV_VEC_angles, Angle);
 
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_BEAMFOLLOW);
	write_short(ent);
	write_short(cache_trail);
	write_byte(10);
	write_byte(5);
	write_byte(205);
	write_byte(237);
	write_byte(163);
	write_byte(200);
	message_end();
 
	predator[id] = false;
 
	attach_view(id, ent);
	user_controll[id] = ent;
} 
 
public touchedpredator(ent, id)
{
	if(!is_valid_ent(ent))
		return PLUGIN_CONTINUE;
 
	new owner = entity_get_edict(ent, EV_ENT_owner);
	bombs_explode(ent, 220.0, 400.0);
	attach_view(owner, owner);
	user_controll[owner] = 0;
	return PLUGIN_CONTINUE;
}
 
//sentry gun
public CreateSentry(id) 
{
	if(!(entity_get_int(id, EV_INT_flags) & FL_ONGROUND)) 
		return;
 
	new entlist[3];
	if(find_sphere_class(id, "func_bomb_target", 650.0, entlist, 2))
	{
		client_print(id, 3, "[KS] Jestes zbyt blisko BS'A.");
		return;
	}
	if(find_sphere_class(id, "func_buyzone", 650.0, entlist, 2))
	{
		client_print(id, 3, "[KS] Jestes zbyt blisko Respa.");
		return;
	}	
 
	new num, players[32], Float:Origin[3];
	get_players(players, num, "gh");
	for(new a = 0; a < num; a++)
	{
		new i = players[a];
		if(cs_get_user_team(id) != cs_get_user_team(i))
			client_cmd(i, "spk sound/mw/sentrygun_enemy.wav");
		else
			client_cmd(i, "spk sound/mw/sentrygun_friend.wav");
	}
	print_info(id, "Sentry Gun");
 
	entity_get_vector(id, EV_VEC_origin, Origin);
	Origin[2] += 45.0;
 
	new health[12], ent = create_entity("func_breakable");
	get_cvar_string("ks_hpsentry",health, charsmax(health));
 
	DispatchKeyValue(ent, "health", health);
	DispatchKeyValue(ent, "material", "6");
 
	entity_set_string(ent, EV_SZ_classname, "sentry");
	entity_set_model(ent, "models/sentrygun_mw2.mdl");
 
	entity_set_float(ent, EV_FL_takedamage, DAMAGE_YES);
 
	entity_set_size(ent, Float:{-16.0, -16.0, 0.0}, Float:{16.0, 16.0, 48.0});
 
	entity_set_origin(ent, Origin);
	entity_set_int(ent, EV_INT_solid, SOLID_SLIDEBOX);
	entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
	entity_set_int(ent, EV_INT_iuser2, id);
	entity_set_vector(ent, EV_VEC_angles, Float:{0.0, 0.0, 0.0});
	entity_set_byte(ent, EV_BYTE_controller2, 127);
 
	entity_set_float(ent, EV_FL_nextthink, get_gametime()+1.0);
 
	sentrys[id] = false;
	emit_sound(ent, CHAN_ITEM, "mw/plant.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
}
 
public SentryThink(ent)
{
	if(!is_valid_ent(ent)) 
		return PLUGIN_CONTINUE;
 
	new Float:SentryOrigin[3], Float:closestOrigin[3];
	entity_get_vector(ent, EV_VEC_origin, SentryOrigin);
 
	new id = entity_get_int(ent, EV_INT_iuser2);
	new target = entity_get_edict(ent, EV_ENT_euser1);
	new firemods = entity_get_int(ent, EV_INT_iuser1);
 
	if(firemods)
	{ 
		if(fm_is_ent_visible(target, ent) && is_user_alive(target)) 
		{
#if defined TARCZA
			if(UTIL_In_FOV(target,ent))
				goto fireoff;
#endif
 
			new Float:TargetOrigin[3];
			entity_get_vector(target, EV_VEC_origin, TargetOrigin);
 
			emit_sound(ent, CHAN_AUTO, "mw/firemw.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
			sentry_turntotarget(ent, SentryOrigin, TargetOrigin);
 
			new Float:hitRatio = random_float(0.0, 1.0) - 0.2;
			if(hitRatio <= 0.0)
			{
				UTIL_Kill(id, target, random_float(5.0, 35.0), DMG_BULLET, 1);
 
				new Float:LufaOrigin[3], Float:LufaAngels[3];
				engfunc(EngFunc_GetAttachment, ent, 0, LufaOrigin, LufaAngels); 
 
				message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
				write_byte(TE_TRACER);
				write_coord(floatround(LufaOrigin[0]));
				write_coord(floatround(LufaOrigin[1]));
				write_coord(floatround(LufaOrigin[2]));
				write_coord(floatround(TargetOrigin[0]));
				write_coord(floatround(TargetOrigin[1]));
				write_coord(floatround(TargetOrigin[2]));
				message_end();
			}
			entity_set_float(ent, EV_FL_nextthink, get_gametime()+0.1);
			return PLUGIN_CONTINUE;
		}
		else
		{
#if defined TARCZA
fireoff:
#endif
			firemods = 0;
			entity_set_int(ent, EV_INT_iuser1, 0);
			entity_set_edict(ent, EV_ENT_euser1, 0);
			emit_sound(ent, CHAN_AUTO, "mw/sentrygun_stops.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
 
			entity_set_float(ent, EV_FL_nextthink, get_gametime()+0.1);
			return PLUGIN_CONTINUE;
		}
	}
 
	new closestTarget = getClosestPlayer(ent, id);
	if(closestTarget)
	{
		emit_sound(ent, CHAN_AUTO, "mw/sentrygun_starts.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
		entity_get_vector(closestTarget, EV_VEC_origin, closestOrigin);
		sentry_turntotarget(ent, SentryOrigin, closestOrigin);
 
		entity_set_int(ent, EV_INT_iuser1, 1);
		entity_set_edict(ent, EV_ENT_euser1, closestTarget);
 
		entity_set_float(ent, EV_FL_nextthink, get_gametime()+0.3);
		return PLUGIN_CONTINUE;
	}
 
	if(!firemods)
	{
		new controler1 = entity_get_byte(ent, EV_BYTE_controller1)+1;
		if(controler1 > 255)
			controler1 = 0;
		entity_set_byte(ent, EV_BYTE_controller1, controler1);
 
		new controler2 = entity_get_byte(ent, EV_BYTE_controller2);
		if(controler2 > 127 || controler2 < 127)
			entity_set_byte(ent, EV_BYTE_controller2, 127);
 
		entity_set_float(ent, EV_FL_nextthink, get_gametime()+0.05);
	}
	return PLUGIN_CONTINUE
}
 
public sentry_turntotarget(ent, Float:sentryOrigin[3], Float:closestOrigin[3]) 
{
	new Float:x = closestOrigin[0]-sentryOrigin[0], Float:y = closestOrigin[1]-sentryOrigin[1], Float:z = closestOrigin[2]-sentryOrigin[2]+35.0,
	Float:newAngle = floatatan(y/x, radian) * 57.2957795,
	Float:newTrip = (floatatan(z/floatsqroot((x*x)+(y*y)), radian) * 57.2957795)-90.0;
 
	if(closestOrigin[0] < sentryOrigin[0])
		newAngle += 180.0;
	if(newAngle < 0.0)
		newAngle += 360.0;
 
	entity_set_byte(ent, EV_BYTE_controller1, floatround(newAngle * 0.70833));
	entity_set_byte(ent, EV_BYTE_controller2, floatround(newTrip * -1.416));
	entity_set_byte(ent, EV_BYTE_controller3, entity_get_byte(ent, EV_BYTE_controller3)+20>255? 0: entity_get_byte(ent, EV_BYTE_controller3)+20);
}
 
public TakeDamage(ent, idinflictor, attacker, Float:damage, damagebits)
{
	if(!is_user_alive(attacker))
		return HAM_IGNORED;
 
	new classname[32];
	entity_get_string(ent, EV_SZ_classname, classname, 31);
 
	if(equal(classname, "sentry")) 
	{
		new id = entity_get_int(ent, EV_INT_iuser2);
		if(cs_get_user_team(attacker) == cs_get_user_team(id))
			return HAM_SUPERCEDE;
 
		if(damage >= entity_get_float(ent, EV_FL_health))
		{
			new Float:Origin[3];
			entity_get_vector(ent, EV_VEC_origin, Origin);	
			new entlist[33];
			new numfound = find_sphere_class(ent, "player", 190.0, entlist, 32);
 
			for(new i=0; i < numfound; i++)
			{		
				new pid = entlist[i];
 
				if(!is_user_alive(pid) || cs_get_user_team(id) == cs_get_user_team(pid))
					continue;
				UTIL_Kill(id, pid, 70.0, (1<<24));
			}
			client_cmd(id, "spk sound/mw/sentrygun_gone.wav");
			//Sprite_Blast(Origin);
			//remove_entity(ent); //jak to dam to cresh serwer bo odrazu usuwa sentry guna :O
			set_task(0.4, "del_plane", ent+5731); //jak tego nie dam to sentry jest jako byt i strzela
		}
	}
	return HAM_IGNORED;
}
 
//wybuch
bombs_explode(ent, Float:zadaje, Float:promien)
{
	if(!is_valid_ent(ent)) 
		return;
 
	new attacker = entity_get_edict(ent, EV_ENT_owner);
 
	new Float:entOrigin[3], Float:fDamage, Float:Origin[3];
	entity_get_vector(ent, EV_VEC_origin, entOrigin);
	entOrigin[2] += 1.0;
 
	new entlist[33];
	new numfound = find_sphere_class(ent, "player", promien, entlist, 32);	
	for(new i=0; i < numfound; i++)
	{		
		new victim = entlist[i];		
		if(!is_user_alive(victim) || cs_get_user_team(attacker) == cs_get_user_team(victim))
			continue;
 
		entity_get_vector(victim, EV_VEC_origin, Origin);
		fDamage = zadaje - floatmul(zadaje, floatdiv(get_distance_f(Origin, entOrigin), promien));
		fDamage *= estimate_take_hurt(entOrigin, victim, 0);
		if(fDamage>0.0)
			UTIL_Kill(attacker, victim, fDamage, DMG_BULLET);
	}
	Sprite_Blast(entOrigin);
	remove_entity(ent);
}
 
public cmdKill()
	return FMRES_SUPERCEDE;
 
public message_DeathMsg()
{
	new killer = get_msg_arg_int(1);
	if(ZmienKilla[0] & (1<<killer))
	{
		set_msg_arg_string(4, "grenade");
		return PLUGIN_CONTINUE;
	}
	if(ZmienKilla[1] & (1<<killer))
	{
		set_msg_arg_string(4, "m249");
		return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}
 
stock print_info(id, nazwa[], litera[] = "y")
{
	new name[32];
	get_user_name(id, name, 31);
	client_print(0, 3, "%s wezwan%s przez %s", nazwa, litera, name);
	ks_print_info(id, nazwa);
}
 
stock create_ent(id, szName[], szModel[], iSolid, iMovetype, Float:fOrigin[3])
{
	new ent = create_entity("info_target");
	entity_set_string(ent, EV_SZ_classname, szName);
	entity_set_model(ent, szModel);
	entity_set_int(ent, EV_INT_solid, iSolid);
	entity_set_int(ent, EV_INT_movetype, iMovetype);
	entity_set_edict(ent, EV_ENT_owner, id);
	entity_set_origin(ent, fOrigin);
	return ent;
}
 
stock Sprite_Blast(Float:iOrigin[3])
{
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_EXPLOSION);
	write_coord(floatround(iOrigin[0]));
	write_coord(floatround(iOrigin[1])); 
	write_coord(floatround(iOrigin[2]));
	write_short(sprite_blast);
	write_byte(32);
	write_byte(20); 
	write_byte(0);
	message_end();
}
 
stock Float:estimate_take_hurt(Float:fPoint[3], ent, ignored) 
{
	new Float:fFraction, Float:fOrigin[3], tr;
	entity_get_vector(ent, EV_VEC_origin, fOrigin);
	engfunc(EngFunc_TraceLine, fPoint, fOrigin, DONT_IGNORE_MONSTERS, ignored, tr);
	get_tr2(tr, TR_flFraction, fFraction);
	if(fFraction == 1.0 || get_tr2(tr, TR_pHit) == ent)
		return 1.0;
	return 0.6;
}
 
stock find_drop_pack(id, const class[])
{
	new Float:origin[3], classname[32], ent;
	entity_get_vector(id, EV_VEC_origin, origin);
 
	while((ent = find_ent_in_sphere(ent, origin, 75.0)) != 0) 
	{
		entity_get_string(ent, EV_SZ_classname, classname, 31);
		if(equali(classname, class))
			return ent;
	}
	return 0;
}
 
stock bartime(id, number)
{
	message_begin(MSG_ONE_UNRELIABLE, msgBarTime, .player = id);
	write_short(number);
	message_end();	
}
 
stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
{
	message_begin(id? MSG_ONE_UNRELIABLE: MSG_BROADCAST, msgScreenFade, .player = id);
	write_short(duration);
	write_short(holdtime);
	write_short(fadetype);
	write_byte(red);
	write_byte(green);
	write_byte(blue);
	write_byte(alpha);
	message_end();
}
 
stock UTIL_Kill(atakujacy, obrywajacy, Float:damage, damagebits, ile=0)
{
	ZmienKilla[ile] |= (1<<atakujacy);
	ExecuteHam(Ham_TakeDamage, obrywajacy, atakujacy, atakujacy, damage, damagebits);
	ZmienKilla[ile] &= ~(1<<atakujacy);
}
 
stock getClosestPlayer(ent, id)
{
	new iClosestPlayer = 0, Float:flClosestDist = MAX_DIST, Float:flDistanse, Float:fOrigin[2][3];
	new num, players[32];
	get_players(players, num, "gh")
	for(new a = 0; a < num; a++)
	{
		new i = players[a];
		if(!is_user_connected(i) || !is_user_alive(i) || !fm_is_ent_visible(i, ent) || cs_get_user_team(i) == cs_get_user_team(id))
			continue;
 
#if defined TARCZA
		if(UTIL_In_FOV(i, ent))
			continue;
#endif
 
		entity_get_vector(i, EV_VEC_origin, fOrigin[0]);
		entity_get_vector(ent, EV_VEC_origin, fOrigin[1]);
 
		flDistanse = get_distance_f(fOrigin[0], fOrigin[1]);
 
		if(flDistanse <= flClosestDist)
		{
			iClosestPlayer = i;
			flClosestDist = flDistanse;
		}
	}
	return iClosestPlayer;
}
 
#if defined TARCZA
stock bool:UTIL_In_FOV(id,ent)
{
	if((get_pdata_int(id, 510) & (1<<16)) && (Find_Angle(id, ent) > 0.0))
		return true;
	return false;
}
 
stock Float:Find_Angle(id, target)
{
	new Float:Origin[3], Float:TargetOrigin[3];
	pev(id,pev_origin, Origin);
	pev(target,pev_origin,TargetOrigin);
 
	new Float:Angles[3], Float:vec2LOS[3];
	pev(id,pev_angles, Angles);
 
	xs_vec_sub(TargetOrigin, Origin, vec2LOS);
	vec2LOS[2] = 0.0;
 
	new Float:veclength = vector_length(vec2LOS);
	if (veclength <= 0.0)
		vec2LOS[0] = vec2LOS[1] = 0.0;
	else
	{
		new Float:flLen = 1.0 / veclength;
		vec2LOS[0] = vec2LOS[0]*flLen;
		vec2LOS[1] = vec2LOS[1]*flLen;
	}
	engfunc(EngFunc_MakeVectors, Angles);
 
	new Float:v_forward[3];
	get_global_vector(GL_v_forward, v_forward);
 
	new Float:flDot = vec2LOS[0]*v_forward[0]+vec2LOS[1]*v_forward[1];
	if(flDot > 0.5)
		return flDot;
 
	return 0.0;
}
#endif
 
stock bool:fm_is_ent_visible(index, entity, ignoremonsters = 0) {
	new Float:start[3], Float:dest[3];
	pev(index, pev_origin, start);
	pev(index, pev_view_ofs, dest);
	xs_vec_add(start, dest, start);
 
	pev(entity, pev_origin, dest);
	engfunc(EngFunc_TraceLine, start, dest, ignoremonsters, index, 0);
 
	new Float:fraction;
	get_tr2(0, TR_flFraction, fraction);
	if (fraction == 1.0 || get_tr2(0, TR_pHit) == entity)
		return true;
 
	return false;
}
 
stock is_hull_vacant(Float:origin[3], hull)
{
	static tr;
	engfunc(EngFunc_TraceHull, origin, origin, 0, hull, 0, tr);	
	if (!get_tr2(tr, TR_StartSolid) && !get_tr2(tr, TR_AllSolid) && get_tr2(tr, TR_InOpen))
		return true;
	return false;
}
 
 
///dhud
stock dhud_color;
stock dhud_x;
stock dhud_y;
stock dhud_effect;
stock dhud_fxtime;
stock dhud_holdtime;
stock dhud_fadeintime;
stock dhud_fadeouttime;
stock dhud_reliable;
 
stock set_dhudmessage(red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = false)
{
	#define clamp_byte(%1)       (clamp(%1, 0, 255))
	#define pack_color(%1,%2,%3) (%3 + (%2<<8) + (%1<<16))
 
	dhud_color 	= pack_color(clamp_byte(red), clamp_byte(green), clamp_byte(blue));
	dhud_x		= _:x;
	dhud_y		= _:y;
	dhud_effect	= effects;
	dhud_fxtime	= _:fxtime;
	dhud_holdtime	= _:holdtime;
	dhud_fadeintime	= _:fadeintime;
	dhud_fadeouttime = _:fadeouttime;
	dhud_reliable	= _:reliable;
	return 1;
}
 
stock show_dhudmessage(index, const message[], any:...)
{
	new buffer[128];
	new numArguments = numargs();
 
	if(numArguments == 2)
		send_dhudMessage(index, message);
	else if(index || numArguments == 3)
	{
		vformat(buffer, charsmax(buffer), message, 3);
		send_dhudMessage(index, buffer);
	}
	else
	{
		new playersList[32], numPlayers;
		get_players(playersList, numPlayers, "ch");
 
		if(!numPlayers)
			return 0;
 
		new Array:handleArrayML = ArrayCreate();
 
		for(new i = 2, j; i < numArguments; i++)
		{
			if(getarg(i) == LANG_PLAYER)
			{
				while((buffer[j] = getarg(i + 1, j++))) {}
				j = 0;
 
				if(GetLangTransKey(buffer) != TransKey_Bad)
					ArrayPushCell(handleArrayML, i++);
			}
		}
 
		new size = ArraySize(handleArrayML);
 
		if(!size)
		{
			vformat(buffer, charsmax(buffer), message, 3);
			send_dhudMessage(index, buffer);
		}
		else
		{
			for(new i = 0, j; i < numPlayers; i++)
			{
				index = playersList[i];
 
				for(j = 0; j < size; j++)
					setarg(ArrayGetCell(handleArrayML, j), 0, index);
 
				vformat(buffer, charsmax(buffer), message, 3);
				send_dhudMessage(index, buffer);
			}
		}
		ArrayDestroy(handleArrayML);
	}
	return 1;
}
 
stock send_dhudMessage(const index, const message[])
{
	message_begin(dhud_reliable? (index? MSG_ONE: MSG_ALL): (index? MSG_ONE_UNRELIABLE: MSG_BROADCAST), SVC_DIRECTOR, _, index);
	write_byte(strlen(message) + 31);
	write_byte(DRC_CMD_MESSAGE);
	write_byte(dhud_effect);
	write_long(dhud_color);
	write_long(dhud_x);
	write_long(dhud_y);
	write_long(dhud_fadeintime);
	write_long(dhud_fadeouttime);
	write_long(dhud_holdtime);
	write_long(dhud_fxtime);
	write_string(message);
	message_end();
}
 

Dodanych wklejek: 4031
Powered By (Pav32) Pastebin © 2011