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: 15354
Powered By (Pav32) Pastebin © 2011


Dodatki SourceMod


