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.
1505.
1506.
1507.
1508.
1509.
1510.
1511.
1512.
1513.
1514.
1515.
1516.
1517.
1518.
1519.
1520.
1521.
1522.
1523.
1524.
1525.
1526.
1527.
1528.
1529.
1530.
1531.
1532.
1533.
1534.
1535.
1536.
1537.
1538.
1539.
1540.
1541.
1542.
1543.
1544.
1545.
1546.
1547.
1548.
1549.
1550.
1551.
1552.
1553.
1554.
1555.
1556.
1557.
1558.
1559.
1560.
1561.
1562.
1563.
1564.
1565.
1566.
1567.
1568.
1569.
1570.
1571.
1572.
1573.
1574.
1575.
1576.
1577.
1578.
1579.
1580.
1581.
1582.
1583.
1584.
1585.
1586.
1587.
1588.
1589.
1590.
1591.
1592.
1593.
1594.
1595.
1596.
1597.
1598.
1599.
1600.
1601.
1602.
1603.
1604.
1605.
1606.
1607.
1608.
1609.
1610.
1611.
1612.
1613.
1614.
1615.
1616.
1617.
1618.
1619.
1620.
1621.
1622.
1623.
1624.
1625.
1626.
1627.
1628.
1629.
1630.
1631.
1632.
1633.
1634.
1635.
1636.
1637.
1638.
1639.
1640.
1641.
1642.
1643.
1644.
1645.
1646.
1647.
1648.
1649.
1650.
1651.
1652.
1653.
1654.
1655.
1656.
1657.
1658.
1659.
1660.
1661.
1662.
1663.
1664.
1665.
1666.
1667.
1668.
1669.
1670.
1671.
1672.
1673.
1674.
1675.
1676.
1677.
1678.
1679.
1680.
1681.
1682.
1683.
1684.
1685.
1686.
1687.
1688.
1689.
1690.
1691.
1692.
1693.
1694.
1695.
1696.
1697.
1698.
1699.
1700.
1701.
1702.
1703.
1704.
1705.
1706.
1707.
1708.
1709.
1710.
1711.
1712.
1713.
1714.
1715.
1716.
1717.
1718.
1719.
1720.
1721.
1722.
1723.
1724.
1725.
1726.
1727.
1728.
1729.
1730.
1731.
1732.
1733.
1734.
1735.
1736.
1737.
1738.
1739.
1740.
1741.
1742.
1743.
1744.
1745.
1746.
1747.
1748.
1749.
1750.
1751.
1752.
1753.
1754.
1755.
1756.
1757.
1758.
1759.
1760.
1761.
1762.
1763.
1764.
1765.
1766.
1767.
1768.
1769.
1770.
1771.
1772.
1773.
1774.
1775.
1776.
1777.
1778.
1779.
1780.
1781.
1782.
1783.
1784.
1785.
1786.
1787.
1788.
1789.
1790.
1791.
1792.
1793.
1794.
1795.
1796.
1797.
1798.
1799.
1800.
1801.
1802.
1803.
1804.
1805.
1806.
1807.
1808.
1809.
1810.
1811.
1812.
1813.
1814.
1815.
1816.
1817.
1818.
1819.
1820.
1821.
1822.
1823.
1824.
1825.
1826.
1827.
1828.
1829.
1830.
1831.
1832.
1833.
1834.
1835.
1836.
1837.
1838.
1839.
1840.
1841.
1842.
1843.
1844.
1845.
1846.
1847.
1848.
1849.
1850.
1851.
1852.
1853.
1854.
1855.
1856.
1857.
1858.
1859.
1860.
1861.
1862.
1863.
1864.
1865.
1866.
1867.
1868.
1869.
1870.
1871.
1872.
1873.
1874.
1875.
1876.
1877.
1878.
1879.
1880.
1881.
1882.
1883.
1884.
1885.
1886.
1887.
1888.
1889.
1890.
1891.
1892.
1893.
1894.
1895.
1896.
1897.
1898.
1899.
1900.
1901.
1902.
1903.
1904.
1905.
1906.
1907.
1908.
1909.
1910.
1911.
1912.
1913.
1914.
1915.
1916.
1917.
1918.
1919.
1920.
1921.
1922.
1923.
1924.
1925.
1926.
1927.
1928.
1929.
1930.
1931.
1932.
1933.
1934.
1935.
1936.
1937.
1938.
1939.
1940.
1941.
1942.
1943.
1944.
1945.
1946.
1947.
1948.
1949.
1950.
1951.
1952.
1953.
1954.
1955.
1956.
1957.
1958.
1959.
1960.
1961.
1962.
1963.
1964.
1965.
1966.
1967.
1968.
1969.
1970.
1971.
1972.
1973.
1974.
1975.
1976.
1977.
1978.
1979.
1980.
1981.
1982.
1983.
1984.
1985.
1986.
1987.
1988.
1989.
1990.
1991.
1992.
1993.
1994.
1995.
1996.
1997.
1998.
1999.
2000.
2001.
2002.
2003.
2004.
2005.
2006.
2007.
2008.
2009.
2010.
2011.
2012.
2013.
2014.
2015.
2016.
2017.
2018.
2019.
2020.
2021.
2022.
2023.
2024.
2025.
2026.
2027.
2028.
2029.
2030.
2031.
2032.
2033.
2034.
2035.
2036.
2037.
2038.
2039.
2040.
2041.
2042.
2043.
2044.
2045.
2046.
2047.
2048.
2049.
2050.
2051.
2052.
2053.
2054.
2055.
2056.
2057.
2058.
2059.
2060.
2061.
2062.
2063.
2064.
2065.
2066.
2067.
2068.
2069.
2070.
2071.
2072.
2073.
2074.
2075.
2076.
2077.
2078.
2079.
2080.
2081.
2082.
2083.
2084.
2085.
2086.
2087.
2088.
2089.
2090.
2091.
2092.
2093.
2094.
2095.
2096.
2097.
2098.
2099.
2100.
2101.
2102.
2103.
2104.
2105.
2106.
2107.
2108.
2109.
2110.
2111.
2112.
2113.
2114.
2115.
2116.
2117.
2118.
2119.
2120.
2121.
2122.
2123.
2124.
2125.
2126.
2127.
2128.
2129.
2130.
2131.
2132.
2133.
2134.
2135.
2136.
2137.
2138.
2139.
2140.
2141.
2142.
2143.
2144.
2145.
2146.
2147.
2148.
2149.
2150.
2151.
2152.
2153.
2154.
2155.
2156.
2157.
2158.
2159.
2160.
2161.
2162.
2163.
2164.
2165.
2166.
2167.
2168.
2169.
2170.
2171.
2172.
2173.
2174.
2175.
2176.
2177.
2178.
2179.
2180.
2181.
2182.
2183.
2184.
2185.
2186.
2187.
2188.
2189.
2190.
2191.
2192.
2193.
2194.
2195.
2196.
2197.
2198.
2199.
2200.
2201.
2202.
2203.
2204.
2205.
2206.
2207.
2208.
2209.
2210.
2211.
2212.
2213.
2214.
2215.
2216.
2217.
2218.
2219.
2220.
2221.
2222.
2223.
2224.
2225.
2226.
2227.
2228.
2229.
2230.
2231.
2232.
2233.
2234.
2235.
2236.
2237.
2238.
2239.
2240.
2241.
2242.
2243.
2244.
2245.
2246.
2247.
2248.
2249.
2250.
2251.
2252.
2253.
2254.
2255.
2256.
2257.
2258.
2259.
2260.
2261.
2262.
2263.
2264.
2265.
2266.
2267.
2268.
2269.
2270.
2271.
2272.
2273.
2274.
2275.
2276.
2277.
2278.
2279.
2280.
2281.
2282.
2283.
2284.
2285.
2286.
2287.
2288.
2289.
2290.
2291.
2292.
2293.
2294.
2295.
2296.
2297.
2298.
2299.
2300.
2301.
2302.
2303.
2304.
2305.
2306.
2307.
2308.
2309.
2310.
2311.
2312.
2313.
2314.
2315.
2316.
2317.
2318.
2319.
2320.
2321.
2322.
2323.
2324.
2325.
2326.
2327.
2328.
2329.
2330.
2331.
2332.
2333.
2334.
2335.
2336.
2337.
2338.
2339.
2340.
2341.
2342.
2343.
2344.
2345.
2346.
2347.
2348.
2349.
2350.
2351.
2352.
2353.
2354.
2355.
2356.
2357.
2358.
2359.
2360.
2361.
2362.
2363.
2364.
2365.
2366.
2367.
2368.
2369.
2370.
2371.
2372.
2373.
2374.
2375.
2376.
2377.
2378.
2379.
2380.
2381.
2382.
2383.
2384.
2385.
2386.
2387.
2388.
2389.
2390.
2391.
2392.
2393.
2394.
2395.
2396.
2397.
2398.
2399.
2400.
2401.
2402.
2403.
2404.
2405.
2406.
2407.
2408.
2409.
2410.
2411.
2412.
2413.
2414.
2415.
2416.
2417.
2418.
2419.
2420.
2421.
2422.
2423.
2424.
2425.
2426.
2427.
2428.
2429.
2430.
2431.
2432.
2433.
2434.
2435.
2436.
2437.
2438.
2439.
2440.
2441.
2442.
2443.
2444.
2445.
2446.
2447.
2448.
2449.
2450.
2451.
2452.
2453.
2454.
2455.
2456.
2457.
2458.
2459.
2460.
2461.
2462.
2463.
2464.
2465.
2466.
2467.
2468.
2469.
2470.
2471.
2472.
2473.
2474.
2475.
2476.
2477.
2478.
2479.
2480.
2481.
2482.
2483.
2484.
2485.
2486.
2487.
2488.
2489.
2490.
2491.
2492.
2493.
2494.
2495.
2496.
2497.
2498.
2499.
2500.
2501.
2502.
2503.
2504.
2505.
2506.
2507.
2508.
2509.
2510.
2511.
2512.
2513.
2514.
2515.
2516.
2517.
2518.
2519.
2520.
2521.
2522.
2523.
2524.
2525.
2526.
2527.
2528.
2529.
2530.
2531.
2532.
2533.
2534.
2535.
2536.
2537.
2538.
2539.
2540.
2541.
2542.
2543.
2544.
2545.
2546.
2547.
2548.
2549.
2550.
2551.
2552.
2553.
2554.
2555.
2556.
2557.
2558.
2559.
2560.
2561.
2562.
2563.
2564.
2565.
2566.
2567.
2568.
2569.
2570.
2571.
2572.
2573.
2574.
2575.
2576.
2577.
2578.
2579.
2580.
2581.
2582.
2583.
2584.
2585.
2586.
2587.
2588.
2589.
2590.
2591.
2592.
2593.
2594.
2595.
2596.
2597.
2598.
2599.
2600.
2601.
2602.
2603.
2604.
2605.
2606.
2607.
2608.
2609.
2610.
2611.
2612.
2613.
2614.
2615.
2616.
2617.
2618.
2619.
2620.
2621.
2622.
2623.
2624.
2625.
2626.
2627.
2628.
2629.
2630.
2631.
2632.
2633.
2634.
2635.
2636.
2637.
2638.
2639.
2640.
2641.
2642.
2643.
2644.
2645.
2646.
2647.
2648.
2649.
2650.
2651.
2652.
2653.
2654.
2655.
2656.
2657.
2658.
2659.
2660.
2661.
2662.
2663.
2664.
2665.
2666.
2667.
2668.
2669.
2670.
2671.
2672.
2673.
2674.
2675.
2676.
2677.
2678.
2679.
2680.
2681.
2682.
2683.
2684.
2685.
2686.
2687.
2688.
2689.
2690.
2691.
2692.
2693.
2694.
2695.
2696.
2697.
2698.
2699.
2700.
2701.
2702.
2703.
2704.
2705.
2706.
2707.
2708.
2709.
2710.
2711.
2712.
2713.
2714.
2715.
2716.
2717.
2718.
2719.
2720.
2721.
2722.
2723.
2724.
2725.
2726.
2727.
2728.
2729.
2730.
2731.
2732.
2733.
2734.
2735.
2736.
2737.
2738.
2739.
2740.
2741.
2742.
2743.
2744.
2745.
2746.
2747.
2748.
2749.
2750.
2751.
2752.
2753.
2754.
2755.
2756.
2757.
2758.
2759.
2760.
2761.
2762.
2763.
2764.
2765.
2766.
2767.
2768.
2769.
2770.
2771.
2772.
2773.
2774.
2775.
2776.
2777.
2778.
2779.
2780.
2781.
2782.
2783.
2784.
2785.
2786.
2787.
2788.
2789.
2790.
2791.
2792.
2793.
2794.
2795.
2796.
2797.
2798.
2799.
2800.
2801.
2802.
2803.
2804.
2805.
2806.
2807.
2808.
2809.
2810.
2811.
2812.
2813.
2814.
2815.
2816.
2817.
2818.
2819.
2820.
2821.
2822.
2823.
2824.
2825.
2826.
2827.
2828.
2829.
2830.
2831.
2832.
2833.
2834.
2835.
2836.
2837.
2838.
2839.
2840.
2841.
2842.
2843.
2844.
2845.
2846.
2847.
2848.
2849.
2850.
2851.
2852.
2853.
2854.
2855.
2856.
2857.
2858.
2859.
2860.
2861.
2862.
2863.
2864.
2865.
2866.
2867.
2868.
2869.
2870.
2871.
2872.
2873.
2874.
2875.
2876.
2877.
2878.
2879.
2880.
2881.
2882.
2883.
2884.
2885.
2886.
2887.
2888.
2889.
2890.
2891.
2892.
2893.
2894.
2895.
2896.
2897.
2898.
2899.
2900.
2901.
2902.
2903.
2904.
2905.
2906.
2907.
2908.
2909.
2910.
2911.
2912.
2913.
2914.
2915.
2916.
2917.
2918.
2919.
2920.
2921.
2922.
2923.
2924.
2925.
2926.
2927.
2928.
2929.
2930.
2931.
2932.
2933.
2934.
2935.
2936.
2937.
2938.
2939.
2940.
2941.
2942.
2943.
2944.
2945.
2946.
2947.
2948.
2949.
2950.
2951.
2952.
2953.
2954.
2955.
2956.
2957.
2958.
2959.
2960.
2961.
2962.
2963.
2964.
2965.
2966.
2967.
2968.
2969.
2970.
2971.
2972.
2973.
2974.
2975.
2976.
2977.
2978.
2979.
2980.
2981.
2982.
2983.
2984.
2985.
2986.
2987.
2988.
2989.
2990.
2991.
2992.
2993.
2994.
2995.
2996.
2997.
2998.
2999.
3000.
3001.
3002.
3003.
3004.
3005.
3006.
3007.
3008.
3009.
3010.
3011.
3012.
3013.
3014.
3015.
3016.
3017.
3018.
3019.
3020.
3021.
3022.
3023.
3024.
3025.
3026.
3027.
3028.
3029.
3030.
3031.
3032.
3033.
3034.
3035.
3036.
3037.
3038.
3039.
3040.
3041.
3042.
3043.
3044.
3045.
3046.
3047.
3048.
3049.
3050.
3051.
3052.
3053.
3054.
3055.
3056.
3057.
3058.
3059.
3060.
3061.
3062.
3063.
3064.
3065.
3066.
3067.
3068.
3069.
3070.
3071.
3072.
3073.
3074.
3075.
3076.
3077.
3078.
3079.
3080.
3081.
3082.
3083.
3084.
3085.
3086.
3087.
3088.
3089.
3090.
3091.
3092.
3093.
3094.
3095.
3096.
3097.
3098.
3099.
3100.
3101.
3102.
3103.
3104.
3105.
3106.
3107.
3108.
3109.
3110.
3111.
3112.
3113.
3114.
3115.
3116.
3117.
3118.
3119.
3120.
3121.
3122.
3123.
3124.
3125.
3126.
3127.
3128.
3129.
3130.
3131.
3132.
3133.
3134.
3135.
3136.
3137.
3138.
3139.
3140.
3141.
3142.
3143.
3144.
3145.
3146.
3147.
3148.
3149.
3150.
3151.
3152.
3153.
3154.
3155.
3156.
3157.
3158.
3159.
3160.
3161.
3162.
3163.
3164.
3165.
3166.
3167.
3168.
3169.
3170.
3171.
3172.
3173.
3174.
3175.
3176.
3177.
3178.
3179.
3180.
3181.
3182.
3183.
3184.
3185.
3186.
3187.
3188.
3189.
3190.
3191.
3192.
3193.
3194.
3195.
3196.
3197.
3198.
3199.
3200.
3201.
3202.
3203.
3204.
3205.
3206.
3207.
3208.
3209.
3210.
3211.
3212.
3213.
3214.
3215.
3216.
3217.
3218.
3219.
3220.
3221.
3222.
3223.
3224.
3225.
3226.
3227.
3228.
3229.
3230.
3231.
3232.
3233.
3234.
3235.
3236.
3237.
3238.
3239.
3240.
3241.
3242.
3243.
3244.
3245.
3246.
3247.
3248.
3249.
3250.
3251.
3252.
3253.
3254.
3255.
3256.
3257.
3258.
3259.
3260.
3261.
3262.
3263.
3264.
3265.
3266.
3267.
3268.
3269.
3270.
3271.
3272.
3273.
3274.
3275.
3276.
3277.
3278.
3279.
3280.
3281.
3282.
3283.
3284.
3285.
3286.
3287.
3288.
3289.
3290.
3291.
3292.
3293.
3294.
3295.
3296.
3297.
3298.
3299.
3300.
3301.
3302.
3303.
3304.
3305.
3306.
3307.
3308.
3309.
3310.
3311.
3312.
3313.
3314.
3315.
3316.
3317.
3318.
3319.
3320.
3321.
3322.
3323.
3324.
3325.
3326.
3327.
3328.
3329.
3330.
3331.
3332.
3333.
3334.
3335.
3336.
3337.
3338.
3339.
3340.
3341.
3342.
3343.
3344.
3345.
3346.
3347.
3348.
3349.
3350.
3351.
3352.
3353.
3354.
3355.
3356.
3357.
3358.
3359.
3360.
3361.
3362.
3363.
3364.
3365.
3366.
3367.
3368.
3369.
3370.
3371.
3372.
3373.
3374.
3375.
3376.
3377.
3378.
3379.
3380.
3381.
3382.
3383.
3384.
3385.
3386.
3387.
3388.
3389.
3390.
3391.
3392.
3393.
3394.
3395.
3396.
3397.
3398.
3399.
3400.
3401.
3402.
3403.
3404.
3405.
3406.
3407.
3408.
3409.
3410.
3411.
3412.
3413.
3414.
3415.
3416.
3417.
3418.
3419.
3420.
3421.
3422.
3423.
3424.
3425.
3426.
3427.
3428.
3429.
3430.
3431.
3432.
3433.
3434.
3435.
3436.
3437.
3438.
3439.
3440.
3441.
3442.
3443.
3444.
3445.
3446.
3447.
3448.
3449.
3450.
3451.
3452.
3453.
3454.
3455.
3456.
3457.
3458.
3459.
3460.
3461.
3462.
3463.
3464.
3465.
3466.
3467.
3468.
3469.
3470.
3471.
3472.
3473.
3474.
3475.
3476.
3477.
3478.
3479.
3480.
3481.
3482.
3483.
3484.
3485.
3486.
3487.
3488.
3489.
3490.
3491.
3492.
3493.
3494.
3495.
3496.
3497.
3498.
3499.
3500.
3501.
3502.
3503.
3504.
3505.
3506.
3507.
3508.
3509.
3510.
3511.
3512.
3513.
3514.
3515.
3516.
3517.
3518.
3519.
3520.
3521.
3522.
3523.
3524.
3525.
3526.
3527.
3528.
3529.
3530.
3531.
3532.
3533.
3534.
3535.
3536.
3537.
3538.
3539.
3540.
3541.
3542.
3543.
3544.
3545.
3546.
3547.
3548.
3549.
3550.
3551.
3552.
3553.
3554.
3555.
3556.
3557.
3558.
3559.
3560.
3561.
3562.
3563.
3564.
3565.
3566.
3567.
3568.
3569.
3570.
3571.
3572.
3573.
3574.
3575.
3576.
3577.
3578.
3579.
3580.
3581.
3582.
3583.
3584.
3585.
3586.
3587.
3588.
3589.
3590.
3591.
3592.
3593.
3594.
3595.
3596.
3597.
3598.
3599.
3600.
3601.
3602.
3603.
3604.
3605.
3606.
3607.
3608.
3609.
3610.
3611.
3612.
3613.
3614.
3615.
3616.
3617.
3618.
3619.
3620.
3621.
3622.
3623.
3624.
3625.
3626.
3627.
3628.
3629.
3630.
3631.
3632.
3633.
3634.
3635.
3636.
3637.
3638.
3639.
3640.
3641.
3642.
3643.
3644.
3645.
3646.
3647.
3648.
3649.
3650.
3651.
3652.
3653.
3654.
3655.
3656.
3657.
3658.
3659.
3660.
3661.
3662.
3663.
3664.
3665.
3666.
3667.
3668.
3669.
3670.
3671.
3672.
3673.
3674.
3675.
3676.
3677.
3678.
3679.
3680.
3681.
3682.
3683.
3684.
3685.
3686.
3687.
3688.
3689.
3690.
3691.
3692.
3693.
3694.
3695.
3696.
3697.
3698.
3699.
3700.
3701.
3702.
3703.
3704.
3705.
3706.
3707.
3708.
3709.
3710.
3711.
3712.
3713.
3714.
3715.
3716.
3717.
3718.
3719.
3720.
3721.
3722.
3723.
3724.
3725.
3726.
3727.
3728.
3729.
3730.
3731.
3732.
3733.
3734.
3735.
3736.
3737.
3738.
3739.
3740.
3741.
3742.
3743.
3744.
3745.
3746.
3747.
3748.
3749.
3750.
3751.
3752.
3753.
3754.
3755.
3756.
3757.
3758.
3759.
3760.
3761.
3762.
3763.
3764.
3765.
3766.
3767.
3768.
3769.
3770.
3771.
3772.
3773.
3774.
3775.
3776.
3777.
3778.
3779.
3780.
3781.
3782.
3783.
3784.
3785.
3786.
3787.
3788.
3789.
3790.
3791.
3792.
3793.
3794.
3795.
3796.
3797.
3798.
3799.
3800.
3801.
3802.
3803.
3804.
3805.
3806.
3807.
3808.
3809.
3810.
3811.
3812.
3813.
3814.
3815.
3816.
3817.
3818.
3819.
3820.
3821.
3822.
3823.
3824.
3825.
3826.
3827.
3828.
3829.
3830.
3831.
3832.
3833.
3834.
3835.
3836.
3837.
3838.
3839.
3840.
3841.
3842.
3843.
3844.
3845.
3846.
3847.
3848.
3849.
3850.
3851.
3852.
3853.
3854.
3855.
3856.
3857.
3858.
3859.
3860.
3861.
3862.
3863.
3864.
3865.
3866.
3867.
3868.
3869.
3870.
3871.
3872.
3873.
3874.
3875.
3876.
3877.
3878.
3879.
3880.
3881.
3882.
3883.
3884.
3885.
3886.
3887.
3888.
3889.
3890.
3891.
3892.
3893.
3894.
3895.
3896.
3897.
3898.
3899.
3900.
3901.
3902.
3903.
3904.
3905.
3906.
3907.
3908.
3909.
3910.
3911.
3912.
3913.
3914.
3915.
3916.
3917.
3918.
3919.
3920.
3921.
3922.
3923.
3924.
3925.
3926.
3927.
3928.
3929.
3930.
3931.
3932.
3933.
3934.
3935.
3936.
3937.
3938.
3939.
3940.
3941.
3942.
3943.
3944.
3945.
3946.
3947.
3948.
3949.
3950.
3951.
3952.
3953.
3954.
3955.
3956.
3957.
3958.
3959.
3960.
3961.
3962.
3963.
3964.
3965.
3966.
3967.
3968.
3969.
3970.
3971.
3972.
3973.
3974.
3975.
3976.
3977.
3978.
3979.
3980.
3981.
3982.
3983.
3984.
3985.
3986.
3987.
3988.
3989.
3990.
3991.
3992.
3993.
3994.
3995.
3996.
3997.
3998.
3999.
4000.
4001.
4002.
4003.
4004.
4005.
4006.
4007.
4008.
4009.
4010.
4011.
4012.
4013.
4014.
4015.
4016.
4017.
4018.
4019.
4020.
4021.
4022.
4023.
4024.
4025.
4026.
4027.
4028.
4029.
4030.
4031.
4032.
4033.
4034.
4035.
4036.
4037.
4038.
4039.
4040.
4041.
4042.
4043.
4044.
4045.
4046.
4047.
4048.
4049.
4050.
4051.
4052.
4053.
4054.
4055.
4056.
4057.
4058.
4059.
4060.
4061.
4062.
4063.
4064.
4065.
4066.
4067.
4068.
4069.
4070.
4071.
4072.
4073.
4074.
4075.
4076.
4077.
4078.
4079.
4080.
4081.
4082.
4083.
4084.
4085.
4086.
4087.
4088.
4089.
4090.
4091.
4092.
4093.
4094.
4095.
4096.
4097.
4098.
4099.
4100.
4101.
4102.
4103.
4104.
4105.
4106.
4107.
4108.
4109.
4110.
4111.
4112.
4113.
4114.
4115.
4116.
4117.
4118.
4119.
4120.
4121.
4122.
4123.
4124.
4125.
4126.
4127.
4128.
4129.
4130.
4131.
4132.
4133.
4134.
4135.
4136.
4137.
4138.
4139.
4140.
4141.
4142.
4143.
4144.
4145.
4146.
4147.
4148.
4149.
4150.
4151.
4152.
4153.
4154.
4155.
4156.
4157.
4158.
4159.
4160.
4161.
4162.
4163.
4164.
4165.
4166.
4167.
4168.
4169.
4170.
4171.
4172.
4173.
4174.
4175.
4176.
4177.
4178.
4179.
4180.
4181.
4182.
4183.
4184.
4185.
4186.
4187.
4188.
4189.
4190.
4191.
4192.
4193.
4194.
4195.
4196.
4197.
4198.
4199.
4200.
4201.
4202.
4203.
4204.
4205.
4206.
4207.
4208.
4209.
4210.
4211.
4212.
4213.
4214.
4215.
4216.
4217.
4218.
4219.
4220.
4221.
4222.
4223.
4224.
4225.
4226.
4227.
4228.
4229.
4230.
4231.
4232.
4233.
4234.
4235.
4236.
4237.
4238.
4239.
4240.
4241.
4242.
4243.
4244.
4245.
4246.
4247.
4248.
4249.
4250.
4251.
4252.
4253.
4254.
4255.
4256.
4257.
4258.
4259.
4260.
4261.
4262.
4263.
4264.
4265.
4266.
4267.
4268.
4269.
4270.
4271.
4272.
4273.
4274.
4275.
4276.
4277.
4278.
4279.
4280.
4281.
4282.
4283.
4284.
4285.
4286.
4287.
4288.
4289.
4290.
4291.
4292.
4293.
4294.
4295.
4296.
4297.
4298.
4299.
4300.
4301.
4302.
4303.
4304.
4305.
4306.
4307.
4308.
4309.
4310.
4311.
4312.
4313.
4314.
4315.
4316.
4317.
4318.
4319.
4320.
4321.
4322.
4323.
4324.
4325.
4326.
4327.
4328.
4329.
4330.
4331.
4332.
4333.
4334.
4335.
4336.
4337.
4338.
4339.
4340.
4341.
4342.
4343.
4344.
4345.
4346.
4347.
4348.
4349.
4350.
4351.
4352.
4353.
4354.
4355.
4356.
4357.
4358.
4359.
4360.
4361.
4362.
4363.
4364.
4365.
4366.
4367.
4368.
4369.
4370.
4371.
4372.
4373.
4374.
4375.
4376.
4377.
4378.
4379.
4380.
4381.
4382.
4383.
4384.
4385.
4386.
4387.
4388.
4389.
4390.
4391.
4392.
4393.
4394.
4395.
4396.
4397.
4398.
4399.
4400.
4401.
4402.
4403.
4404.
4405.
4406.
4407.
4408.
4409.
4410.
4411.
4412.
4413.
4414.
4415.
4416.
4417.
4418.
4419.
4420.
4421.
4422.
4423.
4424.
4425.
4426.
4427.
4428.
4429.
4430.
4431.
4432.
4433.
4434.
4435.
4436.
4437.
4438.
4439.
4440.
4441.
4442.
4443.
4444.
4445.
4446.
4447.
4448.
4449.
4450.
4451.
4452.
4453.
4454.
4455.
4456.
4457.
4458.
4459.
4460.
4461.
4462.
4463.
4464.
4465.
4466.
4467.
4468.
4469.
4470.
4471.
4472.
4473.
4474.
4475.
4476.
4477.
4478.
4479.
4480.
4481.
4482.
4483.
4484.
4485.
4486.
4487.
4488.
4489.
4490.
4491.
4492.
4493.
4494.
4495.
4496.
4497.
4498.
4499.
4500.
4501.
4502.
4503.
4504.
4505.
4506.
4507.
4508.
4509.
4510.
4511.
4512.
4513.
4514.
4515.
4516.
4517.
4518.
4519.
4520.
4521.
4522.
4523.
4524.
4525.
4526.
4527.
4528.
4529.
4530.
4531.
4532.
4533.
4534.
4535.
4536.
4537.
4538.
4539.
4540.
4541.
4542.
4543.
4544.
4545.
4546.
4547.
4548.
4549.
4550.
4551.
4552.
4553.
4554.
4555.
4556.
4557.
4558.
4559.
4560.
4561.
4562.
4563.
4564.
4565.
4566.
4567.
4568.
4569.
4570.
4571.
4572.
4573.
4574.
4575.
4576.
4577.
4578.
4579.
4580.
4581.
4582.
4583.
4584.
4585.
4586.
4587.
4588.
4589.
4590.
4591.
4592.
4593.
4594.
4595.
4596.
4597.
4598.
4599.
4600.
4601.
4602.
4603.
4604.
4605.
4606.
4607.
4608.
4609.
4610.
4611.
4612.
4613.
4614.
4615.
4616.
4617.
4618.
4619.
4620.
4621.
4622.
4623.
4624.
4625.
4626.
4627.
4628.
4629.
4630.
4631.
4632.
4633.
4634.
4635.
4636.
4637.
4638.
4639.
4640.
4641.
4642.
4643.
4644.
4645.
4646.
4647.
4648.
4649.
4650.
4651.
4652.
4653.
4654.
4655.
4656.
4657.
4658.
4659.
4660.
4661.
4662.
4663.
4664.
4665.
4666.
4667.
4668.
4669.
4670.
4671.
4672.
4673.
4674.
4675.
4676.
4677.
4678.
4679.
4680.
4681.
4682.
4683.
4684.
4685.
4686.
4687.
4688.
4689.
4690.
4691.
4692.
4693.
4694.
4695.
4696.
4697.
4698.
4699.
4700.
4701.
4702.
4703.
4704.
4705.
4706.
4707.
4708.
4709.
4710.
4711.
4712.
4713.
4714.
4715.
4716.
4717.
4718.
4719.
4720.
4721.
4722.
4723.
4724.
4725.
4726.
4727.
4728.
4729.
4730.
4731.
4732.
4733.
4734.
4735.
4736.
4737.
4738.
4739.
4740.
4741.
4742.
4743.
4744.
4745.
4746.
4747.
4748.
4749.
4750.
4751.
4752.
4753.
4754.
4755.
4756.
4757.
4758.
4759.
4760.
4761.
4762.
4763.
4764.
4765.
4766.
4767.
4768.
4769.
4770.
4771.
4772.
4773.
4774.
4775.
4776.
4777.
4778.
4779.
4780.
4781.
4782.
4783.
4784.
4785.
4786.
4787.
4788.
4789.
4790.
4791.
4792.
4793.
4794.
4795.
4796.
4797.
4798.
4799.
4800.
4801.
4802.
4803.
4804.
4805.
4806.
4807.
4808.
4809.
4810.
4811.
4812.
4813.
4814.
4815.
4816.
4817.
4818.
4819.
4820.
4821.
4822.
4823.
4824.
4825.
4826.
4827.
4828.
4829.
4830.
4831.
4832.
4833.
4834.
4835.
4836.
4837.
4838.
4839.
4840.
4841.
4842.
4843.
4844.
4845.
4846.
4847.
4848.
4849.
4850.
4851.
4852.
4853.
4854.
4855.
4856.
4857.
4858.
4859.
4860.
4861.
4862.
4863.
4864.
4865.
4866.
4867.
4868.
4869.
4870.
4871.
4872.
4873.
4874.
4875.
4876.
4877.
4878.
4879.
4880.
4881.
4882.
4883.
4884.
4885.
4886.
4887.
4888.
4889.
4890.
4891.
4892.
4893.
4894.
4895.
4896.
4897.
4898.
4899.
4900.
4901.
4902.
4903.
4904.
4905.
4906.
4907.
4908.
4909.
4910.
4911.
4912.
4913.
4914.
4915.
4916.
4917.
4918.
4919.
4920.
4921.
4922.
4923.
4924.
4925.
4926.
4927.
4928.
4929.
4930.
4931.
4932.
4933.
4934.
4935.
4936.
4937.
4938.
4939.
4940.
4941.
4942.
4943.
4944.
4945.
4946.
4947.
4948.
4949.
4950.
4951.
4952.
4953.
4954.
4955.
4956.
4957.
4958.
4959.
4960.
4961.
4962.
4963.
4964.
4965.
4966.
4967.
4968.
4969.
4970.
4971.
4972.
4973.
4974.
4975.
4976.
4977.
4978.
4979.
4980.
4981.
4982.
4983.
4984.
4985.
4986.
4987.
4988.
4989.
4990.
4991.
4992.
4993.
4994.
4995.
4996.
4997.
4998.
4999.
5000.
5001.
5002.
5003.
5004.
5005.
5006.
5007.
5008.
5009.
5010.
5011.
5012.
5013.
5014.
5015.
5016.
5017.
5018.
5019.
5020.
5021.
5022.
5023.
5024.
5025.
5026.
5027.
5028.
5029.
5030.
5031.
5032.
5033.
5034.
5035.
5036.
5037.
5038.
5039.
5040.
5041.
5042.
5043.
5044.
5045.
5046.
5047.
5048.
5049.
5050.
5051.
5052.
5053.
5054.
5055.
5056.
5057.
5058.
5059.
5060.
5061.
5062.
5063.
5064.
5065.
5066.
5067.
5068.
5069.
5070.
5071.
5072.
5073.
5074.
5075.
5076.
5077.
5078.
5079.
5080.
5081.
5082.
5083.
5084.
5085.
5086.
5087.
5088.
5089.
5090.
5091.
5092.
5093.
5094.
5095.
5096.
5097.
5098.
5099.
5100.
5101.
5102.
5103.
5104.
5105.
5106.
5107.
5108.
5109.
5110.
5111.
5112.
5113.
5114.
5115.
5116.
5117.
5118.
5119.
5120.
5121.
5122.
5123.
5124.
5125.
5126.
5127.
5128.
5129.
5130.
5131.
5132.
5133.
5134.
5135.
5136.
5137.
5138.
5139.
5140.
5141.
5142.
5143.
5144.
5145.
5146.
5147.
5148.
5149.
5150.
5151.
5152.
5153.
5154.
5155.
5156.
5157.
5158.
5159.
5160.
5161.
5162.
5163.
5164.
5165.
5166.
5167.
5168.
5169.
5170.
5171.
5172.
5173.
5174.
5175.
5176.
5177.
5178.
5179.
5180.
5181.
5182.
5183.
5184.
5185.
5186.
5187.
5188.
5189.
5190.
5191.
5192.
5193.
5194.
5195.
5196.
5197.
5198.
5199.
5200.
5201.
5202.
5203.
5204.
5205.
5206.
5207.
5208.
5209.
5210.
5211.
5212.
5213.
5214.
5215.
5216.
5217.
5218.
5219.
5220.
5221.
5222.
5223.
5224.
5225.
5226.
5227.
5228.
5229.
5230.
5231.
5232.
5233.
5234.
5235.
5236.
5237.
5238.
5239.
5240.
5241.
5242.
5243.
5244.
5245.
5246.
5247.
5248.
5249.
5250.
5251.
5252.
5253.
5254.
5255.
5256.
5257.
5258.
5259.
5260.
5261.
5262.
5263.
5264.
5265.
5266.
5267.
5268.
5269.
5270.
5271.
5272.
5273.
5274.
5275.
5276.
5277.
5278.
5279.
5280.
5281.
5282.
5283.
5284.
5285.
5286.
5287.
5288.
5289.
5290.
5291.
5292.
5293.
5294.
5295.
5296.
5297.
5298.
5299.
5300.
5301.
5302.
5303.
5304.
5305.
5306.
5307.
5308.
5309.
5310.
5311.
5312.
5313.
5314.
5315.
5316.
5317.
5318.
5319.
5320.
5321.
5322.
5323.
5324.
5325.
5326.
5327.
5328.
5329.
5330.
5331.
5332.
5333.
5334.
5335.
5336.
5337.
5338.
5339.
5340.
5341.
5342.
5343.
5344.
5345.
5346.
5347.
5348.
5349.
5350.
5351.
5352.
5353.
5354.
5355.
5356.
5357.
5358.
5359.
5360.
5361.
5362.
5363.
5364.
5365.
5366.
5367.
5368.
5369.
5370.
5371.
5372.
5373.
5374.
5375.
5376.
5377.
5378.
5379.
5380.
5381.
5382.
5383.
5384.
5385.
5386.
5387.
5388.
5389.
5390.
5391.
5392.
5393.
5394.
5395.
5396.
5397.
5398.
5399.
5400.
5401.
5402.
5403.
5404.
5405.
5406.
5407.
5408.
5409.
5410.
5411.
5412.
5413.
5414.
5415.
5416.
5417.
5418.
5419.
5420.
5421.
5422.
5423.
5424.
5425.
5426.
5427.
5428.
5429.
5430.
5431.
5432.
5433.
5434.
5435.
5436.
5437.
5438.
5439.
5440.
5441.
5442.
5443.
5444.
5445.
5446.
5447.
5448.
5449.
5450.
5451.
5452.
5453.
5454.
5455.
5456.
5457.
5458.
5459.
5460.
5461.
5462.
5463.
5464.
5465.
5466.
5467.
5468.
5469.
5470.
5471.
5472.
5473.
5474.
5475.
5476.
5477.
5478.
5479.
5480.
5481.
5482.
5483.
5484.
5485.
5486.
5487.
5488.
5489.
5490.
5491.
5492.
5493.
5494.
5495.
5496.
5497.
5498.
5499.
5500.
5501.
5502.
5503.
5504.
5505.
5506.
5507.
5508.
5509.
5510.
5511.
5512.
5513.
5514.
5515.
5516.
5517.
5518.
5519.
5520.
5521.
5522.
5523.
5524.
5525.
5526.
5527.
5528.
5529.
5530.
5531.
5532.
5533.
5534.
5535.
5536.
5537.
5538.
5539.
5540.
5541.
5542.
5543.
5544.
5545.
5546.
5547.
5548.
5549.
5550.
5551.
5552.
5553.
5554.
5555.
5556.
5557.
5558.
5559.
5560.
5561.
5562.
5563.
5564.
5565.
5566.
5567.
5568.
5569.
5570.
5571.
5572.
5573.
5574.
5575.
5576.
5577.
5578.
5579.
5580.
5581.
5582.
5583.
5584.
5585.
5586.
5587.
5588.
5589.
5590.
5591.
5592.
5593.
5594.
5595.
5596.
5597.
5598.
5599.
5600.
5601.
5602.
5603.
5604.
5605.
5606.
5607.
5608.
5609.
5610.
5611.
5612.
5613.
5614.
5615.
5616.
5617.
5618.
5619.
5620.
5621.
5622.
5623.
5624.
5625.
5626.
5627.
5628.
5629.
5630.
5631.
5632.
5633.
5634.
5635.
5636.
5637.
5638.
5639.
5640.
5641.
5642.
5643.
5644.
5645.
5646.
5647.
5648.
5649.
5650.
5651.
5652.
5653.
5654.
5655.
5656.
5657.
5658.
5659.
5660.
5661.
5662.
5663.
5664.
5665.
5666.
5667.
5668.
5669.
5670.
5671.
5672.
5673.
5674.
5675.
5676.
5677.
5678.
5679.
5680.
5681.
5682.
5683.
5684.
5685.
5686.
5687.
5688.
5689.
5690.
5691.
5692.
5693.
5694.
5695.
5696.
5697.
5698.
5699.
5700.
5701.
5702.
5703.
5704.
5705.
5706.
5707.
5708.
5709.
5710.
5711.
5712.
5713.
5714.
5715.
5716.
5717.
5718.
5719.
5720.
5721.
5722.
5723.
5724.
5725.
5726.
5727.
5728.
5729.
5730.
5731.
5732.
5733.
5734.
5735.
5736.
5737.
5738.
5739.
5740.
5741.
5742.
5743.
5744.
5745.
5746.
5747.
5748.
5749.
5750.
5751.
5752.
5753.
5754.
5755.
5756.
5757.
5758.
5759.
5760.
5761.
5762.
5763.
5764.
5765.
5766.
5767.
5768.
5769.
5770.
5771.
5772.
5773.
5774.
5775.
5776.
5777.
5778.
5779.
5780.
5781.
5782.
5783.
5784.
5785.
5786.
5787.
5788.
5789.
5790.
5791.
5792.
5793.
5794.
5795.
5796.
5797.
5798.
5799.
5800.
5801.
5802.
5803.
5804.
5805.
5806.
5807.
5808.
5809.
5810.
5811.
5812.
5813.
5814.
5815.
5816.
5817.
5818.
5819.
5820.
5821.
5822.
5823.
5824.
5825.
5826.
5827.
5828.
5829.
5830.
5831.
5832.
5833.
5834.
5835.
5836.
5837.
5838.
5839.
5840.
5841.
5842.
5843.
5844.
5845.
5846.
5847.
5848.
5849.
5850.
5851.
5852.
5853.
5854.
5855.
5856.
5857.
5858.
5859.
5860.
5861.
5862.
5863.
5864.
5865.
5866.
5867.
5868.
5869.
5870.
5871.
5872.
5873.
5874.
5875.
5876.
5877.
5878.
5879.
5880.
5881.
5882.
5883.
5884.
5885.
5886.
5887.
5888.
5889.
5890.
5891.
5892.
5893.
5894.
5895.
5896.
5897.
5898.
5899.
5900.
5901.
5902.
5903.
5904.
5905.
5906.
5907.
5908.
5909.
5910.
5911.
5912.
5913.
5914.
5915.
5916.
5917.
5918.
5919.
5920.
5921.
5922.
5923.
5924.
5925.
5926.
5927.
5928.
5929.
5930.
5931.
5932.
5933.
5934.
5935.
5936.
5937.
5938.
5939.
5940.
5941.
5942.
5943.
5944.
5945.
5946.
5947.
5948.
5949.
5950.
5951.
5952.
5953.
5954.
5955.
5956.
5957.
5958.
5959.
5960.
5961.
5962.
5963.
5964.
5965.
5966.
5967.
5968.
5969.
5970.
5971.
5972.
5973.
5974.
5975.
5976.
5977.
5978.
5979.
5980.
5981.
5982.
5983.
5984.
5985.
5986.
5987.
5988.
5989.
5990.
5991.
5992.
5993.
5994.
5995.
5996.
5997.
5998.
5999.
6000.
6001.
6002.
6003.
6004.
6005.
6006.
6007.
6008.
6009.
6010.
6011.
6012.
6013.
6014.
6015.
6016.
6017.
6018.
6019.
6020.
6021.
6022.
6023.
6024.
6025.
6026.
6027.
6028.
6029.
6030.
6031.
6032.
6033.
6034.
6035.
6036.
6037.
6038.
6039.
6040.
6041.
6042.
6043.
6044.
6045.
6046.
6047.
6048.
6049.
6050.
6051.
6052.
6053.
6054.
6055.
6056.
6057.
6058.
6059.
6060.
6061.
6062.
6063.
6064.
6065.
6066.
6067.
6068.
6069.
6070.
6071.
6072.
6073.
6074.
6075.
6076.
6077.
6078.
6079.
6080.
6081.
6082.
6083.
6084.
6085.
6086.
6087.
6088.
6089.
6090.
6091.
6092.
6093.
6094.
6095.
6096.
6097.
6098.
6099.
6100.
6101.
6102.
6103.
6104.
6105.
6106.
6107.
6108.
6109.
6110.
6111.
6112.
6113.
6114.
6115.
6116.
6117.
6118.
6119.
6120.
6121.
6122.
6123.
6124.
6125.
6126.
6127.
6128.
6129.
6130.
6131.
6132.
6133.
6134.
6135.
6136.
6137.
6138.
6139.
6140.
6141.
6142.
6143.
6144.
6145.
6146.
6147.
6148.
6149.
6150.
6151.
6152.
6153.
6154.
6155.
6156.
6157.
6158.
6159.
6160.
6161.
6162.
6163.
6164.
6165.
6166.
6167.
6168.
6169.
6170.
6171.
6172.
6173.
6174.
6175.
6176.
6177.
6178.
6179.
6180.
6181.
6182.
6183.
6184.
6185.
6186.
6187.
6188.
6189.
6190.
6191.
6192.
6193.
6194.
6195.
6196.
6197.
6198.
6199.
6200.
6201.
6202.
6203.
6204.
6205.
6206.
6207.
6208.
6209.
6210.
6211.
6212.
6213.
6214.
6215.
6216.
6217.
6218.
6219.
6220.
6221.
6222.
6223.
6224.
6225.
6226.
6227.
6228.
6229.
6230.
6231.
6232.
6233.
6234.
6235.
6236.
6237.
6238.
6239.
6240.
6241.
6242.
6243.
6244.
6245.
6246.
6247.
6248.
6249.
6250.
6251.
6252.
6253.
6254.
6255.
6256.
6257.
6258.
6259.
6260.
6261.
6262.
6263.
6264.
6265.
6266.
6267.
6268.
6269.
6270.
6271.
6272.
6273.
6274.
6275.
6276.
6277.
6278.
6279.
6280.
6281.
6282.
6283.
6284.
6285.
6286.
6287.
6288.
6289.
6290.
6291.
6292.
6293.
6294.
6295.
6296.
6297.
6298.
6299.
6300.
6301.
6302.
6303.
6304.
6305.
6306.
6307.
6308.
6309.
6310.
6311.
6312.
6313.
6314.
6315.
6316.
6317.
6318.
6319.
6320.
6321.
6322.
6323.
6324.
6325.
6326.
6327.
6328.
6329.
6330.
6331.
6332.
6333.
6334.
6335.
6336.
6337.
6338.
6339.
6340.
6341.
6342.
6343.
6344.
6345.
6346.
6347.
6348.
6349.
6350.
6351.
6352.
6353.
6354.
6355.
6356.
6357.
6358.
6359.
6360.
6361.
6362.
6363.
6364.
6365.
6366.
6367.
6368.
6369.
6370.
6371.
6372.
6373.
6374.
6375.
6376.
6377.
6378.
6379.
6380.
6381.
6382.
6383.
6384.
6385.
6386.
6387.
6388.
6389.
6390.
6391.
6392.
6393.
6394.
6395.
6396.
6397.
6398.
6399.
6400.
6401.
6402.
6403.
6404.
6405.
6406.
6407.
6408.
6409.
6410.
6411.
6412.
6413.
6414.
6415.
6416.
6417.
6418.
6419.
6420.
6421.
6422.
6423.
6424.
6425.
6426.
6427.
6428.
6429.
6430.
6431.
6432.
6433.
6434.
6435.
6436.
6437.
6438.
6439.
6440.
6441.
6442.
6443.
6444.
6445.
6446.
6447.
6448.
6449.
6450.
6451.
6452.
6453.
6454.
6455.
6456.
6457.
6458.
6459.
6460.
6461.
6462.
6463.
6464.
6465.
6466.
6467.
6468.
6469.
6470.
6471.
6472.
6473.
6474.
6475.
6476.
6477.
6478.
6479.
6480.
6481.
6482.
6483.
6484.
6485.
6486.
6487.
6488.
6489.
6490.
6491.
6492.
6493.
6494.
6495.
6496.
6497.
6498.
6499.
6500.
6501.
6502.
6503.
6504.
6505.
6506.
6507.
6508.
6509.
6510.
6511.
6512.
6513.
6514.
6515.
6516.
6517.
6518.
6519.
6520.
6521.
6522.
6523.
6524.
6525.
6526.
6527.
6528.
6529.
6530.
6531.
6532.
6533.
6534.
6535.
6536.
6537.
6538.
6539.
6540.
6541.
6542.
6543.
6544.
6545.
6546.
6547.
6548.
6549.
6550.
6551.
6552.
6553.
6554.
6555.
6556.
6557.
6558.
6559.
6560.
6561.
6562.
6563.
6564.
6565.
6566.
6567.
6568.
6569.
6570.
6571.
6572.
6573.
6574.
6575.
6576.
6577.
6578.
6579.
6580.
6581.
6582.
6583.
6584.
6585.
6586.
6587.
6588.
6589.
6590.
6591.
6592.
6593.
6594.
6595.
6596.
6597.
6598.
6599.
6600.
6601.
6602.
6603.
6604.
6605.
6606.
6607.
6608.
6609.
6610.
6611.
6612.
6613.
6614.
6615.
6616.
6617.
6618.
6619.
6620.
6621.
6622.
6623.
6624.
6625.
6626.
6627.
6628.
6629.
6630.
6631.
6632.
6633.
6634.
6635.
6636.
6637.
6638.
6639.
6640.
6641.
6642.
6643.
6644.
6645.
6646.
6647.
6648.
6649.
6650.
6651.
6652.
6653.
6654.
6655.
6656.
6657.
6658.
6659.
6660.
6661.
6662.
6663.
6664.
6665.
6666.
6667.
6668.
6669.
6670.
6671.
6672.
6673.
6674.
6675.
6676.
6677.
6678.
6679.
6680.
6681.
6682.
6683.
6684.
6685.
6686.
6687.
6688.
6689.
6690.
6691.
6692.
6693.
6694.
6695.
6696.
6697.
6698.
6699.
6700.
6701.
6702.
6703.
6704.
6705.
6706.
6707.
6708.
6709.
6710.
6711.
6712.
6713.
6714.
6715.
6716.
6717.
6718.
6719.
6720.
6721.
6722.
6723.
6724.
6725.
6726.
6727.
6728.
6729.
6730.
6731.
6732.
6733.
6734.
6735.
6736.
6737.
6738.
6739.
6740.
6741.
6742.
6743.
6744.
6745.
6746.
6747.
6748.
6749.
6750.
6751.
6752.
6753.
6754.
6755.
6756.
6757.
6758.
6759.
6760.
6761.
6762.
6763.
6764.
6765.
6766.
6767.
6768.
6769.
6770.
6771.
6772.
6773.
6774.
6775.
6776.
6777.
6778.
6779.
6780.
6781.
6782.
6783.
6784.
6785.
6786.
6787.
6788.
6789.
6790.
6791.
6792.
6793.
6794.
6795.
6796.
6797.
6798.
6799.
6800.
6801.
6802.
6803.
6804.
6805.
6806.
6807.
6808.
6809.
6810.
6811.
6812.
6813.
6814.
6815.
6816.
6817.
6818.
6819.
6820.
6821.
6822.
6823.
6824.
6825.
6826.
6827.
6828.
6829.
6830.
6831.
6832.
6833.
6834.
6835.
6836.
6837.
6838.
6839.
6840.
6841.
6842.
6843.
6844.
6845.
6846.
6847.
6848.
6849.
6850.
6851.
6852.
6853.
6854.
6855.
6856.
6857.
6858.
6859.
6860.
6861.
6862.
6863.
6864.
6865.
6866.
6867.
6868.
6869.
6870.
6871.
6872.
6873.
6874.
6875.
6876.
6877.
6878.
6879.
6880.
6881.
6882.
6883.
6884.
6885.
6886.
6887.
6888.
6889.
6890.
6891.
6892.
6893.
6894.
6895.
6896.
6897.
6898.
6899.
6900.
6901.
6902.
6903.
6904.
6905.
6906.
6907.
6908.
6909.
6910.
6911.
6912.
6913.
6914.
6915.
6916.
6917.
6918.
6919.
6920.
6921.
6922.
6923.
6924.
6925.
6926.
6927.
6928.
6929.
6930.
6931.
6932.
6933.
6934.
6935.
6936.
6937.
6938.
6939.
6940.
6941.
6942.
6943.
6944.
6945.
6946.
6947.
6948.
6949.
6950.
6951.
6952.
6953.
6954.
6955.
6956.
6957.
6958.
6959.
6960.
6961.
6962.
6963.
6964.
6965.
6966.
6967.
6968.
6969.
6970.
6971.
6972.
6973.
6974.
6975.
6976.
6977.
6978.
6979.
6980.
6981.
6982.
6983.
6984.
6985.
6986.
6987.
6988.
6989.
6990.
6991.
6992.
6993.
6994.
6995.
6996.
6997.
6998.
6999.
7000.
7001.
7002.
7003.
7004.
7005.
7006.
7007.
7008.
7009.
7010.
7011.
7012.
7013.
7014.
7015.
7016.
7017.
7018.
7019.
7020.
7021.
7022.
7023.
7024.
7025.
7026.
7027.
7028.
7029.
7030.
7031.
7032.
7033.
7034.
7035.
7036.
7037.
7038.
7039.
7040.
7041.
7042.
7043.
7044.
7045.
7046.
7047.
7048.
7049.
7050.
7051.
7052.
7053.
7054.
7055.
7056.
7057.
7058.
7059.
7060.
7061.
7062.
7063.
7064.
7065.
7066.
7067.
7068.
7069.
7070.
7071.
7072.
7073.
7074.
7075.
7076.
7077.
7078.
7079.
7080.
7081.
7082.
7083.
7084.
7085.
7086.
7087.
7088.
7089.
7090.
7091.
7092.
7093.
7094.
7095.
7096.
7097.
7098.
7099.
7100.
7101.
7102.
7103.
7104.
7105.
7106.
7107.
7108.
7109.
7110.
7111.
7112.
7113.
7114.
7115.
7116.
7117.
7118.
7119.
7120.
7121.
7122.
7123.
7124.
7125.
7126.
7127.
7128.
7129.
7130.
7131.
7132.
7133.
7134.
7135.
7136.
7137.
7138.
7139.
7140.
7141.
7142.
7143.
7144.
7145.
7146.
7147.
7148.
7149.
7150.
7151.
7152.
7153.
7154.
7155.
7156.
7157.
7158.
7159.
7160.
7161.
7162.
7163.
7164.
7165.
7166.
7167.
7168.
7169.
7170.
7171.
7172.
7173.
7174.
7175.
7176.
7177.
7178.
7179.
7180.
7181.
7182.
7183.
7184.
7185.
7186.
7187.
7188.
7189.
7190.
7191.
7192.
7193.
7194.
7195.
7196.
7197.
7198.
7199.
7200.
7201.
7202.
7203.
7204.
7205.
7206.
7207.
7208.
7209.
7210.
7211.
7212.
7213.
7214.
7215.
7216.
7217.
7218.
7219.
7220.
7221.
7222.
7223.
7224.
7225.
7226.
7227.
7228.
7229.
7230.
7231.
7232.
7233.
7234.
7235.
7236.
7237.
7238.
7239.
7240.
7241.
7242.
7243.
7244.
7245.
7246.
7247.
7248.
7249.
7250.
7251.
7252.
7253.
7254.
7255.
7256.
7257.
7258.
7259.
7260.
7261.
7262.
7263.
7264.
7265.
7266.
7267.
7268.
7269.
7270.
7271.
7272.
7273.
7274.
7275.
7276.
7277.
7278.
7279.
7280.
7281.
7282.
7283.
7284.
7285.
7286.
7287.
7288.
7289.
7290.
7291.
7292.
7293.
7294.
7295.
7296.
7297.
7298.
7299.
7300.
7301.
7302.
7303.
7304.
7305.
7306.
7307.
7308.
7309.
7310.
7311.
7312.
7313.
7314.
7315.
7316.
7317.
7318.
7319.
7320.
7321.
7322.
7323.
7324.
7325.
7326.
7327.
7328.
7329.
7330.
7331.
7332.
7333.
7334.
7335.
7336.
7337.
7338.
7339.
7340.
7341.
7342.
7343.
7344.
7345.
7346.
7347.
7348.
7349.
7350.
7351.
7352.
7353.
7354.
7355.
7356.
7357.
7358.
7359.
7360.
7361.
7362.
7363.
7364.
7365.
7366.
7367.
7368.
7369.
7370.
7371.
7372.
7373.
7374.
7375.
7376.
7377.
7378.
7379.
7380.
7381.
7382.
7383.
7384.
7385.
7386.
7387.
7388.
7389.
7390.
7391.
7392.
7393.
7394.
7395.
7396.
7397.
7398.
7399.
7400.
7401.
7402.
7403.
7404.
7405.
7406.
7407.
7408.
7409.
7410.
7411.
7412.
7413.
7414.
7415.
7416.
7417.
7418.
7419.
7420.
7421.
7422.
7423.
7424.
7425.
7426.
7427.
7428.
7429.
7430.
7431.
7432.
7433.
7434.
7435.
7436.
7437.
7438.
7439.
7440.
7441.
7442.
7443.
7444.
7445.
7446.
7447.
7448.
7449.
7450.
7451.
7452.
7453.
7454.
7455.
7456.
7457.
7458.
7459.
7460.
7461.
7462.
7463.
7464.
7465.
7466.
7467.
7468.
7469.
7470.
7471.
7472.
7473.
7474.
7475.
7476.
7477.
7478.
7479.
7480.
7481.
7482.
7483.
7484.
7485.
7486.
7487.
7488.
7489.
7490.
7491.
7492.
7493.
7494.
7495.
7496.
7497.
7498.
7499.
7500.
7501.
7502.
7503.
7504.
7505.
7506.
7507.
7508.
7509.
7510.
7511.
7512.
7513.
7514.
7515.
7516.
7517.
7518.
7519.
7520.
7521.
7522.
7523.
7524.
7525.
7526.
7527.
7528.
7529.
7530.
7531.
7532.
7533.
7534.
7535.
7536.
7537.
7538.
7539.
7540.
7541.
7542.
7543.
7544.
7545.
7546.
7547.
7548.
7549.
7550.
7551.
7552.
7553.
7554.
7555.
7556.
7557.
7558.
7559.
7560.
7561.
7562.
7563.
7564.
7565.
7566.
7567.
7568.
7569.
7570.
7571.
7572.
7573.
7574.
7575.
7576.
7577.
7578.
7579.
7580.
7581.
7582.
7583.
7584.
7585.
7586.
7587.
7588.
7589.
7590.
7591.
7592.
7593.
7594.
7595.
7596.
7597.
7598.
7599.
7600.
7601.
7602.
7603.
7604.
7605.
7606.
7607.
7608.
7609.
7610.
7611.
7612.
7613.
7614.
7615.
7616.
7617.
7618.
7619.
7620.
7621.
7622.
7623.
7624.
7625.
7626.
7627.
7628.
7629.
7630.
7631.
7632.
7633.
7634.
7635.
7636.
7637.
7638.
7639.
7640.
7641.
7642.
7643.
7644.
7645.
7646.
7647.
7648.
7649.
7650.
7651.
7652.
7653.
7654.
7655.
7656.
7657.
7658.
7659.
7660.
7661.
7662.
7663.
7664.
7665.
7666.
7667.
7668.
7669.
7670.
7671.
7672.
7673.
7674.
7675.
7676.
7677.
7678.
7679.
7680.
7681.
7682.
7683.
7684.
7685.
7686.
7687.
7688.
7689.
7690.
7691.
7692.
7693.
7694.
7695.
7696.
7697.
7698.
7699.
7700.
7701.
7702.
7703.
7704.
7705.
7706.
7707.
7708.
7709.
7710.
7711.
7712.
7713.
7714.
7715.
7716.
7717.
7718.
7719.
7720.
7721.
7722.
7723.
7724.
7725.
7726.
7727.
7728.
7729.
7730.
7731.
7732.
7733.
7734.
7735.
7736.
7737.
7738.
7739.
7740.
7741.
7742.
7743.
7744.
7745.
7746.
7747.
7748.
7749.
7750.
7751.
7752.
7753.
7754.
7755.
7756.
7757.
7758.
7759.
7760.
7761.
7762.
7763.
7764.
7765.
7766.
7767.
7768.
7769.
7770.
7771.
7772.
7773.
7774.
7775.
7776.
7777.
7778.
7779.
7780.
7781.
7782.
7783.
7784.
7785.
7786.
7787.
7788.
7789.
7790.
7791.
7792.
7793.
7794.
7795.
7796.
7797.
7798.
7799.
7800.
7801.
7802.
7803.
7804.
7805.
7806.
7807.
7808.
7809.
7810.
7811.
7812.
7813.
7814.
7815.
7816.
7817.
7818.
7819.
7820.
7821.
7822.
7823.
7824.
7825.
7826.
7827.
7828.
7829.
7830.
7831.
7832.
7833.
7834.
7835.
7836.
7837.
7838.
7839.
7840.
7841.
7842.
7843.
7844.
7845.
7846.
7847.
7848.
7849.
7850.
7851.
7852.
7853.
7854.
7855.
7856.
7857.
7858.
7859.
7860.
7861.
7862.
7863.
7864.
7865.
7866.
7867.
7868.
7869.
7870.
7871.
7872.
7873.
7874.
7875.
7876.
7877.
7878.
7879.
7880.
7881.
7882.
7883.
7884.
7885.
7886.
7887.
7888.
7889.
7890.
7891.
7892.
7893.
7894.
7895.
7896.
7897.
7898.
7899.
7900.
7901.
7902.
7903.
7904.
7905.
7906.
7907.
7908.
7909.
7910.
7911.
7912.
7913.
7914.
7915.
7916.
7917.
7918.
7919.
7920.
7921.
7922.
7923.
7924.
7925.
7926.
7927.
7928.
7929.
7930.
7931.
7932.
7933.
7934.
7935.
7936.
7937.
7938.
7939.
7940.
7941.
7942.
7943.
7944.
7945.
7946.
7947.
7948.
7949.
7950.
7951.
7952.
7953.
7954.
7955.
7956.
7957.
7958.
7959.
7960.
7961.
7962.
7963.
7964.
7965.
7966.
7967.
7968.
7969.
7970.
7971.
7972.
7973.
7974.
7975.
7976.
7977.
7978.
7979.
7980.
7981.
7982.
7983.
7984.
7985.
7986.
7987.
7988.
7989.
7990.
7991.
7992.
7993.
7994.
7995.
7996.
7997.
7998.
7999.
8000.
8001.
8002.
8003.
8004.
8005.
8006.
8007.
8008.
8009.
8010.
8011.
8012.
8013.
8014.
8015.
8016.
8017.
8018.
8019.
8020.
8021.
8022.
8023.
8024.
8025.
8026.
8027.
8028.
8029.
8030.
8031.
8032.
8033.
8034.
8035.
8036.
8037.
8038.
8039.
8040.
8041.
8042.
8043.
8044.
8045.
8046.
8047.
8048.
8049.
8050.
8051.
8052.
8053.
8054.
8055.
8056.
8057.
8058.
8059.
8060.
8061.
8062.
8063.
8064.
8065.
8066.
8067.
8068.
8069.
8070.
8071.
8072.
8073.
8074.
8075.
8076.
8077.
8078.
8079.
8080.
8081.
8082.
8083.
8084.
8085.
8086.
8087.
8088.
8089.
8090.
8091.
8092.
8093.
8094.
8095.
8096.
8097.
8098.
8099.
8100.
8101.
8102.
8103.
8104.
8105.
8106.
8107.
8108.
8109.
8110.
8111.
8112.
8113.
8114.
8115.
8116.
8117.
8118.
8119.
8120.
8121.
8122.
8123.
8124.
8125.
8126.
8127.
8128.
8129.
8130.
8131.
8132.
8133.
8134.
8135.
8136.
8137.
8138.
8139.
8140.
8141.
8142.
8143.
8144.
8145.
8146.
8147.
8148.
8149.
8150.
8151.
8152.
8153.
8154.
8155.
8156.
8157.
8158.
8159.
8160.
8161.
8162.
8163.
8164.
8165.
8166.
8167.
8168.
8169.
8170.
8171.
8172.
8173.
8174.
8175.
8176.
8177.
8178.
8179.
8180.
8181.
8182.
8183.
8184.
8185.
8186.
8187.
8188.
8189.
8190.
8191.
8192.
8193.
8194.
8195.
8196.
8197.
8198.
8199.
8200.
8201.
8202.
8203.
8204.
8205.
8206.
8207.
8208.
8209.
8210.
8211.
8212.
8213.
8214.
8215.
8216.
8217.
8218.
8219.
8220.
8221.
8222.
8223.
8224.
8225.
8226.
8227.
8228.
8229.
8230.
8231.
8232.
8233.
8234.
8235.
8236.
8237.
8238.
8239.
8240.
8241.
8242.
8243.
8244.
8245.
8246.
8247.
8248.
8249.
8250.
8251.
8252.
8253.
8254.
8255.
8256.
8257.
8258.
8259.
8260.
8261.
8262.
8263.
8264.
8265.
8266.
8267.
8268.
8269.
8270.
8271.
8272.
8273.
8274.
8275.
8276.
8277.
8278.
8279.
8280.
8281.
8282.
8283.
8284.
8285.
8286.
8287.
8288.
8289.
8290.
8291.
8292.
8293.
8294.
8295.
8296.
8297.
8298.
8299.
8300.
8301.
8302.
8303.
8304.
8305.
8306.
8307.
8308.
8309.
8310.
8311.
8312.
8313.
8314.
8315.
8316.
8317.
8318.
8319.
8320.
8321.
8322.
8323.
8324.
8325.
8326.
8327.
8328.
8329.
8330.
8331.
8332.
8333.
8334.
8335.
8336.
8337.
8338.
8339.
8340.
8341.
8342.
8343.
8344.
8345.
8346.
8347.
8348.
8349.
8350.
8351.
8352.
8353.
8354.
8355.
8356.
8357.
8358.
8359.
8360.
8361.
8362.
8363.
8364.
8365.
8366.
8367.
8368.
8369.
8370.
8371.
8372.
8373.
8374.
8375.
8376.
8377.
8378.
8379.
8380.
8381.
8382.
8383.
8384.
8385.
8386.
8387.
8388.
8389.
8390.
8391.
8392.
8393.
8394.
8395.
8396.
8397.
8398.
8399.
8400.
8401.
8402.
8403.
8404.
8405.
8406.
8407.
8408.
8409.
8410.
8411.
8412.
8413.
8414.
8415.
8416.
8417.
8418.
8419.
8420.
8421.
8422.
8423.
8424.
8425.
8426.
8427.
8428.
8429.
8430.
8431.
8432.
8433.
8434.
8435.
8436.
8437.
8438.
8439.
8440.
8441.
8442.
8443.
8444.
8445.
8446.
8447.
8448.
8449.
8450.
8451.
8452.
8453.
8454.
8455.
8456.
8457.
8458.
8459.
8460.
8461.
8462.
8463.
8464.
8465.
8466.
8467.
8468.
8469.
8470.
8471.
8472.
8473.
8474.
8475.
8476.
8477.
8478.
8479.
8480.
8481.
8482.
8483.
8484.
8485.
8486.
8487.
8488.
8489.
8490.
8491.
8492.
8493.
8494.
8495.
8496.
8497.
8498.
8499.
8500.
8501.
8502.
8503.
8504.
8505.
8506.
8507.
8508.
8509.
8510.
8511.
8512.
8513.
8514.
8515.
8516.
8517.
8518.
8519.
8520.
8521.
8522.
8523.
8524.
8525.
8526.
8527.
8528.
8529.
8530.
8531.
8532.
8533.
8534.
8535.
8536.
8537.
8538.
8539.
8540.
8541.
8542.
8543.
8544.
8545.
8546.
8547.
8548.
8549.
8550.
8551.
8552.
8553.
8554.
8555.
8556.
8557.
8558.
8559.
8560.
8561.
8562.
8563.
8564.
8565.
8566.
8567.
8568.
8569.
8570.
8571.
8572.
8573.
8574.
8575.
8576.
8577.
8578.
8579.
8580.
8581.
8582.
8583.
8584.
8585.
8586.
8587.
8588.
8589.
8590.
8591.
8592.
8593.
8594.
8595.
8596.
8597.
8598.
8599.
8600.
8601.
8602.
8603.
8604.
8605.
8606.
8607.
8608.
8609.
8610.
8611.
8612.
8613.
8614.
8615.
8616.
8617.
8618.
8619.
8620.
8621.
8622.
8623.
8624.
8625.
8626.
8627.
8628.
8629.
8630.
8631.
8632.
8633.
8634.
8635.
8636.
8637.
8638.
8639.
8640.
8641.
8642.
8643.
8644.
8645.
8646.
8647.
8648.
8649.
8650.
8651.
8652.
8653.
8654.
8655.
8656.
8657.
8658.
8659.
8660.
8661.
8662.
8663.
8664.
8665.
8666.
8667.
8668.
8669.
8670.
8671.
8672.
8673.
8674.
8675.
8676.
8677.
8678.
8679.
8680.
8681.
8682.
8683.
8684.
8685.
8686.
8687.
8688.
8689.
8690.
8691.
8692.
8693.
8694.
8695.
8696.
8697.
8698.
8699.
8700.
8701.
8702.
8703.
8704.
8705.
8706.
8707.
8708.
8709.
8710.
8711.
8712.
8713.
8714.
8715.
8716.
8717.
8718.
8719.
8720.
8721.
8722.
8723.
8724.
8725.
8726.
8727.
8728.
8729.
8730.
8731.
8732.
8733.
8734.
8735.
8736.
8737.
8738.
8739.
8740.
8741.
8742.
8743.
8744.
8745.
8746.
8747.
8748.
8749.
8750.
8751.
8752.
8753.
8754.
8755.
8756.
8757.
8758.
8759.
8760.
8761.
8762.
8763.
8764.
8765.
8766.
8767.
8768.
8769.
8770.
8771.
8772.
8773.
8774.
8775.
8776.
8777.
8778.
8779.
8780.
8781.
8782.
8783.
8784.
8785.
8786.
8787.
8788.
8789.
8790.
8791.
8792.
8793.
8794.
8795.
8796.
8797.
8798.
8799.
8800.
8801.
8802.
8803.
8804.
8805.
8806.
8807.
8808.
8809.
8810.
8811.
8812.
8813.
8814.
8815.
8816.
8817.
8818.
8819.
8820.
8821.
8822.
8823.
8824.
8825.
8826.
8827.
8828.
8829.
8830.
8831.
8832.
8833.
8834.
8835.
8836.
8837.
8838.
8839.
8840.
8841.
8842.
8843.
8844.
8845.
8846.
8847.
8848.
8849.
8850.
8851.
8852.
8853.
8854.
8855.
8856.
8857.
8858.
8859.
8860.
8861.
8862.
8863.
8864.
8865.
8866.
8867.
8868.
8869.
8870.
8871.
8872.
8873.
8874.
8875.
8876.
8877.
8878.
8879.
8880.
8881.
8882.
8883.
8884.
8885.
8886.
8887.
8888.
8889.
8890.
8891.
8892.
8893.
8894.
8895.
8896.
8897.
8898.
8899.
8900.
8901.
8902.
8903.
8904.
8905.
8906.
8907.
8908.
8909.
8910.
8911.
8912.
8913.
8914.
8915.
8916.
8917.
8918.
8919.
8920.
8921.
8922.
8923.
8924.
8925.
8926.
8927.
8928.
8929.
8930.
8931.
8932.
8933.
8934.
8935.
8936.
8937.
8938.
8939.
8940.
8941.
8942.
8943.
8944.
8945.
8946.
8947.
8948.
8949.
8950.
8951.
8952.
8953.
8954.
8955.
8956.
8957.
8958.
8959.
8960.
8961.
8962.
8963.
8964.
8965.
8966.
8967.
8968.
8969.
8970.
8971.
8972.
8973.
8974.
8975.
8976.
8977.
8978.
8979.
8980.
8981.
8982.
8983.
8984.
8985.
8986.
8987.
8988.
8989.
8990.
8991.
8992.
8993.
8994.
8995.
8996.
8997.
8998.
8999.
9000.
9001.
9002.
9003.
9004.
9005.
9006.
9007.
9008.
9009.
9010.
9011.
9012.
9013.
9014.
9015.
9016.
9017.
9018.
9019.
9020.
9021.
9022.
9023.
9024.
9025.
9026.
9027.
9028.
9029.
9030.
9031.
9032.
9033.
9034.
9035.
9036.
9037.
9038.
9039.
9040.
9041.
9042.
9043.
9044.
9045.
9046.
9047.
9048.
9049.
9050.
9051.
9052.
9053.
9054.
9055.
9056.
9057.
9058.
9059.
9060.
9061.
9062.
9063.
9064.
9065.
9066.
9067.
9068.
9069.
9070.
9071.
9072.
9073.
9074.
9075.
9076.
9077.
9078.
9079.
9080.
9081.
9082.
9083.
9084.
9085.
9086.
9087.
9088.
9089.
9090.
9091.
9092.
9093.
9094.
9095.
9096.
9097.
9098.
9099.
9100.
9101.
9102.
9103.
9104.
9105.
9106.
9107.
9108.
9109.
9110.
9111.
9112.
9113.
9114.
9115.
9116.
9117.
9118.
9119.
9120.
9121.
9122.
9123.
9124.
9125.
9126.
9127.
9128.
9129.
9130.
9131.
9132.
9133.
9134.
9135.
9136.
9137.
9138.
9139.
9140.
9141.
9142.
9143.
9144.
9145.
9146.
9147.
9148.
9149.
9150.
9151.
9152.
9153.
9154.
9155.
9156.
9157.
9158.
9159.
9160.
9161.
9162.
9163.
9164.
9165.
9166.
9167.
9168.
9169.
9170.
9171.
9172.
9173.
9174.
9175.
9176.
9177.
9178.
9179.
9180.
9181.
9182.
9183.
9184.
9185.
9186.
9187.
9188.
9189.
9190.
9191.
9192.
9193.
9194.
9195.
9196.
9197.
9198.
9199.
9200.
9201.
9202.
9203.
9204.
9205.
9206.
9207.
9208.
9209.
9210.
9211.
9212.
9213.
9214.
9215.
9216.
9217.
9218.
9219.
9220.
9221.
9222.
9223.
9224.
9225.
9226.
9227.
9228.
9229.
9230.
9231.
9232.
9233.
9234.
9235.
9236.
9237.
9238.
9239.
9240.
9241.
9242.
9243.
9244.
9245.
9246.
9247.
9248.
9249.
9250.
9251.
9252.
9253.
9254.
9255.
9256.
9257.
9258.
9259.
9260.
9261.
9262.
9263.
9264.
9265.
9266.
9267.
9268.
9269.
9270.
9271.
9272.
9273.
9274.
9275.
9276.
9277.
9278.
9279.
9280.
9281.
9282.
9283.
9284.
9285.
9286.
9287.
9288.
9289.
9290.
9291.
9292.
9293.
9294.
9295.
9296.
9297.
9298.
9299.
9300.
9301.
9302.
9303.
9304.
9305.
9306.
9307.
9308.
9309.
9310.
9311.
9312.
9313.
9314.
9315.
9316.
9317.
9318.
9319.
9320.
9321.
9322.
9323.
9324.
9325.
9326.
9327.
9328.
9329.
9330.
9331.
9332.
9333.
9334.
9335.
9336.
9337.
9338.
9339.
9340.
9341.
9342.
9343.
9344.
9345.
9346.
9347.
9348.
9349.
9350.
9351.
9352.
9353.
9354.
9355.
9356.
9357.
9358.
9359.
9360.
9361.
9362.
9363.
9364.
9365.
9366.
9367.
9368.
9369.
9370.
9371.
9372.
9373.
9374.
9375.
9376.
9377.
9378.
9379.
9380.
9381.
9382.
9383.
9384.
9385.
9386.
9387.
9388.
9389.
9390.
9391.
9392.
9393.
9394.
9395.
9396.
9397.
9398.
9399.
9400.
9401.
9402.
9403.
9404.
9405.
9406.
9407.
9408.
9409.
9410.
9411.
9412.
9413.
9414.
9415.
9416.
9417.
9418.
9419.
9420.
9421.
9422.
9423.
9424.
9425.
9426.
9427.
9428.
9429.
9430.
9431.
9432.
9433.
9434.
9435.
9436.
9437.
9438.
9439.
9440.
9441.
9442.
9443.
9444.
9445.
9446.
9447.
9448.
9449.
9450.
9451.
9452.
9453.
9454.
9455.
9456.
9457.
9458.
9459.
9460.
9461.
9462.
9463.
9464.
9465.
9466.
9467.
9468.
9469.
9470.
9471.
9472.
9473.
9474.
9475.
9476.
9477.
9478.
9479.
9480.
9481.
9482.
9483.
9484.
9485.
9486.
9487.
9488.
9489.
9490.
9491.
9492.
9493.
9494.
9495.
9496.
9497.
9498.
9499.
9500.
9501.
9502.
9503.
9504.
9505.
9506.
9507.
9508.
9509.
9510.
9511.
9512.
9513.
9514.
9515.
9516.
9517.
9518.
9519.
9520.
9521.
9522.
9523.
9524.
9525.
9526.
9527.
9528.
9529.
9530.
9531.
9532.
9533.
9534.
9535.
9536.
9537.
9538.
9539.
9540.
9541.
9542.
9543.
9544.
9545.
9546.
9547.
9548.
9549.
9550.
9551.
9552.
9553.
9554.
9555.
9556.
9557.
9558.
9559.
9560.
9561.
9562.
9563.
9564.
9565.
9566.
9567.
9568.
9569.
9570.
9571.
9572.
9573.
9574.
9575.
9576.
9577.
9578.
9579.
9580.
9581.
9582.
9583.
9584.
9585.
9586.
9587.
9588.
9589.
9590.
9591.
9592.
9593.
9594.
9595.
9596.
9597.
9598.
9599.
9600.
9601.
9602.
9603.
9604.
9605.
9606.
9607.
9608.
9609.
9610.
9611.
9612.
9613.
9614.
9615.
9616.
9617.
9618.
9619.
9620.
9621.
9622.
9623.
9624.
9625.
9626.
9627.
9628.
9629.
9630.
9631.
9632.
9633.
9634.
9635.
9636.
9637.
9638.
9639.
9640.
9641.
9642.
9643.
9644.
9645.
9646.
9647.
9648.
9649.
9650.
9651.
9652.
9653.
9654.
9655.
9656.
9657.
9658.
9659.
9660.
9661.
9662.
9663.
9664.
9665.
9666.
9667.
9668.
9669.
9670.
9671.
9672.
9673.
9674.
9675.
9676.
9677.
9678.
9679.
9680.
9681.
9682.
9683.
9684.
9685.
9686.
9687.
9688.
9689.
9690.
9691.
9692.
9693.
9694.
9695.
9696.
9697.
9698.
9699.
9700.
9701.
9702.
9703.
9704.
9705.
9706.
9707.
9708.
9709.
9710.
9711.
9712.
9713.
9714.
9715.
9716.
9717.
9718.
9719.
9720.
9721.
9722.
9723.
9724.
9725.
9726.
9727.
9728.
9729.
9730.
9731.
9732.
9733.
9734.
9735.
9736.
9737.
9738.
9739.
9740.
9741.
9742.
9743.
9744.
9745.
9746.
9747.
9748.
9749.
9750.
9751.
9752.
9753.
9754.
9755.
9756.
9757.
9758.
9759.
9760.
9761.
9762.
9763.
9764.
9765.
9766.
9767.
9768.
9769.
9770.
9771.
9772.
9773.
9774.
9775.
9776.
9777.
9778.
9779.
9780.
9781.
9782.
9783.
9784.
9785.
9786.
9787.
9788.
9789.
9790.
9791.
9792.
9793.
9794.
9795.
9796.
9797.
9798.
9799.
9800.
9801.
9802.
9803.
9804.
9805.
9806.
9807.
9808.
9809.
9810.
9811.
9812.
9813.
9814.
9815.
9816.
9817.
9818.
9819.
9820.
9821.
9822.
9823.
9824.
9825.
9826.
9827.
9828.
9829.
9830.
9831.
9832.
9833.
9834.
9835.
9836.
9837.
9838.
9839.
9840.
9841.
9842.
9843.
9844.
9845.
9846.
9847.
9848.
9849.
9850.
9851.
9852.
9853.
9854.
9855.
9856.
9857.
9858.
9859.
9860.
9861.
9862.
9863.
9864.
9865.
9866.
9867.
9868.
9869.
9870.
9871.
9872.
9873.
9874.
9875.
9876.
9877.
9878.
9879.
9880.
9881.
9882.
9883.
9884.
9885.
9886.
9887.
9888.
9889.
9890.
9891.
9892.
9893.
9894.
9895.
9896.
9897.
9898.
9899.
9900.
9901.
9902.
9903.
9904.
9905.
9906.
9907.
9908.
9909.
9910.
9911.
9912.
9913.
9914.
9915.
9916.
9917.
9918.
9919.
9920.
9921.
9922.
9923.
9924.
9925.
9926.
9927.
9928.
9929.
9930.
9931.
9932.
9933.
9934.
9935.
9936.
9937.
9938.
9939.
9940.
9941.
9942.
9943.
9944.
9945.
9946.
9947.
9948.
9949.
9950.
9951.
9952.
9953.
9954.
9955.
9956.
9957.
9958.
9959.
9960.
9961.
9962.
9963.
9964.
9965.
9966.
9967.
9968.
9969.
9970.
9971.
9972.
9973.
9974.
9975.
9976.
9977.
9978.
9979.
9980.
9981.
9982.
9983.
9984.
9985.
9986.
9987.
9988.
9989.
9990.
9991.
9992.
9993.
9994.
9995.
9996.
9997.
9998.
9999.
10000.
10001.
10002.
10003.
10004.
10005.
10006.
10007.
10008.
10009.
10010.
10011.
10012.
10013.
10014.
10015.
10016.
10017.
10018.
10019.
10020.
10021.
10022.
10023.
10024.
10025.
10026.
10027.
10028.
10029.
10030.
10031.
10032.
10033.
10034.
10035.
10036.
10037.
10038.
10039.
10040.
10041.
10042.
10043.
10044.
10045.
10046.
10047.
10048.
10049.
10050.
10051.
10052.
10053.
10054.
10055.
10056.
10057.
10058.
10059.
10060.
10061.
10062.
10063.
10064.
10065.
10066.
10067.
10068.
10069.
10070.
10071.
10072.
10073.
10074.
10075.
10076.
10077.
10078.
10079.
10080.
10081.
10082.
10083.
10084.
10085.
10086.
10087.
10088.
10089.
10090.
10091.
10092.
10093.
10094.
10095.
10096.
10097.
10098.
10099.
10100.
10101.
10102.
10103.
10104.
10105.
10106.
10107.
10108.
10109.
10110.
10111.
10112.
10113.
10114.
10115.
10116.
10117.
10118.
10119.
10120.
10121.
10122.
10123.
10124.
10125.
10126.
10127.
10128.
10129.
10130.
10131.
10132.
10133.
10134.
10135.
10136.
10137.
10138.
10139.
10140.
10141.
10142.
10143.
10144.
10145.
10146.
10147.
10148.
10149.
10150.
10151.
10152.
10153.
10154.
10155.
10156.
10157.
10158.
10159.
10160.
10161.
10162.
10163.
10164.
10165.
10166.
10167.
10168.
10169.
10170.
10171.
10172.
10173.
10174.
10175.
10176.
10177.
10178.
10179.
10180.
10181.
10182.
10183.
10184.
10185.
10186.
10187.
10188.
10189.
10190.
10191.
10192.
10193.
10194.
10195.
10196.
10197.
10198.
10199.
10200.
10201.
10202.
10203.
10204.
10205.
10206.
10207.
10208.
10209.
10210.
10211.
10212.
10213.
10214.
10215.
10216.
10217.
10218.
10219.
10220.
10221.
10222.
10223.
10224.
10225.
10226.
10227.
10228.
10229.
10230.
10231.
10232.
10233.
10234.
10235.
10236.
10237.
10238.
10239.
10240.
10241.
10242.
10243.
10244.
10245.
10246.
10247.
10248.
10249.
10250.
10251.
10252.
10253.
10254.
10255.
10256.
10257.
10258.
10259.
10260.
10261.
10262.
10263.
10264.
10265.
10266.
10267.
10268.
10269.
10270.
10271.
10272.
10273.
10274.
10275.
10276.
10277.
10278.
10279.
10280.
10281.
10282.
10283.
10284.
10285.
10286.
10287.
10288.
10289.
10290.
10291.
10292.
10293.
10294.
10295.
10296.
10297.
10298.
10299.
10300.
10301.
10302.
10303.
10304.
10305.
10306.
10307.
10308.
10309.
10310.
10311.
10312.
10313.
10314.
10315.
10316.
10317.
10318.
10319.
10320.
10321.
10322.
10323.
10324.
10325.
10326.
10327.
10328.
10329.
10330.
10331.
10332.
10333.
10334.
10335.
10336.
10337.
10338.
10339.
10340.
10341.
10342.
10343.
10344.
10345.
10346.
10347.
10348.
10349.
10350.
10351.
10352.
10353.
10354.
10355.
10356.
10357.
10358.
10359.
10360.
10361.
10362.
10363.
10364.
10365.
10366.
10367.
10368.
10369.
10370.
10371.
10372.
10373.
10374.
10375.
10376.
10377.
10378.
10379.
10380.
10381.
10382.
10383.
10384.
10385.
10386.
10387.
10388.
10389.
10390.
10391.
10392.
10393.
10394.
10395.
10396.
10397.
10398.
10399.
10400.
10401.
10402.
10403.
10404.
10405.
10406.
10407.
10408.
10409.
10410.
10411.
10412.
10413.
10414.
10415.
10416.
10417.
10418.
10419.
10420.
10421.
10422.
10423.
10424.
10425.
10426.
10427.
10428.
10429.
10430.
10431.
10432.
10433.
10434.
10435.
10436.
10437.
10438.
10439.
10440.
10441.
10442.
10443.
10444.
10445.
10446.
10447.
10448.
10449.
10450.
10451.
10452.
10453.
10454.
10455.
10456.
10457.
10458.
10459.
10460.
10461.
10462.
10463.
10464.
10465.
10466.
10467.
10468.
10469.
10470.
10471.
10472.
10473.
10474.
10475.
10476.
10477.
10478.
10479.
10480.
10481.
10482.
10483.
10484.
10485.
10486.
10487.
10488.
10489.
10490.
10491.
10492.
10493.
10494.
10495.
10496.
10497.
10498.
10499.
10500.
10501.
10502.
10503.
10504.
10505.
10506.
10507.
10508.
10509.
10510.
10511.
10512.
10513.
10514.
10515.
10516.
10517.
10518.
10519.
10520.
10521.
10522.
10523.
10524.
10525.
10526.
10527.
10528.
10529.
10530.
10531.
10532.
10533.
10534.
10535.
10536.
10537.
10538.
10539.
10540.
10541.
10542.
10543.
10544.
10545.
10546.
10547.
10548.
10549.
10550.
10551.
10552.
10553.
10554.
10555.
10556.
10557.
10558.
10559.
10560.
10561.
10562.
10563.
10564.
10565.
10566.
10567.
10568.
10569.
10570.
10571.
10572.
10573.
10574.
10575.
10576.
10577.
10578.
10579.
10580.
10581.
10582.
10583.
10584.
10585.
10586.
10587.
10588.
10589.
10590.
10591.
10592.
10593.
10594.
10595.
10596.
10597.
10598.
10599.
10600.
10601.
10602.
10603.
10604.
10605.
10606.
10607.
10608.
10609.
10610.
10611.
10612.
10613.
10614.
10615.
10616.
10617.
10618.
10619.
10620.
10621.
10622.
10623.
10624.
10625.
10626.
10627.
10628.
10629.
10630.
10631.
10632.
10633.
10634.
10635.
10636.
10637.
10638.
10639.
10640.
10641.
10642.
10643.
10644.
10645.
10646.
10647.
10648.
10649.
10650.
10651.
10652.
10653.
10654.
10655.
10656.
10657.
10658.
10659.
10660.
10661.
10662.
10663.
10664.
10665.
10666.
10667.
10668.
10669.
10670.
10671.
10672.
10673.
10674.
10675.
10676.
10677.
10678.
10679.
10680.
10681.
10682.
10683.
10684.
10685.
10686.
10687.
10688.
10689.
10690.
10691.
10692.
10693.
10694.
10695.
10696.
10697.
10698.
10699.
10700.
10701.
10702.
10703.
10704.
10705.
10706.
10707.
10708.
10709.
10710.
10711.
10712.
10713.
10714.
10715.
10716.
10717.
10718.
10719.
10720.
10721.
10722.
10723.
10724.
10725.
10726.
10727.
10728.
10729.
10730.
10731.
10732.
10733.
10734.
10735.
10736.
10737.
10738.
10739.
10740.
10741.
10742.
10743.
10744.
10745.
10746.
10747.
10748.
10749.
10750.
10751.
10752.
10753.
10754.
10755.
10756.
10757.
10758.
10759.
10760.
10761.
10762.
10763.
10764.
10765.
10766.
10767.
10768.
10769.
10770.
10771.
10772.
10773.
10774.
10775.
10776.
10777.
10778.
10779.
10780.
10781.
10782.
10783.
10784.
10785.
10786.
10787.
10788.
10789.
10790.
10791.
10792.
10793.
10794.
10795.
10796.
10797.
10798.
10799.
10800.
10801.
10802.
10803.
10804.
10805.
10806.
10807.
10808.
10809.
10810.
10811.
10812.
10813.
10814.
10815.
10816.
10817.
10818.
10819.
10820.
10821.
10822.
10823.
10824.
10825.
10826.
10827.
10828.
10829.
10830.
10831.
10832.
10833.
10834.
10835.
10836.
10837.
10838.
10839.
10840.
10841.
10842.
10843.
10844.
10845.
10846.
10847.
10848.
10849.
10850.
10851.
10852.
10853.
10854.
10855.
10856.
10857.
10858.
10859.
10860.
10861.
10862.
10863.
10864.
10865.
10866.
10867.
10868.
10869.
10870.
10871.
10872.
10873.
10874.
10875.
10876.
10877.
10878.
10879.
10880.
10881.
10882.
10883.
10884.
10885.
10886.
10887.
10888.
10889.
10890.
10891.
10892.
10893.
10894.
10895.
10896.
10897.
10898.
10899.
10900.
10901.
10902.
10903.
10904.
10905.
10906.
10907.
10908.
10909.
10910.
10911.
10912.
10913.
10914.
10915.
10916.
10917.
10918.
10919.
10920.
10921.
10922.
10923.
10924.
10925.
10926.
10927.
10928.
10929.
10930.
10931.
10932.
10933.
10934.
10935.
10936.
10937.
10938.
10939.
10940.
10941.
10942.
10943.
10944.
10945.
10946.
10947.
10948.
10949.
10950.
10951.
10952.
10953.
10954.
10955.
10956.
10957.
10958.
10959.
10960.
10961.
10962.
10963.
10964.
10965.
10966.
10967.
10968.
10969.
10970.
10971.
10972.
10973.
10974.
10975.
10976.
10977.
10978.
10979.
10980.
10981.
10982.
10983.
10984.
10985.
10986.
10987.
10988.
10989.
10990.
10991.
10992.
10993.
10994.
10995.
10996.
10997.
10998.
10999.
11000.
11001.
11002.
11003.
11004.
11005.
11006.
11007.
11008.
11009.
11010.
11011.
11012.
11013.
11014.
11015.
11016.
11017.
11018.
11019.
11020.
11021.
11022.
11023.
11024.
11025.
11026.
11027.
11028.
11029.
11030.
11031.
11032.
11033.
11034.
11035.
11036.
11037.
11038.
11039.
11040.
11041.
11042.
11043.
11044.
11045.
11046.
11047.
11048.
11049.
11050.
11051.
11052.
11053.
11054.
11055.
11056.
11057.
11058.
11059.
11060.
11061.
11062.
11063.
11064.
11065.
11066.
11067.
11068.
11069.
11070.
11071.
11072.
11073.
11074.
11075.
11076.
11077.
11078.
11079.
11080.
11081.
11082.
11083.
11084.
11085.
11086.
11087.
11088.
11089.
11090.
11091.
11092.
11093.
11094.
11095.
11096.
11097.
11098.
11099.
11100.
11101.
11102.
11103.
11104.
11105.
11106.
11107.
11108.
11109.
11110.
11111.
11112.
11113.
11114.
11115.
11116.
11117.
11118.
11119.
11120.
11121.
11122.
11123.
11124.
11125.
11126.
11127.
11128.
11129.
11130.
11131.
11132.
11133.
11134.
11135.
11136.
11137.
11138.
11139.
11140.
11141.
11142.
11143.
11144.
11145.
11146.
11147.
11148.
11149.
11150.
11151.
11152.
11153.
11154.
11155.
11156.
11157.
11158.
11159.
11160.
11161.
11162.
11163.
11164.
11165.
11166.
11167.
11168.
11169.
11170.
11171.
11172.
11173.
11174.
11175.
11176.
11177.
11178.
11179.
11180.
11181.
11182.
11183.
11184.
11185.
11186.
11187.
11188.
11189.
11190.
11191.
11192.
11193.
11194.
11195.
11196.
11197.
11198.
11199.
11200.
11201.
11202.
11203.
11204.
11205.
11206.
11207.
11208.
11209.
11210.
11211.
11212.
11213.
11214.
11215.
11216.
11217.
11218.
11219.
11220.
11221.
11222.
11223.
11224.
11225.
11226.
11227.
11228.
11229.
11230.
11231.
11232.
11233.
11234.
11235.
11236.
11237.
11238.
11239.
11240.
11241.
11242.
11243.
11244.
11245.
11246.
11247.
11248.
11249.
11250.
11251.
11252.
11253.
11254.
11255.
11256.
11257.
11258.
11259.
11260.
11261.
11262.
11263.
11264.
11265.
11266.
11267.
11268.
11269.
11270.
11271.
11272.
11273.
11274.
11275.
11276.
11277.
11278.
11279.
11280.
11281.
11282.
11283.
11284.
11285.
11286.
11287.
11288.
11289.
11290.
11291.
11292.
11293.
11294.
11295.
11296.
11297.
11298.
11299.
11300.
11301.
11302.
11303.
11304.
11305.
11306.
11307.
11308.
11309.
11310.
11311.
11312.
11313.
11314.
11315.
11316.
11317.
11318.
11319.
11320.
11321.
11322.
11323.
11324.
11325.
11326.
11327.
11328.
11329.
11330.
11331.
11332.
11333.
11334.
11335.
11336.
11337.
11338.
11339.
11340.
11341.
11342.
11343.
11344.
11345.
11346.
11347.
11348.
11349.
11350.
11351.
11352.
11353.
11354.
11355.
11356.
11357.
11358.
11359.
11360.
11361.
11362.
11363.
11364.
11365.
11366.
11367.
11368.
11369.
11370.
11371.
11372.
11373.
11374.
11375.
11376.
11377.
11378.
11379.
11380.
11381.
11382.
11383.
11384.
11385.
11386.
11387.
11388.
11389.
11390.
11391.
11392.
11393.
11394.
11395.
11396.
11397.
11398.
11399.
11400.
11401.
11402.
11403.
11404.
11405.
11406.
11407.
11408.
11409.
11410.
11411.
11412.
11413.
11414.
11415.
11416.
11417.
11418.
11419.
11420.
11421.
11422.
11423.
11424.
11425.
11426.
11427.
11428.
11429.
11430.
11431.
11432.
11433.
11434.
11435.
11436.
11437.
11438.
11439.
11440.
11441.
11442.
11443.
11444.
11445.
11446.
11447.
11448.
11449.
11450.
11451.
11452.
11453.
11454.
11455.
11456.
11457.
11458.
11459.
11460.
11461.
11462.
11463.
11464.
11465.
11466.
11467.
11468.
11469.
11470.
11471.
11472.
11473.
11474.
11475.
11476.
11477.
11478.
11479.
11480.
11481.
11482.
11483.
11484.
11485.
11486.
11487.
11488.
11489.
11490.
11491.
11492.
11493.
11494.
11495.
11496.
11497.
11498.
11499.
11500.
11501.
11502.
11503.
11504.
11505.
11506.
11507.
11508.
11509.
11510.
11511.
11512.
11513.
11514.
11515.
11516.
11517.
11518.
11519.
11520.
11521.
11522.
11523.
11524.
11525.
11526.
11527.
11528.
11529.
11530.
11531.
11532.
11533.
11534.
11535.
11536.
11537.
11538.
11539.
11540.
11541.
11542.
11543.
11544.
11545.
11546.
11547.
11548.
11549.
11550.
11551.
11552.
11553.
11554.
11555.
11556.
11557.
11558.
11559.
11560.
11561.
11562.
11563.
11564.
11565.
11566.
11567.
11568.
11569.
11570.
11571.
11572.
11573.
11574.
11575.
11576.
11577.
11578.
11579.
11580.
11581.
11582.
11583.
11584.
11585.
11586.
11587.
11588.
11589.
11590.
11591.
11592.
11593.
11594.
11595.
11596.
11597.
11598.
11599.
11600.
11601.
11602.
11603.
11604.
11605.
11606.
11607.
11608.
11609.
11610.
11611.
11612.
11613.
11614.
11615.
11616.
11617.
11618.
11619.
11620.
11621.
11622.
11623.
11624.
11625.
11626.
11627.
11628.
11629.
11630.
11631.
11632.
11633.
11634.
11635.
11636.
11637.
11638.
11639.
11640.
11641.
11642.
11643.
11644.
11645.
11646.
11647.
11648.
11649.
11650.
11651.
11652.
11653.
11654.
11655.
11656.
11657.
11658.
11659.
11660.
11661.
11662.
11663.
11664.
11665.
11666.
11667.
11668.
11669.
11670.
11671.
11672.
11673.
11674.
11675.
11676.
11677.
11678.
11679.
11680.
11681.
11682.
11683.
11684.
11685.
11686.
11687.
11688.
11689.
11690.
11691.
11692.
11693.
11694.
11695.
11696.
11697.
11698.
11699.
11700.
11701.
11702.
11703.
11704.
11705.
11706.
11707.
11708.
11709.
11710.
11711.
11712.
11713.
11714.
11715.
11716.
11717.
11718.
11719.
11720.
11721.
11722.
11723.
11724.
11725.
11726.
11727.
11728.
11729.
11730.
11731.
11732.
11733.
11734.
11735.
11736.
11737.
11738.
11739.
11740.
11741.
11742.
11743.
11744.
11745.
11746.
11747.
11748.
11749.
11750.
11751.
11752.
11753.
11754.
11755.
11756.
11757.
11758.
11759.
11760.
11761.
11762.
11763.
11764.
11765.
11766.
11767.
11768.
11769.
11770.
11771.
11772.
11773.
11774.
11775.
11776.
11777.
11778.
11779.
11780.
11781.
11782.
11783.
11784.
11785.
11786.
11787.
11788.
11789.
11790.
11791.
11792.
11793.
11794.
11795.
11796.
11797.
11798.
11799.
11800.
11801.
11802.
11803.
11804.
11805.
11806.
11807.
11808.
11809.
11810.
11811.
11812.
11813.
11814.
11815.
11816.
11817.
11818.
11819.
11820.
11821.
11822.
11823.
11824.
11825.
11826.
11827.
11828.
11829.
11830.
11831.
11832.
11833.
11834.
11835.
11836.
11837.
11838.
11839.
11840.
11841.
11842.
11843.
11844.
11845.
11846.
11847.
11848.
11849.
11850.
11851.
11852.
11853.
11854.
11855.
11856.
11857.
11858.
11859.
11860.
11861.
11862.
11863.
11864.
11865.
11866.
11867.
11868.
11869.
11870.
11871.
11872.
11873.
11874.
11875.
11876.
11877.
11878.
11879.
11880.
11881.
11882.
11883.
11884.
11885.
11886.
11887.
11888.
11889.
11890.
11891.
11892.
11893.
11894.
11895.
11896.
11897.
11898.
11899.
11900.
11901.
11902.
11903.
11904.
11905.
11906.
11907.
11908.
11909.
11910.
11911.
11912.
11913.
11914.
11915.
11916.
11917.
11918.
11919.
11920.
11921.
11922.
11923.
11924.
11925.
11926.
11927.
11928.
11929.
11930.
11931.
11932.
11933.
11934.
11935.
11936.
11937.
11938.
11939.
11940.
11941.
11942.
11943.
11944.
11945.
11946.
11947.
11948.
11949.
11950.
11951.
11952.
11953.
11954.
11955.
11956.
11957.
11958.
11959.
11960.
11961.
11962.
11963.
11964.
11965.
11966.
11967.
11968.
11969.
11970.
11971.
11972.
11973.
11974.
11975.
11976.
11977.
11978.
11979.
11980.
11981.
11982.
11983.
11984.
11985.
11986.
11987.
11988.
11989.
11990.
11991.
11992.
11993.
11994.
11995.
11996.
11997.
11998.
11999.
12000.
12001.
12002.
12003.
12004.
12005.
12006.
12007.
12008.
12009.
12010.
12011.
12012.
12013.
12014.
12015.
12016.
12017.
12018.
12019.
12020.
12021.
12022.
12023.
12024.
12025.
12026.
12027.
12028.
12029.
12030.
12031.
12032.
12033.
12034.
12035.
12036.
12037.
12038.
12039.
12040.
12041.
12042.
12043.
12044.
12045.
12046.
12047.
12048.
12049.
12050.
12051.
12052.
12053.
12054.
12055.
12056.
12057.
12058.
12059.
12060.
12061.
12062.
12063.
12064.
12065.
12066.
12067.
12068.
12069.
12070.
12071.
12072.
12073.
12074.
12075.
12076.
12077.
12078.
12079.
12080.
12081.
12082.
12083.
12084.
12085.
12086.
12087.
12088.
12089.
12090.
12091.
12092.
12093.
12094.
12095.
12096.
12097.
12098.
12099.
12100.
12101.
12102.
12103.
12104.
12105.
12106.
12107.
12108.
12109.
12110.
12111.
12112.
12113.
12114.
12115.
12116.
12117.
12118.
12119.
12120.
12121.
12122.
12123.
12124.
12125.
12126.
12127.
12128.
12129.
12130.
12131.
12132.
12133.
12134.
12135.
12136.
12137.
12138.
12139.
12140.
12141.
12142.
12143.
12144.
12145.
12146.
12147.
12148.
12149.
12150.
12151.
12152.
12153.
12154.
12155.
12156.
12157.
12158.
12159.
12160.
12161.
12162.
12163.
12164.
12165.
12166.
12167.
12168.
12169.
12170.
12171.
12172.
12173.
12174.
12175.
12176.
12177.
12178.
12179.
12180.
12181.
12182.
12183.
12184.
12185.
12186.
12187.
12188.
12189.
12190.
12191.
12192.
12193.
12194.
12195.
12196.
12197.
12198.
12199.
12200.
12201.
12202.
12203.
12204.
12205.
12206.
12207.
12208.
12209.
12210.
12211.
12212.
12213.
12214.
12215.
12216.
12217.
12218.
12219.
12220.
12221.
12222.
12223.
12224.
12225.
12226.
12227.
12228.
12229.
12230.
12231.
12232.
12233.
12234.
12235.
12236.
12237.
12238.
12239.
12240.
12241.
12242.
12243.
12244.
12245.
12246.
12247.
12248.
12249.
12250.
12251.
12252.
12253.
12254.
12255.
12256.
12257.
12258.
12259.
12260.
12261.
12262.
12263.
12264.
12265.
12266.
12267.
12268.
12269.
12270.
12271.
12272.
12273.
12274.
12275.
12276.
12277.
12278.
12279.
12280.
12281.
12282.
12283.
12284.
12285.
12286.
12287.
12288.
12289.
12290.
12291.
12292.
12293.
12294.
12295.
12296.
12297.
12298.
12299.
12300.
12301.
12302.
12303.
12304.
12305.
12306.
12307.
12308.
12309.
12310.
12311.
12312.
12313.
12314.
12315.
12316.
12317.
12318.
12319.
12320.
12321.
12322.
12323.
12324.
12325.
12326.
12327.
12328.
12329.
12330.
12331.
12332.
12333.
12334.
12335.
12336.
12337.
12338.
12339.
12340.
12341.
12342.
12343.
12344.
12345.
12346.
12347.
12348.
12349.
12350.
12351.
12352.
12353.
12354.
12355.
12356.
12357.
12358.
12359.
12360.
12361.
12362.
12363.
12364.
12365.
12366.
12367.
12368.
12369.
12370.
12371.
12372.
12373.
12374.
12375.
12376.
12377.
12378.
12379.
12380.
12381.
12382.
12383.
12384.
12385.
12386.
12387.
12388.
12389.
12390.
12391.
12392.
12393.
12394.
12395.
12396.
12397.
12398.
12399.
12400.
12401.
12402.
12403.
12404.
12405.
12406.
12407.
12408.
12409.
12410.
12411.
12412.
12413.
12414.
12415.
12416.
12417.
12418.
12419.
12420.
12421.
12422.
12423.
12424.
12425.
12426.
12427.
12428.
12429.
12430.
12431.
12432.
12433.
12434.
12435.
12436.
12437.
12438.
12439.
12440.
12441.
12442.
12443.
12444.
12445.
12446.
12447.
12448.
12449.
12450.
12451.
12452.
12453.
12454.
12455.
12456.
12457.
12458.
12459.
12460.
12461.
12462.
12463.
12464.
12465.
12466.
12467.
12468.
12469.
12470.
12471.
12472.
12473.
12474.
12475.
12476.
12477.
12478.
12479.
12480.
12481.
12482.
12483.
12484.
12485.
12486.
12487.
12488.
12489.
12490.
12491.
12492.
12493.
12494.
12495.
12496.
12497.
12498.
12499.
12500.
12501.
12502.
12503.
12504.
12505.
12506.
12507.
12508.
12509.
12510.
12511.
12512.
12513.
12514.
12515.
12516.
12517.
12518.
12519.
12520.
12521.
12522.
12523.
12524.
12525.
12526.
12527.
12528.
12529.
12530.
12531.
12532.
12533.
12534.
12535.
12536.
12537.
12538.
12539.
12540.
12541.
12542.
12543.
12544.
12545.
12546.
12547.
12548.
12549.
12550.
12551.
12552.
12553.
12554.
12555.
12556.
12557.
12558.
12559.
12560.
12561.
12562.
12563.
12564.
12565.
12566.
12567.
12568.
12569.
12570.
12571.
12572.
12573.
12574.
12575.
12576.
12577.
12578.
12579.
12580.
12581.
12582.
12583.
12584.
12585.
12586.
12587.
12588.
12589.
12590.
12591.
12592.
12593.
12594.
12595.
12596.
12597.
12598.
12599.
12600.
12601.
12602.
12603.
12604.
12605.
12606.
12607.
12608.
12609.
12610.
12611.
12612.
12613.
12614.
12615.
12616.
12617.
12618.
12619.
12620.
12621.
12622.
12623.
12624.
12625.
12626.
12627.
12628.
12629.
12630.
12631.
12632.
12633.
12634.
12635.
12636.
12637.
12638.
12639.
12640.
12641.
12642.
12643.
12644.
12645.
12646.
12647.
12648.
12649.
12650.
12651.
12652.
12653.
12654.
12655.
12656.
12657.
12658.
12659.
12660.
12661.
12662.
12663.
12664.
12665.
12666.
12667.
12668.
12669.
12670.
12671.
12672.
12673.
12674.
12675.
12676.
12677.
12678.
12679.
12680.
12681.
12682.
12683.
12684.
12685.
12686.
12687.
12688.
12689.
12690.
12691.
12692.
12693.
12694.
12695.
12696.
12697.
12698.
12699.
12700.
12701.
12702.
12703.
12704.
12705.
12706.
12707.
12708.
12709.
12710.
12711.
12712.
12713.
12714.
12715.
12716.
12717.
12718.
12719.
12720.
12721.
12722.
12723.
12724.
12725.
12726.
12727.
12728.
12729.
12730.
12731.
12732.
12733.
12734.
12735.
12736.
12737.
12738.
12739.
12740.
12741.
12742.
12743.
12744.
12745.
12746.
12747.
12748.
12749.
12750.
12751.
12752.
12753.
12754.
12755.
12756.
12757.
12758.
12759.
12760.
12761.
12762.
12763.
12764.
12765.
12766.
12767.
12768.
12769.
12770.
12771.
12772.
12773.
12774.
12775.
12776.
12777.
12778.
12779.
12780.
12781.
12782.
12783.
12784.
12785.
12786.
12787.
12788.
12789.
12790.
12791.
12792.
12793.
12794.
12795.
12796.
12797.
12798.
12799.
12800.
12801.
12802.
12803.
12804.
12805.
12806.
12807.
12808.
12809.
12810.
12811.
12812.
12813.
12814.
12815.
12816.
12817.
12818.
12819.
12820.
12821.
12822.
12823.
12824.
12825.
12826.
12827.
12828.
12829.
12830.
12831.
12832.
12833.
12834.
12835.
12836.
12837.
12838.
12839.
12840.
12841.
12842.
12843.
12844.
12845.
12846.
12847.
12848.
12849.
12850.
12851.
12852.
12853.
12854.
12855.
12856.
12857.
12858.
12859.
12860.
12861.
12862.
12863.
12864.
12865.
12866.
12867.
12868.
12869.
12870.
12871.
12872.
12873.
12874.
12875.
12876.
12877.
12878.
12879.
12880.
12881.
12882.
12883.
12884.
12885.
12886.
12887.
12888.
12889.
12890.
12891.
12892.
12893.
12894.
12895.
12896.
12897.
12898.
12899.
12900.
12901.
12902.
12903.
12904.
12905.
12906.
12907.
12908.
12909.
12910.
12911.
12912.
12913.
12914.
12915.
12916.
12917.
12918.
12919.
12920.
12921.
12922.
12923.
12924.
12925.
12926.
12927.
12928.
12929.
12930.
12931.
12932.
12933.
12934.
12935.
12936.
12937.
12938.
12939.
12940.
12941.
12942.
12943.
12944.
12945.
12946.
12947.
12948.
12949.
12950.
12951.
12952.
12953.
12954.
12955.
12956.
12957.
12958.
12959.
12960.
12961.
12962.
12963.
12964.
12965.
12966.
12967.
12968.
12969.
12970.
12971.
12972.
12973.
12974.
12975.
12976.
12977.
12978.
12979.
12980.
12981.
12982.
12983.
12984.
12985.
12986.
12987.
12988.
12989.
12990.
12991.
12992.
12993.
12994.
12995.
12996.
12997.
12998.
12999.
13000.
13001.
13002.
13003.
13004.
13005.
13006.
13007.
13008.
13009.
13010.
13011.
13012.
13013.
13014.
13015.
13016.
13017.
13018.
13019.
13020.
13021.
13022.
13023.
13024.
13025.
13026.
13027.
13028.
13029.
13030.
13031.
13032.
13033.
13034.
13035.
13036.
13037.
13038.
13039.
13040.
13041.
13042.
13043.
13044.
13045.
13046.
13047.
13048.
13049.
13050.
13051.
13052.
13053.
13054.
13055.
13056.
13057.
13058.
13059.
13060.
13061.
13062.
13063.
13064.
13065.
13066.
13067.
13068.
13069.
13070.
13071.
13072.
13073.
13074.
13075.
13076.
13077.
13078.
13079.
13080.
13081.
13082.
13083.
13084.
13085.
13086.
13087.
13088.
13089.
13090.
13091.
13092.
13093.
13094.
13095.
13096.
13097.
13098.
13099.
13100.
13101.
13102.
13103.
13104.
13105.
13106.
13107.
13108.
13109.
13110.
13111.
13112.
13113.
13114.
13115.
13116.
13117.
13118.
13119.
13120.
13121.
13122.
13123.
13124.
13125.
13126.
13127.
13128.
13129.
13130.
13131.
13132.
13133.
13134.
13135.
13136.
13137.
13138.
13139.
13140.
13141.
13142.
13143.
13144.
13145.
13146.
13147.
13148.
13149.
13150.
13151.
13152.
13153.
13154.
13155.
13156.
13157.
13158.
13159.
13160.
13161.
13162.
13163.
13164.
13165.
13166.
13167.
13168.
13169.
13170.
13171.
13172.
13173.
13174.
13175.
13176.
13177.
13178.
13179.
13180.
13181.
13182.
13183.
13184.
13185.
13186.
13187.
13188.
13189.
13190.
13191.
13192.
13193.
13194.
13195.
13196.
13197.
13198.
13199.
13200.
13201.
13202.
13203.
13204.
13205.
13206.
13207.
13208.
13209.
13210.
13211.
13212.
13213.
13214.
13215.
13216.
13217.
13218.
13219.
13220.
13221.
13222.
13223.
13224.
13225.
13226.
13227.
13228.
13229.
13230.
13231.
13232.
13233.
13234.
13235.
13236.
13237.
13238.
13239.
13240.
13241.
13242.
13243.
13244.
13245.
13246.
13247.
13248.
13249.
13250.
13251.
13252.
13253.
13254.
13255.
13256.
13257.
13258.
13259.
13260.
13261.
13262.
13263.
13264.
13265.
13266.
13267.
13268.
13269.
13270.
13271.
13272.
13273.
13274.
13275.
13276.
13277.
13278.
13279.
13280.
13281.
13282.
13283.
13284.
13285.
13286.
13287.
13288.
13289.
13290.
13291.
13292.
13293.
13294.
13295.
13296.
13297.
13298.
13299.
13300.
13301.
13302.
13303.
13304.
13305.
13306.
13307.
13308.
13309.
13310.
13311.
13312.
13313.
13314.
13315.
13316.
13317.
13318.
13319.
13320.
13321.
13322.
13323.
13324.
13325.
13326.
13327.
13328.
13329.
13330.
13331.
13332.
13333.
13334.
13335.
13336.
13337.
13338.
13339.
13340.
13341.
13342.
13343.
13344.
13345.
13346.
13347.
13348.
13349.
13350.
13351.
13352.
13353.
13354.
13355.
13356.
13357.
13358.
13359.
13360.
13361.
13362.
13363.
13364.
13365.
13366.
13367.
13368.
13369.
13370.
13371.
13372.
13373.
13374.
13375.
13376.
13377.
13378.
13379.
13380.
13381.
13382.
13383.
13384.
13385.
13386.
13387.
13388.
13389.
13390.
13391.
13392.
13393.
13394.
13395.
13396.
13397.
13398.
13399.
13400.
13401.
13402.
13403.
13404.
13405.
13406.
13407.
13408.
13409.
13410.
13411.
13412.
13413.
13414.
13415.
13416.
13417.
13418.
13419.
13420.
13421.
13422.
13423.
13424.
13425.
13426.
13427.
13428.
13429.
13430.
13431.
13432.
13433.
13434.
13435.
13436.
13437.
13438.
13439.
13440.
13441.
13442.
13443.
13444.
13445.
13446.
13447.
13448.
13449.
13450.
13451.
13452.
13453.
13454.
13455.
13456.
13457.
13458.
13459.
13460.
13461.
13462.
13463.
13464.
13465.
13466.
13467.
13468.
13469.
13470.
13471.
13472.
13473.
13474.
13475.
13476.
13477.
13478.
13479.
13480.
13481.
13482.
13483.
13484.
13485.
13486.
13487.
13488.
13489.
13490.
13491.
13492.
13493.
13494.
13495.
13496.
13497.
13498.
13499.
13500.
13501.
13502.
13503.
13504.
13505.
13506.
13507.
13508.
13509.
13510.
13511.
13512.
13513.
13514.
13515.
13516.
13517.
13518.
13519.
13520.
13521.
13522.
13523.
13524.
13525.
13526.
13527.
13528.
13529.
13530.
13531.
13532.
13533.
13534.
13535.
13536.
13537.
13538.
13539.
13540.
13541.
13542.
13543.
13544.
13545.
13546.
13547.
13548.
13549.
13550.
13551.
13552.
13553.
13554.
13555.
13556.
13557.
13558.
13559.
13560.
13561.
13562.
13563.
13564.
13565.
13566.
13567.
13568.
13569.
13570.
13571.
13572.
13573.
13574.
13575.
13576.
13577.
13578.
13579.
13580.
13581.
13582.
13583.
13584.
13585.
13586.
13587.
13588.
13589.
13590.
13591.
13592.
13593.
13594.
13595.
13596.
13597.
13598.
13599.
13600.
13601.
13602.
13603.
13604.
13605.
13606.
13607.
13608.
13609.
13610.
13611.
13612.
13613.
13614.
13615.
13616.
13617.
13618.
13619.
13620.
13621.
13622.
13623.
13624.
13625.
13626.
13627.
13628.
13629.
13630.
13631.
13632.
13633.
13634.
13635.
13636.
13637.
13638.
13639.
13640.
13641.
13642.
13643.
13644.
13645.
13646.
13647.
13648.
13649.
13650.
13651.
13652.
13653.
13654.
13655.
13656.
13657.
13658.
13659.
13660.
13661.
13662.
13663.
13664.
13665.
13666.
13667.
13668.
13669.
13670.
13671.
13672.
13673.
13674.
13675.
13676.
13677.
13678.
13679.
13680.
13681.
13682.
13683.
13684.
13685.
13686.
13687.
13688.
13689.
13690.
13691.
13692.
13693.
13694.
13695.
13696.
13697.
13698.
13699.
13700.
13701.
13702.
13703.
13704.
13705.
13706.
13707.
13708.
13709.
13710.
13711.
13712.
13713.
13714.
13715.
13716.
13717.
13718.
13719.
13720.
13721.
13722.
13723.
13724.
13725.
13726.
13727.
13728.
13729.
13730.
13731.
13732.
13733.
13734.
13735.
13736.
13737.
13738.
13739.
13740.
13741.
13742.
13743.
13744.
13745.
13746.
13747.
13748.
13749.
13750.
13751.
13752.
13753.
13754.
13755.
13756.
13757.
13758.
13759.
13760.
13761.
13762.
13763.
13764.
13765.
13766.
13767.
13768.
13769.
13770.
13771.
13772.
13773.
13774.
13775.
13776.
13777.
13778.
13779.
13780.
13781.
13782.
13783.
13784.
13785.
13786.
13787.
13788.
13789.
13790.
13791.
13792.
13793.
13794.
13795.
13796.
13797.
13798.
13799.
13800.
13801.
13802.
13803.
13804.
13805.
13806.
13807.
13808.
13809.
13810.
13811.
13812.
13813.
13814.
13815.
13816.
13817.
13818.
13819.
13820.
13821.
13822.
13823.
13824.
13825.
13826.
13827.
13828.
13829.
13830.
13831.
13832.
13833.
13834.
13835.
13836.
13837.
13838.
13839.
13840.
13841.
13842.
13843.
13844.
13845.
13846.
13847.
13848.
13849.
13850.
13851.
13852.
13853.
13854.
13855.
13856.
13857.
13858.
13859.
13860.
13861.
13862.
13863.
13864.
13865.
13866.
13867.
13868.
13869.
13870.
13871.
13872.
13873.
13874.
13875.
13876.
13877.
13878.
13879.
13880.
13881.
13882.
13883.
13884.
13885.
13886.
13887.
13888.
13889.
13890.
13891.
13892.
13893.
13894.
13895.
13896.
13897.
13898.
13899.
13900.
13901.
13902.
13903.
13904.
13905.
13906.
13907.
13908.
13909.
13910.
13911.
13912.
13913.
13914.
13915.
13916.
13917.
13918.
13919.
13920.
13921.
13922.
13923.
13924.
13925.
13926.
13927.
13928.
13929.
13930.
13931.
13932.
13933.
13934.
13935.
13936.
13937.
13938.
13939.
13940.
13941.
13942.
13943.
13944.
13945.
13946.
13947.
13948.
13949.
13950.
13951.
13952.
13953.
13954.
13955.
13956.
13957.
13958.
13959.
13960.
13961.
13962.
13963.
13964.
13965.
13966.
13967.
13968.
13969.
13970.
13971.
13972.
13973.
13974.
13975.
13976.
13977.
13978.
13979.
13980.
13981.
13982.
13983.
13984.
13985.
13986.
13987.
13988.
13989.
13990.
13991.
13992.
13993.
13994.
13995.
13996.
13997.
13998.
13999.
14000.
14001.
14002.
14003.
14004.
14005.
14006.
14007.
14008.
14009.
14010.
14011.
14012.
14013.
14014.
14015.
14016.
14017.
14018.
14019.
14020.
14021.
14022.
14023.
14024.
14025.
14026.
14027.
14028.
14029.
14030.
14031.
14032.
14033.
14034.
14035.
14036.
14037.
14038.
14039.
14040.
14041.
14042.
14043.
14044.
14045.
14046.
14047.
14048.
14049.
14050.
14051.
14052.
14053.
14054.
14055.
14056.
14057.
14058.
14059.
14060.
14061.
14062.
14063.
14064.
14065.
14066.
14067.
14068.
14069.
14070.
14071.
14072.
14073.
14074.
14075.
14076.
14077.
14078.
14079.
14080.
14081.
14082.
14083.
14084.
14085.
14086.
14087.
14088.
14089.
14090.
14091.
14092.
14093.
14094.
14095.
14096.
14097.
14098.
14099.
14100.
14101.
14102.
14103.
14104.
14105.
14106.
14107.
14108.
14109.
14110.
14111.
14112.
14113.
14114.
14115.
14116.
14117.
14118.
14119.
14120.
14121.
14122.
14123.
14124.
14125.
14126.
14127.
14128.
14129.
14130.
14131.
14132.
14133.
14134.
14135.
14136.
14137.
14138.
14139.
14140.
14141.
14142.
14143.
14144.
14145. | /* ================================================================================================ /
*
* Diablo Mod:
* ------------------
*
* Need: This compiled and items files
* Works with: AMXX § Cs 1.6
*
* Installation:
* -------------------
* Copy script into plugins and edit plugins.ini
* Copy item diablo directory into addons/amxmodx
* If you amx directory is not called addons/amxmodx/.. just create a new path
*
* Credits:
* -----------------
* Spacedude
* Some others back when amx mod started :]
* twistedeuphoria
*
* diablo_xpbonus = Xp on each kill (without bonus)
* diablo_durability = Will your item loose durability on damage? And how much each time
* diablo_saveitems = Save items when map changes
* diablo_spawnchance = 1/x chance to spawn powerup on each roundstart
*
* Contact:
* -----------------
* email: mortengryning@gmail.com
*
/ ================================================================================================= */
new Basepath[128] //Path from Cstrike base directory
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <cstrike>
#include <fun>
#include <fakemeta_util>
#include <sqlx>
#include <csx>
#include <hamsandwich>
#include <colorchat>
#include <xs>
#include <nvault>
#define RESTORETIME 30.0 //How long from server start can players still get their item trasferred (s)
#define MAX 32 //Max number of valid player entities
//#define CHEAT 1 //Cheat for testing purposes
#define CS_PLAYER_HEIGHT 72.0
#define GLOBAL_COOLDOWN 0.5
#define TASK_GREET 240
#define TASK_HUD 120
#define TASK_HOOK 360
#define MAX_PLAYERS 32
#define BASE_SPEED 245.0
#define GLUTON 95841
#define TASK_GOD 129
new Float:agi=BASE_SPEED
new round_status
new DemageTake[33]
new DemageTake1[33]
//new weapon, clip, ammo
#define x 0
#define y 1
#define z 2
#define TASK_CHARGE 100
#define TASK_NAME 48424
#define TASK_FLASH_LIGHT 81184
#define TASKID_REVIVE 1337
#define TASKID_RESPAWN 1338
#define TASKID_CHECKRE 1339
#define TASKID_CHECKST 13310
#define TASKID_ORIGIN 13311
#define TASKID_SETUSER 13312
#define FL_ONGROUND (1<<9)
#define message_begin_f(%1,%2,%3,%4) engfunc(EngFunc_MessageBegin, %1, %2, %3, %4)
#define write_coord_f(%1) engfunc(EngFunc_WriteCoord, %1)
#define pev_zorigin pev_fuser4
#define seconds(%1) ((1<<12) * (%1))
#define OFFSET_CAN_LONGJUMP 356
#define MAX_FLASH 15 //pojemnosc barejii maga (sekund)
new SOUND_START[] = "items/medshot4.wav"
new SOUND_FINISHED[] = "items/smallmedkit2.wav"
new SOUND_FAILED[] = "items/medshotno1.wav"
new SOUND_EQUIP[] = "items/ammopickup2.wav"
enum
{
ICON_HIDE = 0,
ICON_SHOW,
ICON_FLASH
}
new g_haskit[MAX+1]
new Float:g_revive_delay[MAX+1]
new Float:g_body_origin[MAX+1][3]
new bool:g_wasducking[MAX+1]
new g_msg_bartime
new g_msg_screenfade
new g_msg_statusicon
new g_msg_clcorpse
new cvar_revival_time
new cvar_revival_health
new cvar_revival_dis
new attacker
new attacker1
new flashlight[33]
new flashbattery[33]
new flashlight_r
new flashlight_g
new flashlight_b
new planter
new defuser
new map_end = 0
// max clip
stock const maxClip[31] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20,
10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 };
// max bpammo
stock const maxAmmo[31] = { -1, 52, -1, 90, -1, 32, -1, 100, 90, -1, 120, 100, 100, 90, 90, 90, 100, 100,
30, 120, 200, 32, 90, 120, 60, -1, 35, 90, 90, -1, 100 };
new gmsgDeathMsg
new gmsgStatusText
new gmsgBartimer
new gmsgScoreInfo
new gmsgHealth
new g_msgHostageAdd, g_msgHostageDel; // radar
new player, bossPower
new old_mp_autoteambalance, Float:old_mp_roundtime, Float:old_mp_buytime, old_mp_freezetime, old_mp_startmoney
new bool:freeze_ended
new c4state[33]
new c4bombc[33][3]
new c4fake[33]
new fired[33]
new bool:ghost_check
new ghosttime[33]
new ghoststate[33]
new naswietlony[33]
new sprite_blood_drop = 0
new sprite_blood_spray = 0
new sprite_gibs = 0
new sprite_white = 0
new sprite_fire = 0
new sprite_beam = 0
new sprite_boom = 0
new sprite_line = 0
new sprite_lgt = 0
new sprite_laser = 0
new sprite_ignite = 0
new sprite_smoke = 0
new sprite_blast;
new sprite;
new player_xp[33] = 0 //Holds players experience
new player_lvl[33] = 1 //Holds players level
new player_point[33] = 0 //Holds players level points
new player_item_id[33] = 0 //Items id
new player_item_name[33][128] //The items name
new player_intelligence[33]
new player_strength[33]
new player_agility[33]
new player_armor[33]
new mana_gracza[33]
new Float:player_damreduction[33]
new player_dextery[33]
new player_class[33]
new Float:player_huddelay[33]
//Item attributes
new player_b_vampire[33] = 1 //Vampyric damage
new player_b_damage[33] = 1 //Bonus damage
new player_b_money[33] = 1 //Money bonus
new player_b_gravity[33] = 1 //Gravity bonus : 1 = best
new player_b_inv[33] = 1 //Invisibility bonus
new player_b_grenade[33] = 1 //Grenade bonus = 1/chance to kill
new player_b_reduceH[33] = 1 //Reduces player health each round start
new player_b_theif[33] = 1 //Amount of money to steal
new player_b_respawn[33] = 1 //Chance to respawn upon death
new player_b_explode[33] = 1 //Radius to explode upon death
new player_b_heal[33] = 1 //Ammount of hp to heal each 5 second
new player_b_gamble[33] = 1 //Random skill each round : value = vararity
new player_b_blind[33] = 1 //Chance 1/Value to blind the enemy
new player_b_fireshield[33] = 1 //Protects against explode and grenade bonus
new player_b_meekstone[33] = 1 //Ability to lay a fake c4 and detonate
new player_b_teamheal[33] = 1 //How many hp to heal when shooting a teammate
new player_b_redirect[33] = 1 //How much damage will the player redirect
new player_b_fireball[33] = 1 //Ability to shot off a fireball value = radius
new player_b_ghost[33] = 1 //Ability to walk through stuff
new player_b_eye[33] = 1 //Ability to place camera
new player_b_blink[33] = 1 //Ability to get a railgun
new player_b_windwalk[33] = 1 //Ability to windwalk away
new player_b_usingwind[33] = 1 //Is player using windwalk
new player_b_froglegs[33] = 1 //Ability to hold down duck for 4 sec to frog-jump
new player_b_silent[33] = 1 //Is player silent
new player_b_dagon[33] = 1 //Ability to nuke an opponent
new player_b_sniper[33] = 1 //Ability to kill in 1/sniper with scout
new c_awp[33] = 1
new player_b_m3master[33] = 1
new player_b_dglmaster[33] = 1
new player_b_awpmaster[33] = 1
new player_b_akmaster[33] = 1
new player_b_m4master[33] = 1
new player_b_jumpx[33] = 1 //Ability to double jump
new player_b_smokehit[33] = 1 //Ability to hit and kill with smoke :]
new player_b_extrastats[33] = 1 //Ability to gain extra stats
new player_b_firetotem[33] = 1 //Ability to put down a fire totem that explodes after 7 seconds
new player_b_hook[33] = 1 //Ability to grap a player a hook him towards you
new player_b_darksteel[33] = 1 //Ability to damage double from behind the target
new player_b_illusionist[33] = 1 //Ability to use the illusionist escape
new player_b_mine[33] = 1 //Ability to lay down mines
new c_mine[33]
new c_shake[33]
new c_shaked[33]
new c_damage[33]
new bool:c_ulecz[33]
new c_jump[33]
new c_respawn[33]
new c_vampire[33]
new c_silent[33]
new player_b_antyarchy[33]
new c_antyarchy[33]
new player_b_antymeek[33]
new c_antymeek[33]
new player_b_antyorb[33]
new c_antyorb[33]
new player_b_antyfs[33]
new c_antyfs[33]
new niewidzialnosc_kucanie[33];
new c_grenade[33]
new c_blind[33]
new zmiana_skinu[33]
new c_darksteel[33]
new c_blink[33]
new lustrzany_pocisk[33] = 1
new c_redirect[33]
new losowe_itemy[33]
new niewidka[33]
new player_b_radar[33] = 1 // radar
new player_b_autobh[33] = 1
new player_b_godmode[33] = 1 // niesmiertelnosc
new player_b_zamroztotem[33] = 1
new player_b_fleshujtotem[33] = 1
new player_b_kasatotem[33] = 1
new player_b_kasaqtotem[33] = 1
new player_b_wywaltotem[33] = 1
new uzyl_przedmiot[33];
new c_piorun[33]
new skinchanged[33]
new player_dc_name[33][99] //Information about last disconnected players name
new player_dc_item[33] //Information about last disconnected players item
new player_sword[33] //nowyitem
new player_ring[33] //ring stats bust +5
new Float:poprzednia_rakieta_gracza[33];
new ilosc_rakiet_gracza[33];
new ilosc_blyskawic[33],poprzednia_blyskawica[33];
//new ilosc_dynamitow_gracza[33];
new Float:g_wallorigin[33][3]
new const gszSound[] = "ambience/thunder_clap.wav";
//Cvars
new pHook, pThrowSpeed, pSpeed, pWidth, pSound, pColor
new pInterrupt, pAdmin, pHookSky, pOpenDoors, pPlayers
new pUseButtons, pHostage, pWeapons, pInstant, pHookNoise
new pMaxHooks, pRndStartDelay
// Sprite
new sprBeam
// Players hook entity
new Hook[33]
// MaxPlayers
new gMaxPlayers
// some booleans
new bool:gHooked[33]
new bool:canThrowHook[33]
new bool:rndStarted
// Player Spawn
new bool:gRestart[33] = {false, ...}
new bool:gUpdate[33] = {false, ...}
new gHooksUsed[33] // Used with sv_hookmax
new bool:g_bHookAllowed[33] // Used with sv_hookadminonly
/////////////////////////////////////////////////////////////////////
new player_ultra_armor[33]
new player_ultra_armor_left[33]
/////////////////////////////////////////////////////////////////////
new Float:player_b_oldsen[33] //Players old sens
new bool:player_b_dagfired[33] //Fired dagoon?
new bool:used_item[33]
new jumps[33] //Keeps charge with the number of jumps the user has made
new bool:dojump[33] //Are we jumping?
new item_boosted[33] //Has this user boosted his item?
new earthstomp[33]
new bool:falling[33]
new gravitytimer[33]
new item_durability[33] //Durability of hold item
new CTSkins[4][]={"sas","gsg9","urban","gign"}
new TSkins[4][]={"arctic","leet","guerilla","terror"}
new SWORD_VIEW[] = "models/diablomod/v_knife.mdl"
new SWORD_PLAYER[] = "models/diablomod/p_knife.mdl"
new KNIFE_VIEW[] = "models/v_knife.mdl"
new KNIFE_PLAYER[] = "models/p_knife.mdl"
new C4_VIEW[] = "models/v_c4.mdl"
new C4_PLAYER[] = "models/p_c4.mdl"
new HE_VIEW[] = "models/v_hegrenade.mdl"
new HE_PLAYER[] = "models/p_hegrenade.mdl"
new FL_VIEW[] = "models/v_flashbang.mdl"
new FL_PLAYER[] = "models/p_flashbang.mdl"
new SE_VIEW[] = "models/v_smokegrenade.mdl"
new SE_PLAYER[] = "models/p_smokegrenade.mdl"
new cbow_VIEW[] = "models/diablomod/v_crossbow.mdl"
new cvow_PLAYER[]= "models/diablomod/p_crossbow.mdl"
new cbow_bolt[] = "models/diablomod/Crossbow_bolt.mdl"
new LeaderCT = -1
new LeaderT = -1
new JumpsLeft[33]
new JumpsMax[33]
new loaded_xp[33]
new sqlstart = 30 // Tyle prob jest na mape na poprawne polaczenie - bo cos sie zapetla gdy wylancza sie serwer (zmiena mapy?)
new asked_sql[33]
new asked_klass[33]
new olny_one_time=0
enum { NONE = 0, Mag, Mnich, Paladyn, Zabojca, Nekromanta, Barbarzynca, Ninja, Hunter, Andariel, Duriel, Mefisto, Hefasto, Diablo, Baal, Upadly, Imp, Izual, Skoczek, Zniewolony, Zgniatacz, Pijawka, GigantycznyPajak, SniegowyTulacz, Griswold, Kowal, Demonolog, VipCztery }
new Race[28][18] = { "None","Czarodziejka","Druid","Paladyn","Zabojczyni","Nekromanta","Barbarzynca", "Ninja", "Amazonka","Andariel", "Duriel", "Mefisto", "Hefasto", "Diablo", "Baal", "Upadly", "Imp", "Izual", "Skoczek", "Zniewolony", "Zgniatacz", "Pijawka", "Gigantyczny Pajak", "Sniegowy Tulacz","Griswold","Kowal","Demonolog","VipCztery" }
new race_heal[28] = { 100,110,150,130,140,110,120,170,140,110,130,120,140,130,120,123,110,135,135,127,130,140,115,135,145,145,145,145 }
new LevelXP[101] = { 0,50,125,225,340,510,765,1150,1500,1950,2550,3300,4000,4800,5800,7000,8500,9500,10500,11750,13000, //21
14300,15730,17300,19030,20900,23000,24000,25200,26400,27700,29000,30500,32000,33600,35300,37000,39000,41000,43000,45100,//41
47400,49800,52300,55000,57800,60700,63700,66900,70200,73700,77400,80000,82400,84900,87500,90000,92700,95500,98300,101000,//61
104000,107000,110000,113000,116000,120000,123000,126700,130000,134000,138000,142000,146000,150000,154000,158000,163000,168000,173000,178000,//81
183000,188000,194000,200000,206000,212000,218000,225000,232000,239000,246000,253000,261000,269000,277000,285000,294000,303000,500000,9999999/*101*/}
new player_class_lvl[33][28]
new player_class_lvl_save[33]
new player_xp_old[33]
new database_user_created[33]
new srv_avg[28] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
//For Hook and powerup sy
new hooked[33]
new Float:player_global_cooldown[33]
//For optimization
new last_update_xp[33]
new Float:last_update_perc[33]
new bool:use_addtofullpack
#define ICON_HIDE 0
#define ICON_SHOW 1
#define ICON_FLASH 2
#define ICON_S "suithelmet_full"
new wear_sun[33]
new anty_flesh[33]
//Flags a user can have
enum
{
Flag_Ignite = 0,
Flag_Hooking,
Flag_Rot,
Flag_Dazed,
Flag_Illusion,
Flag_Moneyshield,
Flag_Teamshield,
Flag_Teamshield_Target,
num_of_flags
}
//Flags
new afflicted[33][num_of_flags]
//noze
new max_knife[33]
new player_knife[33]
new Float:tossdelay[33]
//luk
new Float:bowdelay[33]
new bow[33]
new button[33]
// hunter - slad
#define TARACE_TASK 91203
new trace_bool[33]
#define NADE_VELOCITY EV_INT_iuser1
#define NADE_ACTIVE EV_INT_iuser2
#define NADE_TEAM EV_INT_iuser3
#define NADE_PAUSE EV_INT_iuser4
new cvar_throw_vel = 90 // def: 90
new cvar_activate_dis = 175 // def 190
new cvar_nade_vel = 280 //def 280
new Float: cvar_explode_delay = 0.5 // def 0.50
new g_TrapMode[33]
new g_GrenadeTrap[33] = {0, ... }
new Float:g_PreThinkDelay[33]
new Float:gfBlockSizeMin1[3]= {-32.0,-4.0,-32.0};
new Float:gfBlockSizeMax1[3]= { 32.0, 4.0, 32.0};
new Float:vAngles1[3] = {90.0,90.0,0.0}
new Float:gfBlockSizeMin2[3]= {-4.0,-32.0,-32.0}
new Float:gfBlockSizeMax2[3]= { 4.0, 32.0, 32.0}
new Float:vAngles2[3] = {90.0,0.0,0.0}
new casting[33]
new Float:cast_end[33]
new on_knife[33]
new golden_bulet[33]
new ultra_armor[33]
new after_bullet[33]
new num_shild[33]
new invisible_cast[33]
new player_dmg[33]
/* PLUGIN CORE REDIRECTING TO FUNCTIONS ========================================================== */
// SQL //
new Handle:g_SqlTuple
new g_sqlTable[64] = "dbmod_tables"
new g_boolsqlOK=0
// SQL //
//questy
new quest_gracza[33];
new ile_juz[33];
//przedzial , ile ,kogo , nagroda expa, vip 1 tak 0 nie
new questy[][]={
{1,2,Ninja,500,0},
{1,3,Mag,1200,1},
{1,6,Zabojca,2000,0},
{2,6,Hunter,5000,0},
{2,15,Barbarzynca,15000,1},
{2,20,Paladyn,20000,1},
{3,65,Barbarzynca,150000,1},
{3,120,Paladyn,200000,1}
}
new vault_questy;
new vault_questy2;
//od , do , hp
new prze[][]={
{1,50,20},
{51,80,40},
{81,140,60}
}
new prze_wybrany[33]
new questy_info[][]={
"Zabij 2 Ninje (Nagroda 500 doswiadczenia)",
"Zabij 3 Magow (Nagroda 1200 doswiadczenia)",
"Zabij 6 Zabojcow (Nagroda 2000 doswiadczenia)",
"Zabij 6 Lowcow (Nagroda 5000 doswiadczenia)",
"Zabij 15 Barbarzyncow (Nagroda 15000 doswiadczenia)",
"Zabij 20 Paladynow (Nagroda 20000 doswiadczenia)",
"Zabij 65 Barbarzyncow (Nagroda 150000 doswiadczenia)",
"Zabij 120 Paladynow (Nagroda 200000 doswiadczenia)"
}
new questy_zabil[][]={
"Ninjow",
"Magow",
"Zabojcow",
"Lowcow",
"Barbarzyncow",
"Paladynow",
"Barbarzyncow",
"Paladynow"
}
public plugin_init()
{
new map[32]
get_mapname(map,31)
new times[64]
get_time("%m/%d/%Y - %H:%M:%S" ,times,63)
log_to_file("addons/amxmodx/logs/diablo.log","%s ### MAPA: %s ### ",times,map)
register_cvar("diablo_sql_host","localhost",FCVAR_PROTECTED)
register_cvar("diablo_sql_user","root",FCVAR_PROTECTED)
register_cvar("diablo_sql_pass","root",FCVAR_PROTECTED)
register_cvar("diablo_sql_database","dbmod",FCVAR_PROTECTED)
register_cvar("diablo_sql_table","dbmod_tablet",FCVAR_PROTECTED)
register_cvar("diablo_sql_save","0",FCVAR_PROTECTED) // 0 - nick
// 1 - ip
// 2 - steam id
register_cvar("diablo_classes", "abcdefghijklmnoprstuwxyz!@#$")
// a Mag
// b Paladyn
// c Mnich
// d Zabojca
// e Barbarzynca
// f Nekromanta
// g Ninja
// h Hunter
register_cvar("diablo_avg", "1")
cvar_revival_time = register_cvar("amx_revkit_time", "3")
cvar_revival_health = register_cvar("amx_revkit_health", "25")
cvar_revival_dis = register_cvar("amx_revkit_distance", "70.0")
g_msg_bartime = get_user_msgid("BarTime")
g_msg_clcorpse = get_user_msgid("ClCorpse")
g_msg_screenfade= get_user_msgid("ScreenFade")
g_msg_statusicon= get_user_msgid("StatusIcon")
register_message(g_msg_clcorpse, "message_clcorpse")
register_event("HLTV", "event_hltv", "a", "1=0", "2=0")
register_forward(FM_Touch, "fwd_touch")
register_forward(FM_Touch, "fwTouch")
register_forward(FM_EmitSound, "fwd_emitsound")
register_forward(FM_PlayerPostThink, "fwd_playerpostthink")
RegisterHam(Ham_TakeDamage, "player", "lustrzanypocisk")
register_plugin("DiabloMod","5.9i PL","Miczu & GuTeK")
register_cvar("diablomod_version","5.9i PL",FCVAR_SERVER)
register_cvar("flashlight_custom","1");
register_cvar("flashlight_drain","1.0");
register_cvar("flashlight_charge","0.5");
register_cvar("flashlight_radius","8");
register_cvar("flashlight_decay","90");
register_event("Flashlight","event_flashlight","b");
register_event("CurWeapon","CurWeapon","be", "1=1")
register_event("ResetHUD", "ResetHUD", "abe")
register_event("ScreenFade","det_fade","be","1!0","2!0","7!0")
register_event("DeathMsg","DeathMsg","ade")
register_event("Damage", "Damage", "b", "2!0")
register_event("SendAudio","freeze_over","b","2=%!MRAD_GO","2=%!MRAD_MOVEOUT","2=%!MRAD_LETSGO","2=%!MRAD_LOCKNLOAD")
register_event("SendAudio","freeze_begin","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
register_event("HLTV", "round_bstart", "a", "1=0", "2=0")
register_logevent("round_estart", 2, "1=Round_Start")
register_event("SendAudio", "award_defuse", "a", "2&%!MRAD_BOMBDEF")
register_event("BarTime", "bomb_defusing", "be", "1=10", "1=5")
register_logevent("award_plant", 3, "2=Planted_The_Bomb");
register_event("StatusIcon", "got_bomb", "be", "1=1", "1=2", "2=c4")
register_event("TextMsg", "award_hostageALL", "a", "2&#All_Hostages_R" );
register_event("TextMsg","host_killed","b","2&#Killed_Hostage")
register_event("SendAudio","eventGrenade","bc","2=%!MRAD_FIREINHOLE")
register_event("TextMsg", "freeze_begin", "a", "2=#Game_will_restart_in")
register_event("SendAudio", "TTWin", "a", "2&%!MRAD_terwin")
register_event("SendAudio", "CTWin", "a", "2&%!MRAD_ctwin")
register_clcmd("say drop","dropitem")
register_clcmd("say /drop","dropitem")
register_clcmd("say /menu","nowe_menu")
register_clcmd("say menu","nowe_menu")
register_clcmd("say /d","dropitem")
register_clcmd("say /przedmiot","iteminfo")
register_clcmd("say /p","iteminfo")
register_clcmd("say /item","iteminfo")
register_clcmd("say /i","iteminfo")
register_clcmd("say /noweitemy","show_menu_item")
register_clcmd("say /itemy","show_menu_item")
register_clcmd("say /klasy","klasy_info")
register_clcmd("przedmiot","iteminfo")
register_clcmd("/przedmiot","iteminfo")
register_clcmd("say /przedmiot","iteminfo")
register_clcmd("say /Pomoc","helpme")
register_clcmd("say /Klasa","changerace")
register_clcmd("say /k","changerace")
register_clcmd("say /speed","speed")
register_clcmd("say /s","speed")
register_clcmd("blysk", "cmdBlyskawica");
register_concmd("rakieta","StworzRakiete")
register_concmd("fleszuj","Flesh")
//register_concmd("dynamit","PolozDynamit")
register_concmd("paladyn","check_palek")
register_concmd("kladzmine","item_mine")
register_clcmd("+lina", "make_hook")
register_clcmd("-lina", "del_hook")
register_clcmd("amx_boss","cmdMakeBoss",ADMIN_SLAY,"<name or #userid> <power> - make player a boss. Power must be 201 to 999")
register_clcmd("amx_unboss","cmdUnmakeBoss",ADMIN_SLAY,"- end the boss event")
register_event("TeamScore","hook_teamscore","a")
register_menucmd(register_menuid("Team_Select"),(1<<0)|(1<<1)|(1<<4)|(1<<5),"hook_team_select")
register_menucmd(-2,(1<<0)|(1<<1)|(1<<4)|(1<<5),"hook_team_select")
player=0
register_concmd("amx_givehook", "give_hook", ADMIN_IMMUNITY, "<Username> - Give somebody access to the hook")
register_concmd("amx_takehook", "take_hook", ADMIN_IMMUNITY, "<UserName> - Take away somebody his access to the hook")
register_clcmd("say klasa","changerace")
register_clcmd("say /gracze","cmd_who")
register_clcmd("say /g","cmd_who")
register_clcmd("klasa","changerace")
register_clcmd("say /klasa","changerace")
register_clcmd("say /zmianaklasy","changerace")
register_clcmd("say zmianaklasy","changerace")
register_clcmd("say /czary", "showskills")
register_clcmd("say /cz", "showskills")
register_clcmd("say czary", "showskills")
register_clcmd("say /komendy","komendy")
register_clcmd("pomoc","helpme")
register_clcmd("say /rune","buyrune")
register_clcmd("/rune","buyrune")
register_clcmd("/r","buyrune")
register_clcmd("rune","buyrune")
register_clcmd("/czary","showskills")
register_clcmd("/czary","showskills")
register_clcmd("say /czary","showskills")
register_clcmd("say /czary","showskills")
register_clcmd("say /savexp","savexpcom")
//register_clcmd("say /loadxp","LoadXP")
register_clcmd("say /reset","reset_skill")
register_clcmd("say /exp", "exp")
register_clcmd("say exp", "exp")
register_clcmd("reset","reset_skill")
register_clcmd("/reset","reset_skill")
register_clcmd("say /mana","mana1")
register_clcmd("say /m","mana1")
register_clcmd("mod","mod_info")
register_menucmd(register_menuid("Wybierz Staty"), 1023, "skill_menu")
register_menucmd(register_menuid("Wybierz Klase"), 1023, "select_class_menu")
register_menucmd(register_menuid("Sklep z runami"), 1023, "select_rune_menu")
register_menucmd(register_menuid("Nowe Itemy"), 1023, "nowe_itemy")
register_menucmd(register_menuid("Klasy"), 1023, "PressedKlasy")
register_menucmd(register_menuid("Lok"), 1023, "PokazMeni")
register_menucmd(register_menuid("Zwierzeta"), 1023, "PokazZwierz")
register_menucmd(register_menuid("Premium"), 1023, "PokazPremium")
gmsgDeathMsg = get_user_msgid("DeathMsg")
gmsgStatusText = get_user_msgid("StatusText")
gmsgBartimer = get_user_msgid("BarTime")
gmsgScoreInfo = get_user_msgid("ScoreInfo")
register_cvar("diablo_dmg_exp","20",0)
register_cvar("diablo_xpbonus","5",0)
register_cvar("diablo_xpbonus2","50",0)
register_cvar("diablo_xpbonus3","20",0)
register_cvar("diablo_durability","5",0)
register_cvar("SaveXP", "1")
set_msg_block ( gmsgDeathMsg, BLOCK_SET )
set_task(5.0, "Timed_Healing", 0, "", 0, "b")
set_task(1.0, "radar_scan", 0, _, _, "b"); // radar
set_task(1.0, "Timed_Ghost_Check", 0, "", 0, "b")
set_task(0.8, "UpdateHUD",0,"",0,"b")
register_think("PlayerCamera","Think_PlayerCamera");
register_think("PowerUp","Think_PowerUp")
register_think("Effect_Rot","Effect_Rot_Think")
register_think("Effect_Zamroz_Totem","Effect_Zamroz_Totem_Think")
register_think("Effect_Fleshuj_Totem","Effect_Fleshuj_Totem_Think")
register_think("Effect_Wywal_Totem","Effect_Wywal_Totem_Think")
register_think("Effect_Kasa_Totem","Effect_Kasa_Totem_Think")
register_think("Effect_Kasaq_Totem","Effect_Kasaq_Totem_Think")
register_think("HealBot", "HealBotThink");
CreateHealBot();
register_think("HealBot2", "HealBotThink2");
CreateHealBot2();
register_think("HealBot3", "HealBotThink3");
CreateHealBot3();
register_think("HealBot4", "HealBotThink4");
CreateHealBot4();
register_logevent("RoundStart", 2, "0=World triggered", "1=Round_Start")
register_clcmd("fullupdate","fullupdate")
register_clcmd("amx_dajitem", "giveitem", ADMIN_IMMUNITY, "Uzycie <amx_dajitem NICK idITemku")
register_forward(FM_WriteString, "FW_WriteString")
register_think("Effect_Ignite_Totem", "Effect_Ignite_Totem_Think")
register_think("Effect_Ignite", "Effect_Ignite_Think")
register_think("Effect_Slow","Effect_Slow_Think")
register_think("Effect_Timedflag","Effect_Timedflag_Think")
register_think("Effect_MShield","Effect_MShield_Think")
register_think("Effect_Teamshield","Effect_Teamshield_Think")
register_think("Effect_Healing_Totem","Effect_Healing_Totem_Think")
register_forward(FM_AddToFullPack, "client_AddToFullPack")
register_event("SendAudio","freeze_over1","b","2=%!MRAD_GO","2=%!MRAD_MOVEOUT","2=%!MRAD_LETSGO","2=%!MRAD_LOCKNLOAD")
register_event("SendAudio","freeze_begin1","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
register_forward(FM_PlayerPreThink, "Forward_FM_PlayerPreThink")
register_cvar("diablo_dir", "addons/amxmodx/diablo/")
get_cvar_string("diablo_dir",Basepath,127)
register_event("Health", "Health", "be", "1!255")
register_cvar("diablo_show_health","1")
gmsgHealth = get_user_msgid("Health")
g_msgHostageAdd = get_user_msgid("HostagePos");
g_msgHostageDel = get_user_msgid("HostageK");
//noze
register_touch("throwing_knife", "player", "touchKnife")
register_touch("throwing_knife", "worldspawn", "touchWorld")
register_touch("throwing_knife", "func_wall", "touchWorld")
register_touch("throwing_knife", "func_door", "touchWorld")
register_touch("throwing_knife", "func_door_rotating", "touchWorld")
register_touch("throwing_knife", "func_wall_toggle", "touchWorld")
register_touch("throwing_knife", "dbmod_shild", "touchWorld")
register_touch("throwing_knife", "func_breakable", "touchbreakable")
register_touch("func_breakable", "throwing_knife", "touchbreakable")
register_cvar("diablo_knife","20")
register_cvar("diablo_knife_speed","1000")
register_touch("xbow_arrow", "player", "toucharrow")
register_touch("xbow_arrow", "worldspawn", "touchWorld2")
register_touch("xbow_arrow", "func_wall", "touchWorld2")
register_touch("xbow_arrow", "func_door", "touchWorld2")
register_touch("xbow_arrow", "func_door_rotating", "touchWorld2")
register_touch("xbow_arrow", "func_wall_toggle", "touchWorld2")
register_touch("xbow_arrow", "dbmod_shild", "touchWorld2")
register_touch("xbow_arrow", "func_breakable", "touchbreakable")
register_touch("func_breakable", "xbow_arrow", "touchbreakable")
register_touch("Rocket", "*" , "DotykRakiety");
register_cvar("diablo_arrow","120.0")
register_cvar("diablo_arrow_multi","2.0")
register_cvar("diablo_arrow_speed","1500")
register_cvar("diablo_klass_delay","2.5")
pHook = register_cvar("sv_hook", "1")
pThrowSpeed = register_cvar("sv_hookthrowspeed", "1000")
pSpeed = register_cvar("sv_hookspeed", "300")
pWidth = register_cvar("sv_hookwidth", "32")
pSound = register_cvar("sv_hooksound", "1")
pColor = register_cvar("sv_hookcolor", "1")
pPlayers = register_cvar("sv_hookplayers", "0")
pInterrupt = register_cvar("sv_hookinterrupt", "0")
pAdmin = register_cvar("sv_hookadminonly", "0")
pHookSky = register_cvar("sv_hooksky", "0")
pOpenDoors = register_cvar("sv_hookopendoors", "1")
pUseButtons = register_cvar("sv_hookusebuttons", "1")
pHostage = register_cvar("sv_hookhostflollow", "1")
pWeapons = register_cvar("sv_hookpickweapons", "1")
pInstant = register_cvar("sv_hookinstant", "0")
pHookNoise = register_cvar("sv_hooknoise", "0")
pMaxHooks = register_cvar("sv_hookmax", "0")
pRndStartDelay = register_cvar("sv_hookrndstartdelay", "0.0")
//Koniec noze
register_think("grenade", "think_Grenade")
register_think("think_bot", "think_Bot")
_create_ThinkBot()
register_forward(FM_TraceLine,"fw_traceline");
vault_questy = nvault_open("Questy");
vault_questy2 = nvault_open("Questy2");
register_clcmd("say /questy","menu_questow")
register_clcmd("say /quest","menu_questow")
return PLUGIN_CONTINUE
}
public menu_questow(id){
if(quest_gracza[id] == -1 || quest_gracza[id] == -2){
new menu = menu_create("Menu Questow","menu_questow_handle")
new formats[128]
for(new i = 0;i<sizeof prze;i++){
formatex(formats,127,"Questy od %d do %d poziomu",prze[i][0],prze[i][1]);
menu_additem(menu,formats)
}
menu_display(id,menu,0)
}
else
{
ColorChat(id,GREEN,"[DiabloMod]^x01 Wykonaj najpierw poprzednie zadanie")
}
}
public menu_questow_handle(id,menu,item){
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
if(player_lvl[id] < prze[item][0]){
ColorChat(id,GREEN,"[DiabloMod]^x01 Masz za maly level!");
menu_questow(id)
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new formats[128]
formatex(formats,127,"Questy od %d do %d poziomu",prze[item][0],prze[item][1]);
new menu2 = menu_create(formats,"menu_questow_handle2")
for(new i = 0;i<sizeof(questy);i++){
if(questy[i][0] == item+1){
menu_additem(menu2,questy_info[i]);
}
}
menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
prze_wybrany[id] = item+1;
menu_display(id,menu2)
return PLUGIN_CONTINUE;
}
public zapisz_questa(id,quest){
new name[64];
get_user_name(id,name,63)
strtolower(name)
new key[64];
format(key,63,"questy-%i-%s-%i",player_class[id],name,quest);
nvault_set(vault_questy,key,"1");
}
public zapisz_aktualny_quest(id){
new name[64];
get_user_name(id,name,63)
strtolower(name)
new key[256];
format(key,255,"questy-%d-%s",player_class[id],name);
new data[32]
formatex(data,charsmax(data),"#%d#%d",quest_gracza[id]+1,ile_juz[id]);
nvault_set(vault_questy2,key,data);
}
public wczytaj_aktualny_quest(id){
new name[64];
get_user_name(id,name,63)
strtolower(name)
new key[256];
format(key,255,"questy-%d-%s",player_class[id],name);
new data[32];
nvault_get(vault_questy2,key,data,31);
replace_all(data,31,"#"," ");
new questt[32],ile[32]
parse(data,questt,31,ile,31)
ile_juz[id] = str_to_num(ile)
return str_to_num(questt)-1
}
public wczytaj_questa(id,quest){
new name[64];
get_user_name(id,name,63)
strtolower(name)
new key[64];
format(key,63,"questy-%i-%s-%i",player_class[id],name,quest);
new data[64];
nvault_get(vault_questy,key,data,63);
return str_to_num(data);
}
public menu_questow_handle2(id,menu,item){
if(item == MENU_EXIT){
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new ile2 = 0;
for(new i = 0;i<sizeof(questy);i++){
if(questy[i][0] != prze_wybrany[id]){
continue;
}
if(ile2 == item){
item = i;
break;
}
ile2++;
}
if(questy[item][4] && !(get_user_flags(id) & ADMIN_LEVEL_H)){
ColorChat(id,GREEN,"[DiabloMod]^x01 Ten quest jest tylko dla vipow! Aby kupic vipa wejdz na^x04 Your-Game.PL");
menu_questow(id)
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
if(wczytaj_questa(id,item)){
ColorChat(id,GREEN,"[DiabloMod]^x01 Wykonales juz to zadanie!");
menu_questow(id)
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
quest_gracza[id] = item;
ile_juz[id] = 0
zapisz_aktualny_quest(id)
ColorChat(id,GREEN,"[DiabloMod]^x01 Wybrales zadanie:^x04 %s^x01 powodzenia !",questy_info[item]);
quest_gracza[id] = wczytaj_aktualny_quest(id);
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
public sql_start()
{
if(sqlstart<0) return
if(g_boolsqlOK) return
new host[128]
new user[64]
new pass[64]
new database[64]
get_cvar_string("diablo_sql_database",database,63)
get_cvar_string("diablo_sql_host",host,127)
get_cvar_string("diablo_sql_user",user,63)
get_cvar_string("diablo_sql_pass",pass,63)
g_SqlTuple = SQL_MakeDbTuple(host,user,pass,database)
get_cvar_string("diablo_sql_table",g_sqlTable,63)
new q_command[512]
format(q_command,511,"CREATE TABLE IF NOT EXISTS `%s` ( `nick` VARCHAR( 64 ),`ip` VARCHAR( 64 ),`sid` VARCHAR( 64 ), `klasa` integer( 2 ) , `lvl` integer( 3 ) DEFAULT 1, `exp` integer( 9 ) DEFAULT 0, `str` integer( 3 ) DEFAULT 0, `int` integer( 3 ) DEFAULT 0, `dex` integer( 3 ) DEFAULT 0, `agi` integer( 3 ) DEFAULT 0, `arm` integer( 3 ) DEFAULT 0, `man` integer( 3 ) DEFAULT 0 ) ",g_sqlTable)
SQL_ThreadQuery(g_SqlTuple,"TableHandle",q_command)
}
//sql//
public TableHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
// lots of error checking
g_boolsqlOK=1
if(Errcode)
{
g_boolsqlOK=0
log_to_file("addons/amxmodx/logs/diablo.log","Error on Table query: %s",Error)
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
g_boolsqlOK=0
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Table Query failed.")
g_boolsqlOK=0
return PLUGIN_CONTINUE
}
LoadAVG()
return PLUGIN_CONTINUE
}
public create_klass(id)
{
if(g_boolsqlOK)
{
if(!is_user_bot(id) && database_user_created[id]==0)
{
new name[64]
new ip[64]
new sid[64]
get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )
get_user_ip ( id, ip, 63, 1 )
get_user_authid(id, sid ,63)
log_to_file("addons/amxmodx/logs/test_log.log","*** %s %s *** Create Class ***",name,sid)
new data[1]
data[0]=id
new q_command[2048]
new i=1
database_user_created[id]=1
format(q_command,2047,"INSERT INTO `%s` (`nick`,`ip`,`sid`,`klasa`,`lvl`,`exp`) VALUES ('%s','%s','%s',%i,%i,%i )",g_sqlTable,name,ip,sid,i,srv_avg[i],LevelXP[srv_avg[i]-1])
for(i=2;i<27;i++)
{
format(q_command,2047,"%s, ('%s','%s','%s',%i,%i,%i)",q_command,name,ip,sid,i,srv_avg[i],LevelXP[srv_avg[i]-1])
}
SQL_ThreadQuery(g_SqlTuple,"create_klass_Handle",q_command,data,1)
}
}
else sql_start()
}
public create_klass_Handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
// lots of error checking
new id=Data[0]
if(Errcode)
{
log_to_file("addons/amxmodx/logs/diablo.log","Error on create klass query: %s",Error)
database_user_created[id]=0
asked_klass[id]=0
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
database_user_created[id]=0
asked_klass[id]=0
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","create klass Query failed.")
database_user_created[id]=0
asked_klass[Data[0]]=0
return PLUGIN_CONTINUE
}
asked_klass[id]=0
database_user_created[id]=2
changerace(id)
return PLUGIN_CONTINUE
}
public load_xp(id)
{
if(g_boolsqlOK /*&& */)
{
if(!is_user_bot(id))
{
new name[64]
new data[1]
data[0]=id
if(get_cvar_num("diablo_sql_save")==0)
{
get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )
new q_command[512]
format(q_command,511,"SELECT `klasa` FROM `%s` WHERE `nick`='%s' ",g_sqlTable,name)
SQL_ThreadQuery(g_SqlTuple,"SelectHandle",q_command,data,1)
}
else if(get_cvar_num("diablo_sql_save")==1)
{
get_user_ip(id, name ,63,1)
new q_command[512]
format(q_command,511,"SELECT `klasa` FROM `%s` WHERE `ip`='%s' ",g_sqlTable,name)
SQL_ThreadQuery(g_SqlTuple,"SelectHandle",q_command,data,1)
}
else if(get_cvar_num("diablo_sql_save")==2)
{
get_user_authid(id, name ,63)
new q_command[512]
format(q_command,511,"SELECT `klasa` FROM `%s` WHERE `sid`='%s' ",g_sqlTable,name)
SQL_ThreadQuery(g_SqlTuple,"SelectHandle",q_command,data,1)
}
loaded_xp[id]=1
}
}
else sql_start()
}
public SelectHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(Errcode)
{
log_to_file("addons/amxmodx/logs/diablo.log","Error on load_xp query: %s",Error)
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","load_xp Query failed.")
return PLUGIN_CONTINUE
}
if(SQL_MoreResults(Query)) return PLUGIN_CONTINUE
else create_klass(Data[0])
return PLUGIN_CONTINUE
}
//sql//
public Health(id)
{
if(get_cvar_num("diablo_show_health")==1)
{
new health = read_data(1)
if(health>255)
{
message_begin( MSG_ONE, gmsgHealth, {0,0,0}, id )
write_byte( 255 )
message_end()
}
}
}
public speed(id)
{
new Float:spd = get_user_maxspeed(id)
ColorChat(id,GREEN,"[DiabloMod]^x01 Max: %f",spd)
new Float:vect[3]
entity_get_vector(id,EV_VEC_velocity,vect)
new Float: sped= floatsqroot(vect[0]*vect[0]+vect[1]*vect[1]+vect[2]*vect[2])
ColorChat(id,GREEN,"[DiabloMod]^x01 Teraz: %f",sped)
}
public plugin_precache()
{
precache_model("models/rpgrocket.mdl")
precache_model("models/bag.mdl")
precache_model("models/zombie.mdl")
precache_model("addons/amxmodx/diablo/mine.mdl")
precache_model("addons/amxmodx/diablo/totem_ignite.mdl")
precache_model("addons/amxmodx/diablo/totem_heal.mdl")
precache_model("models/player/arctic/arctic.mdl")
precache_model("models/player/leet/leet.mdl")
precache_model("models/player/guerilla/guerilla.mdl")
precache_model("models/player/terror/terror.mdl")
precache_model("models/player/urban/urban.mdl")
precache_model("models/player/sas/sas.mdl")
precache_model("models/player/gsg9/gsg9.mdl")
precache_model("models/player/gign/gign.mdl")
precache_model(SWORD_VIEW)
precache_model(SWORD_PLAYER)
precache_model(KNIFE_VIEW)
precache_model(KNIFE_PLAYER)
precache_model(C4_VIEW)
precache_model(C4_PLAYER)
precache_model(HE_VIEW)
precache_model(HE_PLAYER)
precache_model(FL_VIEW)
precache_model(FL_PLAYER)
precache_model(SE_VIEW)
precache_model(SE_PLAYER)
precache_sound("weapons/xbow_hit2.wav")
precache_sound("weapons/xbow_fire1.wav")
sprite_blood_drop = precache_model("sprites/blood.spr")
sprite_blood_spray = precache_model("sprites/bloodspray.spr")
sprite_ignite = precache_model("addons/amxmodx/diablo/flame.spr")
sprite_smoke = precache_model("sprites/steam1.spr")
sprite_laser = precache_model("sprites/laserbeam.spr")
sprite_boom = precache_model("sprites/zerogxplode.spr")
sprite_line = precache_model("sprites/dot.spr")
sprite_lgt = precache_model("sprites/lgtning.spr")
sprite_white = precache_model("sprites/white.spr")
sprite_fire = precache_model("sprites/explode1.spr")
sprite_gibs = precache_model("models/hgibs.mdl")
sprite_beam = precache_model("sprites/zbeam4.spr")
sprite = precache_model("sprites/lgtning.spr");
precache_model("models/player/arctic/arctic.mdl")
precache_model("models/player/terror/terror.mdl")
precache_model("models/player/leet/leet.mdl")
precache_model("models/player/guerilla/guerilla.mdl")
precache_model("models/player/gign/gign.mdl")
precache_model("models/player/sas/sas.mdl")
precache_model("models/player/gsg9/gsg9.mdl")
precache_model("models/player/urban/urban.mdl")
precache_model("models/player/vip/vip.mdl")
precache_sound(SOUND_START)
precache_sound(SOUND_FINISHED)
precache_sound(SOUND_FAILED)
precache_sound(SOUND_EQUIP)
precache_sound("weapons/knife_hitwall1.wav")
precache_sound("weapons/knife_hit4.wav")
precache_sound("weapons/knife_deploy1.wav")
precache_sound(gszSound);
precache_model("models/diablomod/w_throwingknife.mdl")
precache_model("models/diablomod/bm_block_platform.mdl")
precache_model(cbow_VIEW)
precache_model(cvow_PLAYER)
precache_model(cbow_bolt)
// Hook Model
engfunc(EngFunc_PrecacheModel, "models/rpgrocket.mdl")
// Hook Beam
sprBeam = engfunc(EngFunc_PrecacheModel, "sprites/zbeam4.spr")
// Hook Sounds
engfunc(EngFunc_PrecacheSound, "weapons/xbow_hit1.wav") // good hit
engfunc(EngFunc_PrecacheSound, "weapons/xbow_hit2.wav") // wrong hit
engfunc(EngFunc_PrecacheSound, "weapons/xbow_hitbod1.wav") // player hit
engfunc(EngFunc_PrecacheSound, "weapons/xbow_fire1.wav") // deploy
}
public plugin_cfg() {
server_cmd("sv_maxspeed 1500")
}
public plugin_natives()
{
register_native("db_get_user_xp", "native_get_user_xp", 1)
register_native("db_set_user_xp", "native_set_user_xp", 1)
register_native("db_get_user_level", "native_get_user_level", 1)
register_native("db_set_user_level", "native_set_user_level", 1)
register_native("db_get_user_class", "native_get_user_class", 1)
register_native("db_set_user_class", "native_set_user_class", 1)
register_native("db_get_user_item", "native_get_user_item", 1)
register_native("db_set_user_item", "native_set_user_item", 1)
register_library("DiabloMod_Items");
register_native("diablo_send_user_item", "_diablo_send_user_item");
register_native("diablo_get_user_item", "_diablo_get_user_item");
}
public savexpcom(id)
{
if(get_cvar_num("SaveXP") == 1 && player_class[id]!=0 && player_class_lvl[id][player_class[id]]==player_lvl[id] )
{
SubtractStats(id,player_b_extrastats[id])
SubtractRing(id)
SaveXP(id)
BoostStats(id,player_b_extrastats[id])
BoostRing(id)
}
}
public SaveXP(id)
{
if(g_boolsqlOK)
{
if(!is_user_bot(id) && player_xp[id]!=player_xp_old[id])
{
new name[64]
new ip[64]
new sid[64]
get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )
get_user_ip(id, ip ,63,1)
get_user_authid(id, sid ,63)
if(get_cvar_num("diablo_sql_save")==0)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `ip`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`arm`='%i',`man`='%i' WHERE `nick`='%s' AND `klasa`='%i' ",g_sqlTable,ip,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],player_armor[id],mana_gracza[id],name,player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
else if(get_cvar_num("diablo_sql_save")==1)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `nick`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`arm`='%i',`man`='%i' WHERE `ip`='%s' AND `klasa`='%i' ",g_sqlTable,name,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],mana_gracza[id],ip,player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
else if(get_cvar_num("diablo_sql_save")==2)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `nick`='%s',`ip`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`arm`='%i',`man`='%i' WHERE `sid`='%s' AND `klasa`='%i' ",g_sqlTable,name,ip,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],player_armor[id],mana_gracza[id],sid,player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
player_xp_old[id]=player_xp[id]
}
}
else sql_start()
return PLUGIN_HANDLED
}
public Save_xp_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(Errcode)
{
log_to_file("addons/amxmodx/logs/diablo.log","Error on Save_xp query: %s",Error)
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Save_xp Query failed.")
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
public LoadXP(id, klasa){
if(is_user_bot(id) || asked_sql[id]==1) return PLUGIN_HANDLED
if(player_class[id]==0)load_xp(id)
if(g_boolsqlOK )
{
new name[64]
new data[2]
data[0]=id
data[1]=klasa
if(get_cvar_num("diablo_sql_save")==0)
{
get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )
new q_command[512]
format(q_command,511,"SELECT * FROM `%s` WHERE `nick`='%s' AND `klasa`='%i'", g_sqlTable, name, player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Load_xp_handle",q_command,data,2)
asked_sql[id]=1
}
else if(get_cvar_num("diablo_sql_save")==1)
{
get_user_ip(id, name ,63,1)
new q_command[512]
format(q_command,511,"SELECT * FROM `%s` WHERE `ip`='%s' AND `klasa`='%i'", g_sqlTable, name, player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Load_xp_handle",q_command,data,2)
asked_sql[id]=1
}
else if(get_cvar_num("diablo_sql_save")==2)
{
get_user_authid(id, name ,63)
new q_command[512]
format(q_command,511,"SELECT * FROM `%s` WHERE `sid`='%s' AND `klasa`='%i'", g_sqlTable, name, player_class[id])
SQL_ThreadQuery(g_SqlTuple,"Load_xp_handle",q_command,data,2)
asked_sql[id]=1
}
}
else sql_start()
return PLUGIN_HANDLED
}
public Load_xp_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
new id = Data[0]
asked_sql[id]=0
if(Errcode)
{
log_to_file("addons/amxmodx/logs/diablo.log","Error on Load_xp query: %s",Error)
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Load_xp Query failed.")
return PLUGIN_CONTINUE
}
if(SQL_MoreResults(Query))
{
player_class[id] = Data[1]
player_lvl[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"lvl"))
player_xp[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"exp"))
player_xp_old[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"exp"))
player_intelligence[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"int"))
player_strength[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"str"))
player_agility[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"agi"))
player_armor[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"arm"))
mana_gracza[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"man"))
player_dextery[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"dex"))
player_point[id]=(player_lvl[id]-1)*2-player_intelligence[id]-player_strength[id]-player_dextery[id]-player_agility[id]-player_armor[id]
if(player_point[id]<0) player_point[id]=0
player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100)
}
return PLUGIN_CONTINUE
}
public LoadAVG()
{
if(g_boolsqlOK)
{
new data[2]
data[0]= get_cvar_num("diablo_avg")
if(data[0])
{
for(new i=1;i<28;i++)
{
new q_command[512]
data[1]=i
//format(q_command,511,"SELECT AVG(`lvl`) FROM `%s` WHERE `lvl` > '%d' AND `klasa`='%d'", g_sqlTable, data[0]-1,i)
format(q_command,511,"SELECT `klasa`,AVG(`lvl`) AS `AVG` FROM `%s` WHERE `lvl` > '%d' GROUP BY `klasa`", g_sqlTable, data[0]-1)
SQL_ThreadQuery(g_SqlTuple,"Load_AVG_handle",q_command,data,2)
}
}
}
else sql_start()
return PLUGIN_HANDLED
}
public Load_AVG_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(Errcode)
{
log_to_file("addons/amxmodx/logs/diablo.log","Error on Load_AVG query: %s",Error)
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Load_AVG Query failed.")
return PLUGIN_CONTINUE
}
/*
if(SQL_MoreResults(Query))
{
new Float: avg
SQL_ReadResult(Query, 0, avg)
srv_avg[Data[1]]=floatround(avg)
//ColorChat(id,GREEN,"[DiabloMod]^x01 srednia: %f",srv_avg)
}*/
while(SQL_MoreResults(Query))
{
new i = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "klasa"))
srv_avg[i] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AVG"))
SQL_NextRow(Query)
}
if(olny_one_time==0)
{
olny_one_time=1
look_for_none()
}
return PLUGIN_CONTINUE
}
public look_for_none()
{
for(new i=1;i<33;i++)
{
if(is_user_alive(i))
{
if(player_class[i]==0)
{
select_class_query(i)
}
}
}
}
public reset_skill(id)
{
ColorChat(id,GREEN,"[DiabloMod]^x01 Reset skill'ow")
player_point[id] = player_lvl[id]*2-2
player_intelligence[id] = 0
player_strength[id] = 0
player_agility[id] = 0
player_armor[id] = 0
player_dextery[id] = 0
BoostRing(id)
BoostStats(id,player_b_extrastats[id])
skilltree(id)
set_speedchange(id)
player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100)
}
public freeze_over()
{
//new Float: timea
//timea=get_cvar_float("diablo_klass_delay")
set_task(get_cvar_float("diablo_klass_delay"), "freezeover", 3659, "", 0, "")
}
public freezeover()
{
freeze_ended = true
}
public freeze_begin()
{
freeze_ended = false
}
public RoundStart(){
for (new i=0; i < 33; i++){
if(player_class[i] == Baal) {
zmiana_skinu[i] = random(5)
if(zmiana_skinu[i] == 1) {
changeskin(i,0)
ColorChat(i, GREEN, "[DiabloMod]^x01 Wygladasz jak przeciwnik!")
}
else
changeskin(i,1)
}
else
zmiana_skinu[i] = 0
used_item[i] = false
naswietlony[i] = 0;
losowe_itemy[i] = 0
uzyl_przedmiot[i] = 0
DemageTake1[i]=1
count_jumps(i)
give_knife(i)
JumpsLeft[i]=JumpsMax[i]
if(player_class[i] == Nekromanta) g_haskit[i]=1
else g_haskit[i]=0
if(player_class[i] == Hunter)
{
fm_give_item(i,"weapon_deagle")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
}
if(player_class[i] == Skoczek)
{
fm_give_item(i,"weapon_deagle")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"weapon_ak47")
fm_give_item(i,"ammo_762nato")
fm_give_item(i,"ammo_762nato")
fm_give_item(i,"ammo_762nato")
fm_give_item(i,"ammo_762nato")
}
if(player_class[i] == Zniewolony)
{
fm_give_item(i,"weapon_m4a1")
fm_give_item(i,"ammo_556nato")
fm_give_item(i,"ammo_556nato")
fm_give_item(i,"ammo_556nato")
fm_give_item(i,"ammo_556nato")
}
if(player_class[i] == SniegowyTulacz)
{
fm_give_item(i,"weapon_famas")
fm_give_item(i,"ammo_556nato")
fm_give_item(i,"ammo_556nato")
fm_give_item(i,"ammo_556nato")
fm_give_item(i,"ammo_556nato")
}
if(player_class[i] == Pijawka)
{
fm_give_item(i,"weapon_awp")
fm_give_item(i,"ammo_338magnum")
fm_give_item(i,"ammo_338magnum")
fm_give_item(i,"ammo_338magnum")
fm_give_item(i,"ammo_338magnum")
}
if(player_class[i] == Zgniatacz)
{
fm_give_item(i,"weapon_p90")
fm_give_item(i,"ammo_57mm")
fm_give_item(i,"ammo_57mm")
fm_give_item(i,"ammo_57mm")
}
if(player_class[i] == Imp)
{
fm_give_item(i,"weapon_hegrenade")
fm_give_item(i,"weapon_flashbang")
fm_give_item(i,"weapon_flasgbang")
fm_give_item(i,"weapon_smokegrenade")
}
if(player_class[i] == Baal)
{
fm_give_item(i,"weapon_m3")
fm_give_item(i,"ammo_buckshot")
fm_give_item(i,"ammo_buckshot")
fm_give_item(i,"ammo_buckshot")
fm_give_item(i,"ammo_buckshot")
fm_give_item(i,"ammo_buckshot")
}
if(player_class[i] == Diablo)
{
fm_give_item(i,"weapon_elite")
fm_give_item(i,"ammo_9mm")
fm_give_item(i,"ammo_9mm")
fm_give_item(i,"ammo_9mm")
fm_give_item(i,"ammo_9mm")
fm_give_item(i,"ammo_9mm")
fm_give_item(i,"ammo_9mm")
}
if(player_class[i] == Hefasto)
{
fm_give_item(i,"weapon_hegrenade")
fm_give_item(i,"weapon_deagle")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
fm_give_item(i,"ammo_50ae")
}
golden_bulet[i]=0
c_ulecz[i] = false
if(player_class[i] == Duriel) ilosc_rakiet_gracza[i]=3
else if(player_class[i] == Izual) ilosc_rakiet_gracza[i]=2
else if(player_class[i] == Griswold) ilosc_rakiet_gracza[i]=2
else if(player_class[i] == Demonolog) ilosc_rakiet_gracza[i]=3
if(player_class[i] == Zgniatacz)
{
ilosc_blyskawic[i]=3;
poprzednia_blyskawica[i]=0
}
else if(player_class[i] == SniegowyTulacz)
{
ilosc_blyskawic[i]=3;
poprzednia_blyskawica[i]=0
}
else if(player_class[i] == Kowal)
{
ilosc_blyskawic[i]=3;
poprzednia_blyskawica[i]=0
}
//else ilosc_rakiet_gracza[i]=0
/*if(player_class[i] == Zgniatacz) ilosc_dynamitow_gracza[i]=1
else if(player_class[i] == SniegowyTulacz) ilosc_dynamitow_gracza[i]=1
else if(player_class[i] == Kowal) ilosc_dynamitow_gracza[i]=1*/
//else ilosc_rakiet_gracza[i]=0
invisible_cast[i]=0
niewidka[i] = 0
ultra_armor[i]=0
lustrzany_pocisk[i]=0
num_shild[i]=2+floatround(player_intelligence[i]/25.0,floatround_floor)
set_renderchange(i)
if(is_user_connected(i)&&player_item_id[i]==66)
{
changeskin(i,0)
}
}
kill_all_entity("throwing_knife")
Bot_Setup()
ghost_check = false
check_class()
use_addtofullpack = false
}
#if defined CHEAT
public giveitem(id)
{
award_item(id, 25)
return PLUGIN_HANDLED
}
public benchmark(id)
{
new Float:nowtime = halflife_time();
new iterations = 10
for (new i=0; i < iterations; i++)
{
UpdateHUD()
}
new Float:timespent = halflife_time()-nowtime
ColorChat(id,GREEN,"[DiabloMod]^x01 Benchmark on: UpdateHUD() with %i iterations done in %f seconds",iterations,timespent)
}
#endif
/* BASIC FUNCTIONS ================================================================================ */
public csw_c44(id)
{
client_cmd(id,"weapon_knife")
engclient_cmd(id,"weapon_knife")
on_knife[id]=1
}
public CurWeapon(id)
{
after_bullet[id]=1
new clip,ammo
new weapon=get_user_weapon(id,clip,ammo)
invisible_cast[id]=0
niewidka[id] = 0
if(weapon == CSW_KNIFE)
{
on_knife[id] = 1
if(player_class[id] == Kowal)
niewidka[id] = 1
}
else on_knife[id]=0
if ((weapon != CSW_C4 ) && !on_knife[id] && (player_class[id] == Ninja))
{
client_cmd(id,"weapon_knife")
engclient_cmd(id,"weapon_knife")
on_knife[id]=1
}
if (is_user_connected(id))
{
//if (player_item_id[id] == 17 || player_b_usingwind[id] == 1)// engclient_cmd(id,"weapon_knife")
if(player_sword[id] == 1)
{
if(on_knife[id]){
entity_set_string(id, EV_SZ_viewmodel, SWORD_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, SWORD_PLAYER)
}
if(weapon == CSW_C4){
entity_set_string(id, EV_SZ_viewmodel, C4_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, C4_PLAYER)
}
if(weapon == CSW_HEGRENADE){
entity_set_string(id, EV_SZ_viewmodel, HE_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, HE_PLAYER)
}
if(weapon == CSW_FLASHBANG){
entity_set_string(id, EV_SZ_viewmodel, FL_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, FL_PLAYER)
}
if(weapon == CSW_SMOKEGRENADE){
entity_set_string(id, EV_SZ_viewmodel, SE_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, SE_PLAYER)
}
}
if(player_sword[id] == 0)
{
if(on_knife[id]){
entity_set_string(id, EV_SZ_viewmodel, KNIFE_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, KNIFE_PLAYER)
}
if(weapon == CSW_C4){
entity_set_string(id, EV_SZ_viewmodel, C4_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, C4_PLAYER)
}
if(weapon == CSW_HEGRENADE){
entity_set_string(id, EV_SZ_viewmodel, HE_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, HE_PLAYER)
}
if(weapon == CSW_FLASHBANG){
entity_set_string(id, EV_SZ_viewmodel, FL_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, FL_PLAYER)
}
if(weapon == CSW_SMOKEGRENADE){
entity_set_string(id, EV_SZ_viewmodel, SE_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, SE_PLAYER)
}
}
if(bow[id]==1)
{
bow[id]=0
if(on_knife[id])
{
entity_set_string(id, EV_SZ_viewmodel, KNIFE_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, KNIFE_PLAYER)
}
}
set_gravitychange(id)
set_speedchange(id)
set_armorchange(id)
set_renderchange(id)
if(player_class[id] == Nekromanta) g_haskit[id] = true
else g_haskit[id] = false
write_hud(id)
}
}
public ResetHUD(id)
{
if (is_user_connected(id))
{
remove_task(id+GLUTON)
change_health(id,9999,0,"")
if (c4fake[id] > 0)
{
remove_entity(c4fake[id])
c4fake[id] = 0
}
SubtractStats(id,player_b_extrastats[id])
SubtractRing(id)
if ((player_intelligence[id]+player_strength[id]+player_agility[id]+player_armor[id]+player_dextery[id])>(player_lvl[id]*2)) reset_skill(id)
BoostStats(id,player_b_extrastats[id])
BoostRing(id)
fired[id] = 0
player_ultra_armor_left[id]=player_ultra_armor[id]
player_b_dagfired[id] = false
ghoststate[id] = 0
earthstomp[id] = 0
if (player_b_blink[id] > 0)
player_b_blink[id] = 1
if (player_b_usingwind[id] > 0)
{
player_b_usingwind[id] = 0
}
if (player_point[id] > 0 ) skilltree(id)
if (player_class[id] == 0) select_class_query(id)
add_bonus_gamble(id) //MUST be first
c4state[id] = 0
client_cmd(id,"hud_centerid 0")
auto_help(id)
add_money_bonus(id)
set_gravitychange(id)
add_redhealth_bonus(id)
SelectBotRace(id)
set_renderchange(id)
if (gRestart[id])
{
gRestart[id] = false
return
}
if (gUpdate[id])
{
gUpdate[id] = false
return
}
if (gHooked[id])
{
remove_hook(id)
}
if (get_pcvar_num(pMaxHooks) > 0)
{
gHooksUsed[id] = 0
statusMsg(0, "[Hook] 0 of %d hooks used.", get_pcvar_num(pMaxHooks))
}
}
}
public DeathMsg(id)
{
new weaponname[20]
new kid = read_data(1)
new vid = read_data(2)
new headshot = read_data(3)
read_data(4,weaponname,31)
reset_player(vid)
msg_bartime(id, 0)
static Float:minsize[3]
pev(vid, pev_mins, minsize)
if(minsize[2] == -18.0)
g_wasducking[vid] = true
else
g_wasducking[vid] = false
set_task(0.5, "task_check_dead_flag", vid)
flashbattery[vid] = MAX_FLASH;
flashlight[vid] = 0;
if(player_sword[id] == 1){
if(on_knife[id]){
if(get_user_team(kid) != get_user_team(vid)) {
set_user_frags(kid, get_user_frags(kid) + 1)
award_kill(kid,vid)
}
}
}
if (is_user_connected(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid))
{
show_deadmessage(kid,vid,headshot,weaponname)
award_item(kid,0)
award_kill(kid,vid)
add_respawn_bonus(vid)
add_bonus_explode(vid)
add_barbarian_bonus(kid)
//mana_gracza[kid]+=1
//mana_gracza[headshot]+=2
if (player_class[kid] == Barbarzynca)
refill_ammo(kid)
if (player_class[kid] == Griswold)
refill_ammo(kid)
if (player_class[kid] == Kowal)
refill_ammo(kid)
if (player_class[kid] == Demonolog)
refill_ammo(kid)
set_renderchange(kid)
savexpcom(vid)
if(quest_gracza[kid] != -1){
if(player_class[vid] == questy[quest_gracza[kid]][2]){
ile_juz[kid]++;
zapisz_aktualny_quest(kid)
}
if(ile_juz[kid] == questy[quest_gracza[kid]][1]){
client_print(kid,print_chat,"Wykonales zadanie %s gratulacje otrzymujesz %i expa!",questy_info[quest_gracza[kid]],questy[quest_gracza[kid]][3])
zapisz_questa(kid,quest_gracza[kid])
Give_Xp(kid,questy[quest_gracza[kid]][3]);
quest_gracza[kid] = -1;
zapisz_aktualny_quest(kid)
}
else
{
client_print(kid,print_chat,"Zabiles %i/%i %s",ile_juz[kid],questy[quest_gracza[kid]][1],questy_zabil[quest_gracza[kid]])
}
}
}
}
public Damage(id)
{
if (is_user_connected(id))
{
new weapon
new bodypart
if(get_user_attacker(id,weapon,bodypart)!=0)
{
new damage = read_data(2)
new attacker_id = get_user_attacker(id,weapon,bodypart)
if (is_user_connected(attacker_id) && attacker_id != id)
{
if(get_user_team(id) != get_user_team(attacker_id))
{
if(damage>175) player_dmg[attacker_id]+=damage/2
else player_dmg[attacker_id]+=damage
dmg_exp(attacker_id)
}
add_damage_bonus(id,damage,attacker_id)
add_vampire_bonus(id,damage,attacker_id)
add_grenade_bonus(id,attacker_id,weapon)
add_theif_bonus(id,attacker_id)
add_bonus_blind(id,attacker_id,weapon,damage)
add_bonus_redirect(id)
add_bonus_necromancer(attacker_id,id)
add_bonus_scoutdamage(attacker_id,id,weapon)
add_bonus_cawpmasterdamage(attacker_id,id,weapon)
add_bonus_m4masterdamage(attacker_id,id,weapon)
add_bonus_akmasterdamage(attacker_id,id,weapon)
add_bonus_dglmasterdamage(attacker_id,id,weapon)
add_bonus_m3masterdamage(attacker_id,id,weapon)
add_bonus_awpmasterdamage(attacker_id,id,weapon)
add_bonus_darksteel(attacker_id,id,damage)
add_bonus_illusion(attacker_id,id,weapon)
add_bonus_shake(attacker_id,id)
add_bonus_shaked(attacker_id,id)
item_take_damage(id,damage)
if(player_sword[attacker_id] == 1 && weapon==CSW_KNIFE ){
change_health(id,-35,attacker_id,"world")
}
if (HasFlag(attacker_id,Flag_Ignite))
RemoveFlag(attacker_id,Flag_Ignite)
if((HasFlag(id,Flag_Illusion) || HasFlag(id,Flag_Teamshield))&& get_user_health(id) - damage > 0)
{
new weaponname[32]; get_weaponname( weapon, weaponname, 31 ); replace(weaponname, 31, "weapon_", "")
UTIL_Kill(attacker_id,id,weaponname)
}
if (HasFlag(id,Flag_Moneyshield))
{
change_health(id,damage/2,0,"")
}
//Add the agility damage reduction, around 45% the curve flattens
if (damage > 0 && player_agility[id] > 0)
{
new heal = floatround(player_damreduction[id]*damage)
if (is_user_alive(id)) change_health(id,heal,0,"")
}
if (HasFlag(id,Flag_Teamshield_Target))
{
//Find the owner of the shield
new owner = find_owner_by_euser(id,"Effect_Teamshield")
new weaponname[32]; get_weaponname( weapon, weaponname, 31 ); replace(weaponname, 31, "weapon_", "")
if (is_user_alive(owner))
{
change_health(attacker_id,-damage,owner,weaponname)
change_health(id,damage/2,0,"")
}
}
if (player_class[ attacker_id ] == Imp && is_user_alive(id)&&random_num(1,30)==1)
client_cmd(id, "weapon_knife")
}
#if defined CHEAT
new name[32]
get_user_name(id,name,31)
if (equal(name,"Admin"))
{
change_health(id,9999,0,"")
set_user_hitzones(0, id, 0)
}
#endif
if(attacker_id<1 || attacker_id>32) return
new clip,ammo
new weapon = get_user_weapon(attacker_id,clip,ammo)
if((attacker_id!=id)&&player_class[attacker] == Mag)
{
if(weapon == CSW_GLOCK18 || weapon == CSW_USP || weapon == CSW_P228 || weapon == CSW_DEAGLE || weapon == CSW_ELITE || weapon == CSW_FIVESEVEN)
{
agi=(BASE_SPEED / 2)
set_speedchange(id)
if(DemageTake[id]==0)
{
DemageTake[id]=1
set_task(11.0, "funcReleaseVic", id)
set_task(11.0, "funcReleaseVic2", id)
set_task(2.0, "funcDemageVic", id+GLUTON)
}
}
}
if(is_user_connected(attacker_id)&&(attacker_id!=id)&&player_class[attacker] == Zabojca)
{
if(weapon == CSW_GLOCK18 || weapon == CSW_USP || weapon == CSW_P228 || weapon == CSW_DEAGLE || weapon == CSW_ELITE || weapon == CSW_FIVESEVEN)
{
set_task(1.5, "funcDemageVic3", id)
}
}
if(is_user_connected(attacker_id)&&(attacker_id!=id)&&player_class[attacker] == Hunter)
{
if(weapon == CSW_GLOCK18 || weapon == CSW_USP || weapon == CSW_P228 || weapon == CSW_DEAGLE || weapon == CSW_ELITE || weapon == CSW_FIVESEVEN)
{
new ori[3]
trace_bool[attacker]=id
get_user_origin(id,ori)
new parms[5];
for(new i=0;i<3;i++)
{
parms[i] = ori[i]
}
parms[3]=attacker
parms[4]=id
set_task(0.5,"charge_hunter",attacker,parms,5)
}
}
}
}
}
public un_rander(id) {
id -= TASK_FLASH_LIGHT;
if(is_user_connected(id)) {
naswietlony[id] = 0;
Display_Icon(id, 0, "dmg_bio", 100, 200, 0);
set_renderchange(id);
}
}
public client_PreThink ( id )
{
if(!is_user_alive(id)||is_user_bot(id)) return PLUGIN_CONTINUE
new clip,ammo
new weapon = get_user_weapon(id,clip,ammo)
new button2 = get_user_button(id);
if(player_class[id]==Paladyn && weapon == CSW_KNIFE && freeze_ended)
{
if((button2 & IN_DUCK) && (button2 & IN_JUMP))
{
if(JumpsLeft[id]>0)
{
new flags = pev(id,pev_flags)
if(flags & FL_ONGROUND)
{
set_pev ( id, pev_flags, flags-FL_ONGROUND )
JumpsLeft[id]--
new Float:va[3],Float:v[3]
entity_get_vector(id,EV_VEC_v_angle,va)
v[0]=floatcos(va[1]/180.0*M_PI)*560.0
v[1]=floatsin(va[1]/180.0*M_PI)*560.0
v[2]=300.0
entity_set_vector(id,EV_VEC_velocity,v)
write_hud(id)
}
}
}
}
if(flashlight[id] && flashbattery[id] && (get_cvar_num("flashlight_custom")) && (player_class[id] == Mag)) {
new num1, num2, num3
num1=random_num(0,2)
num2=random_num(-1,1)
num3=random_num(-1,1)
flashlight_r+=1+num1
if (flashlight_r>250) flashlight_r-=245
flashlight_g+=1+num2
if (flashlight_g>250) flashlight_g-=245
flashlight_b+=-1+num3
if (flashlight_b<5) flashlight_b+=240
new origin[3];
get_user_origin(id,origin,3);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(27); // TE_DLIGHT
write_coord(origin[0]); // X
write_coord(origin[1]); // Y
write_coord(origin[2]); // Z
write_byte(get_cvar_num("flashlight_radius")); // radius
write_byte(flashlight_r); // R
write_byte(flashlight_g); // G
write_byte(flashlight_b); // B
write_byte(1); // life
write_byte(get_cvar_num("flashlight_decay")); // decay rate
message_end();
new index1, bodypart1
get_user_aiming(id, index1, bodypart1);
if(get_user_team(id) != get_user_team(index1) && index1 != 0) {
if(index1 != 54 && is_user_connected(index1) && is_user_alive(index1)) {
naswietlony[index1] = 1;
set_renderchange(index1);
message_begin(MSG_ONE, g_msg_statusicon, {0,0,0}, index1);
write_byte(2);
write_string("dmg_bio");
write_byte(200);
write_byte(100);
write_byte(0);
message_end();
}
remove_task(TASK_FLASH_LIGHT+index1);
set_task(7.5, "un_rander", TASK_FLASH_LIGHT+index1, "", 0, "a", 1);
}
}
if((button2 & IN_USE) && (player_class[id] == Paladyn))
wallclimb(id, button2)
if (button2 & IN_ATTACK2 && player_class[id]==Diablo && !(get_user_oldbutton(id) & IN_ATTACK2)){
if (weapon !=CSW_KNIFE && weapon != CSW_AWP && weapon != CSW_SCOUT){
if (cs_get_user_zoom(id)==CS_SET_NO_ZOOM) cs_set_user_zoom ( id, CS_SET_AUGSG552_ZOOM, 1 )
else cs_set_user_zoom(id,CS_SET_NO_ZOOM,1)
}
}
if (entity_get_int(id, EV_INT_button) & 2 && (player_class[id]== Skoczek))
{
new flags = entity_get_int(id, EV_INT_flags)
if (flags & FL_WATERJUMP)
return PLUGIN_CONTINUE
if ( entity_get_int(id, EV_INT_waterlevel) >= 2 )
return PLUGIN_CONTINUE
if ( !(flags & FL_ONGROUND) )
return PLUGIN_CONTINUE
new Float:velocity[3]
entity_get_vector(id, EV_VEC_velocity, velocity)
velocity[2] += 250.0
entity_set_vector(id, EV_VEC_velocity, velocity)
entity_set_int(id, EV_INT_gaitsequence, 6)
}
if (entity_get_int(id, EV_INT_button) & 2 && (player_b_autobh[id] > 0))
{
new flags = entity_get_int(id, EV_INT_flags)
if (flags & FL_WATERJUMP)
return PLUGIN_CONTINUE
if ( entity_get_int(id, EV_INT_waterlevel) >= 2 )
return PLUGIN_CONTINUE
if ( !(flags & FL_ONGROUND) )
return PLUGIN_CONTINUE
new Float:velocity[3]
entity_get_vector(id, EV_VEC_velocity, velocity)
velocity[2] += 250.0
entity_set_vector(id, EV_VEC_velocity, velocity)
entity_set_int(id, EV_INT_gaitsequence, 6)
}
//Before freeze_ended check
if (((player_b_silent[id] > 0) || (c_silent[id] > 0) || (player_class[id] == Zabojca)) && is_user_alive(id))
entity_set_int(id, EV_INT_flTimeStepSound, 300)
new Float:vect[3]
entity_get_vector(id,EV_VEC_velocity,vect)
new Float: sped= floatsqroot(vect[0]*vect[0]+vect[1]*vect[1]+vect[2]*vect[2])
if((get_user_maxspeed(id)*5)>(sped*9))
entity_set_int(id, EV_INT_flTimeStepSound, 300)
//bow model
if (button2 & IN_RELOAD && on_knife[id] && button[id]==0 && player_class[id]==Hunter || button2 & IN_RELOAD && on_knife[id] && button[id]==0 && player_class[id]==Demonolog){
bow[id]++
button[id] = 1;
command_bow(id)
}
if ((!(button2 & IN_RELOAD)) && on_knife[id] && button[id]==1) button[id]=0
//
if (!freeze_ended)
return PLUGIN_CONTINUE
if (earthstomp[id] != 0 && is_user_alive(id))
{
static Float:fallVelocity;
pev(id,pev_flFallVelocity,fallVelocity);
if(fallVelocity) falling[id] = true
else falling[id] = false;
}
if (player_b_jumpx[id] > 0 || c_jump[id] > 0) Prethink_Doublejump(id)
if (player_b_blink[id] > 0 || c_blink[id] > 0) Prethink_Blink(id)
if (player_b_usingwind[id] == 1) Prethink_usingwind(id)
if (player_b_oldsen[id] > 0) Prethink_confuseme(id)
if (player_b_froglegs[id] > 0) Prethink_froglegs(id)
//USE Button actives USEMAGIC
if (get_entity_flags(id) & FL_ONGROUND && (!(button2 & (IN_FORWARD+IN_BACK+IN_MOVELEFT+IN_MOVERIGHT)) || (player_class[id] == Mag && player_b_fireball[id]==0)) && is_user_alive(id) && !bow[id] && (on_knife[id] || (player_class[id] == Mag && player_b_fireball[id])) && player_class[id]!=NONE && player_class[id]!=Nekromanta && invisible_cast[id]==0)
{
if(casting[id]==1 && halflife_time()>cast_end[id])
{
message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id )
write_byte( 0 )
write_byte( 0 )
message_end()
casting[id]=0
call_cast(id)
}
else if(casting[id]==0)
{
new Float: time_delay = 5.0-(player_intelligence[id]/25.0)
if(player_class[id] == Ninja) time_delay*=2.0
else if(player_class[id] == Mag)
{
time_delay=time_delay = 4.0-(player_intelligence[id]/25.0)
if(player_b_fireball[id]>0) time_delay=random_float(0.5,4.0-(player_intelligence[id]/25.0))
}
else if(player_class[id] == Zabojca) time_delay*=2.0
else if(player_class[id] == Paladyn) time_delay*=1.4
cast_end[id]=halflife_time()+time_delay
new bar_delay = floatround(time_delay,floatround_ceil)
casting[id]=1
message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id )
write_byte( bar_delay )
write_byte( 0 )
message_end()
}
}
else
{
if(casting[id]==1)
{
message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id )
write_byte( 0 )
write_byte( 0 )
message_end()
}
casting[id]=0
}
if (pev(id,pev_button) & IN_USE && !casting[id])
Use_Spell(id)
if(player_class[id]==Ninja && (pev(id,pev_button) & IN_RELOAD)) command_knife(id)
else if (pev(id,pev_button) & IN_RELOAD && on_knife[id] && max_knife[id]>0) command_knife(id)
///////////////////// BOW /////////////////////////
if(player_class[id]==Hunter || player_class[id]==Demonolog)
{
new clip,ammo
new weapon = get_user_weapon(id,clip,ammo)
if(bow[id] == 1)
{
if((bowdelay[id] + 4.25 - float(player_intelligence[id]/25))< get_gametime() && button2 & IN_ATTACK)
{
bowdelay[id] = get_gametime()
command_arrow(id)
}
entity_set_int(id, EV_INT_button, (button2 & ~IN_ATTACK) & ~IN_ATTACK2)
}
// nade
if(g_GrenadeTrap[id] && button2 & IN_ATTACK2)
{
switch(weapon)
{
case CSW_HEGRENADE, CSW_FLASHBANG, CSW_SMOKEGRENADE:
{
if((g_PreThinkDelay[id] + 0.28) < get_gametime())
{
switch(g_TrapMode[id])
{
case 0: g_TrapMode[id] = 1
case 1: g_TrapMode[id] = 0
}
client_print(id, print_center, "Grenade Trap %s", g_TrapMode[id] ? "[ON]" : "[OFF]")
g_PreThinkDelay[id] = get_gametime()
}
}
default: g_TrapMode[id] = 0
}
}
}
///////////////////////////////////////////////////
return PLUGIN_CONTINUE
}
public client_PostThink( id )
{
if (player_b_jumpx[id] > 0 || c_jump[id] > 0) Postthink_Doubeljump(id)
if (earthstomp[id] != 0 && is_user_alive(id))
{
if (!falling[id]) add_bonus_stomp(id)
else set_pev(id,pev_watertype,-3)
}
}
public client_AddToFullPack(ent_state,e,edict_t_ent,edict_t_host,hostflags,player,pSet)
{
//No players need this rather cpu consuming function - dont run
if (!use_addtofullpack)
return FMRES_HANDLED
if (!pev_valid(e)|| !pev_valid(edict_t_ent) || !pev_valid(edict_t_host))
return FMRES_HANDLED
new classname[32]
pev(e,pev_classname,classname,31)
new hostclassname[32]
pev(edict_t_host,pev_classname,hostclassname,31)
if (equal(classname,"player") && equal(hostclassname,"player") && player)
{
// only take effect if both players are alive & and not somthing else like a ladder
if (is_user_alive(e) && is_user_alive(edict_t_host) && e != edict_t_host)
{
//host looks at e
if (HasFlag(e,Flag_Illusion))
return FMRES_SUPERCEDE
//E Is looking at t and t has the flag
if (HasFlag(edict_t_host,Flag_Illusion))
return FMRES_SUPERCEDE
}
}
return FMRES_HANDLED
}
/* FUNCTIONS ====================================================================================== */
public skilltree(id)
{
new text[513]
new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)
format(text, 512, "\yWybierz Staty- \rPunkty: \w[\r%i\w]^n^n\w1. \yInteligencja \w[\r%i\w] [\dWieksze obrazenia czarami\w]^n\w2. \ySila \w[\r%i\w] [\dWiecej zycia o \r%i\w]^n\w3. \yZrecznosc \w[\r%i\w] [\dBronie zadaja ci mniejsze obrazenia\w]^n\w4. \yZwinnosc \w[\r%i\w] [\dSzybciej biegasz i magia zadaje ci mniejsze obrazenia\w]^n\w5. \yPancerz \w[\r%i\w] [\dDostajesz armor na start\w]"
,player_point[id],player_intelligence[id],player_strength[id],player_strength[id]*2,player_agility[id],player_dextery[id],player_armor[id])
keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)
show_menu(id, keys, text)
return PLUGIN_HANDLED
}
public skill_menu(id, key)
{
switch(key)
{
case 0:
{
if (player_intelligence[id]<50){
player_point[id]-=1
player_intelligence[id]+=1
}
else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety")
}
case 1:
{
if (player_strength[id]<50){
player_point[id]-=1
player_strength[id]+=1
}
else client_print(id,print_center,"Maxymalny poziom sily osiagniety")
}
case 2:
{
if (player_agility[id]<50){
player_point[id]-=1
player_agility[id]+=1
player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100)
}
else client_print(id,print_center,"Maxymalny poziom zrecznosci osiagniety")
}
case 3:
{
if (player_dextery[id]<50){
player_point[id]-=1
player_dextery[id]+=1
set_speedchange(id)
}
else client_print(id,print_center,"Maxymalny poziom zwinnosci osiagniety")
}
case 4:
{
if (player_armor[id]<50){
player_point[id]-=1
player_armor[id]+=1
set_armorchange(id)
}
else client_print(id,print_center,"Maxymalny poziom pancerza osiagniety")
}
}
if (player_point[id] > 0)
skilltree(id)
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public show_deadmessage(killer_id,victim_id,headshot,weaponname[])
{
if (!(killer_id==victim_id && !headshot && equal(weaponname,"world")))
{
message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
write_byte(killer_id)
write_byte(victim_id)
write_byte(headshot)
write_string(weaponname)
message_end()
}
}
/* ==================================================================================================== */
public got_bomb(id){
planter = id;
return PLUGIN_CONTINUE
}
public award_plant()
{
new Players[32], playerCount, id
get_players(Players, playerCount, "aeh", "TERRORIST")
for (new i=0; i<playerCount; i++)
{
id = Players[i]
Give_Xp(id,get_cvar_num("diablo_xpbonus"))
ColorChat(id, GREEN, "[DiabloMod]^x01 Dostales^x04 %i^x01 doswiadczenia za polozenie bomby przez twoja druzyne",get_cvar_num("diablo_xpbonus2"))
}
Give_Xp(planter,get_cvar_num("diablo_xpbonus2"))
}
public bomb_defusing(id){
defuser = id;
return PLUGIN_CONTINUE
}
public award_defuse()
{
new Players[32], playerCount, id
get_players(Players, playerCount, "aeh", "CT")
for (new i=0; i<playerCount; i++)
{
id = Players[i]
Give_Xp(id,get_cvar_num("diablo_xpbonus"))
ColorChat(id, GREEN, "[DiabloMod]^x01 Dostales^x04 %i^x01 doswiadczenia za rozbrojenie bomby przez twoja druzyne",get_cvar_num("diablo_xpbonus2"))
}
Give_Xp(defuser,get_cvar_num("diablo_xpbonus2"))
}
public award_hostageALL(id)
{
if (is_user_connected(id) == 1)
Give_Xp(id,get_cvar_num("diablo_xpbonus2")/2)
}
/* ==================================================================================================== */
public award_kill(killer_id,victim_id)
{
if (!is_user_connected(killer_id) || !is_user_connected(victim_id))
return PLUGIN_CONTINUE
mana_gracza[killer_id]+=random_num(1,2)
new xp_award = get_cvar_num("diablo_xpbonus")
new name[18]
get_user_name(killer_id, name, 17)
new Team[32]
get_user_team(killer_id,Team,31)
if (LeaderCT > 0 && equal(Team,"CT") && !is_user_alive(LeaderCT))
xp_award-= get_cvar_num("diablo_xpbonus")/4
if (LeaderT > 0 && equal(Team,"TERRORIST") && !is_user_alive(LeaderT))
xp_award-= get_cvar_num("diablo_xpbonus")/4
if (player_xp[killer_id]<player_xp[victim_id])
xp_award+=get_cvar_num("diablo_xpbonus")/4
new more_lvl=player_lvl[victim_id]-player_lvl[killer_id]
if(more_lvl>0) xp_award += floatround((get_cvar_num("diablo_xpbonus")/7)*(more_lvl*((2.0-more_lvl/40.0)/3.0)))
else if(more_lvl<-50)xp_award -= get_cvar_num("diablo_xpbonus")*(2/3)
else if(more_lvl<-40)xp_award -= get_cvar_num("diablo_xpbonus")/2
else if(more_lvl<-30)xp_award -= get_cvar_num("diablo_xpbonus")/3
else if(more_lvl<-20)xp_award -= get_cvar_num("diablo_xpbonus")/4
else if(more_lvl<-10)xp_award -= get_cvar_num("diablo_xpbonus")/7
Give_Xp(killer_id,xp_award)
return PLUGIN_CONTINUE
}
public Give_Xp(id,amount)
{
new Players[32], zablokuj;
get_players(Players, zablokuj, "ch");
if(zablokuj < 2 && amount < 200) return PLUGIN_CONTINUE;
if(player_class_lvl[id][player_class[id]]==player_lvl[id])
{
if(player_xp[id]+amount!=0 && get_playersnum()>1){
player_xp[id]+=amount
if (player_xp[id] > LevelXP[player_lvl[id]])
{
player_lvl[id]+=1
player_point[id]+=2
set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2)
show_hudmessage(id, "Awansowales do poziomu %i", player_lvl[id])
new name[32]
get_user_name(id, name, 31)
ColorChat(0, GREEN, "[DiabloMod]^x01 Gracz^x04 %s^x01 awansowal na^x04 %i^x01 level (^x04%s^x01)", name, player_lvl[id], Race[player_class[id]])
savexpcom(id)
player_class_lvl[id][player_class[id]]=player_lvl[id]
}
if (player_xp[id] < LevelXP[player_lvl[id]-1])
{
player_lvl[id]-=1
player_point[id]-=2
set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2)
show_hudmessage(id, "Spadles do poziomu %i", player_lvl[id])
savexpcom(id)
player_class_lvl[id][player_class[id]]=player_lvl[id]
}
write_hud(id)
}
}
return PLUGIN_CONTINUE;
}
/* ==================================================================================================== */
public client_connect(id)
{
client_cmd(id,"bind ^"v^" ^"say /menu^"")
// reset_item_skills(id) - nie tutaj bo nie loaduje poziomow O.o
asked_klass[id] = 0
asked_sql[id]=0
flashbattery[id] = MAX_FLASH
player_xp[id] = 0
player_lvl[id] = 1
player_point[id] = 0
player_item_id[id] = 0
player_agility[id] = 0
player_strength[id] = 0
player_intelligence[id] = 0
player_dextery[id] = 0
player_b_oldsen[id] = 0.0
player_class[id] = 0
player_damreduction[id] = 0.0
last_update_xp[id] = -1
player_item_name[id] = "Brak"
DemageTake[id]=0
player_b_gamble[id]=0
lustrzany_pocisk[id] = 0
g_GrenadeTrap[id] = 0
g_TrapMode[id] = 0
player_ring[id]=0
reset_item_skills(id) // Juz zaladowalo xp wiec juz nic nie zepsuje <lol2>
reset_player(id)
set_task(10.0, "Greet_Player", id+TASK_GREET, "", 0, "a", 1)
}
public client_putinserver(id)
{
loaded_xp[id]=0
player_class_lvl_save[id]=0
database_user_created[id]=0
count_jumps(id)
JumpsLeft[id]=JumpsMax[id]
}
public client_disconnect(id)
{
new ent
new playername[40]
get_user_name(id,playername,39)
player_dc_name[id] = playername
player_dc_item[id] = player_item_id[id]
if (player_b_oldsen[id] > 0.0) client_cmd(id,"sensitivity %f",player_b_oldsen[id])
savexpcom(id)
remove_task(TASK_CHARGE+id)
while((ent = fm_find_ent_by_owner(ent, "fake_corpse", id)) != 0)
fm_remove_entity(ent)
player_class_lvl_save[id]=0
loaded_xp[id]=0
}
/* ==================================================================================================== */
public write_hud(id)
{
if (player_lvl[id] == 0)
player_lvl[id] = 1
new tpstring[1024]
new Float:xp_now
new Float:xp_need
new Float:perc
if (last_update_xp[id] == player_xp[id])
{
perc = last_update_perc[id]
}
else
{
//Calculate percentage of xp required to level
if (player_lvl[id] == 1)
{
xp_now = float(player_xp[id])
xp_need = float(LevelXP[player_lvl[id]])
perc = xp_now*100.0/xp_need
}
else
{
xp_now = float(player_xp[id])-float( LevelXP[player_lvl[id]-1])
xp_need = float(LevelXP[player_lvl[id]])-float(LevelXP[player_lvl[id]-1])
perc = xp_now*100.0/xp_need
}
}
last_update_xp[id] = player_xp[id]
last_update_perc[id] = perc
if(player_class[id]!=Paladyn)
{
set_hudmessage(0, 255, 0, 0.03, 0.20, 0, 6.0, 1.0)
show_hudmessage(id, "Zycie: %i^nKlasa: %s^nPoziom: %i (%0.0f%s)^nPrzedmiot: %s^nWytrzymalosc: %i^nMana: %i",get_user_health(id), Race[player_class[id]], player_lvl[id], perc,"%%", player_item_name[id],item_durability[id],mana_gracza[id])
}
else
{
set_hudmessage(0, 255, 0, 0.03, 0.20, 0, 6.0, 1.0)
show_hudmessage(id, "Zycie: %i^nKlasa: %s^nPoziom: %i^n(%0.0f%s)^nSkoki: %i/%i^nPrzedmiot: %s^nWytrzymalosc: %i^nMana: %i",get_user_health(id), Race[player_class[id]], player_lvl[id], perc,"%%",JumpsLeft[id],JumpsMax[id], player_item_name[id], item_durability[id],mana_gracza[id])
}
message_begin(MSG_ONE,gmsgStatusText,{0,0,0}, id)
write_byte(0)
write_string(tpstring)
message_end()
}
/* ==================================================================================================== */
public UpdateHUD()
{
//Update HUD for each player
for (new id=0; id < 32; id++)
{
//If user is not connected, don't do anything
if (!is_user_connected(id))
continue
if (is_user_alive(id)) write_hud(id)
else
{
//Show info about the player we're looking at
new index,bodypart
get_user_aiming(id,index,bodypart)
if (!gUpdate[id])
gUpdate[id] = true
if(index >= 0 && index < MAX && is_user_connected(index) && is_user_alive(index))
{
new pname[32]
get_user_name(index,pname,31)
new Msg[512]
set_hudmessage(0, 255, 0, 0.03, 0.20, 0, 6.0, 1.0)
format(Msg,511,"Nick: %s^nPoziom: %i^nKlasa: %s^nPrzedmiot: %s^nWytrzymalosc: %i^nInteligencja: %i^nSila: %i^nZwinnosc: %i^nZrecznosc: %i^nPancerz: %i^n^nYour-Game.PL",pname,player_lvl[index],Race[player_class[index]],player_item_name[index],item_durability[index], player_intelligence[index],player_strength[index], player_dextery[index], player_agility[index], player_armor[index])
show_hudmessage(id, Msg)
}
}
}
}
/* ==================================================================================================== */
public check_magic(id) //Redirect and check which items will be triggered
{
if (player_b_meekstone[id] > 0) item_c4fake(id)
if (player_b_fireball[id] > 0) item_fireball(id)
if (player_b_ghost[id] > 0) item_ghost(id)
if (player_b_eye[id] != 0) item_eye(id)
if (player_b_windwalk[id] > 0) item_windwalk(id)
if (player_b_dagon[id] > 0) item_dagon(id)
if (player_b_theif[id] > 0) item_convertmoney(id)
if (player_b_firetotem[id] > 0) item_firetotem(id)
if (player_b_zamroztotem[id] > 0) item_zamroz(id)
if (player_b_fleshujtotem[id] > 0) item_fleshuj(id)
if (player_b_wywaltotem[id] > 0) item_wywal(id)
if (player_b_kasatotem[id] > 0) item_kasa(id)
if (player_b_kasaqtotem[id] > 0) item_kasaq(id)
if (player_b_hook[id] > 0) item_hook(id)
if (player_b_gravity[id] > 0) item_gravitybomb(id)
if (player_b_fireshield[id] > 0) item_rot(id)
if (player_b_illusionist[id] > 0) item_illusion(id)
if (player_b_money[id] > 0) item_money_shield(id)
//if (player_b_mine[id] > 0) item_mine(id)
if (player_b_teamheal[id] > 0) item_teamshield(id)
if (player_b_heal[id] > 0) item_totemheal(id)
if(player_b_godmode[id] > 0) niesmiertelnoscon(id)
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public dropitem(id)
{
if (player_item_id[id] == 0)
{
hudmsg(id,2.0,"Nie masz przedmiotu do wyrzucenia!")
return PLUGIN_HANDLED
}
if (item_durability[id] <= 0)
{
hudmsg(id,3.0,"Przedmiot stracil swoja wytrzymalosc!")
}
else
{
set_hudmessage(100, 200, 55, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
show_hudmessage(id, "Przedmiot wyrzucony")
}
player_item_id[id] = 0
player_item_name[id] = "Brak"
player_b_gamble[id] = 0 //Because gamble uses reset skills
if (player_b_extrastats[id] > 0)
{
SubtractStats(id,player_b_extrastats[id])
}
if(player_ring[id]>0) SubtractRing(id)
player_ring[id]=0
reset_item_skills(id)
set_task(3.0,"changeskin_id_1",id)
write_hud(id)
set_renderchange(id)
set_gravitychange(id)
if (player_b_oldsen[id] > 0.0)
{
client_cmd(id,"sensitivity %f",player_b_oldsen[id])
player_b_oldsen[id] = 0.0
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public pfn_touch ( ptr, ptd )
{
if (ptd == 0)
return PLUGIN_CONTINUE
new szClassName[32]
if(pev_valid(ptd)){
entity_get_string(ptd, EV_SZ_classname, szClassName, 31)
}
else return PLUGIN_HANDLED
if(equal(szClassName, "fireball"))
{
new owner = pev(ptd,pev_owner)
//Touch
if (get_user_team(owner) != get_user_team(ptr))
{
new Float:origin[3]
pev(ptd,pev_origin,origin)
Explode_Origin(owner,origin,55+player_intelligence[owner],150)
remove_entity(ptd)
}
}
if (ptr != 0 && pev_valid(ptr))
{
new szClassNameOther[32]
entity_get_string(ptr, EV_SZ_classname, szClassNameOther, 31)
if(equal(szClassName, "PowerUp") && equal(szClassNameOther, "player"))
{
entity_set_int(ptd,EV_INT_iuser2,1)
}
if(equal(szClassName, "Mine") && equal(szClassNameOther, "player"))
{
new owner = pev(ptd,pev_owner)
//Touch
if (get_user_team(owner) != get_user_team(ptr))
{
new Float:origin[3]
pev(ptd,pev_origin,origin)
Explode_Origin(owner,origin,15+player_intelligence[owner],150)
remove_entity(ptd)
}
}
if(equal(szClassName, "grenade") && equal(szClassNameOther, "player"))
{
new greModel[64]
entity_get_string(ptd, EV_SZ_model, greModel, 63)
if(equali(greModel, "models/w_smokegrenade.mdl" ))
{
new id = entity_get_edict(ptd,EV_ENT_owner)
if (is_user_connected(id)
&& is_user_connected(ptr)
&& is_user_alive(ptr)
&& player_b_smokehit[id] > 0
&& get_user_team(id) != get_user_team(ptr))
UTIL_Kill(id,ptr,"grenade")
}
}
}
/*if(equal(szClassName, "fireball"))
{
new Float:origin[3]
pev(ptd,pev_origin,origin)
new id = pev(ptd,pev_owner)
Explode_Origin(id,origin,100,player_b_fireball[id] + player_intelligence[id])
remove_entity(ptd)
}*/
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
public Explode_Origin(id,Float:origin[3],damage,dist)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(3)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2]))
write_short(sprite_boom)
write_byte(50)
write_byte(15)
write_byte(0)
message_end()
new Players[32], playerCount, a
get_players(Players, playerCount, "ah")
for (new i=0; i<playerCount; i++)
{
a = Players[i]
new Float:aOrigin[3]
pev(a,pev_origin,aOrigin)
if (get_user_team(id) != get_user_team(a) && get_distance_f(aOrigin,origin) < dist+0.0)
{
new dam = damage-player_dextery[a]*2
change_health(a,-dam,id,"grenade")
Effect_Bleed(a,248)
}
}
}
/* ==================================================================================================== */
public Timed_Healing()
{
new Players[32], playerCount, a
get_players(Players, playerCount, "ah")
for (new i=0; i<playerCount; i++)
{
a = Players[i]
if (player_b_heal[a] <= 0)
continue
change_health(a,player_b_heal[a],0,"")
}
}
/* ==================================================================================================== */
public Timed_Ghost_Check(id)
{
if (ghost_check == true)
{
new Globaltime = floatround(halflife_time())
new Players[32], playerCount, a
get_players(Players, playerCount, "h")
for (new i=0; i<playerCount; i++)
{
a = Players[i]
if (ghoststate[a] == 2 && Globaltime - player_b_ghost[a] > ghosttime[a])
{
ghoststate[a] = 3
ghosttime[a] = 0
set_user_noclip(a,0)
ghost_check = false
new Float:aOrigin[3]
entity_get_vector(a,EV_VEC_origin,aOrigin)
if (PointContents (aOrigin) != -1)
{
user_kill(a,1)
}
else
{
aOrigin[2]+=10
entity_set_vector(a,EV_VEC_origin,aOrigin)
}
}
}
}
}
public reset_item_skills(id){
item_boosted[id] = 0
item_durability[id] = 0
jumps[id] = 0
gravitytimer[id] = 0
player_b_vampire[id] = 0 //Vampyric damage
player_b_damage[id] = 0 //Bonus damage
player_b_money[id] = 0 //Money bonus
player_b_gravity[id] = 0 //Gravity bonus : 1 = best
player_b_inv[id] = 0 //Invisibility bonus
player_b_grenade[id] = 0 //Grenade bonus = 1/chance to kill
player_b_reduceH[id] = 0 //Reduces player health each round start
player_b_theif[id] = 0 //Amount of money to steal
player_b_respawn[id] = 0 //Chance to respawn upon death
player_b_explode[id] = 0 //Radius to explode upon death
player_b_heal[id] = 0 //Ammount of hp to heal each 5 second
player_b_blind[id] = 0 //Chance 1/Value to blind the enemy
player_b_fireshield[id] = 0 //Protects against explode and grenade bonus
player_b_meekstone[id] = 0 //Ability to lay a fake c4 and detonate
player_b_teamheal[id] = 0 //How many hp to heal when shooting a teammate
player_b_redirect[id] = 0 //How much damage will the player redirect
player_b_fireball[id] = 0 //Ability to shot off a fireball value = radius *
player_b_ghost[id] = 0 //Ability to walk through walls
player_b_eye[id] = 0 //Ability to snarkattack
player_b_blink[id] = 0 //Abiliy to use railgun
player_b_windwalk[id] = 0 //Ability to windwalk
player_b_usingwind[id] = 0 //Is player using windwalk
player_b_froglegs[id] = 0
player_b_silent[id] = 0
player_b_dagon[id] = 0 //Abliity to nuke opponents
player_b_sniper[id] = 0 //Ability to kill faster with scout
player_b_jumpx[id] = 0
player_b_smokehit[id] = 0
player_b_extrastats[id] = 0
player_b_firetotem[id] = 0
player_b_zamroztotem[id] = 0
player_b_fleshujtotem[id] = 0
player_b_wywaltotem[id] = 0
player_b_m3master[id] = 0
player_b_dglmaster[id] = 0
player_b_awpmaster[id] = 0
player_b_akmaster[id] = 0
player_b_m4master[id] = 0
player_b_kasatotem[id] = 0
player_b_kasaqtotem[id] = 0
player_b_hook[id] = 0
player_b_darksteel[id] = 0
player_b_illusionist[id] = 0
player_b_mine[id] = 0
player_b_antyarchy[id] = 0
player_b_antymeek[id] = 0
player_b_antyorb[id] = 0
player_b_antyfs[id] = 0
player_b_autobh[id] = 0
player_b_radar[id] = 0
player_b_godmode[id] = 0
wear_sun[id] = 0
player_sword[id] = 0
player_ultra_armor_left[id]=0
player_ultra_armor[id]=0
}
public changeskin_id_1(id)
{
if(zmiana_skinu[id] != 1)
changeskin(id,1)
}
/* =================================================================================================== */
/* =====================================*/
/* ==================================================================================================== */
public auto_help(id)
{
new rnd = random_num(1,5+player_lvl[id])
if (rnd <= 5)
set_hudmessage(0, 180, 0, -1.0, 0.70, 0, 10.0, 5.0, 0.1, 0.5, 11)
if (rnd == 1)
show_hudmessage(id, "Mozesz upuscic przedmiot jak napiszesz /drop i zobaczyc informacje o przedmocie jak napiszesz /przedmiot")
if (rnd == 2)
show_hudmessage(id, "Mozesz uzywac konkretnych przedmiotow za pomoca klawisza E")
if (rnd == 3)
show_hudmessage(id, "Mozesz dostac wiecej pomocy jak napiszesz /pomoc lub zobaczyc wszystkie komendy jak napiszesz /komendy")
if (rnd == 4)
show_hudmessage(id, "Zeby bylo prosciej grac mozesz zbindowac diablo menu (bind klawisz say /menu")
if (rnd == 5)
show_hudmessage(id, "Niektore przedmioty moga byc ulepszone przez Runy. Napisz /rune zeby otworzyc sklep z runami")
}
/* ==================================================================================================== */
public helpme(id)
{
showitem(id,"Helpmenu","Common","None","Dostajesz przedmioty i doswiadczenie za zabijanie innych. Mozesz dostac go tylko wtedy, gdy nie masz na sobie innego<br><br>Aby dowiedziec sie wiecej o swoim przedmiocie napisz /przedmiot lub /item, a jak chcesz wyrzucic napisz /drop<br><br>Niektore przedmoty da sie uzyc za pomoca klawisza E<br><br>Napisz /czary zeby zobaczyc jakie masz staty<br><br>")
}
/* ==================================================================================================== */
public nowe_menu(id) {
new menu = menu_create("\r[DiabloMod] \wMenu serwera", "showmenu");
menu_additem(menu, "Informacje o przedmiocie");
menu_additem(menu, "Upusc obecny przedmiot");
menu_additem(menu, "Informacje o statystykach");
menu_additem(menu, "Zobacz ile potrzebujesz expa na level");
menu_additem(menu, "Wykonaj misje za expa");
menu_additem(menu, "Oddaj swoj item");
menu_additem(menu, "Sklep z Runa");
menu_additem(menu, "Sklep z Mana");
menu_setprop(menu, MPROP_BACKNAME, "Wroc");
menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
menu_display(id, menu);
return PLUGIN_HANDLED;
}
public showmenu(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item) {
case 0: client_cmd(id,"say /item")
case 1: client_cmd(id,"say /drop")
case 2: client_cmd(id,"say /czary")
case 3: client_cmd(id,"say /exp")
case 4: client_cmd(id,"say /questy")
case 5: client_cmd(id,"say /daj")
case 6: client_cmd(id,"say /rune")
case 7: client_cmd(id,"say /mana")
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
/* ==================================================================================================== */
public komendy(id)
{
showitem(id,"Komendy","Common","None","<br>/klasa - zmiana klasy postaci<br>/rune - sklep z runami<br>/przedmiot - informacja o przedmiocie<br>/menu - wyswietla menu diablo mod<br>/czary - stan statystyk<br>/drop - wyrzuca aktualny przedmiot<br>/noweitemy - opis nowych itemow<br>/reset -resetuje twoje staty<br>/savexp - zapisuje lvl,exp,staty<br>/gracze - wyswietla liste graczy<br>Polska zmodyfikowana wersja diablo mod by GuTeK & Miczu<br><br>")
}
/* ==================================================================================================== */
public showitem(id,itemname[],itemvalue[],itemeffect[],Durability[])
{
new diabloDir[64]
new g_ItemFile[64]
new amxbasedir[64]
get_basedir(amxbasedir,63)
format(diabloDir,63,"%s/diablo",amxbasedir)
if (!dir_exists(diabloDir))
{
new errormsg[512]
format(errormsg,511,"Blad: Folder %s/diablo nie mogł być znaleziony. Prosze skopiowac ten folder z archiwum do folderu amxmodx",amxbasedir)
show_motd(id, errormsg, "An error has occured")
return PLUGIN_HANDLED
}
format(g_ItemFile,63,"%s/diablo/item.txt",amxbasedir)
if(file_exists(g_ItemFile))
delete_file(g_ItemFile)
new Data[768]
//Header
format(Data,767,"<html><head><title>Informacje o przedmiocie</title></head>")
write_file(g_ItemFile,Data,-1)
//Background
format(Data,767,"<body text=^"#FFFF00^" bgcolor=^"#000000^" background=^"%sdrkmotr.jpg^">",Basepath)
write_file(g_ItemFile,Data,-1)
//Table stuff
format(Data,767,"<table border=^"0^" cellpadding=^"0^" cellspacing=^"0^" style=^"border-collapse: collapse^" width=^"100%s^"><tr><td width=^"0^">","^%")
write_file(g_ItemFile,Data,-1)
//item name
format(Data,767,"<td width=^"0^"><p align=^"center^"><font face=^"Arial^"><font color=^"#FFCC00^"><b>Przedmiot: </b>%s</font><br>",itemname)
write_file(g_ItemFile,Data,-1)
//item value
format(Data,767,"<font color=^"#FFCC00^"><b><br>Wartosc: </b>%s</font><br>",itemvalue)
write_file(g_ItemFile,Data,-1)
//Durability
format(Data,767,"<font color=^"#FFCC00^"><b><br>Wytrzymalosc: </b>%s</font><br><br>",Durability)
write_file(g_ItemFile,Data,-1)
//Effects
format(Data,767,"<font color=^"#FFCC00^"><b>Efekt:</b> %s</font></font></td>",itemeffect)
write_file(g_ItemFile,Data,-1)
//end
format(Data,767,"</tr></table></body></html>")
write_file(g_ItemFile,Data,-1)
//show window with message
show_motd(id, g_ItemFile, "Informacje Przedmiotu")
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public iteminfo(id)
{
new itemvalue[100]
if (player_item_id[id] <= 10) itemvalue = "Common"
if (player_item_id[id] <= 30)
itemvalue = "Uncommon"
else
itemvalue = "Rare"
if (player_item_id[id] > 42) itemvalue = "Unique"
new itemEffect[200]
new TempSkill[11] //There must be a smarter way
if (player_b_vampire[id] > 0)
{
num_to_str(player_b_vampire[id],TempSkill,10)
add(itemEffect,199,"Kradnie ")
add(itemEffect,199,TempSkill)
add(itemEffect,199," hp jak uderzysz wroga<br>")
}
if (player_b_damage[id] > 0)
{
num_to_str(player_b_damage[id],TempSkill,10)
add(itemEffect,199,"Zadaje ")
add(itemEffect,199,TempSkill)
add(itemEffect,199," dodatkowe obrazenia za kazdym razem jak uderzysz wroga<br>")
}
if (player_b_money[id] > 0)
{
num_to_str(player_b_money[id],TempSkill,10)
add(itemEffect,199,"Dadaje ")
add(itemEffect,199,TempSkill)
add(itemEffect,199," zlota i w kazdej rundzie na start otrzymasz 50 zlota. Mozesz takze uzyc tego przedmiotu by zredukowac normalne obrazenia o 50%<br>")
}
if (player_b_gravity[id] > 0)
{
num_to_str(player_b_gravity[id],TempSkill,10)
add(itemEffect,199,"Wysoki skok jest zredukowany do ")
add(itemEffect,199,TempSkill)
add(itemEffect,199,". Uzyj tego przedmiotu jak bedziesz w powietrzu. Uszkodzenia zaleza od wysokosci skoku i twojej sily<br>")
}
if(player_b_godmode[id] > 0)
{
num_to_str(player_b_godmode[id],TempSkill,10)
add(itemEffect,199,"Uzyj tego przedmiotu, aby stac sie niesmiertelnym na ")
add(itemEffect,199,TempSkill)
add(itemEffect,199," sek.<br>")
}
if (player_b_inv[id] > 0)
{
num_to_str(player_b_inv[id],TempSkill,10)
add(itemEffect,199,"Twoja widocznosc jest zredukowana z 255 do ")
add(itemEffect,199,TempSkill)
add(itemEffect,199,"<br>")
}
if (player_b_grenade[id] > 0)
{
num_to_str(player_b_grenade[id],TempSkill,10)
add(itemEffect,199,"Masz 1/")
add(itemEffect,199,TempSkill)
add(itemEffect,199," szanse do natychmiastowego zabicia HE<br>")
}
if (player_b_reduceH[id] > 0)
{
num_to_str(player_b_reduceH[id],TempSkill,10)
add(itemEffect,199,"Twoje zdrowie jest zredukowane o ")
add(itemEffect,199,TempSkill)
add(itemEffect,199," z kazdej rundy, sila nie liczy sie tu<br>")
}
if (player_b_theif[id] > 0)
{
num_to_str(player_b_theif[id],TempSkill,10)
add(itemEffect,199,"Masz 1/7 szans na okradniecie kogos z")
add(itemEffect,199,TempSkill)
add(itemEffect,199," zlota, za kazdym razem gdy uderzysz swojego wroga. Mozesz uzyc tego przedmiotu zeby zamienic 1000 zlota na 15 HP<br>")
}
if (player_b_respawn[id] > 0)
{
num_to_str(player_b_respawn[id],TempSkill,10)
add(itemEffect,199,"Masz 1/")
add(itemEffect,199,TempSkill)
add(itemEffect,199," szanse do odrodzenia sie po zgonie<br>")
}
if (player_b_explode[id] > 0)
{
num_to_str(player_b_explode[id],TempSkill,10)
add(itemEffect,199,"Gdy umierasz wybuchniesz w promieniu ")
add(itemEffect,199,TempSkill)
add(itemEffect,199," zadaje 75 obrazen wokol ciebie - im wiecej masz inteligencji tym wiekszy zasieg wybuchu<br>")
}
if (player_b_heal[id] > 0)
{
num_to_str(player_b_heal[id],TempSkill,10)
add(itemEffect,199,"Zyskasz +")
add(itemEffect,199,TempSkill)
add(itemEffect,199," HP co kazde 5 sekund. Uzyj aby polozyc leczacy totem na 7 sekund<br>")
}
if (player_b_gamble[id] > 0)
{
num_to_str(player_b_gamble[id],TempSkill,10)
add(itemEffect,199,"Zyskasz losowa umiejetnosc na poczatku rundy, Masz na to 1/")
add(itemEffect,199,TempSkill)
add(itemEffect,199," szans<br>")
}
if (player_b_blind[id] > 0)
{
num_to_str(player_b_blind[id],TempSkill,10)
add(itemEffect,199,"Masz 1/")
add(itemEffect,199,TempSkill)
add(itemEffect,199,"szans zeby twoj przeciwnik stracil wzrok<br>")
}
if (player_b_fireshield[id] > 0)
{
num_to_str(player_b_fireshield[id],TempSkill,10)
add(itemEffect,199,"Nie mozesz byc zabity przez chaos orb, hell orb albo firerope<br>")
add(itemEffect,199,"Uzyj, zeby zadac obrazenia, spowolnic i oslepic kazdego wroga wokol ciebie<br>")
}
if (player_b_meekstone[id] > 0)
{
num_to_str(player_b_meekstone[id],TempSkill,10)
add(itemEffect,199,"Mozesz polozyc falszywa bombe uzywajac klawisz E. Gdy przeciwna druzyna zblizy sie do niej, wybuchnie zadajac obrazenia<br>")
}
if(player_b_radar[id] > 0)
{
add(itemEffect, 199, "Widzisz wrogow na radarze.<br>");
}
if (player_b_teamheal[id] > 0)
{
num_to_str(player_b_teamheal[id],TempSkill,10)
add(itemEffect,199,"Uzyj, aby aktywowac tarcze na graczu.<br>")
add(itemEffect,199," Cale uszkodzenia tarczy sa odzwierciedlone. Umrzesz jezeli zostaniesz trafiony")
}
if (player_b_redirect[id] > 0)
{
num_to_str(player_b_redirect[id],TempSkill,10)
add(itemEffect,199,"Obrazenia sa zredukowane o")
add(itemEffect,199,TempSkill)
add(itemEffect,199," hitpoints<br>")
}
if (player_b_fireball[id] > 0)
{
num_to_str(player_b_fireball[id],TempSkill,10)
add(itemEffect,199,"Mozesz wyczarowac ognista kule uzywajac tego przedmiotu. Zabije ona ludzi w zasiegu ")
add(itemEffect,199,TempSkill)
add(itemEffect,199,". Im wiecej masz inteligencji tym wieksze zadasz obrazenia<br>")
}
if (player_b_ghost[id] > 0)
{
num_to_str(player_b_ghost[id],TempSkill,10)
add(itemEffect,199,"Uzyj tego przedmiotu, aby przenikac przez sciany przez")
add(itemEffect,199,TempSkill)
add(itemEffect,199," sekund<br>")
}
if(player_b_autobh[id] > 0)
{
add(itemEffect,199,"Posiadasz Auto Bunny Hopa. Przytrzymaj spacje.")
}
if (player_b_eye[id] > 0)
{
add(itemEffect,199,"Uzyj, aby polozyc magiczne oko(da sie tylko raz podlozyc) i uzyj ponownie zeby wlaczyc i wylaczyc je")
}
if (player_b_blink[id] > 0)
{
add(itemEffect,199,"Mozesz teleportowac sie przez uzywanie alternatywnego ataku twoim nozem (PPM). Im wiecej masz inteligencji tym teleportujesz sie na wiekszy dystans")
}
if (player_b_windwalk[id] > 0)
{
num_to_str(player_b_windwalk[id],TempSkill,10)
add(itemEffect,199,"Uzyj, zeby stac sie niewidzialny. W tym czasie nie bedziesz mogl atakowac, ale za to staniesz sie szybszy na ")
add(itemEffect,199,TempSkill)
add(itemEffect,199," sekund<br>")
}
if (player_b_froglegs[id] > 0)
{
add(itemEffect,199,"Kucnij na 3 sekundy, a zrobisz dlugi skok")
}
if (player_b_dagon[id] == 1)
{
add(itemEffect,199,"Uzyj, zeby udezyc wroga ognistym promieniem - mozesz ulepszyc ten przedmiot kupujac odpowiednie runy ")
add(itemEffect,199,"Inteligencja zwiekszy zasieg przedmiotu")
}
if (player_b_sniper[id] > 0)
{
num_to_str(player_b_sniper[id],TempSkill,10)
add(itemEffect,199,"Masz 1/")
add(itemEffect,199,TempSkill)
add(itemEffect,199,"na natychmiastowe zabicie przeciwnika ze scouta<br>")
}
if (player_b_awpmaster[id] > 0)
{
num_to_str(player_b_awpmaster[id],TempSkill,10)
add(itemEffect,199,"Masz 1/")
add(itemEffect,199,TempSkill)
add(itemEffect,199,"na natychmiastowe zabicie przeciwnika z awp<br>")
}
if (player_b_dglmaster[id] > 0)
{
num_to_str(player_b_dglmaster[id],TempSkill,10)
add(itemEffect,199,"Masz 1/")
add(itemEffect,199,TempSkill)
add(itemEffect,199,"na natychmiastowe zabicie przeciwnika z deagla<br>")
}
if (player_b_m4master[id] > 0)
{
num_to_str(player_b_m4master[id],TempSkill,10)
add(itemEffect,199,"Masz 1/")
add(itemEffect,199,TempSkill)
add(itemEffect,199,"na natychmiastowe zabicie przeciwnika z m4a1<br>")
}
if (player_b_m3master[id] > 0)
{
num_to_str(player_b_m3master[id],TempSkill,10)
add(itemEffect,199,"Masz 1/")
add(itemEffect,199,TempSkill)
add(itemEffect,199,"na natychmiastowe zabicie przeciwnika z m3<br>")
}
if (player_b_akmaster[id] > 0)
{
num_to_str(player_b_akmaster[id],TempSkill,10)
add(itemEffect,199,"Masz 1/")
add(itemEffect,199,TempSkill)
add(itemEffect,199,"na natychmiastowe zabicie przeciwnika z ak47<br>")
}
if (player_b_jumpx[id] > 0)
{
num_to_str(player_b_jumpx[id],TempSkill,10)
add(itemEffect,199,"Mozesz podskoczyc ")
add(itemEffect,199,TempSkill)
add(itemEffect,199," razy w loscie, uzywajac klawisza, ktorym skaczesz<br>")
}
if (player_b_smokehit[id] > 0)
{
add(itemEffect,199,"Twoje granaty dymne zabija natychmiast wroga jezeli go dotknie")
}
if (player_b_extrastats[id] > 0)
{
num_to_str(player_b_extrastats[id],TempSkill,10)
add(itemEffect,199,"Zyskasz +")
add(itemEffect,199,TempSkill)
add(itemEffect,199," do wszystkich statystyk majac ten przedmiot<br>")
}
if (player_b_firetotem[id] > 0)
{
num_to_str(player_b_firetotem[id],TempSkill,10)
add(itemEffect,199,"Uzyj tego przedmiotu, zeby polozyc eksplodujacy totem na ziemie. Totem wybuchnie po 7 sekundach. I zapali osoby w zasiegu ")
add(itemEffect,199,TempSkill)
}
if (player_b_zamroztotem[id] > 0)
{
num_to_str(player_b_zamroztotem[id],TempSkill,10)
add(itemEffect,199,"Uzyj tego przedmiotu, zeby polozyc zamrazajacy totem na ziemie.")
add(itemEffect,199,TempSkill)
}
if (player_b_fleshujtotem[id] > 0)
{
num_to_str(player_b_fleshujtotem[id],TempSkill,10)
add(itemEffect,199,"Uzyj tego przedmiotu, zeby polozyc oslepiajacy totem na ziemie.")
add(itemEffect,199,TempSkill)
}
if (player_b_wywaltotem[id] > 0)
{
num_to_str(player_b_wywaltotem[id],TempSkill,10)
add(itemEffect,199,"Uzyj tego przedmiotu, zeby polozyc totem wywalajacy bron przeciwnikowi.")
add(itemEffect,199,TempSkill)
}
if (player_b_kasatotem[id] > 0)
{
num_to_str(player_b_kasatotem[id],TempSkill,10)
add(itemEffect,199,"Uzyj tego przedmiotu, zeby polozyc totem dodajacy tobie i teamowi kase.")
add(itemEffect,199,TempSkill)
}
if (player_b_kasaqtotem[id] > 0)
{
num_to_str(player_b_kasaqtotem[id],TempSkill,10)
add(itemEffect,199,"Uzyj tego przedmiotu, zeby polozyc totem zabierajacy kase wrogowi.")
add(itemEffect,199,TempSkill)
}
if (player_b_hook[id] > 0)
{
num_to_str(player_b_hook[id],TempSkill,10)
add(itemEffect,199,"Uzyj, zeby wyrzucic hak na zasieg 600 jezeli kogos trafisz przyciagnie go do siebie. Im wiecej masz inteligencji tym szybszy bedzie hak")
}
if (player_b_darksteel[id] > 0)
{
new ddam = floatround(player_strength[id]*2*player_b_darksteel[id]/10.0)*3
num_to_str(player_b_darksteel[id],TempSkill,10)
add(itemEffect,199,"Dostales 15 + 0.")
add(itemEffect,199,TempSkill)
add(itemEffect,199,"*sila: ")
num_to_str(ddam,TempSkill,10)
add(itemEffect,199,TempSkill)
add(itemEffect,199," dodatkowych obrazen kiedy uderzysz swojego wroga od tylu ")
}
if (player_b_antyarchy[id] > 0)
{
add(itemEffect,199,"Jestes odporny na wszystkie rodzaje archow")
}
if (player_b_antyarchy[id] > 0)
{
add(itemEffect,199,"Jestes odporny na meekstone")
}
if (player_b_antyorb[id] > 0)
{
add(itemEffect,199,"Jestes odporny na wybuchy po smierci")
}
if (player_b_antyfs[id] > 0)
{
add(itemEffect,199,"Jestes odporny na fire shielda")
}
if (player_b_illusionist[id] > 0)
{
add(itemEffect,199,"Uzyj tego przedmiotu, zeby stac sie niewiedzialnym przez 7sekund. Kazde obrazenia jak bedziesz niewidzialny zabija cie")
}
if (player_b_mine[id] > 0)
{
add(itemEffect,199,"Uzyj, zeby polozyc niewidzialna mine. Kiedy mina ekspoduje zada 50hp+obrazenia magia. 3 miny mozesz polozyc w jednej rundzie")
}
if (player_item_id[id]==66)
{
add(itemEffect,199,"Wygladasz jak przeciwnik! Postaraj sie nie dac zdemaskowac.")
}
if (player_ultra_armor[id]>0)
{
add(itemEffect,199,"Masz szanse, ze pocisk odbije sie od twojego pancerza")
}
new Durability[10]
num_to_str(item_durability[id],Durability,9)
if (equal(itemEffect,"")) showitem(id,"None","None","Zabij kogos, aby dostac item albo kup (/rune)","None")
if (!equal(itemEffect,"")) showitem(id,player_item_name[id],itemvalue,itemEffect,Durability)
}
/* ==================================================================================================== */
public award_item(id, itemnum)
{
if (player_item_id[id] != 0)
return PLUGIN_HANDLED
set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 4.0, 0.2, 0.3, 5)
new rannum = random_num(1,125)
new maxfind = player_agility[id]
if (maxfind > 15) maxfind = 15
new rf = random_num(1,25-maxfind)
if (itemnum > 0) rannum = itemnum
else if (itemnum < 0) return PLUGIN_HANDLED
if (rf == 3 && itemnum == 0) //We found a rare item
{
award_unique_item(id)
rannum = -1
}
//Set durability, make this item dependant?
item_durability[id] = 250
switch(rannum)
{
case 1:
{
player_item_name[id] = "Krotki Miecz"
player_item_id[id] = rannum
player_b_damage[id] = random_num(1,3)
show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id])
}
case 2:
{
player_item_name[id] = "Sejmitar"
player_item_id[id] = rannum
player_b_damage[id] = random_num(3,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i ",player_item_name[id],player_b_damage[id])
}
case 3:
{
player_item_name[id] = "Szabla"
player_item_id[id] = rannum
player_b_damage[id] = random_num(6,10)
show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i ",player_item_name[id],player_b_damage[id])
}
case 4:
{
player_item_name[id] = "Berlo Wampira"
player_item_id[id] = rannum
player_b_vampire[id] = random_num(1,4)
show_hudmessage(id, "Znalazles przedmiot: %s :: wysysasz %i hp przeciwnikowi",player_item_name[id],player_b_vampire[id])
}
case 5:
{
player_item_name[id] = "Wielkie Berlo Wampira"
player_item_id[id] = rannum
player_b_vampire[id] = random_num(4,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: wysysasz %i hp przeciwnikowi",player_item_name[id],player_b_vampire[id])
}
case 6:
{
player_item_name[id] = "Bojowe Berlo Wampira"
player_item_id[id] = rannum
player_b_vampire[id] = random_num(6,9)
show_hudmessage(id, "Znalazles przedmiot: %s :: wysysasz %i hp przeciwnikowi",player_item_name[id],player_b_vampire[id])
}
case 7:
{
player_item_name[id] = "Brazowa Szarfa"
player_item_id[id] = rannum
player_b_money[id] = random_num(150,500)
show_hudmessage(id, "Znalazles przedmiot: %s :: dostajesz %i zloto w kazdej rundzie. Uzyj, zeby chronil cie.",player_item_name[id],player_b_money[id]+player_intelligence[id]*50)
}
case 8:
{
player_item_name[id] = "Srebna Szarfa"
player_item_id[id] = rannum
player_b_money[id] = random_num(500,1200)
show_hudmessage(id, "Znalazles przedmiot: %s :: dostajesz %i zloto w kazdej rundzie. Uzyj, zeby chronil cie.",player_item_name[id],player_b_money[id]+player_intelligence[id]*50)
}
case 9:
{
player_item_name[id] = "Zlota Szarfa"
player_item_id[id] = rannum
player_b_money[id] = random_num(1200,3000)
show_hudmessage(id, "Znalazles przedmiot: %s :: dostajesz %i zloto w kazdej rundzie. Uzyj, zeby chronil cie.",player_item_name[id],player_b_money[id]+player_intelligence[id]*50)
}
case 10:
{
player_item_name[id] = "Skrzydla Aniola"
player_item_id[id] = rannum
player_b_gravity[id] = random_num(1,5)
if (is_user_alive(id))
set_gravitychange(id)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i premia wyzszego skoku - Wcisnij e zeby uzyc",player_item_name[id],player_b_gravity[id])
}
case 11:
{
player_item_name[id] = "Skrzydla Archaniola"
player_item_id[id] = rannum
player_b_gravity[id] = random_num(5,9)
if (is_user_alive(id))
set_gravitychange(id)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i premia wyzszego skoku - Wcisnij e zeby uzyc",player_item_name[id],player_b_gravity[id])
}
case 12:
{
player_item_name[id] = "Buty Niewidzialnosci"
player_item_id[id] = rannum
player_b_inv[id] = random_num(150,200)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i premii niewidocznosci",player_item_name[id],255-player_b_inv[id])
}
case 13:
{
player_item_name[id] = "Nogawice Niewidzialnosci"
player_item_id[id] = rannum
player_b_inv[id] = random_num(110,150)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i premii niewidocznosci",player_item_name[id],255-player_b_inv[id])
}
case 14:
{
player_item_name[id] = "Pancerz Niewidzialnosci"
player_item_id[id] = rannum
player_b_inv[id] = random_num(70,110)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i premii niewidocznosci",player_item_name[id],255-player_b_inv[id])
}
case 15:
{
player_item_name[id] = "Firerope"
player_item_id[id] = rannum
player_b_grenade[id] = random_num(3,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: +1/%i szans natychmiastowego zabicia granatem HE",player_item_name[id],player_b_grenade[id])
}
case 16:
{
player_item_name[id] = "Ognisty Amulet"
player_item_id[id] = rannum
player_b_grenade[id] = random_num(2,4)
show_hudmessage(id, "Znalazles przedmiot: %s :: +1/%i szans natychmiastowego zabicia granatem HE",player_item_name[id],player_b_grenade[id])
}
case 17:
{
player_item_name[id] = "Pierscien Niewidzialnosci"
player_item_id[id] = rannum
player_b_reduceH[id] = 95
player_b_inv[id] = 8
item_durability[id] = 100
if (is_user_alive(id)) set_user_health(id,5)
show_hudmessage(id, "Znalazles przedmiot: %s :: Masz 5 zycia i noz, jestes prawie niewidoczny",player_item_name[id])
}
case 18:
{
player_item_name[id] = "Buty Zlodzieja"
player_item_id[id] = rannum
player_b_theif[id] = random_num(500,1000)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/5 szans by krasc zloto%i za kazdym razem jak uderzasz. Uzyj zeby zamienic zloto w zycia",player_item_name[id],player_b_theif[id])
}
case 19:
{
player_item_name[id] = "Pierscien Fenixa"
player_item_id[id] = rannum
player_b_respawn[id] = random_num(3,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do ponownego odrodzenia sie po smierci",player_item_name[id],player_b_respawn[id])
}
case 20:
{
player_item_name[id] = "Pierscien Czarnoksieznika"
player_item_id[id] = rannum
player_b_respawn[id] = random_num(2,3)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do ponownego odrodzenia sie po smierci",player_item_name[id],player_b_respawn[id])
}
case 21:
{
player_item_name[id] = "Klejnot Chaosu"
player_item_id[id] = rannum
player_b_explode[id] = random_num(150,275)
show_hudmessage(id, "Znalazles przedmiot: %s :: Wybuchniesz zaraz po smierci w promieniu %i",player_item_name[id],player_b_explode[id])
}
case 22:
{
player_item_name[id] = "Klejnot Hellu"
player_item_id[id] = rannum
player_b_explode[id] = random_num(200,400)
show_hudmessage(id, "Znalazles przedmiot: %s :: Wybuchniesz zaraz po smierci w promieniu %i",player_item_name[id],player_b_explode[id])
}
case 23:
{
player_item_name[id] = "Zlota szkatulka"
player_item_id[id] = rannum
player_b_heal[id] = random_num(5,10)
show_hudmessage(id, "Znalazles przedmiot: %s :: Regeneruje %i hp co kazde 5 sekund. Uzyj, zeby polozyc totem ktory bedzie leczyl wszystkich w zasiegu %i",player_item_name[id],player_b_heal[id],player_b_heal[id])
}
case 24:
{
player_item_name[id] = "Totem Leczniczy"
player_item_id[id] = rannum
player_b_heal[id] = random_num(10,20)
show_hudmessage(id, "Znalazles przedmiot: %s :: Regeneruje %i hp co kazde 5 sekund. Uzyj, zeby polozyc totem ktory bedzie leczyl wszystkich w zasiegu %i",player_item_name[id],player_b_heal[id],player_b_heal[id])
}
case 25:
{
player_item_name[id] = "Wiekszy Totem Leczniczy"
player_item_id[id] = rannum
player_b_heal[id] = random_num(20,35)
show_hudmessage(id, "Znalazles przedmiot: %s :: Regeneruje %i hp co kazde 5 sekund. Uzyj, zeby polozyc totem ktory bedzie leczyl wszystkich w zasiegu %i",player_item_name[id],player_b_heal[id],player_b_heal[id])
}
case 26:
{
player_item_name[id] = "Szansa Szczescia"
player_item_id[id] = rannum
player_b_gamble[id] = random_num(2,3)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i daje ci dodatkowa premie w kazdej rundzie",player_item_name[id],player_b_gamble[id])
}
case 27:
{
player_item_name[id] = "Wieksza Szansa Szczescia"
player_item_id[id] = rannum
player_b_gamble[id] = random_num(4,5)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i daje ci dodatkowa premie w kazdej rundzie",player_item_name[id],player_b_gamble[id])
}
case 28:
{
player_item_name[id] = "Amulet Boga Slonca"
player_item_id[id] = rannum
player_b_blind[id] = random_num(6,9)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans na utrate wzroku kiedy uszkadzasz wroga",player_item_name[id],player_b_blind[id])
}
case 29:
{
player_item_name[id] = "Miecz Boga Slonca"
player_item_id[id] = rannum
player_b_blind[id] = random_num(2,5)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans na utrate wzroku kiedy uszkadzasz wroga",player_item_name[id],player_b_blind[id])
}
case 30:
{
player_item_name[id] = "Pochodnia Piekielnego Ognia"
player_item_id[id] = rannum
player_b_fireshield[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Chroni od natychmiastowego zabicia HE i orbami. Wcisnij e zeby go uzyc",player_item_name[id],player_b_fireshield[id])
}
case 31:
{
player_item_name[id] = "Cichobiegi"
player_item_id[id] = rannum
player_b_silent[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Twoj bieg cichnie",player_item_name[id])
}
case 32:
{
player_item_name[id] = "Kamien Smierci"
player_item_id[id] = rannum
player_b_meekstone[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby podlozyc sztuczna bombe",player_item_name[id])
}
case 33:
{
player_item_name[id] = "Medycyna Kompana"
player_item_id[id] = rannum
player_b_teamheal[id] = random_num(10,20)
show_hudmessage(id, "Znalazles przedmiot: %s :: Strzel do swojego, aby uleczyc %i hp - wcisnij E, zeby uzyc",player_item_name[id],player_b_teamheal[id])
}
case 34:
{
player_item_name[id] = "Wieksza Medycyna Kompana"
player_item_id[id] = rannum
player_b_teamheal[id] = random_num(20,30)
show_hudmessage(id, "Znalazles przedmiot: %s :: Strzel do swojego, aby uleczyc %i hp - wcisnij E, zeby uzyc",player_item_name[id],player_b_teamheal[id])
}
case 35:
{
player_item_name[id] = "Pikowana Zbroja"
player_item_id[id] = rannum
player_b_redirect[id] = random_num(3,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i Obniza uszkodzenia zadawane graczowi",player_item_name[id],player_b_redirect[id])
}
case 36:
{
player_item_name[id] = "Mitril Armor"
player_item_id[id] = rannum
player_b_redirect[id] = random_num(6,11)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i Obniza uszkodzenia zadawane graczowi",player_item_name[id],player_b_redirect[id])
}
case 37:
{
player_item_name[id] = "Skorzana Zbroja"
player_item_id[id] = rannum
player_b_redirect[id] = random_num(10,15)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i Obniza uszkodzenia zadawane graczowi",player_item_name[id],player_b_redirect[id])
}
case 38:
{
player_item_name[id] = "Rozdzka"
player_item_id[id] = rannum
player_b_fireball[id] = random_num(50,100)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uszkadza wszystko w promieniu %i",player_item_name[id],player_b_fireball[id])
}
case 39:
{
player_item_name[id] = "Cisowa Rozdzka"
player_item_id[id] = rannum
player_b_fireball[id] = random_num(100,200)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uszkadza wszystko w promieniu %i",player_item_name[id],player_b_fireball[id])
}
case 40:
{
player_item_name[id] = "Dusza Zmarlego Czarodzieja"
player_item_id[id] = rannum
player_b_ghost[id] = random_num(3,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: Mozesz przenikac przez sciany przez %i sekund",player_item_name[id],player_b_ghost[id])
}
case 41:
{
player_item_name[id] = "Oko Boga"
player_item_id[id] = rannum
player_b_eye[id] = -1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj aby polozyc kamere i uzyj ponownie zeby uzyc i zatrzymac",player_item_name[id])
}
case 42:
{
player_item_name[id] = "Magiczny Noz"
player_item_id[id] = rannum
player_b_blink[id] = floatround(halflife_time())
show_hudmessage(id, "Znalazles przedmiot: %s :: Twoj noz pozwala ci teleportowac sie raz na 3 sekundy",player_item_name[id])
}
case 43:
{
player_item_name[id] = "Oslona Natury"
player_item_id[id] = rannum
player_b_windwalk[id] = random_num(4,7)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj a staniesz sie niewidzialny przez %i sekund i w tym czasie nie mozesz atakowac ale za to szybko biegasz",player_item_name[id],player_b_windwalk[id])
}
case 44:
{
player_item_name[id] = "Wywazony Noz"
player_item_id[id] = rannum
player_sword[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: zadajesz wieksze obrazenia nozem",player_item_name[id])
}
case 45:
{
player_item_name[id] = "Magiczne Kucniecie"
player_item_id[id] = rannum
player_b_froglegs[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Kucnij na 3 sekundy, a zrobisz dlugi skok",player_item_name[id])
}
case 46:
{
player_item_name[id] = "Dagon I"
player_item_id[id] = rannum
player_b_dagon[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj zeby uderzyc twojego przeciwnika piorunem ognia",player_item_name[id])
}
case 47:
{
player_item_name[id] = "Tajemnica Mlodszego Snajpera"
player_item_id[id] = rannum
player_b_sniper[id] = random_num(3,4)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do natychmiastowego zabicia scoutem",player_item_name[id],player_b_sniper[id])
}
case 48:
{
player_item_name[id] = "Tajemnica Starszego Snajpera"
player_item_id[id] = rannum
player_b_sniper[id] = random_num(1,2)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do natychmiastowego zabicia scoutem",player_item_name[id],player_b_sniper[id])
}
case 49:
{
player_item_name[id] = "Lekkie Plytowe Buty"
player_item_id[id] = rannum
player_b_jumpx[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Mozesz zrobic podwojny skok w powietrzu",player_item_name[id],player_b_sniper[id])
}
case 50:
{
player_item_name[id] = "Zmijowy Amulet"
player_item_id[id] = rannum
player_b_smokehit[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Jezeli uderzasz kogos granatami dymym, to on zginie",player_item_name[id])
}
case 51:
{
player_item_name[id] = "Zwoj Iniffusa"
player_item_id[id] = rannum
player_b_extrastats[id] = random_num(1,3)
BoostStats(id,player_b_extrastats[id])
show_hudmessage(id, "Znalazles przedmiot: %s :: Zyskasz +%i do wszystkich statystyk",player_item_name[id],player_b_extrastats[id])
}
case 52:
{
player_item_name[id] = "Relikt Nokazan"
player_item_id[id] = rannum
player_b_firetotem[id] = random_num(250,400)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby polozyc wybuchowy totem ognia",player_item_name[id])
}
case 53:
{
player_item_name[id] = "Magiczny Hak"
player_item_id[id] = rannum
player_b_hook[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby rzucic hakiem",player_item_name[id])
}
case 54:
{
player_item_name[id] = "Kolcze Rekawice"
player_item_id[id] = rannum
player_b_darksteel[id] = random_num(1,5)
show_hudmessage(id, "Znalazles przedmiot: %s :: Dodatkowe uszkodzenia, gdy trafisz kogos od tyłu",player_item_name[id])
}
case 55:
{
player_item_name[id] = "Lekkie Rekawice"
player_item_id[id] = rannum
player_b_darksteel[id] = random_num(7,9)
show_hudmessage(id, "Znalazles przedmiot: %s :: Dodatkowe uszkodzenia, gdy trafisz kogos od tyłu",player_item_name[id])
}
case 56:
{
player_item_name[id] = "Tajemnica Ninji"
player_item_id[id] = rannum
player_b_illusionist[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby stac sie niewidoczny dla wszystkich",player_item_name[id])
}
case 57:
{
player_item_name[id] = "Miny Zabojczyni"
player_item_id[id] = rannum
player_b_mine[id] = 3
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, zeby polozyc niewidzialna mine",player_item_name[id])
}
case 58:
{
player_item_name[id] = "Pierscien Ninji"
player_item_id[id] = rannum
player_b_blink[id] = floatround(halflife_time())
player_b_froglegs[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Twoj noz pozwala ci teleportowac sie co 3 sekundy i zrobic dlugi skok jak kucniesz na 3 sekundy",player_item_name[id])
}
case 59:
{
player_item_name[id] = "Pierscien Czarodziejki"
player_item_id[id] = rannum
player_ring[id]=1
player_b_fireball[id] = random_num(50,80)
show_hudmessage(id, "Znalazles przedmiot : %s :: Ten przedmiot dodaje ci +5 inteligencji i robi ognista kule, wcisnij E aby urzyc",player_item_name[id])
}
case 60:
{
player_item_name[id] = "Pierscien Nekromanty"
player_item_id[id] = rannum
player_b_respawn[id] = random_num(2,4)
player_b_vampire[id] = random_num(3,5)
show_hudmessage(id, "Znalazles przedmiot : %s :: Dzieki temu itemowi masz szanse na ponowne odrodzenie sie i wysysasz zycie wrogowi",player_item_name[id])
}
case 61:
{
player_item_name[id] = "Pierscien Barbarzyncy"
player_item_id[id] = rannum
player_b_explode[id] = random_num(120,330)
player_ring[id]=2
show_hudmessage(id, "Znalazles przedmiot : %s :: Ten item dodaje ci +5 sily i jak zginiesz wybuchasz",player_item_name[id])
}
case 62:
{
player_item_name[id] = "Pierscien Paladyna"
player_item_id[id] = rannum
player_b_redirect[id] = random_num(7,17)
player_b_blind[id] = random_num(3,4)
show_hudmessage(id, "Znalazles przedmiot : %s :: Redukuje normalne obrazenia i masz szanse na oslepienie wroga",player_item_name[id])
}
case 63:
{
player_item_name[id] = "Pierscien Druida"
player_item_id[id] = rannum
player_b_grenade[id] = random_num(1,4)
player_b_heal[id] = random_num(20,35)
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz szanse na natychmiastowe zabicie z HE. Twoje hp bedzie sie regenerowac co 5 sekund oraz mozesz polozyc leczacy totem na 7 sekund",player_item_name[id])
}
case 64:
{
player_item_name[id] = "Pierscien Zabojczyni"
player_item_id[id] = rannum
player_b_jumpx[id] = 1
player_ring[id]=3
show_hudmessage(id, "Znalazles przedmiot : %s :: Dostajesz +5 do zwinnosci. Mozesz zrobic podwojny skok w powietrzu",player_item_name[id])
}
case 65:
{
player_item_name[id] = "Oko Kota"
player_item_id[id] = rannum
wear_sun[id] = 1
show_hudmessage (id, "Znalazles przedmiot : %s :: Flashbangi na ciebie nie dzialaja",player_item_name[id])
}
case 66:
{
player_item_name[id] = "Ubranie Wroga"
player_item_id[id] = 66
changeskin(id,0)
show_hudmessage (id, "Znalazles przedmiot : %s :: Wygladasz jak przeciwnik",player_item_name[id])
}
case 67:
{
player_item_name[id] = "Pierscieniowa Zbroja"
player_item_id[id] = 67
player_ultra_armor[id]=random_num(3,6)
player_ultra_armor_left[id]=player_ultra_armor[id]
show_hudmessage (id, "Znalazles przedmiot : %s :: Twoj pancerz moze odbic do %i pociskow",player_item_name[id],player_ultra_armor[id])
}
case 68:
{
player_item_name[id] = "Cwiekowana Zbroja"
player_item_id[id] = 68
player_ultra_armor[id]=random_num(7,11)
player_ultra_armor_left[id]=player_ultra_armor[id]
show_hudmessage (id, "Znalazles przedmiot : %s :: Twoj pancerz moze odbic do %i pociskow",player_item_name[id],player_ultra_armor[id])
}
case 69:
{
player_item_name[id] = "Oko Khalima"
player_item_id[id] = rannum
player_b_radar[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Widzisz wrogow na radarze", player_item_name[id])
}
case 70:
{
player_item_name[id] = "Pierscien Skoczka"
player_item_id[id] = rannum
player_b_autobh[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Posiadasz auto bunny hopa. Przytrzymaj spacje.", player_item_name[id])
}
case 71:
{
player_item_name[id] = "Myrmidonskie Nagolenice"
player_item_id[id] = rannum
player_b_silent[id] = 1
set_user_maxspeed(id, get_user_maxspeed(id)+get_user_maxspeed(id)/2)
show_hudmessage (id, "Znalazles przedmiot : %s :: Nie slychac twojego biegu oraz biegasz szybciej",player_item_name[id],player_b_silent[id])
}
case 72:
{
player_item_name[id] = "Buty z kosci"
player_item_id[id] = rannum
player_b_jumpx[id] = 4
set_user_gravity(id, 600.0)
show_hudmessage (id, "Znalazles przedmiot : %s :: Mozesz zrobic 4 skoki w powietrzu oraz masz zmniejszona grawitacje",player_item_name[id],player_b_jumpx[id])
}
case 73:
{
player_item_name[id] = "Buty Skarabeusza"
player_item_id[id] = rannum
player_b_inv[id] = 95
set_user_maxspeed(id, get_user_maxspeed(id)+get_user_maxspeed(id)/4)
show_hudmessage (id, "Znalazles przedmiot : %s :: Twoja widzialnosc jest zmniejszona do 95 oraz biegasz szybciej",player_item_name[id],player_b_inv[id])
}
case 74:
{
player_item_name[id] = "Hydrze Ostrze"
player_item_id[id] = rannum
player_b_inv[id] = 155
player_b_damage[id] = 20
show_hudmessage (id, "Znalazles przedmiot : %s :: Twoja widzialnosc jest zmniejszona do 155 oraz posiadasz dodatkowe +20 obrazen",player_item_name[id],player_b_inv[id],player_b_damage[id])
}
case 75:
{
player_item_name[id] = "Pierscien Expa"
player_item_id[id] = rannum
new xp_award = get_cvar_num("diablo_xpbonus")*2
show_hudmessage (id, "Znalazles przedmiot : %s :: Twoj exp jest podwojny i wynosi: %i",player_item_name[id],xp_award)
}
case 76:
{
player_item_name[id] = "Aegis"
player_item_id[id] = rannum
player_ring[id]=2
player_b_explode[id] = random_num(120,330)
player_b_redirect[id] = random_num(10, 100)
show_hudmessage (id, "Znalazles przedmiot : %s :: Dostajesz dodatkowo +5 sily oraz gdy zginiesz wybuchniesz",player_item_name[id],player_b_explode[id],player_b_redirect[id])
}
case 77:
{
player_item_name[id] = "Wypolerowana Rozdzka"
player_item_id[id] = rannum
player_b_blind[id] = random_num(1,5)
player_b_heal[id] = random_num(1,15)
show_hudmessage (id, "Znalazles przedmiot : %s :: Masz 1/%i na oslepienie wroga, nacisnij E zeby postawic leczacy totem",player_item_name[id],player_b_blind[id])
}
case 78:
{
player_item_name[id] = "Niebianski Kamien"
player_item_id[id] = rannum
player_b_grenade[id] = random_num(1,3)
set_user_maxspeed(id, get_user_maxspeed(id)+get_user_maxspeed(id)/4)
show_hudmessage (id, "Znalazles przedmiot : %s :: Masz 1/%i na natychmiastowe zabicie z HE oraz biegasz szybciej",player_item_name[id],player_b_grenade[id])
}
case 79:
{
player_item_name[id] = "Ropiejaca Esencja Destrukcji"
player_item_id[id] = rannum
player_b_respawn[id] = 2
player_b_sniper[id] = 1
player_b_grenade[id] = 3
show_hudmessage (id, "Znalazles przedmiot : %s :: Masz 1/2 na odrodzenie sie, 1/1 na natychmiastowe zabicie z scouta oraz 1/3 na zabicie z HE",player_item_name[id])
}
case 80:
{
player_item_name[id] = "Rekawice Wampira"
player_item_id[id] = rannum
player_b_vampire[id] = random_num(5,15)
show_hudmessage(id, "Znalazles przedmiot : %s :: Za kazdym wysysasz z przeciwnika %i zycia oraz za kazdego przeciwnika zabitego przeciwnika +30hp",player_item_name[id],player_b_vampire[id])
}
case 81:
{
player_item_name[id] = "Super Mario"
player_item_id[id] = rannum
player_b_jumpx[id] = 10
player_b_fireball[id] = 5
show_hudmessage (id, "Znalazles przedmiot : %s :: Mozesz zrobic 10 skokow w powietrzu oraz puszczasz do 5 kul ognia",player_item_name[id],player_b_jumpx[id], player_b_fireball[id])
}
case 85:
{
player_item_name[id] = "Centurion"
player_item_id[id] = rannum
player_b_damage[id] = 20
player_b_redirect[id] = 40
set_user_gravity(id,3.0)
show_hudmessage (id, "Znalazles przedmiot : %s :: Zadajesz 20 wiecej dmg oraz dostajesz mniej o 40",player_item_name[id],player_b_damage[id],player_b_redirect[id])
}
case 86:
{
player_item_name[id] = "RedBull"
player_item_id[id] = rannum
player_b_jumpx[id] = 8
show_hudmessage(id, "Znalazles przedmiot: %s :: Mozesz zrobic 8 skokow w powietrzu",player_item_name[id],player_b_sniper[id])
}
case 87:
{
player_item_name[id] = "Dr House"
player_item_id[id] = rannum
player_b_heal[id] = random_num(45,65)
show_hudmessage(id, "Znalazles przedmiot: %s :: Regeneruje %i hp co kazde 5 sekund. Uzyj, zeby polozyc totem ktory bedzie leczyl wszystkich w zasiegu %i",player_item_name[id],player_b_heal[id],player_b_heal[id])
}
case 88:
{
player_item_name[id] = "Own Invisible"
player_item_id[id] = rannum
player_b_inv[id] = 8
player_b_reduceH[id] = 55
if (is_user_alive(id)) set_user_health(id,45)
show_hudmessage(id, "Znalazles przedmiot: %s :: jestes prawie niewidoczny i masz 45 HP.",player_item_name[id])
}
case 89:
{
player_item_name[id] = "Mega Invisible"
player_item_id[id] = rannum
player_b_reduceH[id] = 90
player_b_inv[id] = 1
item_durability[id] = 50
if (is_user_alive(id)) set_user_health(id,10)
show_hudmessage(id, "Znalazles przedmiot: %s :: Masz 10 zycia i jestes niewidoczny 1/255",player_item_name[id])
}
case 90:
{
player_item_name[id] = "Narty Malysza"
player_item_id[id] = rannum
player_b_jumpx[id] = 8
set_user_gravity(id, 400.0)
show_hudmessage(id, "Znalazles przedmiot: %s :: Mozesz zrobic 8 skokow w powietrzu i masz wieksza grawite",player_item_name[id],player_b_sniper[id])
}
case 91:
{
player_item_name[id] = "Pierscien Zmarlego Rycerza"
player_item_id[id] = rannum
player_b_redirect[id] = random_num(15,50)
player_b_damage[id] = random_num(15,50)
player_b_blind[id] = random_num(3,4)
player_ultra_armor[id]=random_num(15,50)
player_ultra_armor_left[id]=player_ultra_armor[id]
show_hudmessage(id, "Znalazles przedmiot : %s :: Nikt do tej pory nie odkryl dzialania tego magicznego przedmiotu",player_item_name[id])
}
case 92:
{
player_item_name[id] = "Sakiewka Zlodzieja"
player_item_id[id] = rannum
player_b_money[id] = random_num(1,16000)
show_hudmessage(id, "Znalazles przedmiot: %s :: dostajesz %i zloto w kazdej rundzie. Uzyj, zeby chronil cie.",player_item_name[id],player_b_money[id]+player_intelligence[id]*50)
}
case 93:
{
player_item_name[id] = "Blood Vampyric"
player_item_id[id] = rannum
player_b_vampire[id] = random_num(15,20)
show_hudmessage(id, "Znalazles przedmiot: %s :: wysysasz %i hp przeciwnikowi",player_item_name[id],player_b_vampire[id])
}
case 94:
{
player_item_name[id] = "Revival Ring"
player_item_id[id] = rannum
player_b_respawn[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do ponownego odrodzenia sie po smierci",player_item_name[id],player_b_respawn[id])
}
case 95:
{
player_item_name[id] = "Zabojca Demonow"
player_item_id[id] = rannum
player_b_heal[id] = random_num(30,55)
player_b_damage[id] = 50
show_hudmessage(id, "Znalazles przedmiot: %s :: Regeneruje %i hp co kazde 5 sekund. Uzyj, zeby polozyc totem ktory bedzie leczyl wszystkich w zasiegu %i. Zadajesz 50 dmg wiecej",player_item_name[id],player_b_heal[id],player_b_heal[id])
}
case 96:
{
player_item_name[id] = "Mystiqe"
player_item_id[id] = rannum
changeskin(id,0)
player_b_grenade[id] = random_num(1,2)
show_hudmessage (id, "Znalazles przedmiot : %s :: Wygladasz jak przeciwnik.Masz 1/%i na natychmiastowe zabicie z HE",player_item_name[id],player_b_grenade[id])
}
case 97:
{
player_item_name[id] = "Apocalypse Anihilation"
player_item_id[id] = rannum
player_b_damage[id] = 100
player_b_silent[id] = 1
item_durability[id] = 100
show_hudmessage (id, "Znalazles przedmiot : %s :: Masz %i dodatkowych obrazen oraz cicho biegasz",player_item_name[id],player_b_damage[id],player_b_silent[id])
}
case 98:
{
player_item_name[id] = "Inferno"
player_item_id[id] = rannum
player_b_redirect[id] = 10
player_b_damage[id] = 10
player_b_respawn[id] = 2
show_hudmessage (id, "Znalazles przedmiot : %s :: Wieksze dmg o 10. Dostajesz mniej o 10. 1/2 na odrodzenie.",player_item_name[id])
}
case 99:
{
player_item_name[id] = "Hellspawn"
player_item_id[id] = rannum
player_b_grenade[id] = 5
player_b_inv[id] = random_num(70,110)
show_hudmessage (id, "Znalazles przedmiot : %s :: 1/5 na zabicie z granata.+%i premii niewidocznosci",player_item_name[id],255-player_b_inv[id])
}
case 100:
{
player_item_name[id] = "Czako"
player_item_id[id] = rannum
player_b_damage[id] = 25
player_b_inv[id] = random_num(70,110)
show_hudmessage (id, "Znalazles przedmiot : %s :: +25dmg || +%i premii niewidocznosci",player_item_name[id],255-player_b_inv[id])
}
case 101:
{
player_item_name[id] = "Annihilus"
player_item_id[id] = rannum
player_b_damage[id] = 15
player_b_vampire[id] = 50
show_hudmessage (id, "Znalazles przedmiot : %s :: Wieksze dmg o 15. Wysysasz 50 HP z kazdym uderzeniem",player_item_name[id])
}
case 102:
{
player_item_name[id] = "Tajemnica Blizzarda"
player_item_id[id] = rannum
player_b_damage[id] = 25
player_b_vampire[id] = 25
item_durability[id] = 100
show_hudmessage (id, "Znalazles przedmiot : %s :: Wieksze dmg o 25. Wysysasz 25 HP z kazdym uderzeniem",player_item_name[id])
}
case 103:
{
player_item_name[id] = "Kalejdoskop Mary"
player_item_id[id] = rannum
player_b_damage[id] = 25
player_b_inv[id] = random_num(190,200)
show_hudmessage (id, "Znalazles przedmiot : %s :: 1/2 na oślepienie. +%i premii niewidocznosci",player_item_name[id],255-player_b_inv[id])
}
case 104:
{
player_item_name[id] = "M4A1 Special"
player_item_id[id] = rannum
item_durability[id] = 100
player_b_m4master[id] = random_num(3,8)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do natychmiastowego zabicia z m4",player_item_name[id],player_b_m4master[id])
}
case 105:
{
player_item_name[id] = "AK47 Special"
player_item_id[id] = rannum
item_durability[id] = 100
player_b_akmaster[id] = random_num(3,8)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do natychmiastowego zabicia z ak47",player_item_name[id],player_b_akmaster[id])
}
case 106:
{
player_item_name[id] = "AWP Special"
player_item_id[id] = rannum
item_durability[id] = 100
player_b_awpmaster[id] = random_num(1,8)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do natychmiastowego zabicia z awp",player_item_name[id],player_b_awpmaster[id])
}
case 107:
{
player_item_name[id] = "Deagle Special"
player_item_id[id] = rannum
item_durability[id] = 100
player_b_dglmaster[id] = random_num(2,8)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do natychmiastowego zabicia z deagla",player_item_name[id],player_b_dglmaster[id])
}
case 108:
{
player_item_name[id] = "M3 Special"
player_item_id[id] = rannum
item_durability[id] = 100
player_b_m3master[id] = random_num(2,8)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do natychmiastowego zabicia z m3",player_item_name[id],player_b_m3master[id])
}
case 109:
{
player_item_name[id] = "Full Special"
player_item_id[id] = rannum
item_durability[id] = 100
player_b_m3master[id] = random_num(2,8)
player_b_dglmaster[id] = random_num(2,8)
player_b_awpmaster[id] = random_num(1,8)
player_b_akmaster[id] = random_num(2,8)
player_b_m4master[id] = random_num(2,8)
player_b_grenade[id] = random_num(1,8)
player_b_sniper[id] = random_num(1,8)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do natychmiastowego zabicia z m3,1/%i z deagla,1/%i z awp,1/%i z ak,1/%i z m4,1/%i z he,1/%i z scouta",player_item_name[id],player_b_m3master[id],player_b_dglmaster[id],player_b_awpmaster[id],player_b_akmaster[id],player_b_m4master[id],player_b_grenade[id],player_b_sniper[id])
}
case 110:
{
player_item_name[id] = "Czujnosc Sapera"
player_item_id[id] = rannum
player_b_antymeek[id] = 1
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz 1/%i na ochrone przed zabiciem Cie z kamienia smierci", player_item_name[id], player_b_antymeek[id])
}
case 111:
{
player_item_name[id] = "Czujnosc Sapera"
player_item_id[id] = rannum
player_b_antymeek[id] = 1
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz 1/%i na ochrone przed zabiciem Cie z kamienia smierci", player_item_name[id], player_b_antymeek[id])
}
case 112:
{
player_item_name[id] = "Czujnosc Sapera"
player_item_id[id] = rannum
player_b_antymeek[id] = 1
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz 1/%i na ochrone przed zabiciem Cie z kamienia smierci", player_item_name[id], player_b_antymeek[id])
}
case 113:
{
player_item_name[id] = "Czujnosc Sapera"
player_item_id[id] = rannum
player_b_antymeek[id] = 1
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz 1/%i na ochrone przed zabiciem Cie z kamienia smierci", player_item_name[id], player_b_antymeek[id])
}
case 114:
{
player_item_name[id] = "Czujnosc Sapera"
player_item_id[id] = rannum
player_b_antymeek[id] = 1
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz 1/%i na ochrone przed zabiciem Cie z kamienia smierci", player_item_name[id], player_b_antymeek[id])
}
case 115:
{
player_item_name[id] = "Czujnosc Sapera"
player_item_id[id] = rannum
player_b_antymeek[id] = 1
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz 1/%i na ochrone przed zabiciem Cie z kamienia smierci", player_item_name[id], player_b_antymeek[id])
}
case 116:
{
player_item_name[id] = "Buty Diabla"
player_item_id[id] = rannum
player_b_antyarchy[id] = 1
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz 1/%i na ochrone przed zabiciem Cie z skrzydel", player_item_name[id], player_b_antyarchy[id])
}
case 117:
{
player_item_name[id] = "Czujnosc Sapera"
player_item_id[id] = rannum
player_b_antymeek[id] = 1
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz 1/%i na ochrone przed zabiciem Cie z kamienia smierci", player_item_name[id], player_b_antymeek[id])
}
case 118:
{
player_item_name[id] = "Anty Wybuch"
player_item_id[id] = rannum
player_b_antyorb[id] = 1
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz 1/%i na ochrone przed zabiciem Cie z wybuchow po smierci", player_item_name[id], player_b_antyorb[id])
}
case 119:
{
player_item_name[id] = "Anty Piekielna Pochodnia"
player_item_id[id] = rannum
player_b_antyfs[id] = 1
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz 1/%i na ochrone przed zabiciem Cie z piekielnej pochodni", player_item_name[id], player_b_antyfs[id])
}
case 120:
{
player_item_name[id] = "Fortuna Gheeda"
player_item_id[id] = rannum
player_b_godmode[id] = random_num(4,10)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby stac sie niesmiertelnym na %i sek.", player_item_name[id], player_b_godmode[id])
}
case 121:
{
player_item_name[id] = "Winter Totem"
player_item_id[id] = rannum
player_b_zamroztotem[id] = random_num(250,400)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby polozyc zamrazajacy totem",player_item_name[id])
}
case 122:
{
player_item_name[id] = "Cash Totem"
player_item_id[id] = rannum
player_b_kasatotem[id] = random_num(250,400)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby polozyc totem dodajacy kase tobie i teamowi",player_item_name[id])
}
case 123:
{
player_item_name[id] = "Thief Totem"
player_item_id[id] = rannum
player_b_kasaqtotem[id] = random_num(250,400)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby polozyc totem zabierajacy kase wrogowi",player_item_name[id])
}
case 124:
{
player_item_name[id] = "Weapon Totem"
player_item_id[id] = rannum
player_b_wywaltotem[id] = random_num(250,400)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby polozyc totem wywalajacy bron wrogowi",player_item_name[id])
}
case 125:
{
player_item_name[id] = "Flash Totem"
player_item_id[id] = rannum
player_b_fleshujtotem[id] = random_num(250,400)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby polozyc totem oslepiajacy wroga",player_item_name[id])
}
}
BoostRing(id)
return PLUGIN_CONTINUE
}
/* UNIQUE ITEMS ============================================================================================ */
//Names are generated from an array
public award_unique_item(id)
{
new Unique_names_Suffix[10][100]
new Unique_names_Prefix[10][100]
Unique_names_Suffix[1] = "Saintly amulet "
Unique_names_Suffix[2] = "Holy sword "
Unique_names_Suffix[3] = "Small staff "
Unique_names_Suffix[4] = "Bright rope "
Unique_names_Suffix[5] = "Shiny scepter "
Unique_names_Prefix[1] = "of the stars"
Unique_names_Prefix[2] = "of power"
Unique_names_Prefix[3] = "of zod"
Unique_names_Prefix[4] = "of life"
Unique_names_Prefix[5] = "of the sun"
//Generate the items name
new roll_1 = random_num(1,4)
new roll_2 = random_num(1,4)
new Unique_name[100]
add(Unique_name,99,Unique_names_Suffix[roll_1])
add(Unique_name,99,Unique_names_Prefix[roll_2])
player_item_name[id] = Unique_name
player_item_id[id] = 100
//Generate and apply the stats
if (roll_1 == 1) player_b_damage[id] = random_num(1,5)
if (roll_1 == 2) player_b_vampire[id] = random_num(1,5)
if (roll_1 == 3) player_b_money[id] = random_num(2500,5000)
if (roll_1 == 4) player_b_reduceH[id] = random_num(20,50)
if (roll_1 == 5) player_b_blind[id] = random_num(3,5)
if (roll_2 == 1) player_b_grenade[id] = random_num(1,4)
if (roll_2 == 2) player_b_respawn[id] = random_num(2,4)
if (roll_2 == 3) player_b_explode[id] = random_num(150,400)
if (roll_2 == 4) player_b_redirect[id] = random_num(5,10)
if (roll_2 == 5) player_b_heal[id] = random_num(1,15)
item_durability[id] = 350
set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
show_hudmessage(id, "Uniqie Znalazles przedmiot: %s", Unique_name)
}
/* EFFECTS ================================================================================================= */
public add_damage_bonus(id,damage,attacker_id)
{
if (player_b_damage[attacker_id] > 0 && get_user_health(id)>player_b_damage[attacker_id])
{
change_health(id,-player_b_damage[attacker_id],attacker_id,"")
if (random_num(0,2) == 1) Effect_Bleed(id,248)
}
if (c_damage[attacker_id] > 0 && get_user_health(id)>player_b_damage[attacker_id])
{
change_health(id,-c_damage[attacker_id],attacker_id,"")
if (random_num(0,2) == 1) Effect_Bleed(id,248)
}
}
/* ==================================================================================================== */
public add_vampire_bonus(id,damage,attacker_id)
{
if (player_b_vampire[attacker_id] > 0)
{
change_health(attacker_id,player_b_vampire[attacker_id],0,"")
}
if (c_vampire[attacker_id] > 0)
{
change_health(attacker_id,c_vampire[attacker_id],0,"")
}
}
/* ==================================================================================================== */
public add_money_bonus(id)
{
if (player_b_money[id] > 0)
{
if (cs_get_user_money(id) < 16000 - player_b_money[id]+player_intelligence[id]*50)
{
cs_set_user_money(id,cs_get_user_money(id)+ player_b_money[id]+player_intelligence[id]*50)
}
else
{
cs_set_user_money(id,16000)
}
}
}
/* ==================================================================================================== */
public add_grenade_bonus(id,attacker_id,weapon)
{
if (player_b_grenade[attacker_id] > 0 && weapon == CSW_HEGRENADE && player_b_fireshield[id] == 0) //Fireshield check
{
new roll = random_num(1,player_b_grenade[attacker_id])
if (roll == 1)
{
set_user_health(id, 0)
message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
write_byte(attacker_id)
write_byte(id)
write_byte(0)
write_string("grenade")
message_end()
set_user_frags(attacker_id, get_user_frags(attacker_id)+1)
set_user_frags(id, get_user_frags(id)+1)
cs_set_user_money(attacker_id, cs_get_user_money(attacker_id)+150)
}
}
if (c_grenade[attacker_id] > 0 && weapon == CSW_HEGRENADE && player_b_fireshield[id] == 0) //Fireshield check
{
new roll = random_num(1,c_grenade[attacker_id])
if (roll == 1)
{
set_user_health(id, 0)
message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
write_byte(attacker_id)
write_byte(id)
write_byte(0)
write_string("grenade")
message_end()
set_user_frags(attacker_id, get_user_frags(attacker_id)+1)
set_user_frags(id, get_user_frags(id)+1)
cs_set_user_money(attacker_id, cs_get_user_money(attacker_id)+150)
}
}
}
/* ==================================================================================================== */
public add_redhealth_bonus(id)
{
if (player_b_reduceH[id] > 0)
change_health(id,-player_b_reduceH[id],0,"")
if(player_item_id[id]==17) //stalker ring
set_user_health(id,5)
}
/* ==================================================================================================== */
public add_theif_bonus(id,attacker_id)
{
if (player_b_theif[attacker_id] > 0)
{
new roll1 = random_num(1,5)
if (roll1 == 1)
{
if (cs_get_user_money(id) > player_b_theif[attacker_id])
{
cs_set_user_money(id,cs_get_user_money(id)-player_b_theif[attacker_id])
if (cs_get_user_money(attacker_id) + player_b_theif[attacker_id] <= 16000)
{
cs_set_user_money(attacker_id,cs_get_user_money(attacker_id)+player_b_theif[attacker_id])
}
}
else
{
new allthatsleft = cs_get_user_money(id)
cs_set_user_money(id,0)
if (cs_get_user_money(attacker_id) + allthatsleft <= 16000)
{
cs_set_user_money(attacker_id,cs_get_user_money(attacker_id) + allthatsleft)
}
}
}
}
}
/* ==================================================================================================== */
public add_respawn_bonus(id)
{
if (player_b_respawn[id] > 0)
{
new svIndex[32]
num_to_str(id,svIndex,32)
new roll = random_num(1,player_b_respawn[id])
if (roll == 1)
{
new maxpl,players[32]
get_players(players, maxpl)
if (maxpl > 2)
{
cs_set_user_money(id,cs_get_user_money(id)+4000)
set_task(0.5,"respawn",0,svIndex,32)
}
else
{
set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
show_hudmessage(id, "Wiecej niz 2 graczy jest wymagane do ponownego odrodzenia sie")
}
}
}
if (c_respawn[id] > 0)
{
new svIndex[32]
num_to_str(id,svIndex,32)
new roll = random_num(1,c_respawn[id])
if (roll == 1)
{
new maxpl,players[32]
get_players(players, maxpl)
if (maxpl > 2)
{
cs_set_user_money(id,cs_get_user_money(id)+4000)
set_task(0.5,"respawn",0,svIndex,32)
}
else
{
set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
show_hudmessage(id, "Wiecej niz 2 graczy jest wymagane do ponownego odrodzenia sie")
}
}
}
}
public respawn(svIndex[])
{
new vIndex = str_to_num(svIndex)
spawn(vIndex);
}
/* ==================================================================================================== */
public add_bonus_explode(id)
{
if (player_b_explode[id] > 0)
{
new origin[3]
get_user_origin(id,origin)
explode(origin,id,0)
for(new a = 0; a < MAX; a++)
{
if (!is_user_connected(a) || !is_user_alive(a) || player_b_fireshield[a] != 0 || get_user_team(a) == get_user_team(id))
continue
if(player_b_antyorb[a] > 0 || c_antyorb[a] > 0)
continue
new origin1[3]
get_user_origin(a,origin1)
if(get_distance(origin,origin1) < player_b_explode[id] + player_intelligence[id]*2)
{
new dam = 75-(player_dextery[a]*2)
if(dam<1) dam=1
change_health(a,-dam,id,"grenade")
Display_Fade(id,2600,2600,0,255,0,0,15)
}
}
}
}
public explode(vec1[3],playerid, trigger)
{
message_begin( MSG_BROADCAST,SVC_TEMPENTITY,vec1)
write_byte( 21 )
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2] + 32)
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2] + 1000)
write_short( sprite_white )
write_byte( 0 )
write_byte( 0 )
write_byte( 3 )
write_byte( 10 )
write_byte( 0 )
write_byte( 188 )
write_byte( 220 )
write_byte( 255 )
write_byte( 255 )
write_byte( 0 )
message_end()
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( 12 )
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_byte( 188 )
write_byte( 10 )
message_end()
message_begin( MSG_BROADCAST,SVC_TEMPENTITY,vec1)
write_byte( 3 )
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_short( sprite_fire )
write_byte( 65 )
write_byte( 10 )
write_byte( 0 )
message_end()
message_begin(MSG_BROADCAST,SVC_TEMPENTITY,{0,0,0},playerid)
write_byte(107)
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_coord(175)
write_short (sprite_gibs)
write_short (25)
write_byte (10)
message_end()
if (trigger == 1)
{
set_user_rendering(playerid,kRenderFxNone, 0,0,0, kRenderTransAdd,0)
}
}
/* ==================================================================================================== */
public add_bonus_gamble(id)
{
if (player_b_gamble[id] > 0 && is_user_alive(id))
{
new durba=item_durability[id]
reset_item_skills(id)
item_durability[id]=durba
set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
new roll = random_num(1,player_b_gamble[id])
if (roll == 1)
{
show_hudmessage(id, "Premia rundy: +5 obrazen")
player_b_damage[id] = 5
}
if (roll == 2)
{
show_hudmessage(id, "Premia rundy: +5 do wyzszego skoku")
player_b_gravity[id] = 5
}
if (roll == 3)
{
show_hudmessage(id, "Premia rundy: +5 obrazen wampira")
player_b_vampire[id] = 5
}
if (roll == 4)
{
show_hudmessage(id, "Premia rundy: +10 hp co kazde 5 sekund")
player_b_heal[id] = 10
}
if (roll == 5)
{
show_hudmessage(id, "Premia rundy: 1/3 szans do natychmiastowego zabicia HE")
player_b_grenade[id] = 3
}
}
}
/* ==================================================================================================== */
public add_bonus_blind(id,attacker_id,weapon,damage)
{
if (player_b_blind[attacker_id] > 0 && weapon != 4)
{
if (random_num(1,player_b_blind[attacker_id]) == 1) Display_Fade(id,1<<14,1<<14 ,1<<16,255,155,50,230)
}
if (c_blind[attacker_id] > 0 && weapon != 4)
{
if (random_num(1,c_blind[attacker_id]) == 1) Display_Fade(id,1<<14,1<<14 ,1<<16,255,155,50,230)
}
}
/* ==================================================================================================== */
public item_c4fake(id)
{
if (c4state[id] > 1)
{
hudmsg(id,2.0,"Meekstone mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
if (player_b_meekstone[id] > 0 && c4state[id] == 1 && is_user_alive(id) == 1 && freeze_ended == true)
{
explode(c4bombc[id],id,0)
for(new a = 0; a < MAX; a++)
{
if (is_user_connected(a) && is_user_alive(a))
{
new origin1[3]
get_user_origin(a,origin1)
if(get_distance(c4bombc[id],origin1) < 300 && get_user_team(a) != get_user_team(id))
{
if(player_b_antymeek[a] > 0 || c_antymeek[a] > 0)
return PLUGIN_HANDLED;
UTIL_Kill(id,a,"grenade")
}
}
}
c4state[id] = 2
remove_entity(c4fake[id])
c4fake[id] = 0
}
if (player_b_meekstone[id] > 0 && c4state[id] == 0 && c4fake[id] == 0 && is_user_alive(id) == 1 && freeze_ended == true)
{
new Float:pOrigin[3]
entity_get_vector(id,EV_VEC_origin, pOrigin)
c4fake[id] = create_entity("info_target")
entity_set_model(c4fake[id],"models/w_backpack.mdl")
entity_set_origin(c4fake[id],pOrigin)
entity_set_string(c4fake[id],EV_SZ_classname,"fakec4")
entity_set_edict(c4fake[id],EV_ENT_owner,id)
entity_set_int(c4fake[id],EV_INT_movetype,6)
new Float:aOrigin[3]
entity_get_vector(c4fake[id],EV_VEC_origin, aOrigin)
c4bombc[id][0] = floatround(aOrigin[0])
c4bombc[id][1] = floatround(aOrigin[1])
c4bombc[id][2] = floatround(aOrigin[2])
c4state[id] = 1
}
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
public item_fireball(id)
{
if (fired[id] > 0)
{
hudmsg(id,2.0,"Ognistej kuli mozesz uzyc raz na runde!")
return PLUGIN_HANDLED
}
if (fired[id] == 0 && is_user_alive(id) == 1)
{
fired[id] = 1
new Float:vOrigin[3]
new fEntity
entity_get_vector(id,EV_VEC_origin, vOrigin)
fEntity = create_entity("info_target")
entity_set_model(fEntity, "models/rpgrocket.mdl")
entity_set_origin(fEntity, vOrigin)
entity_set_int(fEntity,EV_INT_effects,64)
entity_set_string(fEntity,EV_SZ_classname,"fireball")
entity_set_int(fEntity, EV_INT_solid, SOLID_BBOX)
entity_set_int(fEntity,EV_INT_movetype,5)
entity_set_edict(fEntity,EV_ENT_owner,id)
//Send forward
new Float:fl_iNewVelocity[3]
VelocityByAim(id, 500, fl_iNewVelocity)
entity_set_vector(fEntity, EV_VEC_velocity, fl_iNewVelocity)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(22)
write_short(fEntity)
write_short(sprite_beam)
write_byte(45)
write_byte(4)
write_byte(255)
write_byte(0)
write_byte(0)
write_byte(25)
message_end()
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public add_bonus_redirect(id)
{
if (player_b_redirect[id] > 0)
{
if (get_user_health(id)+player_b_redirect[id] <= race_heal[player_class[id]]+player_strength[id]*1)
{
change_health(id,player_b_redirect[id],0,"")
}
}
if (c_redirect[id] > 0)
{
if (get_user_health(id)+c_redirect[id] <= race_heal[player_class[id]]+player_strength[id]*1)
{
change_health(id,c_redirect[id],0,"")
}
}
}
/* ==================================================================================================== */
public item_ghost(id)
{
if (ghoststate[id] == 0 && player_b_ghost[id] > 0 && is_user_alive(id) && !ghost_check)
{
set_user_noclip(id,1)
ghoststate[id] = 2
ghosttime[id] = floatround(halflife_time())
ghost_check = true
message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id )
write_byte( player_b_ghost[id]+1 )
write_byte( 0 )
message_end()
}
else
{
hudmsg(id,3.0,"Tylko jeden gracz moze uzywac Ducha w tym samym czasie! / Przedmiot zostal uzyty!")
}
}
/* ==================================================================================================== */
public add_bonus_darksteel(attacker,id,damage)
{
if (player_b_darksteel[attacker] > 0)
{
if (UTIL_In_FOV(attacker,id) && !UTIL_In_FOV(id,attacker))
{
new dam = floatround (15+player_strength[id]*2*player_b_darksteel[id]/10.0)
Effect_Bleed(id,248)
change_health(id,-dam,attacker,"world")
}
}
if (c_darksteel[attacker] > 0)
{
if (UTIL_In_FOV(attacker,id) && !UTIL_In_FOV(id,attacker))
{
new dam = (1+player_b_darksteel[id])
Effect_Bleed(id,248)
change_health(id,-dam,attacker,"world")
}
}
}
/* ==================================================================================================== */
public item_eye(id)
{
if (player_b_eye[id] == -1)
{
//place camera
new Float:playerOrigin[3]
entity_get_vector(id,EV_VEC_origin,playerOrigin)
new ent = create_entity("info_target")
entity_set_string(ent, EV_SZ_classname, "PlayerCamera")
entity_set_int(ent, EV_INT_movetype, MOVETYPE_NOCLIP)
entity_set_int(ent, EV_INT_solid, SOLID_NOT)
entity_set_edict(ent, EV_ENT_owner, id)
entity_set_model(ent, "models/rpgrocket.mdl") //Just something
entity_set_origin(ent,playerOrigin)
entity_set_int(ent,EV_INT_iuser1,0) //Viewing through this camera
set_rendering (ent,kRenderFxNone, 0,0,0, kRenderTransTexture,0)
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01)
player_b_eye[id] = ent
}
else
{
//view through camera or stop viewing
new ent = player_b_eye[id]
if (!is_valid_ent(ent))
{
attach_view(id,id)
return PLUGIN_HANDLED
}
new viewing = entity_get_int(ent,EV_INT_iuser1)
if (viewing)
{
entity_set_int(ent,EV_INT_iuser1,0)
attach_view(id,id)
}
else
{
entity_set_int(ent,EV_INT_iuser1,1)
attach_view(id,ent)
}
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
//Called when PlayerCamera thinks
public Think_PlayerCamera(ent)
{
new id = entity_get_edict(ent,EV_ENT_owner)
//Check if player is still having the item and is still online
if (!is_valid_ent(id) || player_b_eye[id] == 0 || !is_user_connected(id))
{
//remove entity
if (is_valid_ent(id) && is_user_connected(id)) attach_view(id,id)
remove_entity(ent)
}
else
{
//Dont use cpu when not alive anyway or not viewing
if (!is_user_alive(id))
{
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 3.0)
return PLUGIN_HANDLED
}
if (!entity_get_int(ent,EV_INT_iuser1))
{
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.5)
return PLUGIN_HANDLED
}
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01)
//Find nearest player to camera
new Float:pOrigin[3],Float:plOrigin[3],Float:ret[3]
entity_get_vector(ent,EV_VEC_origin,plOrigin)
new Float:distrec = 2000.0, winent = -1
for (new i=0; i<MAX; i++)
{
if (is_user_connected(i) && is_user_alive(i))
{
entity_get_vector(i,EV_VEC_origin,pOrigin)
pOrigin[2]+=10.0
if (trace_line ( 0, plOrigin, pOrigin, ret ) == i && vector_distance(pOrigin,plOrigin) < distrec)
{
winent = i
distrec = vector_distance(pOrigin,plOrigin)
}
}
}
//Traceline and updown is still revresed
if (winent > -1)
{
new Float:toplayer[3], Float:ideal[3],Float:pOrigin[3]
entity_get_vector(winent,EV_VEC_origin,pOrigin)
pOrigin[2]+=10.0
toplayer[0] = pOrigin[0]-plOrigin[0]
toplayer[1] = pOrigin[1]-plOrigin[1]
toplayer[2] = pOrigin[2]-plOrigin[2]
vector_to_angle ( toplayer, ideal )
ideal[0] = ideal[0]*-1
entity_set_vector(ent,EV_VEC_angles,ideal)
}
}
return PLUGIN_CONTINUE
}
public Create_Line(id,origin1[3],origin2[3],bool:draw)
{
if (draw)
{
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
write_byte(0)
write_coord(origin1[0]) // starting pos
write_coord(origin1[1])
write_coord(origin1[2])
write_coord(origin2[0]) // ending pos
write_coord(origin2[1])
write_coord(origin2[2])
write_short(sprite_line) // sprite index
write_byte(1) // starting frame
write_byte(5) // frame rate
write_byte(2) // life
write_byte(3) // line width
write_byte(0) // noise
write_byte(255) // RED
write_byte(50) // GREEN
write_byte(50) // BLUE
write_byte(155) // brightness
write_byte(5) // scroll speed
message_end()
}
new Float:ret[3],Float:fOrigin1[3],Float:fOrigin2[3]
//So we dont hit ourself
origin1[2]+=50
IVecFVec(origin1,fOrigin1)
IVecFVec(origin2,fOrigin2)
new hit = trace_line ( 0, fOrigin1, fOrigin2, ret )
return hit
}
/* ==================================================================================================== */
public Prethink_Blink(id)
{
if( get_user_button(id) & IN_ATTACK2 && !(get_user_oldbutton(id) & IN_ATTACK2) && is_user_alive(id))
{
if (on_knife[id])
{
if (halflife_time()-player_b_blink[id] <= 3) return PLUGIN_HANDLED
player_b_blink[id] = floatround(halflife_time())
UTIL_Teleport(id,300+15*player_intelligence[id])
}
}
if( get_user_button(id) & IN_ATTACK2 && !(get_user_oldbutton(id) & IN_ATTACK2) && is_user_alive(id))
{
if (on_knife[id])
{
if (halflife_time()-c_blink[id] <= 3) return PLUGIN_HANDLED
c_blink[id] = floatround(halflife_time())
UTIL_Teleport(id,300+15*player_intelligence[id])
}
}
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
/*
Called on end or mapchange -- Save items for players
public plugin_end()
{
new Datafile[64], amxbasedir[64]
//build_path(Datafile,63,"$basedir/diablo/datafile.txt")
get_basedir(amxbasedir,63)
format(Datafile,63,"%s/diablo/datafile.txt",amxbasedir)
if(file_exists(Datafile)) delete_file(Datafile)
//Write name and item for each player
for (new i=0; i < MAX; i++)
{
if (player_dc_item[i] > 0 && player_dc_item[i] != 100) //unique
{
new data[100]
format(data,99,"%s^"%i^"",player_dc_name[i],player_dc_item[i])
write_file(Datafile,data)
}
}
}
*/
/* ==================================================================================================== */
/* ==================================================================================================== */
/* ==================================================================================================== */
/* ==================================================================================================== */
public item_convertmoney(id)
{
new maxhealth = race_heal[player_class[id]]+player_strength[id]*2
if (cs_get_user_money(id) < 1000)
hudmsg(id,2.0,"Nie masz wystarczajacej ilosci zlota, zeby zamienic je w zycie")
else if (get_user_health(id) == maxhealth)
hudmsg(id,2.0,"Masz maksymalna ilosc zycia")
else
{
cs_set_user_money(id,cs_get_user_money(id)-1000)
change_health(id,15,0,"")
Display_Fade(id,2600,2600,0,0,255,0,15)
}
}
public item_windwalk(id)
{
//First time this round
if (player_b_usingwind[id] == 0)
{
new szId[10]
num_to_str(id,szId,9)
player_b_usingwind[id] = 1
set_renderchange(id)
engclient_cmd(id,"weapon_knife")
on_knife[id]=1
set_user_maxspeed(id,500.0)
new Float:val = player_b_windwalk[id] + 0.0
set_task(val,"resetwindwalk",0,szId,32)
message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id )
write_byte( player_b_windwalk[id])
write_byte( 0 )
message_end()
}
//Disable again
else if (player_b_usingwind[id] == 1)
{
player_b_usingwind[id] = 2
set_renderchange(id)
set_user_maxspeed(id,270.0)
message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id )
write_byte( 0)
write_byte( 0 )
message_end()
}
//Already used
else if (player_b_usingwind[id] == 2)
{
set_hudmessage(220, 30, 30, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
show_hudmessage(id, "Ten przedmiot mozesz uzyc raz na runde!")
}
}
public resetwindwalk(szId[])
{
new id = str_to_num(szId)
if (id < 0 || id > MAX)
{
log_amx("Error in resetwindwalk, id: %i out of bounds", id)
}
if (player_b_usingwind[id] == 1)
{
player_b_usingwind[id] = 2
set_renderchange(id)
set_user_maxspeed(id,270.0)
message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id )
write_byte( 0)
write_byte( 0 )
message_end()
}
}
/* ==================================================================================================== */
public Prethink_usingwind(id)
{
if( get_user_button(id) & IN_ATTACK && is_user_alive(id))
{
new buttons = pev(id,pev_button)
set_pev(id,pev_button,(buttons & ~IN_ATTACK));
return FMRES_HANDLED;
}
if( get_user_button(id) & IN_ATTACK2 && is_user_alive(id))
{
new buttons = pev(id,pev_button)
set_pev(id,pev_button,(buttons & ~IN_ATTACK2));
return FMRES_HANDLED;
}
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
public cvar_result_func(id, const cvar[], const value[])
{
player_b_oldsen[id] = str_to_float(value)
new svIndex[32]
num_to_str(id,svIndex,32)
set_task(2.5,"resetsens",0,svIndex,32)
}
public resetsens(svIndex[])
{
new id = str_to_num(svIndex)
if (player_b_oldsen[id] > 0.0)
{
client_cmd(id,"sensitivity %f",player_b_oldsen[id])
player_b_oldsen[id] = 0.0
}
message_begin( MSG_ONE, get_user_msgid("StatusIcon"), {0,0,0}, id )
write_byte( 0 )
write_string( "dmg_chem")
write_byte( 100 ) // red
write_byte( 100 ) // green
write_byte( 100 ) // blue
message_end()
}
/* ==================================================================================================== */
public Prethink_confuseme(id)
{
if (player_b_oldsen[id] > 0.0)
client_cmd(id,"sensitivity %f", 25.0)
}
public Bot_Setup()
{
for (new id=0; id < MAX; id++)
{
if (is_user_connected(id) && is_user_bot(id))
{
if (random_num(1,3) == 1 && player_item_id[id] > 0)
client_cmd(id,"say /drop")
while (player_point[id] > 0)
{
player_point[id]--
switch(random_num(1,4))
{
case 1: {
player_agility[id]++
}
case 2: {
player_strength[id]++
}
case 3: {
player_intelligence[id]++
}
case 4: {
player_dextery[id]++
}
}
}
}
}
}
/* ==================================================================================================== */
public host_killed(id)
{
if (player_lvl[id] > 1)
{
hudmsg(id,2.0,"Straciles doswiadczenie za zabicie zakladnikow")
Give_Xp(id,-floatround(3*player_lvl[id]/(1.65-player_lvl[id]/50)))
}
}
/* ==================================================================================================== */
public show_menu_item(id)
{
new text[513]
format(text, 512, "\yNowe Itemy - ^n\w1. Mag ring^n\w2. Paladyn ring^n\w3. Mnich ring^n\w4. Barbarzynca ring^n\w5. Zabojca ring^n\w6. Nekromanta ring^n\w7. Ninja ring^n\w8. Flashbang necklace^n\w9. Zamknij")
new keys
keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)
show_menu(id, keys, text)
return PLUGIN_HANDLED
}
public nowe_itemy(id, key)
{
switch(key)
{
case 0:
{
magring(id)
}
case 1:
{
paladynring(id)
}
case 2:
{
mnichring(id)
}
case 3:
{
barbarzyncaring(id)
}
case 4:
{
zabojcaring(id)
}
case 5:
{
nekromantaring(id)
}
case 6:
{
ninjaring(id)
}
case 7:
{
flashbangnecklace(id)
}
case 8:
{
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}
public magring(id)
{
showitem(id,"Mag ring","Common","None","<br>Dostajesz +5 inteligencji.<br>Druga funcja: Mozesz wytworzyc ognista kule<br><br>")
}
public paladynring(id)
{
showitem(id,"Paladyn ring","Common","None","<br>Redukuje normalne obrazenia i masz szanse na oslepienie gracza<br><br>")
}
public mnichring(id)
{
showitem(id,"Mnich ring","Common","None","<br>Mozesz leczyc osoby z teamu, klasc totem ktory leczy cie i towje hp jest odnawiane co 5 sek<br><br>")
}
public barbarzyncaring(id)
{
showitem(id,"Barbarzynca ring","Common","None","<br>Ten item dodaje ci +5 sily i jak zginiesz wybuchasz<br><br>")
}
public zabojcaring(id)
{
showitem(id,"Zabojca ring","Common","None","<br>Dodaje ci +5 agility i mozesz zrobic podwojny skok<br><br>")
}
public nekromantaring(id)
{
showitem(id,"Nekromanta ring","Common","None","<br>Mozesz ponownie odrodzic sie.<br>Dostajesz vampiric obraznia<br><br>")
}
public ninjaring(id)
{
showitem(id,"Ninja ring","Common","None","<br>Mozesz teleportowac sie co 3 sekundy jesli uzyjesz prawego ataku noza.<br>Druga funkcja : kucnij aby zrobic dlugi skok<br><br>")
}
public flashbangnecklace(id)
{
showitem(id,"Flashbang necklece","Common","None","<br>Flashbangi na ciebie nie dzialaja<br><br>")
}
/* ==================================================================================================== */
public klasy_info(id)
{
ColorChat(id,GREEN, "[DiabloMod]^x01 Opis wszystkich^x03 itemow^x01 i^x03 klas^x01 znajdziesz na^x04 www.your-game.pl/diablo")
}
public Prethink_froglegs(id)
{
if (get_user_button(id) & IN_DUCK)
{
//start holding down button here, set to halflife time
if (player_b_froglegs[id] == 1)
{
player_b_froglegs[id] = floatround(halflife_time())
}
else
{
if (floatround(halflife_time())-player_b_froglegs[id] >= 2.0)
{
new Float:fl_iNewVelocity[3]
VelocityByAim(id, 1000, fl_iNewVelocity)
fl_iNewVelocity[2] = 210.0
entity_set_vector(id, EV_VEC_velocity, fl_iNewVelocity)
player_b_froglegs[id] = 1
}
}
}
else
{
player_b_froglegs[id] = 1
}
}
/* ==================================================================================================== */
public select_class_query(id)
{
if(is_user_bot(id) || asked_klass[id]!=0) return PLUGIN_HANDLED
if(loaded_xp[id]==0)
{
load_xp(id)
return PLUGIN_HANDLED
}
if(g_boolsqlOK)
{
asked_klass[id]=1
new name[64]
new data[1]
data[0]=id
new lx[28]
if(player_class_lvl_save[id]==0)
{
if(get_cvar_num("diablo_sql_save")==0)
{
get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )
new q_command[512]
format(q_command,511,"SELECT `klasa`,`lvl` FROM `%s` WHERE `nick`='%s' ",g_sqlTable,name)
SQL_ThreadQuery(g_SqlTuple,"select_class_handle", q_command,data,1)
}
else if(get_cvar_num("diablo_sql_save")==1)
{
get_user_ip(id, name ,63,1)
new q_command[512]
format(q_command,511,"SELECT `klasa`,`lvl` FROM `%s` WHERE `ip`='%s' ",g_sqlTable,name)
SQL_ThreadQuery(g_SqlTuple,"select_class_handle",q_command,data,1)
}
else if(get_cvar_num("diablo_sql_save")==2)
{
get_user_authid(id, name ,63)
new q_command[512]
format(q_command,511,"SELECT `klasa`,`lvl` FROM `%s` WHERE `sid`='%s' ",g_sqlTable,name)
SQL_ThreadQuery(g_SqlTuple,"select_class_handle",q_command,data,1)
}
/*
if(ret == RESULT_FAILED)
{
new szError[126]
dbi_error(sql,szError,125)
log_to_file("addons/amxmodx/logs/diablo.log","[Command Log] nie moglem wczytac lvl'i dla %s | klasy :*** %s",name,szError)
dbi_free_result(ret)
g_boolsqlOK=0
player_class_lvl_save[id]=0
dbi_close(sql)
return PLUGIN_HANDLED
}
else if(ret == RESULT_NONE)
{
log_to_file("addons/amxmodx/logs/diablo.log","[Command Log] nie ma danych dla /klasa")
create_klass(id)
return PLUGIN_HANDLED
}
else while(ret && dbi_nextrow(ret)>0)
{
new i = dbi_result(ret, "klasa")
lx[i] = dbi_result(ret, "lvl")
player_class_lvl[id][i] = lx[i]
}
dbi_free_result(ret)
player_class_lvl_save[id]=1
*/
}
else
{
for(new i=1;i<28;i++) lx[i]=player_class_lvl[id][i]
select_class(id,lx)
}
}
else sql_start()
return PLUGIN_HANDLED
}
public select_class_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
new id=Data[0]
if(Errcode)
{
log_to_file("addons/amxmodx/logs/diablo.log","Error on select_class_handle query: %s",Error)
asked_klass[id]=0
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
asked_klass[id]=0
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","select_class_handle Query failed.")
asked_klass[id]=0
return PLUGIN_CONTINUE
}
if(SQL_MoreResults(Query))
{
new lx[28]
while(SQL_MoreResults(Query))
{
new i = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "klasa"))
lx[i] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "lvl"))
player_class_lvl[id][i] = lx[i]
SQL_NextRow(Query)
}
if(asked_klass[id]==1)
{
asked_klass[id]=2
select_class(id,lx)
}
}
return PLUGIN_CONTINUE
}
public select_class(id,lx[])
{
new text4[512]
format(text4, 511,"\yWybierz Rodzaj Klas: ^n\r1. \wBohaterowie^n\r2. \wDemony^n\r3. \wZwierzeta^n\r4. \wPremium^n^n\dPoradnik i opis klas na forum^n^n\dwww.Your-Game.PL")
new keysczwarta
keysczwarta = (1<<0)|(1<<1)|(1<<2)|(1<<3)
show_menu(id, keysczwarta,text4, -1, "Wybierz Klase")
}
public select_class_menu(id, key)
{
new lx[28] // <-- w nawiasie wpisz liczbę swoich klas + 1(none)
g_haskit[id] = 0
c_shake[id]=0
c_shaked[id]=0
c_damage[id]=0
c_jump[id]=0
c_mine[id]=0
c_respawn[id]=0
c_vampire[id]=0
c_silent[id]=0
c_antyarchy[id]=0
c_antymeek[id]=0
c_antyorb[id]=0
c_antyfs[id]=0
niewidzialnosc_kucanie[id] = 0;
c_grenade[id] = 0
c_blind[id] = 0
c_darksteel[id]=0
anty_flesh[id]=0
c_blink[id]=0
c_redirect[id]=0
c_awp[id]=0
niewidka[id]=0
zmiana_skinu[id]=0
c_piorun[id]=0
switch(key)
{
case 0:
{
PokazKlasy(id,lx)
}
case 1:
{
ShowKlasy(id,lx)
}
case 2:
{
PokazZwierze(id,lx)
}
case 3:
{
PokazPremiumy(id,lx)
}
}
LoadXP(id, player_class[id])
CurWeapon(id)
give_knife(id)
quest_gracza[id] = wczytaj_aktualny_quest(id);
changeskin(id,1)
return PLUGIN_HANDLED
}
public PokazKlasy(id,lx[])
{
new flags[28]
get_cvar_string("diablo_classes",flags,27) //<--- tu, gdzie jest 16 wpisz liczbę swoich klas
new text3[512]
asked_klass[id]=0
for(new i=0;i<8;i++) //Tego masz nigdy nie zmieniać!!!!
{
format(text3, 512,"\yBohaterowie: ^n\w1. \yCzarodziejka^t\wLevel: \r%i^n\w2. \yDruid^t\wLevel: \r%i^n\w3. \yPaladyn^t\wLevel: \r%i^n\w4. \yZabojczyni^t\wLevel: \r%i^n\w5. \yNekromanta^t\wLevel: \r%i^n\w6. \yBarbarzynca^t\wLevel: \r%i^n\w7. \yNinja^t\wLevel: \r%i^n\w8. \yAmazonka^t\wLevel: \r%i^n^n\w0. \yWstecz^n^n\rPrzed wyborem klasy poczekaj 5 sekund^n\dwww.Your-Game.PL",
player_class_lvl[id][1],player_class_lvl[id][2],player_class_lvl[id][3],player_class_lvl[id][4],player_class_lvl[id][5],player_class_lvl[id][6],player_class_lvl[id][7],player_class_lvl[id][8])
}
new keyspiata
keyspiata = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<9)
show_menu(id, keyspiata, text3, -1, "Lok")
}
public PokazMeni(id, key)
{
/* Menu:
* Wybierz klase:
* 1:Czarodziejka
* 2:Druid
* 3:Paladyn
* 4:Zabojczyni
* 5:Nekromanta
* 6:Barbarzynca
* 7:Ninja
* 8:Amazonka
* 0:Wstecz
*/
new lx[28] // <-- tutaj wpisz liczbę swoich klas + 1(none)
g_haskit[id] = 0
c_shake[id]=0
c_damage[id]=0
c_jump[id]=0
c_mine[id]=0
c_respawn[id]=0
c_vampire[id]=0
zmiana_skinu[id]=0
switch(key)
{
case 0:
{
player_class[id] = Mag
c_shake[id]=20
LoadXP(id, player_class[id])
}
case 1:
{
player_class[id] = Mnich
c_damage[id]=3
zmiana_skinu[id]=1
changeskin(id,0)
LoadXP(id, player_class[id])
}
case 2:
{
player_class[id] = Paladyn
LoadXP(id, player_class[id])
}
case 3:
{
player_class[id] = Zabojca
c_jump[id]=1
c_mine[id]=2
LoadXP(id, player_class[id])
}
case 4:
{
player_class[id] = Nekromanta
g_haskit[id] = 1
c_respawn[id]=4
c_vampire[id]=random_num(1,3)
LoadXP(id, player_class[id])
}
case 5:
{
player_class[id] = Barbarzynca
LoadXP(id, player_class[id])
}
case 6:
{
player_class[id] = Ninja
LoadXP(id, player_class[id])
}
case 7:
{
player_class[id] = Hunter
g_GrenadeTrap[id] = 1
LoadXP(id, player_class[id])
}
case 9:
{
select_class(id,lx)
}
}
CurWeapon(id)
quest_gracza[id] = wczytaj_aktualny_quest(id);
give_knife(id)
return PLUGIN_HANDLED
}
public ShowKlasy(id,lx[]) {
new text2[512]
asked_klass[id]=0
format(text2, 511,"\yDemony: ^n\w1. \yAndariel^t\wLevel: \r%i^n\w2. \yDuriel^t\wLevel: \r%i^n\w3. \yMefisto^t\wLevel: \r%i^n\w4. \yHefasto^t\wLevel: \r%i^n\w5. \yDiablo^t\wLevel: \r%i^n\w6. \yBaal^t\wLevel: \r%i^n\w7. \yUpadly^t\wLevel: \r%i^n\w8. \yImp^t\wLevel: \r%i^n^n\w0. \yWstecz^n^n\rPrzed wyborem klasy poczekaj 5 sekund^n\dwww.Your-Game.PL",
player_class_lvl[id][9],player_class_lvl[id][10],player_class_lvl[id][11],player_class_lvl[id][12],player_class_lvl[id][13],player_class_lvl[id][14],player_class_lvl[id][15],player_class_lvl[id][16])
new szosta
szosta = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<9)
show_menu(id, szosta,text2, -1, "Klasy")
}
public PressedKlasy(id, key) {
/* Menu:
* Demony:
* 1:Andariel
* 2:Duriel
* 3:Mefisto
* 4:Hefasto
* 5:Diablo
* 6:Baal
* 7:Upadly
* 8:Imp
* 0:Wstecz
*/
new lx[28] // <-- tutaj wpisz liczbę swoich klas + 1(none)
g_haskit[id] = 0
c_vampire[id]=0
c_silent[id]=0
c_jump[id]=0
c_antyarchy[id]=0
c_antymeek[id]=0
c_antyorb[id]=0
c_antyfs[id]=0
niewidzialnosc_kucanie[id] = 0;
c_silent[id]=0
c_grenade[id] = 0
c_darksteel[id]=0
c_shaked[id]=0
c_blink[id]=0
switch (key) {
case 0:
{
player_class[id] = Andariel
c_vampire[id]=random_num(1,3)
c_silent[id]=1
c_jump[id]=1
c_antyarchy[id]=1
c_antymeek[id]=1
c_antyorb[id]=1
c_antyfs[id]=1
LoadXP(id, player_class[id])
}
case 1:
{
player_class[id] = Duriel
niewidzialnosc_kucanie[id] = 1;
LoadXP(id, player_class[id])
}
case 2:
{
player_class[id] = Mefisto
c_silent[id]=1
c_jump[id]=2
LoadXP(id, player_class[id])
}
case 3:
{
player_class[id] = Hefasto
c_grenade[id] = 6
LoadXP(id, player_class[id])
}
case 4:
{
player_class[id] = Diablo
c_jump[id]=1
c_silent[id]=1
c_blind[id] = 20
LoadXP(id, player_class[id])
}
case 5:
{
player_class[id] = Baal
c_antyarchy[id]=0
LoadXP(id, player_class[id])
}
case 6:
{
player_class[id] = Upadly
c_darksteel[id]=29
c_blind[id] = 20
anty_flesh[id]=1
c_shaked[id]=5
LoadXP(id, player_class[id])
}
case 7:
{
player_class[id] = Imp
c_blink[id] = floatround(halflife_time())
LoadXP(id, player_class[id])
}
case 9:
{
select_class(id,lx)
}
}
CurWeapon(id)
give_knife(id)
quest_gracza[id] = wczytaj_aktualny_quest(id);
changeskin(id,1)
return PLUGIN_HANDLED
}
public PokazZwierze(id,lx[]) {
new text5[512]
asked_klass[id]=0
format(text5, 511,"\yZwierzeta: ^n\w1. \yIzual^t\wLevel: \r%i^n\w2. \ySkoczek^t\wLevel: \r%i^n\w3. \yZniewolony^t\wLevel: \r%i^n\w4. \yZgniatacz^t\wLevel: \r%i^n\w5. \yPijawka^t\wLevel: \r%i^n\w6. \yGigantyczny Pajak^t\wLevel: \r%i^n\w7. \ySniegowy Tulacz^t\wLevel: \r%i^n^n\w0. \yWstecz^n^n\rPrzed wyborem klasy poczekaj 5 sekund^n\dwww.Your-Game.PL",
player_class_lvl[id][17],player_class_lvl[id][18],player_class_lvl[id][19],player_class_lvl[id][20],player_class_lvl[id][21],player_class_lvl[id][22],player_class_lvl[id][23])
new siodma
siodma = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<9)
show_menu(id, siodma,text5, -1, "Zwierzeta")
}
public PokazZwierz(id, key) {
/* Menu:
---.Zwierzeta
1.Izual
2.Skoczek
3.Zniewolony
4.Zgniatacz
5.Pijawka
6.Gigantyczny Pajak
7.Sniegowy Tulacz
8.Piekielna Krowa
* 0:Wstecz
*/
new lx[28] // <-- tutaj wpisz liczbę swoich klas + 1(none)
g_haskit[id] = 0
c_redirect[id]=0
c_antymeek[id]=0
c_silent[id]=0
c_awp[id]=0
c_jump[id]=0
c_piorun[id]=0
c_vampire[id]=0
switch (key) {
case 0:
{
player_class[id] = Izual
c_silent[id]=1
c_redirect[id]=4
c_antymeek[id]=1
LoadXP(id, player_class[id])
}
case 1:
{
player_class[id] = Skoczek
LoadXP(id, player_class[id])
}
case 2:
{
player_class[id] = Zniewolony
LoadXP(id, player_class[id])
}
case 3:
{
player_class[id] = Zgniatacz
c_silent[id]=1
c_piorun[id]=1
LoadXP(id, player_class[id])
}
case 4:
{
player_class[id] = Pijawka
c_awp[id]=5
c_silent[id]=1
c_jump[id]=1
c_vampire[id]=1
LoadXP(id, player_class[id])
}
case 5:
{
player_class[id] = GigantycznyPajak
LoadXP(id, player_class[id])
}
case 6:
{
player_class[id] = SniegowyTulacz
c_piorun[id]=1
LoadXP(id, player_class[id])
}
case 8:
{
select_class(id,lx)
}
}
CurWeapon(id)
give_knife(id)
quest_gracza[id] = wczytaj_aktualny_quest(id);
return PLUGIN_HANDLED
}
public PokazPremiumy(id,lx[]) {
new text6[512]
asked_klass[id]=0
format(text6, 511,"\yPotwory: ^n\w1. \yGriswold^t\wLevel: \r%i^n\w2. \yKowal^t\wLevel: \r%i^n\w3. \yDemonolog^t\wLevel: \r%i^n^n\w0. \yWstecz^n^n\rKupno Premium Klasy na forum.^n\dwww.Your-Game.PL",player_class_lvl[id][24],player_class_lvl[id][25],player_class_lvl[id][26],player_class_lvl[id][27])
new usma
usma = (1<<0)|(1<<1)|(1<<2)|(1<<9)
show_menu(id, usma,text6, -1, "Premium")
}
public PokazPremium(id, key) {
/* Menu:
* Wybierz klase:
* 1:Griswold
* 2:Kowal
* 3:Demonolog
* 4:VipCztery
* 0:Wstecz
*/
new lx[28] // <-- tutaj wpisz liczbę swoich klas + 1(none)
g_haskit[id] = 0
c_antymeek[id]=0
c_silent[id]=0
c_antyarchy[id]=0
c_jump[id]=0
c_vampire[id]=0
niewidka[id]=0
switch (key) {
case 0:
if( get_user_flags(id) & ADMIN_LEVEL_E)
{
player_class[id] = Griswold
c_silent[id]=1
c_jump[id]=2
c_vampire[id]=random_num(1,2)
LoadXP(id, player_class[id])
}
case 1:
if( get_user_flags(id) & ADMIN_LEVEL_F)
{
player_class[id] = Kowal
c_silent[id]=1
c_jump[id]=2
niewidka[id]=1
c_piorun[id]=1
c_vampire[id]=random_num(1,2)
LoadXP(id, player_class[id])
}
case 2:
if( get_user_flags(id) & ADMIN_LEVEL_G)
{
player_class[id] = Demonolog
c_silent[id]=1
c_jump[id]=2
c_vampire[id]=random_num(1,2)
LoadXP(id, player_class[id])
}
case 9:
{
select_class(id,lx)
}
}
CurWeapon(id)
give_knife(id)
quest_gracza[id] = wczytaj_aktualny_quest(id);
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public check_class()
{
for (new id=0; id < 33; id++)
{
if((player_class[id] == Ninja) && (is_user_connected(id)))
{
if (is_user_alive(id)) set_user_armor(id,100)
}
set_gravitychange(id)
set_renderchange(id)
}
}
/* ==================================================================================================== */
public add_barbarian_bonus(id)
{
new headshot = read_data(3)
if (player_class[id] == Barbarzynca)
{
change_health(id,30,0,"")
}
if (player_class[id] == Mefisto)
{
change_health(id,15,0,"")
}
if (player_class[id] == Baal)
{
change_health(id,20,0,"")
}
if (player_class[id] == Griswold)
{
change_health(id,40,0,"")
}
if (player_class[id] == Kowal)
{
change_health(id,40,0,"")
}
if (player_class[id] == Demonolog)
{
change_health(id,40,0,"")
}
if (player_class[headshot] == SniegowyTulacz)
{
change_health(id,30,0,"")
}
}
/* ==================================================================================================== */
public add_bonus_necromancer(attacker_id,id)
{
if (player_class[attacker_id] == Nekromanta)
{
if (get_user_health(id) - 10 <= 0)
{
set_user_health(id,random_num(1,3))
}
else
{
new dmg = random_num(6,12)
change_health(id,-dmg,0,"")
change_health(attacker_id,1,0,"")
}
}
}
/* ==================================================================================================== */
//What modules are required
public plugin_modules()
{
require_module("engine")
require_module("cstrike")
require_module("fun")
require_module("fakemeta")
}
/* ==================================================================================================== */
//Find the nearest alive opponent in our view
public UTIL_FindNearestOpponent(id,maxdist)
{
new best = 99999
new entfound = -1
new MyOrigin[3]
get_user_origin(id,MyOrigin)
for (new i=1; i < MAX; i++)
{
if (i == id || !is_user_connected(i) || !is_user_alive(i) || get_user_team(id) == get_user_team(i))
continue
new TempOrigin[3],Float:fTempOrigin[3]
get_user_origin(i,TempOrigin)
IVecFVec(TempOrigin,fTempOrigin)
if (!UTIL_IsInView(id,i))
continue
new dist = get_distance ( MyOrigin,TempOrigin )
if ( dist < maxdist && dist < best)
{
best = dist
entfound = i
}
}
return entfound
}
/* ==================================================================================================== */
//Basicly see's if we can draw a straight line to the target without interference
public bool:UTIL_IsInView(id,target)
{
new Float:IdOrigin[3], Float:TargetOrigin[3], Float:ret[3]
new iIdOrigin[3], iTargetOrigin[3]
get_user_origin(id,iIdOrigin,1)
get_user_origin(target,iTargetOrigin,1)
IVecFVec(iIdOrigin,IdOrigin)
IVecFVec(iTargetOrigin, TargetOrigin)
if ( trace_line ( 1, IdOrigin, TargetOrigin, ret ) == target)
return true
if ( get_distance_f(TargetOrigin,ret) < 10.0)
return true
return false
}
/* ==================================================================================================== */
public item_dagon(id)
{
if (player_b_dagfired[id])
{
set_hudmessage(220, 30, 30, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
show_hudmessage(id, "Tego przedmiotu mozesz uzyc raz na runde")
return PLUGIN_HANDLED
}
//Target nearest non-friendly player
new target = UTIL_FindNearestOpponent(id,600+player_intelligence[id]*20)
if (target == -1)
return PLUGIN_HANDLED
new DagonDamage = player_b_dagon[id]*20
new Red = 0
if (player_b_dagon[id] == 1) Red = 175
else if (player_b_dagon[id] == 2) Red = 225
else if (player_b_dagon[id] > 2) Red = 255
//Dagon damage done is reduced by the targets dextery
DagonDamage-=player_dextery[target]*2
if (DagonDamage < 0)
DagonDamage = 0
new Hit[3]
get_user_origin(target,Hit)
//Create Lightning
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(1) // TE_BEAMENTPOINT
write_short(id)
write_coord(Hit[0])
write_coord(Hit[1])
write_coord(Hit[2])
write_short(sprite_lgt)
write_byte(0)
write_byte(1)
write_byte(3)
write_byte(10) //WITD
write_byte(60)
write_byte(Red)
write_byte(0)
write_byte(0)
write_byte(100) //BRIGT
write_byte(0)
message_end()
player_b_dagfired[id] = true
//Apply damage
change_health(target,-DagonDamage,id,"world")
Display_Fade(target,2600,2600,0,255,0,0,15)
hudmsg(id,2.0,"Twoje ciosy dagon przyjol %i, %i", DagonDamage, player_dextery[target]*2)
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
/* ==================================================================================================== */
//Will return 1 if user has amount of money and then substract
public bool:UTIL_Buyformoney(id,amount)
{
if (cs_get_user_money(id) >= amount)
{
cs_set_user_money(id,cs_get_user_money(id)-amount)
return true
}
else
{
hudmsg(id,2.0,"Nie masz tyle zlota")
return false
}
return false
}
public buyrune(id)
{
new text[513]
format(text, 512, "\ySklep z runami - ^n\w1. \yKup losowy przedmiot! \r$5000^n^n\w0. \yZamknij^n\y/mana,/m - sklepik za mane")
new keys = (1<<0)|(1<<9)
show_menu(id, keys, text)
return PLUGIN_HANDLED
}
public select_rune_menu(id, key)
{
switch(key)
{
case 0:
{
if (!UTIL_Buyformoney(id,5000))
return PLUGIN_HANDLED
award_item(id,0)
return PLUGIN_HANDLED
}
case 9:
{
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}
public upgrade_item(id)
{
if(item_durability[id]>0) item_durability[id] += random_num(-50,50)
if(item_durability[id]<1)
{
dropitem(id)
return
}
if(player_b_jumpx[id]>0) player_b_jumpx[id] += random_num(0,1)
if(player_b_vampire[id]>0)
{
if(player_b_vampire[id]>20) player_b_vampire[id] += random_num(-1,2)
else if(player_b_vampire[id]>10) player_b_vampire[id] += random_num(0,2)
else player_b_vampire[id]+= random_num(1,3)
}
if(player_b_damage[id]>0) player_b_damage[id] += random_num(0,3)
if(player_b_money[id]!=0) player_b_money[id]+= random_num(-100,300)
if(player_b_gravity[id]>0)
{
if(player_b_gravity[id]<3) player_b_gravity[id]+=random_num(0,2)
else if(player_b_gravity[id]<5) player_b_gravity[id]+=random_num(1,3)
else if(player_b_gravity[id]<8) player_b_gravity[id]+=random_num(-1,3)
else if(player_b_gravity[id]<10) player_b_gravity[id]+=random_num(0,1)
}
if(player_b_inv[id]>0)
{
if(player_b_inv[id]>200) player_b_inv[id]-=random_num(0,50)
else if(player_b_inv[id]>100) player_b_inv[id]-=random_num(-25,50)
else if(player_b_inv[id]>50) player_b_inv[id]-=random_num(-10,20)
else if(player_b_inv[id]>25) player_b_inv[id]-=random_num(-10,10)
}
if(player_b_grenade[id]>0)
{
if(player_b_grenade[id]>4) player_b_grenade[id]-=random_num(0,2)
else if(player_b_grenade[id]>2) player_b_grenade[id]-=random_num(0,1)
else if(player_b_grenade[id]==2) player_b_grenade[id]-=random_num(-1,1)
}
if(player_b_reduceH[id]>0) player_b_reduceH[id]-=random_num(0,player_b_reduceH[id])
if(player_b_theif[id]>0) player_b_theif[id] += random_num(0,250)
if(player_b_respawn[id]>0)
{
if(player_b_respawn[id]>2) player_b_respawn[id]-=random_num(0,1)
else if(player_b_respawn[id]>1) player_b_respawn[id]-=random_num(-1,1)
}
if(player_b_explode[id]>0)player_b_explode[id] += random_num(0,50)
if(player_b_heal[id]>0)
{
if(player_b_heal[id]>20) player_b_heal[id]+= random_num(-1,3)
else if(player_b_heal[id]>10) player_b_heal[id]+= random_num(0,4)
else player_b_heal[id]+= random_num(2,6)
}
if(player_b_blind[id]>0)
{
if(player_b_blind[id]>5) player_b_blind[id]-= random_num(0,2)
else if(player_b_blind[id]>1) player_b_blind[id]-= random_num(0,1)
}
if(player_b_teamheal[id]>0) player_b_teamheal[id] += random_num(0,5)
if(player_b_redirect[id]>0) player_b_redirect[id]+= random_num(0,2)
if(player_b_fireball[id]>0) player_b_fireball[id]+= random_num(0,33)
if(player_b_ghost[id]>0) player_b_ghost[id]+= random_num(0,1)
if(player_b_windwalk[id]>0) player_b_windwalk[id] += random_num(0,1)
if(player_b_dagon[id]>0) player_b_dagon[id] += random_num(0,1)
if(player_b_sniper[id]>0)
{
if(player_b_sniper[id]>5) player_b_sniper[id]-=random_num(0,2)
else if(player_b_sniper[id]>2) player_b_sniper[id]-=random_num(0,1)
else if(player_b_sniper[id]>1) player_b_sniper[id]-=random_num(-1,1)
}
if(player_b_awpmaster[id]>0)
{
if(player_b_awpmaster[id]>5) player_b_awpmaster[id]-=random_num(0,2)
else if(player_b_awpmaster[id]>2) player_b_awpmaster[id]-=random_num(0,1)
else if(player_b_awpmaster[id]>1) player_b_awpmaster[id]-=random_num(-1,1)
}
if(player_b_dglmaster[id]>0)
{
if(player_b_dglmaster[id]>5) player_b_dglmaster[id]-=random_num(0,2)
else if(player_b_dglmaster[id]>2) player_b_dglmaster[id]-=random_num(0,1)
else if(player_b_dglmaster[id]>1) player_b_dglmaster[id]-=random_num(-1,1)
}
if(player_b_m4master[id]>0)
{
if(player_b_m4master[id]>5) player_b_m4master[id]-=random_num(0,2)
else if(player_b_m4master[id]>2) player_b_m4master[id]-=random_num(0,1)
else if(player_b_m4master[id]>1) player_b_m4master[id]-=random_num(-1,1)
}
if(player_b_akmaster[id]>0)
{
if(player_b_akmaster[id]>5) player_b_akmaster[id]-=random_num(0,2)
else if(player_b_akmaster[id]>2) player_b_akmaster[id]-=random_num(0,1)
else if(player_b_akmaster[id]>1) player_b_akmaster[id]-=random_num(-1,1)
}
if(player_b_m3master[id]>0)
{
if(player_b_m3master[id]>5) player_b_m3master[id]-=random_num(0,2)
else if(player_b_m3master[id]>2) player_b_m3master[id]-=random_num(0,1)
else if(player_b_m3master[id]>1) player_b_m3master[id]-=random_num(-1,1)
}
if(player_b_extrastats[id]>0) player_b_extrastats[id] += random_num(0,2)
if(player_b_firetotem[id]>0) player_b_firetotem[id] += random_num(0,50)
if(player_b_darksteel[id]>0) player_b_darksteel[id] += random_num(0,2)
if(player_b_mine[id]>0) player_b_mine[id] += random_num(0,1)
if(player_sword[id]>0)
{
if(player_b_jumpx[id]==0 && random_num(0,10)==10) player_b_jumpx[id]=1
if(player_b_vampire[id]==0 && random_num(0,10)==10) player_b_vampire[id]=1
if(player_b_gravity[id]==0 && random_num(0,10)==10) player_b_gravity[id]=1
if(player_b_respawn[id]==0 && random_num(0,10)==5) player_b_respawn[id]=15
else if(player_b_respawn[id]>2 && random_num(0,10)==5) player_b_respawn[id]+=random_num(0,1)
if(player_b_ghost[id]==0 && random_num(0,10)==10) player_b_ghost[id]=1
if(player_b_darksteel[id]==0 && random_num(0,10)==10) player_b_darksteel[id]=1
}
if(player_ultra_armor[id]>0) player_ultra_armor[id]++
}
/* ==================================================================================================== */
//Blocks fullupdate (can reset hud)
public fullupdate(id)
{
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public add_bonus_scoutdamage(attacker_id,id,weapon)
{
if (player_b_sniper[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_SCOUT && player_class[attacker_id]!=Ninja)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
if (random_num(1,player_b_sniper[attacker_id]) == 1)
UTIL_Kill(attacker_id,id,"scout")
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public add_bonus_cawpmasterdamage(attacker_id,id,weapon)
{
if (c_awp[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_AWP)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
if (random_num(1,c_awp[attacker_id]) == 1)
UTIL_Kill(attacker_id,id,"awp")
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public add_bonus_m4masterdamage(attacker_id,id,weapon)
{
if (player_b_m4master[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_M4A1)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
if (random_num(1,player_b_m4master[attacker_id]) == 1)
UTIL_Kill(attacker_id,id,"m4a1")
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public add_bonus_akmasterdamage(attacker_id,id,weapon)
{
if (player_b_akmaster[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_AK47)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
if (random_num(1,player_b_akmaster[attacker_id]) == 1)
UTIL_Kill(attacker_id,id,"ak47")
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public add_bonus_awpmasterdamage(attacker_id,id,weapon)
{
if (player_b_awpmaster[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_AWP)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
if (random_num(1,player_b_awpmaster[attacker_id]) == 1)
UTIL_Kill(attacker_id,id,"awp")
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public add_bonus_dglmasterdamage(attacker_id,id,weapon)
{
if (player_b_dglmaster[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_DEAGLE)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
if (random_num(1,player_b_dglmaster[attacker_id]) == 1)
UTIL_Kill(attacker_id,id,"deagle")
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public add_bonus_m3masterdamage(attacker_id,id,weapon)
{
if (player_b_m3master[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_M3)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
if (random_num(1,player_b_m3master[attacker_id]) == 1)
UTIL_Kill(attacker_id,id,"m3")
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public add_bonus_illusion(attacker_id,id,weapon)
{
if(HasFlag(id,Flag_Illusion))
{
new weaponname[32]
get_weaponname( weapon, weaponname, 31 )
replace(weaponname, 31, "weapon_", "")
UTIL_Kill(attacker_id,id,weaponname)
}
}
/* ==================================================================================================== */
public item_take_damage(id,damage)
{
new itemdamage = get_cvar_num("diablo_durability")
if (player_item_id[id] > 0 && item_durability[id] >= 0 && itemdamage> 0 && damage > 5)
{
//Make item take damage
if (item_durability[id] - itemdamage <= 0)
{
item_durability[id]-=itemdamage
dropitem(id)
}
else
{
item_durability[id]-=itemdamage
}
}
}
/* ==================================================================================================== */
//From twistedeuphoria plugin
public Prethink_Doublejump(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED
if((get_user_button(id) & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(get_user_oldbutton(id) & IN_JUMP))
{
if((jumps[id] < player_b_jumpx[id]) || (jumps[id] < c_jump[id]))
{
dojump[id] = true
jumps[id]++
return PLUGIN_HANDLED
}
}
if((get_user_button(id) & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
{
jumps[id] = 0
return PLUGIN_CONTINUE
}
return PLUGIN_HANDLED
}
public Postthink_Doubeljump(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED
if(dojump[id] == true)
{
new Float:velocity[3]
entity_get_vector(id,EV_VEC_velocity,velocity)
velocity[2] = random_float(265.0,285.0)
entity_set_vector(id,EV_VEC_velocity,velocity)
dojump[id] = false
return PLUGIN_CONTINUE
}
return PLUGIN_HANDLED
}
/* ==================================================================================================== */
public eventGrenade(id)
{
new id = read_data(1)
if (player_b_grenade[id] > 0 || player_b_smokehit[id] > 0)
{
set_task(0.1, "makeGlow", id)
}
}
public makeGlow(id)
{
new grenade
new greModel[100]
grenade = get_grenade(id)
if( grenade )
{
entity_get_string(grenade, EV_SZ_model, greModel, 99)
if(equali(greModel, "models/w_hegrenade.mdl" ) && player_b_grenade[id] > 0 || c_grenade[id] > 0)
set_rendering(grenade, kRenderFxGlowShell, 255,0,0, kRenderNormal, 255)
if(equali(greModel, "models/w_smokegrenade.mdl" ) && player_b_smokehit[id] > 0 )
{
set_rendering(grenade, kRenderFxGlowShell, 0,255,255, kRenderNormal, 255)
}
}
}
/* ==================================================================================================== */
public BoostStats(id,amount)
{
player_strength[id]+=amount
player_dextery[id]+=amount
player_agility[id]+=amount
player_intelligence[id]+=amount
}
public SubtractStats(id,amount)
{
player_strength[id]-=amount
player_dextery[id]-=amount
player_agility[id]-=amount
player_intelligence[id]-=amount
}
public BoostRing(id)
{
switch(player_ring[id])
{
case 1: player_intelligence[id]+=5
case 2: player_strength[id]+=5
case 3: player_agility[id]+=5
}
}
public SubtractRing(id)
{
switch(player_ring[id])
{
case 1: player_intelligence[id]-=5
case 2: player_strength[id]-=5
case 3: player_agility[id]-=5
}
}
/* ==================================================================================================== */
public SelectBotRace(id)
{
if (!is_user_bot(id))
return PLUGIN_HANDLED
if (player_class[id] == 0)
{
player_class[id] = random_num(1,7)
//load_xp(id)
}
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
public showskills(id)
{
new Skillsinfo[768]
format(Skillsinfo,767,"Masz %i sily - to daje tobie %i zycia<br><br>Masz %i zwinnosci - to daje tobie szybsze bieganie o %i punkow i redukuje sile atakow magia %i%%<br><br>Masz %i zrecznosci - Redukuje obrazenia z normalnych atkow %0.0f%%<br><br>Masz %i inteligencji - to daje im wieksza moc przedmiotom ktorych da sie uzyc<br>",
player_strength[id],
player_strength[id]*2,
player_dextery[id],
floatround(player_dextery[id]*1.3),
player_dextery[id]*3,
player_agility[id],
player_damreduction[id]*100,
player_intelligence[id])
showitem(id,"Skills","None","None", Skillsinfo)
}
/* ==================================================================================================== */
public UTIL_Teleport(id,distance)
{
Set_Origin_Forward(id,distance)
new origin[3]
get_user_origin(id,origin)
//Particle burst ie. teleport effect
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY) //message begin
write_byte(TE_PARTICLEBURST )
write_coord(origin[0]) // origin
write_coord(origin[1]) // origin
write_coord(origin[2]) // origin
write_short(20) // radius
write_byte(1) // particle color
write_byte(4) // duration * 10 will be randomized a bit
message_end()
}
stock Set_Origin_Forward(id, distance)
{
new Float:origin[3]
new Float:angles[3]
new Float:teleport[3]
new Float:heightplus = 10.0
new Float:playerheight = 64.0
new bool:recalculate = false
new bool:foundheight = false
pev(id,pev_origin,origin)
pev(id,pev_angles,angles)
teleport[0] = origin[0] + distance * floatcos(angles[1],degrees) * floatabs(floatcos(angles[0],degrees));
teleport[1] = origin[1] + distance * floatsin(angles[1],degrees) * floatabs(floatcos(angles[0],degrees));
teleport[2] = origin[2]+heightplus
while (!Can_Trace_Line_Origin(origin,teleport) || Is_Point_Stuck(teleport,48.0))
{
if (distance < 10)
break;
//First see if we can raise the height to MAX playerheight, if we can, it's a hill and we can teleport there
for (new i=1; i < playerheight+20.0; i++)
{
teleport[2]+=i
if (Can_Trace_Line_Origin(origin,teleport) && !Is_Point_Stuck(teleport,48.0))
{
foundheight = true
heightplus += i
break
}
teleport[2]-=i
}
if (foundheight)
break
recalculate = true
distance-=10
teleport[0] = origin[0] + (distance+32) * floatcos(angles[1],degrees) * floatabs(floatcos(angles[0],degrees));
teleport[1] = origin[1] + (distance+32) * floatsin(angles[1],degrees) * floatabs(floatcos(angles[0],degrees));
teleport[2] = origin[2]+heightplus
}
if (!recalculate)
{
set_pev(id,pev_origin,teleport)
return PLUGIN_CONTINUE
}
teleport[0] = origin[0] + distance * floatcos(angles[1],degrees) * floatabs(floatcos(angles[0],degrees));
teleport[1] = origin[1] + distance * floatsin(angles[1],degrees) * floatabs(floatcos(angles[0],degrees));
teleport[2] = origin[2]+heightplus
set_pev(id,pev_origin,teleport)
return PLUGIN_CONTINUE
}
stock bool:Can_Trace_Line_Origin(Float:origin1[3], Float:origin2[3])
{
new Float:Origin_Return[3]
new Float:temp1[3]
new Float:temp2[3]
temp1[x] = origin1[x]
temp1[y] = origin1[y]
temp1[z] = origin1[z]-30
temp2[x] = origin2[x]
temp2[y] = origin2[y]
temp2[z] = origin2[z]-30
trace_line(-1, temp1, temp2, Origin_Return)
if (get_distance_f(Origin_Return,temp2) < 1.0)
return true
return false
}
stock bool:Is_Point_Stuck(Float:Origin[3], Float:hullsize)
{
new Float:temp[3]
new Float:iterator = hullsize/3
temp[2] = Origin[2]
for (new Float:i=Origin[0]-hullsize; i < Origin[0]+hullsize; i+=iterator)
{
for (new Float:j=Origin[1]-hullsize; j < Origin[1]+hullsize; j+=iterator)
{
//72 mod 6 = 0
for (new Float:k=Origin[2]-CS_PLAYER_HEIGHT; k < Origin[2]+CS_PLAYER_HEIGHT; k+=6)
{
temp[0] = i
temp[1] = j
temp[2] = k
if (point_contents(temp) != -1)
return true
}
}
}
return false
}
stock Effect_Bleed(id,color)
{
new origin[3]
get_user_origin(id,origin)
new dx, dy, dz
for(new i = 0; i < 3; i++)
{
dx = random_num(-15,15)
dy = random_num(-15,15)
dz = random_num(-20,25)
for(new j = 0; j < 2; j++)
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_BLOODSPRITE)
write_coord(origin[0]+(dx*j))
write_coord(origin[1]+(dy*j))
write_coord(origin[2]+(dz*j))
write_short(sprite_blood_spray)
write_short(sprite_blood_drop)
write_byte(color) // color index
write_byte(8) // size
message_end()
}
}
}
/* ==================================================================================================== */
public Use_Spell(id)
{
if (player_global_cooldown[id] + GLOBAL_COOLDOWN >= halflife_time())
return PLUGIN_CONTINUE
else
player_global_cooldown[id] = halflife_time()
if (!is_user_alive(id) || !freeze_ended)
return PLUGIN_CONTINUE
/*See if USE button is used for anything else..
1) Close to bomb
2) Close to hostage
3) Close to switch
4) Close to door
*/
new Float:origin[3]
pev(id, pev_origin, origin)
//Func door and func door rotating
new aimid, body
get_user_aiming ( id, aimid, body )
if (aimid > 0)
{
new classname[32]
pev(aimid,pev_classname,classname,31)
if (equal(classname,"func_door_rotating") || equal(classname,"func_door") || equal(classname,"func_button"))
{
new Float:doororigin[3]
pev(aimid, pev_origin, doororigin)
if (get_distance_f(origin, doororigin) < 70 && UTIL_In_FOV(id,aimid))
return PLUGIN_CONTINUE
}
}
//Bomb condition
new bomb
if ((bomb = find_ent_by_model(-1, "grenade", "models/w_c4.mdl")))
{
new Float:bombpos[3]
pev(bomb, pev_origin, bombpos)
//We are near the bomb and have it in FOV.
if (get_distance_f(origin, bombpos) < 100 && UTIL_In_FOV(id,bomb))
return PLUGIN_CONTINUE
}
//Hostage
new hostage = engfunc(EngFunc_FindEntityByString, -1,"classname", "hostage_entity")
while (hostage)
{
new Float:hospos[3]
pev(hostage, pev_origin, hospos)
if (get_distance_f(origin, hospos) < 70 && UTIL_In_FOV(id,hostage))
return PLUGIN_CONTINUE
hostage = engfunc(EngFunc_FindEntityByString, hostage,"classname", "hostage_entity")
}
check_magic(id)
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
//Angle to all targets in fov
stock Float:Find_Angle(Core,Target,Float:dist)
{
new Float:vec2LOS[2]
new Float:flDot
new Float:CoreOrigin[3]
new Float:TargetOrigin[3]
new Float:CoreAngles[3]
pev(Core,pev_origin,CoreOrigin)
pev(Target,pev_origin,TargetOrigin)
if (get_distance_f(CoreOrigin,TargetOrigin) > dist)
return 0.0
pev(Core,pev_angles, CoreAngles)
for ( new i = 0; i < 2; i++ )
vec2LOS[i] = TargetOrigin[i] - CoreOrigin[i]
new Float:veclength = Vec2DLength(vec2LOS)
//Normalize V2LOS
if (veclength <= 0.0)
{
vec2LOS[x] = 0.0
vec2LOS[y] = 0.0
}
else
{
new Float:flLen = 1.0 / veclength;
vec2LOS[x] = vec2LOS[x]*flLen
vec2LOS[y] = vec2LOS[y]*flLen
}
//Do a makevector to make v_forward right
engfunc(EngFunc_MakeVectors,CoreAngles)
new Float:v_forward[3]
new Float:v_forward2D[2]
get_global_vector(GL_v_forward, v_forward)
v_forward2D[x] = v_forward[x]
v_forward2D[y] = v_forward[y]
flDot = vec2LOS[x]*v_forward2D[x]+vec2LOS[y]*v_forward2D[y]
if ( flDot > 0.5 )
{
return flDot
}
return 0.0
}
stock Float:Vec2DLength( Float:Vec[2] )
{
return floatsqroot(Vec[x]*Vec[x] + Vec[y]*Vec[y] )
}
stock bool:UTIL_In_FOV(id,target)
{
if (Find_Angle(id,target,9999.9) > 0.0)
return true
return false
}
/* ==================================================================================================== */
public Greet_Player(id)
{
id-=TASK_GREET
new name[32]
get_user_name(id,name,31)
ColorChat(id,GREEN, "[DiabloMod]^x01 Witaj^x04 %s^x01 w NewDiabloMoD, wpisz^x03 /klasa^x01 aby wybrac postac. Forum:^x04 www.Your-Game.PL", name, "5.6 PL")
}
/* ==================================================================================================== */
/* ==================================================================================================== */
public changerace(id)
{
if(freeze_ended && player_class[id]!=NONE ) set_user_health(id,0)
if(player_class[id]!=NONE) savexpcom(id)
player_class[id]=NONE
client_connect(id)
select_class_query(id)
}
/* ==================================================================================================== */
//Disable autohelp messages and display our own.
public FW_WriteString(string[])
{
if (equal(string,""))
return FMRES_IGNORED
//Disable autohelp
if (equal(string,"#Hint_press_buy_to_purchase") || equal(string,"#Hint_press_buy_to_purchase "))
{
write_string( "" );
return FMRES_SUPERCEDE
}
if (equal(string, "#Hint_spotted_a_friend") || equal(string, "#Hint_you_have_the_bomb"))
{
write_string( "" );
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
stock hudmsg(id,Float:display_time,const fmt[], {Float,Sql,Result,_}:...)
{
if (player_huddelay[id] >= 0.03*4)
return PLUGIN_CONTINUE
new buffer[512]
vformat(buffer, 511, fmt, 4)
set_hudmessage ( 255, 0, 0, -1.0, 0.4 + player_huddelay[id], 0, display_time/2, display_time, 0.1, 0.2, -1 )
show_hudmessage(id, buffer)
player_huddelay[id]+=0.03
remove_task(id+TASK_HUD)
set_task(display_time, "hudmsg_clear", id+TASK_HUD, "", 0, "a", 3)
return PLUGIN_CONTINUE
}
public hudmsg_clear(id)
{
new pid = id-TASK_HUD
player_huddelay[pid]=0.0
}
/* ==================================================================================================== */
public item_firetotem(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Mozesz uzyc raz w rundzie totemu ognia")
}
else
{
used_item[id] = true
Effect_Ignite_Totem(id,7)
}
}
stock Effect_Ignite_Totem(id,seconds)
{
new origin[3]
pev(id,pev_origin,origin)
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Ignite_Totem")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_TRIGGER)
set_pev(ent,pev_origin,origin)
set_pev(ent,pev_ltime, halflife_time() + seconds + 0.1)
engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_ignite.mdl")
set_rendering ( ent, kRenderFxGlowShell, 250,150,0, kRenderFxNone, 255 )
engfunc(EngFunc_DropToFloor,ent)
set_pev(ent,pev_euser3,0)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
}
public Effect_Ignite_Totem_Think(ent)
{
//Safe check because effect on death
if (!freeze_ended)
remove_entity(ent)
if (!is_valid_ent(ent))
return PLUGIN_CONTINUE
new id = pev(ent,pev_owner)
//Apply and destroy
if (pev(ent,pev_euser3) == 1)
{
new entlist[513]
new numfound = find_sphere_class(ent,"player",player_b_firetotem[id]+0.0,entlist,512)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
//This totem can hit the caster
if (pid == id && is_user_alive(id))
{
Effect_Ignite(pid,id,4)
hudmsg(pid,3.0,"Palisz sie. Strzel do kogos aby przestac sie palic!")
continue
}
if (!is_user_alive(pid) || get_user_team(id) == get_user_team(pid))
continue
//Dextery makes the fire damage less
if (player_dextery[pid] > 20)
Effect_Ignite(pid,id,1)
else if (player_dextery[pid] > 15)
Effect_Ignite(pid,id,2)
else if (player_dextery[pid] > 10)
Effect_Ignite(pid,id,3)
else
Effect_Ignite(pid,id,4)
hudmsg(pid,3.0,"Palisz sie. Strzel do kogos aby przestac sie palic!")
}
remove_entity(ent)
return PLUGIN_CONTINUE
}
//Entity should be destroyed because livetime is over
if (pev(ent,pev_ltime) < halflife_time())
{
set_pev(ent,pev_euser3,1)
//Show animation and die
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + player_b_firetotem[id]);
write_coord( origin[2] + player_b_firetotem[id]);
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 150 ); // r, g, b
write_byte( 150 ); // r, g, b
write_byte( 0 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
set_pev(ent,pev_nextthink, halflife_time() + 0.2)
}
else
{
set_pev(ent,pev_nextthink, halflife_time() + 1.5)
}
return PLUGIN_CONTINUE
}
stock Spawn_Ent(const classname[])
{
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, classname))
set_pev(ent, pev_origin, {0.0, 0.0, 0.0})
dllfunc(DLLFunc_Spawn, ent)
return ent
}
stock Effect_Ignite(id,attacker,damage)
{
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Ignite")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_ltime, halflife_time() + 99 + 0.1)
set_pev(ent,pev_solid,SOLID_NOT)
set_pev(ent,pev_euser1,attacker)
set_pev(ent,pev_euser2,damage)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
AddFlag(id,Flag_Ignite)
}
//euser3 = destroy and apply effect
public Effect_Ignite_Think(ent)
{
new id = pev(ent,pev_owner)
attacker = pev(ent,pev_euser1)
new damage = pev(ent,pev_euser2)
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id) || !HasFlag(id,Flag_Ignite))
{
RemoveFlag(id,Flag_Ignite)
Remove_All_Tents(id)
Display_Icon(id ,0 ,"dmg_heat" ,200,0,0)
remove_entity(ent)
return PLUGIN_CONTINUE
}
//Display ignite tent and icon
Display_Tent(id,sprite_ignite,2)
Display_Icon(id ,1 ,"dmg_heat" ,200,0,0)
new origin[3]
get_user_origin(id,origin)
//Make some burning effects
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( TE_SMOKE ) // 5
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2])
write_short( sprite_smoke )
write_byte( 22 ) // 10
write_byte( 10 ) // 10
message_end()
//Decals
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( TE_GUNSHOTDECAL ) // decal and ricochet sound
write_coord( origin[0] ) //pos
write_coord( origin[1] )
write_coord( origin[2] )
write_short (0) // I have no idea what thats supposed to be
write_byte (random_num(199,201)) //decal
message_end()
//Do the actual damage
change_health(id,-damage,attacker,"world")
set_pev(ent,pev_nextthink, halflife_time() + 1.5)
return PLUGIN_CONTINUE
}
stock AddFlag(id,flag)
{
afflicted[id][flag] = 1
}
stock RemoveFlag(id,flag)
{
afflicted[id][flag] = 0
}
stock bool:HasFlag(id,flag)
{
if (afflicted[id][flag])
return true
return false
}
stock Display_Tent(id,sprite, seconds)
{
message_begin(MSG_ALL,SVC_TEMPENTITY)
write_byte(TE_PLAYERATTACHMENT)
write_byte(id)
write_coord(40) //Offset
write_short(sprite)
write_short(seconds*10)
message_end()
}
stock Remove_All_Tents(id)
{
message_begin(MSG_ALL ,SVC_TEMPENTITY) //message begin
write_byte(TE_KILLPLAYERATTACHMENTS)
write_byte(id) // entity index of player
message_end()
}
stock Find_Best_Angle(id,Float:dist, same_team = false)
{
new Float:bestangle = 0.0
new winner = -1
for (new i=0; i < MAX; i++)
{
if (!is_user_alive(i) || i == id || (get_user_team(i) == get_user_team(id) && !same_team))
continue
if (get_user_team(i) != get_user_team(id) && same_team)
continue
//User has spell immunity, don't target
new Float:c_angle = Find_Angle(id,i,dist)
if (c_angle > bestangle && Can_Trace_Line(id,i))
{
winner = i
bestangle = c_angle
}
}
return winner
}
//This is an interpolation. We make tree lines with different height as to make sure
stock bool:Can_Trace_Line(id, target)
{
for (new i=-35; i < 60; i+=35)
{
new Float:Origin_Id[3]
new Float:Origin_Target[3]
new Float:Origin_Return[3]
pev(id,pev_origin,Origin_Id)
pev(target,pev_origin,Origin_Target)
Origin_Id[z] = Origin_Id[z] + i
Origin_Target[z] = Origin_Target[z] + i
trace_line(-1, Origin_Id, Origin_Target, Origin_Return)
if (get_distance_f(Origin_Return,Origin_Target) < 25.0)
return true
}
return false
}
public item_hook(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Haku mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
new target = Find_Best_Angle(id,1000.0,false)
if (!is_valid_ent(target))
{
hudmsg(id,2.0,"Obiekt jest poza zasiegiem.")
return PLUGIN_CONTINUE
}
AddFlag(id,Flag_Hooking)
set_user_gravity(target,0.0)
set_task(0.1,"hook_prethink",id+TASK_HOOK,"",0,"b")
hooked[id] = target
hook_prethink(id+TASK_HOOK)
emit_sound(id,CHAN_VOICE,"weapons/xbow_hit2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
used_item[id] = true
return PLUGIN_HANDLED
}
public hook_prethink(id)
{
id -= TASK_HOOK
if(!is_user_alive(id) || !is_user_alive(hooked[id]))
{
RemoveFlag(id,Flag_Hooking)
return PLUGIN_HANDLED
}
if (get_user_button(id) & ~IN_USE)
{
RemoveFlag(id,Flag_Hooking)
return PLUGIN_HANDLED
}
if(!HasFlag(id,Flag_Hooking))
{
if (is_user_alive(hooked[id]))
set_user_gravity(id,1.0)
remove_task(id+TASK_HOOK)
return PLUGIN_HANDLED
}
//Get Id's origin
static origin1[3]
get_user_origin(id,origin1)
static origin2[3]
get_user_origin(hooked[id],origin2)
//Create blue beam
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(1) //TE_BEAMENTPOINT
write_short(id) // start entity
write_coord(origin2[0])
write_coord(origin2[1])
write_coord(origin2[2])
write_short(sprite_line)
write_byte(1) // framestart
write_byte(1) // framerate
write_byte(2) // life in 0.1's
write_byte(5) // width
write_byte(0) // noise
write_byte(0) // red
write_byte(0) // green
write_byte(255) // blue
write_byte(200) // brightness
write_byte(0) // speed
message_end()
//Calculate Velocity
new Float:velocity[3]
velocity[0] = (float(origin1[0]) - float(origin2[0])) * 3.0
velocity[1] = (float(origin1[1]) - float(origin2[1])) * 3.0
velocity[2] = (float(origin1[2]) - float(origin2[2])) * 3.0
new Float:dy
dy = velocity[0]*velocity[0] + velocity[1]*velocity[1] + velocity[2]*velocity[2]
new Float:dx
dx = (4+player_intelligence[id]/2) * 120.0 / floatsqroot(dy)
velocity[0] *= dx
velocity[1] *= dx
velocity[2] *= dx
set_pev(hooked[id],pev_velocity,velocity)
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
public item_gravitybomb(id)
{
if (pev(id,pev_flags) & FL_ONGROUND)
{
hudmsg(id,2.0,"Musisz byc w powietrzu!")
return PLUGIN_CONTINUE
}
if (halflife_time()-gravitytimer[id] <= 5)
{
hudmsg(id,2.0,"Ten przedmiot, moze byc uzyty co kazde 5 sekund")
return PLUGIN_CONTINUE
}
gravitytimer[id] = floatround(halflife_time())
new origin[3]
get_user_origin(id,origin)
if (origin[2] == 0)
earthstomp[id] = 1
else
earthstomp[id] = origin[2]
set_user_gravity(id,5.0)
falling[id] = true
return PLUGIN_CONTINUE
}
public add_bonus_stomp(id)
{
set_gravitychange(id)
new origin[3]
get_user_origin(id,origin)
new dam = earthstomp[id]-origin[2]
earthstomp[id] = 0
//If jump is is high enough, apply some shake effect and deal damage, 300 = down from BOMB A in dust2
if (dam < 85)
return PLUGIN_CONTINUE
dam = dam-85
message_begin(MSG_ONE , get_user_msgid("ScreenShake") , {0,0,0} ,id)
write_short( 1<<14 );
write_short( 1<<12 );
write_short( 1<<14 );
message_end();
new entlist[513]
new numfound = find_sphere_class(id,"player",230.0+player_strength[id]*2,entlist,512)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
if (pid == id || !is_user_alive(pid))
continue
if (get_user_team(id) == get_user_team(pid))
continue
if (player_b_antyarchy[pid] > 0 || c_antyarchy[pid] > 0)
continue
if (!(pev(pid, pev_flags) & FL_ONGROUND)) continue
new Float:id_origin[3]
new Float:pid_origin[3]
new Float:delta_vec[3]
pev(id,pev_origin,id_origin)
pev(pid,pev_origin,pid_origin)
delta_vec[x] = (pid_origin[x]-id_origin[x])+10
delta_vec[y] = (pid_origin[y]-id_origin[y])+10
delta_vec[z] = (pid_origin[z]-id_origin[z])+200
set_pev(pid,pev_velocity,delta_vec)
message_begin(MSG_ONE , get_user_msgid("ScreenShake") , {0,0,0} ,pid)
write_short( 1<<14 );
write_short( 1<<12 );
write_short( 1<<14 );
message_end();
change_health(pid,-dam,id,"world")
}
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
public item_rot(id)
{
if (used_item[id])
{
RemoveFlag(id,Flag_Rot)
used_item[id] = false
}
else
{
if (find_ent_by_owner(-1,"Effect_Rot",id) > 0)
return PLUGIN_CONTINUE
Create_Rot(id)
used_item[id] = true
}
return PLUGIN_CONTINUE
}
public Create_Rot(id)
{
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Rot")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_NOT)
AddFlag(id,Flag_Rot)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
}
public Effect_Rot_Think(ent)
{
new id = pev(ent,pev_owner)
if (!is_user_alive(id) || !HasFlag(id,Flag_Rot) || !freeze_ended)
{
Display_Icon(id,0,"dmg_bio",255,255,0)
set_user_maxspeed(id,245.0+player_dextery[id])
set_renderchange(id)
remove_entity(ent)
return PLUGIN_CONTINUE
}
set_user_maxspeed(id,252.0+player_dextery[id]+15)
Display_Icon(id,1,"dmg_bio",255,150,0)
set_renderchange(id)
new entlist[513]
new numfound = find_sphere_class(id,"player",250.0,entlist,512)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
if(player_b_antyfs[ pid ] > 0 || c_antyfs[ pid ] > 0)
continue
if (pid == id || !is_user_alive(pid))
continue
if (get_user_team(id) == get_user_team(pid))
continue
//Rot him!
if (random_num(1,2) == 1) Display_Fade(id,1<<14,1<<14,1<<16,255,155,50,230)
change_health(pid,-45,id,"world")
Effect_Bleed(pid,100)
Create_Slow(pid,3)
}
change_health(id,-10,id,"world")
set_pev(ent,pev_nextthink, halflife_time() + 0.8)
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
//Daze player
stock Create_Slow(id,seconds)
{
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Slow")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_ltime, halflife_time() + seconds + 0.1)
set_pev(ent,pev_solid,SOLID_NOT)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
AddFlag(id,Flag_Dazed)
}
public Effect_Slow_Think(ent)
{
new id = pev(ent,pev_owner)
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
Display_Icon(id,0,"dmg_heat",255,255,0)
RemoveFlag(id,Flag_Dazed)
set_user_maxspeed(id,245.0+player_agility[id])
remove_entity(ent)
return PLUGIN_CONTINUE
}
set_user_maxspeed(id,245.0-50)
Display_Icon(id,1,"dmg_heat",255,255,0)
set_pev(ent,pev_nextthink, halflife_time() + 1.0)
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
stock AddTimedFlag(id,flag,seconds)
{
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Timedflag")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_ltime, halflife_time() + seconds + 0.1)
set_pev(ent,pev_solid,SOLID_NOT)
set_pev(ent,pev_euser3,flag)
AddFlag(id,flag)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
}
public Effect_Timedflag_Think(ent)
{
new id = pev(ent,pev_owner)
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
RemoveFlag(id,pev(ent,pev_euser3))
remove_entity(ent)
return PLUGIN_CONTINUE
}
set_pev(ent,pev_nextthink, halflife_time() + 1.0)
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
public item_illusion(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Ten przedmiot mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
AddTimedFlag(id,Flag_Illusion,7)
message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id )
write_byte( 7)
write_byte( 0 )
message_end()
used_item[id] = true
use_addtofullpack = true
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
public item_money_shield(id)
{
if (used_item[id])
{
RemoveFlag(id,Flag_Moneyshield)
used_item[id] = false
}
else
{
if (find_ent_by_owner(-1,"Effect_MShield",id) > 0)
return PLUGIN_CONTINUE
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_MShield")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_NOT)
AddFlag(id,Flag_Moneyshield)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
used_item[id] = true
}
return PLUGIN_CONTINUE
}
public Effect_MShield_Think(ent)
{
new id = pev(ent,pev_owner)
if (!is_user_alive(id) || cs_get_user_money(id) <= 0 || !HasFlag(id,Flag_Moneyshield) || !freeze_ended)
{
RemoveFlag(id,Flag_Moneyshield)
set_renderchange(id)
Display_Icon(id,0,"suithelmet_empty",255,255,255)
remove_entity(ent)
return PLUGIN_CONTINUE
}
if (cs_get_user_money(id)-250 < 0)
cs_set_user_money(id,0)
else
cs_set_user_money(id,cs_get_user_money(id)-250)
set_renderchange(id)
Display_Icon(id,1,"suithelmet_empty",255,255,255)
set_pev(ent,pev_nextthink, halflife_time() + 1.0)
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
public item_mine(id)
{
if (player_b_mine[id] >0 && is_user_alive(id) || c_mine[id] >0 && is_user_alive(id))
{
new count = 0
new ents = -1
ents = find_ent_by_owner(ents,"Mine",id)
while (ents > 0)
{
count++
ents = find_ent_by_owner(ents,"Mine",id)
}
if (count > 2)
{
hudmsg(id,2.0,"Mozesz polozyc maksymalnie 3 miny na runde")
return PLUGIN_CONTINUE
}
new origin[3]
pev(id,pev_origin,origin)
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Mine")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_movetype,MOVETYPE_TOSS)
set_pev(ent,pev_origin,origin)
set_pev(ent,pev_solid,SOLID_BBOX)
engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/mine.mdl")
engfunc(EngFunc_SetSize,ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0})
drop_to_floor(ent)
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01)
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50)
use_addtofullpack = true
}
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
public item_teamshield(id)
{
if (used_item[id])
{
RemoveFlag(id,Flag_Teamshield)
used_item[id] = false
set_renderchange(id)
}
else
{
new target = Find_Best_Angle(id,1000.0,true)
if (!is_valid_ent(target))
{
hudmsg(id,2.0,"Zaden cel nie jest zasiegu do tarczy")
return PLUGIN_CONTINUE
}
if (pev(target,pev_rendermode) == kRenderTransTexture || player_item_id[target] == 17 || player_class[target] == Ninja)
{
hudmsg(id,2.0,"Nie mozna wyczarowac tarczy na niewidzialnym graczu")
return PLUGIN_CONTINUE
}
if (find_ent_by_owner(-1,"Effect_Teamshield",id) > 0)
return PLUGIN_CONTINUE
if (get_user_health(target)+player_b_teamheal[id] <= race_heal[player_class[target]]+player_strength[target]*2)
change_health(target,player_b_teamheal[id],0,"")
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Teamshield")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_NOT)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
set_pev(ent,pev_euser2, target)
AddFlag(id,Flag_Teamshield)
AddFlag(target,Flag_Teamshield_Target)
used_item[id] = true
set_renderchange(target)
}
return PLUGIN_CONTINUE
}
public Effect_Teamshield_Think(ent)
{
new id = pev(ent,pev_owner)
new victim = pev(ent,pev_euser2)
new Float: vec1[3]
new Float: vec2[3]
new Float: vec3[3]
entity_get_vector(id,EV_VEC_origin,vec1)
entity_get_vector(victim ,EV_VEC_origin,vec2)
new hit = trace_line ( id, vec1, vec2, vec3 )
if (hit != victim || !is_user_alive(id) || !is_user_alive(victim) || !Can_Trace_Line(id,victim) || !UTIL_In_FOV(id,victim) || !HasFlag(id,Flag_Teamshield) || !freeze_ended)
{
RemoveFlag(id,Flag_Teamshield)
RemoveFlag(victim,Flag_Teamshield_Target)
remove_entity(ent)
set_renderchange(victim)
return PLUGIN_CONTINUE
}
else
set_pev(ent,pev_nextthink, halflife_time() + 0.3)
new origin1[3]
new origin2[3]
get_user_origin(id,origin1)
get_user_origin(victim,origin2)
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (TE_BEAMPOINTS)
write_coord(origin1[0])
write_coord(origin1[1])
write_coord(origin1[2]+8)
write_coord(origin2[0])
write_coord(origin2[1])
write_coord(origin2[2]+8)
write_short(sprite_laser);
write_byte(1) // framestart
write_byte(1) // framerate
write_byte(3) // life
write_byte(5) // width
write_byte(10) // noise
write_byte(0) // r, g, b (red)
write_byte(255) // r, g, b (green)
write_byte(0) // r, g, b (blue)
write_byte(45) // brightness
write_byte(5) // speed
message_end()
set_renderchange(victim)
return PLUGIN_CONTINUE
}
/* ==================================================================================================== */
//Find the owner that has target as target and the specific classname
public find_owner_by_euser(target,classname[])
{
new ent = -1
ent = find_ent_by_class(ent,classname)
while (ent > 0)
{
if (pev(ent,pev_euser2) == target)
return pev(ent,pev_owner)
ent = find_ent_by_class(ent,classname)
}
return -1
}
/* ==================================================================================================== */
public item_totemheal(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Leczacy Totem mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
used_item[id] = true
new origin[3]
pev(id,pev_origin,origin)
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Healing_Totem")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_TRIGGER)
set_pev(ent,pev_origin,origin)
set_pev(ent,pev_ltime, halflife_time() + 7 + 0.1)
engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_heal.mdl")
set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 )
engfunc(EngFunc_DropToFloor,ent)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
return PLUGIN_CONTINUE
}
public Effect_Healing_Totem_Think(ent)
{
new id = pev(ent,pev_owner)
new totem_dist = 300
new amount_healed = player_b_heal[id]
//We have emitted beam. Apply effect (this is delayed)
if (pev(ent,pev_euser2) == 1)
{
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and damage them
new entlist[513]
new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
if (get_user_team(pid) != get_user_team(id))
continue
if (is_user_alive(pid)) change_health(pid,amount_healed,0,"")
}
set_pev(ent,pev_euser2,0)
set_pev(ent,pev_nextthink, halflife_time() + 1.5)
return PLUGIN_CONTINUE
}
//Entity should be destroyed because livetime is over
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
remove_entity(ent)
return PLUGIN_CONTINUE
}
//If this object is almost dead, apply some render to make it fade out
if (pev(ent,pev_ltime)-2.0 < halflife_time())
set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 )
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + totem_dist );
write_coord( origin[2] + totem_dist );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // r, g, b
write_byte( 100 ); // r, g, b
write_byte( 100 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
set_pev(ent,pev_euser2,1)
set_pev(ent,pev_nextthink, halflife_time() + 0.5)
return PLUGIN_CONTINUE
}
public freeze_over1()
{
round_status=1
agi = BASE_SPEED;
new players[32], num
get_players(players,num,"a")
for(new i=0 ; i<num ; i++)
{
set_speedchange(players[i])
}
}
public freeze_begin1()
{
round_status=0
}
public funcReleaseVic(id)
{
DemageTake[id]=0
remove_task(id+GLUTON)
}
public funcReleaseVic2(id)
{
agi = BASE_SPEED;
if(round_status==1)
set_speedchange(id)
}
public funcDemageVic(id,attacker)
{
id-=GLUTON
if(get_user_health(id)>10)
set_task(2.0, "funcDemageVic", id+GLUTON)
DoDamage(id, attacker1, 5);
}
public set_speedchange(id)
{
if(DemageTake[id]==1) agi=(BASE_SPEED / 2)
else agi=BASE_SPEED
if (is_user_connected(id) && freeze_ended)
{
new speeds
if(player_class[id] == Ninja) speeds= 40 + floatround(player_dextery[id]*1.3)
else if(player_class[id] == Zabojca) speeds= 30 + floatround(player_dextery[id]*1.3)
else if(player_class[id] == Baal) speeds= 40 + floatround(player_dextery[id]*1.3)
else if(player_class[id] == Mag) speeds= 20 + floatround(player_dextery[id]*1.3)
else if(player_class[id] == Duriel) speeds= -10 + floatround(player_dextery[id]*1.3)
else if(player_class[id] == Barbarzynca) speeds= -10 + floatround(player_dextery[id]*1.3)
else speeds= floatround(player_dextery[id]*1.3)
set_user_maxspeed(id, agi + speeds)
}
}
public set_renderchange(id)
{
if(is_user_connected(id) && is_user_alive(id))
{
if(!naswietlony[id])
{
new render = 255
if (player_class[id] == Ninja)
{
new inv_bonus = 255 - player_b_inv[id]
render = 8
if(player_b_inv[id]>0)
{
while(inv_bonus>0)
{
inv_bonus-=20
render--
}
}
if(player_b_usingwind[id]==1)
{
render/=2
}
if(render<0) render=0
if(HasFlag(id,Flag_Moneyshield)||HasFlag(id,Flag_Rot)||HasFlag(id,Flag_Teamshield_Target)) render*=2
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, render)
}
else if (player_class[id] == Mnich)
{
new inv_bonus = 255 - player_b_inv[id]
render = 200
if(player_b_inv[id]>0)
{
while(inv_bonus>0)
{
inv_bonus-=20
render--
}
}
if(player_b_usingwind[id]==1)
{
render/=2
}
if(render<0) render=0
if(HasFlag(id,Flag_Moneyshield)||HasFlag(id,Flag_Rot)||HasFlag(id,Flag_Teamshield_Target)) render*=2
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, render)
}
else if (player_class[id] == Mefisto)
{
new inv_bonus = 255 - player_b_inv[id]
render = 150
if(player_b_inv[id]>0)
{
while(inv_bonus>0)
{
inv_bonus-=20
render--
}
}
if(player_b_usingwind[id]==1)
{
render/=2
}
if(render<0) render=0
if(HasFlag(id,Flag_Moneyshield)||HasFlag(id,Flag_Rot)||HasFlag(id,Flag_Teamshield_Target)) render*=2
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, render)
}
else if(HasFlag(id,Flag_Moneyshield)||HasFlag(id,Flag_Rot)||HasFlag(id,Flag_Teamshield_Target))
{
if (player_b_usingwind[id]==1) set_user_rendering(id,kRenderFxNone, 0,0,0, kRenderTransTexture,75)
if(HasFlag(id,Flag_Moneyshield)) set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,16)
if(HasFlag(id,Flag_Rot)) set_rendering ( id, kRenderFxGlowShell, 255,255,0, kRenderFxNone, 10 )
if(HasFlag(id,Flag_Teamshield_Target)) set_rendering ( id, kRenderFxGlowShell, 0,200,0, kRenderFxNone, 0 )
}
else if(invisible_cast[id]==1)
{
if(player_b_inv[id]>0) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, floatround((10.0/255.0)*(255-player_b_inv[id])))
else set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 10)
}
else if(niewidka[id]==1)
{
if(player_b_inv[id]>0) set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, floatround((10.0/255.0)*(255-player_b_inv[id])))
else set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 20)
}
else
{
render = 255
if(player_b_inv[id]>0) render = player_b_inv[id]
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, render)
}
}
else set_user_rendering(id,kRenderFxGlowShell,flashlight_r,flashlight_g,flashlight_b,kRenderNormal,4)
}
}
public set_gravitychange(id)
{
if(is_user_alive(id) && is_user_connected(id))
{
if(player_class[id] == Ninja)
{
if(player_b_gravity[id]>6) set_user_gravity(id, 0.17)
else if(player_b_gravity[id]>3) set_user_gravity(id, 0.2)
else set_user_gravity(id, 0.25)
}
else if(player_class[id] == Mefisto)
{
if(player_b_gravity[id]>6) set_user_gravity(id, 0.17)
else if(player_b_gravity[id]>3) set_user_gravity(id, 0.2)
else set_user_gravity(id, 0.25)
}
else
{
set_user_gravity(id,1.0*(1.0-player_b_gravity[id]/12.0))
}
}
}
public cmd_who(id)
{
static motd[9000],header[100],name[32],len,i
len = 0
new team[32]
static players[32], numplayers
get_players(players, numplayers, "a")
new playerid
// Table i background
len += formatex(motd[len],sizeof motd - 1 - len,"<body bgcolor=#000000 text=#FFB000>")
len += formatex(motd[len],sizeof motd - 1 - len,"<center><table width=700 border=1 cellpadding=4 cellspacing=4>")
len += formatex(motd[len],sizeof motd - 1 - len,"<tr><td>Name</td><td>Klasa</td><td>Level</td><td>Team</td><td>Item</td></tr>")
//Title
formatex(header,sizeof header - 1,"Diablo Mod Statystyki")
for (i=0; i< numplayers; i++)
{
playerid = players[i]
if ( get_user_team(playerid) == 1 ) team = "Terrorist"
else if ( get_user_team(playerid) == 2 ) team = "CT"
else team = "Spectator"
get_user_name( playerid, name, 31 )
get_user_name( playerid, name, 31 )
len += formatex(motd[len],sizeof motd - 1 - len,"<tr><td>%s</td><td>%s</td><td>%d</td><td>%s</td><td>%s</td></tr>",name,Race[player_class[playerid]], player_lvl[playerid],team,player_item_name[playerid])
}
len += formatex(motd[len],sizeof motd - 1 - len,"</table></center>")
show_motd(id,motd,header)
}
public det_fade(id)
{
if (wear_sun[id] == 1 || anty_flesh[id] == 1){
Display_Icon(id ,ICON_FLASH ,ICON_S ,0,255,0)
Display_Fade(id,1,1,1<<12,0,0,0,0)
}
if (wear_sun[id] == 0 || anty_flesh[id] == 0){
Display_Icon(id ,ICON_HIDE ,ICON_S ,0,255,0)
}
}
public changeskin(id,reset){
if (id<1 || id>32 || !is_user_connected(id)) return PLUGIN_CONTINUE
if (reset==1){
cs_reset_user_model(id)
skinchanged[id]=false
return PLUGIN_HANDLED
}else if (reset==2){
//cs_set_user_model(id,"goomba")
cs_set_user_model(id,"zombie")
skinchanged[id]=true
return PLUGIN_HANDLED
}else{
//new newSkin[32]
new num = random_num(0,3)
if (get_user_team(id)==1){
//add(newSkin,31,CTSkins[num])
cs_set_user_model(id,CTSkins[num])
}else{
//client_print(0, print_console, "CT mole, using new skin %s", TSkins[num])
//add(newSkin,31,TSkins[num])
cs_set_user_model(id,TSkins[num])
}
skinchanged[id]=true
}
return PLUGIN_CONTINUE
}
stock refill_ammo(id)
{
new wpnid
if(!is_user_alive(id) || pev(id,pev_iuser1)) return;
cs_set_user_armor(id,200,CS_ARMOR_VESTHELM);
new wpn[32],clip,ammo
wpnid = get_user_weapon(id, clip, ammo)
get_weaponname(wpnid,wpn,31)
new wEnt;
// set clip ammo
wpnid = get_weaponid(wpn)
//wEnt = get_weapon_ent(id,wpnid);
wEnt = get_weapon_ent(id,wpnid);
cs_set_weapon_ammo(wEnt,maxClip[wpnid]);
}
stock get_weapon_ent(id,wpnid=0,wpnName[]="")
{
// who knows what wpnName will be
static newName[32];
// need to find the name
if(wpnid) get_weaponname(wpnid,newName,31);
// go with what we were told
else formatex(newName,31,"%s",wpnName);
// prefix it if we need to
if(!equal(newName,"weapon_",7))
format(newName,31,"weapon_%s",newName);
new ent;
while((ent = engfunc(EngFunc_FindEntityByString,ent,"classname",newName)) && pev(ent,pev_owner) != id) {}
return ent;
}
DoDamage(iTargetID, iShooterID, iDamage/*, iDamageCause, bIsWeaponID = false, iHeadShot = 0*/)
{
if(is_user_connected(iTargetID)&&is_user_connected(iShooterID))
if ( is_user_alive(iTargetID))
{
new bool:bPlayerDied = false;
new iHP = get_user_health(iTargetID);
if ( ( iHP - iDamage ) <= 0 )
bPlayerDied = true;
if (bPlayerDied)
{
// engine.inc set_msg_block function
//set_msg_block(g_iGameMsgDeath, BLOCK_ONCE);
user_kill(iTargetID, 1);
}
else
change_health(iTargetID,-iDamage,0,"")
new sShooterName[32];
get_user_name(iShooterID, sShooterName, 31);
if (bPlayerDied)
{
if ( iShooterID != iTargetID )
{
if ( get_user_team(iShooterID) != get_user_team(iTargetID) )
set_user_frags(iShooterID, get_user_frags(iShooterID) + 1);
else
set_user_frags(iShooterID, get_user_frags(iShooterID) - 1);
//LogKill(iShooterID, iTargetID, sWeaponOrMagicName);
}
//AddXP(iShooterID, BM_XP_KILL, iTargetID); // bmxphandler.inc
award_item(iShooterID,0)
award_kill(iShooterID,iTargetID)
add_respawn_bonus(iTargetID)
add_bonus_explode(iTargetID)
add_barbarian_bonus(iShooterID)
if (player_class[iShooterID] == Barbarzynca)
refill_ammo(iShooterID)
}
}
}
public funcDemageVic3(id)
{
if(DemageTake1[id]==1)
{
DemageTake1[id]=0
set_task(5.0, "funcReleaseVic3", id)
user_slap(id, 0, 1);
user_slap(id, 0, 1);
user_slap(id, 0, 1);
}
}
public funcReleaseVic3(id)
{
DemageTake1[id]=1
}
public event_flashlight(id) {
if(!get_cvar_num("flashlight_custom")) {
return;
}
if(flashlight[id]) {
flashlight[id] = 0;
}
else {
if(flashbattery[id] > 0) {
flashlight[id] = 1;
}
}
if(!task_exists(TASK_CHARGE+id)) {
new parms[1];
parms[0] = id;
set_task((flashlight[id]) ? get_cvar_float("flashlight_drain") : get_cvar_float("flashlight_charge"),"charge",TASK_CHARGE+id,parms,1);
}
message_begin(MSG_ONE,get_user_msgid("Flashlight"),{0,0,0},id);
write_byte(flashlight[id]);
write_byte(flashbattery[id]);
message_end();
entity_set_int(id,EV_INT_effects,entity_get_int(id,EV_INT_effects) & ~EF_DIMLIGHT);
}
public charge(parms[]) {
if(!get_cvar_num("flashlight_custom")) {
return;
}
new id = parms[0];
if(flashlight[id]) {
flashbattery[id] -= 1;
}
else {
flashbattery[id] += 1;
}
message_begin(MSG_ONE,get_user_msgid("FlashBat"),{0,0,0},id);
write_byte(flashbattery[id]);
message_end();
if(flashbattery[id] <= 0) {
flashbattery[id] = 0;
flashlight[id] = 0;
message_begin(MSG_ONE,get_user_msgid("Flashlight"),{0,0,0},id);
write_byte(flashlight[id]);
write_byte(flashbattery[id]);
message_end();
// don't return so we can charge it back up to full
}
else if(flashbattery[id] >= MAX_FLASH)
{
flashbattery[id] = MAX_FLASH
return; // return because we don't need to charge anymore
}
set_task((flashlight[id]) ? get_cvar_float("flashlight_drain") : get_cvar_float("flashlight_charge"),"charge",TASK_CHARGE+id,parms,1)
}
////////////////////////////////////////////////////////////////////////////////
// REVIVAL KIT - NOT ALL //
////////////////////////////////////////////////////////////////////////////////
public message_clcorpse()
{
return PLUGIN_HANDLED
}
public event_hltv()
{
fm_remove_entity_name("fake_corpse")
fm_remove_entity_name("Mine")
fm_remove_entity_name("dbmod_shild")
static players[32], num
get_players(players, num, "a")
for(new i = 0; i < num; i++)
{
if(is_user_connected(players[i]))
{
set_task(0.0, "funcReleaseVic", i)
reset_player(players[i])
msg_bartime(players[i], 0)
trace_bool[players[i]] = 0
}
}
}
public reset_player(id)
{
remove_task(TASKID_REVIVE + id)
remove_task(TASKID_RESPAWN + id)
remove_task(TASKID_CHECKRE + id)
remove_task(TASKID_CHECKST + id)
remove_task(TASKID_ORIGIN + id)
remove_task(TASKID_SETUSER + id)
remove_task(GLUTON+id)
g_revive_delay[id] = 0.0
g_wasducking[id] = false
g_body_origin[id] = Float:{0.0, 0.0, 0.0}
}
public fwd_playerpostthink(id)
{
if(!is_user_connected(id)) return FMRES_IGNORED
if(g_haskit[id]==0) return FMRES_IGNORED
if(!is_user_alive(id))
{
Display_Icon(id ,ICON_HIDE ,"rescue" ,0,160,0)
return FMRES_IGNORED
}
new body = find_dead_body(id)
if(fm_is_valid_ent(body))
{
new lucky_bastard = pev(body, pev_owner)
if(!is_user_connected(lucky_bastard))
return FMRES_IGNORED
new lb_team = get_user_team(lucky_bastard)
if(lb_team == 1 || lb_team == 2 )
Display_Icon(id ,ICON_FLASH ,"rescue" ,0,160,0)
}
else
Display_Icon(id , ICON_SHOW,"rescue" ,0,160,0)
return FMRES_IGNORED
}
public task_check_dead_flag(id)
{
if(!is_user_connected(id))
return
if(pev(id, pev_deadflag) == DEAD_DEAD)
create_fake_corpse(id)
else
set_task(0.5, "task_check_dead_flag", id)
}
public create_fake_corpse(id)
{
set_pev(id, pev_effects, EF_NODRAW)
static model[32]
cs_get_user_model(id, model, 31)
static player_model[64]
format(player_model, 63, "models/player/%s/%s.mdl", model, model)
static Float: player_origin[3]
pev(id, pev_origin, player_origin)
static Float:mins[3]
mins[0] = -16.0
mins[1] = -16.0
mins[2] = -34.0
static Float:maxs[3]
maxs[0] = 16.0
maxs[1] = 16.0
maxs[2] = 34.0
if(g_wasducking[id])
{
mins[2] /= 2
maxs[2] /= 2
}
static Float:player_angles[3]
pev(id, pev_angles, player_angles)
player_angles[2] = 0.0
new sequence = pev(id, pev_sequence)
new ent = fm_create_entity("info_target")
if(ent)
{
set_pev(ent, pev_classname, "fake_corpse")
engfunc(EngFunc_SetModel, ent, player_model)
engfunc(EngFunc_SetOrigin, ent, player_origin)
engfunc(EngFunc_SetSize, ent, mins, maxs)
set_pev(ent, pev_solid, SOLID_TRIGGER)
set_pev(ent, pev_movetype, MOVETYPE_TOSS)
set_pev(ent, pev_owner, id)
set_pev(ent, pev_angles, player_angles)
set_pev(ent, pev_sequence, sequence)
set_pev(ent, pev_frame, 9999.9)
}
}
public fwd_emitsound(id, channel, sound[])
{
if(!is_user_alive(id) || !g_haskit[id])
return FMRES_IGNORED
if(!equali(sound, "common/wpn_denyselect.wav"))
return FMRES_IGNORED
if(task_exists(TASKID_REVIVE + id))
return FMRES_IGNORED
if(!(fm_get_user_button(id) & IN_USE))
return FMRES_IGNORED
new body = find_dead_body(id)
if(!fm_is_valid_ent(body))
return FMRES_IGNORED
new lucky_bastard = pev(body, pev_owner)
new lb_team = get_user_team(lucky_bastard)
if(lb_team != 1 && lb_team != 2)
return FMRES_IGNORED
static name[32]
get_user_name(lucky_bastard, name, 31)
client_print(id, print_chat, "Reviving %s", name)
new revivaltime = get_pcvar_num(cvar_revival_time)
msg_bartime(id, revivaltime)
new Float:gametime = get_gametime()
g_revive_delay[id] = gametime + float(revivaltime) - 0.01
emit_sound(id, CHAN_AUTO, SOUND_START, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
set_task(0.0, "task_revive", TASKID_REVIVE + id)
return FMRES_SUPERCEDE
}
public task_revive(taskid)
{
new id = taskid - TASKID_REVIVE
if(!is_user_alive(id))
{
failed_revive(id)
return FMRES_IGNORED
}
if(!(fm_get_user_button(id) & IN_USE))
{
failed_revive(id)
return FMRES_IGNORED
}
new body = find_dead_body(id)
if(!fm_is_valid_ent(body))
{
failed_revive(id)
return FMRES_IGNORED
}
new lucky_bastard = pev(body, pev_owner)
if(!is_user_connected(lucky_bastard))
{
failed_revive(id)
return FMRES_IGNORED
}
new lb_team = get_user_team(lucky_bastard)
if(lb_team != 1 && lb_team != 2)
{
failed_revive(id)
return FMRES_IGNORED
}
static Float:velocity[3]
pev(id, pev_velocity, velocity)
velocity[0] = 0.0
velocity[1] = 0.0
set_pev(id, pev_velocity, velocity)
new Float:gametime = get_gametime()
if(g_revive_delay[id] < gametime)
{
if(findemptyloc(body, 10.0))
{
fm_remove_entity(body)
emit_sound(id, CHAN_AUTO, SOUND_FINISHED, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
new args[2]
args[0]=lucky_bastard
if(get_user_team(id)!=get_user_team(lucky_bastard))
{
change_health(id,30,0,"")
args[1]=1
Give_Xp(id,get_cvar_num("diablo_xpbonus"))
}
else
{
args[1]=0
Give_Xp(id,get_cvar_num("diablo_xpbonus"))
set_task(0.1, "task_respawn", TASKID_RESPAWN + lucky_bastard,args,2)
}
}
else
failed_revive(id)
}
else
set_task(0.1, "task_revive", TASKID_REVIVE + id)
return FMRES_IGNORED
}
public failed_revive(id)
{
msg_bartime(id, 0)
emit_sound(id, CHAN_AUTO, SOUND_FAILED, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
public task_origin(args[])
{
new id = args[0]
engfunc(EngFunc_SetOrigin, id, g_body_origin[id])
static Float:origin[3]
pev(id, pev_origin, origin)
set_pev(id, pev_zorigin, origin[2])
set_task(0.1, "task_stuck_check", TASKID_CHECKST + id,args,2)
}
stock find_dead_body(id)
{
static Float:origin[3]
pev(id, pev_origin, origin)
new ent
static classname[32]
while((ent = fm_find_ent_in_sphere(ent, origin, get_pcvar_float(cvar_revival_dis))) != 0)
{
pev(ent, pev_classname, classname, 31)
if(equali(classname, "fake_corpse") && fm_is_ent_visible(id, ent))
return ent
}
return 0
}
stock msg_bartime(id, seconds)
{
if(is_user_bot(id)||!is_user_alive(id)||!is_user_connected(id))
return
if((fm_get_user_button(id) & IN_USE)) change_health(id,-10,id,"")
message_begin(MSG_ONE, g_msg_bartime, _, id)
write_byte(seconds)
write_byte(0)
message_end()
}
public task_respawn(args[])
{
new id = args[0]
if (!is_user_connected(id) || is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_SPECTATOR) return
set_pev(id, pev_deadflag, DEAD_RESPAWNABLE)
dllfunc(DLLFunc_Think, id)
dllfunc(DLLFunc_Spawn, id)
set_pev(id, pev_iuser1, 0)
set_task(0.1, "task_check_respawn", TASKID_CHECKRE + id,args,2)
}
public task_check_respawn(args[])
{
new id = args[0]
if(pev(id, pev_iuser1))
set_task(0.1, "task_respawn", TASKID_RESPAWN + id,args,2)
else
set_task(0.1, "task_origin", TASKID_ORIGIN + id,args,2)
}
public task_stuck_check(args[])
{
new id = args[0]
static Float:origin[3]
pev(id, pev_origin, origin)
if(origin[2] == pev(id, pev_zorigin))
set_task(0.1, "task_respawn", TASKID_RESPAWN + id,args,2)
else
set_task(0.1, "task_setplayer", TASKID_SETUSER + id,args,2)
}
public task_setplayer(args[])
{
new id = args[0]
fm_give_item(id, "weapon_knife")
if(args[1]==1)
{
fm_give_item(id, "weapon_mp5navy")
change_health(id,9999,0,"")
set_user_godmode(id, 1)
new newarg[1]
newarg[0]=id
set_task(3.0,"god_off",id+95123,newarg,1)
}
else
{
fm_set_user_health(id, get_pcvar_num(cvar_revival_health)+player_intelligence[args[1]])
Display_Fade(id,seconds(2),seconds(2),0,0,0,0,255)
}
if(player_item_id[id]==17) fm_set_user_health(id,5)
}
public god_off(args[])
{
set_user_godmode(args[0], 0)
}
stock bool:findemptyloc(ent, Float:radius)
{
if(!fm_is_valid_ent(ent))
return false
static Float:origin[3]
pev(ent, pev_origin, origin)
origin[2] += 2.0
new owner = pev(ent, pev_owner)
new num = 0, bool:found = false
while(num <= 100)
{
if(is_hull_vacant(origin))
{
g_body_origin[owner][0] = origin[0]
g_body_origin[owner][1] = origin[1]
g_body_origin[owner][2] = origin[2]
found = true
break
}
else
{
origin[0] += random_float(-radius, radius)
origin[1] += random_float(-radius, radius)
origin[2] += random_float(-radius, radius)
num++
}
}
return found
}
stock bool:is_hull_vacant(const Float:origin[3])
{
new tr = 0
engfunc(EngFunc_TraceHull, origin, origin, 0, HULL_HUMAN, 0, tr)
if(!get_tr2(tr, TR_StartSolid) && !get_tr2(tr, TR_AllSolid) && get_tr2(tr, TR_InOpen))
return true
return false
}
public count_jumps(id)
{
if( is_user_connected(id))
{
if( player_class[id]== Paladyn ) JumpsMax[id]=5+floatround(player_intelligence[id]/10.0)
else JumpsMax[id]=0
}
}
////////////////////////////////////////////////////////////////////////////////
// Noze //
////////////////////////////////////////////////////////////////////////////////
public give_knife(id)
{
new knifes = 0
if(player_class[id] == Ninja) knifes = 10 + floatround ( player_intelligence[id]/10.0 , floatround_floor )
else if(player_class[id] == Zabojca) knifes = 1 + floatround ( player_intelligence[id]/20.0 , floatround_floor )
max_knife[id] = knifes
player_knife[id] = knifes
}
public command_knife(id)
{
if(!is_user_alive(id)) return PLUGIN_HANDLED
if(!player_knife[id])
{
client_print(id,print_center,"Nie masz juz nozy do rzucania")
return PLUGIN_HANDLED
}
if(tossdelay[id] > get_gametime() - 0.9) return PLUGIN_HANDLED
else tossdelay[id] = get_gametime()
player_knife[id]--
if (player_knife[id] == 1) {
client_print(id,print_center,"Zostal ci tylko 1 noz!")
}
new Float: Origin[3], Float: Velocity[3], Float: vAngle[3], Ent
entity_get_vector(id, EV_VEC_origin , Origin)
entity_get_vector(id, EV_VEC_v_angle, vAngle)
Ent = create_entity("info_target")
if (!Ent) return PLUGIN_HANDLED
entity_set_string(Ent, EV_SZ_classname, "throwing_knife")
entity_set_model(Ent, "models/diablomod/w_throwingknife.mdl")
new Float:MinBox[3] = {-1.0, -7.0, -1.0}
new Float:MaxBox[3] = {1.0, 7.0, 1.0}
entity_set_vector(Ent, EV_VEC_mins, MinBox)
entity_set_vector(Ent, EV_VEC_maxs, MaxBox)
vAngle[0] -= 90
entity_set_origin(Ent, Origin)
entity_set_vector(Ent, EV_VEC_angles, vAngle)
entity_set_int(Ent, EV_INT_effects, 2)
entity_set_int(Ent, EV_INT_solid, 1)
entity_set_int(Ent, EV_INT_movetype, 6)
entity_set_edict(Ent, EV_ENT_owner, id)
VelocityByAim(id, get_cvar_num("diablo_knife_speed") , Velocity)
entity_set_vector(Ent, EV_VEC_velocity ,Velocity)
return PLUGIN_HANDLED
}
public touchKnife(knife, id)
{
new kid = entity_get_edict(knife, EV_ENT_owner)
if(is_user_alive(id))
{
new movetype = entity_get_int(knife, EV_INT_movetype)
if(movetype == 0)
{
if( player_knife[id] < max_knife[id] )
{
player_knife[id] += 1
client_print(id,print_center,"Obecna liczba nozy: %i",player_knife[id])
}
emit_sound(knife, CHAN_ITEM, "weapons/knife_deploy1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
remove_entity(knife)
}
else if (movetype != 0)
{
if(kid == id) return
remove_entity(knife)
if(get_cvar_num("mp_friendlyfire") == 0 && get_user_team(id) == get_user_team(kid)) return
entity_set_float(id, EV_FL_dmg_take, get_cvar_num("diablo_knife") * 1.0)
change_health(id,-get_cvar_num("diablo_knife"),kid,"knife")
message_begin(MSG_ONE,get_user_msgid("ScreenShake"),{0,0,0},id)
write_short(7<<14)
write_short(1<<13)
write_short(1<<14)
message_end()
if(get_user_team(id) == get_user_team(kid)) {
new name[33]
get_user_name(kid,name,32)
ColorChat(id,GREEN,"[DiabloMod]^x01 %s attacked a teammate",name)
}
emit_sound(id, CHAN_ITEM, "weapons/knife_hit4.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}
}
public touchWorld(knife, world)
{
entity_set_int(knife, EV_INT_movetype, 0)
emit_sound(knife, CHAN_ITEM, "weapons/knife_hitwall1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
public touchbreakable(ent1, ent2)
{
if(pev_valid(ent1) && pev_valid(ent2)){
new name[32],ent ,breakable
entity_get_string(ent1,EV_SZ_classname,name,31)
if(equali(name,"func_breakable"))
{
breakable=ent1
ent=ent2
}
else
{
breakable=ent2
ent=ent1
}
if(entity_get_int(breakable, EV_INT_impulse) == 0)
{
new Float: b_hp = entity_get_float(breakable,EV_FL_health)
if(b_hp>80) entity_set_float(breakable,EV_FL_health,b_hp-50.0)
else dllfunc(DLLFunc_Use,breakable,ent)
remove_entity(ent)
}
else {
entity_get_string(ent,EV_SZ_classname,name,31)
if(equali(name,"throwing_knife"))
{
entity_set_int(ent, EV_INT_movetype, 0)
emit_sound(ent, CHAN_ITEM, "weapons/knife_hitwall1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
else remove_entity(ent)
}
}
}
public kill_all_entity(classname[]) {
new iEnt = find_ent_by_class(-1, classname)
while(iEnt > 0) {
remove_entity(iEnt)
iEnt = find_ent_by_class(iEnt, classname)
}
}
////////////////////////////////////////////////////////////////////////////////
// koniec z nozami //
////////////////////////////////////////////////////////////////////////////////
public mod_info(id)
{
client_print(id,print_console,"Witamy w Diablomod by Miczu & GuTeK")
client_print(id,print_console,"")
client_print(id,print_console,"Odlegla baza tego moda jest Diablo Mod v8.0 by N1ghtmr1 ")
client_print(id,print_console,"Od tego czasu numeracja zostala zresetowana i zaczynalismy od v.1")
client_print(id,print_console,"")
client_print(id,print_console,"")
client_print(id,print_console,"Lista osob ktore przyczynily sie zmianie kodu:")
client_print(id,print_console,"(nie zgloszeni buga, autentyczna pomoc)")
client_print(id,print_console,"")
client_print(id,print_console,"SkinnerBox - poprawa transalcji (od 5.4a)")
client_print(id,print_console,"DK - pomoc w testach wersji pod SQL")
client_print(id,print_console,"")
client_print(id,print_console,"")
client_print(id,print_console,"")
client_print(id,print_console,"Jesli kogos pominelem to zglosic sie na forum")
client_print(id,print_console,"")
return PLUGIN_HANDLED
}
////////////////////////////////////////////////////////////////////////////////
// Hunter part code //
////////////////////////////////////////////////////////////////////////////////
public command_arrow(id)
{
if(!is_user_alive(id)) return PLUGIN_HANDLED
new Float: Origin[3], Float: Velocity[3], Float: vAngle[3], Ent
entity_get_vector(id, EV_VEC_origin , Origin)
entity_get_vector(id, EV_VEC_v_angle, vAngle)
Ent = create_entity("info_target")
if (!Ent) return PLUGIN_HANDLED
entity_set_string(Ent, EV_SZ_classname, "xbow_arrow")
entity_set_model(Ent, cbow_bolt)
new Float:MinBox[3] = {-2.8, -2.8, -0.8}
new Float:MaxBox[3] = {2.8, 2.8, 2.0}
entity_set_vector(Ent, EV_VEC_mins, MinBox)
entity_set_vector(Ent, EV_VEC_maxs, MaxBox)
vAngle[0]*= -1
Origin[2]+=10
entity_set_origin(Ent, Origin)
entity_set_vector(Ent, EV_VEC_angles, vAngle)
entity_set_int(Ent, EV_INT_effects, 2)
entity_set_int(Ent, EV_INT_solid, 1)
entity_set_int(Ent, EV_INT_movetype, 5)
entity_set_edict(Ent, EV_ENT_owner, id)
new Float:dmg = get_cvar_float("diablo_arrow") + player_intelligence[id] * get_cvar_float("diablo_arrow_multi")
entity_set_float(Ent, EV_FL_dmg,dmg)
VelocityByAim(id, get_cvar_num("diablo_arrow_speed") , Velocity)
set_rendering (Ent,kRenderFxGlowShell, 255,0,0, kRenderNormal,56)
entity_set_vector(Ent, EV_VEC_velocity ,Velocity)
return PLUGIN_HANDLED
}
public command_bow(id)
{
if(!is_user_alive(id)) return PLUGIN_HANDLED
if(bow[id] == 1){
entity_set_string(id,EV_SZ_viewmodel,cbow_VIEW)
entity_set_string(id,EV_SZ_weaponmodel,cvow_PLAYER)
bowdelay[id] = get_gametime()
}else if(player_sword[id] == 1)
{
entity_set_string(id, EV_SZ_viewmodel, SWORD_VIEW)
entity_set_string(id, EV_SZ_weaponmodel, SWORD_PLAYER)
bow[id]=0
}
else
{
entity_set_string(id,EV_SZ_viewmodel,KNIFE_VIEW)
entity_set_string(id,EV_SZ_weaponmodel,KNIFE_PLAYER)
bow[id]=0
}
return PLUGIN_CONTINUE
}
public toucharrow(arrow, id)
{
new kid = entity_get_edict(arrow, EV_ENT_owner)
new lid = entity_get_edict(arrow, EV_ENT_enemy)
if(is_user_alive(id))
{
if(kid == id || lid == id) return
entity_set_edict(arrow, EV_ENT_enemy,id)
new Float:dmg = entity_get_float(arrow,EV_FL_dmg)
entity_set_float(arrow,EV_FL_dmg,(dmg*3.0)/5.0)
if(get_cvar_num("mp_friendlyfire") == 0 && get_user_team(id) == get_user_team(kid)) return
Effect_Bleed(id,248)
bowdelay[kid] -= 0.5 - floatround(player_intelligence[kid]/5.0)
change_health(id,floatround(-dmg),kid,"knife")
message_begin(MSG_ONE,get_user_msgid("ScreenShake"),{0,0,0},id);
write_short(7<<14);
write_short(1<<13);
write_short(1<<14);
message_end();
if(get_user_team(id) == get_user_team(kid))
{
new name[33]
get_user_name(kid,name,32)
ColorChat(id,GREEN,"[DiabloMod]^x01 %s attacked a teammate",name)
}
emit_sound(id, CHAN_ITEM, "weapons/knife_hit4.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
if(dmg<30) remove_entity(arrow)
}
}
public touchWorld2(arrow, world)
{
remove_entity(arrow)
}
public hunter_Line(id,vid,end[3])
{
if(is_user_alive(id) && is_user_alive(vid) && trace_bool[id])
{
new start[3]
get_user_origin(vid,start)
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
write_byte(0)
write_coord(start[0]) // starting pos
write_coord(start[1])
write_coord(start[2])
write_coord(end[0]) // ending pos
write_coord(end[1])
write_coord(end[2])
write_short(sprite_line) // sprite index
write_byte(1) // starting frame
write_byte(5) // frame rate
write_byte(100) // life
write_byte(1) // line width
write_byte(0) // noise
write_byte(200) // RED
write_byte(100) // GREEN
write_byte(100) // BLUE
write_byte(75) // brightness
write_byte(5) // scroll speed
message_end()
new parms[5];
for(new i=0;i<3;i++)
{
parms[i] = start[i]
}
parms[3]=id
parms[4]=vid
set_task(0.20,"charge_hunter",id+TARACE_TASK+vid*100,parms,5)
}
}
public charge_hunter(parms[])
{
new stop[3]
for(new i=0;i<3;i++)
{
stop[i] =parms[i]
}
hunter_Line(parms[3],parms[4],stop)
}
public grenade_throw(id, ent, wID)
{
if(!g_TrapMode[id] || !is_valid_ent(ent))
return PLUGIN_CONTINUE
new Float:fVelocity[3]
VelocityByAim(id, cvar_throw_vel, fVelocity)
entity_set_vector(ent, EV_VEC_velocity, fVelocity)
new Float: angle[3]
entity_get_vector(ent,EV_VEC_angles,angle)
angle[0]=0.00
entity_set_vector(ent,EV_VEC_angles,angle)
entity_set_float(ent,EV_FL_dmgtime,get_gametime()+3.5)
entity_set_int(ent, NADE_PAUSE, 0)
entity_set_int(ent, NADE_ACTIVE, 0)
entity_set_int(ent, NADE_VELOCITY, 0)
entity_set_int(ent, NADE_TEAM, get_user_team(id))
new param[1]
param[0] = ent
set_task(3.0, "task_ActivateTrap", 0, param, 1)
return PLUGIN_CONTINUE
}
public task_ActivateTrap(param[])
{
new ent = param[0]
if(!is_valid_ent(ent))
return PLUGIN_CONTINUE
entity_set_int(ent, NADE_PAUSE, 1)
entity_set_int(ent, NADE_ACTIVE, 1)
new Float:fOrigin[3]
entity_get_vector(ent, EV_VEC_origin, fOrigin)
fOrigin[2] -= 8.1*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[entity_get_edict(ent,EV_ENT_owner)])))
entity_set_vector(ent, EV_VEC_origin, fOrigin)
return PLUGIN_CONTINUE
}
public think_Grenade(ent)
{
new entModel[33]
entity_get_string(ent, EV_SZ_model, entModel, 32)
if(!is_valid_ent(ent) || equal(entModel, "models/w_c4.mdl"))
return PLUGIN_CONTINUE
if(entity_get_int(ent, NADE_PAUSE))
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}
public think_Bot(bot)
{
new ent = -1
while((ent = find_ent_by_class(ent, "grenade")))
{
new entModel[33]
entity_get_string(ent, EV_SZ_model, entModel, 32)
if(equal(entModel, "models/w_c4.mdl"))
continue
if(!entity_get_int(ent, NADE_ACTIVE))
continue
new Players[32], iNum
get_players(Players, iNum, "a")
for(new i = 0; i < iNum; ++i)
{
new id = Players[i]
if(entity_get_int(ent, NADE_TEAM) == get_user_team(id))
continue
if(get_entity_distance(id, ent) > cvar_activate_dis || player_speed(id) <200.0)
continue
if(entity_get_int(ent, NADE_VELOCITY)) continue
new Float:fOrigin[3]
entity_get_vector(ent, EV_VEC_origin, fOrigin)
while(PointContents(fOrigin) == CONTENTS_SOLID)
fOrigin[2] += 100.0
entity_set_vector(ent, EV_VEC_origin, fOrigin)
drop_to_floor(ent)
new Float:fVelocity[3]
entity_get_vector(ent, EV_VEC_velocity, fVelocity)
fVelocity[2] += float(cvar_nade_vel)
entity_set_vector(ent, EV_VEC_velocity, fVelocity)
entity_set_int(ent, NADE_VELOCITY, 1)
new param[1]
param[0] = ent
//set_task(cvar_explode_delay, "task_ExplodeNade", 0, param, 1)
entity_set_float(param[0], EV_FL_nextthink, halflife_time() + cvar_explode_delay)
entity_set_int(param[0], NADE_PAUSE, 0)
}
}
if(get_timeleft()<2 && map_end<2)
{
map_end=2
}
else if(get_timeleft()<6 && map_end<1)
{
new play[32],num
get_players(play,num)
for(new i=0;i<num;i++)
{
savexpcom(play[i])
}
map_end=1
}
entity_set_float(bot, EV_FL_nextthink, halflife_time() + 0.1)
}
stock Float:player_speed(index)
{
new Float:vec[3]
pev(index,pev_velocity,vec)
vec[2]=0.0
return floatsqroot ( vec[0]*vec[0]+vec[1]*vec[1] )
}
public _create_ThinkBot()
{
new think_bot = create_entity("info_target")
if(!is_valid_ent(think_bot))
log_amx("For some reason, the universe imploded, reload your server")
else
{
entity_set_string(think_bot, EV_SZ_classname, "think_bot")
entity_set_float(think_bot, EV_FL_nextthink, halflife_time() + 1.0)
}
}
public change_health(id,hp,attacker,weapon[])
{
if(is_user_alive(id) && is_user_connected(id))
{
new health = get_user_health(id)
if(hp>0)
{
new m_health = race_heal[player_class[id]]+player_strength[id]*2
if(player_item_id[id]==17 &&hp>0)
{
set_user_health(id,health+floatround(float(hp/10),floatround_floor)+1)
}
else if (hp+health>m_health) set_user_health(id,m_health)
else set_user_health(id,get_user_health(id)+hp)
}
else
{
if(health+hp<1)
{
UTIL_Kill(attacker,id,weapon)
}
else set_user_health(id,get_user_health(id)+hp)
}
if(id!=attacker && hp<0)
{
player_dmg[attacker]-=hp
dmg_exp(attacker)
}
}
}
public UTIL_Kill(attacker,id,weapon[])
{
if( is_user_alive(id)){
if(get_user_team(attacker)!=get_user_team(id))
set_user_frags(attacker,get_user_frags(attacker) +1);
if(get_user_team(attacker)==get_user_team(id))
set_user_frags(attacker,get_user_frags(attacker) -1);
if (cs_get_user_money(attacker) + 150 <= 16000)
cs_set_user_money(attacker,cs_get_user_money(attacker)+150)
else
cs_set_user_money(attacker,16000)
cs_set_user_deaths(id, cs_get_user_deaths(id)+1)
user_kill(id,1)
if(is_user_connected(attacker) && attacker!=id)
{
award_kill(attacker,id)
if(is_user_alive(attacker)) award_item(attacker,0)
}
message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
write_byte(attacker)
write_byte(id)
write_byte(0)
write_string(weapon)
message_end()
message_begin(MSG_ALL,gmsgScoreInfo)
write_byte(attacker)
write_short(get_user_frags(attacker))
write_short(get_user_deaths(attacker))
write_short(0)
write_short(get_user_team(attacker))
message_end()
message_begin(MSG_ALL,gmsgScoreInfo)
write_byte(id)
write_short(get_user_frags(id))
write_short(get_user_deaths(id))
write_short(0)
write_short(get_user_team(id))
message_end()
new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10];
get_user_name(attacker, kname, 31);
get_user_team(attacker, kteam, 9);
get_user_authid(attacker, kauthid, 31);
get_user_name(id, vname, 31);
get_user_team(id, vteam, 9);
get_user_authid(id, vauthid, 31);
log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"",
kname, get_user_userid(attacker), kauthid, kteam,
vname, get_user_userid(id), vauthid, vteam, weapon);
}
}
stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
{
message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id )
write_short( duration ) // Duration of fadeout
write_short( holdtime ) // Hold time of color
write_short( fadetype ) // Fade type
write_byte ( red ) // Red
write_byte ( green ) // Green
write_byte ( blue ) // Blue
write_byte ( alpha ) // Alpha
message_end()
}
stock Display_Icon(id ,enable ,name[] ,red,green,blue)
{
if (!pev_valid(id) || is_user_bot(id))
{
return PLUGIN_HANDLED
}
// new string [8][32] = {"dmg_rad","item_longjump","dmg_shock","item_healthkit","dmg_heat","suit_full","cross","dmg_gas"}
message_begin( MSG_ONE, g_msg_statusicon, {0,0,0}, id )
write_byte( enable )
write_string( name )
write_byte( red ) // red
write_byte( green ) // green
write_byte( blue ) // blue
message_end()
return PLUGIN_CONTINUE
}
public createBlockAiming(id)
{
new Float:vOrigin[3];
new Float:vAngles[3]
entity_get_vector(id,EV_VEC_v_angle,vAngles)
entity_get_vector(id,EV_VEC_origin,vOrigin)
new Float:offset = distance_to_floor(vOrigin)
vOrigin[2]+=17.0-offset
//create the block
if(vAngles[1]>45.0&&vAngles[1]<135.0)
{
vOrigin[0]+=0.0
vOrigin[1]+=34.0
if(chacke_pos(vOrigin,0)==0) return
make_shild(id,vOrigin,vAngles1,gfBlockSizeMin1,gfBlockSizeMax1)
}
else if(vAngles[1]<-45.0&&vAngles[1]>-135.0)
{
vOrigin[0]+=0.0
vOrigin[1]+=-34.0
if(chacke_pos(vOrigin,0)==0) return
make_shild(id,vOrigin,vAngles1,gfBlockSizeMin1,gfBlockSizeMax1)
}
else if(vAngles[1]>-45.0&&vAngles[1]<45.0)
{
vOrigin[0]+=34.0
vOrigin[1]+=0.0
if(chacke_pos(vOrigin,1)==0) return
make_shild(id,vOrigin,vAngles2,gfBlockSizeMin2,gfBlockSizeMax2)
}
else
{
vOrigin[0]+=-34.0
vOrigin[1]+=0.0
if(chacke_pos(vOrigin,1)==0) return
make_shild(id,vOrigin,vAngles2,gfBlockSizeMin2,gfBlockSizeMax2)
}
}
public make_shild(id,Float:vOrigin[3],Float:vAngles[3],Float:gfBlockSizeMin[3],Float:gfBlockSizeMax[3])
{
new ent = create_entity("info_target")
//make sure entity was created successfully
if (is_valid_ent(ent))
{
//set block properties
entity_set_string(ent, EV_SZ_classname, "dbmod_shild")
entity_set_int(ent, EV_INT_solid, SOLID_BBOX)
entity_set_int(ent, EV_INT_movetype, MOVETYPE_NONE)
entity_set_float(ent,EV_FL_health,50.0+float(player_intelligence[id]*2))
entity_set_float(ent,EV_FL_takedamage,1.0)
entity_set_model(ent, "models/diablomod/bm_block_platform.mdl");
entity_set_vector(ent, EV_VEC_angles, vAngles)
entity_set_size(ent, gfBlockSizeMin, gfBlockSizeMax)
entity_set_edict(ent,EV_ENT_euser1,id)
entity_set_origin(ent, vOrigin)
num_shild[id]--
return 1
}
return 0
}
public call_cast(id)
{
set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2)
switch(player_class[id])
{
case Mag:
{
show_hudmessage(id, "[Czarodziejka] Wyczarowales fireball'a")
fired[id]=0
item_fireball(id)
}
case Mnich:
{
if(num_shild[id])
{
show_hudmessage(id, "[Druid] Wyczarowales magiczna sciane")
createBlockAiming(id)
}
else show_hudmessage(id, "Nie mozesz wiecej wyczarowac")
}
case Paladyn:
{
golden_bulet[id]++
if(golden_bulet[id]>3)
{
golden_bulet[id]=3
show_hudmessage(id, "[Paladyn] Mozesz miec maxymalnie 3 magiczne pociskow",golden_bulet[id])
}
else if(golden_bulet[id]==1)show_hudmessage(id, "[Paladyn] Masz 1 magiczny pocisk")
else if(golden_bulet[id]>1)show_hudmessage(id, "[Paladyn] Masz %i magiczne pociski",golden_bulet[id])
}
case Zabojca:
{
show_hudmessage(id, "[Zabojczyni] Jestes tymczasowo niewidzialny (noz)")
invisible_cast[id]=1
set_renderchange(id)
}
case Ninja:
{
show_hudmessage(id, "[Ninja] Zwiekszyles sobie tymczasowo predkosc")
set_user_maxspeed(id,get_user_maxspeed(id)+25.0)
}
case Nekromanta:
{
fm_give_item(id, "weapon_mp5navy")
fm_give_item(id, "ammo_9mm")
fm_give_item(id, "ammo_9mm")
fm_give_item(id, "ammo_9mm")
fm_give_item(id, "ammo_9mm")
show_hudmessage(id, "[Nekromanta] Dostales MP5")
}
case Andariel:
{
fm_give_item(id, "weapon_galil")
fm_give_item(id, "ammo_556nato")
fm_give_item(id, "ammo_556nato")
fm_give_item(id, "ammo_556nato")
fm_give_item(id, "ammo_556nato")
show_hudmessage(id, "[Andariel] Dostales Galil'a")
}
case Izual:
{
show_hudmessage(id, "[Izual] Jestes niewidzialny na nozu")
invisible_cast[id]=1
set_renderchange(id)
}
case Barbarzynca:
{
ultra_armor[id]++
if(ultra_armor[id]>7)
{
ultra_armor[id]=7
show_hudmessage(id, "[Barbarzynca] Maksymalna wartosc pancerza to 7",ultra_armor[id])
}
else show_hudmessage(id, "[Barbarzynca] Magiczny pancerz wytrzyma %i strzalow",ultra_armor[id])
}
case Hefasto:
{
ultra_armor[id]++
if(ultra_armor[id]>2)
{
ultra_armor[id]=2
show_hudmessage(id, "[Hefasto] Maksymalna wartosc pancerza to 2",ultra_armor[id])
}
else show_hudmessage(id, "[Hefasto] Magiczny pancerz wytrzyma %i strzalow",ultra_armor[id])
}
case Griswold:
{
if(player_item_id[id] != 0)
show_hudmessage(id, "[Griswold] Posiadasz juz item")
else {
losowe_itemy[id]++
if(losowe_itemy[id] > 3) {
losowe_itemy[id] = 3
show_hudmessage(id, "[Griswold] Maksymalna ilosc losowych itemow to %i", losowe_itemy[id])
}
else
award_item(id, 0)
}
}
case Kowal:
{
if(player_item_id[id] != 0)
show_hudmessage(id, "[Kowal] Posiadasz juz item")
else {
losowe_itemy[id]++
if(losowe_itemy[id] > 3) {
losowe_itemy[id] = 3
show_hudmessage(id, "[Kowal] Maksymalna ilosc losowych itemow to %i", losowe_itemy[id])
}
else
award_item(id, 0)
}
}
case Demonolog:
{
if(player_item_id[id] != 0)
show_hudmessage(id, "[Demonolog] Posiadasz juz item")
else {
losowe_itemy[id]++
if(losowe_itemy[id] > 3) {
losowe_itemy[id] = 3
show_hudmessage(id, "[Demonolog] Maksymalna ilosc losowych itemow to %i", losowe_itemy[id])
}
else
award_item(id, 0)
}
}
case Zniewolony:
{
change_health(id, 40, id, "")
show_hudmessage(id, "[Zniewolony] Odnowiles sobie 40hp")
}
case Hunter:
{
fm_give_item(id, "weapon_hegrenade")
show_hudmessage(id, "[Amazonka] Dostales Granata HE")
}
case Upadly:
{
fm_give_item(id, "weapon_flashbang")
fm_give_item(id, "weapon_flashbang")
show_hudmessage(id, "[Upadly] Dostales 2 Fleshe")
}
case SniegowyTulacz:
{
fm_give_item(id, "weapon_flashbang")
fm_give_item(id, "weapon_flashbang")
show_hudmessage(id, "[Sniegowy Tulacz] Dostales 2 Fleshe")
}
case GigantycznyPajak:
{
fm_give_item(id, "weapon_flashbang")
fm_give_item(id, "weapon_flashbang")
fm_give_item(id, "weapon_hegrenade")
fm_give_item(id, "weapon_smokegrenade")
fm_give_item(id, "weapon_deagle")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
fm_give_item(id,"ammo_50ae")
show_hudmessage(id, "[Gigantyczny Pajak] Dostales 2 Fleshe, HE, Smoke i Deagla")
}
}
}
public chacke_pos(Float:vOrigin[3],axe)
{
new test=0
vOrigin[axe]-=15.0
if(distance_to_floor(vOrigin)<31.0) test++
vOrigin[axe]+=15.0
if(distance_to_floor(vOrigin)<31.0) test++
vOrigin[axe]+=15.0
if(distance_to_floor(vOrigin)<31.0) test++
if(test<2) return 0
vOrigin[axe]-=15.0
return 1
}
public fw_traceline(Float:vecStart[3],Float:vecEnd[3],ignoreM,id,trace) // pentToSkip == id, for clarity
{
if(!is_user_connected(id))
return FMRES_IGNORED;
// not a player entity, or player is dead
if(!is_user_alive(id))
return FMRES_IGNORED;
new hit = get_tr2(trace, TR_pHit)
// not shooting anything
if(!(pev(id,pev_button) & IN_ATTACK))
return FMRES_IGNORED;
new h_bulet=0
if(golden_bulet[id]>0)
{
golden_bulet[id]--
h_bulet=1
}
if(is_valid_ent(hit))
{
new name[64]
entity_get_string(hit,EV_SZ_classname,name,63)
if(equal(name,"dbmod_shild"))
{
new Float: ori[3]
entity_get_vector(hit,EV_VEC_origin,ori)
set_tr2(trace,TR_vecEndPos,vecEnd)
if(after_bullet[id]>0)
{
new Float: health=entity_get_float(hit,EV_FL_health)
entity_set_float(hit,EV_FL_health,health-3.0)
if(health-1.0<0.0) remove_entity(hit)
after_bullet[id]--
}
set_tr2(trace,TR_iHitgroup,8);
set_tr2(trace,TR_flFraction,1.0);
return FMRES_SUPERCEDE;
}
}
if(is_user_alive(hit))
{
if(h_bulet)
{
set_tr2(trace, TR_iHitgroup, HIT_HEAD) // Redirect shot to head
// Variable angles doesn't really have a use here.
static hit, Float:head_origin[3], Float:angles[3]
hit = get_tr2(trace, TR_pHit) // Whomever was shot
engfunc(EngFunc_GetBonePosition, hit, 8, head_origin, angles) // Find origin of head bone (8)
set_tr2(trace, TR_vecEndPos, head_origin) // Blood now comes out of the head!
}
if(ultra_armor[hit]>0 || (player_class[hit]==Paladyn && random_num(0,7)==1) || random_num(0,player_ultra_armor_left[hit])==1)
{
if(after_bullet[id]>0)
{
if(ultra_armor[hit]>0) ultra_armor[hit]--
else if(player_ultra_armor_left[hit]>0)player_ultra_armor_left[hit]--
after_bullet[id]--
}
set_tr2(trace, TR_iHitgroup, 8)
}
return FMRES_IGNORED
}
return FMRES_IGNORED;
}
stock Float:distance_to_floor(Float:start[3], ignoremonsters = 1) {
new Float:dest[3], Float:end[3];
dest[0] = start[0];
dest[1] = start[1];
dest[2] = -8191.0;
engfunc(EngFunc_TraceLine, start, dest, ignoremonsters, 0, 0);
get_tr2(0, TR_vecEndPos, end);
//pev(index, pev_absmin, start);
new Float:ret = start[2] - end[2];
return ret > 0 ? ret : 0.0;
}
public dmg_exp(id)
{
new min=get_cvar_num("diablo_dmg_exp")
if(min<1) return
new exp=0
while(player_dmg[id]>min)
{
player_dmg[id]-=min
exp++
}
Give_Xp(id,exp)
}
public native_get_user_xp(id)
{
return player_xp[id]
}
public native_set_user_xp(id, amount)
{
player_xp[id]=amount
if (player_xp[id] > LevelXP[player_lvl[id]])
{
player_lvl[id]+=1
player_point[id]+=2
set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2)
show_hudmessage(id, "Awansowales do poziomu %i", player_lvl[id])
savexpcom(id)
player_class_lvl[id][player_class[id]]=player_lvl[id]
}
if (player_xp[id] < LevelXP[player_lvl[id]-1])
{
player_lvl[id]-=1
player_point[id]-=2
set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2)
show_hudmessage(id, "Spadles do poziomu %i", player_lvl[id])
savexpcom(id)
player_class_lvl[id][player_class[id]]=player_lvl[id]
}
write_hud(id)
}
public native_get_user_level(id)
{
return player_lvl[id]
}
public native_set_user_level(id, amount)
{
native_set_user_xp(id, LevelXP[amount])
}
public native_get_user_class(id)
{
return player_class[id]
}
public native_set_user_class(id, class)
{
g_haskit[id] = 0
player_class[id] = class
LoadXP(id, player_class[id])
CurWeapon(id)
give_knife(id)
}
public native_get_user_item(id)
{
return player_item_id[id]
}
public native_set_user_item(id, item)
{
switch(item)
{
case 1:
{
player_item_name[id] = "Bronze Amplifier"
player_b_damage[id] = random_num(1,3)
show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i",player_item_name[id],player_b_damage[id])
}
case 2:
{
player_item_name[id] = "Silver Amplifier"
player_b_damage[id] = random_num(3,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i ",player_item_name[id],player_b_damage[id])
}
case 3:
{
player_item_name[id] = "Gold Amplifier"
player_b_damage[id] = random_num(6,10)
show_hudmessage(id, "Znalazles przedmiot: %s :: dodaje obrazenia +%i ",player_item_name[id],player_b_damage[id])
}
case 4:
{
player_item_name[id] = "Vampyric Staff"
player_b_vampire[id] = random_num(1,4)
show_hudmessage(id, "Znalazles przedmiot: %s :: wysysasz %i hp przeciwnikowi",player_item_name[id],player_b_vampire[id])
}
case 5:
{
player_item_name[id] = "Vampyric Amulet"
player_b_vampire[id] = random_num(4,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: wysysasz %i hp przeciwnikowi",player_item_name[id],player_b_vampire[id])
}
case 6:
{
player_item_name[id] = "Vampyric Scepter"
player_b_vampire[id] = random_num(6,9)
show_hudmessage(id, "Znalazles przedmiot: %s :: wysysasz %i hp przeciwnikowi",player_item_name[id],player_b_vampire[id])
}
case 7:
{
player_item_name[id] = "Small bronze bag"
player_b_money[id] = random_num(150,500)
show_hudmessage(id, "Znalazles przedmiot: %s :: dostajesz %i zloto w kazdej rundzie. Uzyj, zeby chronil cie.",player_item_name[id],player_b_money[id]+player_intelligence[id]*50)
}
case 8:
{
player_item_name[id] = "Medium silver bag"
player_b_money[id] = random_num(500,1200)
show_hudmessage(id, "Znalazles przedmiot: %s :: dostajesz %i zloto w kazdej rundzie. Uzyj, zeby chronil cie.",player_item_name[id],player_b_money[id]+player_intelligence[id]*50)
}
case 9:
{
player_item_name[id] = "Large gold bag"
player_b_money[id] = random_num(1200,3000)
show_hudmessage(id, "Znalazles przedmiot: %s :: dostajesz %i zloto w kazdej rundzie. Uzyj, zeby chronil cie.",player_item_name[id],player_b_money[id]+player_intelligence[id]*50)
}
case 10:
{
player_item_name[id] = "Small angel wings"
player_b_gravity[id] = random_num(1,5)
if (is_user_alive(id))
set_gravitychange(id)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i premia wyzszego skoku - Wcisnij e zeby uzyc",player_item_name[id],player_b_gravity[id])
}
case 11:
{
player_item_name[id] = "Arch angel wings"
player_b_gravity[id] = random_num(5,9)
if (is_user_alive(id))
set_gravitychange(id)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i premia wyzszego skoku - Wcisnij e zeby uzyc",player_item_name[id],player_b_gravity[id])
}
case 12:
{
player_item_name[id] = "Invisibility Rope"
player_b_inv[id] = random_num(150,200)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i premii niewidocznosci",player_item_name[id],255-player_b_inv[id])
}
case 13:
{
player_item_name[id] = "Invisibility Coat"
player_b_inv[id] = random_num(110,150)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i premii niewidocznosci",player_item_name[id],255-player_b_inv[id])
}
case 14:
{
player_item_name[id] = "Invisibility Armor"
player_b_inv[id] = random_num(70,110)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i premii niewidocznosci",player_item_name[id],255-player_b_inv[id])
}
case 15:
{
player_item_name[id] = "Firerope"
player_b_grenade[id] = random_num(3,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: +1/%i szans natychmiastowego zabicia granatem HE",player_item_name[id],player_b_grenade[id])
}
case 16:
{
player_item_name[id] = "Fire Amulet"
player_b_grenade[id] = random_num(2,4)
show_hudmessage(id, "Znalazles przedmiot: %s :: +1/%i szans natychmiastowego zabicia granatem HE",player_item_name[id],player_b_grenade[id])
}
case 17:
{
player_item_name[id] = "Stalkers ring"
player_b_reduceH[id] = 95
player_b_inv[id] = 8
item_durability[id] = 100
if (is_user_alive(id)) set_user_health(id,5)
show_hudmessage(id, "Znalazles przedmiot: %s :: Masz 5 zycia i noz, jestes prawie niewidoczny",player_item_name[id])
}
case 18:
{
player_item_name[id] = "Arabian Boots"
player_b_theif[id] = random_num(500,1000)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/5 szans by krasc zloto%i za kazdym razem jak uderzasz. Uzyj zeby zamienic zloto w zycia",player_item_name[id],player_b_theif[id])
}
case 19:
{
player_item_name[id] = "Phoenix Ring"
player_b_respawn[id] = random_num(3,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do ponownego odrodzenia sie po smierci",player_item_name[id],player_b_respawn[id])
}
case 20:
{
player_item_name[id] = "Sorcerers ring"
player_b_respawn[id] = random_num(2,3)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do ponownego odrodzenia sie po smierci",player_item_name[id],player_b_respawn[id])
}
case 21:
{
player_item_name[id] = "Chaos Orb"
player_b_explode[id] = random_num(150,275)
show_hudmessage(id, "Znalazles przedmiot: %s :: Wybuchniesz zaraz po smierci w promieniu %i",player_item_name[id],player_b_explode[id])
}
case 22:
{
player_item_name[id] = "Hell Orb"
player_b_explode[id] = random_num(200,400)
show_hudmessage(id, "Znalazles przedmiot: %s :: Wybuchniesz zaraz po smierci w promieniu %i",player_item_name[id],player_b_explode[id])
}
case 23:
{
player_item_name[id] = "Gold statue"
player_b_heal[id] = random_num(5,10)
show_hudmessage(id, "Znalazles przedmiot: %s :: Regeneruje %i hp co kazde 5 sekund. Uzyj, zeby polozyc totem ktory bedzie leczyl wszystkich w zasiegu %i",player_item_name[id],player_b_heal[id],player_b_heal[id])
}
case 24:
{
player_item_name[id] = "Daylight Diamond"
player_b_heal[id] = random_num(10,20)
show_hudmessage(id, "Znalazles przedmiot: %s :: Regeneruje %i hp co kazde 5 sekund. Uzyj, zeby polozyc totem ktory bedzie leczyl wszystkich w zasiegu %i",player_item_name[id],player_b_heal[id],player_b_heal[id])
}
case 25:
{
player_item_name[id] = "Blood Diamond"
player_b_heal[id] = random_num(20,35)
show_hudmessage(id, "Znalazles przedmiot: %s :: Regeneruje %i hp co kazde 5 sekund. Uzyj, zeby polozyc totem ktory bedzie leczyl wszystkich w zasiegu %i",player_item_name[id],player_b_heal[id],player_b_heal[id])
}
case 26:
{
player_item_name[id] = "Wheel of Fortune"
player_b_gamble[id] = random_num(2,3)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i daje ci dodatkowa premie w kazdej rundzie",player_item_name[id],player_b_gamble[id])
}
case 27:
{
player_item_name[id] = "Four leaf Clover"
player_b_gamble[id] = random_num(4,5)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i daje ci dodatkowa premie w kazdej rundzie",player_item_name[id],player_b_gamble[id])
}
case 28:
{
player_item_name[id] = "Amulet of the sun"
player_b_blind[id] = random_num(6,9)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans na utrate wzroku kiedy uszkadzasz wroga",player_item_name[id],player_b_blind[id])
}
case 29:
{
player_item_name[id] = "Sword of the sun"
player_b_blind[id] = random_num(2,5)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans na utrate wzroku kiedy uszkadzasz wroga",player_item_name[id],player_b_blind[id])
}
case 30:
{
player_item_name[id] = "Fireshield"
player_b_fireshield[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Chroni od natychmiastowego zabicia HE i orbami. Wcisnij e zeby go uzyc",player_item_name[id],player_b_fireshield[id])
}
case 31:
{
player_item_name[id] = "Stealth Shoes"
player_b_silent[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Twoj bieg cichnie",player_item_name[id])
}
case 32:
{
player_item_name[id] = "Meekstone"
player_b_meekstone[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby podlozyc sztuczna bombe",player_item_name[id])
}
case 33:
{
player_item_name[id] = "Medicine Glar"
player_b_teamheal[id] = random_num(10,20)
show_hudmessage(id, "Znalazles przedmiot: %s :: Strzel do swojego, aby uleczyc %i hp - wcisnij E, zeby uzyc",player_item_name[id],player_b_teamheal[id])
}
case 34:
{
player_item_name[id] = "Medicine Totem"
player_b_teamheal[id] = random_num(20,30)
show_hudmessage(id, "Znalazles przedmiot: %s :: Strzel do swojego, aby uleczyc %i hp - wcisnij E, zeby uzyc",player_item_name[id],player_b_teamheal[id])
}
case 35:
{
player_item_name[id] = "Iron Armor"
player_b_redirect[id] = random_num(3,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i Obniza uszkodzenia zadawane graczowi",player_item_name[id],player_b_redirect[id])
}
case 36:
{
player_item_name[id] = "Mitril Armor"
player_b_redirect[id] = random_num(6,11)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i Obniza uszkodzenia zadawane graczowi",player_item_name[id],player_b_redirect[id])
}
case 37:
{
player_item_name[id] = "Godly Armor"
player_b_redirect[id] = random_num(10,15)
show_hudmessage(id, "Znalazles przedmiot: %s :: +%i Obniza uszkodzenia zadawane graczowi",player_item_name[id],player_b_redirect[id])
}
case 38:
{
player_item_name[id] = "Fireball staff"
player_b_fireball[id] = random_num(50,100)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uszkadza wszystko w promieniu %i",player_item_name[id],player_b_fireball[id])
}
case 39:
{
player_item_name[id] = "Fireball scepter"
player_b_fireball[id] = random_num(100,200)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uszkadza wszystko w promieniu %i",player_item_name[id],player_b_fireball[id])
}
case 40:
{
player_item_name[id] = "Ghost Rope"
player_b_ghost[id] = random_num(3,6)
show_hudmessage(id, "Znalazles przedmiot: %s :: Mozesz przenikac przez sciany przez %i sekund",player_item_name[id],player_b_ghost[id])
}
case 41:
{
player_item_name[id] = "Nicolas Eye"
player_b_eye[id] = -1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj aby polozyc kamere i uzyj ponownie zeby uzyc i zatrzymac",player_item_name[id])
}
case 42:
{
player_item_name[id] = "Knife Ruby"
player_b_blink[id] = floatround(halflife_time())
show_hudmessage(id, "Znalazles przedmiot: %s :: Twoj noz pozwala ci teleportowac sie raz na 3 sekundy",player_item_name[id])
}
case 43:
{
player_item_name[id] = "Lothars Edge"
player_b_windwalk[id] = random_num(4,7)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj a staniesz sie niewidzialny przez %i sekund i w tym czasie nie mozesz atakowac ale za to szybko biegasz",player_item_name[id],player_b_windwalk[id])
}
case 44:
{
player_item_name[id] = "Sword"
player_sword[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: zadajesz wieksze obrazenia nozem",player_item_name[id])
}
case 45:
{
player_item_name[id] = "Magic Booster"
player_b_froglegs[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Kucnij na 3 sekundy, a zrobisz dlugi skok",player_item_name[id])
}
case 46:
{
player_item_name[id] = "Dagon I"
player_b_dagon[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj zeby uderzyc twojego przeciwnika piorunem ognia",player_item_name[id])
}
case 47:
{
player_item_name[id] = "Scout Extender"
player_b_sniper[id] = random_num(3,4)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do natychmiastowego zabicia scoutem",player_item_name[id],player_b_sniper[id])
}
case 48:
{
player_item_name[id] = "Scout Amplifier"
player_b_sniper[id] = random_num(2,3)
show_hudmessage(id, "Znalazles przedmiot: %s :: 1/%i szans do natychmiastowego zabicia scoutem",player_item_name[id],player_b_sniper[id])
}
case 49:
{
player_item_name[id] = "Air booster"
player_b_jumpx[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Mozesz zrobic podwojny skok w powietrzu",player_item_name[id],player_b_sniper[id])
}
case 50:
{
player_item_name[id] = "Iron Spikes"
player_b_smokehit[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Jezeli uderzasz kogos granatami dymym, to on zginie",player_item_name[id])
}
case 51:
{
player_item_name[id] = "Point Booster"
player_b_extrastats[id] = random_num(1,3)
BoostStats(id,player_b_extrastats[id])
show_hudmessage(id, "Znalazles przedmiot: %s :: Zyskasz +%i do wszystkich statystyk",player_item_name[id],player_b_extrastats[id])
}
case 52:
{
player_item_name[id] = "Totem amulet"
player_b_firetotem[id] = random_num(250,400)
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby polozyc wybuchowy totem ognia",player_item_name[id])
}
case 53:
{
player_item_name[id] = "Magic Hook"
player_b_hook[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby rzucic hakiem",player_item_name[id])
}
case 54:
{
player_item_name[id] = "Darksteel Glove"
player_b_darksteel[id] = random_num(1,5)
show_hudmessage(id, "Znalazles przedmiot: %s :: Dodatkowe uszkodzenia, gdy trafisz kogos od tyłu",player_item_name[id])
}
case 55:
{
player_item_name[id] = "Darksteel Gaunlet"
player_b_darksteel[id] = random_num(7,9)
show_hudmessage(id, "Znalazles przedmiot: %s :: Dodatkowe uszkodzenia, gdy trafisz kogos od tyłu",player_item_name[id])
}
case 56:
{
player_item_name[id] = "Illusionists Cape"
player_b_illusionist[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby stac sie niewidoczny dla wszystkich",player_item_name[id])
}
case 57:
{
player_item_name[id] = "Techies scepter"
player_b_mine[id] = 3
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, zeby polozyc niewidzialna mine",player_item_name[id])
}
case 58:
{
player_item_name[id] = "Ninja ring"
player_b_blink[id] = floatround(halflife_time())
player_b_froglegs[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Twoj noz pozwala ci teleportowac sie co 3 sekundy i zrobic dlugi skok jak kucniesz na 3 sekundy",player_item_name[id])
}
case 59:
{
player_item_name[id] = "Mag ring"
player_ring[id]=1
player_b_fireball[id] = random_num(50,80)
show_hudmessage(id, "Znalazles przedmiot : %s :: Ten przedmiot dodaje ci +5 inteligencji i robi ognista kule, wcisnij E aby urzyc",player_item_name[id])
}
case 60:
{
player_item_name[id] = "Nekromanta ring"
player_b_respawn[id] = random_num(2,4)
player_b_vampire[id] = random_num(3,5)
show_hudmessage(id, "Znalazles przedmiot : %s :: Dzieki temu itemowi masz szanse na ponowne odrodzenie sie i wysysasz zycie wrogowi",player_item_name[id])
}
case 61:
{
player_item_name[id] = "Barbarzynca ring"
player_b_explode[id] = random_num(120,330)
player_ring[id]=2
show_hudmessage(id, "Znalazles przedmiot : %s :: Ten item dodaje ci +5 sily i jak zginiesz wybuchasz",player_item_name[id])
}
case 62:
{
player_item_name[id] = "Paladyn ring"
player_b_redirect[id] = random_num(7,17)
player_b_blind[id] = random_num(3,4)
show_hudmessage(id, "Znalazles przedmiot : %s :: Redukuje normalne obrazenia i masz szanse na oslepienie wroga",player_item_name[id])
}
case 63:
{
player_item_name[id] = "Mnich ring"
player_b_grenade[id] = random_num(1,4)
player_b_heal[id] = random_num(20,35)
show_hudmessage(id, "Znalazles przedmiot : %s :: Masz szanse na natychmiastowe zabicie z HE. Twoje hp bedzie sie regenerowac co 5 sekund oraz mozesz polozyc leczacy totem na 7 sekund",player_item_name[id])
}
case 64:
{
player_item_name[id] = "Zabojca ring"
player_b_jumpx[id] = 1
player_ring[id]=3
show_hudmessage(id, "Znalazles przedmiot : %s :: Dostajesz +5 do zwinnosci. Mozesz zrobic podwojny skok w powietrzu",player_item_name[id])
}
case 65:
{
player_item_name[id] = "Flashbang necklace"
wear_sun[id] = 1
show_hudmessage (id, "Znalazles przedmiot : %s :: Flashbangi na ciebie nie dzialaja",player_item_name[id])
}
case 66:
{
player_item_name[id] = "Chameleon"
changeskin(id,0)
show_hudmessage (id, "Znalazles przedmiot : %s :: Wygladasz jak przeciwnik",player_item_name[id])
}
case 67:
{
player_item_name[id] = "Stong Armor"
player_ultra_armor[id]=random_num(3,6)
player_ultra_armor_left[id]=player_ultra_armor[id]
show_hudmessage (id, "Znalazles przedmiot : %s :: Twoj pancerz moze odbic do %i pociskow",player_item_name[id],player_ultra_armor[id])
}
case 68:
{
player_item_name[id] = "Ultra Armor"
player_ultra_armor[id]=random_num(7,11)
player_ultra_armor_left[id]=player_ultra_armor[id]
show_hudmessage (id, "Znalazles przedmiot : %s :: Twoj pancerz moze odbic do %i pociskow",player_item_name[id],player_ultra_armor[id])
}
}
player_item_id[id] = item
BoostRing(id)
}
public StworzRakiete(id)
{
if (!ilosc_rakiet_gracza[id] && is_user_alive(id))
{
client_print(id, print_center, "Wykorzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
if(poprzednia_rakieta_gracza[id] + 3.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 3 sekundy!");
return PLUGIN_CONTINUE;
}
if (is_user_alive(id))
{
if(player_intelligence[id] < 1)
client_print(id, print_center, "Aby wzmocnic rakiete, zwieksz inteligencje!");
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[id]--;
new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
entity_get_vector(id, EV_VEC_v_angle, vAngle);
entity_get_vector(id, EV_VEC_origin , Origin);
new Ent = create_entity("info_target");
entity_set_string(Ent, EV_SZ_classname, "Rocket");
entity_set_model(Ent, "models/rpgrocket.mdl");
vAngle[0] *= -1.0;
entity_set_origin(Ent, Origin);
entity_set_vector(Ent, EV_VEC_angles, vAngle);
entity_set_int(Ent, EV_INT_effects, 2);
entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
entity_set_edict(Ent, EV_ENT_owner, id);
VelocityByAim(id, 1000 , Velocity);
entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
}
return PLUGIN_CONTINUE;
}
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
new attacker = entity_get_edict(ent, EV_ENT_owner);
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.0, entlist, 32);
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid))
continue;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 50.0+float(player_intelligence[attacker])/2 , 1);
}
remove_entity(ent);
}
/*public PolozDynamit(id)
{
if(!ilosc_dynamitow_gracza[id] && is_user_alive(id))
{
client_print(id, print_center, "Wykorzystales juz caly dynamit!");
return PLUGIN_CONTINUE;
}
if(player_intelligence[id] < 49)
client_print(id, print_center, "Aby wzmocnic dynamit, zwieksz inteligencje!");
ilosc_dynamitow_gracza[id]--;
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( id, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32);
write_byte(20);
write_byte(0);
message_end();
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[0] );
write_coord( iOrigin[1] );
write_coord( iOrigin[2] );
write_coord( iOrigin[0] );
write_coord( iOrigin[1] + 300 );
write_coord( iOrigin[2] + 300 );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // r, g, b
write_byte( 100 );// r, g, b
write_byte( 100 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 8 ); // speed
message_end();
new entlist[33];
new numfound = find_sphere_class(id, "player", 300.0 , entlist, 32);
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
if (!is_user_alive(pid) || get_user_team(id) == get_user_team(pid))
continue;
ExecuteHam(Ham_TakeDamage, pid, 0, id, 60.0+float(player_intelligence[id]/2) , 1);
}
return PLUGIN_CONTINUE;
}*/
public wallclimb(id, button)
{
static Float:origin[3]
pev(id, pev_origin, origin)
if(get_distance_f(origin, g_wallorigin[id]) > 25.0)
return FMRES_IGNORED // if not near wall
if(fm_get_entity_flags(id) & FL_ONGROUND)
return FMRES_IGNORED
if(button & IN_FORWARD)
{
static Float:velocity[3]
velocity_by_aim(id, 120, velocity)
fm_set_user_velocity(id, velocity)
}
else if(button & IN_BACK)
{
static Float:velocity[3]
velocity_by_aim(id, -120, velocity)
fm_set_user_velocity(id, velocity)
}
return FMRES_IGNORED
}
public make_hook(id)
{
if (player_class[id] == GigantycznyPajak && is_user_alive(id) || (player_class[id] == Griswold && is_user_alive(id)))
{
if (get_pcvar_num(pHook) && is_user_alive(id) && canThrowHook[id] && !gHooked[id]) {
if (get_pcvar_num(pAdmin))
{
// Only the admins can throw the hook
// if(is_user_admin(id)) { <- does not work...
if (!(get_user_flags(id) & ADMIN_IMMUNITY) && !g_bHookAllowed[id])
{
// Show a message
client_print(id, print_chat, "[Hook] %L",id,"NO_ACC_COM")
console_print(id, "[Hook] %L",id,"NO_ACC_COM")
return PLUGIN_HANDLED
}
}
new iMaxHooks = get_pcvar_num(pMaxHooks)
if (iMaxHooks > 0)
{
if (gHooksUsed[id] >= iMaxHooks)
{
client_print(id, print_chat, "[Lina] Zuzyles wszystkie liny w tej rundzie.")
statusMsg(id, "[Lina] %d z %d lin.", gHooksUsed[id], get_pcvar_num(pMaxHooks))
return PLUGIN_HANDLED
}
else
{
gHooksUsed[id]++
statusMsg(id, "[Lina] %d z %d lin", gHooksUsed[id], get_pcvar_num(pMaxHooks))
}
}
new Float:fDelay = get_pcvar_float(pRndStartDelay)
if (fDelay > 0 && !rndStarted)
client_print(id, print_chat, "[Lina] Nie mozesz uzyc liny w pierwszysch %0.0f sekundach rundy", fDelay)
throw_hook(id)
}
}
return PLUGIN_HANDLED
}
public del_hook(id)
{
if (player_class[id] == GigantycznyPajak && is_user_alive(id) || (player_class[id] == Griswold && is_user_alive(id)))
{
// Remove players hook
if (!canThrowHook[id])
remove_hook(id)
}
return PLUGIN_HANDLED
}
public round_bstart()
{
// Round is not started anymore
if (rndStarted)
rndStarted = false
// Remove all hooks
for (new i = 1; i <= gMaxPlayers; i++)
{
if (is_user_connected(i))
{
if(!canThrowHook[i])
remove_hook(i)
}
}
}
public round_estart()
{
new Float:fDelay = get_pcvar_float(pRndStartDelay)
if (fDelay > 0.0)
set_task(fDelay, "rndStartDelay")
else
{
// Round is started...
if (!rndStarted)
rndStarted = true
}
}
public rndStartDelay()
{
if (!rndStarted)
rndStarted = true
}
public Restart()
{
for (new id = 0; id < gMaxPlayers; id++)
{
if (is_user_connected(id))
gRestart[id] = true
}
}
public fwTouch(ptr, ptd)
{
if (!pev_valid(ptr))
return FMRES_IGNORED
new id = pev(ptr, pev_owner)
// Get classname
static szPtrClass[32]
pev(ptr, pev_classname, szPtrClass, charsmax(szPtrClass))
if (equali(szPtrClass, "Hook"))
{
static Float:fOrigin[3]
pev(ptr, pev_origin, fOrigin)
if (pev_valid(ptd))
{
static szPtdClass[32]
pev(ptd, pev_classname, szPtdClass, charsmax(szPtdClass))
if (!get_pcvar_num(pPlayers) && /*equali(szPtdClass, "player")*/ is_user_alive(ptd))
{
// Hit a player
if (get_pcvar_num(pSound))
emit_sound(ptr, CHAN_STATIC, "weapons/xbow_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
remove_hook(id)
return FMRES_HANDLED
}
else if (equali(szPtdClass, "hostage_entity"))
{
// Makes an hostage follow
if (get_pcvar_num(pHostage) && get_user_team(id) == 2)
{
//cs_set_hostage_foll(ptd, (cs_get_hostage_foll(ptd) == id) ? 0 : id)
// With the use function we have the sounds!
dllfunc(DLLFunc_Use, ptd, id)
}
if (!get_pcvar_num(pPlayers))
{
if(get_pcvar_num(pSound))
emit_sound(ptr, CHAN_STATIC, "weapons/xbow_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
remove_hook(id)
}
return FMRES_HANDLED
}
else if (get_pcvar_num(pOpenDoors) && equali(szPtdClass, "func_door") || equali(szPtdClass, "func_door_rotating"))
{
// Open doors
// Double doors tested in de_nuke and de_wallmart
static szTargetName[32]
pev(ptd, pev_targetname, szTargetName, charsmax(szTargetName))
if (strlen(szTargetName) > 0)
{
static ent
while ((ent = engfunc(EngFunc_FindEntityByString, ent, "target", szTargetName)) > 0)
{
static szEntClass[32]
pev(ent, pev_classname, szEntClass, charsmax(szEntClass))
if (equali(szEntClass, "trigger_multiple"))
{
dllfunc(DLLFunc_Touch, ent, id)
goto stopdoors // No need to touch anymore
}
}
}
// No double doors.. just touch it
dllfunc(DLLFunc_Touch, ptd, id)
stopdoors:
}
else if (get_pcvar_num(pUseButtons) && equali(szPtdClass, "func_button"))
{
if (pev(ptd, pev_spawnflags) & SF_BUTTON_TOUCH_ONLY)
dllfunc(DLLFunc_Touch, ptd, id) // Touch only
else
dllfunc(DLLFunc_Use, ptd, id) // Use Buttons
}
}
// If cvar sv_hooksky is 0 and hook is in the sky remove it!
new iContents = engfunc(EngFunc_PointContents, fOrigin)
if (!get_pcvar_num(pHookSky) && iContents == CONTENTS_SKY)
{
if(get_pcvar_num(pSound))
emit_sound(ptr, CHAN_STATIC, "weapons/xbow_hit2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
remove_hook(id)
return FMRES_HANDLED
}
// Pick up weapons..
if (get_pcvar_num(pWeapons))
{
static ent
while ((ent = engfunc(EngFunc_FindEntityInSphere, ent, fOrigin, 15.0)) > 0)
{
static szentClass[32]
pev(ent, pev_classname, szentClass, charsmax(szentClass))
if (equali(szentClass, "weaponbox") || equali(szentClass, "armoury_entity"))
dllfunc(DLLFunc_Touch, ent, id)
}
}
// Player is now hooked
gHooked[id] = true
// Play sound
if (get_pcvar_num(pSound))
emit_sound(ptr, CHAN_STATIC, "weapons/xbow_hit1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
// Make some sparks :D
message_begin_f(MSG_BROADCAST, SVC_TEMPENTITY, fOrigin, 0)
write_byte(9) // TE_SPARKS
write_coord_f(fOrigin[0]) // Origin
write_coord_f(fOrigin[1])
write_coord_f(fOrigin[2])
message_end()
// Stop the hook from moving
set_pev(ptr, pev_velocity, Float:{0.0, 0.0, 0.0})
set_pev(ptr, pev_movetype, MOVETYPE_NONE)
//Task
if (!task_exists(id + 856))
{
static TaskData[2]
TaskData[0] = id
TaskData[1] = ptr
gotohook(TaskData)
set_task(0.1, "gotohook", id + 856, TaskData, 2, "b")
}
}
return FMRES_HANDLED
}
public hookthink(param[])
{
new id = param[0]
new HookEnt = param[1]
if (!is_user_alive(id) || !pev_valid(HookEnt) || !pev_valid(id))
{
remove_task(id + 890)
return PLUGIN_HANDLED
}
static Float:entOrigin[3]
pev(HookEnt, pev_origin, entOrigin)
// If user is behind a box or something.. remove it
// only works if sv_interrupt 1 or higher is
if (get_pcvar_num(pInterrupt) && rndStarted)
{
static Float:usrOrigin[3]
pev(id, pev_origin, usrOrigin)
static tr
engfunc(EngFunc_TraceLine, usrOrigin, entOrigin, 1, -1, tr)
static Float:fFraction
get_tr2(tr, TR_flFraction, fFraction)
if (fFraction != 1.0)
remove_hook(id)
}
// If cvar sv_hooksky is 0 and hook is in the sky remove it!
new iContents = engfunc(EngFunc_PointContents, entOrigin)
if (!get_pcvar_num(pHookSky) && iContents == CONTENTS_SKY)
{
if(get_pcvar_num(pSound))
emit_sound(HookEnt, CHAN_STATIC, "weapons/xbow_hit2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
remove_hook(id)
}
return PLUGIN_HANDLED
}
public gotohook(param[])
{
new id = param[0]
new HookEnt = param[1]
if (!is_user_alive(id) || !pev_valid(HookEnt) || !pev_valid(id))
{
remove_task(id + 856)
return PLUGIN_HANDLED
}
// If the round isnt started velocity is just 0
static Float:fVelocity[3]
fVelocity = Float:{0.0, 0.0, 1.0}
// If the round is started and player is hooked we can set the user velocity!
if (rndStarted && gHooked[id])
{
static Float:fHookOrigin[3], Float:fUsrOrigin[3], Float:fDist
pev(HookEnt, pev_origin, fHookOrigin)
pev(id, pev_origin, fUsrOrigin)
fDist = vector_distance(fHookOrigin, fUsrOrigin)
if (fDist >= 30.0)
{
new Float:fSpeed = get_pcvar_float(pSpeed)
fSpeed *= 0.52
fVelocity[0] = (fHookOrigin[0] - fUsrOrigin[0]) * (2.0 * fSpeed) / fDist
fVelocity[1] = (fHookOrigin[1] - fUsrOrigin[1]) * (2.0 * fSpeed) / fDist
fVelocity[2] = (fHookOrigin[2] - fUsrOrigin[2]) * (2.0 * fSpeed) / fDist
}
}
// Set the velocity
set_pev(id, pev_velocity, fVelocity)
return PLUGIN_HANDLED
}
public throw_hook(id)
{
// Get origin and angle for the hook
static Float:fOrigin[3], Float:fAngle[3],Float:fvAngle[3]
static Float:fStart[3]
pev(id, pev_origin, fOrigin)
pev(id, pev_angles, fAngle)
pev(id, pev_v_angle, fvAngle)
if (get_pcvar_num(pInstant))
{
get_user_hitpoint(id, fStart)
if (engfunc(EngFunc_PointContents, fStart) != CONTENTS_SKY)
{
static Float:fSize[3]
pev(id, pev_size, fSize)
fOrigin[0] = fStart[0] + floatcos(fvAngle[1], degrees) * (-10.0 + fSize[0])
fOrigin[1] = fStart[1] + floatsin(fvAngle[1], degrees) * (-10.0 + fSize[1])
fOrigin[2] = fStart[2]
}
else
xs_vec_copy(fStart, fOrigin)
}
// Make the hook!
Hook[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
if (Hook[id])
{
// Player cant throw hook now
canThrowHook[id] = false
static const Float:fMins[3] = {-2.840000, -14.180000, -2.840000}
static const Float:fMaxs[3] = {2.840000, 0.020000, 2.840000}
//Set some Data
set_pev(Hook[id], pev_classname, "Hook")
engfunc(EngFunc_SetModel, Hook[id], "models/rpgrocket.mdl")
engfunc(EngFunc_SetOrigin, Hook[id], fOrigin)
engfunc(EngFunc_SetSize, Hook[id], fMins, fMaxs)
//set_pev(Hook[id], pev_mins, fMins)
//set_pev(Hook[id], pev_maxs, fMaxs)
set_pev(Hook[id], pev_angles, fAngle)
set_pev(Hook[id], pev_solid, 2)
set_pev(Hook[id], pev_movetype, 5)
set_pev(Hook[id], pev_owner, id)
//Set hook velocity
static Float:fForward[3], Float:Velocity[3]
new Float:fSpeed = get_pcvar_float(pThrowSpeed)
engfunc(EngFunc_MakeVectors, fvAngle)
global_get(glb_v_forward, fForward)
Velocity[0] = fForward[0] * fSpeed
Velocity[1] = fForward[1] * fSpeed
Velocity[2] = fForward[2] * fSpeed
set_pev(Hook[id], pev_velocity, Velocity)
// Make the line between Hook and Player
message_begin_f(MSG_BROADCAST, SVC_TEMPENTITY, Float:{0.0, 0.0, 0.0}, 0)
if (get_pcvar_num(pInstant))
{
write_byte(1) // TE_BEAMPOINT
write_short(id) // Startent
write_coord_f(fStart[0]) // End pos
write_coord_f(fStart[1])
write_coord_f(fStart[2])
}
else
{
write_byte(8) // TE_BEAMENTS
write_short(id) // Start Ent
write_short(Hook[id]) // End Ent
}
write_short(sprBeam) // Sprite
write_byte(1) // StartFrame
write_byte(1) // FrameRate
write_byte(600) // Life
write_byte(get_pcvar_num(pWidth)) // Width
write_byte(get_pcvar_num(pHookNoise)) // Noise
// Colors now
if (get_pcvar_num(pColor))
{
if (get_user_team(id) == 1) // Terrorist
{
write_byte(255) // R
write_byte(0) // G
write_byte(0) // B
}
#if defined _cstrike_included
else if(cs_get_user_vip(id)) // vip for cstrike
{
write_byte(0) // R
write_byte(255) // G
write_byte(0) // B
}
#endif // _cstrike_included
else if(get_user_team(id) == 2) // CT
{
write_byte(0) // R
write_byte(0) // G
write_byte(255) // B
}
else
{
write_byte(255) // R
write_byte(255) // G
write_byte(255) // B
}
}
else
{
write_byte(255) // R
write_byte(255) // G
write_byte(255) // B
}
write_byte(192) // Brightness
write_byte(0) // Scroll speed
message_end()
if (get_pcvar_num(pSound) && !get_pcvar_num(pInstant))
emit_sound(id, CHAN_BODY, "weapons/xbow_fire1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_HIGH)
static TaskData[2]
TaskData[0] = id
TaskData[1] = Hook[id]
set_task(0.1, "hookthink", id + 890, TaskData, 2, "b")
}
else
client_print(id, print_chat, "Can't create hook")
}
public remove_hook(id)
{
//Player can now throw hooks
canThrowHook[id] = true
// Remove the hook if it is valid
if (pev_valid(Hook[id]))
engfunc(EngFunc_RemoveEntity, Hook[id])
Hook[id] = 0
// Remove the line between user and hook
if (is_user_connected(id))
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, {0,0,0}, id)
write_byte(99) // TE_KILLBEAM
write_short(id) // entity
message_end()
}
// Player is not hooked anymore
gHooked[id] = false
return 1
}
public give_hook(id, level, cid)
{
if (!cmd_access(id ,level, cid, 1))
return PLUGIN_HANDLED
if (!get_pcvar_num(pAdmin))
{
console_print(id, "[Hook] Admin only mode is currently disabled")
return PLUGIN_HANDLED
}
static szTarget[32]
read_argv(1, szTarget, charsmax(szTarget))
new iUsrId = cmd_target(id, szTarget)
if (!iUsrId)
return PLUGIN_HANDLED
static szName[32]
get_user_name(iUsrId, szName, charsmax(szName))
if (!g_bHookAllowed[iUsrId])
{
g_bHookAllowed[iUsrId] = true
console_print(id, "[Hook] You gave %s access to the hook", szName)
}
else
console_print(id, "[Hook] %s already have access to the hook", szName)
return PLUGIN_HANDLED
}
public take_hook(id, level, cid)
{
if (!cmd_access(id ,level, cid, 1))
return PLUGIN_HANDLED
if (!get_pcvar_num(pAdmin))
{
console_print(id, "[Hook] Admin only mode is currently disabled")
return PLUGIN_HANDLED
}
static szTarget[32]
read_argv(1, szTarget, charsmax(szTarget))
new iUsrId = cmd_target(id, szTarget)
if (!iUsrId)
return PLUGIN_HANDLED
static szName[32]
get_user_name(iUsrId, szName, charsmax(szName))
if (g_bHookAllowed[iUsrId])
{
g_bHookAllowed[iUsrId] = false
console_print(id, "[Hook] You took away %s his access to the hook", szName)
}
else
console_print(id, "[Hook] %s does not have access to the hook", szName)
return PLUGIN_HANDLED
}
// Stock by Chaosphere
stock get_user_hitpoint(id, Float:hOrigin[3])
{
if (!is_user_alive(id))
return 0
static Float:fOrigin[3], Float:fvAngle[3], Float:fvOffset[3], Float:fvOrigin[3], Float:feOrigin[3]
static Float:fTemp[3]
pev(id, pev_origin, fOrigin)
pev(id, pev_v_angle, fvAngle)
pev(id, pev_view_ofs, fvOffset)
xs_vec_add(fOrigin, fvOffset, fvOrigin)
engfunc(EngFunc_AngleVectors, fvAngle, feOrigin, fTemp, fTemp)
xs_vec_mul_scalar(feOrigin, 8192.0, feOrigin)
xs_vec_add(fvOrigin, feOrigin, feOrigin)
static tr
engfunc(EngFunc_TraceLine, fvOrigin, feOrigin, 0, id, tr)
get_tr2(tr, TR_vecEndPos, hOrigin)
//global_get(glb_trace_endpos, hOrigin)
return 1
}
stock statusMsg(id, szMsg[], {Float,_}:...)
{
static iStatusText
if (!iStatusText)
iStatusText = get_user_msgid("StatusText")
static szBuffer[512]
vformat(szBuffer, charsmax(szBuffer), szMsg, 3)
message_begin((id == 0) ? MSG_ALL : MSG_ONE, iStatusText, _, id)
write_byte(0) // Unknown
write_string(szBuffer) // Message
message_end()
return 1
}
public TTWin() {
new play[32], nr, id;
get_players(play, nr, "h");
for(new i=0; i<nr; i++) {
id = play[i];
if(is_user_connected(id) && cs_get_user_team(id) == CS_TEAM_T) {
new dziel = is_user_alive(id) ? 1 : 2;
Give_Xp(id, get_cvar_num("diablo_xpbonus3")/dziel);
ColorChat(id, GREEN, "[DiabloMod]^x01 Dostales^x04 %i^x01 doswiadczenia za wygranie rundy przez twoja druzyne", get_cvar_num("diablo_xpbonus3")/dziel);
}
}
}
public CTWin() {
new play[32], nr, id;
get_players(play, nr, "h");
for(new i=0; i<nr; i++) {
id = play[i];
if(is_user_connected(id) && cs_get_user_team(id) == CS_TEAM_CT) {
new dziel = is_user_alive(id) ? 1 : 2;
Give_Xp(id, get_cvar_num("diablo_xpbonus3")/dziel);
ColorChat(id, GREEN, "[DiabloMod]^x01 Dostales^x04 %i^x01 doswiadczenia za wygranie rundy przez twoja druzyne", get_cvar_num("diablo_xpbonus3")/dziel);
}
}
}
public add_bonus_shake(attacker_id,id)
{
if(c_shake[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && is_user_alive(id))
{
if (random_num(1,c_shake[attacker_id]) == 1)
{
message_begin(MSG_ONE,get_user_msgid("ScreenShake"),{0,0,0},id);
write_short(7<<14);
write_short(1<<13);
write_short(1<<14);
message_end();
}
}
return PLUGIN_HANDLED
}
public add_bonus_shaked(attacker_id,id)
{
new clip,ammo
new weapon = get_user_weapon(attacker_id,clip,ammo)
if(c_shaked[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && is_user_alive(id))
{
if(weapon == CSW_GLOCK18 || weapon == CSW_USP || weapon == CSW_P228 || weapon == CSW_DEAGLE || weapon == CSW_ELITE || weapon == CSW_FIVESEVEN)
{
if (random_num(1,c_shaked[attacker_id]) == 1)
{
message_begin(MSG_ONE,get_user_msgid("ScreenShake"),{0,0,0},id);
write_short(7<<14);
write_short(1<<13);
write_short(1<<14);
message_end();
}
}
}
return PLUGIN_HANDLED
}
public item_ulecz(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Uleczenia mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
new m_healthf = race_heal[player_class[id]]+player_strength[id]*2
new CurHealthf = get_user_health(id)
new NewHealthf = (CurHealthf+50<m_healthf)? CurHealthf+50:m_healthf
set_user_health(id, NewHealthf)
used_item[id] = true
return PLUGIN_CONTINUE
}
public check_palek(id)
{
if (player_class[id] == Paladyn && is_user_alive(id))
{
c_ulecz[id] = true;
item_ulecz(id)
}
return PLUGIN_HANDLED
}
public player_Think(id){
if(!is_user_alive(id) || !niewidzialnosc_kucanie[id]){
return HAM_IGNORED;
}
new button = get_user_button(id);
new oldbutton = get_user_oldbutton(id);
if(button&IN_DUCK && !(oldbutton&IN_DUCK)){
set_user_rendering(id,kRenderFxNone,255,255,255,kRenderTransAlpha,50)
}
else if(!(button&IN_DUCK) && oldbutton&IN_DUCK){
set_user_rendering(id,kRenderFxNone,255,255,255,kRenderTransAlpha,255)
}
return HAM_HANDLED;
}
public lustrzanypocisk(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(damagebits&(1<<1) && lustrzany_pocisk[this] > 0)
{
SetHamParamEntity(1, idattacker);
SetHamParamEntity(2,this );
SetHamParamEntity(3,this );
lustrzany_pocisk[this]--;
return HAM_HANDLED;
}
return HAM_IGNORED;
}
CreateHealBot()
{
new Bot = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if (Bot)
{
set_pev(Bot, pev_classname, "HealBot");
dllfunc(DLLFunc_Spawn, Bot);
set_pev(Bot, pev_nextthink, get_gametime() + 10.0);
}
}
public HealBotThink(Bot)
{
new iPlayers[32], iNum, id;
get_players(iPlayers, iNum);
for(new i; i<iNum; i++)
{
id = iPlayers[i];
if (!is_user_alive(id)) continue;
if (player_class[id] != Zgniatacz) continue;
change_health(id,30,0,"");
}
set_pev(Bot, pev_nextthink, get_gametime() + 10.0);
}
CreateHealBot2()
{
new Bot = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if (Bot)
{
set_pev(Bot, pev_classname, "HealBot2");
dllfunc(DLLFunc_Spawn, Bot);
set_pev(Bot, pev_nextthink, get_gametime() + 10.0);
}
}
public HealBotThink2(Bot)
{
new iPlayers[32], iNum, id;
get_players(iPlayers, iNum);
for(new i; i<iNum; i++)
{
id = iPlayers[i];
if (!is_user_alive(id)) continue;
if (player_class[id] != Griswold) continue;
change_health(id,30,0,"");
}
set_pev(Bot, pev_nextthink, get_gametime() + 10.0);
}
CreateHealBot3()
{
new Bot = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if (Bot)
{
set_pev(Bot, pev_classname, "HealBot3");
dllfunc(DLLFunc_Spawn, Bot);
set_pev(Bot, pev_nextthink, get_gametime() + 10.0);
}
}
public HealBotThink3(Bot)
{
new iPlayers[32], iNum, id;
get_players(iPlayers, iNum);
for(new i; i<iNum; i++)
{
id = iPlayers[i];
if (!is_user_alive(id)) continue;
if (player_class[id] != Kowal) continue;
change_health(id,30,0,"");
}
set_pev(Bot, pev_nextthink, get_gametime() + 10.0);
}
CreateHealBot4()
{
new Bot = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
if (Bot)
{
set_pev(Bot, pev_classname, "HealBot4");
dllfunc(DLLFunc_Spawn, Bot);
set_pev(Bot, pev_nextthink, get_gametime() + 10.0);
}
}
public HealBotThink4(Bot)
{
new iPlayers[32], iNum, id;
get_players(iPlayers, iNum);
for(new i; i<iNum; i++)
{
id = iPlayers[i];
if (!is_user_alive(id)) continue;
if (player_class[id] != Demonolog) continue;
change_health(id,30,0,"");
}
set_pev(Bot, pev_nextthink, get_gametime() + 10.0);
}
public exp(id)
{
ColorChat(id, GREEN, "[DiabloMod]^x01 Poziom: ^x04%i ^x01- Masz ^x03(%d/%d)^x01 Doswiadczenia", player_lvl[id], player_xp[id], LevelXP[player_lvl[id]])
ColorChat(id, GREEN, "[DiabloMod]^x01 Do nastepnego poziomu brakuje ^x04%d^x01 Doswiadczenia", LevelXP[player_lvl[id]]-player_xp[id])
}
public radar_scan() {
for(new id=1; id<=MAX; id++) {
if(!is_user_alive(id) || !player_b_radar[id]) continue;
for(new i=1; i<=MAX; i++) {
if(!is_user_alive(i) || id == i || get_user_team(id) == get_user_team(i)) continue;
new PlayerCoords[3];
get_user_origin(i, PlayerCoords);
message_begin(MSG_ONE_UNRELIABLE, g_msgHostageAdd, {0,0,0}, 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, g_msgHostageDel, {0,0,0}, id);
write_byte(i);
message_end();
}
}
}
public niesmiertelnoscon(id) {
if(used_item[id]) {
hudmsg(id, 2.0, "Niesmiertelnosci mozesz uzyc raz na runde!");
return PLUGIN_CONTINUE;
}
set_user_godmode(id, 1);
new Float:czas = player_b_godmode[id]+0.0;
remove_task(id+TASK_GOD);
set_task(czas, "niesmiertelnoscoff", id+TASK_GOD, "", 0, "a", 1);
message_begin(MSG_ONE, gmsgBartimer, {0,0,0}, id);
write_byte(player_b_godmode[id]);
write_byte(0);
message_end();
used_item[id] = true;
return PLUGIN_CONTINUE;
}
public niesmiertelnoscoff(id) {
id-=TASK_GOD;
if(is_user_connected(id)) {
set_user_godmode(id, 0);
message_begin(MSG_ONE, gmsgBartimer, {0,0,0}, id);
write_byte(0);
write_byte(0);
message_end();
}
}
public item_zamroz(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Totemu mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
used_item[id] = true
new origin[3]
pev(id,pev_origin,origin)
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Zamroz_Totem")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_TRIGGER)
set_pev(ent,pev_origin,origin)
set_pev(ent,pev_ltime, halflife_time() + 15 + 0.1)
engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_heal.mdl")
set_rendering ( ent, kRenderFxGlowShell, 0,100,255, kRenderFxNone, 255 )
engfunc(EngFunc_DropToFloor,ent)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
return PLUGIN_CONTINUE
}
public Effect_Zamroz_Totem_Think(ent)
{
new id = pev(ent,pev_owner)
new totem_dist = 300
//We have emitted beam. Apply effect (this is delayed)
if (pev(ent,pev_euser2) == 1)
{
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and damage them
new entlist[513]
new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
if (get_user_team(pid) == get_user_team(id))
continue
if (is_user_alive(pid)){
set_user_maxspeed(pid, 1.0)
set_task(15.0, "off_zamroz", pid)
}
}
set_pev(ent,pev_euser2,0)
set_pev(ent,pev_nextthink, halflife_time() + 1.5)
return PLUGIN_CONTINUE
}
//Entity should be destroyed because livetime is over
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
remove_entity(ent)
return PLUGIN_CONTINUE
}
//If this object is almost dead, apply some render to make it fade out
if (pev(ent,pev_ltime)-2.0 < halflife_time())
set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 )
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + totem_dist );
write_coord( origin[2] + totem_dist );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 0 ); // r, g, b
write_byte( 100 ); // r, g, b
write_byte( 255 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
set_pev(ent,pev_euser2,1)
set_pev(ent,pev_nextthink, halflife_time() + 0.5)
return PLUGIN_CONTINUE
}
public off_zamroz(pid){
set_user_maxspeed(pid, 270.0)
}
public giveitem(id, level, cid)
{
if(!cmd_access(id,level, cid, 3))
return PLUGIN_HANDLED;
new szName[32];
read_argv(1, szName, 31);
new iTarget=cmd_target(id,szName,0);
if(iTarget)
{
get_user_name(iTarget, szName, 31);
new szItem[10], iItem;
read_argv(2, szItem, 9);
iItem=str_to_num(szItem);
client_print(id, print_console, "Do %s wyslano item nr %d",szName, iItem);
award_item(iTarget, iItem);
set_gravitychange(iTarget)
set_speedchange(iTarget)
set_renderchange(iTarget)
}
return PLUGIN_HANDLED
}
public item_kasa(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Totemu mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
used_item[id] = true
new origin[3]
pev(id,pev_origin,origin)
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Kasa_Totem")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_TRIGGER)
set_pev(ent,pev_origin,origin)
set_pev(ent,pev_ltime, halflife_time() + 15 + 0.1)
engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_heal.mdl")
set_rendering ( ent, kRenderFxGlowShell, 255,215,0, kRenderFxNone, 255 )
engfunc(EngFunc_DropToFloor,ent)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
return PLUGIN_CONTINUE
}
public Effect_Kasa_Totem_Think(ent)
{
new id = pev(ent,pev_owner)
new totem_dist = 300
//We have emitted beam. Apply effect (this is delayed)
if (pev(ent,pev_euser2) == 1)
{
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and damage them
new entlist[513]
new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
if (get_user_team(pid) == get_user_team(id))
continue
if (is_user_alive(pid)){
cs_set_user_money(id, cs_get_user_money(id)+500, 1)
set_task(15.0, "off_kasa", pid)
}
}
set_pev(ent,pev_euser2,0)
set_pev(ent,pev_nextthink, halflife_time() + 1.5)
return PLUGIN_CONTINUE
}
//Entity should be destroyed because livetime is over
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
remove_entity(ent)
return PLUGIN_CONTINUE
}
//If this object is almost dead, apply some render to make it fade out
if (pev(ent,pev_ltime)-2.0 < halflife_time())
set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 )
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + totem_dist );
write_coord( origin[2] + totem_dist );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255); // r, g, b
write_byte( 215 ); // r, g, b
write_byte( 0 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
set_pev(ent,pev_euser2,1)
set_pev(ent,pev_nextthink, halflife_time() + 0.5)
return PLUGIN_CONTINUE
}
public off_kasa(pid){
set_user_maxspeed(pid, 270.0)
}
public item_kasaq(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Totemu mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
used_item[id] = true
new origin[3]
pev(id,pev_origin,origin)
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Kasaq_Totem")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_TRIGGER)
set_pev(ent,pev_origin,origin)
set_pev(ent,pev_ltime, halflife_time() + 15 + 0.1)
engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_heal.mdl")
set_rendering ( ent, kRenderFxGlowShell, 138,43,226, kRenderFxNone, 255 )
engfunc(EngFunc_DropToFloor,ent)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
return PLUGIN_CONTINUE
}
public Effect_Kasaq_Totem_Think(ent)
{
new id = pev(ent,pev_owner)
new totem_dist = 300
//We have emitted beam. Apply effect (this is delayed)
if (pev(ent,pev_euser2) == 1)
{
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and damage them
new entlist[513]
new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
if (get_user_team(pid) == get_user_team(id))
continue
if (is_user_alive(pid)){
cs_set_user_money(pid, cs_get_user_money(pid)-500, 1)
set_task(15.0, "off_kasaq", pid)
}
}
set_pev(ent,pev_euser2,0)
set_pev(ent,pev_nextthink, halflife_time() + 1.5)
return PLUGIN_CONTINUE
}
//Entity should be destroyed because livetime is over
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
remove_entity(ent)
return PLUGIN_CONTINUE
}
//If this object is almost dead, apply some render to make it fade out
if (pev(ent,pev_ltime)-2.0 < halflife_time())
set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 )
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + totem_dist );
write_coord( origin[2] + totem_dist );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 138 ); // r, g, b
write_byte( 43 ); // r, g, b
write_byte( 226 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
set_pev(ent,pev_euser2,1)
set_pev(ent,pev_nextthink, halflife_time() + 0.5)
return PLUGIN_CONTINUE
}
public off_kasaq(pid){
set_user_maxspeed(pid, 270.0)
}
public item_wywal(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Totemu mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
used_item[id] = true
new origin[3]
pev(id,pev_origin,origin)
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Wywal_Totem")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_TRIGGER)
set_pev(ent,pev_origin,origin)
set_pev(ent,pev_ltime, halflife_time() + 15 + 0.1)
engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_heal.mdl")
set_rendering ( ent, kRenderFxGlowShell, 139,69,19, kRenderFxNone, 255 )
engfunc(EngFunc_DropToFloor,ent)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
return PLUGIN_CONTINUE
}
public Effect_Wywal_Totem_Think(ent)
{
new id = pev(ent,pev_owner)
new totem_dist = 300
//We have emitted beam. Apply effect (this is delayed)
if (pev(ent,pev_euser2) == 1)
{
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and damage them
new entlist[513]
new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
if (get_user_team(pid) == get_user_team(id))
continue
if (is_user_alive(pid)){
client_cmd(pid, "drop")
set_task(15.0, "off_wywal", pid)
}
}
set_pev(ent,pev_euser2,0)
set_pev(ent,pev_nextthink, halflife_time() + 1.5)
return PLUGIN_CONTINUE
}
//Entity should be destroyed because livetime is over
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
remove_entity(ent)
return PLUGIN_CONTINUE
}
//If this object is almost dead, apply some render to make it fade out
if (pev(ent,pev_ltime)-2.0 < halflife_time())
set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 )
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + totem_dist );
write_coord( origin[2] + totem_dist );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 139); // r, g, b
write_byte( 69 ); // r, g, b
write_byte( 19 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
set_pev(ent,pev_euser2,1)
set_pev(ent,pev_nextthink, halflife_time() + 0.5)
return PLUGIN_CONTINUE
}
public off_wywal(pid){
set_user_maxspeed(pid, 270.0)
}
public Flesh(id){
Display_Fade(id,1<<14,1<<14 ,1<<16,255,155,50,230)
}
public item_fleshuj(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Totemu mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
used_item[id] = true
new origin[3]
pev(id,pev_origin,origin)
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Fleshuj_Totem")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_TRIGGER)
set_pev(ent,pev_origin,origin)
set_pev(ent,pev_ltime, halflife_time() + 15 + 0.1)
engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_heal.mdl")
set_rendering ( ent, kRenderFxGlowShell, 255,255,250, kRenderFxNone, 255 )
engfunc(EngFunc_DropToFloor,ent)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
return PLUGIN_CONTINUE
}
public Effect_Fleshuj_Totem_Think(ent)
{
new id = pev(ent,pev_owner)
new totem_dist = 300
//We have emitted beam. Apply effect (this is delayed)
if (pev(ent,pev_euser2) == 1)
{
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and damage them
new entlist[513]
new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
if (get_user_team(pid) == get_user_team(id))
continue
if (is_user_alive(pid)){
client_cmd(pid, "fleszuj")
set_task(15.0, "off_fleshuj", pid)
}
}
set_pev(ent,pev_euser2,0)
set_pev(ent,pev_nextthink, halflife_time() + 1.5)
return PLUGIN_CONTINUE
}
//Entity should be destroyed because livetime is over
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
remove_entity(ent)
return PLUGIN_CONTINUE
}
//If this object is almost dead, apply some render to make it fade out
if (pev(ent,pev_ltime)-2.0 < halflife_time())
set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 )
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + totem_dist );
write_coord( origin[2] + totem_dist );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // r, g, b
write_byte( 255 ); // r, g, b
write_byte( 250 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
set_pev(ent,pev_euser2,1)
set_pev(ent,pev_nextthink, halflife_time() + 0.5)
return PLUGIN_CONTINUE
}
public off_fleshuj(pid){
set_user_maxspeed(pid, 270.0)
}
/*public menum1(id) //o to ma pokazywac w switchu
{
if(cs_get_user_team(id) == CS_TEAM_CT || cs_get_user_team(id) == CS_TEAM_T)
{
new menu = menu_create("\ySklep za mane","wybor_menum1")
menu_additem(menu,"\yBronie")//,"0",0)
menu_additem(menu,"\yItemy","1",0)
menu_additem(menu,"\yInne","2",0)
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
menu_setprop(menu,MPROP_NEXTNAME,"Dalej")
menu_setprop(menu,MPROP_BACKNAME,"Wroc")
menu_display(id,menu,0)
}
}
public wybor_menum1(id,menu,item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key
switch(key)
{
case 0: {
mymenu(id)
}
case 1: {
menum3(id)
}
case 2: {
menum5(id)
}
}
return PLUGIN_HANDLED
}
public menum2(id)
{
if(cs_get_user_team(id) == CS_TEAM_CT || cs_get_user_team(id) == CS_TEAM_T)
{
new menu = menu_create("\r[DiabloMod] \wSklep z bronia","wybor_menum2")
menu_additem(menu,"\y M4A1 + Ammo \d[8 many]")//,"0",0)
menu_additem(menu,"\y AK47 + Ammo \d[7 many]","1",0)
menu_additem(menu,"\y AWP + Ammo \d[10 many]","2",0)
menu_additem(menu,"\y Famas + Ammo \d[5 many]","3",0)
menu_additem(menu,"\y Galil + Ammo \d[5 many]","4",0)
menu_additem(menu,"\y Krowa + Ammo \d[13 many]","5",0)
menu_additem(menu,"\y Mp5 + Ammo \d[4 many]","6",0)
menu_additem(menu,"\y Scout + Ammo \d[6 many]","7",0)
menu_additem(menu,"\y Wolna Pompa + Ammo \d[7 many]","8",0)
menu_additem(menu,"\y Szybka Pompa + Ammo \d[7 many]","9",0)
menu_additem(menu,"\y P90 + Ammo \d[4 many]","10",0)
menu_additem(menu,"\y Deagl + Ammo \d[2 many]","11",0)
menu_additem(menu,"\y Aug + Ammo \d[8 many]","12",0)
menu_additem(menu,"\y SG552 + Ammo \d[8 many]","13",0)
menu_additem(menu,"\y Noktowizor \d[5 many]","14",0)
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
menu_setprop(menu,MPROP_NEXTNAME,"Dalej")
menu_setprop(menu,MPROP_BACKNAME,"Wroc")
menu_display(id,menu,0)
}
}
public wybor_menum2(id,menu,item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key
switch(key)
{
case 0:
{
new koszt = 4;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
mana_gracza[id] -= koszt;
award_item(id,0)
}
case 1: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 2: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 3: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 4: {
show_motd(id, "addons/data/lang/1.txt")
}
case 5: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 6: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 7: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 8: {
show_motd(id, "addons/data/lang/1.txt")
}
case 9: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 10: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 11: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 12: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 13: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 14: {
show_motd(id, "addons/data/lang/1.txt4")
}
}
return PLUGIN_HANDLED
}
public menum3(id)
{
if(cs_get_user_team(id) == CS_TEAM_CT || cs_get_user_team(id) == CS_TEAM_T)
{
new menu = menu_create("\ySklep z itemami","wybor_menum3")
menu_additem(menu,"\y Bojowe Berlo Wampira \d[10 many]","0",0)
menu_additem(menu,"\y Brazowa Szarfa \d[40 many]","1",0)
menu_additem(menu,"\y Srebna Szarfa \d[50 many]","2",0)
menu_additem(menu,"\y Zlota Szarfa \d[60 many]","3",0)
menu_additem(menu,"\y Skrzydla Aniola \d[100 many]","4",0)
menu_additem(menu,"\y Skrzydla Archaniola \d[130 many]","5",0)
menu_additem(menu,"\y Firerope \d[40 many]","6",0)
menu_additem(menu,"\y Ognisty Amulet \d[60 many]","7",0)
menu_additem(menu,"\y Pierscien Niewidzialnosci \d[140 many]","8",0)
menu_additem(menu,"\y Zlota Szkatulka \d[25 many]","9",0)
menu_additem(menu,"\y Totem Leczniczy \d[40 many]","10",0)
menu_additem(menu,"\y Wiekszy Totem Leczniczy \d[60 many]","11",0)
menu_additem(menu,"\y Szansa Szczescia \d[30 many]","12",0)
menu_additem(menu,"\y Miecz Boga Slonca \d[40 many]","13",0)
menu_additem(menu,"\y Pochodnia Piekielnego Ognia \d[85 many]","14",0)
menu_additem(menu,"\y Cichobiegi \d[10 many]","15",0)
menu_additem(menu,"\y Kamien Smierci \d[70 many]","16",0)
menu_additem(menu,"\y Skorzana Zbroja \d[50 many]","17",0)
menu_additem(menu,"\y Magiczny Noz \d[25 many]","18",0)
menu_additem(menu,"\y Wywazony Noz \d[45 many]","19",0)
menu_additem(menu,"\y Tajemnica Mlodszego Snajpera \d[70 many]","20",0)
menu_additem(menu,"\y Tajemnica Starszego Snajpera \d[100 many]","21",0)
menu_additem(menu,"\y Zmijowy Amulet \d[50 many]","22",0)
menu_additem(menu,"\y Pierscien Paladyna \d[60 many]","23",0)
menu_additem(menu,"\y Pierscien Druida \d[80 many]","24",0)
menu_additem(menu,"\y Oko Kota \d[30 many]","25",0)
menu_additem(menu,"\y Oko Khalima \d[100 many]","26",0)
menu_additem(menu,"\y Hydrze Ostrze \d[80 many]","27",0)
menu_additem(menu,"\y Pierscien Expa \d[70 many]","28",0)
menu_additem(menu,"\y Aegis \d[90 many]","29",0)
menu_additem(menu,"\y Niebianski Kamien \d[70 many]","30",0)
menu_additem(menu,"\y Ropiejaca Esencja Destrukcji \d[140 many]","31",0)
menu_additem(menu,"\y Centurion \d[170 many]","32",0)
menu_additem(menu,"\y Dr House \d[100 many]","33",0)
menu_additem(menu,"\y Own Invisible \d[300 many]","34",0)
menu_additem(menu,"\y Mega Invisible \d[300 many]","35",0)
menu_additem(menu,"\y Mini Anty Special \d[30 many]","36",0)
menu_additem(menu,"\y Pierscien Zmarlego Rycerza \d[220 many]","37",0)
menu_additem(menu,"\y Pierscien Niewidzialnosci \d[140 many]","38",0)
menu_additem(menu,"\y Sakiewka Zlodzieja \d[150 many]","39",0)
menu_additem(menu,"\y Revival Ring \d[80 many]","40",0)
menu_additem(menu,"\y Zabojca Demonow \d[170 many]","41",0)
menu_additem(menu,"\y Mystiqe \d[100 many]","42",0)
menu_additem(menu,"\y Apocalypse Anihilation \d[240 many]","43",0)
menu_additem(menu,"\y M4A1 Special \d[150 many]","44",0)
menu_additem(menu,"\y Ak47 Special \d[150 many]","45",0)
menu_additem(menu,"\y Awp Special \d[130 many]","46",0)
menu_additem(menu,"\y Deagle Special \d[140 many]","47",0)
menu_additem(menu,"\y M3 Special \d[145 many]","48",0)
menu_additem(menu,"\y Full Special \d[210 many]","49",0)
menu_additem(menu,"\y Full Anty Special \d[50 many]","50",0)
menu_additem(menu,"\y Fortuna Gheeda \d[148 many]","51",0)
menu_additem(menu,"\y Winter Totem \d[30 many]","52",0)
menu_additem(menu,"\y Cash Totem \d[40 many]","53",0)
menu_additem(menu,"\y Thief Totem \d[50 many]","54",0)
menu_additem(menu,"\y Weapon Totem \d[80 many]","55",0)
menu_additem(menu,"\y Flash Totem \d[80 many]","56",0)
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
menu_setprop(menu,MPROP_NEXTNAME,"Dalej")
menu_setprop(menu,MPROP_BACKNAME,"Wroc")
menu_display(id,menu,0)
}
}
public wybor_menum3(id,menu,item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data)
switch(key)
{
case 0: {
show_motd(id, "addons/data/lang/1.txt")
}
case 1: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 2: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 3: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 4: {
show_motd(id, "addons/data/lang/1.txt")
}
case 5: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 6: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 7: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 8: {
show_motd(id, "addons/data/lang/1.txt")
}
case 9: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 10: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 11: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 12: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 13: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 14: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 15: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 16: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 17: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 18: {
show_motd(id, "addons/data/lang/1.txt")
}
case 19: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 20: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 21: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 22: {
show_motd(id, "addons/data/lang/1.txt")
}
case 23: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 24: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 25: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 26: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 27: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 28: {
show_motd(id, "addons/data/lang/1.txt")
}
case 29: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 30: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 31: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 32: {
show_motd(id, "addons/data/lang/1.txt")
}
case 33: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 34: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 35: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 36: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 37: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 38: {
show_motd(id, "addons/data/lang/1.txt")
}
case 39: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 40: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 41: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 42: {
show_motd(id, "addons/data/lang/1.txt")
}
case 43: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 44: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 45: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 46: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 47: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 48: {
show_motd(id, "addons/data/lang/1.txt")
}
case 49: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 50: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 51: {
show_motd(id, "addons/data/lang/1.txt4")
}
case 52: {
show_motd(id, "addons/data/lang/1.txt")
}
case 53: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 54: {
show_motd(id, "addons/data/lang/1.txt3")
}
case 55: {
show_motd(id, "addons/data/lang/1.txt2")
}
case 56: {
show_motd(id, "addons/data/lang/1.txt3")
}
}
return PLUGIN_HANDLED
}
public menum5(id)
{
if(cs_get_user_team(id) == CS_TEAM_CT || cs_get_user_team(id) == CS_TEAM_T)
{
new menu = menu_create("\yInne","wybor_menum5")
menu_additem(menu,"\wLosowy Item \d[10 many]","0",0)
menu_additem(menu,"\wUlepszenie Itemu \d[10 many]","1",0)
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_setprop(menu,MPROP_EXITNAME,"Wyjscie")
menu_setprop(menu,MPROP_NEXTNAME,"Dalej")
menu_setprop(menu,MPROP_BACKNAME,"Wroc")
menu_display(id,menu,0)
}
}
public wybor_menum5(id,menu,item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data)
switch(key)
{
case 0: {
show_motd(id, "addons/data/lang/1.txt")
}
case 1: {
show_motd(id, "addons/data/lang/1.txt2")
}
}
return PLUGIN_HANDLED
}
public mymenu(id){
new MyMenu=menu_create("Test","cbMyMenu");
menu_additem(MyMenu,"los");//item=0
menu_additem(MyMenu,"Czesc");//item=1
menu_additem(MyMenu,"Nq");//item=2
menu_display(id, MyMenu,0);
return PLUGIN_HANDLED;
}
public cbMyMenu(id, menu, item){
switch(item){
case 0:
{
new koszt = 4;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
mana_gracza[id] -= koszt;
award_item(id,0)
}
case 1:{
client_cmd(id, "say Czesc");
}
case 2:{
client_cmd(id, "say nq");
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}*/
public mana1(id){
new mana1=menu_create("\r[DiabloMod] \wSklep z mana","mana1a");
menu_additem(mana1,"\wBronie");//item=0
menu_additem(mana1,"\wItemy");//item=1
menu_additem(mana1,"\wInne");//item=2
menu_display(id, mana1,0);
return PLUGIN_HANDLED;
}
public mana1a(id, menu, item){
switch(item){
case 0:
{
mana2(id)
}
case 1:
{
mana3(id)
}
case 2:
{
mana4(id)
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public mana2(id){
new mana2=menu_create("\r[DiabloMod] \wSklep z bronia","mana2a");
menu_additem(mana2,"\w M4A1 + Ammo \d[10 many]")
menu_additem(mana2,"\w AK47 + Ammo \d[7 many]")
menu_additem(mana2,"\w AWP + Ammo \d[10 many]")
menu_additem(mana2,"\w Famas + Ammo \d[5 many]")
menu_additem(mana2,"\w Galil + Ammo \d[5 many]")
menu_additem(mana2,"\w Krowa + Ammo \d[13 many]")
menu_additem(mana2,"\w Mp5 + Ammo \d[4 many]")
menu_additem(mana2,"\w Scout + Ammo \d[6 many]")
menu_additem(mana2,"\w Wolna Pompa + Ammo \d[7 many]")
menu_additem(mana2,"\w Szybka Pompa + Ammo \d[7 many]")
menu_additem(mana2,"\w P90 + Ammo \d[4 many]")
menu_additem(mana2,"\w Deagl + Ammo \d[2 many]")
menu_additem(mana2,"\w Aug + Ammo \d[8 many]")
menu_additem(mana2,"\w SG552 + Ammo \d[8 many]")
menu_additem(mana2,"\w Noktowizor \d[5 many]")
menu_setprop(mana2,MPROP_EXIT,MEXIT_ALL)
menu_setprop(mana2,MPROP_EXITNAME,"Wyjscie")
menu_setprop(mana2,MPROP_NEXTNAME,"Dalej")
menu_setprop(mana2,MPROP_BACKNAME,"Wroc")
menu_display(id, mana2,0);
return PLUGIN_HANDLED;
}
public mana2a(id, menu, item){
switch(item){
case 0:
{
new koszt = 10;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90)
}
}
case 1:
{
new koszt = 7;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)
}
}
case 2:{
new koszt = 10;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
}
}
case 3:{
new koszt = 5;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_famas")
cs_set_user_bpammo(id, CSW_FAMAS, 90)
}
}
case 4:{
new koszt = 5;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_gali")
cs_set_user_bpammo(id, CSW_GALI, 90)
}
}
case 5:{
new koszt = 13;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_m249")
cs_set_user_bpammo(id, CSW_M249, 200)
}
}
case 6:{
new koszt = 4;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_mp5navy")
cs_set_user_bpammo(id, CSW_MP5NAVY, 120)
}
}
case 7:{
new koszt = 6;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_scout")
cs_set_user_bpammo(id, CSW_SCOUT, 90)
}
}
case 8:{
new koszt = 7;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_m3")
cs_set_user_bpammo(id, CSW_M3, 32)
}
}
case 9:{
new koszt = 7;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_xm1014")
cs_set_user_bpammo(id, CSW_XM1014, 32)
}
}
case 10:{
new koszt = 4;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_p90")
cs_set_user_bpammo(id, CSW_P90, 100)
}
}
case 11:{
new koszt = 2;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
}
}
case 12:{
new koszt = 8;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_aug")
cs_set_user_bpammo(id, CSW_AUG, 90)
}
}
case 13:{
new koszt = 8;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id,"weapon_sg552")
cs_set_user_bpammo(id, CSW_SG550, 90)
}
}
case 14:{
new koszt = 5;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
fm_give_item(id, "item_nvgs")
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public mana3(id){
new mana3=menu_create("\r[DiabloMod] \wSklep z itemami","mana3a");
menu_additem(mana3,"\w Bojowe Berlo Wampira \d[10 many]")
menu_additem(mana3,"\w Brazowa Szarfa \d[40 many]")
menu_additem(mana3,"\w Srebna Szarfa \d[50 many]")
menu_additem(mana3,"\w Zlota Szarfa \d[60 many]")
menu_additem(mana3,"\w Skrzydla Aniola \d[100 many]")
menu_additem(mana3,"\w Skrzydla Archaniola \d[130 many]")
menu_additem(mana3,"\w Firerope \d[40 many]")
menu_additem(mana3,"\w Ognisty Amulet \d[60 many]")
menu_additem(mana3,"\w Pierscien Niewidzialnosci \d[140 many]")
menu_additem(mana3,"\w Zlota Szkatulka \d[25 many]")
menu_additem(mana3,"\w Totem Leczniczy \d[40 many]")
menu_additem(mana3,"\w Wiekszy Totem Leczniczy \d[60 many]")
menu_additem(mana3,"\w Szansa Szczescia \d[30 many]")
menu_additem(mana3,"\w Miecz Boga Slonca \d[40 many]")
menu_additem(mana3,"\w Pochodnia Piekielnego Ognia \d[85 many]")
menu_additem(mana3,"\w Cichobiegi \d[10 many]")
menu_additem(mana3,"\w Kamien Smierci \d[70 many]")
menu_additem(mana3,"\w Skorzana Zbroja \d[50 many]")
menu_additem(mana3,"\w Magiczny Noz \d[25 many]")
menu_additem(mana3,"\w Wywazony Noz \d[45 many]")
menu_additem(mana3,"\w Tajemnica Mlodszego Snajpera \d[70 many]")
menu_additem(mana3,"\w Tajemnica Starszego Snajpera \d[100 many]")
menu_additem(mana3,"\w Zmijowy Amulet \d[50 many]")
menu_additem(mana3,"\w Pierscien Paladyna \d[60 many]")
menu_additem(mana3,"\w Pierscien Druida \d[80 many]")
menu_additem(mana3,"\w Oko Kota \d[30 many]")
menu_additem(mana3,"\w Oko Khalima \d[100 many]")
menu_additem(mana3,"\w Hydrze Ostrze \d[80 many]")
menu_additem(mana3,"\w Pierscien Expa \d[70 many]")
menu_additem(mana3,"\w Aegis \d[90 many]")
menu_additem(mana3,"\w Niebianski Kamien \d[70 many]")
menu_additem(mana3,"\w Ropiejaca Esencja Destrukcji \d[140 many]")
menu_additem(mana3,"\w Centurion \d[170 many]","32")
menu_additem(mana3,"\w Dr House \d[100 many]","33")
menu_additem(mana3,"\w Own Invisible \d[300 many]")
menu_additem(mana3,"\w Mega Invisible \d[300 many]")
menu_additem(mana3,"\w Mini Anty Special \d[30 many]")
menu_additem(mana3,"\w Pierscien Zmarlego Rycerza \d[220 many]")
menu_additem(mana3,"\w Pierscien Niewidzialnosci \d[140 many]")
menu_additem(mana3,"\w Sakiewka Zlodzieja \d[150 many]")
menu_additem(mana3,"\w Revival Ring \d[80 many]","40")
menu_additem(mana3,"\w Zabojca Demonow \d[170 many]","41")
menu_additem(mana3,"\w Mystiqe \d[100 many]","42")
menu_additem(mana3,"\w Apocalypse Anihilation \d[240 many]","43")
menu_additem(mana3,"\w M4A1 Special \d[150 many]")
menu_additem(mana3,"\w Ak47 Special \d[150 many]")
menu_additem(mana3,"\w Awp Special \d[130 many]")
menu_additem(mana3,"\w Deagle Special \d[140 many]")
menu_additem(mana3,"\w M3 Special \d[145 many]")
menu_additem(mana3,"\w Full Special \d[210 many]")
menu_additem(mana3,"\w Full Anty Special \d[50 many]")
menu_additem(mana3,"\w Fortuna Gheeda \d[148 many]")
menu_additem(mana3,"\w Winter Totem \d[30 many]")
menu_additem(mana3,"\w Cash Totem \d[40 many]")
menu_additem(mana3,"\w Thief Totem \d[50 many]")
menu_additem(mana3,"\w Weapon Totem \d[80 many]")
menu_additem(mana3,"\w Flash Totem \d[80 many]")
menu_setprop(mana3,MPROP_EXIT,MEXIT_ALL)
menu_setprop(mana3,MPROP_EXITNAME,"Wyjscie")
menu_setprop(mana3,MPROP_NEXTNAME,"Dalej")
menu_setprop(mana3,MPROP_BACKNAME,"Wroc")
menu_display(id, mana3,0);
return PLUGIN_HANDLED;
}
public mana3a(id, menu, item){
switch(item){
case 0:
{
new koszt = 10;
if (mana_gracza[id]<koszt && player_item_id[id] != 0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,6)
}
}
case 1:{
new koszt = 40;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,7)
}
}
case 2:{
new koszt = 50;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,8)
}
}
case 3:{
new koszt = 60;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,9)
}
}
case 4:{
new koszt = 100;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,10)
}
}
case 5:{
new koszt = 130;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,11)
}
}
case 6:{
new koszt = 40;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,15)
}
}
case 7:{
new koszt = 60;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,16)
}
}
case 8:{
new koszt = 140;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,17)
}
}
case 9:{
new koszt = 25;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,23)
}
}
case 10:{
new koszt = 40;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,24)
}
}
case 11:{
new koszt = 60;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,25)
}
}
case 12:{
new koszt = 30;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,26)
}
}
case 13:{
new koszt = 40;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,29)
}
}
case 14:{
new koszt = 85;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,30)
}
}
case 15:{
new koszt = 10;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,31)
}
}
case 16:{
new koszt = 70;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,32)
}
}
case 17:{
new koszt = 50;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,37)
}
}
case 18:{
new koszt = 25;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,42)
}
}
case 19:{
new koszt = 45;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,44)
}
}
case 20:{
new koszt = 70;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,47)
}
}
case 21:{
new koszt = 100;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,48)
}
}
case 22:{
new koszt = 50;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,50)
}
}
case 23:{
new koszt = 60;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,62)
}
}
case 24:{
new koszt = 80;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,63)
}
}
case 25:{
new koszt = 30;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,65)
}
}
case 26:{
new koszt = 100;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,69)
}
}
case 27:{
new koszt = 80;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,74)
}
}
case 28:{
new koszt = 70;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,75)
}
}
case 29:{
new koszt = 90;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,76)
}
}
case 30:{
new koszt = 70;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,78)
}
}
case 31:{
new koszt = 140;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,79)
}
}
case 32:{
new koszt = 170;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,85)
}
}
case 33:{
new koszt = 100;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,87)
}
}
case 34:{
new koszt = 300;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,88)
}
}
case 35:{
new koszt = 300;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,89)
}
}
case 36:{
new koszt = 30;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,90)
}
}
case 37:{
new koszt = 220;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,91)
}
}
case 38:{
new koszt = 150;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,92)
}
}
case 39:{
new koszt = 80;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,94)
}
}
case 40:{
new koszt = 170;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,95)
}
}
case 41:{
new koszt = 100;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,96)
}
}
case 42:{
new koszt = 240;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,97)
}
}
case 43:{
new koszt = 150;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,104)
}
}
case 44:{
new koszt = 150;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,105)
}
}
case 45:{
new koszt = 130;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,106)
}
}
case 46:{
new koszt = 140;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,107)
}
}
case 47:{
new koszt = 145;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,108)
}
}
case 48:{
new koszt = 210;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,109)
}
}
case 49:{
new koszt = 50;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,99)
}
}
case 50:{
new koszt = 148;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,120)
}
}
case 51:{
new koszt = 30;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,121)
}
}
case 52:{
new koszt = 40;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,122)
}
}
case 53:{
new koszt = 50;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,123)
}
}
case 54:{
new koszt = 80;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,124)
}
}
case 55:{
new koszt = 80;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,125)
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public mana4(id){
new mana4=menu_create("\r[DiabloMod] \wInne","mana4a");
menu_additem(mana4,"\w Losowy Item \d[10 many]")
menu_additem(mana4,"\w Ulepszenie Itemu \d[20 many]")
menu_setprop(mana4,MPROP_EXIT,MEXIT_ALL)
menu_setprop(mana4,MPROP_EXITNAME,"Wyjscie")
menu_setprop(mana4,MPROP_NEXTNAME,"Dalej")
menu_setprop(mana4,MPROP_BACKNAME,"Wroc")
menu_display(id, mana4,0);
return PLUGIN_HANDLED;
}
public mana4a(id, menu, item){
switch(item){
case 0:
{
new koszt = 10;
if (mana_gracza[id]<koszt && player_item_id[id]>0)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many lub posiadasz juz inny item");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
award_item(id,0)
}
}
case 1:{
new koszt = 20;
if (mana_gracza[id]<koszt)
{
ColorChat(id,GREEN,"[SKLEP]^x01 Nie masz wystarczajacej ilosci many");
return PLUGIN_CONTINUE;
}
if (mana_gracza[id]>=koszt)
{
mana_gracza[id] -= koszt;
upgrade_item(id)
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public hook_team_select(id,key){
if((key==0)&&(player!=0)){
engclient_cmd(id,"chooseteam")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public cmdUnmakeBoss(id,level,cid){
if(cmd_access(id,level,cid,1))set_task(5.0,"UnmakeBoss")
return PLUGIN_HANDLED
}
public hook_teamscore(){
new score=read_data(2)
if((score>0)&&(player!=0))UnmakeBoss()
return PLUGIN_CONTINUE
}
public UnmakeBoss(){
if(player==0)return
if(is_user_connected(player))
set_user_rendering(player,kRenderFxGlowShell,0,0,0,kRenderNormal,99)
player=0
set_cvar_num("mp_autoteambalance",old_mp_autoteambalance)
set_cvar_float("mp_roundtime",old_mp_roundtime)
set_cvar_float("mp_buytime",old_mp_buytime)
set_cvar_num("mp_freezetime",old_mp_freezetime)
set_cvar_num("mp_startmoney",old_mp_startmoney)
set_cvar_num("sv_restart",1)
}
public cmdMakeBoss(id,level,cid){
if(!cmd_access(id,level,cid,3))return PLUGIN_HANDLED
if(player!=0){
client_print(id,print_console,"There already exists a boss")
return PLUGIN_HANDLED
}
new arg[32]
read_argv(1,arg,31)
player=cmd_target(id,arg,6)
if(!player)return PLUGIN_HANDLED
read_argv(2,arg,31)
bossPower=max(3000,min(9000,str_to_num(arg)))
new players[32], num, i
get_players(players,num)
for(i=0;i<num;i++)
if(players[i]!=player){
get_user_team(players[i],arg,31)
if(arg[0]!='S')cs_set_user_team(players[i],CS_TEAM_CT)
}else
cs_set_user_team(player,CS_TEAM_T,CS_T_GUERILLA);
old_mp_autoteambalance=get_cvar_num("mp_autoteambalance")
old_mp_roundtime=get_cvar_float("mp_roundtime")
old_mp_buytime=get_cvar_float("mp_buytime")
old_mp_startmoney=get_cvar_num("mp_startmoney")
old_mp_freezetime=get_cvar_num("mp_freezetime")
set_cvar_num("mp_autoteambalance",0)
set_cvar_num("mp_roundtime",9)
set_cvar_num("mp_startmoney",16000)
set_cvar_num("sv_restart",1)
set_cvar_float("mp_buytime",0.2)
set_cvar_num("mp_freezetime",12)
set_task(13.0,"MakeBoss2")
return PLUGIN_HANDLED
}
public MakeBoss2(){
if(is_user_connected(player)){
set_user_health(player,bossPower)
set_user_armor(player,100)
set_user_rendering(player,kRenderFxGlowShell,255,0,0,kRenderNormal,99)
strip_user_weapons(player)
give_item(player,"weapon_knife")
give_item(player,"weapon_m249")
new i
for(i=0;i<7;i++)give_item(player,"ammo_556natobox")
}else
UnmakeBoss()
set_hudmessage(255,0,0)
show_hudmessage(0,"The enemy is strong!")
}
public cmdBlyskawica(id){
if(!is_user_alive(id)) return PLUGIN_HANDLED;
if(!ilosc_blyskawic[id]) {
ColorChat(id,GREEN,"[DiabloMod]^x01 Nie posiadasz wiecej blyskawic");
return PLUGIN_HANDLED;
}
if(poprzednia_blyskawica[id]+2.0>get_gametime()) {
ColorChat(id,GREEN,"[DiabloMod]^x01 Blyskawicy mozesz uzyc raz na 5 sek.");
return PLUGIN_HANDLED;
}
poprzednia_blyskawica[id]=floatround(get_gametime());
ilosc_blyskawic[id]--;
new ofiara, body;
get_user_aiming(id, ofiara, body);
if(is_user_alive(ofiara)){
puscBlyskawice(id, ofiara, 50.0, 0.5);
}
return PLUGIN_HANDLED;
}
stock Create_TE_BEAMENTS(startEntity, endEntity, iSprite, startFrame, frameRate, life, width, noise, red, green, blue, alpha, speed){
message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( TE_BEAMENTS )
write_short( startEntity ) // start entity
write_short( endEntity ) // end entity
write_short( iSprite ) // model
write_byte( startFrame ) // starting frame
write_byte( frameRate ) // frame rate
write_byte( life ) // life
write_byte( width ) // line width
write_byte( noise ) // noise amplitude
write_byte( red ) // red
write_byte( green ) // green
write_byte( blue ) // blue
write_byte( alpha ) // brightness
write_byte( speed ) // scroll speed
message_end()
}
puscBlyskawice(id, ofiara, Float:fObrazenia = 50.0, Float:fCzas = 1.0){
//Obrazenia
new ent = create_entity("info_target");
entity_set_string(ent, EV_SZ_classname, "blyskawica");
ExecuteHamB(Ham_TakeDamage, ofiara, ent, id, fObrazenia, DMG_SHOCK);
remove_entity(ent);
//Piorun
Create_TE_BEAMENTS(id, ofiara, sprite, 0, 10, floatround(fCzas*10), 150, 5, 200, 200, 200, 200, 10);
//Dzwiek
emit_sound(id, CHAN_WEAPON, gszSound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}
public set_armorchange(id)
{
if(is_user_alive(id))
{
new armo = get_user_armor(id)
new armorr = player_armor[id]*2
if (armo>99)
{
set_user_armor(id,get_user_armor(id)+armorr)
}
set_user_armor(id,armorr)
}
}
public _diablo_get_user_item(plugin, params){
if(params != 1)
return 0;
new id = get_param(1);
if(!is_user_connected(id))
return 0;
return player_item_id[id];
}
public _diablo_send_user_item(plugin, params){
if(params != 2)
return 0;
new id = get_param(1);
if(!is_user_connected(id))
return 0
new id2 = get_param(2);
if(!is_user_connected(id2))
return 0
if(player_item_id[id] == 0)
return 0;
dropitem(id2);
award_item(id2, player_item_id[id]);
item_boosted[id2] = item_boosted[id]
item_durability[id2] = item_durability[id]
jumps[id2] = jumps[id]
gravitytimer[id2] = gravitytimer[id]
player_b_vampire[id2] = player_b_vampire[id] //Vampyric damage
player_b_damage[id2] = player_b_damage[id] //Bonus damage
player_b_money[id2] = player_b_money[id] //Money bonus
player_b_gravity[id2] = player_b_gravity[id] //Gravity bonus : 1 = best
player_b_inv[id2] = player_b_inv[id] //Invisibility bonus
player_b_grenade[id2] = player_b_grenade[id] //Grenade bonus = 1/chance to kill
player_b_reduceH[id2] = player_b_reduceH[id] //Reduces player health each round start
player_b_theif[id2] = player_b_theif[id] //Amount of money to steal
player_b_respawn[id2] = player_b_respawn[id] //Chance to respawn upon death
player_b_explode[id2] = player_b_explode[id] //Radius to explode upon death
player_b_heal[id2] = player_b_heal[id] //Ammount of hp to heal each 5 second
player_b_blind[id2] = player_b_blind[id] //Chance 1/Value to blind the enemy
player_b_fireshield[id2] = player_b_fireshield[id] //Protects against explode and grenade bonus
player_b_meekstone[id2] = player_b_meekstone[id] //Ability to lay a fake c4 and detonate
player_b_teamheal[id2] = player_b_teamheal[id] //How many hp to heal when shooting a teammate
player_b_redirect[id2] = player_b_redirect[id] //How much damage will the player redirect
player_b_fireball[id2] = player_b_fireball[id] //Ability to shot off a fireball value = radius *
player_b_ghost[id2] = player_b_ghost[id] //Ability to walk through walls
player_b_eye[id2] = player_b_eye[id] //Ability to snarkattack
player_b_blink[id2] = player_b_blink[id] //Abiliy to use railgun
player_b_windwalk[id2] = player_b_windwalk[id] //Ability to windwalk
player_b_usingwind[id2] = player_b_usingwind[id] //Is player using windwalk
player_b_froglegs[id2] = player_b_froglegs[id]
player_b_silent[id2] = player_b_silent[id]
player_b_dagon[id2] = player_b_dagon[id] //Abliity to nuke opponents
player_b_sniper[id2] = player_b_sniper[id] //Ability to kill faster with scout
player_b_jumpx[id2] = player_b_jumpx[id]
player_b_smokehit[id2] = player_b_smokehit[id]
player_b_extrastats[id2] = player_b_extrastats[id]
player_b_firetotem[id2] =player_b_firetotem[id]
player_b_hook[id2] = player_b_hook[id]
player_b_darksteel[id2] = player_b_darksteel[id]
player_b_illusionist[id2] = player_b_illusionist[id]
player_b_mine[id2] = player_b_mine[id]
wear_sun[id2] = wear_sun[id]
player_sword[id2] = player_sword[id]
player_ultra_armor_left[id2]=player_ultra_armor_left[id]
player_ultra_armor[id2]=player_ultra_armor[id]
dropitem(id);
return 1;
} |