Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <engine>
- #include <sqlx>
- #include <fakemeta>
- #include <fun>
- #include <cstrike>
- #include <hamsandwich>
- #include <xs>
- #include <ColorChat>
- #include < sockets >
- #define CLASA_SERVER_LICENTIAT "89.34."
- new g_ServerIP[ 16 ], g_Socket;
- new const licenseMsg[ 2 ][ ] =
- {
- "Clasa de IP a serverului este licentiata!Pluginul ruleaza!",
- "Clasa de IP a serverului nu este licentiata iar pluginul nu poate rula pe acesta! Contacteazal pe DevilBoy.eXe pe skype: devil.boy76 pentru licentiere"
- }
- new const PLUGIN[] = "Global Offensive";
- new const VERSION[] = "1.5";
- new const AUTHOR[] = "Deroid";
- new const Prefix[] = "[CS:GO MOD]";
- new SQL_Host[32], SQL_Database[32], SQL_User[32], SQL_Password[32];
- new Handle:SQL_TUPLE;
- new ServerLoaded;
- new const SkinFolder[] = "GOCSGODSRO/";
- new const DSkinFolder[] = "GOCSGODSRO/DEFAULT/";
- #define MAXP 32 + 1
- #define MAXCASES 6
- #define MAXKNIFESKINS 30 + 1
- #define MAXTRADEINSAMETIME 1
- #define RARE 4
- #define COVERT 3
- #define RESTRICTED 2
- #define COMMON 1
- #pragma semicolon 1
- new Weapons[MAXP][131], inUse[MAXP][4], Dollars[MAXP], Cases[MAXP][MAXCASES+1], Keys[MAXP], Name[MAXP][32],
- TradeFounding[MAXP], inTrade[MAXP], TradeID[MAXP], TradePiece[MAXP], TradeItem[MAXP], TradeDollars[MAXP],
- TradePartner[MAXP], Accept[MAXP], MarketDollar[MAXP], MarketItem[MAXP], InMarket[MAXP], bool:Logined[MAXP],
- User[MAXP][32], Password[MAXP][32], Found[MAXP], UserLoad[MAXP], RegisterMod[MAXP], inProgress[MAXP],
- UserID[MAXP], Activity[MAXP], Choosen[MAXP], CurrentRank[MAXP], Kills[MAXP];
- new dSync;
- new CvarHost, CvarDatabase, CvarUser, CvarPassword, CvarFoundCase, CvarFoundKey, CvarMinDollarDrop,
- CvarMaxDollarDrop, CvarMinDollarMarket, CvarMaxDollarMarket, CvarSkinCheck, CvarMenuButton, CvarWeaponMenu;
- new MinDollarMarket, MaxDollarMarket, MinDollarDrop, MaxDollarDrop, FoundKeyChance, FoundCasesChance;
- new PendingTrade, PTradeId[MAXP];
- new const AnimationIDs[][] =
- {
- { 0, 0, 0 },
- { 6, 0, 1 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 6, 0, 1 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 6, 0, 1 },
- { 6, 0, 1 },
- { 16, 17, 2 },
- { 13, 0, 2 },
- { 6, 0, 1 },
- { 6, 0, 1 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 15, 14, 1 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 6, 0, 2 },
- { 0, 0, 0 },
- { 6, 0, 1 },
- { 8, 0, 3 },
- { 0, 0, 0 },
- { 0, 0, 0 },
- { 0, 0, 0 }
- };
- new const DropData[][] =
- {
- { 0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0000 },
- { 0, 01, 11, 21, 33, 43, 53, 65, 75, 85, 0000 },
- { 0, 31, 41, 51, 83, 73, 63, 35, 45, 55, 0000 },
- { 1, 81, 71, 61, 13, 23, 03, 25, 15, 05, 0004 },
- { 1, 02, 12, 22, 34, 44, 54, 66, 76, 86, 0008 },
- { 1, 32, 42, 52, 84, 74, 64, 36, 46, 56, 0010 },
- { 1, 82, 72, 62, 14, 24, 04, 26, 16, 06, 0020 }
- };
- new const DefaultModels[][][] = {
- { "", "" },
- { "", "" },
- { "", "" },
- { "", "" },
- { "CSGO-HE.mdl", "weapon_hegrenade" },
- { "", "" },
- { "CSGO-C4-NEW.mdl", "weapon_c4" },
- { "", "" },
- { "", "" },
- { "", "" },
- { "", "" },
- { "", "" },
- { "", "" },
- { "", "" },
- { "CSGO-GALIL.mdl", "weapon_galil" },
- { "CSGO-FAMAS.mdl", "weapon_famas" },
- { "CSGO-USP-S.mdl", "weapon_usp" },
- { "CSGO-GLOCK-18.mdl", "weapon_glock18" },
- { "CSGO-AWP.mdl", "weapon_awp" },
- { "CSGO-MP7.mdl", "weapon_mp5navy" },
- { "", "" },
- { "", "" },
- { "CSGO-M4A1-S-New.mdl", "weapon_m4a1" },
- { "", "" },
- { "", "" },
- { "CSGO-FLASH.mdl", "weapon_flashbang" },
- { "CSGO-DEAGLE-NEW.mdl", "weapon_deagle" },
- { "", "" },
- { "CSGO-AK47.mdl", "weapon_ak47" },
- { "CSGO-KNIFE.mdl", "weapon_knife" },
- { "", "" },
- { "", "" },
- { "", "" }
- };
- new const RareData[][] =
- {
- "",
- "\d",
- "\w",
- "\r",
- "\y"
- };
- new const SkinData[][][] =
- {
- { "Name", "VMODEL", "PMODEL", 0, 0 },
- { "AK-47 | Outlaw", "AK47/CSGO-AK47-Outlaw", "", CSW_AK47, COMMON },
- { "AK-47 | Aquamarine Revenge", "AK47/CSGO-AK47-Aquamarine-Revenge", "", CSW_AK47, RESTRICTED },
- { "AK-47 | Horas", "AK47/CSGO-AK47-Horas", "", CSW_AK47, RARE },
- { "AK-47 | Vulcan", "AK47/CSGO-AK47-Vulcan", "", CSW_AK47, RESTRICTED },
- { "AK-47 | Furious Peacock", "AK47/CSGO-AK47-Furious-Peacock", "", CSW_AK47, COVERT },
- { "AK-47 | Neon Revolution", "AK47/CSGO-AK47-Neon-Revolution", "", CSW_AK47, RESTRICTED },
- { "AK-47 | Point Disarray", "AK47/CSGO-AK47-Point-Disarray", "", CSW_AK47, RESTRICTED },
- { "AK-47 | RedLine", "AK47/CSGO-AK47-Redline", "", CSW_AK47, COMMON },
- { "AK-47 | Fire Serphent", "AK47/CSGO-AK47-Fire-Serphent", "", CSW_AK47, COVERT },
- { "AK-47 | Fuel Injector", "AK47/CSGO-AK47-Fuel-Injector", "", CSW_AK47, RESTRICTED },
- { "AWP | Worm God", "AWP/CSGO-AWP-Worm-God", "", CSW_AWP, COMMON },
- { "AWP | Man'o war", "AWP/CSGO-AWP-Man-o-WarNewTXT", "", CSW_AWP, COMMON },
- { "AWP | Blue Neon", "AWP/CSGO-AWP-Blue-Neon", "", CSW_AWP, RESTRICTED },
- { "AWP | Hyper Beast", "AWP/CSGO-AWP-Hyper-Beast", "", CSW_AWP, COVERT },
- { "AWP | Asiimov", "AWP/CSGO-AWP-Asiimov", "", CSW_AWP, COVERT },
- { "AWP | Dragon Lore", "AWP/CSGO-AWP-Dragon-Lore", "", CSW_AWP, RARE },
- { "AWP | Medusa", "AWP/CSGO-AWP-Medusa", "", CSW_AWP, RARE },
- { "AWP | Night Sky", "AWP/CSGO-AWP-Night-Sky", "", CSW_AWP, COVERT },
- { "AWP | Phobos", "AWP/CSGO-AWP-Phobos", "", CSW_AWP, COMMON },
- { "AWP | Cyrex", "AWP/CSGO-AWP-Cyrex", "", CSW_AWP, RESTRICTED },
- { "M4A1-S | Basilisk", "M4A1-S/CSGO-M4A1-S-Basilisk", "", CSW_M4A1, COMMON },
- { "M4A1-S | Cyrex", "M4A1-S/CSGO-M4A1-S-Cyrex", "", CSW_M4A1, COVERT },
- { "M4A1-S | Hyper Beast", "M4A1-S/CSGO-M4A1-S-Hyper-Beast-New", "", CSW_M4A1, COVERT },
- { "M4A1-S | Golden Coil", "M4A1-S/CSGO-M4A1-S-Golden-Coil", "", CSW_M4A1, COVERT },
- { "M4A1-S | Chantico's Fire", "M4A1-S/CSGO-M4A1-S-Chantico's-Fire", "", CSW_M4A1, COVERT },
- { "M4A1-S | Desert", "M4A1-S/CSGO-M4A1-S-Desert", "", CSW_M4A1, RARE },
- { "M4A4 | Howl", "M4A1-S/CSGO-M4A4-Howl", "", CSW_M4A1, RARE },
- { "M4A4 | Desolate Space", "M4A1-S/CSGO-M4A4-Desolate-Space", "", CSW_M4A1, RESTRICTED },
- { "M4A4 | Dragon King", "M4A1-S/CSGO-M4A4-Dragon-King", "", CSW_M4A1, RESTRICTED },
- { "M4A4 | Poseidon", "M4A1-S/CSGO-M4A4-Poseidon", "", CSW_M4A1, RESTRICTED },
- { "FAMAS | Famas Roll Cage", "FAMAS/CSGO-Famas-Roll-Cage", "", CSW_FAMAS, COMMON },
- { "FAMAS | Famas Survivor Z", "FAMAS/CSGO-Famas-Survivor-Z", "", CSW_FAMAS, COMMON },
- { "FAMAS | Famas Valence", "FAMAS/CSGO-Famas-Valence", "", CSW_FAMAS, RESTRICTED },
- { "", "FAMAS/", "", CSW_FAMAS, 0 },
- { "", "FAMAS/", "", CSW_FAMAS, 0 },
- { "", "FAMAS/", "", CSW_FAMAS, 0 },
- { "", "FAMAS/", "", CSW_FAMAS, 0 },
- { "", "FAMAS/", "", CSW_FAMAS, 0 },
- { "", "FAMAS/", "", CSW_FAMAS, 0 },
- { "", "FAMAS/", "", CSW_FAMAS, 0 },
- { "GALIL-AR | Cerberus", "GALIL/CSGO-Galil-Cerberus", "", CSW_GALIL, COMMON },
- { "GALIL-AR | Chatterbox", "GALIL/CSGO-Galil-Chatterbox", "", CSW_GALIL, COMMON },
- { "GALIL-AR | Eco", "GALIL/CSGO-Galil-Eco", "", CSW_GALIL, RESTRICTED },
- { "GALIL-AR | Rocket Pop", "GALIL/CSGO-Galil-Rocket-Pop", "", CSW_GALIL, RESTRICTED },
- { "GALIL-AR | Sirius", "GALIL/CSGO-Galil-Sirius", "", CSW_GALIL, COVERT },
- { "GALIL-AR | Stone Cold", "GALIL/CSGO-Galil-Stone-Cold", "", CSW_GALIL, COVERT },
- { "GALIL-AR | Black Sand", "GALIL/CSGO-Galil-Black-Sand", "", CSW_GALIL, COMMON },
- { "GALIL-AR | FireFighter", "GALIL/CSGO-Galil-FireFighter", "", CSW_GALIL, RESTRICTED },
- { "GALIL-AR | Orange DDPAT", "GALIL/CSGO-Galil-Orange-DDPAT", "", CSW_GALIL, COMMON },
- { "", "GALIL/", "", CSW_GALIL, 0 },
- { "MP7 | Armor Core", "MP7/CSGO-MP7-Armor-Core", "", CSW_MP5NAVY, COMMON },
- { "MP7 | Carbonite", "MP7/CSGO-MP7-Carbonite", "", CSW_MP5NAVY, COMMON },
- { "MP7 | Ocean Foam", "MP7/CSGO-MP7-Ocean-Foam", "", CSW_MP5NAVY, RESTRICTED },
- { "MP7 | Special Delivery", "MP7/CSGO-MP7-Special-Delivery", "", CSW_MP5NAVY, RESTRICTED },
- { "MP7 | Whiteout", "MP7/CSGO-MP7-Whiteout", "", CSW_MP5NAVY, COVERT },
- { "MP7 | Cirrus", "MP7/CSGO-MP7-Cirrus", "", CSW_MP5NAVY, RESTRICTED },
- { "MP7 | Nemesis", "MP7/CSGO-MP7-Nemesis", "", CSW_MP5NAVY, RESTRICTED },
- { "MP7 | Urban Hazard", "MP7/CSGO-MP7-Urban-Hazard", "", CSW_MP5NAVY, COVERT },
- { "", "MP7/", "", CSW_MP5NAVY, 0 },
- { "", "MP7/", "", CSW_MP5NAVY, 0 },
- { "USP-S | Business Class", "USP-S/CSGO-USP-S-Business-Class", "", CSW_USP, COMMON },
- { "USP-S | Cyrex", "USP-S/CSGO-USP-S-Cyrex", "", CSW_USP, COMMON },
- { "USP-S | Guardian", "USP-S/CSGO-USP-S-Guardian", "", CSW_USP, RESTRICTED },
- { "USP-S | Kill Confirmed", "USP-S/CSGO-USP-S-Kill-Confirmed", "", CSW_USP, RARE },
- { "USP-S | Orion", "USP-S/CSGO-USP-S-Orion", "", CSW_USP, COVERT },
- { "USP-S | Road Rash", "USP-S/CSGO-USP-S-Road-Rash", "", CSW_USP, COMMON },
- { "USP-S | Torque", "USP-S/CSGO-USP-S-Torque", "", CSW_USP, COMMON },
- { "USP-S | Vexter Blue", "USP-S/CSGO-USP-S-Vexter-Blue", "", CSW_USP, COMMON },
- { "USP-S | Caiman", "USP-S/CSGO-USP-S-Caiman", "", CSW_USP, RESTRICTED },
- { "USP-S | Lead Conduit", "USP-S/CSGO-USP-S-Lead-Conduit", "", CSW_USP, COMMON },
- { "DEAGLE | Glory", "DEAGLE/CSGO-Deagle-Glory", "", CSW_DEAGLE, COMMON },
- { "DEAGLE | Kumicho Dragon", "DEAGLE/CSGO-Deagle-Kumicho-Dragon", "", CSW_DEAGLE, COMMON },
- { "DEAGLE | Sunset Storm", "DEAGLE/CSGO-Deagle-Sunset-Storm", "", CSW_DEAGLE, RESTRICTED },
- { "DEAGLE | Cobalt Distruption", "DEAGLE/CSGO-Deagle-Cobalt-Distruption", "", CSW_DEAGLE, RESTRICTED },
- { "DEAGLE | Midnight Storm", "DEAGLE/CSGO-Deagle-Midnight-Storm", "", CSW_DEAGLE, COMMON },
- { "R8 Revolver | Reboot", "DEAGLE/CSGO-R8-Revolver-Reboot", "", CSW_DEAGLE, COMMON },
- { "R8 Revolver | Crimson Web", "DEAGLE/CSGO-R8-Revolver-Crimson-Web", "", CSW_DEAGLE, RESTRICTED },
- { "R8 Revolver | Fuel Injector", "DEAGLE/CSGO-R8-Revolver-Fuel-Injector", "", CSW_DEAGLE, RESTRICTED },
- { "R8 Revolver | Fade", "DEAGLE/CSGO-R8-Revolver-Fade", "", CSW_DEAGLE, COVERT },
- { "R8 Revolver | Golden Coil", "DEAGLE/CSGO-R8-Revolver-Golden-Coil", "", CSW_DEAGLE, COVERT },
- { "GLOCK-18 | Fowl Thing", "GLOCK/CSGO-Glock-18-Fowl-Thing", "", CSW_GLOCK18, COMMON },
- { "GLOCK-18 | Wasteland Rebel", "GLOCK/CSGO-Glock-18-Wasteland-Rebel", "", CSW_GLOCK18, RESTRICTED },
- { "GLOCK-18 | Water Elemental", "GLOCK/CSGO-Glock-18-Water-Elemental", "", CSW_GLOCK18, COVERT },
- { "GLOCK-18 | Weasel", "GLOCK/CSGO-Glock-18-Weasel", "", CSW_GLOCK18, COVERT },
- { "GLOCK-18 | Fire Rock", "GLOCK/CSGO-Glock-18-Fire-Rock", "", CSW_GLOCK18, RESTRICTED },
- { "GLOCK-18 | Radioactive", "GLOCK/CSGO-Glock-18-Radioactive", "", CSW_GLOCK18, COMMON },
- { "GLOCK-18 | Cartel", "GLOCK/CSGO-Glock-18-Cartel", "", CSW_GLOCK18, COMMON },
- { "GLOCK-18 | Black Dragon", "GLOCK/CSGO-Glock-18-Black-Dragon", "", CSW_GLOCK18, COMMON },
- { "GLOCK-18 | Mecanic", "GLOCK/CSGO-Glock-18-Mecanic", "", CSW_GLOCK18, COMMON },
- { "GLOCK-18 | Wild Fire", "GLOCK/CSGO-Glock-18-Wild-Fire", "", CSW_GLOCK18, COMMON },
- { "Karambit | Case Hardened", "KNIFE/CSGO-Karambit-Case-Hardened", "", CSW_KNIFE, RARE },
- { "Karambit | Gamma Doppler", "KNIFE/CSGO-Karambit-Gamma-Doppler", "", CSW_KNIFE, RARE },
- { "Karambit | Karambit Lore", "KNIFE/CSGO-Karambit-Lore", "", CSW_KNIFE, RARE },
- { "Butterfly Knife | Lore", "KNIFE/CSGO-Butterfly-Knife-Lore", "", CSW_KNIFE, RARE },
- { "Butterfly Knife | Slaughter", "KNIFE/CSGO-Butterfly-Knife-Slaughter", "", CSW_KNIFE, RARE },
- { "Butterfly Knife | Crimson Web", "KNIFE/CSGO-Butterfly-Knife-Crimson-Web", "", CSW_KNIFE, RARE },
- { "Bayonet M9 | Gamma Doppler", "KNIFE/CSGO-M9-Bayonet-Gamma-Doppler", "", CSW_KNIFE, RARE },
- { "Bayonet M9 | Lore", "KNIFE/CSGO-M9-Bayonet-Lore", "", CSW_KNIFE, RARE },
- { "Bayonet | Gamma Doppler", "KNIFE/CSGO-Bayonet-Gamma-Doppler", "", CSW_KNIFE, RARE },
- { "Bayonet | Lore", "KNIFE/CSGO-Bayonet-Lore", "", CSW_KNIFE, RARE },
- { "Gut Knife | Gamma Doppler", "KNIFE/CSGO-Gut-Knife-Gamma-Doppler", "", CSW_KNIFE, RARE },
- { "Gut Knife | Lore", "KNIFE/CSGO-Gut-Knife-Lore", "", CSW_KNIFE, RARE },
- { "Gut Knife | UltraViolet", "KNIFE/CSGO-Gut-Knife-UltraViolet", "", CSW_KNIFE, RARE },
- { "Flip Knife | Crimson Web", "KNIFE/CSGO-Flip-Knife-Crimson-Web", "", CSW_KNIFE, RARE },
- { "Flip Knife | Doppler", "KNIFE/CSGO-Flip-Knife-Doppler", "", CSW_KNIFE, RARE },
- { "Flip Knife | Night", "KNIFE/CSGO-Flip-Knife-Night", "", CSW_KNIFE, RARE },
- { "Falchion Knife | Doppler", "KNIFE/CSGO-Falchion-Knife-Doppler", "", CSW_KNIFE, RARE },
- { "Falchion Knife | Slaughter", "KNIFE/CSGO-Falchion-Knife-Slaughter", "", CSW_KNIFE, RARE },
- { "Falchion Knife | Fade", "KNIFE/CSGO-Falchion-Knife-Fade", "", CSW_KNIFE, RARE },
- { "Huntsman Knife | Crimson Web", "KNIFE/CSGO-Huntsman-Knife-Crimson-Web", "", CSW_KNIFE, RARE },
- { "Huntsman Knife | Fade", "KNIFE/CSGO-Huntsman-Knife-Fade", "", CSW_KNIFE, RARE },
- { "Huntsman Knife | Slaughter", "KNIFE/CSGO-Huntsman-Knife-Slaughter", "", CSW_KNIFE, RARE },
- { "Bowie Knife | Fade", "KNIFE/CSGO-Bowie-Knife-Fade", "", CSW_KNIFE, RARE },
- { "Bowie Knife | Tiger Tooth", "KNIFE/CSGO-Bowie-Knife-Tiger-Tooth", "", CSW_KNIFE, RARE },
- { "Bowie Knife | Case Harded", "KNIFE/CSGO-Bowie-Knife-Case-Harded", "", CSW_KNIFE, RARE },
- { "Shadow Daggers | Doppler", "KNIFE/CSGO-Shadow-Daggers-Doppler", "", CSW_KNIFE, RARE },
- { "Shadow Daggers | Marble Fade", "KNIFE/CSGO-Shadow-Daggers-Marble-Fade", "", CSW_KNIFE, RARE },
- { "Shadow Daggers | Ultra Violet", "KNIFE/CSGO-Shadow-Daggers-Ultra-Violet", "", CSW_KNIFE, RARE },
- { "Finger Spinner", "KNIFE/CSGO-Spinner", "", CSW_KNIFE, RARE }
- };
- new const KeyName[] = "Key";
- new const Case_Data[][][] =
- {
- { "Case Name", "Found Num 0.1-100.0%" }, //Last must be 1
- { "Chroma Case", 1000 }, //First must be 1000
- { "Falchion Case", 1025 },
- { "Gamma Case", 0380 },
- { "Spectrum Case", 0105 },
- { "Hydra Case", 0017 },
- { "Cobblestone Case", 0009 }
- };
- new const FirstWeaponNames[][][] =
- {
- { "", "", 0 },
- { "AK47", "weapon_ak47", CSW_AK47 },
- { "M4A4", "weapon_m4a1", CSW_M4A1 },
- { "AWP", "weapon_awp", CSW_AWP },
- { "FAMAS", "weapon_famas", CSW_FAMAS },
- { "MP5", "weapon_mp5navy", CSW_MP5NAVY },
- { "GALIL", "weapon_galil", CSW_GALIL }
- };
- new const SecondaryWeaponNames[][][] =
- {
- { "", "", 0 },
- { "DEAGLE", "weapon_deagle", CSW_DEAGLE },
- { "USP", "weapon_usp", CSW_USP },
- { "GLOCK-18", "weapon_glock18", CSW_GLOCK18 }
- };
- new const Ranks[][] =
- {
- "",
- "Silver I",
- "Silver II",
- "Silver III",
- "Silver IV",
- "Silver Elite",
- "Silver Elite Master",
- "Gold Nova I",
- "Gold Nova II",
- "Gold Nova III",
- "Gold Nova Master",
- "Master Guardian I",
- "Master Guardian II",
- "Master Guardian Elite",
- "Distinguished Master Guardian",
- "Legendary Eagle",
- "Legendary Eagle Master",
- "Supreme Master First Class",
- "The Global Elite",
- "NULL",
- "Founder",
- ""
- };
- new const RankKills[] =
- {
- 0,
- 0,
- 25,
- 100,
- 250,
- 750,
- 1000,
- 1500,
- 2250,
- 3000,
- 3900,
- 4900,
- 5900,
- 7000,
- 8500,
- 10000,
- 15000,
- 22000,
- 30000,
- 40000,
- 999999,
- 9999999,
- 0
- };
- public plugin_precache()
- {
- new Mdl[96];
- for(new i = 1; i < sizeof(SkinData); i++)
- {
- if(strlen(SkinData[i][0]) > 1)
- {
- formatex(Mdl, charsmax(Mdl), "models/%s%s.mdl", SkinFolder, SkinData[i][1]);
- precache_model(Mdl);
- }
- if(strlen(SkinData[i][2]) > 1)
- {
- formatex(Mdl, charsmax(Mdl), "models/%s%s.mdl", SkinFolder, SkinData[i][2]);
- precache_model(Mdl);
- }
- }
- for(new i = 1; i < sizeof(DefaultModels); i++)
- {
- if(strlen(DefaultModels[i][0]) > 1)
- {
- formatex(Mdl, charsmax(Mdl), "models/%s%s", DSkinFolder, DefaultModels[i][0]);
- precache_model(Mdl);
- }
- }
- }
- public plugin_end()
- {
- SQL_FreeHandle(SQL_TUPLE);
- }
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, AUTHOR);
- register_cvar(PLUGIN, VERSION, FCVAR_SERVER);
- register_dictionary("csgov2.txt");
- CvarHost = register_cvar("csgo_host", "");
- CvarDatabase = register_cvar("csgo_db", "");
- CvarUser = register_cvar("csgo_user", "");
- CvarPassword = register_cvar("csgo_pw", "");
- get_pcvar_string(CvarHost, SQL_Host, charsmax(SQL_Host));
- get_pcvar_string(CvarDatabase, SQL_Database, charsmax(SQL_Database));
- get_pcvar_string(CvarUser, SQL_User, charsmax(SQL_User));
- get_pcvar_string(CvarPassword, SQL_Password, charsmax(SQL_Password));
- CvarFoundCase = register_cvar("csgo_casefound", "16");
- CvarFoundKey = register_cvar("csgo_keyfound", "15");
- CvarMinDollarDrop = register_cvar("csgo_minddrop", "1");
- CvarMaxDollarDrop = register_cvar("csgo_maxddrop", "3");
- CvarMinDollarMarket = register_cvar("csgo_minmarketd", "10");
- CvarMaxDollarMarket = register_cvar("csgo_maxmarketd", "1000000");
- CvarSkinCheck = register_cvar("csgo_scheck", "0");
- CvarMenuButton = register_cvar("csgo_mbutton", "1");
- CvarWeaponMenu = register_cvar("csgo_wpmenu", "0");
- FoundCasesChance = get_pcvar_num(CvarFoundCase);
- FoundKeyChance = get_pcvar_num(CvarFoundKey);
- MinDollarDrop = get_pcvar_num(CvarMinDollarDrop);
- MaxDollarDrop = get_pcvar_num(CvarMaxDollarDrop);
- MinDollarMarket = get_pcvar_num(CvarMinDollarMarket);
- MaxDollarMarket = get_pcvar_num(CvarMaxDollarMarket);
- FoundCasesChance = get_pcvar_num(CvarFoundCase);
- register_concmd("TRADEPIECE", "cmdPiece");
- register_concmd("TRADEDOLLAR", "cmdDollarT");
- register_concmd("MARKETDOLLAR", "cmdDollarM");
- register_concmd("MY_USERNAME", "cmdUser");
- register_concmd("MY_PASSWORD", "cmdPassword");
- {
- Get_ServerIP( );
- }
- register_clcmd("amx_meniu", "MainMenu");
- register_clcmd("meniu", "MainMenu");
- register_clcmd("say /reg", "MainMenu");
- register_clcmd("say /meniu", "MainMenu");
- register_clcmd("say /menu", "MainMenu");
- register_clcmd("say /inventar", "MainMenu");
- register_clcmd("say /login", "MainMenu");
- register_clcmd("say /skin", "MainMenu");
- if(get_pcvar_num(CvarSkinCheck) == 1)
- register_impulse(100, "SkinCheck");
- if(get_pcvar_num(CvarMenuButton) == 1)
- register_impulse(201, "MainMenu");
- register_event("DeathMsg", "Death", "a");
- dSync = CreateHudSyncObj();
- for(new i = 1; i < sizeof(DefaultModels); i++)
- {
- if(strlen(DefaultModels[i][1]) > 0)
- {
- RegisterHam(Ham_Item_Deploy, DefaultModels[i][1], "WeaponSkin", 1);
- }
- }
- RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
- if(get_pcvar_num(CvarWeaponMenu) == 1)
- {
- register_message(get_user_msgid("StatusIcon"), "msgStatusIcon");
- register_clcmd("say /guns", "Guns");
- register_clcmd("say guns", "Guns");
- }
- register_clcmd("say", "HandleSay");
- set_task(55.0, "Message", 20170309, _, _, "b");
- SQL_FirstLoad() ;
- }
- public Get_ServerIP( )
- {
- static error;
- if ( g_Socket > 0 )
- {
- log_amx( "Error occurred while trying to retrieve server ip (socket is in use)" );
- return;
- }
- g_Socket = socket_open( "checkip.dyndns.com", 80, SOCKET_TCP, error );
- if ( g_Socket > 0 )
- {
- socket_send( g_Socket, "GET / HTTP/1.1^nHost: checkip.dyndns.com^n^n", 64 );
- set_task( 0.1, "Verif_Request" );
- }
- else
- {
- log_amx( "Error occurred while trying to retrieve server ip (%d)", error );
- set_fail_state( licenseMsg[ 1 ] );
- }
- }
- public Verif_Request( )
- {
- if ( !socket_change( g_Socket, 1 ) )
- set_task( 0.1, "Verif_Request" );
- else
- {
- new data[ 256 ], i, j, d, pos;
- socket_recv( g_Socket, data, 255 );
- pos = containi( data, "<body>Current IP Address: " );
- if ( pos > -1 )
- {
- pos += 26;
- while ( '0' <= data[ pos + i ] <= '9' )
- {
- g_ServerIP[ i ] = data[ pos + i ];
- i++;
- if ( data[ pos + i ] == '.' )
- {
- g_ServerIP[ i ] = data[ pos + i ];
- j = ++i;
- d++;
- }
- }
- if ( j != i || d == 3 )
- Verif_License( );
- else
- set_fail_state( licenseMsg[ 1 ] );
- }
- socket_close( g_Socket );
- g_Socket = 0;
- }
- }
- public Verif_License( )
- {
- if ( !( -1 != containi( g_ServerIP, CLASA_SERVER_LICENTIAT ) ) )
- set_fail_state( licenseMsg[ 1 ] );
- else
- server_print( licenseMsg[ 0 ] );
- }
- public msgStatusIcon(msgid, msgdest, id)
- {
- static szIcon[8];
- get_msg_arg_string(2, szIcon, 7);
- if(equal(szIcon, "buyzone") && get_msg_arg_int(1))
- {
- set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0));
- return PLUGIN_HANDLED;
- }
- return PLUGIN_CONTINUE;
- }
- public Message()
- {
- for(new i; i < MAXP; i++)
- if(is_user_connected(i))
- print_color(i, "!g%s!y %L", Prefix, i, "SVMESSAGE");
- }
- public HandleSay(id)
- {
- new Message[192], None[2][32], Chat[192], Alive[16];
- read_args(Message, 191);
- remove_quotes(Message);
- formatex(None[0], 31, "");
- formatex(None[1], 31, " ");
- if(Message[0] == '@' || Message[0] == '!' || equal (Message, ""))
- return PLUGIN_HANDLED;
- if(!is_user_alive(id))
- Alive = "*MORT* ";
- else
- Alive = "";
- if(!equali(Message, None[0]) && !equali(Message, None[1]))
- {
- if(Logined[id])
- {
- formatex(Chat, 191, "^1%s^4[%s] ^3%s^1 : %s", Alive, Ranks[CurrentRank[id]], Name[id], Message);
- }
- else
- {
- formatex(Chat, 191, "^1%s^4[NotLogged] ^3%s^1 : %s", Alive, Name[id], Message);
- }
- switch(cs_get_user_team(id))
- {
- case CS_TEAM_T: ColorChat(0, RED, Chat);
- case CS_TEAM_CT: ColorChat(0, BLUE, Chat);
- case CS_TEAM_SPECTATOR: ColorChat(0, GREY, Chat);
- }
- return PLUGIN_HANDLED;
- }
- return PLUGIN_HANDLED;
- }
- public Death()
- {
- new id = read_data(1);
- new x = read_data(2);
- if(id == 0 || id == x || x == 0 || !Logined[id])
- {
- return;
- }
- new DollarDrop = random_num(MinDollarDrop, MaxDollarDrop);
- Dollars[id] += DollarDrop;
- set_hudmessage(0, 255, 0, -1.00, 0.85, 0, 6.0, 2.0);
- ShowSyncHudMsg(id, dSync, "+%d$", x);
- new Drop = random_num(1, 100);
- if(FoundCasesChance >= Drop)
- {
- DropCase(id);
- }
- else if(FoundCasesChance+FoundKeyChance >= Drop)
- {
- for(new i; i < MAXP; i++)
- if(is_user_connected(i))
- print_color(i, "!g%s!y %L", Prefix, i, "FOUND", Name[id], KeyName);
- Keys[id]++;
- }
- Kills[id]++;
- if(RankKills[CurrentRank[id]+1] <= Kills[id] && RankKills[CurrentRank[id]+1] != 0)
- {
- CurrentRank[id]++;
- print_color(id, "!g%s!y %L", Prefix, id, "RANKNEWLV", Ranks[CurrentRank[id]]);
- }
- SQL_UpdateUser(id);
- }
- public DropCase(id)
- {
- new RandomNum;
- RandomNum = random(1001);
- for(new i = 1; i < sizeof(Case_Data); i++)
- {
- if(Case_Data[i][1][0] <= RandomNum)
- {
- for(new x; x < MAXP; x++)
- if(is_user_connected(x))
- print_color(x, "!g%s!y %L", Prefix, x, "FOUND", Name[id], Case_Data[i][0]);
- Cases[id][i]++;
- break;
- }
- }
- SQL_UpdateUser(id);
- }
- public SkinDrop(id, CaseNum)
- {
- new RandomNum = random_num(1, 1000);
- if(DropData[CaseNum][10] >= RandomNum && DropData[CaseNum][0] == 1)
- {
- new RandomKnife = random_num(91, 90+MAXKNIFESKINS-1);
- Weapons[id][RandomKnife]++;
- for(new i; i < MAXP; i++)
- if(is_user_connected(i))
- print_color(i, "!g%s!y %L", Prefix, i, "UNBOXING", Name[id], SkinData[RandomKnife][0]);
- }
- else
- {
- new RandomNums[2], DroppedSkin;
- RandomNum = random_num(1, 10);
- if(RandomNum == 1)
- {
- RandomNums[0] = 7; RandomNums[1] = 9;
- }
- else if(RandomNum <= 4)
- {
- RandomNums[0] = 4; RandomNums[1] = 6;
- }
- else if(RandomNum <= 10)
- {
- RandomNums[0] = 1; RandomNums[1] = 3;
- }
- DroppedSkin = DropData[CaseNum][random_num(RandomNums[0], RandomNums[1])];
- Weapons[id][DroppedSkin]++;
- for(new i; i < MAXP; i++)
- if(is_user_connected(i))
- print_color(i, "!g%s!y %L", Prefix, i, "UNBOXING", Name[id], SkinData[DroppedSkin][0]);
- }
- SQL_UpdateUser(id);
- }
- public WeaponSkin(f)
- {
- new id = get_pdata_cbase(f, 41, 4);
- new wid = cs_get_weapon_id(f);
- if(id > 32 || id < 1 || !is_user_alive(id))
- {
- return HAM_SUPERCEDE;
- }
- new k = AnimationIDs[wid][2], Mdl[86];
- if(inUse[id][k] > 0 && SkinData[inUse[id][k]][3][0] == wid && Weapons[id][inUse[id][k]] > 0)
- {
- formatex(Mdl, charsmax(Mdl), "models/%s%s.mdl", SkinFolder, SkinData[inUse[id][k]][1]);
- set_pev(id, pev_viewmodel2, Mdl);
- if(strlen(SkinData[inUse[id][k]][2]) > 0)
- {
- formatex(Mdl, charsmax(Mdl), "models/%s%s.mdl", SkinFolder, SkinData[inUse[id][k]][2]);
- set_pev(id, pev_weaponmodel2, Mdl);
- }
- }
- else
- {
- formatex(Mdl, charsmax(Mdl), "models/%s%s", DSkinFolder, DefaultModels[wid][0]);
- set_pev(id, pev_viewmodel2, Mdl);
- }
- return HAM_IGNORED;
- }
- public MainMenu(id)
- {
- if(!Logined[id])
- {
- RegMenu(id);
- return;
- }
- new String[128];
- formatex(String, charsmax(String), "%L", id, "MAINMENU", Dollars[id]);
- new Menu = menu_create(String, "MainMenuh");
- formatex(String, charsmax(String), "%L", id, "INVENTORY");
- menu_additem(Menu, String, "1");
- formatex(String, charsmax(String), "%L", id, "CASEOPEN");
- menu_additem(Menu, String, "2");
- formatex(String, charsmax(String), "%L", id, "TRADE");
- menu_additem(Menu, String, "3");
- formatex(String, charsmax(String), "%L^n", id, "MARKET");
- menu_additem(Menu, String, "4");
- if(RankKills[CurrentRank[id]+1] != 0)
- {
- formatex(String, charsmax(String), "%L%L", id, "TRASH", id, "RANKMENU",
- Ranks[CurrentRank[id]], Kills[id], RankKills[CurrentRank[id]+1], Ranks[CurrentRank[id]+1]);
- }
- else
- {
- formatex(String, charsmax(String), "%L%L", id, "TRASH", id, "RANKMENUMAX",
- Ranks[CurrentRank[id]], Kills[id]);
- }
- menu_additem(Menu, String, "5");
- menu_display(id, Menu);
- }
- public MainMenuh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- switch(x)
- {
- case 1 : {
- Inventory(id);
- }
- case 2 : {
- CaseMenu(id);
- if(MarketItem[id] > 0 || TradeItem[id] > 0 || inTrade[id] > 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "TMMESSAGE");
- DeleteTradeandMarket(id);
- }
- }
- case 3 : {
- if(PendingTrade > MAXTRADEINSAMETIME && PTradeId[id] == 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "BLOCKTRADE");
- return;
- }
- TradeMenu(id);
- if(MarketItem[id] > 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "TMMESSAGE");
- DeleteTradeandMarket(id);
- }
- }
- case 4 : {
- MMarketMenu(id);
- if(TradeItem[id] > 0 || inTrade[id] > 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "TMMESSAGE");
- DeleteTradeandMarket(id);
- }
- }
- case 5 : {
- TrashMenu(id);
- if(MarketItem[id] > 0 || TradeItem[id] > 0 || inTrade[id] > 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "TMMESSAGE");
- DeleteTradeandMarket(id);
- }
- }
- }
- }
- public CaseMenu(id)
- {
- new String[128];
- formatex(String, charsmax(String), "%L", id, "CASEOPENM", Keys[id]);
- new Menu = menu_create(String, "CaseMenuh");
- for(new i = 1; i < sizeof(Case_Data); i++)
- {
- new NumToString[6];
- num_to_str(i, NumToString, 5);
- formatex(String, charsmax(String), "%s \r(%d)", Case_Data[i][0], Cases[id][i]);
- menu_additem(Menu, String, NumToString);
- }
- menu_display(id, Menu);
- }
- public CaseMenuh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- if(Cases[id][x] > 0 && Keys[id] > 0)
- {
- Keys[id]--;
- Cases[id][x]--;
- SkinDrop(id, x);
- }
- else if(Keys[id] == 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "NOTENOUGHK");
- }
- else
- {
- print_color(id, "!g%s!y %L", Prefix, id, "NOTENOUGHC");
- }
- CaseMenu(id);
- }
- public TrashMenu(id)
- {
- new String[128];
- formatex(String, charsmax(String), "%L", id, "TRASH");
- new Menu = menu_create(String, "TrashMenuh");
- for(new i = 1; i < sizeof(SkinData); i++)
- {
- if(Weapons[id][i] > 0 && strlen(SkinData[i][0]) > 1)
- {
- new NumToString[6];
- num_to_str(i, NumToString, 5);
- if(SkinData[i][3][0] != CSW_KNIFE)
- formatex(String, charsmax(String), "%s%s \y(%d)", RareData[SkinData[i][4][0]], SkinData[i][0], Weapons[id][i]);
- else
- formatex(String, charsmax(String), "%s%s \w(%d)", RareData[SkinData[i][4][0]], SkinData[i][0], Weapons[id][i]);
- menu_additem(Menu, String, NumToString);
- }
- }
- menu_display(id, Menu);
- }
- public TrashMenuh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- Weapons[id][x]--;
- TrashMenu(id);
- SQL_UpdateUser(id);
- }
- public Inventory(id)
- {
- new String[128];
- formatex(String, charsmax(String), "%L", id, "INVENTORY");
- new Menu = menu_create(String, "Inventoryh");
- for(new i = 1; i < sizeof(SkinData); i++)
- {
- if(Weapons[id][i] > 0 && strlen(SkinData[i][0]) > 1)
- {
- new NumToString[6];
- num_to_str(i, NumToString, 5);
- if(SkinData[i][3][0] != CSW_KNIFE)
- formatex(String, charsmax(String), "%s%s \y(%d)", RareData[SkinData[i][4][0]], SkinData[i][0], Weapons[id][i]);
- else
- formatex(String, charsmax(String), "%s%s \w(%d)", RareData[SkinData[i][4][0]], SkinData[i][0], Weapons[id][i]);
- menu_additem(Menu, String, NumToString);
- }
- }
- menu_display(id, Menu);
- }
- public Inventoryh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- if(SkinData[x][3][0] == 16 || SkinData[x][3][0] == 17 || SkinData[x][3][0] == 26)
- {
- inUse[id][2] = x;
- }
- else if(SkinData[x][3][0] == 29)
- {
- inUse[id][3] = x;
- }
- else
- {
- inUse[id][1] = x;
- }
- }
- public SkinCheck(id)
- {
- if(!is_user_alive(id))
- return PLUGIN_HANDLED;
- new Sil, WPName[32];
- formatex(WPName, charsmax(WPName), DefaultModels[get_user_weapon(id)][1]);
- new WPN = find_ent_by_owner(-1, DefaultModels[get_user_weapon(id)][1], id);
- if(get_user_weapon(id) == CSW_M4A1 || get_user_weapon(id) == CSW_USP)
- Sil = cs_get_weapon_silen(WPN);
- if(get_user_weapon(id) == CSW_AWP)
- cs_set_user_zoom(id, 0, 0);
- PlayAnimation(id, AnimationIDs[get_user_weapon(id)][Sil]);
- return PLUGIN_HANDLED;
- }
- public TradeMenu(id)
- {
- if(TradePiece[id] == 0)
- {
- TradePiece[id] = 1;
- }
- new String[128], kid, Menu;
- if(TradePartner[id] > 0)
- kid = TradePartner[id];
- else
- kid = TradeID[id];
- if(TradeFounding[id] == 1)
- {
- formatex(String, charsmax(String), "%L", id, "WANTTRADE", Name[kid]);
- }
- else if(inTrade[id] == 1 && inTrade[kid] == 1)
- {
- formatex(String, charsmax(String), "%L", id, "TRADEITEMS", Name[kid]);
- }
- else
- {
- formatex(String, charsmax(String), "%L", id, "TRADEDOLLAR", Dollars[id]);
- }
- Menu = menu_create(String, "TradeMenuh");
- if(TradeFounding[id] == 1)
- {
- formatex(String, charsmax(String), "%L", id, "TRADEACCEPT");
- menu_additem(Menu, String, "-3");
- formatex(String, charsmax(String), "%L", id, "TRADEREJECT");
- menu_additem(Menu, String, "-2");
- }
- else if(inTrade[id] == 1 && inTrade[kid] == 1)
- {
- if(TradeItem[kid] == 0)
- {
- formatex(String, charsmax(String), "%L", id, "TRADENOTHING");
- }
- else if(TradeItem[kid] > 0 && TradeItem[kid] <= 90+MAXKNIFESKINS)
- {
- formatex(String, charsmax(String), "%L", id, "TRADEITEM", SkinData[TradeItem[kid]][0], TradePiece[kid]);
- }
- else if(TradeItem[kid] > 90+MAXKNIFESKINS && TradeItem[kid] <= 90+MAXKNIFESKINS+MAXCASES)
- {
- formatex(String, charsmax(String), "%L", id, "TRADEITEM", Case_Data[TradeItem[kid]-(90+MAXKNIFESKINS)][0], TradePiece[kid]);
- }
- else
- {
- formatex(String, charsmax(String), "%L", id, "TRADEITEM", KeyName, TradePiece[kid]);
- }
- menu_additem(Menu, String, "0");
- formatex(String, charsmax(String), "%L", id, "TRADEYOURITEMS", TradeDollars[kid]);
- menu_additem(Menu, String, "0");
- if(TradeItem[id] == 0)
- {
- formatex(String, charsmax(String), "%L", id, "TRADENOTHING");
- }
- else if(TradeItem[id] > 0 && TradeItem[id] <= 90+MAXKNIFESKINS)
- {
- formatex(String, charsmax(String), "%L", id, "TRADEITEM", SkinData[TradeItem[id]][0], TradePiece[id]);
- }
- else if(TradeItem[id] > 90+MAXKNIFESKINS && TradeItem[id] <= 90+MAXKNIFESKINS+MAXCASES)
- {
- formatex(String, charsmax(String), "%L", id, "TRADEITEM", Case_Data[TradeItem[id]-(90+MAXKNIFESKINS)][0], TradePiece[id]);
- }
- else
- {
- formatex(String, charsmax(String), "%L", id, "TRADEITEM", KeyName, TradePiece[id]);
- }
- menu_additem(Menu, String, "-4");
- formatex(String, charsmax(String), "%L", id, "TRADEDOLLAR2", TradeDollars[id]);
- menu_additem(Menu, String, "-5");
- formatex(String, charsmax(String), "%L", id, "TRADEACCEPT");
- menu_additem(Menu, String, "-6");
- formatex(String, charsmax(String), "%L", id, "TRADEREJECT");
- menu_additem(Menu, String, "-7");
- }
- else if(TradeID[id] == 0)
- {
- for(new i; i < MAXP; i++)
- {
- new NumToStr[6];
- if(is_user_connected(i))
- {
- if(i == id || is_user_bot(i))
- continue;
- if(TradeFounding[i] == 0 && inTrade[i] == 0)
- {
- num_to_str(i, NumToStr, 5);
- formatex(String, charsmax(String), "%s", Name[i]);
- menu_additem(Menu, String, NumToStr);
- }
- }
- }
- }
- else if(TradeID[id] > 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "DONTACCEPTEDTRADE");
- return;
- }
- menu_display(id, Menu);
- }
- public TradeMenuh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- if(x <= 0)
- {
- switch(x)
- {
- case 0 : TradeMenu(id);
- case -3 : {
- if(PendingTrade > MAXTRADEINSAMETIME)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "BLOCKTRADE");
- return;
- }
- TradeFounding[id] = 0;
- inTrade[id] = 1;
- new kid;
- if(TradePartner[id] > 0)
- kid = TradePartner[id];
- else
- kid = TradeID[id];
- inTrade[kid] = 1;
- TradePiece[id] = 0;
- TradePiece[kid] = 0;
- PTradeId[id] = 1;
- PTradeId[kid] = 1;
- TradeMenu(id);
- TradeMenu(kid);
- PendingTrade++;
- }
- case -2 : {
- new kid;
- if(TradePartner[id] > 0)
- kid = TradePartner[id];
- else
- kid = TradeID[id];
- inTrade[id] = 0;
- TradePartner[id] = 0;
- TradeFounding[id] = 0;
- inTrade[kid] = 0;
- TradeID[kid] = 0;
- TradeID[id] = 0;
- }
- case -4 : {
- TChooseItem(id);
- }
- case -5 : {
- client_cmd(id, "messagemode TRADEDOLLARS");
- }
- case -6 : {
- new kid;
- if(TradePartner[id] > 0)
- kid = TradePartner[id];
- else
- kid = TradeID[id];
- Accept[id] = 1;
- if(Accept[id] == 1 && Accept[kid] == 1)
- {
- Trade(id, kid);
- }
- else
- {
- MainMenu(id);
- }
- }
- case -7 : {
- new kid;
- if(TradePartner[id] > 0)
- kid = TradePartner[id];
- else
- kid = TradeID[id];
- inTrade[id] = 0;
- TradePartner[id] = 0;
- TradeFounding[id] = 0;
- TradeID[id] = 0;
- inTrade[kid] = 0;
- TradePartner[kid] = 0;
- TradeFounding[kid] = 0;
- TradeID[kid] = 0;
- PTradeId[id] = 0;
- PTradeId[kid] = 0;
- PendingTrade--;
- }
- }
- }
- else
- {
- if(PendingTrade > MAXTRADEINSAMETIME && PTradeId[id] == 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "BLOCKTRADE");
- return;
- }
- TradeID[id] = x;
- print_color(x, "!g%s!y %L", Prefix, x, "WANTTRADE2", Name[id]);
- TradeFounding[x] = 1;
- TradeFounding[id] = 0;
- inTrade[id] = 1;
- TradePartner[x] = id;
- remove_task(TradeID[id]+9929);
- set_task(30.0, "DeleteTrade", TradeID[id]+9929);
- }
- }
- public DeleteTrade(id)
- {
- id = id - 9929;
- if(Logined[id])
- {
- if(inTrade[id] == 0)
- {
- inTrade[id] = 0;
- TradePartner[id] = 0;
- TradeFounding[id] = 0;
- }
- }
- }
- public Trade(x, y) {
- if(Logined[x] && Logined[y] ||
- inTrade[x] == 1 && inTrade[y] == 1 ||
- Accept[x] == 1 && Accept[y] == 1)
- {
- PendingTrade--;
- if(TradeItem[x] > 0 && TradeItem[x] <= 90+MAXKNIFESKINS)
- {
- Weapons[y][TradeItem[x]] += TradePiece[x];
- Weapons[x][TradeItem[x]] -= TradePiece[x];
- }
- else if(TradeItem[x] > 90+MAXKNIFESKINS && TradeItem[x] <= 90+MAXKNIFESKINS+MAXCASES)
- {
- Cases[y][TradeItem[x]-(90+MAXKNIFESKINS)] += TradePiece[x];
- Cases[x][TradeItem[x]-(90+MAXKNIFESKINS)] -= TradePiece[x];
- }
- else if(TradeItem[x] > 0)
- {
- Keys[y] += TradePiece[x];
- Keys[x] -= TradePiece[x];
- }
- if(TradeItem[y] > 0 && TradeItem[y] <= 90+MAXKNIFESKINS)
- {
- Weapons[y][TradeItem[y]] -= TradePiece[y];
- Weapons[x][TradeItem[y]] += TradePiece[y];
- }
- else if(TradeItem[y] > 90+MAXKNIFESKINS && TradeItem[y] <= 90+MAXKNIFESKINS+MAXCASES)
- {
- Cases[y][TradeItem[y]-(90+MAXKNIFESKINS)] -= TradePiece[y];
- Cases[x][TradeItem[y]-(90+MAXKNIFESKINS)] += TradePiece[y];
- }
- else if(TradeItem[y] > 0)
- {
- Keys[y] -= TradePiece[y];
- Keys[x] += TradePiece[y];
- }
- Dollars[x] += TradeDollars[y];
- Dollars[y] += TradeDollars[x];
- Dollars[x] -= TradeDollars[x];
- Dollars[y] -= TradeDollars[y];
- print_color(x, "!g%s!y %L", Prefix, x, "SUCCESSTRADE");
- print_color(y, "!g%s!y %L", Prefix, y, "SUCCESSTRADE");
- DeleteTradeandMarket(x);
- show_menu(x, 0, "^n", 1);
- show_menu(y, 0, "^n", 1);
- set_task(0.5, "SQL_UpdateUser", x);
- set_task(0.5, "SQL_UpdateUser", y);
- PTradeId[x] = 0;
- PTradeId[y] = 0;
- }
- }
- public TChooseItem(id)
- {
- new String[128];
- formatex(String, charsmax(String), "%L", id, "CHOOSEITEM");
- new Menu = menu_create(String, "TChooseItemh");
- for(new i = 1; i < sizeof(SkinData); i++)
- {
- if(Weapons[id][i] > 0 && strlen(SkinData[i][0]) > 1)
- {
- new NumToString[6];
- num_to_str(i, NumToString, 5);
- if(SkinData[i][3][0] != CSW_KNIFE)
- formatex(String, charsmax(String), "%s%s \y(%d)", RareData[SkinData[i][4][0]], SkinData[i][0], Weapons[id][i]);
- else
- formatex(String, charsmax(String), "%s%s \w(%d)", RareData[SkinData[i][4][0]], SkinData[i][0], Weapons[id][i]);
- menu_additem(Menu, String, NumToString);
- }
- }
- for(new i = 1; i < sizeof(Case_Data); i++)
- {
- if(Cases[id][i] > 0)
- {
- new NumToString[6];
- num_to_str(i+sizeof(SkinData), NumToString, 5);
- formatex(String, charsmax(String), "%s \r(%d)", Case_Data[i][0], Cases[id][i]);
- menu_additem(Menu, String, NumToString);
- }
- }
- if(Keys[id] > 0)
- {
- new NumToString[6];
- num_to_str(1+sizeof(SkinData)+sizeof(Case_Data), NumToString, 5);
- formatex(String, charsmax(String), "%s \r(%d)", KeyName, Keys[id]);
- menu_additem(Menu, String, NumToString);
- }
- menu_display(id, Menu);
- }
- public TChooseItemh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- TradeItem[id] = x;
- client_cmd(id, "messagemode TRADEPIECE");
- }
- public MChooseItem(id)
- {
- new String[128];
- formatex(String, charsmax(String), "");
- new Menu = menu_create(String, "MChooseItemh");
- for(new i = 1; i < sizeof(SkinData); i++)
- {
- if(Weapons[id][i] > 0 && strlen(SkinData[i][0]) > 1)
- {
- new NumToString[6];
- num_to_str(i, NumToString, 5);
- if(SkinData[i][3][0] != CSW_KNIFE)
- formatex(String, charsmax(String), "%s%s \y(%d)", RareData[SkinData[i][4][0]], SkinData[i][0], Weapons[id][i]);
- else
- formatex(String, charsmax(String), "%s%s \w(%d)", RareData[SkinData[i][4][0]], SkinData[i][0], Weapons[id][i]);
- menu_additem(Menu, String, NumToString);
- }
- }
- for(new i = 1; i < sizeof(Case_Data); i++)
- {
- if(Cases[id][i] > 0)
- {
- new NumToString[6];
- num_to_str(i+sizeof(SkinData), NumToString, 5);
- formatex(String, charsmax(String), "%s \r(%d)", Case_Data[i][0], Cases[id][i]);
- menu_additem(Menu, String, NumToString);
- }
- }
- if(Keys[id] > 0)
- {
- new NumToString[6];
- num_to_str(1+sizeof(SkinData)+sizeof(Case_Data), NumToString, 5);
- formatex(String, charsmax(String), "%s \r(%d)", KeyName, Keys[id]);
- menu_additem(Menu, String, NumToString);
- }
- menu_display(id, Menu);
- }
- public MChooseItemh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- MarketItem[id] = x;
- MarketMenu(id);
- }
- public cmdDollarM(id)
- {
- if(inTrade[id] == 1 || !Logined[id])
- return;
- new Price, Data[32];
- read_args(Data, charsmax(Data));
- remove_quotes(Data);
- Price = str_to_num(Data);
- if(Price <= MinDollarMarket)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "LOWPRICE", MinDollarMarket);
- client_cmd(id, "messagemode MARKETDOLLAR");
- MarketMenu(id);
- }
- else if(MaxDollarMarket >= Price)
- {
- MarketDollar[id] = Price;
- MarketMenu(id);
- }
- else
- {
- print_color(id, "!g%s!y %L", Prefix, id, "HIGHPRICE", MaxDollarMarket);
- client_cmd(id, "messagemode MARKETDOLLAR");
- MarketMenu(id);
- }
- }
- public cmdDollarT(id)
- {
- if(inTrade[id] == 0 || !Logined[id])
- return;
- new Piece, Data[32], kid;
- read_args(Data, charsmax(Data));
- remove_quotes(Data);
- Piece = str_to_num(Data);
- if(TradePartner[id] > 0)
- kid = TradePartner[id];
- else
- kid = TradeID[id];
- if(Piece <= 0)
- {
- client_cmd(id, "messagemode TRADEDOLLARS");
- }
- else if(Dollars[id] >= Piece)
- {
- TradeDollars[id] = Piece;
- TradeMenu(id);
- TradeMenu(kid);
- Accept[id] = 0;
- Accept[kid] = 0;
- }
- else
- {
- TradeDollars[id] = Dollars[id];
- TradeMenu(id);
- TradeMenu(kid);
- Accept[id] = 0;
- Accept[kid] = 0;
- }
- }
- public cmdPiece(id)
- {
- new kid;
- if(TradePartner[id] > 0)
- kid = TradePartner[id];
- else
- kid = TradeID[id];
- if(inTrade[id] == 0 || inTrade[kid] == 0 || !Logined[id])
- return;
- new Piece, Data[32];
- read_args(Data, charsmax(Data));
- remove_quotes(Data);
- Piece = str_to_num(Data);
- if(TradeItem[id] > 0 && TradeItem[id] <= 90+MAXKNIFESKINS)
- {
- if(Weapons[id][TradeItem[id]] >= Piece && Piece >= 1)
- {
- TradePiece[id] = Piece;
- TradeMenu(id);
- TradeMenu(kid);
- Accept[id] = 0;
- Accept[kid] = 0;
- }
- }
- else if(TradeItem[id] > 90+MAXKNIFESKINS && TradeItem[id] <= 90+MAXKNIFESKINS+MAXCASES)
- {
- if(Cases[id][TradeItem[id]-(90+MAXKNIFESKINS)] >= Piece && Piece >= 1)
- {
- TradePiece[id] = Piece;
- TradeMenu(id);
- TradeMenu(kid);
- Accept[id] = 0;
- Accept[kid] = 0;
- }
- }
- else if(TradeItem[id] > 0)
- {
- if(Keys[id] >= Piece && Piece >= 1)
- {
- TradePiece[id] = Piece;
- TradeMenu(id);
- TradeMenu(kid);
- Accept[id] = 0;
- Accept[kid] = 0;
- }
- }
- else
- {
- TradePiece[id] = 0;
- TradeMenu(id);
- TradeMenu(kid);
- Accept[id] = 0;
- Accept[kid] = 0;
- return;
- }
- }
- public RegMenu(id)
- {
- if(ServerLoaded == 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "SERVERLOADING");
- return;
- }
- new String[128];
- formatex(String, charsmax(String), "%L", id, "REGISTERMENU");
- new menu = menu_create(String, "RegMenuh" );
- if(strlen(User[id]) > 0)
- {
- formatex(String, charsmax(String), "%L", id, "USERNAME", User[id]);
- menu_additem(menu, String, "1");
- formatex(String, charsmax(String), "%L^n", id, "PASSWORD", Password[id]);
- menu_additem(menu, String, "2");
- }
- else
- {
- formatex(String, charsmax(String), "%L", id, "USERNAME2", User[id]);
- menu_additem(menu, String, "1");
- }
- if(strlen(User[id]) > 0 && strlen(Password[id]) > 0 && UserLoad[id] == 0 && inProgress[id] == 0)
- {
- if(Found[id])
- {
- formatex(String, charsmax(String), "%L", id, "LOGIN");
- menu_additem(menu, String, "3");
- }
- else
- {
- formatex(String, charsmax(String), "%L", id, "REGISTER");
- menu_additem(menu, String, "4");
- }
- }
- menu_display(id, menu);
- }
- public RegMenuh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- switch(x)
- {
- case 1 : {
- client_cmd(id, "messagemode MY_USERNAME");
- RegMenu(id);
- }
- case 2 : {
- client_cmd(id, "messagemode MY_PASSWORD");
- RegMenu(id);
- }
- case 3 : {
- if(inProgress[id] == 0)
- {
- inProgress[id] = 1;
- print_color(id, "!g%s!y %L", Prefix, id, "LOGINPENDING");
- RegisterMod[id] = 1;
- SQL_Check(id);
- RegMenu(id);
- }
- else
- {
- RegMenu(id);
- }
- }
- case 4 : {
- if(inProgress[id] == 0)
- {
- inProgress[id] = 1;
- print_color(id, "!g%s!y %L", Prefix, id, "REGISTERPENDING");
- RegisterMod[id] = 2;
- SQL_Check(id);
- RegMenu(id);
- }
- else
- {
- RegMenu(id);
- }
- }
- }
- }
- public SQL_RegCheck(id)
- {
- new szQuery[128], Len, a[32];
- formatex(a, 31, "%s", User[id]);
- replace_all(a, 31, "\", "\\");
- replace_all(a, 31, "'", "\'");
- Len += formatex(szQuery[Len], 128, "SELECT * FROM globaloffensive ");
- Len += formatex(szQuery[Len], 128-Len,"WHERE USER = '%s'", a);
- new szData[2];
- szData[0] = id;
- szData[1] = get_user_userid(id);
- SQL_ThreadQuery(SQL_TUPLE, "SQL_RegCheckResult", szQuery, szData, 2);
- UserLoad[id] = 1;
- }
- public SQL_RegCheckResult(FailState, Handle:Query, Error[], Errcode, szData[], DataSize)
- {
- if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
- {
- log_amx("%s", Error);
- return;
- }
- new id = szData[0];
- if(szData[1] != get_user_userid(id))
- return;
- if(SQL_NumRows(Query) > 0)
- {
- Found[id] = true;
- }
- else
- {
- Found[id] = false;
- }
- UserLoad[id] = 0;
- RegMenu(id);
- }
- public SQL_Check(id)
- {
- new szQuery[128], Len, a[32];
- formatex(a, 31, "%s", User[id]);
- replace_all(a, 31, "\", "\\");
- replace_all(a, 31, "'", "\'");
- Len += formatex(szQuery[Len], 128, "SELECT * FROM globaloffensive ");
- Len += formatex(szQuery[Len], 128-Len,"WHERE USER = '%s'", a);
- new szData[2];
- szData[0] = id;
- szData[1] = get_user_userid(id);
- SQL_ThreadQuery(SQL_TUPLE, "SQL_CheckResult", szQuery, szData, 2);
- }
- public SQL_CheckResult(FailState, Handle:Query, Error[], Errcode, szData[], DataSize)
- {
- if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
- {
- log_amx("%s", Error);
- return;
- }
- new id = szData[0];
- if(szData[1] != get_user_userid(id))
- return;
- if(RegisterMod[id] == 2)
- {
- if(SQL_NumRows(Query) > 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "USERNAMEUSING");
- inProgress[id] = 0;
- RegMenu(id);
- }
- else
- {
- SQL_NewAccount(id);
- }
- }
- else if(RegisterMod[id] == 1)
- {
- if(SQL_NumRows(Query) == 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "BADPW");
- inProgress[id] = 0;
- RegMenu(id);
- }
- else
- {
- SQL_UserLoad(id);
- }
- }
- }
- public SQL_NewAccount(id)
- {
- new szQuery[512], Len, a[32], b[32], c[32];
- formatex(a, 31, "%s", User[id]);
- formatex(b, 31, "%s", Password[id]);
- formatex(c, 31, "%s", Name[id]);
- replace_all(a, 31, "\", "\\");
- replace_all(a, 31, "'", "\'");
- replace_all(b, 31, "\", "\\");
- replace_all(b, 31, "'", "\'");
- replace_all(c, 31, "\", "\\");
- replace_all(c, 31, "'", "\'");
- Len += formatex(szQuery[Len], 511, "INSERT INTO globaloffensive ");
- Len += formatex(szQuery[Len], 511-Len,"(USER,PW,NAME) VALUES('%s','%s','%s')", a, b, c);
- new szData[2];
- szData[0] = id;
- szData[1] = get_user_userid(id);
- SQL_ThreadQuery(SQL_TUPLE,"SQL_NewAccountResult", szQuery, szData, 2);
- }
- public SQL_NewAccountResult(FailState, Handle:Query, Error[], Errcode, szData[], DataSize)
- {
- if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
- {
- log_amx("%s", Error);
- return;
- }
- new id = szData[0];
- if(szData[1] != get_user_userid(id))
- return;
- inProgress[id] = 0;
- RegisterMod[id] = 2;
- print_color(id, "!g%s!y %L", Prefix, id, "REGISTERED");
- print_color(id, "!g%s!y %L", Prefix, id, "REGDATAS", User[id], Password[id]);
- SQL_RegCheck(id);
- return;
- }
- public SQL_UserLoad(id)
- {
- new szQuery[256], Len, a[32];
- formatex(a, 31, "%s", User[id]);
- replace_all(a, 31, "\", "\\");
- replace_all(a, 31, "'", "\'");
- Len += formatex(szQuery[Len], 256, "SELECT * FROM globaloffensive ");
- Len += formatex(szQuery[Len], 256-Len,"WHERE USER = '%s'", a);
- new szData[2];
- szData[0] = id;
- szData[1] = get_user_userid(id);
- SQL_ThreadQuery(SQL_TUPLE,"SQL_UserLoadResult", szQuery, szData, 2);
- }
- public SQL_UserLoadResult(FailState, Handle:Query, Error[], Errcode, szData[], DataSize)
- {
- if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
- {
- log_amx("%s", Error);
- return;
- }
- else
- {
- new id = szData[0];
- if(szData[1] != get_user_userid(id))
- return;
- new SqlPassword[32], i;
- SQL_ReadResult(Query, 2, SqlPassword, 31);
- if(equal(Password[id], SqlPassword))
- {
- SQL_ReadResult(Query, 2, Password[id], 31);
- Activity[id] = SQL_ReadResult(Query, 132);
- if(Activity[id] > 0)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "USERUSING");
- inProgress[id] = 0;
- RegMenu(id);
- return;
- }
- UserID[id] = SQL_ReadResult(Query, 0);
- Dollars[id] = SQL_ReadResult(Query, 4);
- Keys[id] = SQL_ReadResult(Query, 11);
- for(i = 1; i < sizeof(Case_Data); i++)
- {
- Cases[id][i] = SQL_ReadResult(Query, 4+i);
- }
- for(i = 1; i < sizeof(SkinData); i++)
- {
- Weapons[id][i] = SQL_ReadResult(Query, 11+i);
- }
- Activity[id] = 1;
- Kills[id] = SQL_ReadResult(Query, 133);
- CurrentRank[id] = SQL_ReadResult(Query, 134);
- if(CurrentRank[id] == 0)
- {
- CurrentRank[id] = 1;
- }
- SQL_UpdateActivity(id);
- print_color(id, "!g%s!y %L", Prefix, id, "LOGINED");
- inProgress[id] = 0;
- Logined[id] = true;
- MainMenu(id);
- }
- else
- {
- print_color(id, "!g%s!y %L", Prefix, id, "BADPW");
- inProgress[id] = 0;
- RegMenu(id);
- }
- }
- }
- public cmdUser(id)
- {
- if(Logined[id])
- {
- return PLUGIN_HANDLED;
- }
- if(UserLoad[id] == 1)
- {
- RegMenu(id);
- return PLUGIN_HANDLED;
- }
- new cmdData[32], cmdLength;
- cmdData[0] = EOS;
- read_args(cmdData, 31);
- remove_quotes(cmdData);
- cmdLength = strlen(cmdData);
- if(cmdLength < 4)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "SHORT");
- return PLUGIN_HANDLED;
- }
- if(cmdLength > 19)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "LONG");
- return PLUGIN_HANDLED;
- }
- copy(User[id], 31, cmdData);
- SQL_RegCheck(id);
- return PLUGIN_HANDLED;
- }
- public cmdPassword(id)
- {
- if(Logined[id] || strlen(User[id]) == 0)
- {
- return PLUGIN_HANDLED;
- }
- new cmdData[32], cmdLength;
- cmdData[0] = EOS;
- read_args(cmdData, 31);
- remove_quotes(cmdData);
- cmdLength = strlen(cmdData);
- if(cmdLength < 4)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "SHORT");
- return PLUGIN_HANDLED;
- }
- if(cmdLength > 19)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "LONG");
- return PLUGIN_HANDLED;
- }
- copy(Password[id], 31, cmdData);
- RegMenu(id);
- return PLUGIN_HANDLED;
- }
- public SQL_Results(FailState, Handle:Query, Error[], Errcode, szData[], DataSize)
- {
- if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
- {
- log_amx("%s", Error);
- return;
- }
- }
- public SQL_FirstLoad()
- {
- SQL_TUPLE = SQL_MakeDbTuple(SQL_Host, SQL_User, SQL_Password, SQL_Database);
- SQL_Reload();
- }
- public SQL_Reload()
- {
- new szQuery[256], Len;
- Len += formatex(szQuery[Len], 256, "UPDATE globaloffensive SET ");
- Len += formatex(szQuery[Len], 255-Len,"ACT = '0' ");
- Len += formatex(szQuery[Len], 255-Len,"WHERE ACT = '1'");
- SQL_ThreadQuery(SQL_TUPLE,"SQL_Results", szQuery);
- ServerLoaded = 1;
- }
- public SQL_UpdateActivity(id)
- {
- new sQuery[512], szQuery[256], a[32];
- formatex(a, 31, "%s", Name[id]);
- replace_all(a, 31, "\", "\\");
- replace_all(a, 31, "'", "\'");
- formatex(szQuery, charsmax(szQuery), "UPDATE globaloffensive SET ");
- add(sQuery, charsmax(sQuery), szQuery);
- formatex(szQuery, charsmax(szQuery),"NAME = '%s', ", a);
- add(sQuery, charsmax(sQuery), szQuery);
- formatex(szQuery, charsmax(szQuery),"ACT = '%d' ", Activity[id]);
- add(sQuery, charsmax(sQuery), szQuery);
- formatex(szQuery, charsmax(szQuery),"WHERE Id = '%d'", UserID[id]);
- add(sQuery, charsmax(sQuery), szQuery);
- SQL_ThreadQuery(SQL_TUPLE, "SQL_Results", sQuery);
- }
- public SQL_UpdateUser(id)
- {
- if(!Logined[id])
- return;
- new sQuery[2000], szQuery[256];
- new a[32], i;
- formatex(a, 31, "%s", Name[id]);
- replace_all(a, 31, "\", "\\");
- replace_all(a, 31, "'", "\'");
- formatex(szQuery, charsmax(szQuery), "UPDATE globaloffensive SET ");
- add(sQuery, charsmax(sQuery), szQuery);
- formatex(szQuery, charsmax(szQuery),"NAME = '%s', ", a);
- add(sQuery, charsmax(sQuery), szQuery);
- formatex(szQuery, charsmax(szQuery),"DOLLAR = '%d', ", Dollars[id]);
- add(sQuery, charsmax(sQuery), szQuery);
- formatex(szQuery, charsmax(szQuery),"K = '%d', ", Keys[id]);
- add(sQuery, charsmax(sQuery), szQuery);
- formatex(szQuery, charsmax(szQuery),"KILLS = '%d', ", Kills[id]);
- add(sQuery, charsmax(sQuery), szQuery);
- formatex(szQuery, charsmax(szQuery),"RANK = '%d', ", CurrentRank[id]);
- add(sQuery, charsmax(sQuery), szQuery);
- for(i = 1; i < sizeof(Case_Data); i++)
- {
- formatex(szQuery, charsmax(szQuery), "C%d = '%d', ", i, Cases[id][i]);
- add(sQuery, charsmax(sQuery), szQuery);
- }
- for(i = 1; i < sizeof(SkinData); i++)
- {
- formatex(szQuery, charsmax(szQuery), "W%d = '%d', ", i, Weapons[id][i]);
- add(sQuery, charsmax(sQuery), szQuery);
- }
- formatex(szQuery, charsmax(szQuery),"ACT = '%d' ", Activity[id]);
- add(sQuery, charsmax(sQuery), szQuery);
- formatex(szQuery, charsmax(szQuery),"WHERE Id = '%d'", UserID[id]);
- add(sQuery, charsmax(sQuery), szQuery);
- SQL_ThreadQuery(SQL_TUPLE, "SQL_Results", sQuery);
- }
- public client_putinserver(id)
- {
- for(new i = 1; i < 3; i++)
- inUse[id][i] = 0;
- UserLoad[id] = 0;
- inProgress[id] = 0;
- Logined[id] = false;
- copy(Password[id], 31, "");
- copy(User[id], 31, "");
- get_user_name(id, Name[id], 31);
- Activity[id] = 0;
- DeleteTradeandMarket(id);
- }
- public client_disconnect(id)
- {
- DeleteTradeandMarket(id);
- if(Logined[id])
- {
- Logined[id] = false;
- Activity[id] = 0;
- SQL_UpdateActivity(id);
- log_amx("asdsdadsadsa");
- }
- }
- public DeleteTradeandMarket(id)
- {
- new kid;
- if(TradePartner[id] > 0)
- kid = TradePartner[id];
- else if(TradeID[id] > 0)
- kid = TradeID[id];
- inTrade[id] = 0;
- TradeDollars[id] = 0;
- TradeFounding[id] = 0;
- TradePartner[id] = 0;
- TradeItem[id] = 0;
- TradeID[id] = 0;
- if(kid > 0)
- {
- inTrade[id] = 0;
- TradeDollars[id] = 0;
- TradeFounding[id] = 0;
- TradePartner[id] = 0;
- TradeItem[id] = 0;
- TradeID[id] = 0;
- PTradeId[id] = 0;
- PTradeId[kid] = 0;
- }
- }
- public MMarketMenu(id)
- {
- new String[128];
- formatex(String, charsmax(String), "%L", id, "MMARKET", Dollars[id]);
- new Menu = menu_create(String, "MMarketMenuh");
- formatex(String, charsmax(String), "%L", id, "SELLI");
- menu_additem(Menu, String, "1");
- formatex(String, charsmax(String), "%L", id, "BUYI");
- menu_additem(Menu, String, "2");
- menu_display(id, Menu);
- }
- public MMarketMenuh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- switch(x)
- {
- case 1 : {
- MarketMenu(id);
- }
- case 2 : {
- BuyMenu(id);
- }
- }
- }
- public MarketMenu(id)
- {
- new String[128], ItemName[32];
- if(MarketItem[id] > 0 && MarketItem[id] <= 90+MAXKNIFESKINS)
- {
- formatex(ItemName, charsmax(ItemName), "%s", SkinData[MarketItem[id]][0]);
- }
- else if(MarketItem[id] > 90+MAXKNIFESKINS && MarketItem[id] <= 90+MAXKNIFESKINS+MAXCASES)
- {
- formatex(ItemName, charsmax(ItemName), "%s", Case_Data[MarketItem[id]-(90+MAXKNIFESKINS)][0]);
- }
- else if(MarketItem[id] > 0)
- {
- formatex(ItemName, charsmax(ItemName), "%s", KeyName);
- }
- formatex(String, charsmax(String), "%L", id, "MARKET");
- new menu = menu_create(String, "MarketMenuh" );
- if(InMarket[id] == 0)
- {
- if(MarketItem[id] == 0)
- {
- formatex(String, charsmax(String), "%L^n", id, "CHOOSEITEM");
- }
- else
- {
- formatex(String, charsmax(String), "%L", id, "ITEM", ItemName);
- }
- menu_additem(menu, String, "1");
- formatex(String, charsmax(String), "%L", id, "CHOOSESELLITEM", MarketDollar[id]);
- menu_additem(menu, String, "2");
- formatex(String, charsmax(String), "%L", id, "TOMARKET");
- menu_additem(menu, String, "3");
- }
- else
- {
- formatex(String, charsmax(String), "%L", id, "INMARKET", ItemName, MarketDollar[id]);
- menu_additem(menu, String, "0");
- }
- menu_display(id, menu);
- }
- public MarketMenuh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- switch(x)
- {
- case 0:
- {
- InMarket[id] = 0;
- MarketItem[id] = 0;
- MarketDollar[id] = 0;
- MChooseItem(id);
- }
- case 1:
- {
- MChooseItem(id);
- }
- case 2:
- {
- client_cmd(id, "messagemode MARKETDOLLAR");
- MarketMenu(id);
- }
- case 3:
- {
- if(MarketItem[id] > 0)
- {
- new ItemName[32];
- if(MarketItem[id] > 0 && MarketItem[id] <= 90+MAXKNIFESKINS)
- {
- formatex(ItemName, charsmax(ItemName), "%s", SkinData[MarketItem[id]][0]);
- }
- else if(MarketItem[id] > 90+MAXKNIFESKINS && MarketItem[id] <= 90+MAXKNIFESKINS+MAXCASES)
- {
- formatex(ItemName, charsmax(ItemName), "%s", Case_Data[MarketItem[id]-(90+MAXKNIFESKINS)][0]);
- }
- else if(MarketItem[id] > 0)
- {
- formatex(ItemName, charsmax(ItemName), "%s", KeyName);
- }
- for(new i; i < MAXP; i++)
- if(is_user_connected(i))
- print_color(i, "!g%s!y %L", Prefix, i, "SOLVEDTOMARKET", Name[id], ItemName, MarketDollar[id]);
- InMarket[id] = 1;
- MarketMenu(id);
- }
- else
- {
- MarketMenu(id);
- }
- }
- }
- }
- public BuyMenu(id)
- {
- new String[128], ItemName[32];
- formatex(String, charsmax(String), "%L", id, "MARKETMENUBUY", Dollars[id]);
- new Menu = menu_create(String, "BuyMenuh" );
- for(new i; i < MAXP; i++)
- {
- if(!is_user_connected(i) || !Logined[i] || InMarket[i] == 0)
- continue;
- if(MarketItem[i] > 0 && MarketItem[i] <= 90+MAXKNIFESKINS)
- {
- formatex(ItemName, charsmax(ItemName), "%s", SkinData[MarketItem[i]][0]);
- }
- else if(MarketItem[i] > 90+MAXKNIFESKINS && MarketItem[i] <= 90+MAXKNIFESKINS+MAXCASES)
- {
- formatex(ItemName, charsmax(ItemName), "%s", Case_Data[MarketItem[i]-(90+MAXKNIFESKINS)][0]);
- }
- else if(MarketItem[i] > 0)
- {
- formatex(ItemName, charsmax(ItemName), "%s", KeyName);
- }
- new Nts[3];
- num_to_str(i, Nts, 2);
- formatex(String, charsmax(String), "%L", id, "SELLITEM", ItemName, MarketDollar[i], Name[i]);
- menu_additem(Menu, String, Nts);
- }
- menu_display(id, Menu);
- }
- public BuyMenuh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- if(InMarket[x] > 0 && MarketItem[x] > 0 && MarketDollar[x] > 0)
- {
- if(Dollars[id] < MarketDollar[x])
- {
- print_color(id, "!g%s!y %L", Prefix, id, "NOTENOUGHDOLLAR");
- return;
- }
- if(MarketItem[x] > 0 && MarketItem[x] <= 90+MAXKNIFESKINS)
- {
- Weapons[id][MarketItem[x]]++;
- Weapons[x][MarketItem[x]]--;
- }
- else if(MarketItem[x] > 90+MAXKNIFESKINS && MarketItem[x] <= 90+MAXKNIFESKINS+MAXCASES)
- {
- Cases[id][MarketItem[x]-(90+MAXKNIFESKINS)]++;
- Cases[x][MarketItem[x]-(90+MAXKNIFESKINS)]--;
- }
- else if(MarketItem[x] > 0)
- {
- Keys[id]++;
- Keys[x]--;
- }
- Dollars[id] -= MarketDollar[x];
- Dollars[x] += MarketDollar[x];
- InMarket[x] = 0;
- new ItemName[32];
- if(MarketItem[id] > 0 && MarketItem[id] <= 90+MAXKNIFESKINS)
- {
- formatex(ItemName, charsmax(ItemName), "%s", SkinData[MarketItem[id]][0]);
- }
- else if(MarketItem[id] > 90+MAXKNIFESKINS && MarketItem[id] <= 90+MAXKNIFESKINS+MAXCASES)
- {
- formatex(ItemName, charsmax(ItemName), "%s", Case_Data[MarketItem[id]-(90+MAXKNIFESKINS)][0]);
- }
- else if(MarketItem[id] > 0)
- {
- formatex(ItemName, charsmax(ItemName), "%s", KeyName);
- }
- for(new i; i < MAXP; i++)
- if(is_user_connected(i))
- print_color(i, "!g%s!y %L", Prefix, i, "BUYINGITEM", Name[id], ItemName, MarketDollar[x], Name[x]);
- MarketDollar[x] = 0;
- MarketItem[x] = 0;
- SQL_UpdateUser(id);
- SQL_UpdateUser(x);
- }
- }
- public Guns(id)
- {
- if(Choosen[id] > 1)
- {
- print_color(id, "!g%s!y %L", Prefix, id, "WPMESSAGE");
- }
- else if(Choosen[id] < 1)
- {
- Choosen[id] = 0;
- TakeWeapons(id);
- }
- }
- public PlayerSpawn(id)
- {
- if(!is_user_alive(id))
- return;
- set_user_armor(id, 100);
- if(get_pcvar_num(CvarWeaponMenu) == 1)
- {
- Choosen[id] = 0;
- TakeWeapons(id);
- }
- }
- public TakeWeapons(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 WeaponMenu(id)
- {
- if(Choosen[id] > 1)
- return;
- new String[128], Menu;
- if(Choosen[id] == 0)
- {
- formatex(String, 127, "%s %L", Prefix, LANG_SERVER, "WPMENU2");
- Menu = menu_create(String, "WeaponMenuh");
- for(new i = 1; i < sizeof(FirstWeaponNames); i++)
- {
- new NumToString[6];
- num_to_str(i, NumToString, 5);
- formatex(String, charsmax(String), "%s", FirstWeaponNames[i][0]);
- menu_additem(Menu, String, NumToString);
- }
- }
- if(Choosen[id] == 1)
- {
- formatex(String, 127, "%s %L", Prefix, LANG_SERVER, "WPMENU2");
- Menu = menu_create(String, "WeaponMenuh");
- for(new i = 1; i < sizeof(SecondaryWeaponNames); i++)
- {
- new NumToString[6];
- num_to_str(i, NumToString, 5);
- formatex(String, charsmax(String), "%s", SecondaryWeaponNames[i][0]);
- menu_additem(Menu, String, NumToString);
- }
- }
- menu_display(id, Menu);
- }
- public WeaponMenuh(id, Menu, Item)
- {
- if(Item == MENU_EXIT)
- {
- menu_destroy(Menu);
- return;
- }
- new Data[14], Line[32];
- new Access, Callback;
- menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data), Line, charsmax(Line), Callback);
- new x = str_to_num(Data);
- if(Choosen[id] == 0)
- {
- give_item(id, FirstWeaponNames[x][1]);
- cs_set_user_bpammo(id, FirstWeaponNames[x][2][0], 90);
- }
- if(Choosen[id] == 1)
- {
- give_item(id, SecondaryWeaponNames[x][1]);
- cs_set_user_bpammo(id, SecondaryWeaponNames[x][2][0], 90);
- }
- Choosen[id]++;
- if(Choosen[id] >= 2)
- {
- Grenades(id);
- }
- WeaponMenu(id);
- }
- stock PlayAnimation(const Player, const Sequence)
- {
- set_pev(Player, pev_weaponanim, Sequence);
- message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player);
- write_byte(Sequence);
- write_byte(pev(Player, pev_body));
- message_end();
- }
- 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, get_user_msgid("SayText"), _, players[i]);
- write_byte(players[i]);
- write_string(msg);
- message_end();
- }
- }
- }
- return PLUGIN_HANDLED;
- }
- stock Grenades(id)
- {
- give_item(id, "weapon_hegrenade");
- 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 }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement