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. | /* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#define VERSION "0.4a"
#define AUTHOR "funfel"
#define PREFIX "MoneyMod"
/* VIP ON THE SCORE */
#define ADMIN_VIP ADMIN_LEVEL_F
#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD (1 << 0)
#define SCOREATTRIB_BOMB (1 << 1)
#define SCOREATTRIB_VIP (1 << 2)
/* HEAD SPLASH */
#define MINIMUM_FALL_SPEED 300
#define MAXIMUM_DAMAGE_FROM_JUMP 70.0
#define DAMAGE 30.0
#define DELAY 0.2
/* MENUS */
#define MONEY_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_0
#define QUEST_KEYS MENU_KEY_1|MENU_KEY_2
#define GUN_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_0
#define ITEMS_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
#define ITEMS2_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
#define WEAPON_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_0
#define LAST_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_0
/* TASKS */
enum (+= 1000) {
TASK_SHOW = 1000,
TASK_HELLO,
TASK_HEALTH,
TASK_RESPAWN,
TASK_HE,
TASK_USP,
TASK_SCOUT,
TASK_CHOOSE
};
new
sprite_blood,
sprite_bloodspray;
new
mm_kill,
mm_survive,
mm_firstmoney,
mm_cost_hp,
mm_cost_armor,
mm_cost_respawn,
mm_cost_falldmg,
mm_cost_superhe,
mm_cost_bonus,
mm_cost_walk,
mm_cost_noflash,
mm_cost_nosmoke,
mm_cost_shock,
mm_cost_he,
mm_cost_usp,
mm_cost_scout,
mm_cost_am_usp,
mm_cost_am_scout,
mm_players,
max_health,
max_armor,
max_respawn,
max_falldmg,
max_superhe,
max_bonus,
max_walk,
max_noflash,
max_nosmoke,
max_shock,
max_he,
max_usp,
max_scout,
max_am_usp,
max_am_scout,
number_health,
number_bonus,
chance_armor,
chance_respawnt,
chance_respawnct,
chance_he,
chance_usp,
chance_scout,
chance_lastrespawn,
percent_falldmg,
percent_nosmoke,
distance_superhe,
idfirsttime[33],
idmm[33],
idhealth[33],
idarmor[33],
idrespawn[33],
idfalldmg[33],
idsuperhe[33],
idbonus[33],
idwalk[33],
idnoflash[33],
idnosmoke[33],
idhe[33],
idusp[33],
idamusp[33],
idscout[33],
idamsco[33],
idshock[33];
new
next_lvlhp,
next_hp,
cost_hp,
next_lvlarm,
next_arm,
cost_arm,
next_lvlres,
next_rest,
next_resct,
cost_res,
next_lvlfd,
next_fd,
cost_fd,
next_lvlsh,
next_sh,
cost_sh,
next_lvlb,
next_b,
cost_b,
next_lvlnos,
next_nos,
cost_nos,
cost_wa,
cost_nof,
cost_sho,
next_lvlhe,
next_he,
cost_he,
next_lvlusp,
next_usp,
next_am_usp,
cost_usp,
cost_am_usp,
next_lvlsco,
next_sco,
next_am_sco,
cost_sco,
cost_am_sco;
new
msgsaytext;
new
item[33],
/*
1 - health
2 - armor
3 - respawn
4 - falldmg reductor
5 - super he
6 - bonus money
7 - walk
8 - no flash
9 - no smoke
10 - he
13 - Brak spowolnienia po strzale
*/
gun[33];
/*
1 - usp
2 - scout
*/
new mmod
new Float:falling_speed[33];
new Float:damage_after[33][33];
new bool:ginfo[33];
new bool:glast[33];
new bool:gbuyed[33];
new bool:grespawned[33];
public plugin_init() {
/* REGISTER PLG */
register_plugin("MoneyMod", VERSION, AUTHOR);
/* EVENTS & LOGEVENTS */
register_event("DeathMsg", "event_death", "a");
register_event("SendAudio", "event_ctwin", "a", "2&%!MRAD_ctwin");
register_event("Damage", "event_hedamage", "b", "2!0", "4!0", "5!0", "6!0");
register_event("ScreenFade","event_checkflash","be","4=255","5=255","6=255","7>199")
register_logevent("event_startround",2,"1=Round_Start");
register_logevent("event_endround", 2 , "1=Round_End");
/* HAMS */
RegisterHam(Ham_Spawn, "player" , "ham_spawn" , 1);
RegisterHam(Ham_TraceAttack, "player", "ham_traceattack");
RegisterHam(Ham_TakeDamage, "player", "ham_takedamage", 1);
RegisterHam(Ham_TakeDamage, "player", "ham_takedamage2");
/* FOWARDS */
register_forward(FM_Touch, "forward_touch");
/* MENUS */
register_menu("QuestMenu", QUEST_KEYS,"cbQuestMenu");
register_menu("GunMenu", GUN_KEYS,"cbGunMenu");
register_menu("MoneyMenu", MONEY_KEYS,"cbMoneyMenu");
register_menu("ItemsMenu", ITEMS_KEYS,"cbItemsMenu");
register_menu("Items2Menu", ITEMS2_KEYS,"cbItems2Menu");
register_menu("WeaponMenu", WEAPON_KEYS,"cbWeaponMenu");
/* CVARS TO GAME */
register_cvar("amx_savestyle", "1");
register_cvar("amx_headsplash", "0");
register_cvar("mm_players", "3");
register_cvar("mm_kill", "50");
register_cvar("mm_survive","25");
register_cvar("mm_firstmoney", "100");
register_cvar("mm_cost_hp", "600");
register_cvar("mm_cost_blows", "1000");
register_cvar("mm_cost_respawn", "3000");
register_cvar("mm_cost_falldmg", "2500");
register_cvar("mm_cost_superhe", "5000");
register_cvar("mm_cost_bonusmoney", "7500");
register_cvar("mm_cost_walk", "10000");
register_cvar("mm_cost_noflash", "50000");
register_cvar("mm_cost_nosmoke", "40000");
register_cvar("mm_cost_shock", "60000");
register_cvar("mm_cost_he", "750");
register_cvar("mm_cost_usp", "600");
register_cvar("mm_cost_scout", "1500");
register_cvar("mm_number_itemhealth", "50");
register_cvar("mm_number_itemarmor", "250");
register_cvar("mm_cost_ammo_usp", "4000");
register_cvar("mm_cost_ammo_scout", "7500");
register_cvar("mm_max_health", "4");
register_cvar("mm_max_blows", "5");
register_cvar("mm_max_respawn", "5");
register_cvar("mm_max_falldmg", "8");
register_cvar("mm_max_superhe", "4");
register_cvar("mm_max_bonusmoney", "4");
register_cvar("mm_max_walk", "1");
register_cvar("mm_max_noflash", "1");
register_cvar("mm_max_nosmoke", "2");
register_cvar("mm_max_shock", "1");
register_cvar("mm_max_he", "5");
register_cvar("mm_max_usp", "5");
register_cvar("mm_max_scout", "5");
register_cvar("mm_max_ammo_usp", "3");
register_cvar("mm_max_ammo_scout", "2");
register_cvar("mm_number_health", "25");
register_cvar("mm_number_bonusmoney", "10");
register_cvar("mm_distance_superhe", "5");
register_cvar("mm_chance_blows", "5");
register_cvar("mm_chance_respawnt", "10");
register_cvar("mm_chance_respawnct", "20");
register_cvar("mm_chance_he", "20");
register_cvar("mm_chance_usp", "8");
register_cvar("mm_chance_scout", "6");
register_cvar("mm_chance_itemrespawn", "10");
register_cvar("mm_percent_falldmg", "5");
register_cvar("mm_percent_nosmoke", "50");
/* GLOBALS */
mm_players = get_cvar_num("mm_players");
mm_kill = get_cvar_num("mm_kill");
mm_survive = get_cvar_num("mm_survive");
mm_cost_hp = get_cvar_num("mm_cost_hp");
mm_cost_armor = get_cvar_num("mm_cost_blows");
mm_cost_respawn = get_cvar_num("mm_cost_respawn");
mm_cost_falldmg = get_cvar_num("mm_cost_falldmg");
mm_cost_superhe = get_cvar_num("mm_cost_superhe");
mm_cost_bonus = get_cvar_num("mm_cost_bonusmoney");
mm_cost_walk = get_cvar_num("mm_cost_walk");
mm_cost_noflash = get_cvar_num("mm_cost_noflash");
mm_cost_nosmoke = get_cvar_num("mm_cost_nosmoke");
mm_cost_shock = get_cvar_num("mm_cost_shock");
mm_cost_he = get_cvar_num("mm_cost_he");
mm_cost_usp = get_cvar_num("mm_cost_usp");
mm_cost_scout = get_cvar_num("mm_cost_scout");
mm_cost_am_usp = get_cvar_num("mm_cost_ammo_usp");
mm_cost_am_scout = get_cvar_num("mm_cost_ammo_scout");
max_health = get_cvar_num("mm_max_health");
max_armor = get_cvar_num("mm_max_blows");
max_respawn = get_cvar_num("mm_max_respawn");
max_falldmg = get_cvar_num("mm_max_falldmg");
max_superhe = get_cvar_num("mm_max_superhe");
max_bonus = get_cvar_num("mm_max_bonusmoney");
max_walk = get_cvar_num("mm_max_walk");
max_noflash = get_cvar_num("mm_max_noflash");
max_nosmoke = get_cvar_num("mm_max_nosmoke");
max_shock = get_cvar_num("mm_max_shock");
max_he = get_cvar_num("mm_max_he");
max_usp = get_cvar_num("mm_max_usp");
max_scout = get_cvar_num("mm_max_scout");
max_am_usp = get_cvar_num("mm_max_ammo_usp");
max_am_scout = get_cvar_num("mm_max_ammo_scout");
number_health = get_cvar_num("mm_number_health");
number_bonus = get_cvar_num("mm_number_bonusmoney");
distance_superhe = get_cvar_num("mm_distance_superhe");
chance_armor = get_cvar_num("mm_chance_blows");
chance_respawnt = get_cvar_num("mm_chance_respawnt");
chance_respawnct = get_cvar_num("mm_chance_respawnct");
chance_he = get_cvar_num("mm_chance_he");
chance_usp = get_cvar_num("mm_chance_usp");
chance_scout = get_cvar_num("mm_chance_scout");
chance_lastrespawn = get_cvar_num("mm_chance_itemrespawn");
percent_falldmg = get_cvar_num("mm_percent_falldmg");
percent_nosmoke = get_cvar_num("mm_percent_nosmoke");
mm_firstmoney = get_cvar_num("mm_firstmoney");
/* NVAULT */
mmod=nvault_open("moneymod")
nvault_open("moneymod")
/* MESSAGES */
register_message(get_user_msgid("ScoreAttrib"), "message_score");
//msgstatustext = get_user_msgid("StatusText");
msgsaytext = get_user_msgid("SayText");
/* CLCMDS & CONCMDS */
register_concmd("mm_givemoney", "func_givemm", ADMIN_IMMUNITY , "<name/sid> <amount>");
register_concmd("mm_takemoney", "func_takemm", ADMIN_IMMUNITY , "<name/sid> <amount>");
register_clcmd("say /mm" , "moneyMenu");
register_clcmd("say /money" , "moneyMenu");
register_clcmd("say /moneymod" , "moneyMenu");
register_clcmd("say /mymoney" , "func_mymoney");
register_clcmd("say /items", "cmd_itemshelp");
register_clcmd("say_team /mm" , "moneyMenu");
register_clcmd("say_team /money" , "moneyMenu");
register_clcmd("say_team /moneymod" , "moneyMenu");
register_clcmd("say_team /mymoney" , "func_mymoney");
register_clcmd("say_team /last", "cmd_lastbuy");
register_clcmd("say_team /items", "cmd_itemshelp");
}
public plugin_natives() {
register_library("moneymod");
register_native("mm_get_money", "_get_money");
register_native("mm_get_nosmoke", "_get_nosmoke");
register_native("mm_set_money", "_set_money");
}
public _get_money(plugin, params) {
return idmm[get_param(1)];
}
public _get_nosmoke(plugin, params) {
return idnosmoke[get_param(1)];
}
public _set_money(plugin, params) {
new id = get_param(1);
idmm[id] = max(0, get_param(2));
func_save(id);
}
public cmd_itemshelp(id) {
static motd[2500];
new len = copy(motd, sizeof(motd) - 1, "<html>");
len += format(motd[len], sizeof(motd) - len - 1, "<style type=^"text/css^"> body { background-image:url(http://i47.tinypic.com/xf50k5.png/); color:#FF8F00 } </style>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Zycie:</b> Dostajesz wiecej HP na poczatku rundy.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Odbicie:</b> Masz szanse odbic atak.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Twarde buty:</b> Obrazenia za upadek zostaja zmniejszone.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Odrodzenie:</b> Masz szanse sie odrodzic po smierci.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Super HE:</b> Twoj granat odpycha.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Wiecej kasy:</b> Dostajesz wiecej kasy.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Anty-smoke:</b> Zamrazajacy granat na Ciebie nie dziala.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Ciche chodzenie:</b> Chodzisz ciszej.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Anty-flash:</b> Dazzling grenade does not blind you.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Brak spowolnienia po strzale:</b> No slowing down after the damage suffered.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "</body>");
len += format(motd[len], sizeof(motd) - len - 1, "</html>");
show_motd(id, motd, "MoneyMod Items Help");
return PLUGIN_HANDLED;
}
public func_takemm(id, level, cid) {
if(!cmd_access (id, level, cid, 3))
return PLUGIN_HANDLED;
new target[32], amount[21], reason[21];
read_argv(1, target, 31);
read_argv(2, amount, 20);
read_argv(3, reason, 20);
new player = cmd_target(id, target, 8);
if(!player)
return PLUGIN_HANDLED;
new admin_name[32], player_name[32];
get_user_name(id, admin_name, 31);
get_user_name(player, player_name, 31);
new expnum = str_to_num(amount);
idmm[player] -= expnum;
if(idmm[player] < 0) {
idmm[player] = 0;
}
func_save(id);
return PLUGIN_CONTINUE;
}
public func_givemm( id, level, cid ) {
if(!cmd_access (id, level, cid, 3))
return PLUGIN_HANDLED;
new target[32], amount[21], reason[21];
read_argv(1, target, 31);
read_argv(2, amount, 20);
read_argv(3, reason, 20);
new player = cmd_target(id, target, 8);
if(!player)
return PLUGIN_HANDLED;
new admin_name[32], player_name[32];
get_user_name(id, admin_name, 31);
get_user_name(player, player_name, 31);
new expnum = str_to_num(amount);
idmm[player] += expnum;
func_save(id);
return PLUGIN_CONTINUE;
}
public message_score(iMsgID , iDest , iReceiver) {
new iPlayer = get_msg_arg_int(1);
if(is_user_connected(iPlayer) && (get_user_flags(iPlayer) & ADMIN_VIP)) {
set_msg_arg_int(2 ,ARG_BYTE , is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
}
public ham_takedamage(id, inflictor, attacker, Float:damage, damagebits) {
if(idshock[id] >= 1) {
set_pdata_float(id, 108, 1.0);
}
}
public ham_takedamage2(id, inflictor, attacker, Float:damage, damagebits) {
if(is_user_alive(id) && (damagebits & DMG_FALL)) {
if(idfalldmg[id] >= 1) {
new percent = idfalldmg[id] * percent_falldmg;
SetHamParamFloat(4, damage * (1.0 - (float(percent) / 100.0)));
}
}
}
public ham_traceattack(victim, attacker, Float:damage, Float:direction[3], ptr, bits) {
if(idarmor[victim] <= 0)
return;
new chance_num = random_num(1, 100);
new chance_player= idarmor[victim] * chance_armor;
if(chance_num <= chance_player && 0 < attacker <= get_maxplayers()) {
new name[64];
get_user_name(attacker, name, 63);
damage = 0.0;
SetHamParamFloat(3, damage);
ColorChat(victim, "!g[%s]!y You did dodge a blow from player %s. (chance %d%%)", PREFIX, name, chance_player);
}
}
public ham_spawn(id) {
if(is_user_alive(id) && is_user_connected(id)) {
glast[id] = false;
gbuyed[id] = false;
if(idhealth[id] > 0) {
set_task(1.5, "func_health", id + TASK_HEALTH);
}
if(idhe[id] > 0) {
set_task(1.5, "func_he", id + TASK_HE);
}
if(idusp[id] > 0) {
set_task(1.5, "func_usp", id + TASK_USP);
}
if(idscout[id] > 0) {
set_task(1.5, "func_scout", id + TASK_SCOUT);
}
if(idwalk[id] > 0) {
set_user_footsteps(id, 1);
}
func_save(id);
}
}
public event_checkflash(id) {
if(idnoflash[id] > 0) {
message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id);
write_short(~0);
write_short(~0);
write_short(1<<12);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(0);
message_end();
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public event_hedamage(id) {
new MAXPLAYERS;
MAXPLAYERS = get_maxplayers();
new inflictor = entity_get_edict(id, EV_ENT_dmg_inflictor);
if(!is_valid_ent(inflictor))
return PLUGIN_HANDLED;
if (inflictor <= MAXPLAYERS)
return PLUGIN_CONTINUE;
new classname2[8];
entity_get_string(inflictor, EV_SZ_classname, classname2, 7);
if (!equal(classname2, "grenade"))
return PLUGIN_CONTINUE;
new Float:upVector[3];
upVector[0] = float(read_data(4));
upVector[1] = float(read_data(5));
upVector[2] = float(read_data(6));
new damagerept = read_data(2);
new attacker = get_user_attacker(id);
if(idsuperhe[attacker] > 0) {
new dmg = idsuperhe[attacker] * distance_superhe;
set_velocity_from_origin(id, upVector, dmg * damagerept + 0.0);
}
return PLUGIN_CONTINUE;
}
public event_ctwin() {
for (new id= 1; id <= get_maxplayers(); id++) {
if(get_user_team(id) == 2 && is_user_alive(id)) {
}
}
}
public event_startround() {
for (new id= 1; id <= get_maxplayers(); id++) {
grespawned[id] = false;
}
}
public event_endround() {
for (new id= 1; id <= get_maxplayers(); id++) {
if(get_user_team(id) == 1 && is_user_alive(id)) {
func_mm(id, mm_survive)
}
}
}
public event_death() {
new attacker = read_data(1);
new victim = read_data (2);
if(victim == attacker || attacker == 0 || get_user_team(attacker) == get_user_team(victim)) {
func_checkrespawn(victim);
}
else if(victim != attacker && attacker != 0 && get_user_team(attacker) != get_user_team(victim)) {
func_mm(attacker, mm_kill);
func_checkrespawn(victim);
}
return PLUGIN_CONTINUE;
}
public func_lastrespawn(task) {
new iPlayers[32], iNum;
get_players( iPlayers, iNum );
for(new i = 0; i<iNum ;i++){
new id = iPlayers[i];
new CsTeams:team = cs_get_user_team(id);
if(!is_user_alive(id) && get_user_team(id) == 1 && HasTeammateAlive(id, team)) {
new los = random_num(1, 100);
if(los <= chance_lastrespawn){
new name[64];
get_user_name(id, name, 63);
ColorChat(id,"!g[%s]!y Odrodziles sie", PREFIX, name);
ExecuteHamB(Ham_CS_RoundRespawn, id);
}
}
}
}
public func_save(id) {
new authid[64];
if(get_cvar_num("amx_savestyle") == 0) {
if(is_user_connected(id)) {
cs_set_user_money(id , idmm[id] , 1);
}
return PLUGIN_CONTINUE;
}
if(get_cvar_num("amx_savestyle") == 1) {
get_user_authid(id,authid,63);
}
if(get_cvar_num("amx_savestyle") == 2) {
get_user_name(id,authid,63);
}
if(get_cvar_num("amx_savestyle") == 3) {
get_user_ip(id,authid,63);
}
new vaultkey[64], vaultdata[64];
format(vaultkey,63,"mm-%s-money",authid);
format(vaultdata,63,"%d",idmm[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-firsttime",authid);
format(vaultdata,63,"%d",idfirsttime[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-health",authid);
format(vaultdata,63,"%d",idhealth[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-armor",authid);
format(vaultdata,63,"%d",idarmor[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-respawn",authid);
format(vaultdata,63,"%d",idrespawn[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-falldmg",authid);
format(vaultdata,63,"%d",idfalldmg[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-superhe",authid);
format(vaultdata,63,"%d",idsuperhe[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-bonusmoney",authid);
format(vaultdata,63,"%d",idbonus[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-walk",authid);
format(vaultdata,63,"%d",idwalk[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-noflash",authid);
format(vaultdata,63,"%d",idnoflash[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-nosmoke",authid);
format(vaultdata,63,"%d",idnosmoke[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-he",authid);
format(vaultdata,63,"%d",idhe[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-usp",authid);
format(vaultdata,63,"%d",idusp[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-bullet_usp",authid);
format(vaultdata,63,"%d",idamusp[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-scout",authid);
format(vaultdata,63,"%d",idscout[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-bullet_scout",authid);
format(vaultdata,63,"%d",idamsco[id]);
nvault_set(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-shock",authid);
format(vaultdata,63,"%d",idshock[id]);
nvault_set(mmod,vaultkey,vaultdata);
if(is_user_connected(id)) {
cs_set_user_money(id , idmm[id] , 1);
}
return PLUGIN_CONTINUE;
}
public func_load(id) {
new authid[64];
if(get_cvar_num("amx_savestyle") == 0) {
if(is_user_connected(id)) {
cs_set_user_money(id , idmm[id] , 1);
}
return PLUGIN_CONTINUE;
}
if(get_cvar_num("amx_savestyle") == 1) {
get_user_authid(id,authid,63);
}
if(get_cvar_num("amx_savestyle") == 2) {
get_user_name(id,authid,63);
}
if(get_cvar_num("amx_savestyle") == 3) {
get_user_ip(id,authid,63);
}
new vaultkey[64], vaultdata[64];
format(vaultkey,63,"mm-%s-money",authid);
idmm[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-firsttime",authid);
idfirsttime[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-health",authid);
idhealth[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-armor",authid);
idarmor[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-respawn",authid);
idrespawn[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-falldmg",authid);
idfalldmg[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-superhe",authid);
idsuperhe[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-bonusmoney",authid);
idbonus[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-walk",authid);
idwalk[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-noflash",authid);
idnoflash[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-nosmoke",authid);
idnosmoke[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-he",authid);
idhe[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-usp",authid);
idusp[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-bullet_usp",authid);
idamusp[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-scout",authid);
idscout[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-bullet_scout",authid);
idamsco[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
format(vaultkey,63,"mm-%s-shock",authid);
idshock[id] = str_to_num(vaultdata);
nvault_get(mmod,vaultkey,vaultdata);
if(is_user_connected(id)) {
cs_set_user_money(id , idmm[id] , 1);
}
return PLUGIN_CONTINUE;
}
public func_health(id) {
id -= TASK_HEALTH;
new idstarthealth = get_user_health(id);
new idsumhealth = idhealth[id] * number_health;
set_user_health(id, idstarthealth + idsumhealth);
}
public func_he(id) {
id -= TASK_HE;
new los = random_num(1, 100);
new chance_player = idhe[id] * chance_he;
if(los <= chance_player){
give_item(id, "weapon_hegrenade");
}
}
public func_usp(id) {
id -= TASK_USP;
new los = random_num(1, 100);
new chance_player = idusp[id] * chance_usp;
if(los <= chance_player){
new name[64];
get_user_name(id, name, 63);
give_item( id, "weapon_usp" );
cs_set_user_bpammo(id, CSW_USP, 0);
cs_set_weapon_ammo( find_ent_by_owner(idamusp[id], "weapon_usp", id ), idamusp[id]);
if(idamusp[id] == 1){
ColorChat(id,"!g[%s]!y Wylosowales usp! (chance %d%%)", PREFIX);
}
else {
ColorChat(id,"!g[%s]!y Wylosowales usp!", PREFIX,idamusp[id]);
}
}
}
public func_scout(id) {
id -= TASK_SCOUT;
new los = random_num(1, 100);
new chance_player = idusp[id] * chance_scout;
if(los <= chance_player){
new name[64];
get_user_name(id, name, 63);
give_item( id, "weapon_scout" );
cs_set_user_bpammo(id, CSW_SCOUT, 0);
cs_set_weapon_ammo( find_ent_by_owner(idamsco[id], "weapon_scout", id ), idamsco[id]);
if(idamusp[id] == 1){
ColorChat(id,"!g[%s]!y Wylosowales scouta!", PREFIX, idamsco[id]);
}
else {
ColorChat(0,"!g[%s]!y Wylosowales scouta!", PREFIX,idamsco[id]);
}
}
}
public func_checkrespawn(id) {
if(idrespawn[id] > 0) {
new los = random_num(1, 100);
new CsTeams:team = cs_get_user_team(id);
new chance_player;
if(team == CS_TEAM_T) chance_player = idrespawn[id] * chance_respawnt
else if(team == CS_TEAM_CT) chance_player = idrespawn[id] * chance_respawnct
if(los <= chance_player){
if(HasTeammateAlive(id, team)) {
set_task(1.5, "func_respawn", id + TASK_RESPAWN);
}
}
}
}
public func_respawn(id) {
id -= TASK_RESPAWN;
new CsTeams:team = cs_get_user_team(id);
if(HasTeammateAlive(id, team) && grespawned[id] == false) {
new chance_player;
new name[64];
get_user_name(id, name, 63);
if(team == CS_TEAM_T) chance_player = idrespawn[id] * chance_respawnt
else if(team == CS_TEAM_CT) chance_player = idrespawn[id] * chance_respawnct
ColorChat(0,"!g[%s]!y %s won the revival! (chance %d%%)", PREFIX, name, chance_player);
ExecuteHamB(Ham_CS_RoundRespawn, id);
grespawned[id] = true;
}
}
public HasTeammateAlive(id, CsTeams:team) { /* Exolent function */
for(new i = 1; i <= get_maxplayers(); i++) {
if(i == id)
continue;
if(is_user_alive(i) && cs_get_user_team(i) == team)
return 1;
}
return 0;
}
public func_mm(id, money) {
if(get_playersnum() < mm_players) {
ColorChat(id, "!g[%s]!y Twoj stan kasy sie nie zmienia, poniewaz na serwerze nie ma %d graczy.", PREFIX, mm_players);
return PLUGIN_CONTINUE;
}
if(money == mm_kill) {
money += (number_bonus * idbonus[id]);
ColorChat(id, "!g[%s]!y Otrzymujesz $%d za zabicie gracza", PREFIX, money);
idmm[id] += money;
}
else if(money == mm_survive) {
money += (number_bonus * idbonus[id]);
ColorChat(id, "!g[%s]!y Otrzymujesz $%d za przezycie rundy", PREFIX, money);
idmm[id] += money;
}
else {
idmm[id] += money;
}
func_save(id);
return PLUGIN_CONTINUE;
}
public func_hello(id) {
id -= TASK_HELLO;
if(get_user_team(id) == 2 || get_user_team(id) == 1) {
new name1[64];
get_user_name(id, name1,63);
ColorChat(id, "!g[%s]!y Witaj, %s! Ten serwer uzywa MoneyMod.", PREFIX, name1);
if(idmm[id] == 0 && idfirsttime[id] != 1) {
ColorChat(id, "!g[%s]!y Jestes u nas pierwszy raz, dlatego dostajesz $%d!", PREFIX, mm_firstmoney);
idmm[id] += mm_firstmoney
func_save(id);
}
}
else {
set_task(3.0,"func_hello",id + TASK_HELLO);
}
}
public func_mymoney(id) {
ColorChat(id, "!g[%s]!y Twoja kasa: %d", PREFIX, idmm[id]);
func_save(id);
}
public func_show(id) {
id -= TASK_SHOW;
new index = entity_get_int(id, EV_INT_iuser2);
new ent,body;
get_user_aiming(id, ent, body);
if(is_user_alive(id) && is_user_connected(id) && 0 < ent <= get_maxplayers() && is_user_alive(ent) && is_user_connected(ent) && get_user_team(id) == get_user_team(ent)) {
new name1[32];
get_user_name(ent, name1, 31);
set_hudmessage(255, 255, 0, -1.0, 0.80, 0, 0.0, 1.0, 0.1, 0.1);
show_hudmessage(id, "Nick: %s^nKasa: %d" ,name1, idmm[ent]);
}
else if(!is_user_alive(id) && is_user_connected(id) && 0 < index <= get_maxplayers() && ginfo[id] != false && is_user_alive(index) && is_user_connected(index )) {
new name2[32];
get_user_name(index, name2, 31);
set_hudmessage(255, 255, 0, -1.0, 0.80, 0, 0.0, 1.0, 0.1, 0.1);
show_hudmessage(id, "Nick: %s^nKasa: %d" ,name2, idmm[index]);
}
set_task(1.0,"func_show",id + TASK_SHOW);
}
public client_connect(id) {
idmm[id] = 0;
grespawned[id] = false;
}
public client_putinserver(id) {
set_task(3.0,"func_load", id);
set_task(3.0,"func_show",id + TASK_SHOW);
set_task(3.0,"func_hello",id + TASK_HELLO);
new authid[32];
get_user_authid(id,authid,31);
}
public client_disconnect(id) {
if(task_exists(id + TASK_SHOW)) {
remove_task( id + TASK_SHOW);
}
if(task_exists(id + TASK_HELLO)) {
remove_task(id + TASK_HELLO);
}
if(task_exists(id + TASK_RESPAWN)) {
remove_task(id + TASK_RESPAWN);
}
if(task_exists(id + TASK_HEALTH)) {
remove_task(id + TASK_HEALTH);
}
if(task_exists(id + TASK_HE)) {
remove_task(id + TASK_HE);
}
if(task_exists(id + TASK_USP)) {
remove_task(id + TASK_USP);
}
if(task_exists(id + TASK_SCOUT)) {
remove_task(id + TASK_SCOUT);
}
func_save(id);
}
public moneyMenu(id) {
static msg[2500];
new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w ^nGlowne menu - Twoja kasa:\y %d^n^n", PREFIX, idmm[id]);
len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w Info o graczu^n");
len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w Pomoc^n^n");
len += format(msg[len], sizeof(msg) - len - 1, "\r3.\w Umiejetnosci^n");
len += format(msg[len], sizeof(msg) - len - 1, "\r4.\w Bronie^n");
len += format(msg[len], sizeof(msg) - len - 1, "\r5.\w Informacje po smierci: ");
if(ginfo[id] == true) {
len += format(msg[len], sizeof(msg) - len - 1, "\yWlacz^n");
}
else if(ginfo[id] == false) {
len += format(msg[len], sizeof(msg) - len - 1, "\rWylacz^n");
}
len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n\r0.\w Wyjdz");
show_menu(id,MONEY_KEYS, msg, -1,"MoneyMenu");
return PLUGIN_HANDLED;
}
public cbMoneyMenu(id, key) {
switch(key) {
case 0:{
playerInfoMenu(id);
}
case 1:{
motd_help(id);
moneyMenu(id);
}
case 2:{
itemsMenu(id);
}
case 3:{
weaponMenu(id);
}
case 4:{
if(ginfo[id] == true) {
ginfo[id] = false;
}
else if(ginfo[id] == false) {
ginfo[id] = true;
}
moneyMenu(id);
}
}
}
public itemsMenu(id) {
next_lvlhp = idhealth[id] + 1;
next_hp = (idhealth[id] + 1) * number_health;
cost_hp = (idhealth[id] + 1) * mm_cost_hp
new a_hp = idhealth[id] * number_health;
next_lvlarm = idarmor[id] + 1;
next_arm = (idarmor[id] + 1) * chance_armor;
cost_arm = (idarmor[id] + 1) * mm_cost_armor
new a_arm = idarmor[id] * chance_armor;
next_lvlres = idrespawn[id] + 1;
next_rest= (idrespawn[id] + 1) * chance_respawnt;
next_resct= (idrespawn[id] + 1) * chance_respawnct;
cost_res = (idrespawn[id] + 1) * mm_cost_respawn
new a_rest= idrespawn[id] * chance_respawnt;
new a_resct= idrespawn[id] * chance_respawnct;
next_lvlfd = idfalldmg[id] + 1;
next_fd = (idfalldmg[id] + 1) * percent_falldmg;
cost_fd = (idfalldmg[id] + 1) * mm_cost_falldmg
new a_fd = idfalldmg[id] * percent_falldmg;
next_lvlsh = idsuperhe[id] + 1;
next_sh = (idsuperhe[id] + 1) * distance_superhe;
cost_sh = (idsuperhe[id] + 1) * mm_cost_superhe;
new a_sh = idsuperhe[id] * distance_superhe;
next_lvlb = idbonus[id] + 1;
next_b = (idbonus[id] + 1) * number_bonus;
cost_b = (idbonus[id] + 1) * mm_cost_bonus;
new a_b = idbonus[id] * number_bonus;
next_lvlnos = idnosmoke[id] + 1;
next_nos = (idnosmoke[id] + 1) * percent_nosmoke;
cost_nos = (idnosmoke[id] + 1) * mm_cost_nosmoke;
new a_nos = idnosmoke[id] * percent_nosmoke;
static msg[2500];
new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w^nUmiejetnosci 1/2^n^n", PREFIX);
/* HEALTH */
if(idmm[id] >= cost_hp && idhealth[id] != max_health) {
len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w Zycie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w+%d HP\r)\y $%d", next_lvlhp, next_hp, cost_hp );
}
else if(idhealth[id] == max_health) {
len += format(msg[len], sizeof(msg) - len - 1, "\d1. Zycie ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w+%d HP\r)", idhealth[id], a_hp);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d1. Zycie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w+%d HP\r)\y $%d", next_lvlhp, next_hp, cost_hp );
}
len += format(msg[len], sizeof(msg) - len - 1, "^n");
/* ARMOR */
if(idmm[id] >= cost_arm && idarmor[id] != max_armor) {
len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w Odbicie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlarm, next_arm, cost_arm);
}
else if(idarmor[id] == max_armor) {
len += format(msg[len], sizeof(msg) - len - 1, "\d2. Odbicie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idarmor[id],a_arm);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d2. Odbicie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlarm, next_arm, cost_arm );
}
len += format(msg[len], sizeof(msg) - len - 1, "^n");
/* RESPAWN */
if(idmm[id] >= cost_res && idrespawn[id] != max_respawn) {
len += format(msg[len], sizeof(msg) - len - 1, "\r3.\w Odrodzenie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r(\wT: %d%%\r/\wCT: %d%%\r)\y $%d", next_lvlres, next_rest,next_resct, cost_res);
}
else if(idrespawn[id] == max_respawn) {
len += format(msg[len], sizeof(msg) - len - 1, "\d3. Odrodzenie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r(\wT: %d%%\r/\wCT: %d%%\r)", idrespawn[id], a_rest, a_resct);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d3. Odrodzenie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r(\wT: %d%%\r/\wCT: %d%%\r)\y $%d", next_lvlres, next_rest,next_resct, cost_res );
}
len += format(msg[len], sizeof(msg) - len - 1, "^n");
/* FALLDMG REDUCOR */
if(idmm[id] >= cost_fd && idfalldmg[id] != max_falldmg) {
len += format(msg[len], sizeof(msg) - len - 1, "\r4.\w Twarde buty: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlfd, next_fd, cost_fd);
}
else if(idfalldmg[id] == max_falldmg) {
len += format(msg[len], sizeof(msg) - len - 1, "\d4. Twarde buty: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idfalldmg[id], a_fd);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d4. Twarde buty: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlfd, next_fd, cost_fd);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n");
/* SUPER HE */
if(idmm[id] >= cost_sh && idsuperhe[id] != max_superhe) {
len += format(msg[len], sizeof(msg) - len - 1, "\r5.\w Super HE: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\wFrom 1 to %d\r)\y $%d", next_lvlsh, next_sh, cost_sh);
}
else if(idsuperhe[id] == max_superhe) {
len += format(msg[len], sizeof(msg) - len - 1, "\d5. Super HE: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\wFrom 1 to %d\r)", idsuperhe[id], a_sh);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d5. Super HE: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\wFrom 1 to %d\r)\y $%d", next_lvlsh, next_sh, cost_sh);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n");
/* BOUNS MONEY */
if(idmm[id] >= cost_b && idbonus[id] != max_bonus) {
len += format(msg[len], sizeof(msg) - len - 1, "\r6.\w Wiecej kasy: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w+$%d\r)\y $%d", next_lvlb, next_b, cost_b);
}
else if(idbonus[id] == max_bonus) {
len += format(msg[len], sizeof(msg) - len - 1, "\d6. Wiecej kasy: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w+$%d\r)", idbonus[id], a_b);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d6. Wiecej kasy: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w+$%d\r)\y $%d", next_lvlb, next_b, cost_b);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n");
/* ANTY FROST */
if(idmm[id] >= cost_nos && idnosmoke[id] != max_nosmoke) {
len += format(msg[len], sizeof(msg) - len - 1, "\r7.\w Rozgrzewacz: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlnos, next_nos, cost_nos);
}
else if(idnosmoke[id] == max_nosmoke) {
len += format(msg[len], sizeof(msg) - len - 1, "\d7. Rozgrzewacz: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idnosmoke[id], a_nos);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d7. Rozgrzewacz: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlnos, next_nos, cost_nos);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n");
len += format(msg[len], sizeof(msg) - len - 1, "^n\d8. Wroc");
len += format(msg[len], sizeof(msg) - len - 1, "^n\r9.\w Dalej");
len += format(msg[len], sizeof(msg) - len - 1, "^n\r0.\w Wyjdz");
show_menu(id,ITEMS_KEYS, msg, -1,"ItemsMenu");
return PLUGIN_HANDLED;
}
public cbItemsMenu(id, key) {
switch(key) {
case 0:{
if(idmm[id] >= cost_hp && idhealth[id] != max_health) {
item[id] = 1;
questMenu(id);
}
else if(idhealth[id] == max_health) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie posiadasz wystarczajacej ilosci pieniedzy.", PREFIX);
itemsMenu(id);
}
}
case 1:{
if(idmm[id] >= cost_arm && idarmor[id] != max_armor) {
item[id] = 2;
questMenu(id);
}
else if(idarmor[id] == max_armor) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX, cost_arm);
itemsMenu(id);
}
}
case 2:{
if(idmm[id] >= cost_res && idrespawn[id] != max_respawn) {
item[id] = 3;
questMenu(id);
}
else if(idrespawn[id] == max_respawn) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
}
case 3:{
if(idmm[id] >= cost_fd && idfalldmg[id] != max_falldmg) {
item[id] = 4;
questMenu(id);
}
else if(idfalldmg[id] == max_falldmg) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
}
case 4:{
if(idmm[id] >= cost_sh && idsuperhe[id] != max_superhe) {
item[id] = 5;
questMenu(id);
}
else if(idsuperhe[id] == max_superhe) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
}
case 5:{
if(idmm[id] >= cost_b && idbonus[id] != max_bonus) {
item[id] = 6;
questMenu(id);
}
else if(idbonus[id] == max_bonus) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
}
case 6:{
if(idmm[id] >= cost_nos && idnosmoke[id] != max_nosmoke) {
item[id] = 7;
questMenu(id);
}
else if(idnosmoke[id] == max_nosmoke) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
itemsMenu(id);
}
}
case 7:{
itemsMenu(id);
}
case 8:{
items2Menu(id);
}
case 9:{
moneyMenu(id);
}
}
}
public items2Menu(id) {
cost_wa = (idwalk[id] + 1) * mm_cost_walk;
cost_nof = (idnoflash[id] + 1) * mm_cost_noflash;
cost_sho = (idshock[id] + 1) * mm_cost_shock;
static msg[2500];
new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w^nUmiejetnosci 2/2^n^n", PREFIX);
/* NO FLASH */
if(idmm[id] >= cost_wa && idwalk[id] != max_walk) {
len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w Ciche chodzenie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_wa);
}
else if(idwalk[id] == max_walk) {
len += format(msg[len], sizeof(msg) - len - 1, "\d1. Ciche chodzenie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\wKupione\r)");
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d1. Ciche chodzenie: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_wa);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n");
/* NO SMOKE */
if(idmm[id] >= cost_nof && idnoflash[id] != max_noflash) {
len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w Anty-flash: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_nof);
}
else if(idnoflash[id] == max_noflash) {
len += format(msg[len], sizeof(msg) - len - 1, "\d2. Anty-flash: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\wKupione\r)");
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d2. Anty-flash: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_nof);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n");
/* NO SMOKE */
if(idmm[id] >= cost_sho && idshock[id] != max_shock) {
len += format(msg[len], sizeof(msg) - len - 1, "\r3.\w Brak spowolnienia po strzale: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_sho);
}
else if(idshock[id] == max_shock) {
len += format(msg[len], sizeof(msg) - len - 1, "\d3. Brak spowolnienia po strzale: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\wKupione\r)");
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d3. Brak spowolnienia po strzale: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\wNie kupione\r)\y $%d", cost_sho);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n^n");
len += format(msg[len], sizeof(msg) - len - 1, "^n\r8.\w Wroc");
len += format(msg[len], sizeof(msg) - len - 1, "^n\d9. Dalej");
len += format(msg[len], sizeof(msg) - len - 1, "^n\r0.\w Wyjdz");
show_menu(id,ITEMS2_KEYS, msg, -1,"Items2Menu");
return PLUGIN_HANDLED;
}
public cbItems2Menu(id, key) {
switch(key) {
case 0:{
if(idmm[id] >= cost_wa && idwalk[id] != max_walk) {
item[id] = 8;
questMenu(id);
}
else if(idwalk[id] == max_walk) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
items2Menu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX);
items2Menu(id);
}
}
case 1:{
if(idmm[id] >= cost_nof && idnoflash[id] != max_noflash) {
item[id] = 9;
questMenu(id);
}
else if(idnoflash[id] == max_noflash) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
items2Menu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX, cost_nof);
items2Menu(id);
}
}
case 2:{
if(idmm[id] >= cost_sho && idshock[id] != max_shock) {
item[id] = 21;
questMenu(id);
}
else if(idshock[id] == max_shock) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
items2Menu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX, cost_sho);
items2Menu(id);
}
}
case 7:{
itemsMenu(id);
}
case 8:{
items2Menu(id);
}
case 9:{
moneyMenu(id);
}
}
}
public weaponMenu(id) {
next_lvlhe = idhe[id] + 1;
next_he = (idhe[id] + 1) * chance_he;
cost_he = (idhe[id] + 1) * mm_cost_he;
new a_he = idhe[id] * chance_he;
static msg[2500];
new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w^nBronie^n^n", PREFIX);
/* HE */
if(idmm[id] >= cost_he && idhe[id] != max_he) {
len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w HE: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlhe, next_he, cost_he);
}
else if(idhe[id] == max_he) {
len += format(msg[len], sizeof(msg) - len - 1, "\d1. HE: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idhe[id], a_he);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d1. HE: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlhe, next_he, cost_he);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n");
/* USP */
len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w USP");
len += format(msg[len], sizeof(msg) - len - 1, "^n");
/* SCOUT */
len += format(msg[len], sizeof(msg) - len - 1, "\r3.\w Scout");
len += format(msg[len], sizeof(msg) - len - 1, "^n");
len += format(msg[len], sizeof(msg) - len - 1, "^n^n\r0.\w Wyjdz");
show_menu(id,WEAPON_KEYS, msg, -1,"WeaponMenu");
return PLUGIN_HANDLED;
}
public cbWeaponMenu(id, key) {
switch(key) {
case 0:{
if(idmm[id] >= cost_he && idhe[id] != max_he) {
item[id] = 10;
questMenu(id);
}
else if(idhe[id] == max_he) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
weaponMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX);
weaponMenu(id);
}
}
case 1:{
gun[id] = 3;
gunMenu(id);
}
case 2:{
gun[id] = 4;
gunMenu(id);
}
case 9:{
moneyMenu(id)
}
}
}
public gunMenu(id) {
static msg[2500];
if(gun[id] == 3) {
next_lvlusp = idusp[id] + 1;
next_usp = (idusp[id] + 1) * chance_usp;
cost_usp= (idusp[id] + 1) * mm_cost_usp;
next_am_usp = idamusp[id] + 1
cost_am_usp = idamusp[id] * mm_cost_am_usp;
new a_usp = idusp[id] * chance_usp;
new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w^nUSP^n^n", PREFIX);
/* GUN */
if(idmm[id] >= cost_usp && idusp[id] != max_usp) {
len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w USP: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlusp, next_usp, cost_usp);
}
else if(idusp[id] == max_usp) {
len += format(msg[len], sizeof(msg) - len - 1, "\d1. USP: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idusp[id], a_usp);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d1. USP: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlusp, next_usp, cost_usp);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n^n");
/* BULLETS */
if(idmm[id] >= cost_am_usp && idamusp[id] != max_am_usp&& idusp[id] != 0) {
len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w Naboje: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y $%d", next_am_usp, cost_am_usp);
}
else if(idamusp[id] == max_am_usp) {
len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r/\yMax\r)", idamusp[id]);
}
else if(idusp[id] == 0) {
len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y", idamusp[id]);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y $%d", next_am_usp, cost_am_usp);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n^n\r0.\w Wyjdz");
}
else if(gun[id] == 4) {
next_lvlsco = idscout[id] + 1;
next_sco = (idscout[id] + 1) * chance_scout;
cost_sco = (idscout[id] + 1) * mm_cost_scout;
next_am_sco = idamsco[id] + 1
cost_am_sco = idamsco[id] * mm_cost_am_scout;
new a_sco = idscout[id] * chance_scout;
new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w^nScout^n^n", PREFIX);
/* GUN */
if(idmm[id] >= cost_sco && idscout[id] != max_scout) {
len += format(msg[len], sizeof(msg) - len - 1, "\r1.\w Scout: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlsco, next_sco, cost_sco);
}
else if(idscout[id] == max_scout) {
len += format(msg[len], sizeof(msg) - len - 1, "\d1. Scout: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r/\yMax\r (\w%d%%\r)", idscout[id], a_sco);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d1. Scout: ");
len += format(msg[len], sizeof(msg) - len - 1, "\wPoziom %d\r (\w%d%%\r)\y $%d", next_lvlsco, next_sco, cost_sco);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n^n");
/* BULLETS */
if(idmm[id] >= cost_am_sco && idamsco[id] != max_am_scout && idscout[id] != 0) {
len += format(msg[len], sizeof(msg) - len - 1, "\r2.\w Naboje: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y $%d", next_am_sco, cost_am_sco);
}
else if(idamsco[id] == max_am_scout) {
len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r/\yMax\r)", idamsco[id]);
}
else if(idscout[id] == 0) {
len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y", idamsco[id]);
}
else {
len += format(msg[len], sizeof(msg) - len - 1, "\d2. Naboje: ");
len += format(msg[len], sizeof(msg) - len - 1, "\r(\w%d\r)\y $%d", next_am_sco, cost_am_sco);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n^n^n^n^n\r0.\w Wyjdz");
}
show_menu(id,GUN_KEYS, msg, -1,"GunMenu");
return PLUGIN_HANDLED;
}
public cbGunMenu(id, key) {
switch(key) {
case 0:{
if(gun[id] == 3) {
if(idmm[id] >= cost_usp && idusp[id] != max_usp) {
item[id] = 17;
questMenu(id);
}
else if(idusp [id] == max_usp) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
gunMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX);
gunMenu(id);
}
}
else if(gun[id] == 4) {
if(idmm[id] >= cost_sco && idscout[id] != max_scout) {
item[id] = 19;
questMenu(id);
}
else if(idscout [id] == max_scout) {
ColorChat(id, "!g[%s]!y Nie mozesz juz ulepszac tej umiejetnosci, jest na maksymalnym poziomie.", PREFIX);
gunMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX);
gunMenu(id);
}
}
}
case 1:{
if(gun[id] == 3) {
if(idmm[id] >= cost_am_usp && idamusp[id] != max_am_usp && idusp[id] != 0) {
item[id] = 18;
questMenu(id);
}
else if(idamusp[id] == max_am_usp) {
ColorChat(id, "!g[%s]!y Nie mozesz kupic wiecej naboi.", PREFIX);
gunMenu(id);
}
else if(idusp[id] == 0) {
ColorChat(id, "!g[%s]!y Najpierw kup umiejetnosc.", PREFIX);
gunMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX);
gunMenu(id);
}
}
else if(gun[id] == 4) {
if(idmm[id] >= cost_am_sco && idamsco[id] != max_am_scout && idscout[id] != 0) {
item[id] = 20;
questMenu(id);
}
else if(idamsco[id] == max_am_scout) {
ColorChat(id, "!g[%s]!y Nie mozesz kupic wiecej naboi.", PREFIX);
gunMenu(id);
}
else if(idscout[id] == 0) {
ColorChat(id, "!g[%s]!y Najpierw kup umiejetnosc.", PREFIX);
gunMenu(id);
}
else {
ColorChat(id, "!g[%s]!y Nie masz wystarczajacej ilosci kasy.", PREFIX);
gunMenu(id);
}
}
}
case 9: {
weaponMenu(id);
}
}
}
public questMenu(id) {
static msg[2500];
new len = formatex(msg, sizeof(msg) - 1, "\r[\y%s\r]\w ^nJestes pewien, ze chcesz kupic ", PREFIX);
if(item[id] == 1) {
len += format(msg[len], sizeof(msg) - len - 1, "\rZycie\w for\y $%d\w?", cost_hp);
}
else if(item[id] == 2) {
len += format(msg[len], sizeof(msg) - len - 1, "\rOdbicie\w for\y $%d\w?", cost_arm);
}
else if(item[id] == 3) {
len += format(msg[len], sizeof(msg) - len - 1, "\rOdrodzenie\w for\y $%d\w?", cost_res);
}
else if(item[id] == 4) {
len += format(msg[len], sizeof(msg) - len - 1, "\rTwarde buty\w for\y $%d\w?", cost_fd);
}
else if(item[id] == 5) {
len += format(msg[len], sizeof(msg) - len - 1, "\rSuper HE\w for\y $%d\w?", cost_sh);
}
else if(item[id] == 6) {
len += format(msg[len], sizeof(msg) - len - 1, "\rWiecej kasy\w for\y $%d\w?", cost_b);
}
else if(item[id] == 7) {
len += format(msg[len], sizeof(msg) - len - 1, "\rAnty-smoke\w for\y $%d\w?", cost_nos);
}
else if(item[id] == 8) {
len += format(msg[len], sizeof(msg) - len - 1, "\rCiche chodzenie\w for\y $%d\w?", cost_wa);
}
else if(item[id] == 9) {
len += format(msg[len], sizeof(msg) - len - 1, "\rAnty-flash\w for\y $%d\w?", cost_nof);
}
else if(item[id] == 10) {
len += format(msg[len], sizeof(msg) - len - 1, "\rHE\w for\y $%d\w?", cost_he);
}
else if(item[id] == 11) {
len += format(msg[len], sizeof(msg) - len - 1, "\rUSP\w for\y $%d\w?", cost_usp);
}
else if(item[id] == 12) {
len += format(msg[len], sizeof(msg) - len - 1, "\rNaboje do USP\w for\y $%d\w?", cost_am_usp);
}
else if(item[id] == 13) {
len += format(msg[len], sizeof(msg) - len - 1, "\rScout\w for\y $%d\w?", cost_sco);
}
else if(item[id] == 14) {
len += format(msg[len], sizeof(msg) - len - 1, "\rNaboje do scouta\w for\y $%d\w?", cost_am_sco);
}
else if(item[id] == 15) {
len += format(msg[len], sizeof(msg) - len - 1, "\rBrak spowolnienia po strzale\w for\y $%d\w?", cost_sho);
}
len += format(msg[len], sizeof(msg) - len - 1, "^n^n\r1.\w Tak");
len += format(msg[len], sizeof(msg) - len - 1, "^n\r2.\w Nie");
show_menu(id,QUEST_KEYS, msg, -1,"QuestMenu");
return PLUGIN_HANDLED;
}
public cbQuestMenu(id, key) {
switch(key) {
case 0:{
if(item[id] == 1) {
idmm[id] -= cost_hp;
idhealth[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
else if(item[id] == 2) {
idmm[id] -= cost_arm;
idarmor[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
else if(item[id] == 3) {
idmm[id] -= cost_res;
idrespawn[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
else if(item[id] == 4) {
idmm[id] -= cost_fd;
idfalldmg[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
else if(item[id] == 5) {
idmm[id] -= cost_sh;
idsuperhe[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
else if(item[id] == 6) {
idmm[id] -= cost_b;
idbonus[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
else if(item[id] == 7) {
idmm[id] -= cost_nos;
idnosmoke[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
else if(item[id] == 8) {
idmm[id] -= cost_wa;
idwalk[id] ++;
set_user_footsteps(id, 1);
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
else if(item[id] == 9) {
idmm[id] -= cost_nof;
idnoflash[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
else if(item[id] == 10) {
idmm[id] -= cost_he;
idhe[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
else if(item[id] == 11) {
idmm[id] -= cost_usp;
idusp[id] ++;
if(idusp[id] == 1) {
idamusp[id] ++;
}
ColorChat(id, "!g[%s]!y Kupowanie broni powiodlo sie.", PREFIX);
}
else if(item[id] == 12) {
idmm[id] -= cost_am_usp;
idamusp[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie naboi powiodlo sie.", PREFIX);
}
else if(item[id] == 13) {
idmm[id] -= cost_sco;
idscout[id] ++;
if(idscout[id] == 1) {
idamsco[id] ++;
}
ColorChat(id, "!g[%s]!y Kupowanie broni powiodlo sie", PREFIX);
}
else if(item[id] == 14) {
idmm[id] -= cost_am_sco;
idamsco[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie naboi powiodlo sie.", PREFIX);
}
else if(item[id] == 15) {
idmm[id] -= cost_sho;
idshock[id] ++;
ColorChat(id, "!g[%s]!y Kupowanie umiejetnosci powiodlo sie.", PREFIX);
}
func_save(id);
if(item[id] > 0 && item[id] < 8) {
itemsMenu(id);
}
else if(item[id] > 7 && item[id] < 10 || item[id] == 21) {
items2Menu(id);
}
else if(item[id] > 9 && item[id] < 13) {
weaponMenu(id);
}
else {
gunMenu(id);
}
}
case 1:{
if(item[id] > 0 && item[id] < 8) {
itemsMenu(id);
}
else if(item[id] > 7 && item[id] < 10 || item[id] == 21) {
items2Menu(id);
}
else if(item[id] > 9 && item[id] < 13) {
weaponMenu(id);
}
else {
gunMenu(id);
}
}
}
}
public playerInfoMenu(id) {
new msg1[128]
format(msg1,127,"\r[\y%s\r]\w ^nInfo o graczu", PREFIX);
new menu = menu_create(msg1, "cbPlayerInfoMenu");
new name[32], authid[35];
for(new idd = 1; idd <= get_maxplayers(); idd++)
{
if(!is_user_connected(idd))
continue;
get_user_name(idd, name, sizeof(name) - 1);
get_user_authid(idd, authid, sizeof(authid) - 1);
menu_additem(menu, name, authid);
menu_setprop(menu,MPROP_EXITNAME,"\wBack to Main Menu");
}
menu_display(id, menu);
}
public cbPlayerInfoMenu(id, menu, item) {
if(item == MENU_EXIT)
{
menu_destroy(menu);
moneyMenu(id);
return;
}
static _access, authid[35], callback;
menu_item_getinfo(menu, item, _access, authid, sizeof(authid) - 1, _, _, callback);
menu_destroy(menu);
new player = find_player("c", authid);
if(!is_user_connected(player)) {
moneyMenu(id);
return;
}
new name[32];
get_user_name(player, name, sizeof(name) - 1);
static motd[2500];
new len = copy(motd, sizeof(motd) - 1, "<html>");
len += format(motd[len], sizeof(motd) - len - 1, "<style type=^"text/css^"> body { background-image:url(http://i47.tinypic.com/xf50k5.png/); color:#FF8F00 } </style>");
len += format(motd[len], sizeof(motd) - len - 1, "<b><font size=^"4^">Nick:</font></b> %s<br><br>", name);
len += format(motd[len], sizeof(motd) - len - 1, "<b><font size=^"4^">Kasa:</font></b> %i<br><br>", idmm[player]);
len += format(motd[len], sizeof(motd) - len - 1, "<b>Zycie:</b> %d/%d (%d/%d HP)<br>",idhealth[player], max_health, idhealth[player] * number_health, max_health * number_health);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Odbicie:</b> %d/%d (%d%%/%d%%)<br>",idarmor[player], max_armor, idarmor[player] * chance_armor, max_armor * chance_armor);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Twarde buty:</b> %d/%d (%d%%/%d%%)<br>",idfalldmg[player], max_falldmg, idfalldmg[player] * percent_falldmg, max_falldmg * percent_falldmg);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Odrodzenie:</b> %d/%d (T: %d%%/%d%% CT: %d%%/%d%%)<br>",idrespawn[player], max_respawn, idrespawn[player] * chance_respawnt,max_respawn * chance_respawnt,idrespawn[player] * chance_respawnct, max_respawn * chance_respawnct);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Super HE:</b> %d/%d (From 1 to %d/%d)<br>",idsuperhe[player], max_superhe, idsuperhe[player] * distance_superhe, max_superhe * distance_superhe);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Wiecej kasy:</b> %d/%d ($%d/$%d)<br>",idbonus[player], max_bonus, idbonus[player] * number_bonus, max_bonus * number_bonus);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Anty-smoke:</b> %d/%d (%d%%/%d%%)<br>",idnosmoke[player], max_nosmoke, idnosmoke[player] * percent_nosmoke, max_nosmoke * percent_nosmoke);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Ciche chodzenie:</b> %d/%d<br>",idwalk[player], max_walk);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Anty-flash:</b> %d/%d<br>",idnoflash[player], max_noflash);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>Brak spowolnienia po strzale:</b> %d/%d<br>",idshock[player], max_shock);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<b>HE:</b> %d/%d (%d%%/%d%%)<br>",idhe[player], max_he, idhe[player] * chance_he, max_he * chance_he);
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "</body>");
len += format(motd[len], sizeof(motd) - len - 1, "</html>");
show_motd(id, motd, "MoneyMod Player Info");
playerInfoMenu(id);
}
public motd_help(id) {
static motd[2500];
new len = formatex(motd, sizeof(motd) - 1, "<body style=^"background-image:url(http://i47.tinypic.com/xf50k5.png/); color:#FF8F00^">");
len += format(motd[len], sizeof(motd) - len - 1, "<p align=^"center^">");
len += format(motd[len], sizeof(motd) - len - 1, "Money Mod jest tylko dodatkiem.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "Grajac zdobywasz pieniadze.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "<table border=0>");
len += format(motd[len], sizeof(motd) - len - 1, "<tr><th>Akcja</th><th>Kasa</th></tr>");
len += format(motd[len], sizeof(motd) - len - 1, "<tr><td>Zabicie</td><td>+%i</td></tr>", mm_kill);
len += format(motd[len], sizeof(motd) - len - 1, "<tr><td>Przezycie rundy jako terrorysta</td><td>+%i</td></tr>", mm_survive);
len += format(motd[len], sizeof(motd) - len - 1, "</table>");
len += format(motd[len], sizeof(motd) - len - 1, "<br>");
len += format(motd[len], sizeof(motd) - len - 1, "Za kase mozesz kupic dodatki.<br>");
len += format(motd[len], sizeof(motd) - len - 1, "Aby je zakupic, wpisz /mm.");
len += format(motd[len], sizeof(motd) - len - 1, "</p>");
len += format(motd[len], sizeof(motd) - len - 1, "</body>");
show_motd(id, motd, "MoneyMod Help");
}
public forward_touch(toucher, touched) {
if(!is_user_alive(toucher) || !is_user_alive(touched))
return;
if(!get_cvar_num("amx_headsplash"))
return;
if(falling_speed[touched])
return;
if(get_user_team(toucher) == get_user_team(touched) && !get_cvar_num("mp_friendlyfire"))
return;
new touched_origin[3], toucher_origin[3];
get_user_origin(touched, touched_origin);
get_user_origin(toucher, toucher_origin);
new Float:toucher_minsize[3], Float:touched_minsize[3];
pev(toucher,pev_mins,toucher_minsize);
pev(touched,pev_mins,touched_minsize);
if(touched_minsize[2] != -18.0)
{
if(!(toucher_origin[2] == touched_origin[2]+72 && toucher_minsize[2] != -18.0) && !(toucher_origin[2] == touched_origin[2]+54 && toucher_minsize[2] == -18.0))
{
return;
}
}
else
{
if(!(toucher_origin[2] == touched_origin[2]+68 && toucher_minsize[2] != -18.0) && !(toucher_origin[2] == touched_origin[2]+50 && toucher_minsize[2] == -18.0))
{
return;
}
}
if(falling_speed[toucher] >= MINIMUM_FALL_SPEED)
{
new Float:damage = ((falling_speed[toucher] - MINIMUM_FALL_SPEED + 30) * (falling_speed[toucher] - MINIMUM_FALL_SPEED + 30)) / 1300;
if(damage > MAXIMUM_DAMAGE_FROM_JUMP)
damage = MAXIMUM_DAMAGE_FROM_JUMP;
func_dmgplayer(touched, toucher, damage);
damage_after[toucher][touched] = 0.0;
}
if(is_user_alive(touched) && damage_after[toucher][touched] <= get_gametime())
{
damage_after[toucher][touched] = get_gametime() + DELAY;
func_dmgplayer(touched, toucher, DAMAGE);
}
}
public func_dmgplayer(pwned, pwnzor, Float:damage) {
if(idarmor[pwned] > 0) {
new chance_num = random_num(1, 100);
new chance_player= idarmor[pwned] * chance_armor;
if(chance_num <= chance_player && 0 < pwnzor <= get_maxplayers()) {
new name[64];
get_user_name(pwnzor, name, 63);
damage = 0.0;
SetHamParamFloat(3, damage);
}
}
new health = get_user_health(pwned);
if(get_user_team(pwned) == get_user_team(pwnzor))
damage /= 1.4;
new CsArmorType:armortype;
cs_get_user_armor(pwned, armortype);
if(armortype == CS_ARMOR_VESTHELM)
damage *= 0.7;
if(health > damage)
{
new pwned_origin[3];
get_user_origin(pwned, pwned_origin);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BLOODSPRITE);
write_coord(pwned_origin[0]+8);
write_coord(pwned_origin[1]);
write_coord(pwned_origin[2]+26);
write_short(sprite_bloodspray);
write_short(sprite_blood);
write_byte(248);
write_byte(4);
message_end();
new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "trigger_hurt"));
if(!ent)
return;
new value[16];
float_to_str(damage * 2, value, sizeof value - 1);
set_kvd(0, KV_ClassName, "trigger_hurt");
set_kvd(0, KV_KeyName, "dmg");
set_kvd(0, KV_Value, value);
set_kvd(0, KV_fHandled, 0);
dllfunc(DLLFunc_KeyValue, ent, 0);
num_to_str(DMG_GENERIC, value, sizeof value - 1);
set_kvd(0, KV_ClassName, "trigger_hurt");
set_kvd(0, KV_KeyName, "damagetype");
set_kvd(0, KV_Value, value);
set_kvd(0, KV_fHandled, 0);
dllfunc(DLLFunc_KeyValue, ent, 0);
set_kvd(0, KV_ClassName, "trigger_hurt");
set_kvd(0, KV_KeyName, "origin");
set_kvd(0, KV_Value, "8192 8192 8192");
set_kvd(0, KV_fHandled, 0);
dllfunc(DLLFunc_KeyValue, ent, 0);
dllfunc(DLLFunc_Spawn, ent);
set_pev(ent, pev_classname, "head_splash");
dllfunc(DLLFunc_Touch, ent, pwned);
engfunc(EngFunc_RemoveEntity, ent);
}
else
{
new pwned_origin[3];
get_user_origin(pwned, pwned_origin);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BLOODSPRITE);
write_coord(pwned_origin[0]+8);
write_coord(pwned_origin[1]);
write_coord(pwned_origin[2]+26);
write_short(sprite_bloodspray);
write_short(sprite_blood);
write_byte(248);
write_byte(12);
message_end();
set_pev(pwned, pev_frags, float(get_user_frags(pwned) + 1));
user_silentkill(pwned);
make_deathmsg(pwnzor, pwned, 1, "his/her feet :)");
if(get_user_team(pwnzor) != get_user_team(pwned)) {
set_pev(pwnzor, pev_frags, float(get_user_frags(pwnzor) + 1));
func_mm(pwnzor, mm_kill);
}
else
{
set_pev(pwnzor, pev_frags, float(get_user_frags(pwnzor) - 1));
}
message_begin(MSG_ALL, get_user_msgid("ScoreInfo"));
write_byte(pwnzor);
write_short(get_user_frags(pwnzor));
write_short(cs_get_user_deaths(pwnzor));
write_short(0);
write_short(get_user_team(pwnzor));
message_end();
message_begin(MSG_ALL, get_user_msgid("ScoreInfo"));
write_byte(pwned);
write_short(get_user_frags(pwned));
write_short(cs_get_user_deaths(pwned));
write_short(0);
write_short(get_user_team(pwned));
message_end();
set_pev(pwned, pev_frags, float(get_user_frags(pwned) - 1));
}
}
/* ===========================STOCKS=========================== */
stock get_velocity_from_origin(ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3]) {
new Float:fEntOrigin[3];
entity_get_vector(ent, EV_VEC_origin, fEntOrigin);
// Velocity = Distance / Time
new Float:fDistance[3];
fDistance[0] = fEntOrigin[0] - fOrigin[0];
fDistance[1] = fEntOrigin[1] - fOrigin[1];
fDistance[2] = fEntOrigin[2] - fOrigin[2];
new Float:fTime = (vector_distance( fEntOrigin,fOrigin ) / fSpeed);
fVelocity[0] = fDistance[0] / fTime;
fVelocity[1] = fDistance[1] / fTime;
fVelocity[2] = fDistance[2] / fTime;
return (fVelocity[0] && fVelocity[1] && fVelocity[2]);
}
stock set_velocity_from_origin(ent, Float:fOrigin[3], Float:fSpeed) {
new Float:fVelocity[3];
get_velocity_from_origin(ent, fOrigin, fSpeed, fVelocity);
entity_set_vector(ent, EV_VEC_velocity, fVelocity);
return (1);
}
stock ColorChat(player, const textt[], any:...) {
static szMessage[192];
vformat(szMessage, 191, textt, 3);
replace_all(szMessage, 191, "!y", "^x01");
replace_all(szMessage, 191, "!t", "^x03");
replace_all(szMessage, 191, "!g", "^x04");
if(player==0) {
new plist[32], playernum, player;
get_players(plist, playernum);
for(new i = 0; i < playernum; i++) {
player = plist[i];
message_begin(MSG_ONE, msgsaytext, {0,0,0}, player);
write_byte(player);
write_string(szMessage);
message_end();
}
}
else {
message_begin(MSG_ONE, msgsaytext, {0,0,0}, player);
write_byte(player);
write_string(szMessage);
message_end();
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
|