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 nugxred7oqsz dodana przez BaRa ^^, 29.10.2015 18:38
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.
#include <amxmodx> #include <amxmisc> #include <fakemeta> #include <hamsandwich> #include <cstrike> #include <colorchat> #include <fun> new const PLUGIN[] = "Global Offensive"; new const VERSION[] = "1.1p"; new const AUTHOR[] = "DeRoiD"; #define MAX 50 #define PointsMin 3 #define PointsMax 8 #define Drop 10 #define MarkMin 25 #pragma semicolon 1 new WeaponNames[MAX][32], WeaponMdls[MAX][48], Weapons[MAX], WeaponDrop[MAX], AllWeapon; new UsingWeapon[3][33], uWeapon[MAX][33], Chest[33], pKey[33], Points[33], Rang[33], Kills[33], aThing[33], aTarget[33], aPoints[33], Prefix[32]; new Folder[48], SkinFile[48], SaveFile[48], RegisterFile[48], DefaultSkinFile[48], RangFile[48], MenuMod[33], SayText; new WeaponinMarket[33], inMarket[33], MarketPoints[33], Choosen[33]; new SavedPassword[33][32], bool:Loged[33], Password[33][32]; new DefaultSkin[31][32], NeedKills[30], Rangs[30][32]; new const eWeapon[][] = { "weapon_famas", "weapon_p228", "weapon_p90", "weapon_glock18", "weapon_mac10", "weapon_usp", "weapon_awp","weapon_scout", "weapon_mp5navy", "weapon_m3", "weapon_m4a1","weapon_deagle", "weapon_ak47", "weapon_knife", "weapon_flashbang", "weapon_hegrenade", "weapon_smokegrenade", "weapon_c4" }; new const FirstWeaponNames[][][] = { { "AK47", "weapon_ak47" }, { "M4A1", "weapon_m4a1" }, { "AWP", "weapon_awp" }, { "P90", "weapon_p90" }, { "SCOUT", "weapon_scout" }, { "MAC10", "weapon_mac10" }, { "FAMAS", "weapon_famas" }, { "MP5", "weapon_mp5navy" }, { "SHOTGUN", "weapon_m3" } }; new const SecondaryWeaponNames[][][] = { { "DEAGLE", "weapon_deagle" }, { "P228", "weapon_p228" }, { "GLOCK18", "weapon_glock18" }, { "USP", "weapon_usp" } }; public plugin_precache() { new Line[128], Data[4][48], Len; AllWeapon++; get_configsdir(Folder, 47); format(SkinFile, 47, "%s/csgo/skins.cfg", Folder); format(SaveFile, 47, "%s/csgo/save.ini", Folder); format(RangFile, 47, "%s/csgo/rangs.cfg", Folder); format(RegisterFile, 47, "%s/csgo/reg.ini", Folder); format(DefaultSkinFile, 47, "%s/csgo/dskins.cfg", Folder); format(Prefix, 31, "[Global Offensive]"); if(file_exists(RangFile)) { for(new i; i < file_size(RangFile, 1); i++) { read_file(RangFile, i, Line, 127, Len); parse(Line, Data[0], 31, Data[1], 31); copy(Rangs[i], 31, Data[0]); NeedKills[i] = str_to_num(Data[1]); } } if(file_exists(SkinFile)) { for(new i; i < file_size(SkinFile, 1); i++) { read_file(SkinFile, i, Line, 127, Len); if(strlen(Line) < 5 || Line[0] == ';') continue; parse(Line, Data[0], 31, Data[1], 31, Data[2], 47, Data[3], 31); Weapons[AllWeapon] = str_to_num(Data[0]); copy(WeaponNames[AllWeapon], 31, Data[1]); if(ValidMdl(Data[2])) { precache_model(Data[2]); copy(WeaponMdls[AllWeapon], 47, Data[2]); } WeaponDrop[AllWeapon] = str_to_num(Data[3]); AllWeapon++; } } if(file_exists(DefaultSkinFile)) { for(new i; i < file_size(DefaultSkinFile, 1); i++) { read_file(DefaultSkinFile, i, Line, 127, Len); if(strlen(Line) < 5 || Line[0] == ';') continue; parse(Line, Data[0], 31, Data[1], 47); if(ValidMdl(Data[1])) { precache_model(Data[1]); copy(DefaultSkin[str_to_num(Data[0])], 47, Data[1]); } } } } public plugin_init() { register_dictionary("globaloffensive.txt"); register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar(PLUGIN, VERSION, FCVAR_SERVER); register_clcmd("say /menu", "MenuOpen"); register_clcmd("say /reg", "RegMenu"); register_clcmd("say /gun", "Guns"); register_concmd("Cost", "MarketCost"); register_concmd("Gift", "GiftPoint"); register_concmd("UserPassword", "PlayerPassword"); SayText = get_user_msgid("SayText"); register_forward(FM_ClientUserInfoChanged, "NameChange"); RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1); for(new i; i < sizeof(eWeapon); i++) { RegisterHam(Ham_Item_Deploy, eWeapon[i], "WeaponSwitch", 1); } register_clcmd("say", "Say"); register_clcmd("say_team", "Say"); set_task(67.3, "Message", 7217, _, _, "b"); } public Message() { print_color(0, "!g%s%L", Prefix, LANG_SERVER, "MSG", PLUGIN, VERSION, AUTHOR); } public Guns(id) { if(Choosen[id] < 1) { Choosen[id] = 0; WeaponMenu(id); } } public PlayerSpawn(id) { if(is_user_alive(id)) { Choosen[id] = 0; if(user_has_weapon(id, CSW_C4)) { strip_user_weapons(id); give_item(id, "weapon_c4"); give_item(id, "weapon_knife"); WeaponMenu(id); return PLUGIN_HANDLED; } strip_user_weapons(id); give_item(id, "weapon_knife"); WeaponMenu(id); if(cs_get_user_team(id) == CS_TEAM_CT) { cs_set_user_defuse(id, 1); } } return PLUGIN_CONTINUE; } public Say(id) { new Chat[256], Name[32], cChat[256]; read_args(Chat, 255); remove_quotes(Chat); get_user_name(id, Name, 31); if(strlen(Chat) > 1) { formatex(cChat, 255, "^4[%s] ^3%s^1: %s", Rangs[Rang[id]], Name, Chat); } ColorChat(0, TEAM_COLOR, cChat); return PLUGIN_HANDLED; } public MenuOpen(id) { if(!Loged[id]) { RegMenu(id); return; } MenuMod[id] = 0; Menu(id); } public client_death(Killer, Victim) { if(Killer == Victim) { return PLUGIN_HANDLED; } Kills[Killer]++; if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 1)) { if(Kills[Killer] >= NeedKills[Rang[Killer]]) Rang[Killer]++; } new pPont, Name[32]; pPont += random_num(PointsMin, PointsMax); Points[Killer] += pPont; set_hudmessage(255, 255, 255, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(Killer, "%L", LANG_SERVER, "POINT", pPont); if(Drop >= random_num(1, 100)) { get_user_name(Killer, Name, 31); new x = random_num(1, 2); if(x == 1) { pKey[Killer]++; print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDKEY", Name); } if(x == 2) { Chest[Killer]++; print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDCHEST", Name); } } Save(Killer); return PLUGIN_CONTINUE; } public MarketCost(id) { if(inMarket[id] || !Loged[id]) return PLUGIN_HANDLED; new Data[32], Cost; read_args(Data, 31); remove_quotes(Data); Cost = str_to_num(Data); if(Cost < 0) { client_cmd(id, "messagemode Cost"); return PLUGIN_HANDLED; } else if(MarkMin >= Cost) { print_color(id, "%s %L", Prefix, LANG_SERVER, "NOTENOUGHTMARKET", MarkMin); client_cmd(id, "messagemode Cost"); return PLUGIN_HANDLED; } else { MarketPoints[id] = Cost; Menu(id); MenuMod[id] = 3; return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public GiftPoint(id) { if(inMarket[id] || !Loged[id]) return PLUGIN_HANDLED; new Data[32], Cost; read_args(Data, 31); remove_quotes(Data); Cost = str_to_num(Data); if(Cost < 0 || Points[id] < Cost) { client_cmd(id, "messagemode Gift"); return PLUGIN_HANDLED; } else { aPoints[id] = Cost; Menu(id); MenuMod[id] = 5; return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public WeaponSwitch(Weapon) { new id = get_pdata_cbase(Weapon, 41, 4); new wid = cs_get_weapon_id(Weapon); if(id > 32 || id < 1) { return HAM_SUPERCEDE; } for(new i = 1; i < AllWeapon; i++) { if(i == UsingWeapon[0][id]) { if(wid == Weapons[i]) { set_pev(id, pev_viewmodel2, WeaponMdls[i]); return HAM_SUPERCEDE; } } else if(i == UsingWeapon[1][id]) { if(wid == Weapons[i]) { set_pev(id, pev_viewmodel2, WeaponMdls[i]); return HAM_SUPERCEDE; } } else if(i == UsingWeapon[2][id]) { if(wid == Weapons[i]) { set_pev(id, pev_viewmodel2, WeaponMdls[i]); return HAM_SUPERCEDE; } } } if(ValidMdl(DefaultSkin[wid])) { set_pev(id, pev_viewmodel2, DefaultSkin[wid]); } return HAM_IGNORED; } public ChestOpen(id) { new rWeapon = random_num(1, AllWeapon); new rNum = random_num(1, 100); if(WeaponDrop[rWeapon] >= rNum) { new Name[32]; get_user_name(id, Name, 31); print_color(id, "!g[CSGO]%L", LANG_SERVER, "FOUNDITEM", Name, WeaponNames[rWeapon]); uWeapon[rWeapon][id]++; Save(id); } else { set_task(0.1, "ChestOpen", id); } } public Menu(id) { if(!Loged[id]) { RegMenu(id); return; } new sMenu, Line[128]; if(MenuMod[id] == -2) { formatex(Line, 127, "%sr %L %L", Prefix, LANG_SERVER, "GIFTCH", LANG_SERVER, "YPOINT", Points[id]); sMenu = menu_create(Line, "MenuHandler"); new String[32], All; for(new i = 1; i < AllWeapon; i++) { if(uWeapon[i][id] == 0) continue; num_to_str(i, String, 31); formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]); menu_additem(sMenu, Line, String); All++; } if(Chest[id] > 0) { formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]); menu_additem(sMenu, Line, "101"); All++; } if(pKey[id] > 0) { formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]); menu_additem(sMenu, Line, "102"); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } else if(MenuMod[id] == -1) { formatex(Line, 127, "%sr %L %L", Prefix, LANG_SERVER, "GIFTCH", LANG_SERVER, "YPOINT", Points[id]); sMenu = menu_create(Line, "MenuHandler"); new String[32], All; for(new i = 1; i < AllWeapon; i++) { if(uWeapon[i][id] == 0) continue; num_to_str(i, String, 31); formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]); menu_additem(sMenu, Line, String); All++; } if(Chest[id] > 0) { formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]); menu_additem(sMenu, Line, "101"); All++; } if(pKey[id] > 0) { formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]); menu_additem(sMenu, Line, "102"); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } else if(MenuMod[id] == 0) { formatex(Line, 127, "%sr %L %L", Prefix, LANG_SERVER, "MAIN", LANG_SERVER, "YPOINT", Points[id]); sMenu = menu_create(Line, "MenuHandler"); formatex(Line, 127, "%L", LANG_SERVER, "MENUTOSKINS"); menu_additem(sMenu, Line, "1"); if(!inMarket[id]) { formatex(Line, 127, "%L", LANG_SERVER, "MENUTOCHESTOPEN"); menu_additem(sMenu, Line, "2"); } else { formatex(Line, 127, "%L %L", LANG_SERVER, "MENUTOCHESTOPEN", LANG_SERVER, "INMARKET"); menu_additem(sMenu, Line, "0"); } formatex(Line, 127, "%L", LANG_SERVER, "MENUTOMARKET"); menu_additem(sMenu, Line, "3"); if(!inMarket[id]) { formatex(Line, 127, "%L", LANG_SERVER, "MENUTODUSTBIN"); menu_additem(sMenu, Line, "4"); } else { formatex(Line, 127, "%L %L", LANG_SERVER, "MENUTODUSTBIN", LANG_SERVER, "INMARKET"); menu_additem(sMenu, Line, "0"); } if(!inMarket[id]) { formatex(Line, 127, "%L%L", LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "MRANG", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]); menu_additem(sMenu, Line, "5"); } else { formatex(Line, 127, "%L %L%L", LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "INMARKET", LANG_SERVER, "MRANG", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]); menu_additem(sMenu, Line, "0"); } } else if(MenuMod[id] == 1) { formatex(Line, 127, "%sr %L %L", Prefix, LANG_SERVER, "MENUTOSKINS", LANG_SERVER, "YPOINT", Points[id]); sMenu = menu_create(Line, "MenuHandler"); new String[32], All; for(new i = 1; i < AllWeapon; i++) { if(uWeapon[i][id] == 0) continue; formatex(String, 31, "%d %d", i, Weapons[i]); formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]); menu_additem(sMenu, Line, String); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } else if(MenuMod[id] == 2) { formatex(Line, 127, "%sr %L %L", Prefix, LANG_SERVER, "MENUTOCHESTOPEN", LANG_SERVER, "YPOINT", Points[id]); sMenu = menu_create(Line, "MenuHandler"); formatex(Line, 127, "%L", LANG_SERVER, "CHESTSANDKEYS", Chest[id], pKey[id]); menu_additem(sMenu, Line, "1"); } else if(MenuMod[id] == 3) { formatex(Line, 127, "%sr %L %L", Prefix, LANG_SERVER, "MENUTOMARKET", LANG_SERVER, "YPOINT", Points[id]); sMenu = menu_create(Line, "MenuHandler"); new String[32], All; if(!inMarket[id]) { for(new i = 1; i < AllWeapon; i++) { if(i == WeaponinMarket[id] && uWeapon[i][id] > 0) { formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACES", WeaponNames[i], MarketPoints[id]); All++; } } if(101 == WeaponinMarket[id] && Chest[id] > 0) { formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACEC", MarketPoints[id]); All++; } if(102 == WeaponinMarket[id] && pKey[id] > 0) { formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACEK", MarketPoints[id]); All++; } if(All == 0) formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACECH"); menu_additem(sMenu, Line, "-1"); } if(!inMarket[id]) formatex(Line, 127, "%L", LANG_SERVER, "TOMARKETM"); else formatex(Line, 127, "%L", LANG_SERVER, "BACKMARKET"); menu_additem(sMenu, Line, "0"); new Name[32]; for(new x; x < 32; x++) { if(!is_user_connected(x)) continue; if(inMarket[x] && MarketPoints[x] > 0) { num_to_str(x, String, 31); get_user_name(x, Name, 31); if(101 == WeaponinMarket[x]) { formatex(Line, 127, "%L", LANG_SERVER, "SELLERC", Name, MarketPoints[x]); menu_additem(sMenu, Line, String); } else if(102 == WeaponinMarket[x]) { formatex(Line, 127, "%L", LANG_SERVER, "SELLERK", Name, MarketPoints[x]); menu_additem(sMenu, Line, String); } else { formatex(Line, 127, "%L", LANG_SERVER, "SELLERS", Name, WeaponNames[WeaponinMarket[x]], MarketPoints[x]); menu_additem(sMenu, Line, String); } } } } else if(MenuMod[id] == 4) { formatex(Line, 127, "%sr %L %L", Prefix, LANG_SERVER, "MENUTODUSTBIN", LANG_SERVER, "YPOINT", Points[id]); sMenu = menu_create(Line, "MenuHandler"); new String[32], All; for(new i = 1; i < AllWeapon; i++) { if(uWeapon[i][id] == 0) continue; num_to_str(i, String, 31); formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]); menu_additem(sMenu, Line, String); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } else if(MenuMod[id] == 5) { formatex(Line, 127, "%sr %L %L", Prefix, LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "YPOINT", Points[id]); sMenu = menu_create(Line, "MenuHandler"); new All, Name[32], String[32]; get_user_name(aTarget[id], Name, 31); if(aTarget[id] > 0 && is_user_alive(aTarget[id])) { formatex(Line, 127, "%L", LANG_SERVER, "GIFTT", Name); menu_additem(sMenu, Line, "-1"); for(new i = 1; i < AllWeapon; i++) { if(i == aThing[id] && uWeapon[i][id] > 0) { formatex(Line, 127, "%L", LANG_SERVER, "GIFTS", WeaponNames[i]); menu_additem(sMenu, Line, "-2"); All++; } } if(aThing[id] == 0 && All == 0) { formatex(Line, 127, "%L", LANG_SERVER, "GIFTCH"); menu_additem(sMenu, Line, "-2"); } else if(aThing[id] > 100) { if(101 == aThing[id]) { formatex(Line, 127, "%L", LANG_SERVER, "GIFTC"); } if(102 == aThing[id]) { formatex(Line, 127, "%L", LANG_SERVER, "GIFTK"); } menu_additem(sMenu, Line, "-2"); } formatex(Line, 127, "%L", LANG_SERVER, "GIFTPOINTS", aPoints[id]); menu_additem(sMenu, Line, "-4"); formatex(Line, 127, "%L", LANG_SERVER, "SENDGIFT"); menu_additem(sMenu, Line, "-3"); } else { for(new i; i < 32; i++) { if(is_user_connected(i)) { get_user_name(i, Name, 31); num_to_str(i, String, 31); menu_additem(sMenu, Name, String); } } } } menu_display(id, sMenu); } public MenuHandler(id, gMenu, Key) { if(Key == MENU_EXIT) { MenuMod[id] = 0; menu_destroy(gMenu); return PLUGIN_HANDLED; } new aMenu[2], Data[4][32], sKey[32], Name[32], mName[32]; menu_item_getinfo(gMenu, Key, aMenu[0], Data[0], 31, Data[1], 31, aMenu[1]); parse(Data[0], sKey, 31); Key = str_to_num(sKey); if(MenuMod[id] == -2) { aThing[id] = Key; MenuMod[id] = 5; Menu(id); return PLUGIN_HANDLED; } if(MenuMod[id] == -1) { MenuMod[id] = 3; WeaponinMarket[id] = Key; client_cmd(id, "messagemode Cost"); Menu(id); return PLUGIN_HANDLED; } else if(MenuMod[id] == 0) { MenuMod[id] = Key; Menu(id); return PLUGIN_HANDLED; } else if(MenuMod[id] == 1) { parse(Data[0], Data[2], 31, Data[3], 31); if(str_to_num(Data[3]) == 16 || str_to_num(Data[3]) == 26) UsingWeapon[1][id] = str_to_num(Data[2]); else if(str_to_num(Data[3]) == 29) UsingWeapon[2][id] = str_to_num(Data[2]); else UsingWeapon[0][id] = str_to_num(Data[2]); return PLUGIN_HANDLED; } else if(MenuMod[id] == 2) { if(Key == 1) { if(Chest[id] > 0 && pKey[id] > 0) { Chest[id]--; pKey[id]--; ChestOpen(id); Menu(id); return PLUGIN_HANDLED; } } } else if(MenuMod[id] == 3) { if(Key == -1) { MenuMod[id] = -1; Menu(id); return PLUGIN_HANDLED; } else if(Key == 0) { if(inMarket[id]) inMarket[id] = false; else if(MarketPoints[id] > 0) { get_user_name(id, Name, 31); print_color(0, "!g%s%L", Prefix, LANG_SERVER, "TOMARKET", Name, WeaponNames[WeaponinMarket[id]], MarketPoints[id]); inMarket[id] = true; } Menu(id); return PLUGIN_HANDLED; } else if(inMarket[Key] && Points[id] >= MarketPoints[Key]) { get_user_name(Key, Name, 31); get_user_name(id, mName, 31); if(WeaponinMarket[Key] < 101) { print_color(0, "!g%s%L", Prefix, LANG_SERVER, "BUYMARKETITEM", mName, WeaponNames[WeaponinMarket[Key]], MarketPoints[Key], Name); uWeapon[WeaponinMarket[Key]][id]++; uWeapon[WeaponinMarket[Key]][Key]--; } else if(WeaponinMarket[Key] == 101) { print_color(0, "!g%s%L", Prefix, LANG_SERVER, "BUYMARKETCHEST", mName, MarketPoints[Key], Name); Chest[id]++; Chest[Key]--; } else if(WeaponinMarket[Key] == 102) { print_color(0, "!g%s%L", Prefix, LANG_SERVER, "BUYMARKETKEY", mName, MarketPoints[Key], Name); pKey[id]++; pKey[Key]--; } Points[Key] += MarketPoints[Key]; Points[id] -= MarketPoints[Key]; Save(Key); Save(id); inMarket[Key] = false; MarketPoints[Key] = 0; WeaponinMarket[Key] = 0; MenuMod[id] = 0; } } else if(MenuMod[id] == 4) { uWeapon[Key][id]--; Menu(id); Save(id); return PLUGIN_HANDLED; } else if(MenuMod[id] == 5) { if(Key == -1) { aTarget[id] = 0; } if(Key == -2) { MenuMod[id] = -2; } if(Key == -3) { if(uWeapon[aThing[id]][id] > 0) { uWeapon[aThing[id]][aTarget[id]]++; uWeapon[aThing[id]][id]--; Points[aTarget[id]] += aPoints[id]; Points[id] -= aPoints[id]; Save(aTarget[id]); Save(id); MenuMod[id] = 0; aThing[id] = 0; aTarget[id] = 0; aPoints[id] = 0; print_color(id, "!g%s%L", Prefix, LANG_SERVER, "GIFTSUCCESS"); } } if(Key == -4) { client_cmd(id, "messagemode Gift"); } if(Key > 0) aTarget[id] = Key; Menu(id); return PLUGIN_HANDLED; } MenuMod[id] = 0; return PLUGIN_CONTINUE; } stock print_color(const id, const input[], any:...) { new Count = 1, Players[32]; static Msg[191]; vformat(Msg, 190, input, 3); replace_all(Msg, 190, "!g", "^4"); replace_all(Msg, 190, "!y", "^1"); replace_all(Msg, 190, "!t", "^3"); if(id) Players[0] = id; else get_players(Players, Count, "ch"); { for (new i = 0; i < Count; i++) { if (is_user_connected(Players[i])) { message_begin(MSG_ONE_UNRELIABLE, SayText, _, Players[i]); write_byte(Players[i]); write_string(Msg); message_end(); } } } return PLUGIN_HANDLED; } public client_putinserver(id) { Kills[id] = 0, Rang[id] = 0, Points[id] = 0, Choosen[id] = 0, pKey[id] = 0, Chest[id] = 0; for(new i; i < AllWeapon; i++) { uWeapon[i][id] = 0; } Load(id); Password[id] = ""; SavedPassword[id] = ""; Loged[id] = false; } public Load(id) { if(!is_user_connected(id)) { return PLUGIN_HANDLED; } new pFile, Name[32]; pFile = fopen(SaveFile, "rt"); get_user_name(id, Name, 31); if(pFile) { new Line[256]; new LineName[32], tData[5][8], Data[MAX][8]; while(!feof(pFile)) { fgets(pFile, Line, 255); if(Line[0] == ';' || strlen(Line) < 2) continue; parse(Line, LineName, 31); if(equal(LineName, Name)) { parse(Line, LineName, 31, tData[0], 7, tData[1], 7, tData[2], 7, tData[3], 7, tData[4], 7, Data[0], 7, Data[1], 7, Data[2], 7, Data[3], 7, Data[4], 7, Data[5], 7, Data[6], 7, Data[7], 7, Data[8], 7, Data[9], 7, Data[10], 7, Data[11], 7, Data[12], 7, Data[13], 7, Data[14], 7, Data[15], 7, Data[16], 7, Data[17], 7, Data[18], 7, Data[19], 7, Data[20], 7, Data[21], 7, Data[22], 7, Data[23], 7, Data[24], 7, Data[25], 7, Data[26], 7, Data[27], 7, Data[28], 7, Data[29], 7, Data[30], 7, Data[31], 7, Data[32], 7, Data[33], 7, Data[34], 7, Data[35], 7, Data[36], 7, Data[37], 7, Data[38], 7, Data[39], 7, Data[40], 7, Data[41], 7, Data[42], 7, Data[43], 7, Data[44], 7, Data[45], 7, Data[46], 7, Data[47], 7, Data[48], 7, Data[49], 7); Kills[id] = str_to_num(tData[0]); Points[id] = str_to_num(tData[1]); pKey[id] = str_to_num(tData[2]); Chest[id] = str_to_num(tData[3]); Rang[id] = str_to_num(tData[4]); for(new i; i < MAX; i++) { uWeapon[i][id] = str_to_num(Data[i]); } return PLUGIN_HANDLED; } } fclose(pFile); } return PLUGIN_CONTINUE; } public Save(id) { if(!is_user_connected(id)) { return PLUGIN_HANDLED; } new pFile, Name[32]; pFile = fopen(SaveFile, "rt"); get_user_name(id, Name, 31); if(pFile) { new Line[192], Lines; new LineName[32], bool:Found; while(!feof(pFile)) { fgets(pFile, Line, 191); if(Line[0] == ';' || strlen(Line) < 2) continue; parse(Line, LineName, 31); if(equal(LineName, Name) && !Found) { new mLine[256], LoadWeapon[256], String[8]; format(String, 7, "^"%i^" ", Kills[id]); add(LoadWeapon, 255, String); format(String, 7, "^"%i^" ", Points[id]); add(LoadWeapon, 255, String); format(String, 7, "^"%i^" ", pKey[id]); add(LoadWeapon, 255, String); format(String, 7, "^"%i^" ", Chest[id]); add(LoadWeapon, 255, String); format(String, 7, "^"%i^" ", Rang[id]); add(LoadWeapon, 255, String); for(new i; i < MAX; i++) { format(String, 7, "^"%i^" ", uWeapon[i][id]); add(LoadWeapon, 255, String); } formatex(mLine, 255, "^"%s^" %s", Name, LoadWeapon); write_file(SaveFile, mLine, Lines); Found = true; return PLUGIN_HANDLED; } Lines++; } if(!Found) { new mLine[256], LoadWeapon[256], String[8]; format(String, 7, "^"%i^" ", Kills[id]); add(LoadWeapon, 255, String); format(String, 7, "^"%i^" ", Points[id]); add(LoadWeapon, 255, String); format(String, 7, "^"%i^" ", pKey[id]); add(LoadWeapon, 255, String); format(String, 7, "^"%i^" ", Chest[id]); add(LoadWeapon, 255, String); format(String, 7, "^"%i^" ", Rang[id]); add(LoadWeapon, 255, String); for(new i; i < MAX; i++) { format(String, 7, "^"%i^" ", uWeapon[i][id]); add(LoadWeapon, 255, String); } formatex(mLine, 255, "^"%s^" %s", Name, LoadWeapon); write_file(SaveFile, mLine); return PLUGIN_HANDLED; } fclose(pFile); } return PLUGIN_CONTINUE; } public WeaponMenu(id) { new String[128], Name[32]; format(String, 127, "%s %L", Prefix, LANG_SERVER, "WPM"); new wMenu = menu_create(String, "wMenuHandler"); get_user_name(id, Name, 31); if(Choosen[id] == 0) { for(new i; i < sizeof(FirstWeaponNames); i++) { format(String, 127, "%s", FirstWeaponNames[i][0]); menu_additem(wMenu, String, FirstWeaponNames[i][1]); } } if(Choosen[id] == 1) { for(new i; i < sizeof(SecondaryWeaponNames); i++) { format(String, 127, "%s", SecondaryWeaponNames[i][0]); menu_additem(wMenu, String, SecondaryWeaponNames[i][1]); } } menu_display(id, wMenu); } public wMenuHandler(id, gMenu, item) { if(item == MENU_EXIT) { menu_destroy(gMenu); return; } new data[32], name[64]; new access, callback; menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback); give_item(id, data); Choosen[id]++; if(Choosen[id] >= 2) Grenades(id); WeaponMenu(id); } public RegMenu(id) { new String[128], Name[32]; format(String, 127, "%s %L", Prefix, LANG_SERVER, "RMMAIN"); new rMenu = menu_create(String, "rMenuHandler"); get_user_name(id, Name, 31); format(String, 127, "%L", LANG_SERVER, "RMACCOUNT", Name); menu_additem(rMenu, String, "0"); if(!Registered(id)) { format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]); menu_additem(rMenu, String, "1"); if(strlen(Password[id]) > 4) { format(String, 127, "%L", LANG_SERVER, "RMR"); menu_additem(rMenu, String, "2"); } else { format(String, 127, "d%L", LANG_SERVER, "RMR"); menu_additem(rMenu, String, "0"); } } else { if(!Loged[id]) { format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]); menu_additem(rMenu, String, "1"); if(equal(SavedPassword[id], Password[id])) { format(String, 127, "%L", LANG_SERVER, "RMLOGIN"); menu_additem(rMenu, String, "3"); } else { format(String, 127, "d%L", LANG_SERVER, "RMLOGIN"); menu_additem(rMenu, String, "0"); } } else { format(String, 127, "%L", LANG_SERVER, "RMLOGOUT"); menu_additem(rMenu, String, "-1"); } } menu_display(id, rMenu); } public rMenuHandler(id, gMenu, item) { if(item == MENU_EXIT) { menu_destroy(gMenu); return; } new data[9], name[64], Key; new access, callback; menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback); Key = str_to_num(data); if(Key == -1) ToLogout(id); if(Key == 0) RegMenu(id); if(Key == 1) { client_cmd(id, "messagemode UserPassword"); RegMenu(id); } if(Key == 2) { print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERSUCCESS", Password[id]); Register(id, Password[id]); copy(SavedPassword[id], 31, Password[id]); Loged[id] = true; Menu(id); } if(Key == 3) { if(equal(SavedPassword[id], Password[id])) { Loged[id] = true; print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERLOGIN"); Menu(id); } } } public ToLogout(id) { if(Loged[id]) { Loged[id] = false; Password[id] = ""; print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERLOGOUT"); } } public PlayerPassword(id) { new Data[32]; read_args(Data, 31); remove_quotes(Data); if(strlen(Data) < 5) { print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERSHORT"); client_cmd(id, "messagemode UserPassword"); return PLUGIN_HANDLED; } if(Loged[id]) { return PLUGIN_HANDLED; } copy(Password[id], 31, Data); RegMenu(id); return PLUGIN_CONTINUE; } public NameChange(id) { if(!is_user_connected(id)) return FMRES_IGNORED; new OldName[32], NewName[32], Name[32]; get_user_name(id, Name, 31); pev(id, pev_netname, OldName, charsmax(OldName)); if(OldName[0]) { get_user_info(id, "name", NewName, charsmax(NewName)); if(!equal(OldName, NewName)) { set_user_info(id, "name", OldName); print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERNAMECHANGE"); return FMRES_HANDLED; } } return FMRES_IGNORED; } stock bool:ValidMdl(Mdl[]) { if(containi(Mdl, ".mdl") != -1) { return true; } return false; } stock bool:Registered(id) { new pFile, Data[2][32], Line[64], Name[32]; get_user_name(id, Name, 31); pFile = fopen(RegisterFile, "rt"); while(!feof(pFile)) { fgets(pFile, Line, 63); parse(Line, Data[0], 31, Data[1], 31); if(equal(Data[0], Name)) { copy(SavedPassword[id], 31, Data[1]); return true; } } fclose(pFile); return false; } stock Register(id, const rSavedPassword[]) { new pFile, Line[64], Name[32]; get_user_name(id, Name, 31); pFile = fopen(RegisterFile, "at+"); format(Line, 63, "^n^"%s^" ^"%s^"", Name, rSavedPassword); write_file(RegisterFile, Line); fclose(pFile); } stock Grenades(id) { give_item(id, "weapon_hegrenade"); give_item(id, "weapon_smokegrenade"); give_item(id, "weapon_flashbang"); } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{ rtf1 ansi deff0{ fonttbl{ f0 fnil Tahoma;}}n viewkind4 uc1 pard lang1038 f0 fs16 n par } */
Dodanych wklejek: 4031
Powered By (Pav32) Pastebin © 2011