Witamy w Nieoficjalnym polskim support'cie AMX Mod X
| Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji. 
 | 
Guest Message by DevFuse
       
		Wklejka 6xs7srxv504c dodana przez speedkill, 11.03.2012 19:45
	
	
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.
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <nvault>
#include <engine>
 
#define PLUGIN "Call of Duty: MW Mod"
#define VERSION "1.0-3"
#define AUTHOR "QTM_Peyote"
 
#define MAX_WIELKOSC_NAZWY 32
#define MAX_WIELKOSC_OPISU 256
#define MAX_ILOSC_PERKOW 120
#define MAX_ILOSC_KLAS 100
 
#define STANDARDOWA_SZYBKOSC 250.0
 
#define ZADANIE_POKAZ_INFORMACJE 672
#define ZADANIE_POKAZ_REKLAME 768
#define ZADANIE_USTAW_SZYBKOSC 832
 
new const maxAmmo[31] = {0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120,
90, 2, 35, 90, 90,0, 100};
 
 
new const co_ile[] = { 1, 4, 8, 16, 24, -1 }
 
new limit_inteligencji = 250;//inteligencjia 
new limit_zdrowie = 300;//zdrowie
new limit_wytrzymalosc = 200;//wytrzymalosc
new limit_kondycji = 100;//kondycja 
new limit_madrosc = 200;//madrosc
new limit_obrazen = 150;//obrazenia
 
new szybkosc_rozdania[33];
 
new MsgScreenfade;
 
new vault;
 
new SyncHudObj, SyncHudObj2;
 
new cvar_doswiadczenie_za_zabojstwo,
cvar_doswiadczenie_za_obrazenia,
cvar_doswiadczenie_za_wygrana,
cvar_typ_zapisu,
cvar_limit_poziomu,
cvar_proporcja_poziomu,
cvar_blokada_broni;
 
 
new perk_zmieniony,
klasa_zmieniona;
 
 
new nazwy_perkow[MAX_ILOSC_PERKOW+1][MAX_WIELKOSC_NAZWY+1],
opisy_perkow[MAX_ILOSC_PERKOW+1][MAX_WIELKOSC_OPISU+1],
max_wartosci_perkow[MAX_ILOSC_PERKOW+1],
min_wartosci_perkow[MAX_ILOSC_PERKOW+1],
pluginy_perkow[MAX_ILOSC_PERKOW+1],
ilosc_perkow;
 
 
new nazwa_gracza[33][64],
klasa_gracza[33],
nowa_klasa_gracza[33],
poziom_gracza[33],
doswiadczenie_gracza[33],
perk_gracza[33],
wartosc_perku_gracza[33];
 
new Float:maksymalne_zdrowie_gracza[33],
Float:szybkosc_gracza[33],
Float:redukcja_obrazen_gracza[33];
 
new punkty_gracza[33],
zdrowie_gracza[33],
inteligencja_gracza[33],
wytrzymalosc_gracza[33],
kondycja_gracza[33],
madrosc_gracza[33],
obrazenia_gracza[33];
 
new bool:gracz_ma_tarcze[33],
bool:gracz_ma_noktowizor[33];     
 
new bonusowe_bronie_gracza[33],
bonusowe_zdrowie_gracza[33],
bonusowa_inteligencja_gracza[33],
bonusowa_wytrzymalosc_gracza[33],
bonusowa_kondycja_gracza[33];
 
new bronie_klasy[MAX_ILOSC_KLAS+1], 
zdrowie_klas[MAX_ILOSC_KLAS+1],
kondycja_klas[MAX_ILOSC_KLAS+1], 
inteligencja_klas[MAX_ILOSC_KLAS+1], 
wytrzymalosc_klas[MAX_ILOSC_KLAS+1],
nazwy_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_NAZWY+1],
opisy_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_OPISU+1],
pluginy_klas[MAX_ILOSC_KLAS+1],
ilosc_klas;
 
new bronie_druzyny[] = {0, 1<<CSW_GLOCK18, 1<<CSW_USP},
bronie_dozwolone = 1<<CSW_KNIFE | 1<<CSW_C4;
 
new bool:freezetime = true;
new weaponname[22];
 
new awanse[MAX_ILOSC_KLAS+1][3], awansuje_do[MAX_ILOSC_KLAS+1], awansuje_z[MAX_ILOSC_KLAS+1];
new ilosc_awansow;
 
public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
 
	cvar_doswiadczenie_za_zabojstwo = register_cvar("cod_killxp", "10");
	cvar_doswiadczenie_za_obrazenia = register_cvar("cod_damagexp", "1"); // ilosc doswiadczenia za 20 obrazen 
	cvar_doswiadczenie_za_wygrana = register_cvar("cod_winxp", "50");
	cvar_typ_zapisu = register_cvar("cod_savetype", "2");  // 1-Nick; 2-SID dla Steam; 3-IP
	cvar_limit_poziomu = register_cvar("cod_maxlevel", "200"); 
	cvar_proporcja_poziomu = register_cvar("cod_levelratio", "35"); 
	cvar_blokada_broni = register_cvar("cod_weaponsblocking", "1"); 
 
	register_clcmd("say /klasa", "WybierzKlase");
	register_clcmd("say /class", "WybierzKlase");
	register_clcmd("say /klasy", "OpisKlasy");
	register_clcmd("say /classinfo", "OpisKlasy");
	register_clcmd("say /perk", "KomendaOpisPerku");
	register_clcmd("say /perki", "OpisPerkow");
	register_clcmd("say /perks", "OpisPerkow");
	register_clcmd("say /item", "Pomoc");
	register_clcmd("say /przedmiot", "OpisPerku");
	register_clcmd("say /drop", "WyrzucPerk");
	register_clcmd("say /wyrzuc", "WyrzucPerk");
	register_clcmd("say /reset", "KomendaResetujPunkty");
	register_clcmd("say /statystyki", "PrzydzielPunkty");
	register_clcmd("say /staty", "PrzydzielPunkty");
	register_clcmd("say /pomoc", "Pomoc");
	register_clcmd("useperk", "UzyjPerku");
	register_clcmd("radio3", "UzyjPerku");
	register_clcmd("fullupdate", "BlokujKomende");
 
	register_menucmd(register_menuid("Klasa:"), 1023, "OpisKlasy");
 
	RegisterHam(Ham_TakeDamage, "player", "Obrazenia");
	RegisterHam(Ham_TakeDamage, "player", "ObrazeniaPost", 1);
	RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
	RegisterHam(Ham_Killed, "player", "SmiercGraczaPost", 1);
 
	RegisterHam(Ham_Touch, "armoury_entity", "DotykBroni");
	RegisterHam(Ham_Touch, "weapon_shield", "DotykTarczy");
	RegisterHam(Ham_Touch, "weaponbox", "DotykBroni");
 
	register_forward(FM_CmdStart, "CmdStart");
	register_forward(FM_EmitSound, "EmitSound");
 
 
 
	register_logevent("PoczatekRundy", 2, "1=Round_Start"); 
 
	register_event("SendAudio", "WygranaTerro" , "a", "2&%!MRAD_terwin");
	register_event("SendAudio", "WygranaCT", "a", "2&%!MRAD_ctwin");
	register_event("CurWeapon","CurWeapon","be", "1=1");
	register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
 
	vault = nvault_open("CodMod");
 
	MsgScreenfade = get_user_msgid("ScreenFade");
 
	SyncHudObj = CreateHudSyncObj();
	SyncHudObj2 = CreateHudSyncObj();
 
	perk_zmieniony = CreateMultiForward("cod_perk_changed", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL);
	klasa_zmieniona = CreateMultiForward("cod_class_changed", ET_CONTINUE, FP_CELL, FP_CELL);
 
	copy(nazwy_perkow[0], MAX_WIELKOSC_NAZWY, "Brak");
	copy(opisy_perkow[0], MAX_WIELKOSC_OPISU, "Zabij kogos, aby otrzymac przedmiot");
	copy(nazwy_klas[0], MAX_WIELKOSC_NAZWY, "Brak");
 
	set_task(1.0, "plugin_cfg");
}		
 
public plugin_cfg()
{
	new lokalizacja_cfg[33];
	get_configsdir(lokalizacja_cfg, charsmax(lokalizacja_cfg));
	server_cmd("exec %s/codmod.cfg", lokalizacja_cfg);
	server_exec();
}
 
 
public plugin_precache()
{	
	precache_sound("QTM_CodMod/select.wav");
	precache_sound("QTM_CodMod/start.wav");
	precache_sound("QTM_CodMod/start2.wav");
	precache_sound("QTM_CodMod/levelup.wav");
}
 
public plugin_natives()
{
	register_native("cod_set_user_xp", "UstawDoswiadczenie", 1);
	register_native("cod_set_user_class", "UstawKlase", 1);
	register_native("cod_set_user_perk", "UstawPerk", 1);
	register_native("cod_set_user_bonus_health", "UstawBonusoweZdrowie", 1);
	register_native("cod_set_user_bonus_intelligence", "UstawBonusowaInteligencje", 1);
	register_native("cod_set_user_bonus_trim", "UstawBonusowaKondycje", 1);
	register_native("cod_set_user_bonus_stamina", "UstawBonusowaWytrzymalosc", 1);
 
	register_native("cod_points_to_health", "PrzydzielZdrowie", 1);	
	register_native("cod_points_to_intelligence", "PrzydzielInteligencje", 1);	
	register_native("cod_points_to_trim", "PrzydzielKondycje", 1);	
	register_native("cod_points_to_stamina", "PrzydzielWytrzymalosc", 1);	
 
	register_native("cod_get_user_xp", "PobierzDoswiadczenie", 1);
	register_native("cod_get_user_level", "PobierzPoziom", 1);
	register_native("cod_get_user_points", "PobierzPunkty", 1);
	register_native("cod_get_user_class", "PobierzKlase", 1);
	register_native("cod_get_user_perk", "PobierzPerk", 1);
	register_native("cod_get_user_health", "PobierzZdrowie", 1);
	register_native("cod_get_user_intelligence", "PobierzInteligencje", 1);
	register_native("cod_get_user_trim", "PobierzKondycje", 1);
	register_native("cod_get_user_stamina", "PobierzWytrzymalosc", 1);
 
	register_native("cod_get_level_xp", "PobierzDoswiadczeniePoziomu", 1);
 
	register_native("cod_get_perkid", "PobierzPerkPrzezNazwe", 1);
	register_native("cod_get_perks_num", "PobierzIloscPerkow", 1);
	register_native("cod_get_perk_name", "PobierzNazwePerku", 1);
	register_native("cod_get_perk_desc", "PobierzOpisPerku", 1);
 
	register_native("cod_get_classid", "PobierzKlasePrzezNazwe", 1);
	register_native("cod_get_classes_num", "PobierzIloscKlas", 1);
	register_native("cod_get_class_name", "PobierzNazweKlasy", 1);
	register_native("cod_get_class_desc", "PobierzOpisKlasy", 1);
 
	register_native("cod_get_class_health", "PobierzZdrowieKlasy", 1);
	register_native("cod_get_class_intelligence", "PobierzInteligencjeKlasy", 1);
	register_native("cod_get_class_trim", "PobierzKondycjeKlasy", 1);
	register_native("cod_get_class_stamina", "PobierzWytrzymaloscKlasy", 1);
 
	register_native("cod_give_weapon", "DajBron", 1);
	register_native("cod_take_weapon", "WezBron", 1);
	register_native("cod_set_user_shield", "UstawTarcze", 1);
	register_native("cod_set_user_nightvision", "UstawNoktowizor", 1);
 
	register_native("cod_inflict_damage", "ZadajObrazenia", 1);
 
	register_native("cod_register_perk", "ZarejestrujPerk");
	register_native("cod_register_class", "ZarejestrujKlase");
 
	register_native("cod_register_advance", "ZarejestrujAwans");
}
 
public CmdStart(id, uc_handle)
{		
	if(!is_user_alive(id))
		return FMRES_IGNORED;
 
	new Float: velocity[3];
	pev(id, pev_velocity, velocity);
	new Float: speed = vector_length(velocity);
	if(szybkosc_gracza[id] > speed*1.8)
		set_pev(id, pev_flTimeStepSound, 300);
 
	return FMRES_IGNORED;
}
 
public Odrodzenie(id)
{	
	if(!task_exists(id+ZADANIE_POKAZ_INFORMACJE))
		set_task(0.1, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE, _, _, "b");
 
	if(nowa_klasa_gracza[id])
		UstawNowaKlase(id);
 
	if(!klasa_gracza[id])
	{
		WybierzKlase(id);
		return PLUGIN_CONTINUE;
	}
 
	DajBronie(id);
	ZastosujAtrybuty(id);
 
	if(punkty_gracza[id] > 0)
		PrzydzielPunkty(id);
 
	return PLUGIN_CONTINUE;
}
 
public UstawNowaKlase(id)
{
	new ret;
 
	new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_disabled", FP_CELL, FP_CELL);
	ExecuteForward(forward_handle, ret, id, klasa_gracza[id]);
	DestroyForward(forward_handle);
 
	forward_handle = CreateOneForward(pluginy_klas[nowa_klasa_gracza[id]], "cod_class_enabled", FP_CELL, FP_CELL);
	ExecuteForward(forward_handle, ret, id, nowa_klasa_gracza[id]);
	DestroyForward(forward_handle);
 
 
	if(ret == 4)	
	{
		klasa_gracza[id] = 0;
		return PLUGIN_CONTINUE;
	}
 
	ExecuteForward(klasa_zmieniona, ret, id, klasa_gracza[id]);
 
	if(ret == 4)	
	{
		klasa_gracza[id] = 0;
		return PLUGIN_CONTINUE;
	}
 
	klasa_gracza[id] = nowa_klasa_gracza[id];
	nowa_klasa_gracza[id] = 0;
	UstawPerk(id, perk_gracza[id], wartosc_perku_gracza[id], 0);
 
	WczytajDane(id, klasa_gracza[id]);
	return PLUGIN_CONTINUE;
}
 
public DajBronie(id)
{
	for(new i=1; i < 32; i++)
	{
		if((1<<i) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id]))
		{
			new weaponname[22];
			get_weaponname(i, weaponname, 21);
			fm_give_item(id, weaponname);
		}
	}
 
	if(gracz_ma_tarcze[id])
		fm_give_item(id, "weapon_shield");
 
	if(gracz_ma_noktowizor[id])
		cs_set_user_nvg(id, 1);
 
	new weapons[32];
	new weaponsnum;
	get_user_weapons(id, weapons, weaponsnum);
	for(new i=0; i<weaponsnum; i++)
		if(is_user_alive(id))
			if(maxAmmo[weapons[i]] > 0)
				cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
		}
 
public ZastosujAtrybuty(id)
{
	redukcja_obrazen_gracza[id] = 0.7*(1.0-floatpower(1.1, -0.112311341*PobierzWytrzymalosc(id, 1, 1, 1)));
 
	maksymalne_zdrowie_gracza[id] = 100.0+PobierzZdrowie(id, 1, 1, 1)*3;
 
	szybkosc_gracza[id] = STANDARDOWA_SZYBKOSC+PobierzKondycje(id, 1, 1, 1)*1.3;
 
	set_pev(id, pev_health, maksymalne_zdrowie_gracza[id]);
}
 
public PoczatekRundy()	
{
	freezetime = false;
	for(new id=0;id<=32;id++)
	{
		if(!is_user_alive(id))
			continue;
 
		Display_Fade(id, 1<<9, 1<<9, 1<<12, 0, 255, 70, 100);
 
		set_task(0.1, "UstawSzybkosc", id+ZADANIE_USTAW_SZYBKOSC);
 
		switch(get_user_team(id))
		{
			case 1: client_cmd(id, "spk QTM_CodMod/start2");
			case 2: client_cmd(id, "spk QTM_CodMod/start");
		}
	}
}
 
public NowaRunda()
	freezetime = true;
 
public Obrazenia(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_alive(idattacker))
		return HAM_IGNORED;
 
	if(get_user_team(this) == get_user_team(idattacker))
		return HAM_IGNORED;
 
	if(get_user_health(this) <= 1)
		return HAM_IGNORED;
 
 
	damage += (damage * (float(obrazenia_gracza[idattacker])*0.005))
	SetHamParamFloat(4, damage*(1.0-redukcja_obrazen_gracza[this]));
 
	return HAM_IGNORED;
}
 
public ObrazeniaPost(id, idinflictor, attacker, Float:damage, damagebits)
{
	if(!is_user_connected(attacker) || !klasa_gracza[attacker])
		return HAM_IGNORED;
 
	if(get_user_team(id) != get_user_team(attacker))
	{
		new doswiadczenie_za_obrazenia = get_pcvar_num(cvar_doswiadczenie_za_obrazenia);
		while(damage>20)
		{
			damage -= 20;
			doswiadczenie_gracza[attacker] += doswiadczenie_za_obrazenia;
		}
	}
	SprawdzPoziom(attacker);
	return HAM_IGNORED;
}
 
public SmiercGraczaPost(id, attacker, shouldgib)
{	
	if(!is_user_connected(attacker))
		return HAM_IGNORED;
 
	if(get_user_team(id) != get_user_team(attacker) && klasa_gracza[attacker])
	{
		new doswiadczenie_za_zabojstwo = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo);
		new nowe_doswiadczenie = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo);
 
		if(poziom_gracza[id] > poziom_gracza[attacker])
			nowe_doswiadczenie += (poziom_gracza[id]-poziom_gracza[attacker])*(doswiadczenie_za_zabojstwo/10);
 
		if(!perk_gracza[attacker])
			UstawPerk(attacker, -1, -1, 1);
		nowe_doswiadczenie += madrosc_gracza[attacker]*3
		doswiadczenie_gracza[attacker] += nowe_doswiadczenie;
	}
 
	SprawdzPoziom(attacker);
 
	return HAM_IGNORED;
}
 
 
public client_authorized(id)
{
	UsunUmiejetnosci(id);
 
	get_user_name(id, nazwa_gracza[id], 63);
 
	UsunZadania(id);
 
	set_task(10.0, "PokazReklame", id+ZADANIE_POKAZ_REKLAME);
}
 
public client_disconnect(id)
{
	ZapiszDane(id);
	UsunUmiejetnosci(id);
	UsunZadania(id);
}
 
public UsunUmiejetnosci(id)
{
	nowa_klasa_gracza[id] = 0;
	UstawNowaKlase(id);
	klasa_gracza[id] = 0;
	poziom_gracza[id] = 0;
	doswiadczenie_gracza[id] = 0;
	punkty_gracza[id] = 0;
	zdrowie_gracza[id] = 0;
	inteligencja_gracza[id] = 0;
	wytrzymalosc_gracza[id] = 0;
	kondycja_gracza[id] = 0;
	madrosc_gracza[id] = 0;
	obrazenia_gracza[id] = 0;
	bonusowe_zdrowie_gracza[id] = 0;
	bonusowa_wytrzymalosc_gracza[id] = 0;
	bonusowa_inteligencja_gracza[id] = 0;
	bonusowa_kondycja_gracza[id] = 0;
	maksymalne_zdrowie_gracza[id] = 0.0;
	szybkosc_gracza[id] = 0.0;
	UstawPerk(id, 0, 0, 0);
}
 
public UsunZadania(id)
{
	remove_task(id+ZADANIE_POKAZ_INFORMACJE);
	remove_task(id+ZADANIE_POKAZ_REKLAME);	
	remove_task(id+ZADANIE_USTAW_SZYBKOSC);
}
 
public WygranaTerro()
	WygranaRunda("TERRORIST");
 
public WygranaCT()
	WygranaRunda("CT");
 
public WygranaRunda(const Team[])
{
	new Players[32], playerCount, id;
	get_players(Players, playerCount, "aeh", Team);
	new doswiadczenie_za_wygrana = get_pcvar_num(cvar_doswiadczenie_za_wygrana);
 
	if(get_playersnum() < 3)
		return;
 
	for (new i=0; i<playerCount; i++) 
	{
		id = Players[i];
		if(!klasa_gracza[id])
			continue;
 
		doswiadczenie_gracza[id] += doswiadczenie_za_wygrana;
		client_print(id, print_chat, "[COD:MW] Dostales %i doswiadczenia za wygrana runde.", doswiadczenie_za_wygrana);
		SprawdzPoziom(id);
	}
}
 
public KomendaOpisPerku(id)
	OpisPerku(id, perk_gracza[id], wartosc_perku_gracza[id]);
 
public OpisPerku(id, perk, wartosc)
{
	new opis_perku[MAX_WIELKOSC_OPISU];
	new losowa_wartosc[15];
	if(wartosc > -1)
		num_to_str(wartosc, losowa_wartosc, 14);
	else
	format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_perkow[perk], max_wartosci_perkow[perk]);
 
	format(opis_perku, charsmax(opis_perku), opisy_perkow[perk]);
	replace_all(opis_perku, charsmax(opis_perku), "LW", losowa_wartosc);
 
	client_print(id, print_chat, "Perk: %s.", nazwy_perkow[perk]);
	client_print(id, print_chat, "Opis: %s.", opis_perku);
}
 
public OpisPerkow(id)
{
	new menu = menu_create("Wybierz Perk:", "OpisPerkow_Handle");
	for(new i=1; i <= ilosc_perkow; i++)
		menu_additem(menu, nazwy_perkow[i]);
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
	menu_display(id, menu);
	client_cmd(id, "spk QTM_CodMod/select");
}
 
public OpisPerkow_Handle(id, menu, item)
{
	if(item++ == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	OpisPerku(id, item, -1);
	OpisPerkow(id);
	return PLUGIN_CONTINUE;
}
 
 
public OpisKlasy(id)
{
	new menu = menu_create("Wybierz klase:", "OpisKlasy_Handle");
	for(new i=1; i <= ilosc_klas; i++)
		menu_additem(menu, nazwy_klas[i]);
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
	menu_display(id, menu);
 
	client_cmd(id, "spk QTM_CodMod/select");
}
 
public OpisKlasy_Handle(id, menu, item)
{
	client_cmd(id, "spk QTM_CodMod/select");
 
	if(item++ == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
 
	new bronie[320];
	for(new i=1, n=1; i <= 32; i++)
	{
		if((1<<i) & bronie_klasy[item])
		{
			new weaponname[22];
			get_weaponname(i, weaponname, 21);
			replace_all(weaponname, 21, "weapon_", " ");
			if(n > 1)	
				add(bronie, charsmax(bronie), ",");
			add(bronie, charsmax(bronie), weaponname);
			n++;
		}
	}
 
	new opis[416+MAX_WIELKOSC_OPISU];
	format(opis, charsmax(opis), "yKlasa: w%s^nyInteligencja: w%i^nyZdrowie: w%i^nyWytrzymalosc: w%i^nyKondycja: w%i^nyBronie:w%s^nyDodatkowy opis: w%s^n%s", nazwy_klas[item], inteligencja_klas[item], zdrowie_klas[item], wytrzymalosc_klas[item], kondycja_klas[item], bronie, opisy_klas[item], opisy_klas[item][79]);
	if(awansuje_z[item])
		format(opis, charsmax(opis), "%s^nyAwansuje z: w%s (Wymagany poziom: %i)", opis, nazwy_klas[awansuje_z[item]], awanse[ZnajdzAwans(awansuje_z[item], item)][2]);
	if(awansuje_do[item])
		format(opis, charsmax(opis), "%s^nyAwansuje do: w%s (Wymagany poziom: %i)", opis, nazwy_klas[awansuje_do[item]], awanse[ZnajdzAwans(item, awansuje_do[item])][2]);
	show_menu(id, 1023, opis);
 
	return PLUGIN_CONTINUE;
}
 
public WybierzKlase(id)
{
	new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");
 
	new klasa[50], dana_klasa, numer[10];
	for(new i=1; i <= ilosc_klas; i++)
	{
		if(JestAwansem(i))
			continue;
		WczytajDane(id, i);
		dana_klasa = i;
 
		for(;;)
		{
			if(awansuje_do[dana_klasa] && poziom_gracza[id] >= awanse[ZnajdzAwans(dana_klasa, awansuje_do[dana_klasa])][2])
			{
				dana_klasa = awansuje_do[dana_klasa];
				WczytajDane(id, dana_klasa);
			}
			else break;
		}
		formatex(klasa, charsmax(klasa), "%s yPoziom: %i", nazwy_klas[dana_klasa], poziom_gracza[id]);
		num_to_str(dana_klasa, numer, 9);
		menu_additem(menu, klasa, numer);
	}
 
	WczytajDane(id, klasa_gracza[id]);
 
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
	menu_display(id, menu);
 
	client_cmd(id, "spk QTM_CodMod/select");
}
 
public WybierzKlase_Handle(id, menu, item)
{
	client_cmd(id, "spk QTM_CodMod/select");
 
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}       
 
	new data[65], name[65], acces, callback 
	menu_item_getinfo(menu, item, acces, data, 64, name, 64, callback)      
	item = str_to_num(data);
 
	if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
		return PLUGIN_CONTINUE;
 
	nowa_klasa_gracza[id] = item;
 
	if(klasa_gracza[id])
		client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie.");
	else
	{
		UstawNowaKlase(id);
		DajBronie(id);
		ZastosujAtrybuty(id);
	}
 
	return PLUGIN_CONTINUE;
}
 
public PrzydzielPunkty(id)
{
	new szybkosc[60];
	new inteligencja[65];
	new zdrowie[60];
	new wytrzymalosc[60];
	new kondycja[60];
	new madrosc[60];
	new szobrazenia[60];
	new tytul[25];
 
	if(co_ile[szybkosc_rozdania[id]] == -1)
		format(szybkosc, charsmax(szybkosc), "Ile dodawac: rwszystko y(Ile pkt dodac do statow)");
	else format(szybkosc, charsmax(szybkosc), "Ile dodawac: r%d y(Ile pkt dodac do statow)", co_ile[szybkosc_rozdania[id]]);
	if(inteligencja_gracza[id] == limit_inteligencji)
		format(inteligencja, charsmax(inteligencja), "Inteligencja: r[MAX] y(Zwieksza sile perkow i umiejetnosci klasy)");
	else	format(inteligencja, charsmax(inteligencja), "Inteligencja: r[%i/%i] y(Zwieksza sile perkow i umiejetnosci klasy)", PobierzInteligencje(id, 1, 1, 1), PobierzInteligencje(id, 1, 1, 1) - inteligencja_gracza[id] + limit_inteligencji);
	if(zdrowie_gracza[id] == limit_zdrowie)
		format(zdrowie, charsmax(zdrowie), "Zdrowie: r[MAX] y(Zwieksza zdrowie)");
	else	format(zdrowie, charsmax(zdrowie), "Zdrowie: r[%i/%i] y(Zwieksza zdrowie)", PobierzZdrowie(id, 1, 1, 1), PobierzZdrowie(id, 1, 1, 1) - zdrowie_gracza[id] + limit_zdrowie);
	if(wytrzymalosc_gracza[id] == limit_wytrzymalosc)
		format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: r[MAX] y(Zmniejsza obrazenia)");
	else	format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: r[%i/%i] y(Zmniejsza obrazenia)", PobierzWytrzymalosc(id, 1, 1, 1), PobierzWytrzymalosc(id, 1, 1, 1) - wytrzymalosc_gracza[id] + limit_wytrzymalosc);
	if(kondycja_gracza[id] == limit_kondycji)
		format(kondycja, charsmax(kondycja), "Kondycja: r[MAX] y(Zwieksza tempo chodu)");
	else	format(kondycja, charsmax(kondycja), "Kondycja: r[%i/%i] y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1), PobierzKondycje(id, 1, 1, 1) - kondycja_gracza[id] + limit_kondycji);
	if(madrosc_gracza[id] == limit_madrosc)
		format(madrosc, charsmax(madrosc), "Madrosc: r[MAX] y(Zwieksza expa za zabojstwo)");
	else	format(madrosc, charsmax(madrosc), "Madrosc: r[%i/%i] y(Zwieksza expa za killa)", madrosc_gracza[id], limit_madrosc);
	if(obrazenia_gracza[id] == limit_obrazen)
		format(szobrazenia, charsmax(szobrazenia), "Obrazenia: r[MAX] y(Zwieksza zadawane obrazenia)");
	else	format(szobrazenia, charsmax(szobrazenia), "Obrazenia: r[%i/%i] y(Wieksze obrazenia)", obrazenia_gracza[id], limit_obrazen);
	format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]);
	new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
	menu_additem(menu, szybkosc);
	menu_addblank(menu, 0);
	menu_additem(menu, inteligencja);
	menu_additem(menu, zdrowie);
	menu_additem(menu, wytrzymalosc);
	menu_additem(menu, kondycja);
	menu_additem(menu, madrosc);
	menu_additem(menu, szobrazenia);
	menu_setprop(menu, MPROP_EXIT, 0);
	menu_display(id, menu);
}
 
public PrzydzielPunkty_Handler(id, menu, item) {
	client_cmd(id, "spk QTM_CodMod/select");
 
	if(item == MENU_EXIT) {
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
 
 
	new ilosc;
	if(co_ile[szybkosc_rozdania[id]] == -1)
		ilosc = punkty_gracza[id];
	else ilosc = (co_ile[szybkosc_rozdania[id]] > punkty_gracza[id]) ? punkty_gracza[id] : co_ile[szybkosc_rozdania[id]]
 
	switch(item) { 
		case 0: {
			if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
			else szybkosc_rozdania[id] = 0;
		} 
		case 1: {       
			if(inteligencja_gracza[id] < limit_inteligencji) {
				if(ilosc > limit_inteligencji - inteligencja_gracza[id])
					ilosc = limit_inteligencji - inteligencja_gracza[id];
				inteligencja_gracza[id]+=ilosc;
				punkty_gracza[id]-=ilosc;
			} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom inteligencji osiagniety");
		}
		case 2: {       
			if(zdrowie_gracza[id] < limit_zdrowie) {
				if(ilosc > limit_zdrowie - zdrowie_gracza[id])
					ilosc = limit_zdrowie - zdrowie_gracza[id];
				zdrowie_gracza[id]+=ilosc;
				punkty_gracza[id]-=ilosc;
			} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom zdrowia osiagniety");
		}
		case 3: {       
			if(wytrzymalosc_gracza[id] < limit_wytrzymalosc) {
				if(ilosc > limit_wytrzymalosc - wytrzymalosc_gracza[id])
					ilosc = limit_wytrzymalosc - wytrzymalosc_gracza[id];
				wytrzymalosc_gracza[id]+=ilosc;
				punkty_gracza[id]-=ilosc;
			} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom wytrzymalosc osiagniety");
		}
		case 4: {       
			if(kondycja_gracza[id] < limit_kondycji) {
				if(ilosc > limit_kondycji - kondycja_gracza[id])
					ilosc = limit_kondycji - kondycja_gracza[id];
				kondycja_gracza[id]+=ilosc;
				punkty_gracza[id]-=ilosc;
			} else client_print(id, print_chat, "[COD:MW] Maxymalny poziom kondycji osiagniety");
		}
		case 5: {	
			if(madrosc_gracza[id] < limit_madrosc) {
				if(ilosc > limit_madrosc - madrosc_gracza[id])
					ilosc = limit_madrosc - madrosc_gracza[id];
				madrosc_gracza[id]+=ilosc;
				punkty_gracza[id]-=ilosc;
			}else client_print(id, print_chat, "[COD:MW] Maxymalny poziom madrosci osiagniety");
		}
		case 6: {	
			if(obrazenia_gracza[id] < limit_obrazen) {
				if(ilosc > limit_obrazen - obrazenia_gracza[id])
					ilosc = limit_obrazen - obrazenia_gracza[id];
				obrazenia_gracza[id]+=ilosc;
				punkty_gracza[id]-=ilosc;
			}else client_print(id, print_chat, "[COD:MW] Maxymalny poziom obrazen osiagniety");
		}
	}
 
	if(punkty_gracza[id] > 0)
		PrzydzielPunkty(id);
 
	return PLUGIN_CONTINUE;
}
 
 
public KomendaResetujPunkty(id)
{	
	client_print(id, print_chat, "[COD:MW] Umiejetnosci zostana zresetowane.");
	client_cmd(id, "spk QTM_CodMod/select");
 
	ResetujPunkty(id);
}
 
public ResetujPunkty(id)
{
	punkty_gracza[id] = (poziom_gracza[id]-1)*2;
	inteligencja_gracza[id] = 0;
	zdrowie_gracza[id] = 0;
	kondycja_gracza[id] = 0;
	wytrzymalosc_gracza[id] = 0;
	madrosc_gracza[id]=0;
	obrazenia_gracza[id] = 0;
 
	if(punkty_gracza[id])
		PrzydzielPunkty(id);
}
 
public CurWeapon(id)
{
        if(!is_user_connected(id))
                return;
 
        new team = get_user_team(id);
 
        if(team > 2)
                return;
 
        new bron = read_data(2);
 
        new bronie = (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone);
 
        if(!(1<<bron & bronie))
        {
                new param[2];
                param[0] = id;
                param[1] = bron;
                set_task(0.1, "Strip", _, param, 2);
        }
 
        if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])
                engclient_cmd(id, "drop", "weapon_shield");    
 
        UstawSzybkosc(id);
}
public Strip(param[2])
{
if(is_user_alive(param[0]) && ( 1 <= param[1] <= 30) )
{
  get_weaponname(param[1], weaponname, 21);
  ham_strip_weapon(param[0], weaponname);
}
}
 
stock ham_strip_weapon_short(id)
{
        new szWeapon[64];
 
        get_weaponname( get_user_weapon( id ) , szWeapon , charsmax ( szWeapon ) )
 
        new wId = get_weaponid(szWeapon);
        if(!wId) return 0;
 
        new wEnt        =       find_ent_by_owner( -1,szWeapon,id )
 
        if(!wEnt) return 0;
 
        ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
 
        ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)
        ExecuteHamB(Ham_Item_Kill,wEnt);
 
        set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
 
        return 1;
}
 
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch ) 
{
	if(!is_user_alive(id))
		return FMRES_IGNORED;
 
	if(equal(szSound, "common/wpn_denyselect.wav"))
	{
		new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_skill_used", FP_CELL);
		ExecuteForward(forward_handle, id, id);
		DestroyForward(forward_handle);
		return FMRES_SUPERCEDE;
	}
 
	if(equal(szSound, "items/ammopickup2.wav"))
	{
		cs_set_user_armor(id, 0, CS_ARMOR_NONE);
		return FMRES_SUPERCEDE;
	}
 
	if(equal(szSound, "items/equip_nvg.wav") && !gracz_ma_noktowizor[id])
	{
		cs_set_user_nvg(id, 0);
		return FMRES_SUPERCEDE;
	}
 
	return FMRES_IGNORED;
}
 
public UzyjPerku(id)
{
	if(!is_user_alive(id))
		return PLUGIN_HANDLED;
 
	new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_used", FP_CELL);
	ExecuteForward(forward_handle, id, id);
	DestroyForward(forward_handle);
	return PLUGIN_HANDLED;
}
 
public ZapiszDane(id)
{
	if(!klasa_gracza[id])
		return PLUGIN_CONTINUE;
 
	new vaultkey[128],vaultdata[256], identyfikator[64];
	format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], madrosc_gracza[id], obrazenia_gracza[id]);
 
	new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
 
	switch(typ_zapisu)
	{
		case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
		case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
		case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
	}
 
	format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa_gracza[id]], typ_zapisu);
	nvault_set(vault,vaultkey,vaultdata);
 
	return PLUGIN_CONTINUE;
}
 
public WczytajDane(id, klasa)
{
	new vaultkey[128],vaultdata[256], identyfikator[64];
 
	new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
 
	switch(typ_zapisu)
	{
		case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
		case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
		case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
	}
 
	format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa], typ_zapisu);
 
 
	if(!nvault_get(vault,vaultkey,vaultdata,255)) // Jezeli nie ma danych gracza sprawdza stary zapis. 
	{
		format(vaultkey, charsmax(vaultkey), "%s-%i-cod", nazwa_gracza[id], klasa);
		nvault_get(vault,vaultkey,vaultdata,255);
	}
 
	replace_all(vaultdata, 255, "#", " ");
 
	new danegracza[8][32];
 
	parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31, danegracza[6], 31, danegracza[7], 31);
 
	doswiadczenie_gracza[id] = str_to_num(danegracza[0]);
	poziom_gracza[id] = str_to_num(danegracza[1])>0?str_to_num(danegracza[1]):1;
	inteligencja_gracza[id] = str_to_num(danegracza[2]);
	zdrowie_gracza[id] = str_to_num(danegracza[3]);
	wytrzymalosc_gracza[id] = str_to_num(danegracza[4]);
	kondycja_gracza[id] = str_to_num(danegracza[5]);
	madrosc_gracza[id] = str_to_num(danegracza[6]);
	obrazenia_gracza[id] = str_to_num(danegracza[7]);
	punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-madrosc_gracza[id]-obrazenia_gracza[id];
 
	return PLUGIN_CONTINUE;
} 
 
 
public WyrzucPerk(id)
{
	if(perk_gracza[id])
	{
		client_print(id, print_chat, "[COD:MW] Wyrzuciles %s.", nazwy_perkow[perk_gracza[id]]);
		UstawPerk(id, 0, 0, 0);
	}
	else
	client_print(id, print_chat, "[COD:MW] Nie masz zadnego perku.");
}
 
public SprawdzPoziom(id)
{	
	if(!is_user_connected(id))
		return;
 
	new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);
 
	new bool:zdobyl_poziom = false, bool:stracil_poziom = false;
 
	while(doswiadczenie_gracza[id] >= PobierzDoswiadczeniePoziomu(poziom_gracza[id]) && poziom_gracza[id] < limit_poziomu)
	{
		poziom_gracza[id]++;
		punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-madrosc_gracza[id]-obrazenia_gracza[id];
		zdobyl_poziom = true;
	}
 
	while(doswiadczenie_gracza[id] < PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1))
	{
		poziom_gracza[id]--;
		stracil_poziom = true;
	}
 
	if(poziom_gracza[id] > limit_poziomu)
	{
		poziom_gracza[id] = limit_poziomu;
		ResetujPunkty(id);
	}
 
	if(stracil_poziom)
	{
		ResetujPunkty(id);
		set_hudmessage(212, 255, 85, 0.31, 0.32, 0, 6.0, 5.0);
		ShowSyncHudMsg(id, SyncHudObj2,"Spadles do %i poziomu!", poziom_gracza[id]);
	}
	else if(zdobyl_poziom)
	{
		punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-madrosc_gracza[id]-obrazenia_gracza[id];
		set_hudmessage(212, 255, 85, 0.31, 0.32, 0, 6.0, 5.0);
		ShowSyncHudMsg(id, SyncHudObj2,"Awansowales do %i poziomu!", poziom_gracza[id]);
		client_cmd(id, "spk QTM_CodMod/levelup");
	}
 
 
	ZapiszDane(id);
        if(awansuje_do[klasa_gracza[id]])
        {
                if(poziom_gracza[id] >= awanse[ZnajdzAwans(klasa_gracza[id], awansuje_do[klasa_gracza[id]])][2])
                {
                        set_hudmessage(212, 255, 85, 0.31, 0.32, 0, 6.0, 5.0);
                        ShowSyncHudMsg(id, SyncHudObj2,"Osiagajac poziom %i, awansowales do klasy %s!", poziom_gracza[id], nazwy_klas[awansuje_do[klasa_gracza[id]]]);
                        nowa_klasa_gracza[id] = awansuje_do[klasa_gracza[id]];
                        UstawNowaKlase(id);
                        DajBronie(id);
                        ZastosujAtrybuty(id);
                        ZapiszDane(id);
                }
        }
}
 
public PokazInformacje(id)
{
	id -= ZADANIE_POKAZ_INFORMACJE;
 
	if(!is_user_connected(id))
	{
		remove_task(id+ZADANIE_POKAZ_INFORMACJE);
		return PLUGIN_CONTINUE;
	}
 
	if(!is_user_alive(id))
	{
		new target = pev(id, pev_iuser2);
 
		if(!target)
			return PLUGIN_CONTINUE;
 
		new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1)
		new Float:fProcent = 0.0;
		fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
 
		set_hudmessage(2, 194, 251, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
		ShowSyncHudMsg(id, SyncHudObj, "Kontakt z H@-gg: 25877622^nForum: PlayToKill.xaa.pl^nOdwiedz nasze Forum^nKlasa : %s^nDoswiadczenie : %0.1f%%^nPoziom : %i^nPerk : %s^nPunkty Premium %d, Vip : %s", nazwy_klas[klasa_gracza[target]], fProcent, poziom_gracza[target], nazwy_perkow[perk_gracza[target]], premium_points_get(id), premium_is_vip(id) ? "Tak" : "Nie");
		return PLUGIN_CONTINUE;
	}
 
	new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1)
	new Float:fProcent = 0.0;
	fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
 
	set_hudmessage(2, 194, 251, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
	ShowSyncHudMsg(id, SyncHudObj, "[Kontakt z H@-(gg): 25877622]^n[Forum: PlayToKill.xaa.pl]^n[Odwiedz nasze Forum]^n[Klasa : %s]^n[Doswiadczenie : %0.1f%%]^n[Poziom : %i]^n[Perk : %s]^n[Punkty Premium : %d]^n[Vip : %s]", nazwy_klas[klasa_gracza[id]], fProcent, poziom_gracza[id], nazwy_perkow[perk_gracza[id]], premium_points_get(id), premium_is_vip(id) ? "Tak" : "Nie");
 
	return PLUGIN_CONTINUE;
}  
 
public PokazReklame(id)
{
	id-=ZADANIE_POKAZ_REKLAME;
	client_print(id, print_chat, "[COD:MW] Witaj w Modyfikacji Call of Duty edytowanej przez LamPa");
	client_print(id, print_chat, "[COD:MW] W celu uzyskania informacji o komendach napisz /pomoc.");
}
 
public Pomoc(id)
	show_menu(id, 1023, "y/resetw - resetuje statystyki^ny/statystykiw - wyswietla statystyki^ny/klasaw - uruchamia menu wyboru klas^ny/wyrzucw - wyrzuca perk^ny/perkw - pokazuje opis twojego perku^ny/klasyw - pokazuje opisy klas^ny+usew - Uzycie umiejetnosci klasy^nyradio3w (standardowo C) lub  yuseperkw - Uzycie perku", -1, "Pomoc");
 
public UstawSzybkosc(id)
{
	id -= id>32? ZADANIE_USTAW_SZYBKOSC: 0;
 
	if(klasa_gracza[id] && !freezetime)
		set_pev(id, pev_maxspeed, szybkosc_gracza[id]);
}
 
public DotykBroni(weapon, id)
{
	if(get_pcvar_num(cvar_blokada_broni) < 1)
		return HAM_IGNORED;
 
	if(!is_user_connected(id))
		return HAM_IGNORED;
 
	new model[23];
	pev(weapon, pev_model, model, 22);
	if (pev(weapon, pev_owner) == id || containi(model, "w_backpack") != -1)
		return HAM_IGNORED;
	return HAM_SUPERCEDE;
}
 
public DotykTarczy(weapon, id)
{
	if(get_pcvar_num(cvar_blokada_broni) < 1)
		return HAM_IGNORED;
 
	if(!is_user_connected(id))
		return HAM_IGNORED;
 
	if(gracz_ma_tarcze[id])
		return HAM_IGNORED;
 
	return HAM_SUPERCEDE;
}
 
public UstawPerk(id, perk, wartosc, pokaz_info)
{
	if(!ilosc_perkow)
		return PLUGIN_CONTINUE;
 
	static obroty[33];
 
	if(obroty[id]++ >= 5)
	{
		UstawPerk(id, 0, 0, 0);
		obroty[id] = 0;
		return PLUGIN_CONTINUE;
	}
 
	perk = (perk == -1)? random_num(1, ilosc_perkow): perk;
	wartosc = (wartosc == -1 || min_wartosci_perkow[perk] > wartosc ||  wartosc > max_wartosci_perkow[perk])? random_num(min_wartosci_perkow[perk], max_wartosci_perkow[perk]): wartosc; 
 
	new ret;
 
	new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_disabled", FP_CELL, FP_CELL);
	ExecuteForward(forward_handle, ret, id, perk);
	DestroyForward(forward_handle);
 
	perk_gracza[id] = 0;
 
	forward_handle = CreateOneForward(pluginy_perkow[perk], "cod_perk_enabled", FP_CELL, FP_CELL, FP_CELL);
	ExecuteForward(forward_handle, ret, id, wartosc, perk);
	DestroyForward(forward_handle);
 
	if(ret == 4)
	{
		UstawPerk(id, -1, -1, 1);
		return PLUGIN_CONTINUE;
	}
 
	ExecuteForward(perk_zmieniony, ret, id, perk, wartosc);
 
	if(ret == 4)
	{
		UstawPerk(id, -1, -1, 1);
		return PLUGIN_CONTINUE;
	}
 
	perk_gracza[id] = perk;	
	wartosc_perku_gracza[id] = wartosc;
 
	obroty[id] = 0;
 
	if(pokaz_info && perk_gracza[id]) 
		client_print(id, print_chat, "[COD:MW] Zdobyles %s.", nazwy_perkow[perk_gracza[id]]);
 
	return PLUGIN_CONTINUE;
}
 
public UstawDoswiadczenie(id, wartosc)
{
	doswiadczenie_gracza[id] = wartosc;
	SprawdzPoziom(id);
}
 
public UstawKlase(id, klasa, zmien)
{
	nowa_klasa_gracza[id] = klasa;
	if(zmien)
	{
		UstawNowaKlase(id);
		DajBronie(id);
		ZastosujAtrybuty(id);
	}
}
 
public UstawTarcze(id, wartosc)
{
	if((gracz_ma_tarcze[id] = (wartosc > 0)))
		fm_give_item(id, "weapon_shield");
}
 
public UstawNoktowizor(id, wartosc)
{
	if((gracz_ma_noktowizor[id] = (wartosc > 0)))
		cs_set_user_nvg(id, 1);
}
 
public DajBron(id, bron)
{
	bonusowe_bronie_gracza[id] |= (1<<bron);
	new weaponname[22];
	get_weaponname(bron, weaponname, 21);
	return fm_give_item(id, weaponname);
}
 
public WezBron(id, bron)
{
	bonusowe_bronie_gracza[id] &= ~(1<<bron);
 
	if((1<<bron) & (bronie_dozwolone | bronie_klasy[get_user_team(id)] | bronie_klasy[klasa_gracza[id]])) 
		return;
 
	new weaponname[22];
	get_weaponname(bron, weaponname, 21);
	if(!((1<<bron) & (1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE | 1<<CSW_FLASHBANG)))
		engclient_cmd(id, "drop", weaponname);
}
 
public UstawBonusoweZdrowie(id, wartosc)
	bonusowe_zdrowie_gracza[id] = wartosc;
 
 
public UstawBonusowaInteligencje(id, wartosc)
	bonusowa_inteligencja_gracza[id] = wartosc;
 
 
public UstawBonusowaKondycje(id, wartosc)
	bonusowa_kondycja_gracza[id] = wartosc;
 
 
public UstawBonusowaWytrzymalosc(id, wartosc)
	bonusowa_wytrzymalosc_gracza[id] = wartosc;
 
public PrzydzielZdrowie(id, wartosc)
{
	new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
	wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-zdrowie_gracza[id]);
 
	punkty_gracza[id] -= wartosc;
	zdrowie_gracza[id] += wartosc;
}
 
public PrzydzielInteligencje(id, wartosc)
{
	new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
	wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-inteligencja_gracza[id]);
 
	punkty_gracza[id] -= wartosc;
	inteligencja_gracza[id] += wartosc;
}
 
public PrzydzielKondycje(id, wartosc)
{
	new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
	wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-kondycja_gracza[id]);
 
	punkty_gracza[id] -= wartosc;
	kondycja_gracza[id] += wartosc;
}
 
public PrzydzielWytrzymalosc(id, wartosc)
{
	new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
	wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-wytrzymalosc_gracza[id]);
 
	punkty_gracza[id] -= wartosc;
	wytrzymalosc_gracza[id] += wartosc;
}
 
public PobierzPerk(id, &wartosc)
{
	wartosc = wartosc_perku_gracza[id];
	return perk_gracza[id];
}
 
public PobierzIloscPerkow()
	return ilosc_perkow;
 
 
public PobierzNazwePerku(perk, Return[], len)
{
	if(perk <= ilosc_perkow)
	{
		param_convert(2);
		copy(Return, len, nazwy_perkow[perk]);
	}
}
 
public PobierzOpisPerku(perk, Return[], len)
{
	if(perk <= ilosc_perkow)
	{
		param_convert(2);
		copy(Return, len, opisy_perkow[perk]);
	}
}
 
public PobierzPerkPrzezNazwe(const nazwa[])
{
	param_convert(1);
	for(new i=1; i <= ilosc_perkow; i++)
		if(equal(nazwa, nazwy_perkow[i]))
			return i;
	return 0;
}
 
public PobierzDoswiadczeniePoziomu(poziom)
	return power(poziom, 2)*get_pcvar_num(cvar_proporcja_poziomu);
 
public PobierzDoswiadczenie(id)
	return doswiadczenie_gracza[id];
 
public PobierzPunkty(id)
	return punkty_gracza[id];
 
public PobierzPoziom(id)
	return poziom_gracza[id];
 
public PobierzZdrowie(id, zdrowie_zdobyte, zdrowie_klasy, zdrowie_bonusowe)
{
	new zdrowie;
 
	if(zdrowie_zdobyte)
		zdrowie += zdrowie_gracza[id];
	if(zdrowie_bonusowe)
		zdrowie += bonusowe_zdrowie_gracza[id];
	if(zdrowie_klasy)
		zdrowie += zdrowie_klas[klasa_gracza[id]];
 
	return zdrowie;
}
 
public PobierzInteligencje(id, inteligencja_zdobyta, inteligencja_klasy, inteligencja_bonusowa)
{
	new inteligencja;
 
	if(inteligencja_zdobyta)
		inteligencja += inteligencja_gracza[id];
	if(inteligencja_bonusowa)
		inteligencja += bonusowa_inteligencja_gracza[id];
	if(inteligencja_klasy)
		inteligencja += inteligencja_klas[klasa_gracza[id]];
 
	return inteligencja;
}
 
public PobierzKondycje(id, kondycja_zdobyta, kondycja_klasy, kondycja_bonusowa)
{
	new kondycja;
 
	if(kondycja_zdobyta)
		kondycja += kondycja_gracza[id];
	if(kondycja_bonusowa)
		kondycja += bonusowa_kondycja_gracza[id];
	if(kondycja_klasy)
		kondycja += kondycja_klas[klasa_gracza[id]];
 
	return kondycja;
}
 
public PobierzWytrzymalosc(id, wytrzymalosc_zdobyta, wytrzymalosc_klasy, wytrzymalosc_bonusowa)
{
	new wytrzymalosc;
 
	if(wytrzymalosc_zdobyta)
		wytrzymalosc += wytrzymalosc_gracza[id];
	if(wytrzymalosc_bonusowa)
		wytrzymalosc += bonusowa_wytrzymalosc_gracza[id];
	if(wytrzymalosc_klasy)
		wytrzymalosc += wytrzymalosc_klas[klasa_gracza[id]];
 
	return wytrzymalosc;
}
 
public PobierzKlase(id)
	return klasa_gracza[id];
 
public PobierzIloscKlas()
	return ilosc_klas;
 
public PobierzNazweKlasy(klasa, Return[], len)
{
	if(klasa <= ilosc_klas)
	{
		param_convert(2);
		copy(Return, len, nazwy_klas[klasa]);
	}
}
 
public PobierzOpisKlasy(klasa, Return[], len)
{
	if(klasa <= ilosc_klas)
	{
		param_convert(2);
		copy(Return, len, opisy_klas[klasa]);
	}
}
 
public PobierzKlasePrzezNazwe(const nazwa[])
{
	param_convert(1);
	for(new i=1; i <= ilosc_klas; i++)
		if(equal(nazwa, nazwy_klas[i]))
			return i;
	return 0;
}
 
public PobierzZdrowieKlasy(klasa)
{
	if(klasa <= ilosc_klas)
		return zdrowie_klas[klasa];
	return -1;
}
 
public PobierzInteligencjeKlasy(klasa)
{
	if(klasa <= ilosc_klas)
		return inteligencja_klas[klasa];
	return -1;
}
 
public PobierzKondycjeKlasy(klasa)
{
	if(klasa <= ilosc_klas)
		return kondycja_klas[klasa];
	return -1;
}
 
public PobierzWytrzymaloscKlasy(klasa)
{
	if(klasa <= ilosc_klas)
		return wytrzymalosc_klas[klasa];
	return -1;
}
 
public ZadajObrazenia(atakujacy, ofiara, Float:obrazenia, Float:czynnik_inteligencji, byt_uszkadzajacy, dodatkowe_flagi)
	ExecuteHam(Ham_TakeDamage, ofiara, byt_uszkadzajacy, atakujacy, obrazenia+PobierzInteligencje(atakujacy, 1, 1, 1)*czynnik_inteligencji, (1<<31) | dodatkowe_flagi);
 
public ZarejestrujPerk(plugin, params)
{
	if(params != 4)
		return PLUGIN_CONTINUE;
 
	if(++ilosc_perkow > MAX_ILOSC_PERKOW)
		return -1;
 
	pluginy_perkow[ilosc_perkow] = plugin;
	get_string(1, nazwy_perkow[ilosc_perkow], MAX_WIELKOSC_NAZWY);
	get_string(2, opisy_perkow[ilosc_perkow], MAX_WIELKOSC_OPISU);
	min_wartosci_perkow[ilosc_perkow] = get_param(3);
	max_wartosci_perkow[ilosc_perkow] = get_param(4);
 
	return ilosc_perkow;
}
 
public ZarejestrujKlase(plugin, params)
{
	if(params != 7)
		return PLUGIN_CONTINUE;
 
	if(++ilosc_klas > MAX_ILOSC_KLAS)
		return -1;
 
	pluginy_klas[ilosc_klas] = plugin;
 
	get_string(1, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
	get_string(2, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);
 
	bronie_klasy[ilosc_klas] = get_param(3);
	zdrowie_klas[ilosc_klas] = get_param(4);
	kondycja_klas[ilosc_klas] = get_param(5);
	inteligencja_klas[ilosc_klas] = get_param(6);
	wytrzymalosc_klas[ilosc_klas] = get_param(7);
 
	return ilosc_klas;
}
 
 
stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
{
	message_begin( MSG_ONE, MsgScreenfade,{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 fm_give_item(index, const item[]) {
	if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
		return 0;
 
	new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item));
	if (!pev_valid(ent))
		return 0;
 
	new Float:origin[3];
	pev(index, pev_origin, origin);
	set_pev(ent, pev_origin, origin);
	set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
	dllfunc(DLLFunc_Spawn, ent);
 
	new save = pev(ent, pev_solid);
	dllfunc(DLLFunc_Touch, ent, index);
	if (pev(ent, pev_solid) != save)
		return ent;
 
	engfunc(EngFunc_RemoveEntity, ent);
 
	return -1;
}
 
public BlokujKomende()
	return PLUGIN_HANDLED;
 
public ZarejestrujAwans(plugin, params)
{
	if(params != 9)
		return PLUGIN_CONTINUE;
 
	if(++ilosc_klas > MAX_ILOSC_KLAS)
		return -1;
 
	pluginy_klas[ilosc_klas] = plugin;
 
	new awans_z = get_param(1);
	awansuje_do[awans_z] = ilosc_klas;
	awansuje_z[ilosc_klas] = awans_z;
	ilosc_awansow++;
	awanse[ilosc_awansow][1] = ilosc_klas;
	awanse[ilosc_awansow][0] = awans_z;
	awanse[ilosc_awansow][2] = get_param(2);
	get_string(3, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
	get_string(4, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);
 
	bronie_klasy[ilosc_klas] = get_param(5);
	zdrowie_klas[ilosc_klas] = get_param(6);
	kondycja_klas[ilosc_klas] = get_param(7);
	inteligencja_klas[ilosc_klas] = get_param(8);
	wytrzymalosc_klas[ilosc_klas] = get_param(9);
 
	return ilosc_klas;
}
 
public ZnajdzAwans(Z, Do)
{
	new Return;
	for(new i=1; i<=ilosc_awansow; i++)
	{
		if(awanse[i][0] == Z && awanse[i][1] == Do)
		{
			Return = i;
			break;
		}
	}
	return Return;
}
 
public JestAwansem(klasa)
{
	new bool:jest;
	for(new i=1; i<=ilosc_awansow; i++)
	{
		if(awanse[i][1] == klasa)
		{
			jest = true;
			break;
		}
	}
	return jest;
}
stock ham_strip_weapon(id, weapon[])
{
if(!equal(weapon, "weapon_", 7) ) return 0
new wId = get_weaponid(weapon)
if(!wId) return 0
new wEnt
while( (wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname", weapon) ) && pev(wEnt, pev_owner) != id) {}
if(!wEnt) return 0
 
if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt)
 
if(!ExecuteHamB(Ham_RemovePlayerItem, id, wEnt)) return 0
ExecuteHamB(Ham_Item_Kill ,wEnt)
 
set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId) )
return 1
}
 
			Dodanych wklejek: 13379
Powered By (Pav32) Pastebin © 2011
				  
				
			

 Forum
 
Forum
 Użytkownicy
 
Użytkownicy
 Kalendarz
 
Kalendarz
 Dodatki SourceMod
 
Dodatki SourceMod



