Plugin Cerut: As dori si eu cand un jucator primeste un cufar/cutie pe server (tin sa mentionez folosesc addons-ul cs go remake 1G de nubo) sa poata sa se deschida un (MOTD) in care sa ii pice cutia la fel ca in CS GO (https://www.youtube.com/watch?v=dzPMWgCKeQw) si mai jos as vrea un buton mic (OPEN) prin care sa le deschida!
Descriere (adica ce face el mai exact): Dechidere cutii cs go prin (MOTD)
Serverul ruleaza (HLDS/ReHLDS): amxmodx
Versiune AMX Mod X: 1.8.1
Modul Serverului: CS GO REMAKE (Versiunea 1G)
Cerere plugin Go!
Categoria cu cereri de pluginuri si nu numai.
Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com
Forum rules
Accesează link-ul pentru a putea vedea regulile forumului
Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Accesează link-ul pentru a putea vedea regulile forumului
Daca doriti sa vi se modifice un plugin, va rugam postati aici .
- puNx
- Membru, skill 0
- Posts: 80
- Joined: 07 Aug 2015, 18:26
- Detinator Steam: Da
- CS Status: :)
- Detinator server CS: Furien.Enjoygame.RO
- SteamID: #WAS
- Fond eXtream: 0
- Contact:
Last edited by Rainq on 07 Mar 2019, 20:49, edited 1 time in total.
Reason: Editat dupa model
Reason: Editat dupa model
Furien.Enjoygame.Ro[+18][VIP FREE][Admine Free]
Ofer suport tehnic si incredere pentru servere de CS 1.6 !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
- puNx
- Membru, skill 0
- Posts: 80
- Joined: 07 Aug 2015, 18:26
- Detinator Steam: Da
- CS Status: :)
- Detinator server CS: Furien.Enjoygame.RO
- SteamID: #WAS
- Fond eXtream: 0
- Contact:
cineva ?
Furien.Enjoygame.Ro[+18][VIP FREE][Admine Free]
Ofer suport tehnic si incredere pentru servere de CS 1.6 !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
- DanN
- Membru, skill 0
- Posts: 70
- Joined: 30 Sep 2017, 22:12
- Detinator Steam: Da
- CS Status: Citesc forumul eXtreamCS.com...!
- Detinator server CS: RobertshemA
- SteamID: 84638588213
- Fond eXtream: 0
- Location: Cape Verde
- Has thanked: 1 time
- Contact:
Este imposibil sa faci cutia ca si in csgo pentru ca motd nu suporta animati si etc. Singurul lucru pe care il poti face la motd e sa afiseszi cuti sau alte chestii
- puNx
- Membru, skill 0
- Posts: 80
- Joined: 07 Aug 2015, 18:26
- Detinator Steam: Da
- CS Status: :)
- Detinator server CS: Furien.Enjoygame.RO
- SteamID: #WAS
- Fond eXtream: 0
- Contact:
din cate am inteles tine de php si sql deci se poate face
Furien.Enjoygame.Ro[+18][VIP FREE][Admine Free]
Ofer suport tehnic si incredere pentru servere de CS 1.6 !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
- dragonCSX
- Membru, skill +1
- Posts: 281
- Joined: 04 Feb 2017, 17:36
- Detinator Steam: Da
- CS Status: moneymaker.
- Detinator server CS: xmas.arenadevils.ro
- SteamID: csfweed01
- Fond eXtream: 0
- Location: Ploiesti
- Discord: csfweed1337
- Has thanked: 8 times
- Been thanked: 6 times
- Contact:
Ceva de genu' are Arkxes, dar nu un case opening in motd ci afiseara cutiile si skinurile acestora in motd.
Nimeni nu va face niciodata o munca asa de "deasa" pe moca , discuta cu arkxes , zorken , adeptii modului csgo remake !
Nimeni nu va face niciodata o munca asa de "deasa" pe moca , discuta cu arkxes , zorken , adeptii modului csgo remake !
>> XMAS.ARENADEVILS.RO # See you again in 2025 <<
>> DR.ARENADEVILS.RO # Official Deathrun Mod 2024 <<
- 1TAP GOD
- Membru, skill +1
- Posts: 152
- Joined: 03 Sep 2018, 00:20
- Detinator Steam: Da
- SteamID: /id/assasinssmdfk
- Fond eXtream: 0
- Has thanked: 16 times
- Been thanked: 16 times
Asa ceva este pe net dar nu in romania si funcționează pe bază modului lu deroid editat de Psychical
http://prntscr.com/myzk9w
http://prntscr.com/myzkus
----------------Steam----------------
-----------------------------------------------------------
And she be actin' funny, probably think a nigga need her
I thought I was faithful, she say I'm a cheater
They thought I was taken, I'm ready to mingle
I thought I was faithful, she say I'm a cheater
They thought I was taken, I'm ready to mingle
- 1TAP GOD
- Membru, skill +1
- Posts: 152
- Joined: 03 Sep 2018, 00:20
- Detinator Steam: Da
- SteamID: /id/assasinssmdfk
- Fond eXtream: 0
- Has thanked: 16 times
- Been thanked: 16 times
----------------Steam----------------
-----------------------------------------------------------
And she be actin' funny, probably think a nigga need her
I thought I was faithful, she say I'm a cheater
They thought I was taken, I'm ready to mingle
I thought I was faithful, she say I'm a cheater
They thought I was taken, I'm ready to mingle
- DevilBoy.eXe
- Super moderator
- Posts: 1678
- Joined: 05 Jun 2016, 23:04
- Detinator Steam: Da
- Detinator server CS: GO.WARED.RO
- SteamID: DevilBoy_eXe
- Reputatie: Super Moderator
- Fond eXtream: 0
- Location: beyond the time
- Discord: zeux.
- Has thanked: 15 times
- Been thanked: 71 times
- Contact:
Si de ce incerci sa faci chestia asta? Avand in vedere ca motd-ul la majoritatea cs-urilor este blocat nu vei reusi sa faci nimic decat sa ingreunezi jocul pentru jucatori
- puNx
- Membru, skill 0
- Posts: 80
- Joined: 07 Aug 2015, 18:26
- Detinator Steam: Da
- CS Status: :)
- Detinator server CS: Furien.Enjoygame.RO
- SteamID: #WAS
- Fond eXtream: 0
- Contact:
Deoarece nu am mai vazut pe niciun sv de cs go remake plugin-ul asta si mi sa parut interesant !DevilBoy.eXe wrote: ↑17 Mar 2019, 18:33Si de ce incerci sa faci chestia asta? Avand in vedere ca motd-ul la majoritatea cs-urilor este blocat nu vei reusi sa faci nimic decat sa ingreunezi jocul pentru jucatori
Edit: Nu ma lasa sa compilez "rcsgo" am incercat si local dar degeaba
SS:
Sursa:
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #include <cstrike> #include <fun> #include <sqlx> #include <supplybox> #include <rcsgo> // # Project by DeRoiD https://forums.alliedmods.net/showthread.php?t=265653 // # Author by Psychical https://www.supergames.lt/topic/244152- ... 100€-1-ip/ new const PLUGIN[] = "Global Offensive"; new const VERSION[] = "4.62"; new const AUTHOR[] = "Psychical"; /*================================================================================ [MySQLx Vars, other] =================================================================================*/ #define DB_HOST "" #define DB_USER "" #define DB_PASS "" #define DB_DATA "" #define TABLE_NAME "rcsgo_player" #define EVENT "^1[^4Event^1]" // Prefix'as prie tekstų Event #define ACCESS_VIP ADMIN_LEVEL_H // VIP access #define ACCESS_ADMIN ADMIN_BAN // ADMIN access #define SOUND_SOLD "ambience/quail1.wav" new Handle:g_hTuple; new g_msgid_ScreenFade, g_msgid_SyncHud; #define MAX 400 // Jei MAX 200 tai CHEST_ID = 201 ir KEY_ID = 202 #define MAX_RANGS 30 #define CHEST_ID 500 #define CHEST_COUNT 7 #define KEY_ID 600 #define KEY_ID_TEXT "600" #define POINTS_KILL_MIN 3 #define POINTS_KILL_MAX 9 #define POINTS_KILL_HS 3 // Jei HS, Kiek pridės prie normaliu tasku #define POINTS_KILL_VIP_FLAG ACCESS_VIP // VIP access #define POINTS_KILL_MIN_VIP 2 // Pridedamas Prie POINTS_KILL_MIN #define POINTS_KILL_MAX_VIP 5 // Pridedamas Prie POINTS_KILL_MAX #define POINTS_KILL_ADMIN_FLAG ACCESS_ADMIN // ADMIN access #define POINTS_KILL_MIN_ADMIN 5 // Pridedamas Prie POINTS_KILL_MIN #define POINTS_KILL_MAX_ADMIN 7 // Pridedamas Prie POINTS_KILL_MAX #define DROP_RATE_KEYS 500 #define DROP_RATE_CHEST 500 #define DROP_RATE_KILL 8 #define DROP_RATE_PLANT 8 #define DROP_RATE_DEF 8 #define DROP_RATE_HOSTAGE 8 #define DROP_RATE_VIP_FLAG ACCESS_VIP #define DROP_RATE_KILL_VIP 12 #define DROP_RATE_EXPLODE_VIP 12 #define DROP_RATE_PLANT_VIP 12 #define DROP_RATE_DEF_VIP 12 #define DROP_RATE_HOSTAGE_VIP 12 #define DROP_RATE_ADMIN_FLAG ACCESS_ADMIN #define DROP_RATE_KILL_ADMIN 14 #define DROP_RATE_PLANT_ADMIN 14 #define DROP_RATE_DEF_ADMIN 14 #define DROP_RATE_HOSTAGE_ADMIN 14 #define MIN_PASSWORD_LENGTH 4 #define MIN_CODE_LENGTH 6 #define MARKET_MIN_PRICE 50 #define MARKET_WAIT_ADD 3 #define HOSTAGE_ESCAPE 5 #define HOSTAGE_ESCAPE_STEAM 7 #define HOSTAGE_ESCAPE_VIP 9 #define HOSTAGE_ESCAPE_ADMIN 12 #define HOSTAGE_ESCAPE_SADMIN 14 #define HOSTAGE_KILL_PENALTY 15 // Reduce Points #define BOMB_PLANTED_POINTS 3 #define BOMB_EXPLODE_POINTS 5 #define BOMB_DEFUSED_POINTS 7 #define BOMB_PLANTED_POINTS_VIP 5 #define BOMB_EXPLODE_POINTS_VIP 7 #define BOMB_DEFUSED_POINTS_VIP 9 #define BOMB_PLANTED_POINTS_ADMIN 7 #define BOMB_EXPLODE_POINTS_ADMIN 9 #define BOMB_DEFUSED_POINTS_ADMIN 12 #define BOMB_PLANTED_POINTS_SADMIN 9 #define BOMB_EXPLODE_POINTS_SADMIN 12 #define BOMB_DEFUSED_POINTS_SADMIN 15 #define ROUND_WIN_POINTS 24 #define NEED_MIN_PLAYERS 4 new g_logfile[64]; new bool:gEnd = false; #define TASKID_REMENU 100 new csgo_password_field; new colchar[3][2] = { "^x03"/*team col*/, "^x04"/*green*/, "^x01"/*white*/ } new cvar_refill_spawn; // Cvar pointers new p_allchat, p_alltalk, p_hidestat, p_teamchat; // Vars to check if message has already been duplicated new alv_sndr, alv_str2[26], alv_str4[101]; new msg[513]; new gWarnings[33] = 0; /*=========*/ new bool:bTrade[33] = false; new bool:bTradeAccepted[33] = false; /*=========*/ /*================================================================================ =================================================================================*/ new const g_weapons[] = { CSW_P228, CSW_SCOUT, CSW_XM1014, CSW_MAC10, CSW_AUG, CSW_ELITE, CSW_FIVESEVEN, CSW_UMP45, CSW_SG550, CSW_GALI, CSW_GALIL, CSW_FAMAS, CSW_USP, CSW_GLOCK18, CSW_AWP, CSW_MP5NAVY, CSW_M249, CSW_M3, CSW_M4A1, CSW_TMP, CSW_G3SG1, CSW_DEAGLE, CSW_SG552, CSW_AK47, CSW_P90 } new const g_other_weapons[] = { CSW_KNIFE, CSW_HEGRENADE, CSW_C4 } new const g_max_clip[] = { 13, 10, 7, 30, 30, 30, 20, 25, 30, 35, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 7, 30, 30, 50 } enum _:AmmoIds { ammo_none, ammo_338magnum = 1, ammo_762nato, ammo_556natobox, ammo_556nato, ammo_buckshot, ammo_45acp, ammo_57mm, ammo_50ae, ammo_357sig, ammo_9mm } new g_iAmmoMax[AmmoIds] = { -1, 30, 90, 200, 90, 32, 100, 100, 35, 52, 120 } new const g_iAmmoWeaponSharedBitSum[AmmoIds] = { 0, (1<<CSW_AWP), (1<<CSW_SCOUT)|(1<<CSW_G3SG1)|(1<<CSW_AK47), (1<<CSW_M249), (1<<CSW_AUG)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_M4A1)|(1<<CSW_SG552), (1<<CSW_XM1014)|(1<<CSW_M3), (1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_USP), (1<<CSW_P90)|(1<<CSW_FIVESEVEN), (1<<CSW_DEAGLE), (1<<CSW_P228), (1<<CSW_MP5NAVY)|(1<<CSW_TMP)|(1<<CSW_ELITE)|(1<<CSW_GLOCK18) } new g_msgid_AmmoX; #pragma semicolon 1; new WeaponNames[MAX][64], WeaponMdls[MAX][128], WeaponMdlsP[MAX][128], Weapons[MAX], WeaponDrop[MAX], AllWeapon; new uWeapon[MAX][33], weaponRang[MAX], uWeaponKills[MAX][33], Chest[33][CHEST_COUNT+1], pKey[33], Points[33], Rang[33], Killers[33], Patirtis[33], Kills[33], aThing[33], aTarget[33], aPoints[33], Prefix[32]; new Folder[48], SkinFile[48], RangFile[48], DefaFile[48], MenuMod[33]; new WeaponinMarket[33], inMarket[33], MarketPoints[33]; new SavedPassword[33][32], bool:Loged[33], bool:gLogged[33], bool:gRegistered[33], Password[33][32]; new DefaultSkin[33][32], DefaultSkinP[33][32], DefaultSkinW[33][32], NeedPatirtis[MAX_RANGS], Rangs[MAX_RANGS][32]; new gCanLoad, gCanSave; new bUsingGuns[33][CSW_VESTHELM]; new gLastMarketTime[33] = 0; new chestsList[CHEST_COUNT+1][128][512]; new chestsChance[CHEST_COUNT+1][128]; new aAmount[33], mAmount[33], uniqPrice[MAX]; new const eWeapon[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90" }; new const szWeaponNames[][] = { "", "P228", "", "Scout", "HE", "XM1014", "C4", "MAC10", "Aug", "SG", "Elite", "Five Seven", "UMP45", "SG550", "Galil", "Famas", "USP", "Glock", "AWP", "MP5 Navy", "M249", "M3", "M4A1", "TMP", "G3SG1", "FB", "Deagle", "SG552", "AK47", "Knife", "P90" }; public plugin_precache() { register_dictionary("globaloffensive.txt"); get_time("rcsgo_%Y%m%d.log", g_logfile, charsmax(g_logfile)); log_errors("-------------------- == --------------------"); new Line[512], Data[9][128], Len; AllWeapon++; get_configsdir(Folder, 47); format(SkinFile, 47, "%s/rcsgo/skins.cfg", Folder); format(RangFile, 47, "%s/rcsgo/rangs.cfg", Folder); format(DefaFile, 47, "%s/rcsgo/dskins.cfg", Folder); if(file_exists(RangFile)) { for(new i; i < file_size(RangFile, 1); i++) { if(i >= MAX_RANGS) { log_errors("[plugin_precache] Increase your MAX_RANGS define."); break; } read_file(RangFile, i, Line, 127, Len); parse(Line, Data[0], 31, Data[1], 31); copy(Rangs, 31, Data[0]); NeedPatirtis = str_to_num(Data[1]); } } if(file_exists(SkinFile)) { for(new i; i < file_size(SkinFile, 1); i++) { if(AllWeapon >= MAX) { log_errors("[plugin_precache] Increase your MAX define."); break; } read_file(SkinFile, i, Line, 512, Len); if(strlen(Line) < 5 || Line[0] == ';' || (Line[0] == '/' && Line[1] == '/')) continue; // Ginklas, pavadinimas, v_, p_, chance - old // Ginklas, pavadinimas, v_, p_, chest, chance, number parse(Line, Data[0], 31, Data[1], 31, Data[2], 128, Data[3], 128, Data[4], 31, Data[5], 31, Data[6], 31, Data[7], 31, Data[8], 31); Weapons[AllWeapon] = str_to_num(Data[0]); copy(WeaponNames[AllWeapon], 63, Data[1]); if(ValidMdl(Data[2])) { precache_model(Data[2]); copy(WeaponMdls[AllWeapon], 128, Data[2]); if(file_exists(Data[3]) && strlen(Data[3]) > 5) { precache_model(Data[3]); copy(WeaponMdlsP[AllWeapon], 128, Data[3]); } } WeaponDrop[AllWeapon] = str_to_num(Data[4]); chestsChance[str_to_num(Data[4])][str_to_num(Data[5])] += 1; chestsList[str_to_num(Data[4])][str_to_num(Data[5])][str_to_num(Data[6])] = AllWeapon; log_amx("chestsList[%s][%s][%s] = %d", Data[4], Data[5], Data[6], AllWeapon); uniqPrice[AllWeapon] = str_to_num(Data[7]); if(Data[8][0] == 'W') weaponRang[AllWeapon] = 4; else if(Data[8][0] == 'B') weaponRang[AllWeapon] = 3; else if(Data[8][0] == 'R') weaponRang[AllWeapon] = 2; else if(Data[8][0] == 'Y') weaponRang[AllWeapon] = 1; else weaponRang[AllWeapon] = 0; AllWeapon++; } } if(file_exists(DefaFile)) { for(new i; i < file_size(DefaFile, 1); i++) { read_file(DefaFile, i, Line, 127, Len); if(strlen(Line) < 5 || Line[0] == ';' || (Line[0] == '/' && Line[1] == '/')) continue; parse(Line, Data[0], 31, Data[1], 47, Data[2], 47); if(ValidMdl(Data[1])) { precache_model(Data[1]); copy(DefaultSkin[str_to_num(Data[0])], 47, Data[1]); if(file_exists(Data[2]) && strlen(Data[2]) > 5) { precache_model(Data[2]); copy(DefaultSkinP[str_to_num(Data[0])], 47, Data[2]); } if(file_exists(Data[3]) && strlen(Data[3]) > 5) { precache_model(Data[3]); copy(DefaultSkinW[str_to_num(Data[0])], 47, Data[3]); } } } } precache_sound(SOUND_SOLD); g_hTuple = SQL_MakeDbTuple(DB_HOST, DB_USER, DB_PASS, DB_DATA); new szTables[640]; format(szTables, 640, "CREATE TABLE IF NOT EXISTS `%s` (`username` varchar(64) COLLATE utf8_lithuanian_ci NOT NULL, `password` varchar(64) COLLATE utf8_lithuanian_ci NOT NULL, `patirtis` int(11) NOT NULL, `points` int(11) NOT NULL, `keys` int(11) NOT NULL, `chests` int(11) NOT NULL, `rang` int(11) NOT NULL, `skins` varchar(512) COLLATE utf8_lithuanian_ci NOT NULL, PRIMARY KEY (`username`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_lithuanian_ci", TABLE_NAME); SQL_ThreadQuery( g_hTuple, "QueryCreateTable", szTables); } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar(PLUGIN, VERSION, FCVAR_SERVER); register_supply_box("Experience Box"); register_clcmd("say /menu", "MenuOpen"); register_clcmd("say /reg", "RegMenu"); register_clcmd("say /register", "TradeMenu"); register_clcmd("say /kills", "KillsLeft"); register_clcmd("say menu", "MenuOpen"); register_clcmd("say reg", "RegMenu"); register_clcmd("say register", "TradeMenu"); register_clcmd("say kills", "KillsLeft"); register_clcmd("say !menu", "MenuOpen"); register_clcmd("say !reg", "RegMenu"); register_clcmd("say !register", "TradeMenu"); register_clcmd("say !kills", "KillsLeft"); register_clcmd("say .menu", "MenuOpen"); register_clcmd("say .reg", "RegMenu"); register_clcmd("say .register", "TradeMenu"); register_clcmd("say .kills", "KillsLeft"); register_clcmd("say /savepass", "SavePassword"); register_clcmd("say /skins", "cmdUniq"); register_clcmd("radio1", "MenuOpen"); register_concmd("Cost", "MarketCost"); register_concmd("Gift", "GiftPoint"); register_concmd("setAmount", "SetAmount"); register_concmd("setMarketAmount", "SetMarketAmount"); register_concmd("UserPassword", "PlayerPassword"); register_logevent("Hostage_Rescued", 3, "2=Rescued_A_Hostage"); register_event("TextMsg", "TextMsg_Killed_Hostage", "b", "1=4", "2=#Killed_Hostage"); register_event("HLTV", "RoundStart", "a", "1=0", "2=0"); register_forward(FM_ClientUserInfoChanged, "NameChange"); register_forward(FM_SetModel, "SetModel"); register_message(get_user_msgid("SendAudio"), "Message_SendAudio"); RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1); for(new i; i < sizeof(eWeapon); i++) { if(strlen(eWeapon) > 3) { RegisterHam(Ham_Item_Deploy, eWeapon, "WeaponSwitch", 1); } } csgo_password_field = register_cvar("csgo_password_field", "_rcsgo"); g_msgid_ScreenFade = get_user_msgid("ScreenFade"); g_msgid_SyncHud = CreateHudSyncObj(); g_msgid_AmmoX = get_user_msgid("AmmoX"); cvar_refill_spawn = register_cvar("csgo_refill_onspawn", "1"); p_allchat = register_cvar("sv_allchat", "2"); p_hidestat = register_cvar("ac_hidestatus", "0"); p_teamchat = register_cvar("ac_teamchat", "0"); register_cvar( "csgo_nick_show", "0" ); p_alltalk = get_cvar_pointer( "sv_alltalk" ); register_message(get_user_msgid("SayText"), "col_changer"); set_task(5.0, "LoadConnected"); gCanLoad = 0; gCanSave = 0; new iEnt = -1; while((iEnt = find_ent_by_class(iEnt, "env_sound"))) { DispatchKeyValue(iEnt, "roomtype", "0"); DispatchKeyValue(iEnt, "radius", "0"); } format(Prefix, 31, "%L", LANG_PLAYER, "PREFIX"); } public plugin_cfg() { if(!g_hTuple) { g_hTuple = SQL_MakeStdTuple(); } return 1; } public plugin_natives() { register_native("cs_get_user_points", "native_cs_get_user_points", 1); register_native("cs_set_user_points", "native_cs_set_user_points", 1); } public native_cs_get_user_points(player) { return Points[player]; } public native_cs_set_user_points(player, prize) { Points[player] = prize; SavePoints(player); } public sb_pickup(id) { new iPlayers[32], iPlayersNum; get_players(iPlayers, iPlayersNum); new szName[32]; get_user_name(id, szName, 31); new Random = random_num(1, 100); new point = random_num(50, 300), points = random_num(100, 300), plus = random_num(200, 500); if(Random < 5) { drop_keys(id, DROP_RATE_KEYS); } else if(Random < 25) { drop_item(id, DROP_RATE_CHEST); } else if(iPlayersNum >= 0 && iPlayersNum <= 10) { Points[id] += point; client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUND_ALL", EVENT, szName, point); } else if(iPlayersNum >= 11 && iPlayersNum <= 20) { Points[id] += points; client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUND_ALL", EVENT, szName, points); } else if(iPlayersNum >= 21) { Points[id] += plus; client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUND_ALL", EVENT, szName, plus); } } public SavePassword(id) { if(!Loged[id]) { if(!gRegistered[id]) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); } else { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "LOGIN_FIRST", Prefix); } return PLUGIN_HANDLED; } new passfield[32]; get_pcvar_string(csgo_password_field, passfield, 31); set_user_info(id, passfield, SavedPassword[id]); client_cmd(id, "setinfo %s %s", passfield, SavedPassword[id]); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "SUCCESS_SAVED", Prefix); return PLUGIN_HANDLED; } public KillsLeft(id) { if(!Loged[id]) { if(!gRegistered[id]) { print_color(id, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); print_color(id, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); } else { print_color(id, "%L", LANG_PLAYER, "LOGIN_FIRST", Prefix); } return PLUGIN_HANDLED; } if(get_user_flags(id) & ACCESS_ADMIN) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "KILLS_SHOW_KEYS_75", EVENT, 75 - (Killers[id] % 75), Killers[id] % 75); } else if(get_user_flags(id) & ACCESS_VIP) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "KILLS_SHOW_KEYS_100", EVENT, 100 - (Killers[id] % 100), Killers[id] % 100); } else { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "KILLS_SHOW_KEYS_125", EVENT, 125 - (Killers[id] % 125), Killers[id] % 125); } return PLUGIN_CONTINUE; } public TextMsg_Killed_Hostage(id) { Points[id] -= HOSTAGE_KILL_PENALTY; set_hudmessage(255, 0, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(id, "%L", LANG_PLAYER, "POINT_REDUCE", HOSTAGE_KILL_PENALTY); SavePoints(id); } public Hostage_Rescued() { static loguser[80], name[32], id; read_logargv(0, loguser, 79); parse_loguser(loguser, name, 31); id = get_user_index(name); if(is_user_connected(id) && get_playersnum() >= NEED_MIN_PLAYERS) if(get_user_flags(id) & ACCESS_ADMIN) { Points[id] += HOSTAGE_ESCAPE_ADMIN; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(id, "%L", LANG_PLAYER, "POINT", HOSTAGE_ESCAPE_ADMIN); drop_item(id, DROP_RATE_HOSTAGE_ADMIN); SavePoints(id); } else if(get_user_flags(id) & ACCESS_VIP) { Points[id] += HOSTAGE_ESCAPE_VIP; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(id, "%L", LANG_PLAYER, "POINT", HOSTAGE_ESCAPE_VIP); drop_item(id, DROP_RATE_HOSTAGE_VIP); SavePoints(id); } else { Points[id] += HOSTAGE_ESCAPE; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(id, "%L", LANG_PLAYER, "POINT", HOSTAGE_ESCAPE); drop_item(id, DROP_RATE_HOSTAGE); SavePoints(id); } } public LoadConnected() { gCanLoad = 1; gCanSave = 1; for(new i=1; i <= get_maxplayers(); i++) { if(is_user_connected(i)) { add_delay(i); } } } public plugin_end() { SQL_FreeHandle(g_hTuple); } public bomb_explode(planter, defuser) { if(is_user_connected(planter) && get_playersnum() >= NEED_MIN_PLAYERS) if(get_user_flags(planter) & ACCESS_ADMIN) { Points[planter] += BOMB_EXPLODE_POINTS_ADMIN; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_EXPLODE_POINTS_ADMIN); drop_item(planter, DROP_RATE_PLANT_ADMIN); SavePoints(planter); } else if(get_user_flags(planter) & ACCESS_VIP) { Points[planter] += BOMB_EXPLODE_POINTS_VIP; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_EXPLODE_POINTS_VIP); drop_item(planter, DROP_RATE_PLANT_VIP); SavePoints(planter); } else { Points[planter] += BOMB_EXPLODE_POINTS; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_EXPLODE_POINTS); drop_item(planter, DROP_RATE_PLANT); SavePoints(planter); } } public bomb_planted(planter) { if(is_user_connected(planter) && get_playersnum() >= NEED_MIN_PLAYERS) if(get_user_flags(planter) & ACCESS_ADMIN) { Points[planter] += BOMB_PLANTED_POINTS_ADMIN; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_PLANTED_POINTS_ADMIN); drop_item(planter, DROP_RATE_PLANT_ADMIN); SavePoints(planter); } else if(get_user_flags(planter) & ACCESS_VIP) { Points[planter] += BOMB_PLANTED_POINTS_VIP; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_PLANTED_POINTS_VIP); drop_item(planter, DROP_RATE_PLANT_VIP); SavePoints(planter); } else { Points[planter] += BOMB_PLANTED_POINTS; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_PLANTED_POINTS); drop_item(planter, DROP_RATE_PLANT); SavePoints(planter); } } public bomb_defused(defuser) { if(is_user_connected(defuser) && get_playersnum() >= NEED_MIN_PLAYERS) if(get_user_flags(defuser) & ACCESS_ADMIN) { Points[defuser] += BOMB_DEFUSED_POINTS_ADMIN; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(defuser, "%L", LANG_PLAYER, "POINT", BOMB_DEFUSED_POINTS_ADMIN); drop_item(defuser, DROP_RATE_DEF_ADMIN); SavePoints(defuser); } else if(get_user_flags(defuser) & ACCESS_VIP) { Points[defuser] += BOMB_DEFUSED_POINTS_VIP; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(defuser, "%L", LANG_PLAYER, "POINT", BOMB_DEFUSED_POINTS_VIP); drop_item(defuser, DROP_RATE_DEF_VIP); SavePoints(defuser); } else { Points[defuser] += BOMB_DEFUSED_POINTS; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(defuser, "%L", LANG_PLAYER, "POINT", BOMB_DEFUSED_POINTS); drop_item(defuser, DROP_RATE_DEF); SavePoints(defuser); } } public RoundStart() { gEnd = false; } public Message_SendAudio(iMsgId, iMsgDest, id) { if(!id && !gEnd && get_playersnum() >= NEED_MIN_PLAYERS) { new szSound[14]; get_msg_arg_string(2, szSound, charsmax(szSound)); new iPlayers[32], iNum, tId; if(equal(szSound, "%!MRAD_ctwin")) { get_players(iPlayers, iNum, "ceh", "CT"); for(new i; i < iNum; i++) { tId = iPlayers; if(!is_user_alive(tId) || cs_get_user_team(tId) != CS_TEAM_CT) { continue; } Points[tId] += ROUND_WIN_POINTS; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(tId, "%L", LANG_PLAYER, "POINT", ROUND_WIN_POINTS); SavePoints(tId); SaveData(tId); } gEnd = true; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "CT_TEAM_WIN", Prefix, ROUND_WIN_POINTS); } else if( equal(szSound, "%!MRAD_terwin") ) { get_players(iPlayers, iNum, "ceh", "TERRORIST"); for(new i; i < iNum; i++) { tId = iPlayers; if(!is_user_alive(tId) || cs_get_user_team(tId) != CS_TEAM_T) { continue; } Points[tId] += ROUND_WIN_POINTS; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(tId, "%L", LANG_PLAYER, "POINT", ROUND_WIN_POINTS); SavePoints(tId); SaveData(tId); } gEnd = true; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "T_TEAM_WIN", Prefix, ROUND_WIN_POINTS); } } } public PlayerSpawn(id) { if(is_user_alive(id)) { if(!Loged[id] && gRegistered[id]) { RegMenu(id); set_user_maxspeed(id, 1.0); if(!equal(Password[id], SavedPassword[id])) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "LOGIN_FIRST", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "LOGIN_FIRST", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "LOGIN_FIRST", Prefix); } } if(!gRegistered[id]) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); } if(get_pcvar_num(cvar_refill_spawn)) { static iWeapons[32], iNum, i, iGun; iNum = 0; get_user_weapons(id, iWeapons, iNum); for( i = 0; i < iNum; i++ ) { for (new a = 0; a < sizeof (g_other_weapons); a++) if (iWeapons == g_other_weapons[a]) continue; for (new a = 0; a < sizeof (g_weapons); a++) { if(g_weapons[a] == iWeapons) { if (get_weapon_maxclip(iWeapons)) { iGun = has_user_weapon(id, iWeapons); client_cmd(id, "spk ^"items/9mmclip1.wav^""); cs_set_weapon_ammo(iGun, get_weapon_maxclip(iWeapons[i])); SetFullBpAmmo(id, iWeapons[i]); } } } } } if(cs_get_user_team(id) == CS_TEAM_CT) { cs_set_user_defuse(id, 1); } } return PLUGIN_CONTINUE; } public col_changer( msg_id, msg_dest, rcvr ) { new str2[26]; get_msg_arg_string( 2, str2, 25 ); if( equal( str2, "#Cstrike_Chat", 13 ) ) { new str3[22]; get_msg_arg_string( 3, str3, 21 ); if( !strlen( str3 ) ) { new str4[101]; get_msg_arg_string( 4, str4, 100 ); new sndr = get_msg_arg_int( 1 ); new bool:is_team_msg = !bool:equal( str2, "#Cstrike_Chat_All", 17 ); new sndr_team = get_user_team( sndr ); new bool:is_sndr_spec = !bool:( 0 < sndr_team < 3 ); new bool:same_as_last = bool:( alv_sndr == sndr && equal( alv_str2, str2 ) && equal( alv_str4, str4) ); if( !same_as_last ) { // Duplicate message once new allchat = clamp( get_pcvar_num( p_allchat ), 0, 2 ); if( allchat == 2 || ( allchat == 1 && clamp( get_pcvar_num( p_alltalk ), 0, 1 ) == 1 ) ) { if( !( is_team_msg && ( is_sndr_spec || is_team_msg && get_pcvar_num( p_teamchat ) == 0 ) ) ) { // Don't duplicate if it's a spectator team message new flags[5], team[10]; if( is_user_alive( sndr ) ) flags = "bch"; else flags = "ach"; if( is_team_msg ) { add( flags[strlen( flags )], 4, "e" ); if( sndr_team == 1 ) team = "TERRORIST"; else team = "CT"; } new players[32], num; get_players( players, num, flags, team ); buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4 ); // normal colors for( new i=0; i < num; i++ ) { message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, players[i] ); write_byte( sndr ); write_string( msg ); message_end(); } } alv_sndr = sndr; alv_str2 = str2; alv_str4 = str4; if(task_exists(411)) remove_task(411); set_task( 0.1, "task_clear_antiloop_vars", 411 ); } } if(gLogged[sndr]) { if( !same_as_last ) buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4 ); set_msg_arg_string( 2, msg ); set_msg_arg_string( 4, "" ); } } } return PLUGIN_CONTINUE; } public buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4[ ] ) { new sndr_name[33]; get_user_name( sndr, sndr_name, 32); new prefix[126] = "^x01"; if( get_pcvar_num( p_hidestat ) == 0 ) { if( is_sndr_spec ) prefix = "^x01*SPEC* "; else if( !is_user_alive( sndr ) ) prefix = "^x01*DEAD* "; } if(is_user_connected(sndr)) { if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_RCON) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[Savininkas] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_LEVEL_B) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[Vyr. Prižiūrėtojas] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_LEVEL_C) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[Prižiūrėtojas] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_LEVEL_D) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[Administratorius] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_LEVEL_E) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[ADMIN] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_LEVEL_H) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[VIP] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_USER) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(!gLogged[sndr]) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[Neprisijunges] "); add(prefix[strlen(prefix)-1], 29, szMsg); } } if( is_team_msg ) { if( is_sndr_spec ) prefix = "^x01(Spectator) "; else if( sndr_team == 1 ) add( prefix[strlen(prefix)-1], 29, "^x01(Terrorist) " ); else if( sndr_team == 2 ) add( prefix[strlen(prefix)-1], 29, "^x01(Counter-Terrorist) " ); } format( msg, 512, "%s%s%s : %s%s", strlen( prefix ) > 1 ? prefix : "", colchar[namecol], sndr_name, colchar[msgcol], str4 ); return PLUGIN_HANDLED; } public task_clear_antiloop_vars( ) { alv_sndr = 0; alv_str2 = ""; alv_str4 = ""; return PLUGIN_HANDLED; } public MenuOpen(id) { if(!Loged[id]) { RegMenu(id); return PLUGIN_HANDLED; } aAmount[id] = 1; MenuMod[id] = 0; Menu(id); return PLUGIN_HANDLED; } public client_death(Killer, Victim, wpnindex, hitplace, TK) { if(Killer == Victim) { return PLUGIN_HANDLED; } if(!gRegistered[Victim]) { client_print_color(Victim, print_team_default, "%L", LANG_PLAYER, "BLANK"); client_print_color(Victim, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); client_print_color(Victim, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); client_print_color(Victim, print_team_default, "%L", LANG_PLAYER, "BLANK"); } if(!gRegistered[Killer]) { client_print_color(Killer, print_team_default, "%L", LANG_PLAYER, "BLANK"); client_print_color(Killer, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); client_print_color(Killer, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); client_print_color(Killer, print_team_default, "%L", LANG_PLAYER, "BLANK"); } Patirtis[Killer] += 3; Kills[Killer]++; Killers[Killer]++; static kGun; kGun = get_user_weapon(Killer, _, _); new szName[32]; get_user_name(Killer, szName, 31); new rNum; rNum = random(CHEST_COUNT)+1; new Point = random_num(2000, 8000); if(bUsingGuns[Killer][kGun]) { uWeaponKills[bUsingGuns[Killer][kGun]][Killer]++; SaveGunsKills(Killer); set_task(0.1, "UpdateStatusText", Killer); } if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 1)) { if(Patirtis[Killer] >= NeedPatirtis[Rang[Killer]]) { Rang[Killer]++; pKey[Killer] += Rang[Killer]; Chest[Killer][rNum] += Rang[Killer]; Points[Killer] += Point; client_print_color(0, print_team_default, "%L", LANG_PLAYER, "MRANG_PASIEKE", Prefix, szName, Rangs[Rang[Killer]]); client_print_color(0, print_team_default, "%L", LANG_PLAYER, "MRANG_BONUS", Prefix, szName, Rang[Killer], Rang[Killer], Point); SaveRang(Killer); SaveKeys(Killer); SaveChests(Killer); } } if(Killers[Killer] % 75 == 0 && get_user_flags(Killer) & ACCESS_ADMIN) { drop_keys(Killer , DROP_RATE_KEYS); Killers[Killer] = 0; } else if(Killers[Killer] % 100 == 0 && get_user_flags(Killer) & ACCESS_VIP) { drop_keys(Killer , DROP_RATE_KEYS); Killers[Killer] = 0; } else if(Killers[Killer] % 125 == 0) { drop_keys(Killer , DROP_RATE_KEYS); Killers[Killer] = 0; } new pPont, vPont, hsPont; pPont += random_num(POINTS_KILL_MIN, POINTS_KILL_MAX); if(hitplace == HIT_HEAD) { pPont += hsPont = POINTS_KILL_HS; } Points[Killer] += pPont; if(get_user_flags(Killer) & POINTS_KILL_ADMIN_FLAG) { vPont += random_num(POINTS_KILL_MIN_ADMIN, POINTS_KILL_MAX_ADMIN); Points[Killer] += vPont; } else if(get_user_flags(Killer) & POINTS_KILL_VIP_FLAG) { vPont += random_num(POINTS_KILL_MIN_VIP, POINTS_KILL_MAX_VIP); Points[Killer] += vPont; } set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); if(get_user_flags(Killer) & POINTS_KILL_ADMIN_FLAG) { if(hitplace == HIT_HEAD) { show_hudmessage(Killer, "^n%L +%d Bonus +%d HS", LANG_PLAYER, "POINT", pPont, vPont, hsPont); drop_item(Killer, DROP_RATE_KILL_ADMIN); } else { show_hudmessage(Killer, "^n%L +%d Bonus", LANG_PLAYER, "POINT", pPont, vPont); drop_item(Killer, DROP_RATE_KILL_ADMIN); } } else if(get_user_flags(Killer) & POINTS_KILL_VIP_FLAG) { if(hitplace == HIT_HEAD) { show_hudmessage(Killer, "^n%L +%d Bonus +%d HS", LANG_PLAYER, "POINT", pPont, vPont, hsPont); drop_item(Killer, DROP_RATE_KILL_VIP); } else { show_hudmessage(Killer, "^n%L +%d Bonus", LANG_PLAYER, "POINT", pPont, vPont); drop_item(Killer, DROP_RATE_KILL_VIP); } } else { if(hitplace == HIT_HEAD) { show_hudmessage(Killer, "^n%L +%d HS", LANG_PLAYER, "POINT", pPont, hsPont); } else { show_hudmessage(Killer, "^n%L", LANG_PLAYER, "POINT", pPont); } } drop_item(Killer, DROP_RATE_KILL); SavePoints(Killer); SaveKillers(Killer); return PLUGIN_CONTINUE; } public SetModel(entity, model[]) { if(!pev_valid(entity)) return FMRES_IGNORED; static Classname[32]; pev(entity, pev_classname, Classname, sizeof(Classname)); if(!equal(Classname, "weaponbox")) return FMRES_IGNORED; static iOwner; iOwner = pev(entity, pev_owner); static iWeapon; iWeapon = get_user_weapon(iOwner, _, _); static weapon; weapon = find_ent_by_owner(-1, eWeapon[iWeapon], entity); if(bUsingGuns[iOwner][iWeapon] && !pev(weapon, pev_impulse)) { if(!pev_valid(weapon)) return FMRES_IGNORED; set_pev(weapon, pev_impulse, bUsingGuns[iOwner][iWeapon]); if(strlen(DefaultSkinW[iWeapon]) > 5) { entity_set_model(entity, DefaultSkinW[iWeapon]); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } return FMRES_IGNORED; } 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(MARKET_MIN_PRICE > Cost) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NOTENOUGHTMARKET", Prefix, MARKET_MIN_PRICE); client_cmd(id, "messagemode Cost"); MarketPoints[id] = MARKET_MIN_PRICE; Menu(id); MenuMod[id] = 3; return PLUGIN_HANDLED; } else { MarketPoints[id] = Cost; Menu(id); MenuMod[id] = 3; return PLUGIN_CONTINUE; } } public SetMarketAmount(id) { if(!Loged[id]) return PLUGIN_HANDLED; new Data[32], Cost; read_args(Data, 31); remove_quotes(Data); Cost = str_to_num(Data); if(Cost < 1) { client_cmd(id, "messagemode setMarketAmount"); return PLUGIN_HANDLED; } else { mAmount[id] = Cost; Menu(id); MenuMod[id] = 3; } return PLUGIN_HANDLED; } public SetAmount(id) { if(!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 setAmount"); return PLUGIN_HANDLED; } else { aAmount[id] = Cost; Menu(id); MenuMod[id] = 5; } return PLUGIN_HANDLED; } 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; } } 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; } if(!is_user_connected(id)) { return HAM_SUPERCEDE; } if(pev(Weapon, pev_impulse)) { set_pev(id, pev_viewmodel2, WeaponMdls[pev(Weapon, pev_impulse)]); if(strlen(WeaponMdlsP[pev(Weapon, pev_impulse)]) > 5) { set_pev(id, pev_weaponmodel2, WeaponMdlsP[pev(Weapon, pev_impulse)]); } } else if(bUsingGuns[id][wid]) { set_pev(id, pev_viewmodel2, WeaponMdls[bUsingGuns[id][wid]]); if(strlen(WeaponMdlsP[bUsingGuns[id][wid]]) > 5) { set_pev(id, pev_weaponmodel2, WeaponMdlsP[bUsingGuns[id][wid]]); } set_task(0.1, "UpdateStatusText", id); } else if(strlen(DefaultSkin[wid]) > 5) { if(cs_get_user_team(id) == CS_TEAM_CT && wid == 29) { wid = 31; } set_pev(id, pev_viewmodel2, DefaultSkin[wid]); if(strlen(DefaultSkinP[wid]) > 5) { set_pev(id, pev_weaponmodel2, DefaultSkinP[wid]); } set_task(0.1, "UpdateStatusText", id); } else { set_task(0.1, "UpdateStatusText", id); } return HAM_IGNORED; } public Menu(id) { if(!Loged[id]) { RegMenu(id); return; } new sMenu, szText[256]; switch(MenuMod[id]) { case -2: // Kazkas su dovanom { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "GIFTCH", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "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(szText, sizeof(szText), "%L", LANG_PLAYER, "SKINPIECE", (bUsingGuns[id][Weapons[i]] == i) ? "\w" : "\y", WeaponNames[i], szWeaponNames[Weapons[i]], uWeapon[i][id]); menu_additem(sMenu, szText, String); All++; } for(new i=1; i <=CHEST_COUNT; i++) { if(Chest[id][i] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "CHESTPIECE", chest_name(i), Chest[id][i]); new szButton[128]; formatex(szButton, charsmax(szButton), "%d", CHEST_ID+i); menu_additem(sMenu, szText, szButton); All++; } } if(pKey[id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "KEYPIECE", pKey[id]); menu_additem(sMenu, szText, KEY_ID_TEXT); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } case -1: // Deti i turgu { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "GIFTCH", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "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(szText, sizeof(szText), "%L", LANG_PLAYER, "SKINPIECE", (bUsingGuns[id][Weapons[i]] == i) ? "\w" : "\y", WeaponNames[i], szWeaponNames[Weapons[i]], uWeapon[i][id]); menu_additem(sMenu, szText, String); All++; } for(new i=1; i <=CHEST_COUNT; i++) { if(Chest[id][i] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "CHESTPIECE", chest_name(i), Chest[id][i]); new szButton[128]; formatex(szButton, charsmax(szButton), "%d", CHEST_ID+i-1); menu_additem(sMenu, szText, szButton); All++; } } if(pKey[id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "KEYPIECE", pKey[id]); menu_additem(sMenu, szText, KEY_ID_TEXT); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } case 0: { formatex(szText, sizeof(szText), "\r%L %L", LANG_PLAYER, "MAIN", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); formatex(szText, sizeof(szText), "%L ^n\r------------", LANG_PLAYER, "MENUTOSKINS"); menu_additem(sMenu, szText, "1"); formatex(szText, sizeof(szText), "%L %L", LANG_PLAYER, "MENUTOCHESTOPEN", LANG_PLAYER, (!inMarket[id]) ? "BLANK" : "INMARKET"); menu_additem(sMenu, szText, (!inMarket[id]) ? "2" : "0"); formatex(szText, sizeof(szText), "%L ^n\r------------", LANG_PLAYER, "MENUCHESTINFO"); menu_additem(sMenu, szText, "7"); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MENUTOMARKET"); menu_additem(sMenu, szText, "3"); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MENUTOSHOP"); menu_additem(sMenu, szText, "6"); formatex(szText, sizeof(szText), "%L %L", LANG_PLAYER, "MENUTODUSTBIN", LANG_PLAYER, (!inMarket[id]) ? "BLANK" : "INMARKET"); menu_additem(sMenu, szText, (!inMarket[id]) ? "4" : "0"); formatex(szText, sizeof(szText), "%L %L%L", LANG_PLAYER, "MENUTOGIFT", LANG_PLAYER, (!inMarket[id]) ? "BLANK" : "INMARKET", LANG_PLAYER, "MRANG", Rangs[Rang[id]+1], Patirtis[id], NeedPatirtis[Rang[id]]); menu_additem(sMenu, szText, (!inMarket[id]) ? "5" : "0"); } case 1: // Skinai { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "MENUTOSKINS", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "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(szText, sizeof(szText), "%L", LANG_PLAYER, "SKINPIECE", (bUsingGuns[id][Weapons[i]] == i) ? "\w" : "\y", WeaponNames[i], szWeaponNames[Weapons[i]], uWeapon[i][id]); menu_additem(sMenu, szText, String); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } case 2: // Skrynios { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w - \r%L %L^n^n%L", LANG_PLAYER, "MENUTOCHESTOPEN", LANG_PLAYER, "YPOINT", Points[id], LANG_PLAYER, "KEYPIECE", pKey[id]); sMenu = menu_create(szText, "MenuHandler"); new call = menu_makecallback("Call_Back"); for(new i=1; i <=CHEST_COUNT; i++) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "CHESTPIECE", chest_name(i), Chest[id][i]); menu_additem(sMenu, szText, _, _, (Chest[id][i] > 0 && pKey[id] > 0) ? -1 : call); } } case 3: // Turgus { aThing[id] = 0; formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "MENUTOMARKET", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); new call = menu_makecallback("Call_Back"); aThing[32] = 0; new String[32], All; new Name[32]; get_user_name(id, Name, 31); if(!inMarket[id]) { for(new i = 1; i < AllWeapon; i++) { if(i == WeaponinMarket[id] && uWeapon[i][id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MARKETPLACES", WeaponNames[i], szWeaponNames[Weapons[i]], MarketPoints[id]); All = 50; } } // log_amx("Turgus. Rodo. %d <= %d <= %d && Chest[id][%d] > 0", CHEST_ID, WeaponinMarket[id], CHEST_ID+CHEST_COUNT, (WeaponinMarket[id]-CHEST_ID)+1); if(CHEST_ID <= WeaponinMarket[id] <= CHEST_ID+CHEST_COUNT && Chest[id][(WeaponinMarket[id]-CHEST_ID)+1] > 0) { for(new i=1; i <=CHEST_COUNT; i++) { // log_amx("Chest[id][%d] && %d == %d", i, (CHEST_ID+i-1), WeaponinMarket[id]); if(Chest[id][i] > 0 && ((CHEST_ID+i-1) == WeaponinMarket[id])) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MARKETPLACEC", chest_name(i), MarketPoints[id], mAmount[id]); All++; break; } } } if(KEY_ID == WeaponinMarket[id] && pKey[id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MARKETPLACEK", MarketPoints[id], mAmount[id]); All++; } if(All == 0) formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MARKETPLACECH"); menu_additem(sMenu, szText, "-1"); if(All != 50) { formatex(szText, sizeof(szText), "Kiekis: \r%d", mAmount[id]); menu_additem(sMenu, szText, "-99"); } } formatex(szText, sizeof(szText), "%L", LANG_PLAYER, (!inMarket[id]) ? "TOMARKETM" : "BACKMARKET"); menu_additem(sMenu, szText, "0", _, ((get_systime()-gLastMarketTime[id]) > MARKET_WAIT_ADD) ? -1 : call); for(new x = 1; x <= get_maxplayers(); x++) { if(!is_user_connected(x) || is_user_bot(x)) continue; if(inMarket[x] && MarketPoints[x] > 0) { num_to_str(x, String, 31); if(CHEST_ID <= WeaponinMarket[x] <= CHEST_ID+CHEST_COUNT) { // log_amx("Turgus. Rodo. (%d-%d) = %d", WeaponinMarket[x], CHEST_ID, WeaponinMarket[x]-CHEST_ID); new chId = (WeaponinMarket[x]-CHEST_ID)+1; formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SELLERC", chest_name((WeaponinMarket[x]-CHEST_ID)+1), MarketPoints[x], mAmount[x] > Chest[x][chId] ? Chest[x][chId] : mAmount[x], Name); menu_additem(sMenu, szText, String); } else if(KEY_ID == WeaponinMarket[x]) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SELLERK", MarketPoints[x], mAmount[x] > pKey[x] ? pKey[x] : mAmount[x], Name); menu_additem(sMenu, szText, String); } else { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SELLERS", WeaponNames[WeaponinMarket[x]], szWeaponNames[Weapons[WeaponinMarket[x]]], MarketPoints[x], Name); menu_additem(sMenu, szText, String); } } } } case 4: // Keitykla { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "MENUTODUSTBIN", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); new String[32], All; for(new i = 1; i < AllWeapon; i++) { if(uWeapon[i][id] == 0 || weaponRang[i] == 0) continue; num_to_str(i, String, 31); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SKINPIECE", (bUsingGuns[id][Weapons[i]] == i) ? "\w" : "\y", WeaponNames[i], szWeaponNames[Weapons[i]], uWeapon[i][id]); menu_additem(sMenu, szText, String); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } case 5: // Dovanos { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "MENUTOGIFT", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); new call = menu_makecallback("Call_Back"); new All, Name[126], String[32]; get_user_name(aTarget[id], Name, 31); if(aTarget[id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTT", Name); menu_additem(sMenu, szText, "-1"); for(new i = 1; i < AllWeapon; i++) { if(i == aThing[id] && uWeapon[i][id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTS", WeaponNames[i]); menu_additem(sMenu, szText, "-2"); All++; } } if(aThing[id] <= MAX && All == 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTCH"); menu_additem(sMenu, szText, "-2"); } else if(aThing[id] > MAX) { if(CHEST_ID <= aThing[id] <= CHEST_ID+CHEST_COUNT) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTC", chest_name((aThing[id]-CHEST_ID))); } if(KEY_ID == aThing[id]) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTK"); } menu_additem(sMenu, szText, "-2"); } if(aThing[id] > MAX) { formatex(szText, sizeof(szText), "Kiekis: \r%d", aAmount[id]); menu_additem(sMenu, szText, "-75"); } formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTPOINTS", aPoints[id]); menu_additem(sMenu, szText, "-4"); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SENDGIFT"); menu_additem(sMenu, szText, "-3"); } else { for(new i = 1; i <= get_maxplayers(); i++) { if(is_user_connected(i) && !is_user_bot(i)) { get_user_name(i, Name, 31); if(!Loged[i]) { format(Name, charsmax(Name), "%s \r[n.l]", Name); } num_to_str(i, String, 31); menu_additem(sMenu, Name, String, _, (!Loged[i]) ? call : -1); } } } } case 6: // Parduotuvė { formatex(szText, sizeof(szText), "\r%L %L", LANG_PLAYER, "PMAIN", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); new call = menu_makecallback("Call_Back"); new accesNum = get_access(id); new Float:gPercent = ((accesNum == 4) ? 0.9 : ((accesNum == 3) ? 0.94 : (accesNum == 2) ? 0.97 : 1.0)); new gPrice = floatround(1700*gPercent, floatround_floor); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SHOPKEY_1", gPrice); menu_additem(sMenu, szText, _, _, (Points[id] < gPrice) ? call : -1); gPrice = floatround(8000*gPercent, floatround_floor); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SHOPKEY_5", gPrice); menu_additem(sMenu, szText, _, _, (Points[id] < gPrice) ? call : -1); gPrice = floatround(14000*gPercent, floatround_floor); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SHOPKEY_10", gPrice); menu_additem(sMenu, szText, _, _, (Points[id] < gPrice) ? call : -1); for(new i=1; i <=CHEST_COUNT; i++) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SHOPCHEST_1", chest_name(i), 1250); menu_additem(sMenu, szText, _, _, (Points[id] < 1250) ? call : -1); } } case 7: // Skrynių info { formatex(szText, sizeof(szText), "\r%L %L", LANG_PLAYER, "IMAIN", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); for(new i=1; i <=CHEST_COUNT; i++) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "CHESTINFOPIECE", chest_name(i)); menu_additem(sMenu, szText); } } } menu_display(id, sMenu); } public Call_Back(id, menu, item) return ITEM_DISABLED; public MenuHandler(id, gMenu, item) { if(item == MENU_EXIT) { MenuMod[id] = 0; menu_destroy(gMenu); return PLUGIN_HANDLED; } new aMenu[2], Data[4][32], sKey[32], Name[32], mName[32], Key; menu_item_getinfo(gMenu, item, aMenu[0], Data[0], 31, Data[1], 31, aMenu[1]); parse(Data[0], sKey, 31); Key = str_to_num(sKey); switch(MenuMod[id]) { case -2: { MenuMod[id] = 5; aThing[id] = Key; Menu(id); } case -1: { MenuMod[id] = 3; WeaponinMarket[id] = Key; client_cmd(id, "messagemode Cost"); Menu(id); } case 0: { MenuMod[id] = Key; Menu(id); } case 1: { parse(Data[0], Data[2], 31, Data[3], 31); if(bUsingGuns[id][str_to_num(Data[3])] == str_to_num(Data[2])) { bUsingGuns[id][str_to_num(Data[3])] = 0; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "SKIN_REMOVED", Prefix, WeaponNames[str_to_num(Data[2])], szWeaponNames[str_to_num(Data[3])]); } else { bUsingGuns[id][str_to_num(Data[3])] = str_to_num(Data[2]); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "SKIN_CHANGED", Prefix, WeaponNames[str_to_num(Data[2])], szWeaponNames[str_to_num(Data[3])]); set_task(0.1, "UpdateStatusText", id); } static szQuery[512], szUGuns[128]; format(szUGuns, sizeof(szUGuns), ""); for(new i; i < CSW_VESTHELM; i++) { format(szUGuns, sizeof(szUGuns), "%s%d ", szUGuns, bUsingGuns[id][i]); } formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `using_skins` = '%s' WHERE `username` = '%s';", TABLE_NAME, szUGuns, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SKIN CHANGE] %s", szQuery); MenuMod[id] = 1; Menu(id); } case 2: { if(Chest[id][(item+1)] <= 0) { Chest[id][(item+1)] = 0; if(pKey[id] < 0) pKey[id] = 0; return PLUGIN_CONTINUE; } Chest[id][(item+1)]--; pKey[id]--; new chest = item+1; new Float:rNum = random_float((random(5)*1.0), 175.0); new chance = (rNum <= 1.0) ? 1 : ((rNum <= 5.0) ? 5 : ((rNum <= 25) ? 25 : 100 )); /////////////////////////////////////////// new skinsCnt = chestsChance[chest][chance]; new skinNum = random(skinsCnt); new skinId = chestsList[chest][chance][skinNum]; new szName[32]; get_user_name(id, szName, 31); if(1 <= chance <= 25) { print_color(0, "%L", LANG_PLAYER, "FOUNDITEM_ALL", Prefix, szName, WeaponNames[skinId], szWeaponNames[Weapons[skinId]]); } else { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "FOUNDITEM_SELF", Prefix, WeaponNames[skinId], szWeaponNames[Weapons[skinId]]); } uWeapon[skinId][id]++; SaveData(id); new szMotd[126]; formatex(szMotd, charsmax(szMotd), "http://185.80.128.125/pbgo/b.php?item=%d_%d_%d&chest=%d", chest, chance, skinNum, chest); show_motd(id, szMotd, chest_name((item+1))); Menu(id); } case 3: { if(Key == -1) { MenuMod[id] = -1; Menu(id); } else if(Key == 0) { if(inMarket[id]) { inMarket[id] = false; } else if(MarketPoints[id] > 0) { if(mAmount[id] < 1) mAmount[id] = 1; get_user_name(id, Name, 31); switch(WeaponinMarket[id]) { case CHEST_ID..(CHEST_ID+CHEST_COUNT): { print_color(0, "%L", LANG_PLAYER, "TOMARKET_CHEST", Prefix, Name, mAmount[id], chest_name((WeaponinMarket[id]-CHEST_ID)+1), MarketPoints[id]); } case KEY_ID: { print_color(0, "%L", LANG_PLAYER, "TOMARKET_KEY", Prefix, Name, mAmount[id], MarketPoints[id]); } default: { print_color(0, "%L", LANG_PLAYER, "TOMARKET_SKIN", Prefix, Name, WeaponNames[WeaponinMarket[id]], szWeaponNames[Weapons[WeaponinMarket[id]]], MarketPoints[id]); } } inMarket[id] = true; } gLastMarketTime[id] = get_systime(); Menu(id); } else if(Key == -99) { client_cmd(id, "messagemode setMarketAmount"); } else if(inMarket[Key] && Points[id] >= MarketPoints[Key]) { get_user_name(Key, Name, 31); get_user_name(id, mName, 31); if(WeaponinMarket[Key] < CHEST_ID) { if(uWeapon[WeaponinMarket[Key]][Key] <= 0) { inMarket[Key] = false; MarketPoints[Key] = 0; WeaponinMarket[Key] = 0; return PLUGIN_CONTINUE; } print_color(0, "!g%s%L", Prefix, LANG_PLAYER, "BUYMARKETITEM", mName, WeaponNames[WeaponinMarket[Key]], MarketPoints[Key], Name); uWeapon[WeaponinMarket[Key]][id]++; uWeapon[WeaponinMarket[Key]][Key]--; if(!uWeapon[WeaponinMarket[Key]][Key]) for(new i; i < CSW_VESTHELM; i++) { if(bUsingGuns[Key][i] == WeaponinMarket[Key]) { bUsingGuns[Key][i] = 0; uWeaponKills[i][Key] = 0; break; } } static szQuery[512], szUGuns[128]; format(szUGuns, sizeof(szUGuns), ""); for(new i; i < CSW_VESTHELM; i++) { format(szUGuns, sizeof(szUGuns), "%s%d ", szUGuns, bUsingGuns[id][i]); } formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `using_skins` = '%s' WHERE `username` = '%s';", TABLE_NAME, szUGuns, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SKIN SHOP] %s", szQuery); format(szUGuns, sizeof(szUGuns), ""); for(new i; i < CSW_VESTHELM; i++) { format(szUGuns, sizeof(szUGuns), "%s%d ", szUGuns, bUsingGuns[Key][i]); } formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `using_skins` = '%s' WHERE `username` = '%s';", TABLE_NAME, szUGuns, get_user_name_ex(Key)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SKIN SHOP] %s", szQuery); } else if(CHEST_ID <= WeaponinMarket[Key] <= CHEST_ID+CHEST_COUNT) { new chId = (WeaponinMarket[Key]-CHEST_ID)+1; if(Chest[Key][chId] <= 0) { inMarket[Key] = false; MarketPoints[Key] = 0; WeaponinMarket[Key] = 0; return PLUGIN_CONTINUE; } client_print_color(0, print_team_default, "^4%s%L", Prefix, LANG_PLAYER, "BUYMARKETCHEST", mName, chest_name(chId), MarketPoints[Key], Name); Chest[id][chId]++; Chest[Key][chId]--; } else if(WeaponinMarket[Key] == KEY_ID) { if(pKey[Key] <= 0) { inMarket[Key] = false; MarketPoints[Key] = 0; WeaponinMarket[Key] = 0; return PLUGIN_CONTINUE; } client_print_color(0, print_team_default, "^4%s%L", Prefix, LANG_PLAYER, "BUYMARKETKEY", mName, MarketPoints[Key], Name); pKey[id]++; pKey[Key]--; } emit_sound(Key, CHAN_ITEM, SOUND_SOLD, VOL_NORM, ATTN_NORM ,0 , PITCH_NORM ); Points[Key] += MarketPoints[Key]; Points[id] -= MarketPoints[Key]; SaveData(Key); SaveData(id); mAmount[Key]--; if(mAmount[Key] <= 0) { inMarket[Key] = false; MarketPoints[Key] = 0; WeaponinMarket[Key] = 0; } MenuMod[id] = 0; } } case 4: { new Random = random_num(1, 100); if(Random < 5 && weaponRang[Key] == 3) { new chest = item+1; new chance = 5; new skinsCnt = chestsChance[chest][chance]; new skinNum = random(skinsCnt); new skinId = chestsList[chest][chance][skinNum]; client_print_color(0, print_team_default, "^4%s%L", EVENT, LANG_PLAYER, "MENUTODUST_SKINS", get_user_name_ex(id), WeaponNames[skinId], szWeaponNames[Weapons[skinId]]); uWeapon[skinId][id]++; SaveData(id); } else if(Random < 25 && weaponRang[Key] == 4) { new chest = item+1; new chancerare = 25; new skinsCntrare = chestsChance[chest][chancerare]; new skinNumrare = random(skinsCntrare); new skinIdrare = chestsList[chest][chancerare][skinNumrare]; client_print_color(0, print_team_default, "^4%s%L", EVENT, LANG_PLAYER, "MENUTODUST_SKINS", get_user_name_ex(id), WeaponNames[skinIdrare], szWeaponNames[Weapons[skinIdrare]]); uWeapon[skinIdrare][id]++; SaveData(id); } else if(uWeapon[Key][id] > 0 && weaponRang[Key] > 0) { uWeapon[Key][id]--; bUsingGuns[id][Weapons[Key]] = 0; if(!uWeapon[Key][id]) uWeaponKills[Key][id] = 0; new Points; if(weaponRang[Key] == 1) Points = random_num(50, 2500); // Y else if(weaponRang[Key] == 2) Points = random_num(50, 2500); // R if(weaponRang[Key] == 3) Points = random_num(50, 2500); // B else if(weaponRang[Key] == 4) Points = random_num(200, 300); // W cs_set_user_points(id, cs_get_user_points(id) +Points); client_print_color(id, print_team_default, "^4%s%L", Prefix, LANG_PLAYER, "MENUTODUST", get_user_name_ex(id), Points); log_errors("[SKINLOG TRASH] %s išsikeite %s", get_user_name_ex(id), WeaponNames[Key]); SaveData(id); } else { uWeapon[Key][id] = 0; SaveData(id); } Menu(id); } case 5: { if(Key == -1) { aTarget[id] = 0; } if(Key == -2) { MenuMod[id] = -2; } if(Key == -3) { if(!is_user_connected(aTarget[id])) { return PLUGIN_CONTINUE; } if(aThing[id] < CHEST_ID) { if(uWeapon[aThing[id]][id] > 0) { uWeapon[aThing[id]][aTarget[id]]++; uWeapon[aThing[id]][id]--; if(!uWeapon[aThing[id]][id]) for(new i; i < CSW_VESTHELM; i++) { if(bUsingGuns[id][i] == aThing[id]) { bUsingGuns[id][i] = 0; uWeaponKills[i][id] = 0; break; } } static szQuery[512], szUGuns[128]; format(szUGuns, sizeof(szUGuns), ""); for(new i; i < CSW_VESTHELM; i++) { format(szUGuns, sizeof(szUGuns), "%s%d ", szUGuns, bUsingGuns[id][i]); } formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `using_skins` = '%s' WHERE `username` = '%s';", TABLE_NAME, szUGuns, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SKIN GIFT] %s padovanojo %s - %s", get_user_name_ex(id), get_user_name_ex(aTarget[id]), WeaponNames[aThing[id]]); log_errors("[SKIN GIFT] %s", szQuery); client_print_color(id, print_team_default, "^4%s %L", Prefix, LANG_PLAYER, "GIFTSUCCESS_SKIN"); print_color(aTarget[id], "%L", LANG_PLAYER, "GIFTGOT_SKIN", Prefix, get_user_name_ex(id), WeaponNames[aThing[id]], szWeaponNames[Weapons[aThing[id]]]); } // else client_print_color(id, print_team_default, "Neturi tiek skinu!"); } else if(CHEST_ID <= aThing[id] <= CHEST_ID+CHEST_COUNT) { new cId = aThing[id]-CHEST_ID; if(Chest[id][cId] >= aAmount[id]) { Chest[aTarget[id]][cId]+=aAmount[id]; Chest[id][cId]-=aAmount[id]; client_print_color(id, print_team_default, "^4%s %L", Prefix, LANG_PLAYER, "GIFTSUCCESS_CHEST"); print_color(aTarget[id], "%L", LANG_PLAYER, "GIFTGOT_CHEST", Prefix, get_user_name_ex(id), aAmount[id]); } else client_print_color(id, print_team_default, "Neturi tiek skryniu!"); } else if(aThing[id] == KEY_ID) { if(pKey[id] >= aAmount[id]) { pKey[aTarget[id]]+=aAmount[id]; pKey[id]-=aAmount[id]; client_print_color(id, print_team_default, "^4%s %L", Prefix, LANG_PLAYER, "GIFTSUCCESS_KEY"); print_color(aTarget[id], "%L", LANG_PLAYER, "GIFTGOT_KEY", Prefix, get_user_name_ex(id), aAmount[id]); } else client_print_color(id, print_team_default, "Neturi tiek raktu!"); } if(aPoints[id] > 0 && Points[id] >= aPoints[id]) { Points[aTarget[id]] += aPoints[id]; Points[id] -= aPoints[id]; client_print_color(aTarget[id], print_team_default, "%L", LANG_PLAYER, "GIFTGOT_PTS", Prefix, get_user_name_ex(id), aPoints[id]); log_errors("[SKINLOG PTS] %s padovanojo %s - %d tasku", get_user_name_ex(id), get_user_name_ex(aTarget[id]), aPoints[id]); } SaveData(aTarget[id]); SaveData(id); MenuMod[id] = 0; aThing[id] = 0; aTarget[id] = 0; aPoints[id] = 0; } if(Key == -75) { client_cmd(id, "messagemode setAmount"); } if(Key == -4) { client_cmd(id, "messagemode Gift"); } if(Key > 0) { aTarget[id] = Key; } Menu(id); } case 6: { new accesNum = get_access(id); new Float:gPercent = ((accesNum == 4) ? 0.92 : ((accesNum == 3) ? 0.96 : (accesNum == 2) ? 0.98 : 1.0)); switch(item) { case 0: { Points[id] -= floatround(1700*gPercent, floatround_floor); pKey[id]++; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BOUGHTKEY_1", Prefix); SaveKeys(id); } case 1: { Points[id] -= floatround(8000*gPercent, floatround_floor); pKey[id] += 5; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BOUGHTKEY_5", Prefix); SaveKeys(id); } case 2: { Points[id] -= floatround(14000*gPercent, floatround_floor); pKey[id] += 10; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BOUGHTKEY_10", Prefix); SaveKeys(id); } case 3..(CHEST_COUNT+3): { Chest[id][item-2] += 1; Points[id] -= 1250; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BOUGHTCHEST_1", Prefix, chest_name(item-2)); SaveChests(id); } } } case 7: { new szMotd[126]; formatex(szMotd, charsmax(szMotd), "http://185.80.128.125/pbgo/b.php?chest=%d", (item+1)); show_motd(id, szMotd, chest_name((item+1))); Menu(id); } default: { MenuMod[id] = 0; } } menu_destroy(gMenu); return PLUGIN_HANDLED; } public client_disconnected(id) { Patirtis[id] = 0, Kills[id] = 0,Rang[id] = 0, Points[id] = 0, pKey[id] = 0, Killers[id] = 0; for(new i; i <= CHEST_COUNT; i++) { Chest[id][i] = 0; } for(new i; i < AllWeapon; i++) { uWeapon[i][id] = 0; } for(new i; i < CSW_VESTHELM; i++) { bUsingGuns[id][i] = 0; } gWarnings[id] = 0; WeaponinMarket[id] = 0; MarketPoints[id] = 0; inMarket[id] = 0; Password[id] = ""; SavedPassword[id] = ""; Loged[id] = false; gRegistered[id] = false; gLogged[id] = false; bTrade[id] = false; bTradeAccepted[id] = false; } public client_putinserver(id) { Patirtis[id] = 0, Kills[id] = 0, Rang[id] = 0, Points[id] = 0, pKey[id] = 0, Killers[id] = 0; for(new i; i <= CHEST_COUNT; i++) { Chest[id][i] = 0; } for(new i; i < AllWeapon; i++) { uWeapon[i][id] = 0; } for(new i; i < CSW_VESTHELM; i++) { bUsingGuns[id][i] = 0; } gWarnings[id] = 0; Password[id] = ""; SavedPassword[id] = ""; Loged[id] = false; bTrade[id] = false; bTradeAccepted[id] = false; gRegistered[id] = false; gLogged[id] = false; gLastMarketTime[id] = get_systime(); if(gCanLoad) { set_task(0.5, "Registered", id); } } public add_delay(id) { switch(id) { case 1..8: set_task(0.1, "Registered", id); case 9..16: set_task(0.2, "Registered", id); case 17..24: set_task(0.3, "Registered", id); case 25..32: set_task(0.4, "Registered", id); } } //============================================================// // [~ Saving / Loading datas ~] // //============================================================// public QueryCreateTable(iFailState, Handle:hQuery, szError[], iError, iData[], iDataSize, Float:fQueueTime) { if(iFailState == TQUERY_CONNECT_FAILED) { log_errors("Nepavyko prisijungti prie duomenu bazes. [%d] %s", iError, szError); return; } else if(iFailState == TQUERY_QUERY_FAILED) { log_errors("Neapyko apdoroti uzklausos. [%d] %s", iError, szError); return; } } public Login(id) { if(!is_user_connected(id) || is_user_bot(id)) return; static szQuery[256], iData[1]; iData[0] = id; formatex(szQuery, 255, "SELECT * FROM `%s` WHERE `username` = '%s' AND `password` = '%s'", TABLE_NAME, get_user_name_ex(id), Password[id]); SQL_ThreadQuery(g_hTuple, "QuerySelect", szQuery, iData, 1); log_errors("[LOGIN] %s", szQuery); } public QuerySelect(iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime) { if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED) { log_errors("%s", szError); return; } else { new id = iData[0]; if(SQL_NumResults(hQuery)) { new szSkins[512+MAX], szKSkins[512+MAX], szUGuns[256], szChests[128]; SQL_ReadResult(hQuery, 1, SavedPassword[id], 32); Patirtis[id] = SQL_ReadResult(hQuery, 2); Kills[id] = SQL_ReadResult(hQuery, 3); Points[id] = SQL_ReadResult(hQuery, 4); pKey[id] = SQL_ReadResult(hQuery, 5); Rang[id] = SQL_ReadResult(hQuery, 7); Killers[id] = SQL_ReadResult(hQuery, 8); SQL_ReadResult(hQuery, 9, szSkins, sizeof(szSkins)); SQL_ReadResult(hQuery, 10, szUGuns, sizeof(szUGuns)); SQL_ReadResult(hQuery, 11, szKSkins, sizeof(szKSkins)); SQL_ReadResult(hQuery, 6, szChests, sizeof(szChests)); SQL_NextRow(hQuery); new myNumbers[512+MAX]; new count = ExplodeString(szSkins, myNumbers); if(count) { for(new i = 1; i < MAX; i++) { uWeapon[i][id] = myNumbers[i]; } } count = ExplodeString(szKSkins, myNumbers); if(count) { for(new i = 1; i < MAX; i++) { uWeaponKills[i][id] = myNumbers[i]; } } count = ExplodeString(szUGuns, myNumbers); if(count) { for(new i = 1; i < CSW_VESTHELM; i++) { if(myNumbers[i] <= MAX) { if(uWeapon[myNumbers[i]][id] && i == Weapons[myNumbers[i]]) { bUsingGuns[id][i] = myNumbers[i]; } } } } count = ExplodeString(szChests, myNumbers); if(count) { for(new i = 1; i <= CHEST_COUNT; i++) { Chest[id][i] = myNumbers[i]; } } if(!equal(Password[id], SavedPassword[id])) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "SAVE_PASS_ANNOUNCE", Prefix); } } Loged[id] = true; UnsetBlack(id); } } public SaveData(id) { if(Loged[id] && gRegistered[id] && gCanSave) { static szQuery[2048], szSkins[1024], szKSkins[1024], szUGuns[128], szChests[128]; format(szSkins, sizeof(szSkins), ""); format(szKSkins, sizeof(szKSkins), ""); format(szUGuns, sizeof(szUGuns), ""); format(szChests, sizeof(szChests), ""); for(new i; i < MAX; i++) { format(szSkins, sizeof(szSkins), "%s%d ", szSkins, uWeapon[i][id]); format(szKSkins, sizeof(szKSkins), "%s%d ", szKSkins, uWeaponKills[i][id]); } for(new i; i < CSW_VESTHELM; i++) { format(szUGuns, sizeof(szUGuns), "%s%d ", szUGuns, bUsingGuns[id][i]); } for(new i; i <= CHEST_COUNT; i++) { format(szChests, sizeof(szChests), "%s%d ", szChests, Chest[id][i]); } formatex( szQuery, sizeof(szQuery), "REPLACE INTO `%s` SET `username` = '%s', `password` = '%s', `patirtis` = '%d', `kills` = '%d', `points` = '%d', `keys` = '%d', `chests` = '%s', `rang` = '%d', `killers` = '%d', `skins` = '%s', `using_skins` = '%s', `skins_kills` = '%s';", TABLE_NAME, get_user_name_ex(id), SavedPassword[id], Patirtis[id], Kills[id], Points[id], pKey[id], szChests, Rang[id], Killers[id], szSkins, szUGuns, szKSkins); SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE] %s", szQuery); } } public QuerySetData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime ) { if(iFailState == TQUERY_CONNECT_FAILED) { log_errors("Nepavyko prisijungti prie duomenu bazes. [%d] %s", iError, szError); return; } else if(iFailState == TQUERY_QUERY_FAILED) { log_errors("Neapyko apdoroti uzklausos. [%d] %s", iError, szError); return; } } public UnsetBlack(id) { set_user_maxspeed(id, 250.0); message_begin(MSG_ONE, g_msgid_ScreenFade, {0,0,0}, id); write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(50); message_end(); } public TradeMenu(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(bTrade[id]) { if(bTradeAccepted[id]) { client_print_color(id, 3, "[Trade] Jus jau tradinate!"); return PLUGIN_CONTINUE; } client_print_color(id, 3, "[Trade] Jums jau pasiulytas trade, jei sutinkate rasykita /sutinku arba /taccept"); return PLUGIN_CONTINUE; } new Name[32], String[32], sMenu; sMenu = menu_create("Trade Menu", "MenuHandler"); new call = menu_makecallback("Call_Back"); for(new i; i < get_maxplayers(); i++) { if(is_user_connected(i) && !is_user_bot(i)) { get_user_name(i, Name, 31); if(!Loged[i]) { format(Name, charsmax(Name), "%s \r[n.l]", Name); } num_to_str(i, String, 31); menu_additem(sMenu, Name, String, _, (!Loged[i]) ? call : -1); } } menu_display(id, sMenu); return PLUGIN_CONTINUE; } public RegMenu(id) { static sId; sId = id; id = ((id - TASKID_REMENU) < 0) ? id : id-TASKID_REMENU; if(Loged[id]) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "ALREADY_REGISTERED", Prefix); Menu(id); return PLUGIN_HANDLED; } if(!gLogged[id] || !gCanLoad) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "WAIT_SYSTEM_LOADING", Prefix); remove_task(id+TASKID_REMENU); set_task(1.0, "RegMenu", id+TASKID_REMENU); return PLUGIN_HANDLED; } remove_task(id+TASKID_REMENU); if(gLogged[id] && sId > 32 && gCanLoad && !gRegistered[id]) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BLANK"); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BLANK"); UnsetBlack(id); return PLUGIN_HANDLED; } if(equal(Password[id], SavedPassword[id]) && gRegistered[id]) { Login(id); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "AUTO_CONNECTED", Prefix); return PLUGIN_HANDLED; } new szString[128], Name[32]; format(szString, sizeof(szString), "\r[\yPublic\r]\w - %L", LANG_PLAYER, "RMMAIN"); new rMenu = menu_create(szString, "rMenuHandler"); get_user_name(id, Name, 31); format(szString, sizeof(szString), "%L", LANG_PLAYER, "RMACCOUNT", Name); // Client name menu_additem(rMenu, szString, "0"); new szPassword[126]; for(new i; i < strlen(Password[id]); i++) { format(szPassword, charsmax(szPassword), "%s*", szPassword); } format(szString, sizeof(szString), "%L", LANG_PLAYER, "RMP", Password[id]); // Client password format(szString, sizeof(szString), "%L", LANG_PLAYER, "RMP", szPassword); // Client password menu_additem(rMenu, szString, "1"); if(!gRegistered[id]) // Not registered { format(szString, sizeof(szString), "%s%L", (strlen(Password[id]) >= MIN_PASSWORD_LENGTH) ? "" :"\d", LANG_PLAYER, "RMR"); menu_additem(rMenu, szString, (strlen(Password[id]) >= MIN_PASSWORD_LENGTH) ? "2" : "0"); } else { if(!Loged[id]) // Registered, but not logged { new gPassCheck = equal(SavedPassword[id], Password[id]); format(szString, sizeof(szString), "%s%L", (gPassCheck) ? "" : "\d", LANG_PLAYER, "RMLOGIN"); menu_additem(rMenu, szString, (gPassCheck) ? "3" : "0"); } else { Menu(id); } } menu_display(id, rMenu); return PLUGIN_HANDLED; } public rMenuHandler(id, gMenu, item) { if(item == MENU_EXIT) { menu_destroy(gMenu); return PLUGIN_CONTINUE; } 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); switch(Key) { case 0: { RegMenu(id); } case 1: { client_cmd(id, "messagemode UserPassword"); RegMenu(id); } case 2: { if(strlen(Password[id]) >= MIN_PASSWORD_LENGTH) { copy(SavedPassword[id], 31, Password[id]); Loged[id] = true; gRegistered[id] = true; SaveData(id); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "REGISTERSUCCESS", Prefix, Password[id]); UnsetBlack(id); new szName[32]; get_user_name(id, szName, 31); log_errors("%s ivede slaptazodi [prisiregistravo]", szName); gWarnings[id] = 0; return PLUGIN_CONTINUE; } else { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "REGISTERSHORT", Prefix); return PLUGIN_HANDLED; } // Menu(id); } case 3: { if(!Loged[id]) { gWarnings[id] = 0; Login(id); } } } return PLUGIN_CONTINUE; } public PlayerPassword(id) { if(Loged[id]) { return PLUGIN_HANDLED; } new Data[32]; read_args(Data, 31); remove_quotes(Data); if(strlen(Data) < MIN_PASSWORD_LENGTH) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "REGISTERSHORT", Prefix); client_cmd(id, "messagemode UserPassword"); return PLUGIN_HANDLED; } else if(!equal(SavedPassword[id], Data) && strlen(Data) > MIN_PASSWORD_LENGTH && !equal(Password[id], Data)) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BAD_PASSWORD", Prefix); gWarnings[id]++; if(gWarnings[id] >= 3) { gWarnings[id] = 0; server_cmd("amx_kick #%d ^"Trying to hack other account!^"", get_user_userid(id)); } } copy(Password[id], 31, Data); RegMenu(id); return PLUGIN_CONTINUE; } public NameChange(id) { if(get_cvar_num("csgo_nick_show")) return FMRES_IGNORED; if(!is_user_connected(id) || is_user_bot(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); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "REGISTERNAMECHANGE", Prefix); return FMRES_HANDLED; } } return FMRES_IGNORED; } public Registered(id) { if(!is_user_connected(id) || is_user_bot(id)) return; static szQuery[256], iData[1]; iData[0] = id; formatex(szQuery, 255, "SELECT * FROM `%s` WHERE `username` = '%s'", TABLE_NAME, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySelectReg", szQuery, iData, 1); log_errors("[REGISTERED] %s", szQuery); } public QuerySelectReg( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime ) { if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED) { log_errors("[QuerySelectReg] %s", szError); return; } else { new id = iData[0]; if(SQL_NumResults(hQuery)) { gLogged[id] = true; gRegistered[id] = true; new passfield[32], password[32]; get_pcvar_string(csgo_password_field, passfield, 31); get_user_info(id, passfield, password, 31); SQL_ReadResult(hQuery, 1, SavedPassword[id], 32); if(equal(password, SavedPassword[id])) { Password[id] = password; } new szName[32]; get_user_name(id, szName, 31); log_errors("[Registered] %s - %s", szName, (gRegistered[id]) ? "true" : "false"); } else { gLogged[id] = true; gRegistered[id] = false; new szName[32]; get_user_name(id, szName, 31); log_errors("[Founded REG] %s - %s", szName, (gRegistered[id]) ? "true" : "false"); } } } public cmdUniq(id) { if(!Loged[id]) { RegMenu(id); return PLUGIN_HANDLED; } new szText[512], szid[64]; formatex(szText, sizeof(szText), "\r%L %L", LANG_PLAYER, "SMAIN", LANG_PLAYER, "YPOINT", Points[id]); new sMenu = menu_create(szText, "MenuHandlerUniq"); for(new i; i < AllWeapon; i++) { if(uniqPrice[i] > 0) { formatex(szText, charsmax(szText), "%s \r%d \w- \rTaškų", WeaponNames[i], uniqPrice[i]); formatex(szid, 63, "%d", i); menu_additem(sMenu, szText, szid, _, (Points[id] < uniqPrice[i]) ? -2 : -1); } } menu_setprop(sMenu, MPROP_EXIT, MEXIT_ALL); menu_display(id, sMenu); return PLUGIN_CONTINUE; } public MenuHandlerUniq(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new aMenu[2], Data[4][32], sKey[32]; menu_item_getinfo(menu, item, aMenu[0], Data[0], 31, Data[1], 31, aMenu[1]); parse(Data[0], sKey, 31); new Key = str_to_num(sKey); if(Points[id] >= uniqPrice[Key]) { uWeapon[Key][id]++; Points[id] -= uniqPrice[Key]; SaveData(id); client_print_color(id, print_team_default, "%s ^3%s ^4Nusipirko ^3%s!", Prefix, get_user_name_ex(id), WeaponNames[Key]); } else { client_print_color(id, print_team_default, "%s ^3Nepakanka taškų!", Prefix); } menu_destroy(menu); return PLUGIN_HANDLED; } /*STOCK'S Key's*/ stock drop_keys(id, dropKey) { if(dropKey >= random_float(0.0, 500.0) && get_playersnum() >= NEED_MIN_PLAYERS) { new szName[32]; get_user_name(id, szName, 31); static additional_keys; additional_keys = 0; if(!additional_keys) { client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUND_KEYS_ALL", EVENT, szName, pKey); pKey[id]++; } SaveKeys(id); } } /*STOCK'S*/ stock drop_item(id, dropRate) { if(dropRate >= random_float(0.0, 500.0) && get_playersnum() >= NEED_MIN_PLAYERS) { new szName[33], rNum, accesNum = get_access(id); get_user_name(id, szName, 32); rNum = random(CHEST_COUNT)+1; static additional_chests; additional_chests = 0; if(!random(5) && accesNum) { additional_chests = random(((accesNum == 1) ? 1 : (accesNum == 1) ? 1 : 1)); if(additional_chests) { additional_chests++; client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUNDCHESTS", Prefix, szName, additional_chests, chest_name(rNum)); Chest[id][rNum] += additional_chests; } } if(!additional_chests) { client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUNDCHEST", Prefix, szName, chest_name(rNum)); Chest[id][rNum]++; } SaveChests(id); } } stock get_access(id) { if(get_user_flags(id) & ACCESS_ADMIN) { return 2; } else if(get_user_flags(id) & ACCESS_VIP) { return 1; } return 0; } stock chest_name(iNum) { new szReturn[126]; switch(iNum) { case 1: { formatex(szReturn, charsmax(szReturn), "Falchion"); } case 2: { formatex(szReturn, charsmax(szReturn), "Wildfire"); } case 3: { formatex(szReturn, charsmax(szReturn), "Hunstman"); } case 4: { formatex(szReturn, charsmax(szReturn), "Spectrum"); } case 5: { formatex(szReturn, charsmax(szReturn), "Shadow"); } case 6: { formatex(szReturn, charsmax(szReturn), "Gamma"); } case 7: { formatex(szReturn, charsmax(szReturn), "Hydra"); } } return szReturn; } stock screen_color(id) { message_begin(MSG_ONE, g_msgid_ScreenFade, {0,0,0}, id); write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(255); write_byte(0); write_byte(0); write_byte(75); } stock ExplodeString(const string[], output[], olen = sizeof output) { new len = strlen( string ); // We retrieve the length of the current string passed. if ( !len ) { return 0; } // If the string is empty we stop there. new i, c, j, count; new number[ 12 ]; do { while ( string[ i ] == ' ' ) i++; // One or more spaces can be used between 2 numbers, so we move forward until we find a number. while ( ( number[ j++ ] = c = string[ i++ ] ) && c != ' ' ) {} // We loop and save the number found until the next space found or end of string. output[ count++ ] = str_to_num( number ); // We convert the number saved previously into a number and we stored in output at the slot count. j = 0; } while ( i < len && count < olen ); // We should looping while we have not cross the string length. return count; } stock get_user_name_ex(id) { new szName[33]; get_user_name(id, szName, charsmax(szName)); replace_all(szName, charsmax(szName), "'", "\'"); replace_all(szName, charsmax(szName), "^"", "\^""); // replace_all(szName, charsmax(szName), ".", ""); return szName; } 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, get_user_msgid( "SayText" ), _, Players[i]); write_byte(Players[i]); write_string(Msg); message_end(); } } } return PLUGIN_HANDLED; } stock bool:ValidMdl(Mdl[]) { return (containi(Mdl, ".mdl") != -1) ? true : false; } public UpdateStatusText(id) { new szText[256], wId = get_user_weapon(id, _, _); if(bUsingGuns[id][wId]) formatex(szText, charsmax(szText), "%L", LANG_PLAYER, "KILLS_SHOW", uWeaponKills[bUsingGuns[id][wId]][id], WeaponNames[bUsingGuns[id][wId]]); else formatex(szText, charsmax(szText), "%L", LANG_PLAYER, "BLANK"); set_hudmessage(0, 255, 0, 0.01, 0.94, 0, 6.0, 12.0, 0.1, 0.2, 78); ShowSyncHudMsg(id, g_msgid_SyncHud, szText); } stock get_weapon_maxclip(wpnid = 0) { for (new a = 0; a < sizeof (g_weapons); a++) if (wpnid == g_weapons[a]) return g_max_clip[a]; return false; } stock SetFullBpAmmo(id, iWeaponID) { new iFullbpammo,iAmmoId; for(new i = 1; i < AmmoIds; i++) { if(g_iAmmoWeaponSharedBitSum[i] & (1<<iWeaponID)) { iAmmoId = i; iFullbpammo = g_iAmmoMax[i]; break; } } if(!iAmmoId) return; cs_set_user_bpammo(id, iWeaponID, iFullbpammo); message_begin(MSG_ONE_UNRELIABLE, g_msgid_AmmoX, _, id); write_byte(iAmmoId); write_byte(iFullbpammo); message_end(); } stock has_user_weapon(id, iCswId, iSlot = 0) { new iWeapon; if( !iSlot ) { static const iWeaponsSlots[] = { -1, 2, // CSW_P228 -1, 1, // CSW_SCOUT 4, // CSW_HEGRENADE 1, // CSW_XM1014 5, // CSW_C4 1, // CSW_MAC10 1, // CSW_AUG 4, // CSW_SMOKEGRENADE 2, // CSW_ELITE 2, // CSW_FIVESEVEN 1, // CSW_UMP45 1, // CSW_SG550 1, // CSW_GALIL 1, // CSW_FAMAS 2, // CSW_USP 2, // CSW_GLOCK18 1, // CSW_AWP 1, // CSW_MP5NAVY 1, // CSW_M249 1, // CSW_M3 1, // CSW_M4A1 1, // CSW_TMP 1, // CSW_G3SG1 4, // CSW_FLASHBANG 2, // CSW_DEAGLE 1, // CSW_SG552 1, // CSW_AK47 3, // CSW_KNIFE 1 // CSW_P90 }; iSlot = iWeaponsSlots[iCswId]; } const XO_PLAYER = 5; const m_rgpPlayerItems_Slot0 = 367; iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XO_PLAYER); const XO_WEAPON = 4; const m_pNext = 42; const m_iId = 43; while( iWeapon > 0 ) { if( get_pdata_int(iWeapon, m_iId, XO_WEAPON) == iCswId ) return iWeapon; iWeapon = get_pdata_cbase(iWeapon, m_pNext, XO_WEAPON); } return 0; } stock SavePoints(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024]; formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `patirtis` = '%d', `kills` = '%d', `keys` = '%d', `points` = '%d' WHERE `username` = '%s';", TABLE_NAME, Patirtis[id], Kills[id], pKey[id], Points[id], get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE POINTS] %s", szQuery); } } stock SaveChests(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024], szChests[128]; for(new i; i <= CHEST_COUNT; i++) { format(szChests, sizeof(szChests), "%s%d ", szChests, Chest[id][i]); } formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `points` = '%d', `chests` = '%s' WHERE `username` = '%s';", TABLE_NAME, Points[id], szChests, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE CHESTS] %s", szQuery); } } stock SaveKeys(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024]; formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `points` = '%d', `keys` = '%d' WHERE `username` = '%s';", TABLE_NAME, Points[id], pKey[id], get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE KEYS] %s", szQuery); } } stock SaveRang(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024]; formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `rang` = '%d' WHERE `username` = '%s';", TABLE_NAME, Rang[id], get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE RANG] %s", szQuery); } } stock SaveKillers(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024]; formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `points` = '%d', `killers` = '%d' WHERE `username` = '%s';", TABLE_NAME, Points[id], Killers[id], get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE KILLERS] %s", szQuery); } } stock SaveGunsKills(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024], szKSkins[1024]; for(new i; i < MAX; i++) { format(szKSkins, sizeof(szKSkins), "%s%d ", szKSkins, uWeaponKills[i][id]); } formatex(szQuery, charsmax(szQuery), "UPDATE `%s` SET `skins_kills` = '%s' WHERE `username` = '%s';", TABLE_NAME, szKSkins, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE GUNS KILLS] %s", szQuery); } } stock log_errors(const szText[], any:...) { static szMessage[256]; vformat(szMessage, 256, szText, 2); log_to_file(g_logfile, szMessage); return PLUGIN_HANDLED; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1158\\ f0\\ fs16 \n\\ par } */
Furien.Enjoygame.Ro[+18][VIP FREE][Admine Free]
Ofer suport tehnic si incredere pentru servere de CS 1.6 !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
- puNx
- Membru, skill 0
- Posts: 80
- Joined: 07 Aug 2015, 18:26
- Detinator Steam: Da
- CS Status: :)
- Detinator server CS: Furien.Enjoygame.RO
- SteamID: #WAS
- Fond eXtream: 0
- Contact:
puNx wrote: ↑20 Mar 2019, 20:23Deoarece nu am mai vazut pe niciun sv de cs go remake plugin-ul asta si mi sa parut interesant !DevilBoy.eXe wrote: ↑17 Mar 2019, 18:33Si de ce incerci sa faci chestia asta? Avand in vedere ca motd-ul la majoritatea cs-urilor este blocat nu vei reusi sa faci nimic decat sa ingreunezi jocul pentru jucatori
Edit: Nu ma lasa sa compilez "rcsgo" am incercat si local dar degeaba
SS:
https://imgur.com/wLGPPNk
Sursa:
- | Afiseaza codul
#include <amxmodx> #include <amxmisc> #include <engine> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #include <cstrike> #include <fun> #include <sqlx> #include <supplybox> #include <rcsgo> // # Project by DeRoiD https://forums.alliedmods.net/showthread.php?t=265653 // # Author by Psychical https://www.supergames.lt/topic/244152- ... 100€-1-ip/ new const PLUGIN[] = "Global Offensive"; new const VERSION[] = "4.62"; new const AUTHOR[] = "Psychical"; /*================================================================================ [MySQLx Vars, other] =================================================================================*/ #define DB_HOST "" #define DB_USER "" #define DB_PASS "" #define DB_DATA "" #define TABLE_NAME "rcsgo_player" #define EVENT "^1[^4Event^1]" // Prefix'as prie tekstų Event #define ACCESS_VIP ADMIN_LEVEL_H // VIP access #define ACCESS_ADMIN ADMIN_BAN // ADMIN access #define SOUND_SOLD "ambience/quail1.wav" new Handle:g_hTuple; new g_msgid_ScreenFade, g_msgid_SyncHud; #define MAX 400 // Jei MAX 200 tai CHEST_ID = 201 ir KEY_ID = 202 #define MAX_RANGS 30 #define CHEST_ID 500 #define CHEST_COUNT 7 #define KEY_ID 600 #define KEY_ID_TEXT "600" #define POINTS_KILL_MIN 3 #define POINTS_KILL_MAX 9 #define POINTS_KILL_HS 3 // Jei HS, Kiek pridės prie normaliu tasku #define POINTS_KILL_VIP_FLAG ACCESS_VIP // VIP access #define POINTS_KILL_MIN_VIP 2 // Pridedamas Prie POINTS_KILL_MIN #define POINTS_KILL_MAX_VIP 5 // Pridedamas Prie POINTS_KILL_MAX #define POINTS_KILL_ADMIN_FLAG ACCESS_ADMIN // ADMIN access #define POINTS_KILL_MIN_ADMIN 5 // Pridedamas Prie POINTS_KILL_MIN #define POINTS_KILL_MAX_ADMIN 7 // Pridedamas Prie POINTS_KILL_MAX #define DROP_RATE_KEYS 500 #define DROP_RATE_CHEST 500 #define DROP_RATE_KILL 8 #define DROP_RATE_PLANT 8 #define DROP_RATE_DEF 8 #define DROP_RATE_HOSTAGE 8 #define DROP_RATE_VIP_FLAG ACCESS_VIP #define DROP_RATE_KILL_VIP 12 #define DROP_RATE_EXPLODE_VIP 12 #define DROP_RATE_PLANT_VIP 12 #define DROP_RATE_DEF_VIP 12 #define DROP_RATE_HOSTAGE_VIP 12 #define DROP_RATE_ADMIN_FLAG ACCESS_ADMIN #define DROP_RATE_KILL_ADMIN 14 #define DROP_RATE_PLANT_ADMIN 14 #define DROP_RATE_DEF_ADMIN 14 #define DROP_RATE_HOSTAGE_ADMIN 14 #define MIN_PASSWORD_LENGTH 4 #define MIN_CODE_LENGTH 6 #define MARKET_MIN_PRICE 50 #define MARKET_WAIT_ADD 3 #define HOSTAGE_ESCAPE 5 #define HOSTAGE_ESCAPE_STEAM 7 #define HOSTAGE_ESCAPE_VIP 9 #define HOSTAGE_ESCAPE_ADMIN 12 #define HOSTAGE_ESCAPE_SADMIN 14 #define HOSTAGE_KILL_PENALTY 15 // Reduce Points #define BOMB_PLANTED_POINTS 3 #define BOMB_EXPLODE_POINTS 5 #define BOMB_DEFUSED_POINTS 7 #define BOMB_PLANTED_POINTS_VIP 5 #define BOMB_EXPLODE_POINTS_VIP 7 #define BOMB_DEFUSED_POINTS_VIP 9 #define BOMB_PLANTED_POINTS_ADMIN 7 #define BOMB_EXPLODE_POINTS_ADMIN 9 #define BOMB_DEFUSED_POINTS_ADMIN 12 #define BOMB_PLANTED_POINTS_SADMIN 9 #define BOMB_EXPLODE_POINTS_SADMIN 12 #define BOMB_DEFUSED_POINTS_SADMIN 15 #define ROUND_WIN_POINTS 24 #define NEED_MIN_PLAYERS 4 new g_logfile[64]; new bool:gEnd = false; #define TASKID_REMENU 100 new csgo_password_field; new colchar[3][2] = { "^x03"/*team col*/, "^x04"/*green*/, "^x01"/*white*/ } new cvar_refill_spawn; // Cvar pointers new p_allchat, p_alltalk, p_hidestat, p_teamchat; // Vars to check if message has already been duplicated new alv_sndr, alv_str2[26], alv_str4[101]; new msg[513]; new gWarnings[33] = 0; /*=========*/ new bool:bTrade[33] = false; new bool:bTradeAccepted[33] = false; /*=========*/ /*================================================================================ =================================================================================*/ new const g_weapons[] = { CSW_P228, CSW_SCOUT, CSW_XM1014, CSW_MAC10, CSW_AUG, CSW_ELITE, CSW_FIVESEVEN, CSW_UMP45, CSW_SG550, CSW_GALI, CSW_GALIL, CSW_FAMAS, CSW_USP, CSW_GLOCK18, CSW_AWP, CSW_MP5NAVY, CSW_M249, CSW_M3, CSW_M4A1, CSW_TMP, CSW_G3SG1, CSW_DEAGLE, CSW_SG552, CSW_AK47, CSW_P90 } new const g_other_weapons[] = { CSW_KNIFE, CSW_HEGRENADE, CSW_C4 } new const g_max_clip[] = { 13, 10, 7, 30, 30, 30, 20, 25, 30, 35, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 7, 30, 30, 50 } enum _:AmmoIds { ammo_none, ammo_338magnum = 1, ammo_762nato, ammo_556natobox, ammo_556nato, ammo_buckshot, ammo_45acp, ammo_57mm, ammo_50ae, ammo_357sig, ammo_9mm } new g_iAmmoMax[AmmoIds] = { -1, 30, 90, 200, 90, 32, 100, 100, 35, 52, 120 } new const g_iAmmoWeaponSharedBitSum[AmmoIds] = { 0, (1<<CSW_AWP), (1<<CSW_SCOUT)|(1<<CSW_G3SG1)|(1<<CSW_AK47), (1<<CSW_M249), (1<<CSW_AUG)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_M4A1)|(1<<CSW_SG552), (1<<CSW_XM1014)|(1<<CSW_M3), (1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_USP), (1<<CSW_P90)|(1<<CSW_FIVESEVEN), (1<<CSW_DEAGLE), (1<<CSW_P228), (1<<CSW_MP5NAVY)|(1<<CSW_TMP)|(1<<CSW_ELITE)|(1<<CSW_GLOCK18) } new g_msgid_AmmoX; #pragma semicolon 1; new WeaponNames[MAX][64], WeaponMdls[MAX][128], WeaponMdlsP[MAX][128], Weapons[MAX], WeaponDrop[MAX], AllWeapon; new uWeapon[MAX][33], weaponRang[MAX], uWeaponKills[MAX][33], Chest[33][CHEST_COUNT+1], pKey[33], Points[33], Rang[33], Killers[33], Patirtis[33], Kills[33], aThing[33], aTarget[33], aPoints[33], Prefix[32]; new Folder[48], SkinFile[48], RangFile[48], DefaFile[48], MenuMod[33]; new WeaponinMarket[33], inMarket[33], MarketPoints[33]; new SavedPassword[33][32], bool:Loged[33], bool:gLogged[33], bool:gRegistered[33], Password[33][32]; new DefaultSkin[33][32], DefaultSkinP[33][32], DefaultSkinW[33][32], NeedPatirtis[MAX_RANGS], Rangs[MAX_RANGS][32]; new gCanLoad, gCanSave; new bUsingGuns[33][CSW_VESTHELM]; new gLastMarketTime[33] = 0; new chestsList[CHEST_COUNT+1][128][512]; new chestsChance[CHEST_COUNT+1][128]; new aAmount[33], mAmount[33], uniqPrice[MAX]; new const eWeapon[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90" }; new const szWeaponNames[][] = { "", "P228", "", "Scout", "HE", "XM1014", "C4", "MAC10", "Aug", "SG", "Elite", "Five Seven", "UMP45", "SG550", "Galil", "Famas", "USP", "Glock", "AWP", "MP5 Navy", "M249", "M3", "M4A1", "TMP", "G3SG1", "FB", "Deagle", "SG552", "AK47", "Knife", "P90" }; public plugin_precache() { register_dictionary("globaloffensive.txt"); get_time("rcsgo_%Y%m%d.log", g_logfile, charsmax(g_logfile)); log_errors("-------------------- == --------------------"); new Line[512], Data[9][128], Len; AllWeapon++; get_configsdir(Folder, 47); format(SkinFile, 47, "%s/rcsgo/skins.cfg", Folder); format(RangFile, 47, "%s/rcsgo/rangs.cfg", Folder); format(DefaFile, 47, "%s/rcsgo/dskins.cfg", Folder); if(file_exists(RangFile)) { for(new i; i < file_size(RangFile, 1); i++) { if(i >= MAX_RANGS) { log_errors("[plugin_precache] Increase your MAX_RANGS define."); break; } read_file(RangFile, i, Line, 127, Len); parse(Line, Data[0], 31, Data[1], 31); copy(Rangs, 31, Data[0]); NeedPatirtis = str_to_num(Data[1]); } } if(file_exists(SkinFile)) { for(new i; i < file_size(SkinFile, 1); i++) { if(AllWeapon >= MAX) { log_errors("[plugin_precache] Increase your MAX define."); break; } read_file(SkinFile, i, Line, 512, Len); if(strlen(Line) < 5 || Line[0] == ';' || (Line[0] == '/' && Line[1] == '/')) continue; // Ginklas, pavadinimas, v_, p_, chance - old // Ginklas, pavadinimas, v_, p_, chest, chance, number parse(Line, Data[0], 31, Data[1], 31, Data[2], 128, Data[3], 128, Data[4], 31, Data[5], 31, Data[6], 31, Data[7], 31, Data[8], 31); Weapons[AllWeapon] = str_to_num(Data[0]); copy(WeaponNames[AllWeapon], 63, Data[1]); if(ValidMdl(Data[2])) { precache_model(Data[2]); copy(WeaponMdls[AllWeapon], 128, Data[2]); if(file_exists(Data[3]) && strlen(Data[3]) > 5) { precache_model(Data[3]); copy(WeaponMdlsP[AllWeapon], 128, Data[3]); } } WeaponDrop[AllWeapon] = str_to_num(Data[4]); chestsChance[str_to_num(Data[4])][str_to_num(Data[5])] += 1; chestsList[str_to_num(Data[4])][str_to_num(Data[5])][str_to_num(Data[6])] = AllWeapon; log_amx("chestsList[%s][%s][%s] = %d", Data[4], Data[5], Data[6], AllWeapon); uniqPrice[AllWeapon] = str_to_num(Data[7]); if(Data[8][0] == 'W') weaponRang[AllWeapon] = 4; else if(Data[8][0] == 'B') weaponRang[AllWeapon] = 3; else if(Data[8][0] == 'R') weaponRang[AllWeapon] = 2; else if(Data[8][0] == 'Y') weaponRang[AllWeapon] = 1; else weaponRang[AllWeapon] = 0; AllWeapon++; } } if(file_exists(DefaFile)) { for(new i; i < file_size(DefaFile, 1); i++) { read_file(DefaFile, i, Line, 127, Len); if(strlen(Line) < 5 || Line[0] == ';' || (Line[0] == '/' && Line[1] == '/')) continue; parse(Line, Data[0], 31, Data[1], 47, Data[2], 47); if(ValidMdl(Data[1])) { precache_model(Data[1]); copy(DefaultSkin[str_to_num(Data[0])], 47, Data[1]); if(file_exists(Data[2]) && strlen(Data[2]) > 5) { precache_model(Data[2]); copy(DefaultSkinP[str_to_num(Data[0])], 47, Data[2]); } if(file_exists(Data[3]) && strlen(Data[3]) > 5) { precache_model(Data[3]); copy(DefaultSkinW[str_to_num(Data[0])], 47, Data[3]); } } } } precache_sound(SOUND_SOLD); g_hTuple = SQL_MakeDbTuple(DB_HOST, DB_USER, DB_PASS, DB_DATA); new szTables[640]; format(szTables, 640, "CREATE TABLE IF NOT EXISTS `%s` (`username` varchar(64) COLLATE utf8_lithuanian_ci NOT NULL, `password` varchar(64) COLLATE utf8_lithuanian_ci NOT NULL, `patirtis` int(11) NOT NULL, `points` int(11) NOT NULL, `keys` int(11) NOT NULL, `chests` int(11) NOT NULL, `rang` int(11) NOT NULL, `skins` varchar(512) COLLATE utf8_lithuanian_ci NOT NULL, PRIMARY KEY (`username`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_lithuanian_ci", TABLE_NAME); SQL_ThreadQuery( g_hTuple, "QueryCreateTable", szTables); } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar(PLUGIN, VERSION, FCVAR_SERVER); register_supply_box("Experience Box"); register_clcmd("say /menu", "MenuOpen"); register_clcmd("say /reg", "RegMenu"); register_clcmd("say /register", "TradeMenu"); register_clcmd("say /kills", "KillsLeft"); register_clcmd("say menu", "MenuOpen"); register_clcmd("say reg", "RegMenu"); register_clcmd("say register", "TradeMenu"); register_clcmd("say kills", "KillsLeft"); register_clcmd("say !menu", "MenuOpen"); register_clcmd("say !reg", "RegMenu"); register_clcmd("say !register", "TradeMenu"); register_clcmd("say !kills", "KillsLeft"); register_clcmd("say .menu", "MenuOpen"); register_clcmd("say .reg", "RegMenu"); register_clcmd("say .register", "TradeMenu"); register_clcmd("say .kills", "KillsLeft"); register_clcmd("say /savepass", "SavePassword"); register_clcmd("say /skins", "cmdUniq"); register_clcmd("radio1", "MenuOpen"); register_concmd("Cost", "MarketCost"); register_concmd("Gift", "GiftPoint"); register_concmd("setAmount", "SetAmount"); register_concmd("setMarketAmount", "SetMarketAmount"); register_concmd("UserPassword", "PlayerPassword"); register_logevent("Hostage_Rescued", 3, "2=Rescued_A_Hostage"); register_event("TextMsg", "TextMsg_Killed_Hostage", "b", "1=4", "2=#Killed_Hostage"); register_event("HLTV", "RoundStart", "a", "1=0", "2=0"); register_forward(FM_ClientUserInfoChanged, "NameChange"); register_forward(FM_SetModel, "SetModel"); register_message(get_user_msgid("SendAudio"), "Message_SendAudio"); RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1); for(new i; i < sizeof(eWeapon); i++) { if(strlen(eWeapon) > 3) { RegisterHam(Ham_Item_Deploy, eWeapon, "WeaponSwitch", 1); } } csgo_password_field = register_cvar("csgo_password_field", "_rcsgo"); g_msgid_ScreenFade = get_user_msgid("ScreenFade"); g_msgid_SyncHud = CreateHudSyncObj(); g_msgid_AmmoX = get_user_msgid("AmmoX"); cvar_refill_spawn = register_cvar("csgo_refill_onspawn", "1"); p_allchat = register_cvar("sv_allchat", "2"); p_hidestat = register_cvar("ac_hidestatus", "0"); p_teamchat = register_cvar("ac_teamchat", "0"); register_cvar( "csgo_nick_show", "0" ); p_alltalk = get_cvar_pointer( "sv_alltalk" ); register_message(get_user_msgid("SayText"), "col_changer"); set_task(5.0, "LoadConnected"); gCanLoad = 0; gCanSave = 0; new iEnt = -1; while((iEnt = find_ent_by_class(iEnt, "env_sound"))) { DispatchKeyValue(iEnt, "roomtype", "0"); DispatchKeyValue(iEnt, "radius", "0"); } format(Prefix, 31, "%L", LANG_PLAYER, "PREFIX"); } public plugin_cfg() { if(!g_hTuple) { g_hTuple = SQL_MakeStdTuple(); } return 1; } public plugin_natives() { register_native("cs_get_user_points", "native_cs_get_user_points", 1); register_native("cs_set_user_points", "native_cs_set_user_points", 1); } public native_cs_get_user_points(player) { return Points[player]; } public native_cs_set_user_points(player, prize) { Points[player] = prize; SavePoints(player); } public sb_pickup(id) { new iPlayers[32], iPlayersNum; get_players(iPlayers, iPlayersNum); new szName[32]; get_user_name(id, szName, 31); new Random = random_num(1, 100); new point = random_num(50, 300), points = random_num(100, 300), plus = random_num(200, 500); if(Random < 5) { drop_keys(id, DROP_RATE_KEYS); } else if(Random < 25) { drop_item(id, DROP_RATE_CHEST); } else if(iPlayersNum >= 0 && iPlayersNum <= 10) { Points[id] += point; client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUND_ALL", EVENT, szName, point); } else if(iPlayersNum >= 11 && iPlayersNum <= 20) { Points[id] += points; client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUND_ALL", EVENT, szName, points); } else if(iPlayersNum >= 21) { Points[id] += plus; client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUND_ALL", EVENT, szName, plus); } } public SavePassword(id) { if(!Loged[id]) { if(!gRegistered[id]) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); } else { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "LOGIN_FIRST", Prefix); } return PLUGIN_HANDLED; } new passfield[32]; get_pcvar_string(csgo_password_field, passfield, 31); set_user_info(id, passfield, SavedPassword[id]); client_cmd(id, "setinfo %s %s", passfield, SavedPassword[id]); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "SUCCESS_SAVED", Prefix); return PLUGIN_HANDLED; } public KillsLeft(id) { if(!Loged[id]) { if(!gRegistered[id]) { print_color(id, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); print_color(id, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); } else { print_color(id, "%L", LANG_PLAYER, "LOGIN_FIRST", Prefix); } return PLUGIN_HANDLED; } if(get_user_flags(id) & ACCESS_ADMIN) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "KILLS_SHOW_KEYS_75", EVENT, 75 - (Killers[id] % 75), Killers[id] % 75); } else if(get_user_flags(id) & ACCESS_VIP) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "KILLS_SHOW_KEYS_100", EVENT, 100 - (Killers[id] % 100), Killers[id] % 100); } else { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "KILLS_SHOW_KEYS_125", EVENT, 125 - (Killers[id] % 125), Killers[id] % 125); } return PLUGIN_CONTINUE; } public TextMsg_Killed_Hostage(id) { Points[id] -= HOSTAGE_KILL_PENALTY; set_hudmessage(255, 0, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(id, "%L", LANG_PLAYER, "POINT_REDUCE", HOSTAGE_KILL_PENALTY); SavePoints(id); } public Hostage_Rescued() { static loguser[80], name[32], id; read_logargv(0, loguser, 79); parse_loguser(loguser, name, 31); id = get_user_index(name); if(is_user_connected(id) && get_playersnum() >= NEED_MIN_PLAYERS) if(get_user_flags(id) & ACCESS_ADMIN) { Points[id] += HOSTAGE_ESCAPE_ADMIN; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(id, "%L", LANG_PLAYER, "POINT", HOSTAGE_ESCAPE_ADMIN); drop_item(id, DROP_RATE_HOSTAGE_ADMIN); SavePoints(id); } else if(get_user_flags(id) & ACCESS_VIP) { Points[id] += HOSTAGE_ESCAPE_VIP; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(id, "%L", LANG_PLAYER, "POINT", HOSTAGE_ESCAPE_VIP); drop_item(id, DROP_RATE_HOSTAGE_VIP); SavePoints(id); } else { Points[id] += HOSTAGE_ESCAPE; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(id, "%L", LANG_PLAYER, "POINT", HOSTAGE_ESCAPE); drop_item(id, DROP_RATE_HOSTAGE); SavePoints(id); } } public LoadConnected() { gCanLoad = 1; gCanSave = 1; for(new i=1; i <= get_maxplayers(); i++) { if(is_user_connected(i)) { add_delay(i); } } } public plugin_end() { SQL_FreeHandle(g_hTuple); } public bomb_explode(planter, defuser) { if(is_user_connected(planter) && get_playersnum() >= NEED_MIN_PLAYERS) if(get_user_flags(planter) & ACCESS_ADMIN) { Points[planter] += BOMB_EXPLODE_POINTS_ADMIN; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_EXPLODE_POINTS_ADMIN); drop_item(planter, DROP_RATE_PLANT_ADMIN); SavePoints(planter); } else if(get_user_flags(planter) & ACCESS_VIP) { Points[planter] += BOMB_EXPLODE_POINTS_VIP; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_EXPLODE_POINTS_VIP); drop_item(planter, DROP_RATE_PLANT_VIP); SavePoints(planter); } else { Points[planter] += BOMB_EXPLODE_POINTS; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_EXPLODE_POINTS); drop_item(planter, DROP_RATE_PLANT); SavePoints(planter); } } public bomb_planted(planter) { if(is_user_connected(planter) && get_playersnum() >= NEED_MIN_PLAYERS) if(get_user_flags(planter) & ACCESS_ADMIN) { Points[planter] += BOMB_PLANTED_POINTS_ADMIN; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_PLANTED_POINTS_ADMIN); drop_item(planter, DROP_RATE_PLANT_ADMIN); SavePoints(planter); } else if(get_user_flags(planter) & ACCESS_VIP) { Points[planter] += BOMB_PLANTED_POINTS_VIP; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_PLANTED_POINTS_VIP); drop_item(planter, DROP_RATE_PLANT_VIP); SavePoints(planter); } else { Points[planter] += BOMB_PLANTED_POINTS; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(planter, "%L", LANG_PLAYER, "POINT", BOMB_PLANTED_POINTS); drop_item(planter, DROP_RATE_PLANT); SavePoints(planter); } } public bomb_defused(defuser) { if(is_user_connected(defuser) && get_playersnum() >= NEED_MIN_PLAYERS) if(get_user_flags(defuser) & ACCESS_ADMIN) { Points[defuser] += BOMB_DEFUSED_POINTS_ADMIN; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(defuser, "%L", LANG_PLAYER, "POINT", BOMB_DEFUSED_POINTS_ADMIN); drop_item(defuser, DROP_RATE_DEF_ADMIN); SavePoints(defuser); } else if(get_user_flags(defuser) & ACCESS_VIP) { Points[defuser] += BOMB_DEFUSED_POINTS_VIP; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(defuser, "%L", LANG_PLAYER, "POINT", BOMB_DEFUSED_POINTS_VIP); drop_item(defuser, DROP_RATE_DEF_VIP); SavePoints(defuser); } else { Points[defuser] += BOMB_DEFUSED_POINTS; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(defuser, "%L", LANG_PLAYER, "POINT", BOMB_DEFUSED_POINTS); drop_item(defuser, DROP_RATE_DEF); SavePoints(defuser); } } public RoundStart() { gEnd = false; } public Message_SendAudio(iMsgId, iMsgDest, id) { if(!id && !gEnd && get_playersnum() >= NEED_MIN_PLAYERS) { new szSound[14]; get_msg_arg_string(2, szSound, charsmax(szSound)); new iPlayers[32], iNum, tId; if(equal(szSound, "%!MRAD_ctwin")) { get_players(iPlayers, iNum, "ceh", "CT"); for(new i; i < iNum; i++) { tId = iPlayers; if(!is_user_alive(tId) || cs_get_user_team(tId) != CS_TEAM_CT) { continue; } Points[tId] += ROUND_WIN_POINTS; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(tId, "%L", LANG_PLAYER, "POINT", ROUND_WIN_POINTS); SavePoints(tId); SaveData(tId); } gEnd = true; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "CT_TEAM_WIN", Prefix, ROUND_WIN_POINTS); } else if( equal(szSound, "%!MRAD_terwin") ) { get_players(iPlayers, iNum, "ceh", "TERRORIST"); for(new i; i < iNum; i++) { tId = iPlayers; if(!is_user_alive(tId) || cs_get_user_team(tId) != CS_TEAM_T) { continue; } Points[tId] += ROUND_WIN_POINTS; set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); show_hudmessage(tId, "%L", LANG_PLAYER, "POINT", ROUND_WIN_POINTS); SavePoints(tId); SaveData(tId); } gEnd = true; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "T_TEAM_WIN", Prefix, ROUND_WIN_POINTS); } } } public PlayerSpawn(id) { if(is_user_alive(id)) { if(!Loged[id] && gRegistered[id]) { RegMenu(id); set_user_maxspeed(id, 1.0); if(!equal(Password[id], SavedPassword[id])) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "LOGIN_FIRST", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "LOGIN_FIRST", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "LOGIN_FIRST", Prefix); } } if(!gRegistered[id]) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); } if(get_pcvar_num(cvar_refill_spawn)) { static iWeapons[32], iNum, i, iGun; iNum = 0; get_user_weapons(id, iWeapons, iNum); for( i = 0; i < iNum; i++ ) { for (new a = 0; a < sizeof (g_other_weapons); a++) if (iWeapons == g_other_weapons[a]) continue; for (new a = 0; a < sizeof (g_weapons); a++) { if(g_weapons[a] == iWeapons) { if (get_weapon_maxclip(iWeapons)) { iGun = has_user_weapon(id, iWeapons); client_cmd(id, "spk ^"items/9mmclip1.wav^""); cs_set_weapon_ammo(iGun, get_weapon_maxclip(iWeapons[i])); SetFullBpAmmo(id, iWeapons[i]); } } } } } if(cs_get_user_team(id) == CS_TEAM_CT) { cs_set_user_defuse(id, 1); } } return PLUGIN_CONTINUE; } public col_changer( msg_id, msg_dest, rcvr ) { new str2[26]; get_msg_arg_string( 2, str2, 25 ); if( equal( str2, "#Cstrike_Chat", 13 ) ) { new str3[22]; get_msg_arg_string( 3, str3, 21 ); if( !strlen( str3 ) ) { new str4[101]; get_msg_arg_string( 4, str4, 100 ); new sndr = get_msg_arg_int( 1 ); new bool:is_team_msg = !bool:equal( str2, "#Cstrike_Chat_All", 17 ); new sndr_team = get_user_team( sndr ); new bool:is_sndr_spec = !bool:( 0 < sndr_team < 3 ); new bool:same_as_last = bool:( alv_sndr == sndr && equal( alv_str2, str2 ) && equal( alv_str4, str4) ); if( !same_as_last ) { // Duplicate message once new allchat = clamp( get_pcvar_num( p_allchat ), 0, 2 ); if( allchat == 2 || ( allchat == 1 && clamp( get_pcvar_num( p_alltalk ), 0, 1 ) == 1 ) ) { if( !( is_team_msg && ( is_sndr_spec || is_team_msg && get_pcvar_num( p_teamchat ) == 0 ) ) ) { // Don't duplicate if it's a spectator team message new flags[5], team[10]; if( is_user_alive( sndr ) ) flags = "bch"; else flags = "ach"; if( is_team_msg ) { add( flags[strlen( flags )], 4, "e" ); if( sndr_team == 1 ) team = "TERRORIST"; else team = "CT"; } new players[32], num; get_players( players, num, flags, team ); buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4 ); // normal colors for( new i=0; i < num; i++ ) { message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, players[i] ); write_byte( sndr ); write_string( msg ); message_end(); } } alv_sndr = sndr; alv_str2 = str2; alv_str4 = str4; if(task_exists(411)) remove_task(411); set_task( 0.1, "task_clear_antiloop_vars", 411 ); } } if(gLogged[sndr]) { if( !same_as_last ) buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4 ); set_msg_arg_string( 2, msg ); set_msg_arg_string( 4, "" ); } } } return PLUGIN_CONTINUE; } public buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4[ ] ) { new sndr_name[33]; get_user_name( sndr, sndr_name, 32); new prefix[126] = "^x01"; if( get_pcvar_num( p_hidestat ) == 0 ) { if( is_sndr_spec ) prefix = "^x01*SPEC* "; else if( !is_user_alive( sndr ) ) prefix = "^x01*DEAD* "; } if(is_user_connected(sndr)) { if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_RCON) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[Savininkas] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_LEVEL_B) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[Vyr. Prižiūrėtojas] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_LEVEL_C) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[Prižiūrėtojas] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_LEVEL_D) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[Administratorius] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_LEVEL_E) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[ADMIN] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_LEVEL_H) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[VIP] | [%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(gLogged[sndr] && get_user_flags(sndr) & ADMIN_USER) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[%s] ", Rangs[Rang[sndr]]); add(prefix[strlen(prefix)-1], 64, szMsg); } else if(!gLogged[sndr]) { new szMsg[64]; format(szMsg, sizeof(szMsg)-1, "^4[Neprisijunges] "); add(prefix[strlen(prefix)-1], 29, szMsg); } } if( is_team_msg ) { if( is_sndr_spec ) prefix = "^x01(Spectator) "; else if( sndr_team == 1 ) add( prefix[strlen(prefix)-1], 29, "^x01(Terrorist) " ); else if( sndr_team == 2 ) add( prefix[strlen(prefix)-1], 29, "^x01(Counter-Terrorist) " ); } format( msg, 512, "%s%s%s : %s%s", strlen( prefix ) > 1 ? prefix : "", colchar[namecol], sndr_name, colchar[msgcol], str4 ); return PLUGIN_HANDLED; } public task_clear_antiloop_vars( ) { alv_sndr = 0; alv_str2 = ""; alv_str4 = ""; return PLUGIN_HANDLED; } public MenuOpen(id) { if(!Loged[id]) { RegMenu(id); return PLUGIN_HANDLED; } aAmount[id] = 1; MenuMod[id] = 0; Menu(id); return PLUGIN_HANDLED; } public client_death(Killer, Victim, wpnindex, hitplace, TK) { if(Killer == Victim) { return PLUGIN_HANDLED; } if(!gRegistered[Victim]) { client_print_color(Victim, print_team_default, "%L", LANG_PLAYER, "BLANK"); client_print_color(Victim, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); client_print_color(Victim, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); client_print_color(Victim, print_team_default, "%L", LANG_PLAYER, "BLANK"); } if(!gRegistered[Killer]) { client_print_color(Killer, print_team_default, "%L", LANG_PLAYER, "BLANK"); client_print_color(Killer, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); client_print_color(Killer, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); client_print_color(Killer, print_team_default, "%L", LANG_PLAYER, "BLANK"); } Patirtis[Killer] += 3; Kills[Killer]++; Killers[Killer]++; static kGun; kGun = get_user_weapon(Killer, _, _); new szName[32]; get_user_name(Killer, szName, 31); new rNum; rNum = random(CHEST_COUNT)+1; new Point = random_num(2000, 8000); if(bUsingGuns[Killer][kGun]) { uWeaponKills[bUsingGuns[Killer][kGun]][Killer]++; SaveGunsKills(Killer); set_task(0.1, "UpdateStatusText", Killer); } if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 1)) { if(Patirtis[Killer] >= NeedPatirtis[Rang[Killer]]) { Rang[Killer]++; pKey[Killer] += Rang[Killer]; Chest[Killer][rNum] += Rang[Killer]; Points[Killer] += Point; client_print_color(0, print_team_default, "%L", LANG_PLAYER, "MRANG_PASIEKE", Prefix, szName, Rangs[Rang[Killer]]); client_print_color(0, print_team_default, "%L", LANG_PLAYER, "MRANG_BONUS", Prefix, szName, Rang[Killer], Rang[Killer], Point); SaveRang(Killer); SaveKeys(Killer); SaveChests(Killer); } } if(Killers[Killer] % 75 == 0 && get_user_flags(Killer) & ACCESS_ADMIN) { drop_keys(Killer , DROP_RATE_KEYS); Killers[Killer] = 0; } else if(Killers[Killer] % 100 == 0 && get_user_flags(Killer) & ACCESS_VIP) { drop_keys(Killer , DROP_RATE_KEYS); Killers[Killer] = 0; } else if(Killers[Killer] % 125 == 0) { drop_keys(Killer , DROP_RATE_KEYS); Killers[Killer] = 0; } new pPont, vPont, hsPont; pPont += random_num(POINTS_KILL_MIN, POINTS_KILL_MAX); if(hitplace == HIT_HEAD) { pPont += hsPont = POINTS_KILL_HS; } Points[Killer] += pPont; if(get_user_flags(Killer) & POINTS_KILL_ADMIN_FLAG) { vPont += random_num(POINTS_KILL_MIN_ADMIN, POINTS_KILL_MAX_ADMIN); Points[Killer] += vPont; } else if(get_user_flags(Killer) & POINTS_KILL_VIP_FLAG) { vPont += random_num(POINTS_KILL_MIN_VIP, POINTS_KILL_MAX_VIP); Points[Killer] += vPont; } set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 2.0); if(get_user_flags(Killer) & POINTS_KILL_ADMIN_FLAG) { if(hitplace == HIT_HEAD) { show_hudmessage(Killer, "^n%L +%d Bonus +%d HS", LANG_PLAYER, "POINT", pPont, vPont, hsPont); drop_item(Killer, DROP_RATE_KILL_ADMIN); } else { show_hudmessage(Killer, "^n%L +%d Bonus", LANG_PLAYER, "POINT", pPont, vPont); drop_item(Killer, DROP_RATE_KILL_ADMIN); } } else if(get_user_flags(Killer) & POINTS_KILL_VIP_FLAG) { if(hitplace == HIT_HEAD) { show_hudmessage(Killer, "^n%L +%d Bonus +%d HS", LANG_PLAYER, "POINT", pPont, vPont, hsPont); drop_item(Killer, DROP_RATE_KILL_VIP); } else { show_hudmessage(Killer, "^n%L +%d Bonus", LANG_PLAYER, "POINT", pPont, vPont); drop_item(Killer, DROP_RATE_KILL_VIP); } } else { if(hitplace == HIT_HEAD) { show_hudmessage(Killer, "^n%L +%d HS", LANG_PLAYER, "POINT", pPont, hsPont); } else { show_hudmessage(Killer, "^n%L", LANG_PLAYER, "POINT", pPont); } } drop_item(Killer, DROP_RATE_KILL); SavePoints(Killer); SaveKillers(Killer); return PLUGIN_CONTINUE; } public SetModel(entity, model[]) { if(!pev_valid(entity)) return FMRES_IGNORED; static Classname[32]; pev(entity, pev_classname, Classname, sizeof(Classname)); if(!equal(Classname, "weaponbox")) return FMRES_IGNORED; static iOwner; iOwner = pev(entity, pev_owner); static iWeapon; iWeapon = get_user_weapon(iOwner, _, _); static weapon; weapon = find_ent_by_owner(-1, eWeapon[iWeapon], entity); if(bUsingGuns[iOwner][iWeapon] && !pev(weapon, pev_impulse)) { if(!pev_valid(weapon)) return FMRES_IGNORED; set_pev(weapon, pev_impulse, bUsingGuns[iOwner][iWeapon]); if(strlen(DefaultSkinW[iWeapon]) > 5) { entity_set_model(entity, DefaultSkinW[iWeapon]); return FMRES_SUPERCEDE; } return FMRES_IGNORED; } return FMRES_IGNORED; } 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(MARKET_MIN_PRICE > Cost) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NOTENOUGHTMARKET", Prefix, MARKET_MIN_PRICE); client_cmd(id, "messagemode Cost"); MarketPoints[id] = MARKET_MIN_PRICE; Menu(id); MenuMod[id] = 3; return PLUGIN_HANDLED; } else { MarketPoints[id] = Cost; Menu(id); MenuMod[id] = 3; return PLUGIN_CONTINUE; } } public SetMarketAmount(id) { if(!Loged[id]) return PLUGIN_HANDLED; new Data[32], Cost; read_args(Data, 31); remove_quotes(Data); Cost = str_to_num(Data); if(Cost < 1) { client_cmd(id, "messagemode setMarketAmount"); return PLUGIN_HANDLED; } else { mAmount[id] = Cost; Menu(id); MenuMod[id] = 3; } return PLUGIN_HANDLED; } public SetAmount(id) { if(!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 setAmount"); return PLUGIN_HANDLED; } else { aAmount[id] = Cost; Menu(id); MenuMod[id] = 5; } return PLUGIN_HANDLED; } 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; } } 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; } if(!is_user_connected(id)) { return HAM_SUPERCEDE; } if(pev(Weapon, pev_impulse)) { set_pev(id, pev_viewmodel2, WeaponMdls[pev(Weapon, pev_impulse)]); if(strlen(WeaponMdlsP[pev(Weapon, pev_impulse)]) > 5) { set_pev(id, pev_weaponmodel2, WeaponMdlsP[pev(Weapon, pev_impulse)]); } } else if(bUsingGuns[id][wid]) { set_pev(id, pev_viewmodel2, WeaponMdls[bUsingGuns[id][wid]]); if(strlen(WeaponMdlsP[bUsingGuns[id][wid]]) > 5) { set_pev(id, pev_weaponmodel2, WeaponMdlsP[bUsingGuns[id][wid]]); } set_task(0.1, "UpdateStatusText", id); } else if(strlen(DefaultSkin[wid]) > 5) { if(cs_get_user_team(id) == CS_TEAM_CT && wid == 29) { wid = 31; } set_pev(id, pev_viewmodel2, DefaultSkin[wid]); if(strlen(DefaultSkinP[wid]) > 5) { set_pev(id, pev_weaponmodel2, DefaultSkinP[wid]); } set_task(0.1, "UpdateStatusText", id); } else { set_task(0.1, "UpdateStatusText", id); } return HAM_IGNORED; } public Menu(id) { if(!Loged[id]) { RegMenu(id); return; } new sMenu, szText[256]; switch(MenuMod[id]) { case -2: // Kazkas su dovanom { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "GIFTCH", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "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(szText, sizeof(szText), "%L", LANG_PLAYER, "SKINPIECE", (bUsingGuns[id][Weapons[i]] == i) ? "\w" : "\y", WeaponNames[i], szWeaponNames[Weapons[i]], uWeapon[i][id]); menu_additem(sMenu, szText, String); All++; } for(new i=1; i <=CHEST_COUNT; i++) { if(Chest[id][i] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "CHESTPIECE", chest_name(i), Chest[id][i]); new szButton[128]; formatex(szButton, charsmax(szButton), "%d", CHEST_ID+i); menu_additem(sMenu, szText, szButton); All++; } } if(pKey[id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "KEYPIECE", pKey[id]); menu_additem(sMenu, szText, KEY_ID_TEXT); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } case -1: // Deti i turgu { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "GIFTCH", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "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(szText, sizeof(szText), "%L", LANG_PLAYER, "SKINPIECE", (bUsingGuns[id][Weapons[i]] == i) ? "\w" : "\y", WeaponNames[i], szWeaponNames[Weapons[i]], uWeapon[i][id]); menu_additem(sMenu, szText, String); All++; } for(new i=1; i <=CHEST_COUNT; i++) { if(Chest[id][i] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "CHESTPIECE", chest_name(i), Chest[id][i]); new szButton[128]; formatex(szButton, charsmax(szButton), "%d", CHEST_ID+i-1); menu_additem(sMenu, szText, szButton); All++; } } if(pKey[id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "KEYPIECE", pKey[id]); menu_additem(sMenu, szText, KEY_ID_TEXT); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } case 0: { formatex(szText, sizeof(szText), "\r%L %L", LANG_PLAYER, "MAIN", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); formatex(szText, sizeof(szText), "%L ^n\r------------", LANG_PLAYER, "MENUTOSKINS"); menu_additem(sMenu, szText, "1"); formatex(szText, sizeof(szText), "%L %L", LANG_PLAYER, "MENUTOCHESTOPEN", LANG_PLAYER, (!inMarket[id]) ? "BLANK" : "INMARKET"); menu_additem(sMenu, szText, (!inMarket[id]) ? "2" : "0"); formatex(szText, sizeof(szText), "%L ^n\r------------", LANG_PLAYER, "MENUCHESTINFO"); menu_additem(sMenu, szText, "7"); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MENUTOMARKET"); menu_additem(sMenu, szText, "3"); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MENUTOSHOP"); menu_additem(sMenu, szText, "6"); formatex(szText, sizeof(szText), "%L %L", LANG_PLAYER, "MENUTODUSTBIN", LANG_PLAYER, (!inMarket[id]) ? "BLANK" : "INMARKET"); menu_additem(sMenu, szText, (!inMarket[id]) ? "4" : "0"); formatex(szText, sizeof(szText), "%L %L%L", LANG_PLAYER, "MENUTOGIFT", LANG_PLAYER, (!inMarket[id]) ? "BLANK" : "INMARKET", LANG_PLAYER, "MRANG", Rangs[Rang[id]+1], Patirtis[id], NeedPatirtis[Rang[id]]); menu_additem(sMenu, szText, (!inMarket[id]) ? "5" : "0"); } case 1: // Skinai { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "MENUTOSKINS", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "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(szText, sizeof(szText), "%L", LANG_PLAYER, "SKINPIECE", (bUsingGuns[id][Weapons[i]] == i) ? "\w" : "\y", WeaponNames[i], szWeaponNames[Weapons[i]], uWeapon[i][id]); menu_additem(sMenu, szText, String); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } case 2: // Skrynios { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w - \r%L %L^n^n%L", LANG_PLAYER, "MENUTOCHESTOPEN", LANG_PLAYER, "YPOINT", Points[id], LANG_PLAYER, "KEYPIECE", pKey[id]); sMenu = menu_create(szText, "MenuHandler"); new call = menu_makecallback("Call_Back"); for(new i=1; i <=CHEST_COUNT; i++) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "CHESTPIECE", chest_name(i), Chest[id][i]); menu_additem(sMenu, szText, _, _, (Chest[id][i] > 0 && pKey[id] > 0) ? -1 : call); } } case 3: // Turgus { aThing[id] = 0; formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "MENUTOMARKET", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); new call = menu_makecallback("Call_Back"); aThing[32] = 0; new String[32], All; new Name[32]; get_user_name(id, Name, 31); if(!inMarket[id]) { for(new i = 1; i < AllWeapon; i++) { if(i == WeaponinMarket[id] && uWeapon[i][id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MARKETPLACES", WeaponNames[i], szWeaponNames[Weapons[i]], MarketPoints[id]); All = 50; } } // log_amx("Turgus. Rodo. %d <= %d <= %d && Chest[id][%d] > 0", CHEST_ID, WeaponinMarket[id], CHEST_ID+CHEST_COUNT, (WeaponinMarket[id]-CHEST_ID)+1); if(CHEST_ID <= WeaponinMarket[id] <= CHEST_ID+CHEST_COUNT && Chest[id][(WeaponinMarket[id]-CHEST_ID)+1] > 0) { for(new i=1; i <=CHEST_COUNT; i++) { // log_amx("Chest[id][%d] && %d == %d", i, (CHEST_ID+i-1), WeaponinMarket[id]); if(Chest[id][i] > 0 && ((CHEST_ID+i-1) == WeaponinMarket[id])) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MARKETPLACEC", chest_name(i), MarketPoints[id], mAmount[id]); All++; break; } } } if(KEY_ID == WeaponinMarket[id] && pKey[id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MARKETPLACEK", MarketPoints[id], mAmount[id]); All++; } if(All == 0) formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "MARKETPLACECH"); menu_additem(sMenu, szText, "-1"); if(All != 50) { formatex(szText, sizeof(szText), "Kiekis: \r%d", mAmount[id]); menu_additem(sMenu, szText, "-99"); } } formatex(szText, sizeof(szText), "%L", LANG_PLAYER, (!inMarket[id]) ? "TOMARKETM" : "BACKMARKET"); menu_additem(sMenu, szText, "0", _, ((get_systime()-gLastMarketTime[id]) > MARKET_WAIT_ADD) ? -1 : call); for(new x = 1; x <= get_maxplayers(); x++) { if(!is_user_connected(x) || is_user_bot(x)) continue; if(inMarket[x] && MarketPoints[x] > 0) { num_to_str(x, String, 31); if(CHEST_ID <= WeaponinMarket[x] <= CHEST_ID+CHEST_COUNT) { // log_amx("Turgus. Rodo. (%d-%d) = %d", WeaponinMarket[x], CHEST_ID, WeaponinMarket[x]-CHEST_ID); new chId = (WeaponinMarket[x]-CHEST_ID)+1; formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SELLERC", chest_name((WeaponinMarket[x]-CHEST_ID)+1), MarketPoints[x], mAmount[x] > Chest[x][chId] ? Chest[x][chId] : mAmount[x], Name); menu_additem(sMenu, szText, String); } else if(KEY_ID == WeaponinMarket[x]) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SELLERK", MarketPoints[x], mAmount[x] > pKey[x] ? pKey[x] : mAmount[x], Name); menu_additem(sMenu, szText, String); } else { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SELLERS", WeaponNames[WeaponinMarket[x]], szWeaponNames[Weapons[WeaponinMarket[x]]], MarketPoints[x], Name); menu_additem(sMenu, szText, String); } } } } case 4: // Keitykla { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "MENUTODUSTBIN", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); new String[32], All; for(new i = 1; i < AllWeapon; i++) { if(uWeapon[i][id] == 0 || weaponRang[i] == 0) continue; num_to_str(i, String, 31); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SKINPIECE", (bUsingGuns[id][Weapons[i]] == i) ? "\w" : "\y", WeaponNames[i], szWeaponNames[Weapons[i]], uWeapon[i][id]); menu_additem(sMenu, szText, String); All++; } if(All == 0) { MenuMod[id] = 0; Menu(id); } } case 5: // Dovanos { formatex(szText, sizeof(szText), "\r[\yPublic\r]\w -\r %L %L", LANG_PLAYER, "MENUTOGIFT", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); new call = menu_makecallback("Call_Back"); new All, Name[126], String[32]; get_user_name(aTarget[id], Name, 31); if(aTarget[id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTT", Name); menu_additem(sMenu, szText, "-1"); for(new i = 1; i < AllWeapon; i++) { if(i == aThing[id] && uWeapon[i][id] > 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTS", WeaponNames[i]); menu_additem(sMenu, szText, "-2"); All++; } } if(aThing[id] <= MAX && All == 0) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTCH"); menu_additem(sMenu, szText, "-2"); } else if(aThing[id] > MAX) { if(CHEST_ID <= aThing[id] <= CHEST_ID+CHEST_COUNT) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTC", chest_name((aThing[id]-CHEST_ID))); } if(KEY_ID == aThing[id]) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTK"); } menu_additem(sMenu, szText, "-2"); } if(aThing[id] > MAX) { formatex(szText, sizeof(szText), "Kiekis: \r%d", aAmount[id]); menu_additem(sMenu, szText, "-75"); } formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "GIFTPOINTS", aPoints[id]); menu_additem(sMenu, szText, "-4"); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SENDGIFT"); menu_additem(sMenu, szText, "-3"); } else { for(new i = 1; i <= get_maxplayers(); i++) { if(is_user_connected(i) && !is_user_bot(i)) { get_user_name(i, Name, 31); if(!Loged[i]) { format(Name, charsmax(Name), "%s \r[n.l]", Name); } num_to_str(i, String, 31); menu_additem(sMenu, Name, String, _, (!Loged[i]) ? call : -1); } } } } case 6: // Parduotuvė { formatex(szText, sizeof(szText), "\r%L %L", LANG_PLAYER, "PMAIN", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); new call = menu_makecallback("Call_Back"); new accesNum = get_access(id); new Float:gPercent = ((accesNum == 4) ? 0.9 : ((accesNum == 3) ? 0.94 : (accesNum == 2) ? 0.97 : 1.0)); new gPrice = floatround(1700*gPercent, floatround_floor); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SHOPKEY_1", gPrice); menu_additem(sMenu, szText, _, _, (Points[id] < gPrice) ? call : -1); gPrice = floatround(8000*gPercent, floatround_floor); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SHOPKEY_5", gPrice); menu_additem(sMenu, szText, _, _, (Points[id] < gPrice) ? call : -1); gPrice = floatround(14000*gPercent, floatround_floor); formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SHOPKEY_10", gPrice); menu_additem(sMenu, szText, _, _, (Points[id] < gPrice) ? call : -1); for(new i=1; i <=CHEST_COUNT; i++) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "SHOPCHEST_1", chest_name(i), 1250); menu_additem(sMenu, szText, _, _, (Points[id] < 1250) ? call : -1); } } case 7: // Skrynių info { formatex(szText, sizeof(szText), "\r%L %L", LANG_PLAYER, "IMAIN", LANG_PLAYER, "YPOINT", Points[id]); sMenu = menu_create(szText, "MenuHandler"); for(new i=1; i <=CHEST_COUNT; i++) { formatex(szText, sizeof(szText), "%L", LANG_PLAYER, "CHESTINFOPIECE", chest_name(i)); menu_additem(sMenu, szText); } } } menu_display(id, sMenu); } public Call_Back(id, menu, item) return ITEM_DISABLED; public MenuHandler(id, gMenu, item) { if(item == MENU_EXIT) { MenuMod[id] = 0; menu_destroy(gMenu); return PLUGIN_HANDLED; } new aMenu[2], Data[4][32], sKey[32], Name[32], mName[32], Key; menu_item_getinfo(gMenu, item, aMenu[0], Data[0], 31, Data[1], 31, aMenu[1]); parse(Data[0], sKey, 31); Key = str_to_num(sKey); switch(MenuMod[id]) { case -2: { MenuMod[id] = 5; aThing[id] = Key; Menu(id); } case -1: { MenuMod[id] = 3; WeaponinMarket[id] = Key; client_cmd(id, "messagemode Cost"); Menu(id); } case 0: { MenuMod[id] = Key; Menu(id); } case 1: { parse(Data[0], Data[2], 31, Data[3], 31); if(bUsingGuns[id][str_to_num(Data[3])] == str_to_num(Data[2])) { bUsingGuns[id][str_to_num(Data[3])] = 0; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "SKIN_REMOVED", Prefix, WeaponNames[str_to_num(Data[2])], szWeaponNames[str_to_num(Data[3])]); } else { bUsingGuns[id][str_to_num(Data[3])] = str_to_num(Data[2]); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "SKIN_CHANGED", Prefix, WeaponNames[str_to_num(Data[2])], szWeaponNames[str_to_num(Data[3])]); set_task(0.1, "UpdateStatusText", id); } static szQuery[512], szUGuns[128]; format(szUGuns, sizeof(szUGuns), ""); for(new i; i < CSW_VESTHELM; i++) { format(szUGuns, sizeof(szUGuns), "%s%d ", szUGuns, bUsingGuns[id][i]); } formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `using_skins` = '%s' WHERE `username` = '%s';", TABLE_NAME, szUGuns, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SKIN CHANGE] %s", szQuery); MenuMod[id] = 1; Menu(id); } case 2: { if(Chest[id][(item+1)] <= 0) { Chest[id][(item+1)] = 0; if(pKey[id] < 0) pKey[id] = 0; return PLUGIN_CONTINUE; } Chest[id][(item+1)]--; pKey[id]--; new chest = item+1; new Float:rNum = random_float((random(5)*1.0), 175.0); new chance = (rNum <= 1.0) ? 1 : ((rNum <= 5.0) ? 5 : ((rNum <= 25) ? 25 : 100 )); /////////////////////////////////////////// new skinsCnt = chestsChance[chest][chance]; new skinNum = random(skinsCnt); new skinId = chestsList[chest][chance][skinNum]; new szName[32]; get_user_name(id, szName, 31); if(1 <= chance <= 25) { print_color(0, "%L", LANG_PLAYER, "FOUNDITEM_ALL", Prefix, szName, WeaponNames[skinId], szWeaponNames[Weapons[skinId]]); } else { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "FOUNDITEM_SELF", Prefix, WeaponNames[skinId], szWeaponNames[Weapons[skinId]]); } uWeapon[skinId][id]++; SaveData(id); new szMotd[126]; formatex(szMotd, charsmax(szMotd), "http://185.80.128.125/pbgo/b.php?item=%d_%d_%d&chest=%d", chest, chance, skinNum, chest); show_motd(id, szMotd, chest_name((item+1))); Menu(id); } case 3: { if(Key == -1) { MenuMod[id] = -1; Menu(id); } else if(Key == 0) { if(inMarket[id]) { inMarket[id] = false; } else if(MarketPoints[id] > 0) { if(mAmount[id] < 1) mAmount[id] = 1; get_user_name(id, Name, 31); switch(WeaponinMarket[id]) { case CHEST_ID..(CHEST_ID+CHEST_COUNT): { print_color(0, "%L", LANG_PLAYER, "TOMARKET_CHEST", Prefix, Name, mAmount[id], chest_name((WeaponinMarket[id]-CHEST_ID)+1), MarketPoints[id]); } case KEY_ID: { print_color(0, "%L", LANG_PLAYER, "TOMARKET_KEY", Prefix, Name, mAmount[id], MarketPoints[id]); } default: { print_color(0, "%L", LANG_PLAYER, "TOMARKET_SKIN", Prefix, Name, WeaponNames[WeaponinMarket[id]], szWeaponNames[Weapons[WeaponinMarket[id]]], MarketPoints[id]); } } inMarket[id] = true; } gLastMarketTime[id] = get_systime(); Menu(id); } else if(Key == -99) { client_cmd(id, "messagemode setMarketAmount"); } else if(inMarket[Key] && Points[id] >= MarketPoints[Key]) { get_user_name(Key, Name, 31); get_user_name(id, mName, 31); if(WeaponinMarket[Key] < CHEST_ID) { if(uWeapon[WeaponinMarket[Key]][Key] <= 0) { inMarket[Key] = false; MarketPoints[Key] = 0; WeaponinMarket[Key] = 0; return PLUGIN_CONTINUE; } print_color(0, "!g%s%L", Prefix, LANG_PLAYER, "BUYMARKETITEM", mName, WeaponNames[WeaponinMarket[Key]], MarketPoints[Key], Name); uWeapon[WeaponinMarket[Key]][id]++; uWeapon[WeaponinMarket[Key]][Key]--; if(!uWeapon[WeaponinMarket[Key]][Key]) for(new i; i < CSW_VESTHELM; i++) { if(bUsingGuns[Key][i] == WeaponinMarket[Key]) { bUsingGuns[Key][i] = 0; uWeaponKills[i][Key] = 0; break; } } static szQuery[512], szUGuns[128]; format(szUGuns, sizeof(szUGuns), ""); for(new i; i < CSW_VESTHELM; i++) { format(szUGuns, sizeof(szUGuns), "%s%d ", szUGuns, bUsingGuns[id][i]); } formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `using_skins` = '%s' WHERE `username` = '%s';", TABLE_NAME, szUGuns, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SKIN SHOP] %s", szQuery); format(szUGuns, sizeof(szUGuns), ""); for(new i; i < CSW_VESTHELM; i++) { format(szUGuns, sizeof(szUGuns), "%s%d ", szUGuns, bUsingGuns[Key][i]); } formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `using_skins` = '%s' WHERE `username` = '%s';", TABLE_NAME, szUGuns, get_user_name_ex(Key)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SKIN SHOP] %s", szQuery); } else if(CHEST_ID <= WeaponinMarket[Key] <= CHEST_ID+CHEST_COUNT) { new chId = (WeaponinMarket[Key]-CHEST_ID)+1; if(Chest[Key][chId] <= 0) { inMarket[Key] = false; MarketPoints[Key] = 0; WeaponinMarket[Key] = 0; return PLUGIN_CONTINUE; } client_print_color(0, print_team_default, "^4%s%L", Prefix, LANG_PLAYER, "BUYMARKETCHEST", mName, chest_name(chId), MarketPoints[Key], Name); Chest[id][chId]++; Chest[Key][chId]--; } else if(WeaponinMarket[Key] == KEY_ID) { if(pKey[Key] <= 0) { inMarket[Key] = false; MarketPoints[Key] = 0; WeaponinMarket[Key] = 0; return PLUGIN_CONTINUE; } client_print_color(0, print_team_default, "^4%s%L", Prefix, LANG_PLAYER, "BUYMARKETKEY", mName, MarketPoints[Key], Name); pKey[id]++; pKey[Key]--; } emit_sound(Key, CHAN_ITEM, SOUND_SOLD, VOL_NORM, ATTN_NORM ,0 , PITCH_NORM ); Points[Key] += MarketPoints[Key]; Points[id] -= MarketPoints[Key]; SaveData(Key); SaveData(id); mAmount[Key]--; if(mAmount[Key] <= 0) { inMarket[Key] = false; MarketPoints[Key] = 0; WeaponinMarket[Key] = 0; } MenuMod[id] = 0; } } case 4: { new Random = random_num(1, 100); if(Random < 5 && weaponRang[Key] == 3) { new chest = item+1; new chance = 5; new skinsCnt = chestsChance[chest][chance]; new skinNum = random(skinsCnt); new skinId = chestsList[chest][chance][skinNum]; client_print_color(0, print_team_default, "^4%s%L", EVENT, LANG_PLAYER, "MENUTODUST_SKINS", get_user_name_ex(id), WeaponNames[skinId], szWeaponNames[Weapons[skinId]]); uWeapon[skinId][id]++; SaveData(id); } else if(Random < 25 && weaponRang[Key] == 4) { new chest = item+1; new chancerare = 25; new skinsCntrare = chestsChance[chest][chancerare]; new skinNumrare = random(skinsCntrare); new skinIdrare = chestsList[chest][chancerare][skinNumrare]; client_print_color(0, print_team_default, "^4%s%L", EVENT, LANG_PLAYER, "MENUTODUST_SKINS", get_user_name_ex(id), WeaponNames[skinIdrare], szWeaponNames[Weapons[skinIdrare]]); uWeapon[skinIdrare][id]++; SaveData(id); } else if(uWeapon[Key][id] > 0 && weaponRang[Key] > 0) { uWeapon[Key][id]--; bUsingGuns[id][Weapons[Key]] = 0; if(!uWeapon[Key][id]) uWeaponKills[Key][id] = 0; new Points; if(weaponRang[Key] == 1) Points = random_num(50, 2500); // Y else if(weaponRang[Key] == 2) Points = random_num(50, 2500); // R if(weaponRang[Key] == 3) Points = random_num(50, 2500); // B else if(weaponRang[Key] == 4) Points = random_num(200, 300); // W cs_set_user_points(id, cs_get_user_points(id) +Points); client_print_color(id, print_team_default, "^4%s%L", Prefix, LANG_PLAYER, "MENUTODUST", get_user_name_ex(id), Points); log_errors("[SKINLOG TRASH] %s išsikeite %s", get_user_name_ex(id), WeaponNames[Key]); SaveData(id); } else { uWeapon[Key][id] = 0; SaveData(id); } Menu(id); } case 5: { if(Key == -1) { aTarget[id] = 0; } if(Key == -2) { MenuMod[id] = -2; } if(Key == -3) { if(!is_user_connected(aTarget[id])) { return PLUGIN_CONTINUE; } if(aThing[id] < CHEST_ID) { if(uWeapon[aThing[id]][id] > 0) { uWeapon[aThing[id]][aTarget[id]]++; uWeapon[aThing[id]][id]--; if(!uWeapon[aThing[id]][id]) for(new i; i < CSW_VESTHELM; i++) { if(bUsingGuns[id][i] == aThing[id]) { bUsingGuns[id][i] = 0; uWeaponKills[i][id] = 0; break; } } static szQuery[512], szUGuns[128]; format(szUGuns, sizeof(szUGuns), ""); for(new i; i < CSW_VESTHELM; i++) { format(szUGuns, sizeof(szUGuns), "%s%d ", szUGuns, bUsingGuns[id][i]); } formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `using_skins` = '%s' WHERE `username` = '%s';", TABLE_NAME, szUGuns, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SKIN GIFT] %s padovanojo %s - %s", get_user_name_ex(id), get_user_name_ex(aTarget[id]), WeaponNames[aThing[id]]); log_errors("[SKIN GIFT] %s", szQuery); client_print_color(id, print_team_default, "^4%s %L", Prefix, LANG_PLAYER, "GIFTSUCCESS_SKIN"); print_color(aTarget[id], "%L", LANG_PLAYER, "GIFTGOT_SKIN", Prefix, get_user_name_ex(id), WeaponNames[aThing[id]], szWeaponNames[Weapons[aThing[id]]]); } // else client_print_color(id, print_team_default, "Neturi tiek skinu!"); } else if(CHEST_ID <= aThing[id] <= CHEST_ID+CHEST_COUNT) { new cId = aThing[id]-CHEST_ID; if(Chest[id][cId] >= aAmount[id]) { Chest[aTarget[id]][cId]+=aAmount[id]; Chest[id][cId]-=aAmount[id]; client_print_color(id, print_team_default, "^4%s %L", Prefix, LANG_PLAYER, "GIFTSUCCESS_CHEST"); print_color(aTarget[id], "%L", LANG_PLAYER, "GIFTGOT_CHEST", Prefix, get_user_name_ex(id), aAmount[id]); } else client_print_color(id, print_team_default, "Neturi tiek skryniu!"); } else if(aThing[id] == KEY_ID) { if(pKey[id] >= aAmount[id]) { pKey[aTarget[id]]+=aAmount[id]; pKey[id]-=aAmount[id]; client_print_color(id, print_team_default, "^4%s %L", Prefix, LANG_PLAYER, "GIFTSUCCESS_KEY"); print_color(aTarget[id], "%L", LANG_PLAYER, "GIFTGOT_KEY", Prefix, get_user_name_ex(id), aAmount[id]); } else client_print_color(id, print_team_default, "Neturi tiek raktu!"); } if(aPoints[id] > 0 && Points[id] >= aPoints[id]) { Points[aTarget[id]] += aPoints[id]; Points[id] -= aPoints[id]; client_print_color(aTarget[id], print_team_default, "%L", LANG_PLAYER, "GIFTGOT_PTS", Prefix, get_user_name_ex(id), aPoints[id]); log_errors("[SKINLOG PTS] %s padovanojo %s - %d tasku", get_user_name_ex(id), get_user_name_ex(aTarget[id]), aPoints[id]); } SaveData(aTarget[id]); SaveData(id); MenuMod[id] = 0; aThing[id] = 0; aTarget[id] = 0; aPoints[id] = 0; } if(Key == -75) { client_cmd(id, "messagemode setAmount"); } if(Key == -4) { client_cmd(id, "messagemode Gift"); } if(Key > 0) { aTarget[id] = Key; } Menu(id); } case 6: { new accesNum = get_access(id); new Float:gPercent = ((accesNum == 4) ? 0.92 : ((accesNum == 3) ? 0.96 : (accesNum == 2) ? 0.98 : 1.0)); switch(item) { case 0: { Points[id] -= floatround(1700*gPercent, floatround_floor); pKey[id]++; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BOUGHTKEY_1", Prefix); SaveKeys(id); } case 1: { Points[id] -= floatround(8000*gPercent, floatround_floor); pKey[id] += 5; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BOUGHTKEY_5", Prefix); SaveKeys(id); } case 2: { Points[id] -= floatround(14000*gPercent, floatround_floor); pKey[id] += 10; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BOUGHTKEY_10", Prefix); SaveKeys(id); } case 3..(CHEST_COUNT+3): { Chest[id][item-2] += 1; Points[id] -= 1250; client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BOUGHTCHEST_1", Prefix, chest_name(item-2)); SaveChests(id); } } } case 7: { new szMotd[126]; formatex(szMotd, charsmax(szMotd), "http://185.80.128.125/pbgo/b.php?chest=%d", (item+1)); show_motd(id, szMotd, chest_name((item+1))); Menu(id); } default: { MenuMod[id] = 0; } } menu_destroy(gMenu); return PLUGIN_HANDLED; } public client_disconnected(id) { Patirtis[id] = 0, Kills[id] = 0,Rang[id] = 0, Points[id] = 0, pKey[id] = 0, Killers[id] = 0; for(new i; i <= CHEST_COUNT; i++) { Chest[id][i] = 0; } for(new i; i < AllWeapon; i++) { uWeapon[i][id] = 0; } for(new i; i < CSW_VESTHELM; i++) { bUsingGuns[id][i] = 0; } gWarnings[id] = 0; WeaponinMarket[id] = 0; MarketPoints[id] = 0; inMarket[id] = 0; Password[id] = ""; SavedPassword[id] = ""; Loged[id] = false; gRegistered[id] = false; gLogged[id] = false; bTrade[id] = false; bTradeAccepted[id] = false; } public client_putinserver(id) { Patirtis[id] = 0, Kills[id] = 0, Rang[id] = 0, Points[id] = 0, pKey[id] = 0, Killers[id] = 0; for(new i; i <= CHEST_COUNT; i++) { Chest[id][i] = 0; } for(new i; i < AllWeapon; i++) { uWeapon[i][id] = 0; } for(new i; i < CSW_VESTHELM; i++) { bUsingGuns[id][i] = 0; } gWarnings[id] = 0; Password[id] = ""; SavedPassword[id] = ""; Loged[id] = false; bTrade[id] = false; bTradeAccepted[id] = false; gRegistered[id] = false; gLogged[id] = false; gLastMarketTime[id] = get_systime(); if(gCanLoad) { set_task(0.5, "Registered", id); } } public add_delay(id) { switch(id) { case 1..8: set_task(0.1, "Registered", id); case 9..16: set_task(0.2, "Registered", id); case 17..24: set_task(0.3, "Registered", id); case 25..32: set_task(0.4, "Registered", id); } } //============================================================// // [~ Saving / Loading datas ~] // //============================================================// public QueryCreateTable(iFailState, Handle:hQuery, szError[], iError, iData[], iDataSize, Float:fQueueTime) { if(iFailState == TQUERY_CONNECT_FAILED) { log_errors("Nepavyko prisijungti prie duomenu bazes. [%d] %s", iError, szError); return; } else if(iFailState == TQUERY_QUERY_FAILED) { log_errors("Neapyko apdoroti uzklausos. [%d] %s", iError, szError); return; } } public Login(id) { if(!is_user_connected(id) || is_user_bot(id)) return; static szQuery[256], iData[1]; iData[0] = id; formatex(szQuery, 255, "SELECT * FROM `%s` WHERE `username` = '%s' AND `password` = '%s'", TABLE_NAME, get_user_name_ex(id), Password[id]); SQL_ThreadQuery(g_hTuple, "QuerySelect", szQuery, iData, 1); log_errors("[LOGIN] %s", szQuery); } public QuerySelect(iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime) { if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED) { log_errors("%s", szError); return; } else { new id = iData[0]; if(SQL_NumResults(hQuery)) { new szSkins[512+MAX], szKSkins[512+MAX], szUGuns[256], szChests[128]; SQL_ReadResult(hQuery, 1, SavedPassword[id], 32); Patirtis[id] = SQL_ReadResult(hQuery, 2); Kills[id] = SQL_ReadResult(hQuery, 3); Points[id] = SQL_ReadResult(hQuery, 4); pKey[id] = SQL_ReadResult(hQuery, 5); Rang[id] = SQL_ReadResult(hQuery, 7); Killers[id] = SQL_ReadResult(hQuery, 8); SQL_ReadResult(hQuery, 9, szSkins, sizeof(szSkins)); SQL_ReadResult(hQuery, 10, szUGuns, sizeof(szUGuns)); SQL_ReadResult(hQuery, 11, szKSkins, sizeof(szKSkins)); SQL_ReadResult(hQuery, 6, szChests, sizeof(szChests)); SQL_NextRow(hQuery); new myNumbers[512+MAX]; new count = ExplodeString(szSkins, myNumbers); if(count) { for(new i = 1; i < MAX; i++) { uWeapon[i][id] = myNumbers[i]; } } count = ExplodeString(szKSkins, myNumbers); if(count) { for(new i = 1; i < MAX; i++) { uWeaponKills[i][id] = myNumbers[i]; } } count = ExplodeString(szUGuns, myNumbers); if(count) { for(new i = 1; i < CSW_VESTHELM; i++) { if(myNumbers[i] <= MAX) { if(uWeapon[myNumbers[i]][id] && i == Weapons[myNumbers[i]]) { bUsingGuns[id][i] = myNumbers[i]; } } } } count = ExplodeString(szChests, myNumbers); if(count) { for(new i = 1; i <= CHEST_COUNT; i++) { Chest[id][i] = myNumbers[i]; } } if(!equal(Password[id], SavedPassword[id])) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "SAVE_PASS_ANNOUNCE", Prefix); } } Loged[id] = true; UnsetBlack(id); } } public SaveData(id) { if(Loged[id] && gRegistered[id] && gCanSave) { static szQuery[2048], szSkins[1024], szKSkins[1024], szUGuns[128], szChests[128]; format(szSkins, sizeof(szSkins), ""); format(szKSkins, sizeof(szKSkins), ""); format(szUGuns, sizeof(szUGuns), ""); format(szChests, sizeof(szChests), ""); for(new i; i < MAX; i++) { format(szSkins, sizeof(szSkins), "%s%d ", szSkins, uWeapon[i][id]); format(szKSkins, sizeof(szKSkins), "%s%d ", szKSkins, uWeaponKills[i][id]); } for(new i; i < CSW_VESTHELM; i++) { format(szUGuns, sizeof(szUGuns), "%s%d ", szUGuns, bUsingGuns[id][i]); } for(new i; i <= CHEST_COUNT; i++) { format(szChests, sizeof(szChests), "%s%d ", szChests, Chest[id][i]); } formatex( szQuery, sizeof(szQuery), "REPLACE INTO `%s` SET `username` = '%s', `password` = '%s', `patirtis` = '%d', `kills` = '%d', `points` = '%d', `keys` = '%d', `chests` = '%s', `rang` = '%d', `killers` = '%d', `skins` = '%s', `using_skins` = '%s', `skins_kills` = '%s';", TABLE_NAME, get_user_name_ex(id), SavedPassword[id], Patirtis[id], Kills[id], Points[id], pKey[id], szChests, Rang[id], Killers[id], szSkins, szUGuns, szKSkins); SQL_ThreadQuery( g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE] %s", szQuery); } } public QuerySetData( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime ) { if(iFailState == TQUERY_CONNECT_FAILED) { log_errors("Nepavyko prisijungti prie duomenu bazes. [%d] %s", iError, szError); return; } else if(iFailState == TQUERY_QUERY_FAILED) { log_errors("Neapyko apdoroti uzklausos. [%d] %s", iError, szError); return; } } public UnsetBlack(id) { set_user_maxspeed(id, 250.0); message_begin(MSG_ONE, g_msgid_ScreenFade, {0,0,0}, id); write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(255); write_byte(255); write_byte(255); write_byte(50); message_end(); } public TradeMenu(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(bTrade[id]) { if(bTradeAccepted[id]) { client_print_color(id, 3, "[Trade] Jus jau tradinate!"); return PLUGIN_CONTINUE; } client_print_color(id, 3, "[Trade] Jums jau pasiulytas trade, jei sutinkate rasykita /sutinku arba /taccept"); return PLUGIN_CONTINUE; } new Name[32], String[32], sMenu; sMenu = menu_create("Trade Menu", "MenuHandler"); new call = menu_makecallback("Call_Back"); for(new i; i < get_maxplayers(); i++) { if(is_user_connected(i) && !is_user_bot(i)) { get_user_name(i, Name, 31); if(!Loged[i]) { format(Name, charsmax(Name), "%s \r[n.l]", Name); } num_to_str(i, String, 31); menu_additem(sMenu, Name, String, _, (!Loged[i]) ? call : -1); } } menu_display(id, sMenu); return PLUGIN_CONTINUE; } public RegMenu(id) { static sId; sId = id; id = ((id - TASKID_REMENU) < 0) ? id : id-TASKID_REMENU; if(Loged[id]) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "ALREADY_REGISTERED", Prefix); Menu(id); return PLUGIN_HANDLED; } if(!gLogged[id] || !gCanLoad) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "WAIT_SYSTEM_LOADING", Prefix); remove_task(id+TASKID_REMENU); set_task(1.0, "RegMenu", id+TASKID_REMENU); return PLUGIN_HANDLED; } remove_task(id+TASKID_REMENU); if(gLogged[id] && sId > 32 && gCanLoad && !gRegistered[id]) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BLANK"); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_1", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "NEED_REGISTER_2", Prefix); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BLANK"); UnsetBlack(id); return PLUGIN_HANDLED; } if(equal(Password[id], SavedPassword[id]) && gRegistered[id]) { Login(id); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "AUTO_CONNECTED", Prefix); return PLUGIN_HANDLED; } new szString[128], Name[32]; format(szString, sizeof(szString), "\r[\yPublic\r]\w - %L", LANG_PLAYER, "RMMAIN"); new rMenu = menu_create(szString, "rMenuHandler"); get_user_name(id, Name, 31); format(szString, sizeof(szString), "%L", LANG_PLAYER, "RMACCOUNT", Name); // Client name menu_additem(rMenu, szString, "0"); new szPassword[126]; for(new i; i < strlen(Password[id]); i++) { format(szPassword, charsmax(szPassword), "%s*", szPassword); } format(szString, sizeof(szString), "%L", LANG_PLAYER, "RMP", Password[id]); // Client password format(szString, sizeof(szString), "%L", LANG_PLAYER, "RMP", szPassword); // Client password menu_additem(rMenu, szString, "1"); if(!gRegistered[id]) // Not registered { format(szString, sizeof(szString), "%s%L", (strlen(Password[id]) >= MIN_PASSWORD_LENGTH) ? "" :"\d", LANG_PLAYER, "RMR"); menu_additem(rMenu, szString, (strlen(Password[id]) >= MIN_PASSWORD_LENGTH) ? "2" : "0"); } else { if(!Loged[id]) // Registered, but not logged { new gPassCheck = equal(SavedPassword[id], Password[id]); format(szString, sizeof(szString), "%s%L", (gPassCheck) ? "" : "\d", LANG_PLAYER, "RMLOGIN"); menu_additem(rMenu, szString, (gPassCheck) ? "3" : "0"); } else { Menu(id); } } menu_display(id, rMenu); return PLUGIN_HANDLED; } public rMenuHandler(id, gMenu, item) { if(item == MENU_EXIT) { menu_destroy(gMenu); return PLUGIN_CONTINUE; } 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); switch(Key) { case 0: { RegMenu(id); } case 1: { client_cmd(id, "messagemode UserPassword"); RegMenu(id); } case 2: { if(strlen(Password[id]) >= MIN_PASSWORD_LENGTH) { copy(SavedPassword[id], 31, Password[id]); Loged[id] = true; gRegistered[id] = true; SaveData(id); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "REGISTERSUCCESS", Prefix, Password[id]); UnsetBlack(id); new szName[32]; get_user_name(id, szName, 31); log_errors("%s ivede slaptazodi [prisiregistravo]", szName); gWarnings[id] = 0; return PLUGIN_CONTINUE; } else { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "REGISTERSHORT", Prefix); return PLUGIN_HANDLED; } // Menu(id); } case 3: { if(!Loged[id]) { gWarnings[id] = 0; Login(id); } } } return PLUGIN_CONTINUE; } public PlayerPassword(id) { if(Loged[id]) { return PLUGIN_HANDLED; } new Data[32]; read_args(Data, 31); remove_quotes(Data); if(strlen(Data) < MIN_PASSWORD_LENGTH) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "REGISTERSHORT", Prefix); client_cmd(id, "messagemode UserPassword"); return PLUGIN_HANDLED; } else if(!equal(SavedPassword[id], Data) && strlen(Data) > MIN_PASSWORD_LENGTH && !equal(Password[id], Data)) { client_print_color(id, print_team_default, "%L", LANG_PLAYER, "BAD_PASSWORD", Prefix); gWarnings[id]++; if(gWarnings[id] >= 3) { gWarnings[id] = 0; server_cmd("amx_kick #%d ^"Trying to hack other account!^"", get_user_userid(id)); } } copy(Password[id], 31, Data); RegMenu(id); return PLUGIN_CONTINUE; } public NameChange(id) { if(get_cvar_num("csgo_nick_show")) return FMRES_IGNORED; if(!is_user_connected(id) || is_user_bot(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); client_print_color(id, print_team_default, "%L", LANG_PLAYER, "REGISTERNAMECHANGE", Prefix); return FMRES_HANDLED; } } return FMRES_IGNORED; } public Registered(id) { if(!is_user_connected(id) || is_user_bot(id)) return; static szQuery[256], iData[1]; iData[0] = id; formatex(szQuery, 255, "SELECT * FROM `%s` WHERE `username` = '%s'", TABLE_NAME, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySelectReg", szQuery, iData, 1); log_errors("[REGISTERED] %s", szQuery); } public QuerySelectReg( iFailState, Handle:hQuery, szError[ ], iError, iData[ ], iDataSize, Float:fQueueTime ) { if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED) { log_errors("[QuerySelectReg] %s", szError); return; } else { new id = iData[0]; if(SQL_NumResults(hQuery)) { gLogged[id] = true; gRegistered[id] = true; new passfield[32], password[32]; get_pcvar_string(csgo_password_field, passfield, 31); get_user_info(id, passfield, password, 31); SQL_ReadResult(hQuery, 1, SavedPassword[id], 32); if(equal(password, SavedPassword[id])) { Password[id] = password; } new szName[32]; get_user_name(id, szName, 31); log_errors("[Registered] %s - %s", szName, (gRegistered[id]) ? "true" : "false"); } else { gLogged[id] = true; gRegistered[id] = false; new szName[32]; get_user_name(id, szName, 31); log_errors("[Founded REG] %s - %s", szName, (gRegistered[id]) ? "true" : "false"); } } } public cmdUniq(id) { if(!Loged[id]) { RegMenu(id); return PLUGIN_HANDLED; } new szText[512], szid[64]; formatex(szText, sizeof(szText), "\r%L %L", LANG_PLAYER, "SMAIN", LANG_PLAYER, "YPOINT", Points[id]); new sMenu = menu_create(szText, "MenuHandlerUniq"); for(new i; i < AllWeapon; i++) { if(uniqPrice[i] > 0) { formatex(szText, charsmax(szText), "%s \r%d \w- \rTaškų", WeaponNames[i], uniqPrice[i]); formatex(szid, 63, "%d", i); menu_additem(sMenu, szText, szid, _, (Points[id] < uniqPrice[i]) ? -2 : -1); } } menu_setprop(sMenu, MPROP_EXIT, MEXIT_ALL); menu_display(id, sMenu); return PLUGIN_CONTINUE; } public MenuHandlerUniq(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new aMenu[2], Data[4][32], sKey[32]; menu_item_getinfo(menu, item, aMenu[0], Data[0], 31, Data[1], 31, aMenu[1]); parse(Data[0], sKey, 31); new Key = str_to_num(sKey); if(Points[id] >= uniqPrice[Key]) { uWeapon[Key][id]++; Points[id] -= uniqPrice[Key]; SaveData(id); client_print_color(id, print_team_default, "%s ^3%s ^4Nusipirko ^3%s!", Prefix, get_user_name_ex(id), WeaponNames[Key]); } else { client_print_color(id, print_team_default, "%s ^3Nepakanka taškų!", Prefix); } menu_destroy(menu); return PLUGIN_HANDLED; } /*STOCK'S Key's*/ stock drop_keys(id, dropKey) { if(dropKey >= random_float(0.0, 500.0) && get_playersnum() >= NEED_MIN_PLAYERS) { new szName[32]; get_user_name(id, szName, 31); static additional_keys; additional_keys = 0; if(!additional_keys) { client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUND_KEYS_ALL", EVENT, szName, pKey); pKey[id]++; } SaveKeys(id); } } /*STOCK'S*/ stock drop_item(id, dropRate) { if(dropRate >= random_float(0.0, 500.0) && get_playersnum() >= NEED_MIN_PLAYERS) { new szName[33], rNum, accesNum = get_access(id); get_user_name(id, szName, 32); rNum = random(CHEST_COUNT)+1; static additional_chests; additional_chests = 0; if(!random(5) && accesNum) { additional_chests = random(((accesNum == 1) ? 1 : (accesNum == 1) ? 1 : 1)); if(additional_chests) { additional_chests++; client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUNDCHESTS", Prefix, szName, additional_chests, chest_name(rNum)); Chest[id][rNum] += additional_chests; } } if(!additional_chests) { client_print_color(0, print_team_default, "%L", LANG_PLAYER, "FOUNDCHEST", Prefix, szName, chest_name(rNum)); Chest[id][rNum]++; } SaveChests(id); } } stock get_access(id) { if(get_user_flags(id) & ACCESS_ADMIN) { return 2; } else if(get_user_flags(id) & ACCESS_VIP) { return 1; } return 0; } stock chest_name(iNum) { new szReturn[126]; switch(iNum) { case 1: { formatex(szReturn, charsmax(szReturn), "Falchion"); } case 2: { formatex(szReturn, charsmax(szReturn), "Wildfire"); } case 3: { formatex(szReturn, charsmax(szReturn), "Hunstman"); } case 4: { formatex(szReturn, charsmax(szReturn), "Spectrum"); } case 5: { formatex(szReturn, charsmax(szReturn), "Shadow"); } case 6: { formatex(szReturn, charsmax(szReturn), "Gamma"); } case 7: { formatex(szReturn, charsmax(szReturn), "Hydra"); } } return szReturn; } stock screen_color(id) { message_begin(MSG_ONE, g_msgid_ScreenFade, {0,0,0}, id); write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(255); write_byte(0); write_byte(0); write_byte(75); } stock ExplodeString(const string[], output[], olen = sizeof output) { new len = strlen( string ); // We retrieve the length of the current string passed. if ( !len ) { return 0; } // If the string is empty we stop there. new i, c, j, count; new number[ 12 ]; do { while ( string[ i ] == ' ' ) i++; // One or more spaces can be used between 2 numbers, so we move forward until we find a number. while ( ( number[ j++ ] = c = string[ i++ ] ) && c != ' ' ) {} // We loop and save the number found until the next space found or end of string. output[ count++ ] = str_to_num( number ); // We convert the number saved previously into a number and we stored in output at the slot count. j = 0; } while ( i < len && count < olen ); // We should looping while we have not cross the string length. return count; } stock get_user_name_ex(id) { new szName[33]; get_user_name(id, szName, charsmax(szName)); replace_all(szName, charsmax(szName), "'", "\'"); replace_all(szName, charsmax(szName), "^"", "\^""); // replace_all(szName, charsmax(szName), ".", ""); return szName; } 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, get_user_msgid( "SayText" ), _, Players[i]); write_byte(Players[i]); write_string(Msg); message_end(); } } } return PLUGIN_HANDLED; } stock bool:ValidMdl(Mdl[]) { return (containi(Mdl, ".mdl") != -1) ? true : false; } public UpdateStatusText(id) { new szText[256], wId = get_user_weapon(id, _, _); if(bUsingGuns[id][wId]) formatex(szText, charsmax(szText), "%L", LANG_PLAYER, "KILLS_SHOW", uWeaponKills[bUsingGuns[id][wId]][id], WeaponNames[bUsingGuns[id][wId]]); else formatex(szText, charsmax(szText), "%L", LANG_PLAYER, "BLANK"); set_hudmessage(0, 255, 0, 0.01, 0.94, 0, 6.0, 12.0, 0.1, 0.2, 78); ShowSyncHudMsg(id, g_msgid_SyncHud, szText); } stock get_weapon_maxclip(wpnid = 0) { for (new a = 0; a < sizeof (g_weapons); a++) if (wpnid == g_weapons[a]) return g_max_clip[a]; return false; } stock SetFullBpAmmo(id, iWeaponID) { new iFullbpammo,iAmmoId; for(new i = 1; i < AmmoIds; i++) { if(g_iAmmoWeaponSharedBitSum[i] & (1<<iWeaponID)) { iAmmoId = i; iFullbpammo = g_iAmmoMax[i]; break; } } if(!iAmmoId) return; cs_set_user_bpammo(id, iWeaponID, iFullbpammo); message_begin(MSG_ONE_UNRELIABLE, g_msgid_AmmoX, _, id); write_byte(iAmmoId); write_byte(iFullbpammo); message_end(); } stock has_user_weapon(id, iCswId, iSlot = 0) { new iWeapon; if( !iSlot ) { static const iWeaponsSlots[] = { -1, 2, // CSW_P228 -1, 1, // CSW_SCOUT 4, // CSW_HEGRENADE 1, // CSW_XM1014 5, // CSW_C4 1, // CSW_MAC10 1, // CSW_AUG 4, // CSW_SMOKEGRENADE 2, // CSW_ELITE 2, // CSW_FIVESEVEN 1, // CSW_UMP45 1, // CSW_SG550 1, // CSW_GALIL 1, // CSW_FAMAS 2, // CSW_USP 2, // CSW_GLOCK18 1, // CSW_AWP 1, // CSW_MP5NAVY 1, // CSW_M249 1, // CSW_M3 1, // CSW_M4A1 1, // CSW_TMP 1, // CSW_G3SG1 4, // CSW_FLASHBANG 2, // CSW_DEAGLE 1, // CSW_SG552 1, // CSW_AK47 3, // CSW_KNIFE 1 // CSW_P90 }; iSlot = iWeaponsSlots[iCswId]; } const XO_PLAYER = 5; const m_rgpPlayerItems_Slot0 = 367; iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XO_PLAYER); const XO_WEAPON = 4; const m_pNext = 42; const m_iId = 43; while( iWeapon > 0 ) { if( get_pdata_int(iWeapon, m_iId, XO_WEAPON) == iCswId ) return iWeapon; iWeapon = get_pdata_cbase(iWeapon, m_pNext, XO_WEAPON); } return 0; } stock SavePoints(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024]; formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `patirtis` = '%d', `kills` = '%d', `keys` = '%d', `points` = '%d' WHERE `username` = '%s';", TABLE_NAME, Patirtis[id], Kills[id], pKey[id], Points[id], get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE POINTS] %s", szQuery); } } stock SaveChests(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024], szChests[128]; for(new i; i <= CHEST_COUNT; i++) { format(szChests, sizeof(szChests), "%s%d ", szChests, Chest[id][i]); } formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `points` = '%d', `chests` = '%s' WHERE `username` = '%s';", TABLE_NAME, Points[id], szChests, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE CHESTS] %s", szQuery); } } stock SaveKeys(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024]; formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `points` = '%d', `keys` = '%d' WHERE `username` = '%s';", TABLE_NAME, Points[id], pKey[id], get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE KEYS] %s", szQuery); } } stock SaveRang(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024]; formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `rang` = '%d' WHERE `username` = '%s';", TABLE_NAME, Rang[id], get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE RANG] %s", szQuery); } } stock SaveKillers(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024]; formatex(szQuery, sizeof(szQuery), "UPDATE `%s` SET `points` = '%d', `killers` = '%d' WHERE `username` = '%s';", TABLE_NAME, Points[id], Killers[id], get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE KILLERS] %s", szQuery); } } stock SaveGunsKills(id) { if(Loged[id] && gRegistered[id] && gCanSave) { new szQuery[1024], szKSkins[1024]; for(new i; i < MAX; i++) { format(szKSkins, sizeof(szKSkins), "%s%d ", szKSkins, uWeaponKills[i][id]); } formatex(szQuery, charsmax(szQuery), "UPDATE `%s` SET `skins_kills` = '%s' WHERE `username` = '%s';", TABLE_NAME, szKSkins, get_user_name_ex(id)); SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery); log_errors("[SAVE GUNS KILLS] %s", szQuery); } } stock log_errors(const szText[], any:...) { static szMessage[256]; vformat(szMessage, 256, szText, 2); log_to_file(g_logfile, szMessage); return PLUGIN_HANDLED; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1158\\ f0\\ fs16 \n\\ par } */
Furien.Enjoygame.Ro[+18][VIP FREE][Admine Free]
Ofer suport tehnic si incredere pentru servere de CS 1.6 !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
- 1TAP GOD
- Membru, skill +1
- Posts: 152
- Joined: 03 Sep 2018, 00:20
- Detinator Steam: Da
- SteamID: /id/assasinssmdfk
- Fond eXtream: 0
- Has thanked: 16 times
- Been thanked: 16 times
Rcsgo e un addons care are implementată funcția aia nu este plugin care face doar aia este tot modul
Umbla la .php si .sql acolo este ce cauti tu
Umbla la .php si .sql acolo este ce cauti tu
----------------Steam----------------
-----------------------------------------------------------
And she be actin' funny, probably think a nigga need her
I thought I was faithful, she say I'm a cheater
They thought I was taken, I'm ready to mingle
I thought I was faithful, she say I'm a cheater
They thought I was taken, I'm ready to mingle
- puNx
- Membru, skill 0
- Posts: 80
- Joined: 07 Aug 2015, 18:26
- Detinator Steam: Da
- CS Status: :)
- Detinator server CS: Furien.Enjoygame.RO
- SteamID: #WAS
- Fond eXtream: 0
- Contact:
pai e decat sursa man,nu e si amxx,asta zic nu merge compilata
Furien.Enjoygame.Ro[+18][VIP FREE][Admine Free]
Ofer suport tehnic si incredere pentru servere de CS 1.6 !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
Contact me:
Skype: vlad.vlad604
Y!M: [email protected]
Steam: zeT # ANUBIS (link: http://steamcommunity.com/id/vladpuNx/ )
Forum: puNx (PM me)
Pretul difera in functie de ce doreste clientul !
Jump to
- eXtream - Forum
- ↳ Steam
- ↳ Forum
- ↳ WebDesign
- ↳ Incepatori
- ↳ Cos de reciclare
- ↳ Discutii generale
- ↳ Anunturi
- ↳ Security zone
- ↳ Filme si seriale
- ↳ Reclamatii
- ↳ Entertainment
- ↳ Distractie
- ↳ Clubul eXtreamCS - Intra si tu ! [noi oportunitati]
- eXtream - Counter-Strike 2
- ↳ Counter-Strike 2
- eXtream - Counter-Strike 1.6
- ↳ Diverse
- ↳ Filme gaming
- ↳ Meciuri
- ↳ Tutoriale
- ↳ Tutoriale
- ↳ Cereri
- ↳ Discutii generale
- ↳ Probleme la servere dedicate de Counter-Strike
- ↳ Cereri admin / slot
- ↳ Probleme in jocul Counter-Strike
- ↳ Pluginuri
- ↳ Pluginuri eXtream
- ↳ Cereri
- ↳ AdminMod
- ↳ AmxModX
- ↳ Resurse
- ↳ Moduri
- ↳ Addon-uri
- ↳ Kit-uri
- ↳ Harti
- ↳ Diverse
- ↳ Cereri
- ↳ Servere
- ↳ Programarea CS-ului
- ↳ Scripting
- ↳ Modificari pluginuri
- ↳ CStrike
- ↳ Cereri
- eXtream - Echipa
- ↳ Productia eXtream
- ↳ Harti eXtream
- ↳ CS.eXtreamCS.com - Server oficial eXtreamCS
- ↳ Zona administrativă
- ↳ Cereri acces
- ↳ Cereri unban
- ↳ Reclamații
- ↳ Admin zone
- ↳ CS2.eXtreamCS.com - Server official eXtreamCS
- ↳ XMAS.eXtreamCS.com
- ↳ Cereri admin
- ↳ Cereri unban
- ↳ Reclamatii / Sugestii
- ↳ eXtreamCS #PubMasters
- eXtream - Counter Strike Global Offensive
- ↳ Diverse
- ↳ Meciuri
- ↳ Tutoriale
- ↳ Probleme la servere dedicate de Counter-Strike: Global Offensive
- ↳ Probleme in jocul Counter-Strike: Global Offensive
- ↳ Pluginuri
- ↳ Cereri
- ↳ Resurse
- ↳ Addons-uri
- ↳ Hărți
- ↳ Diverse
- ↳ Servere
- eXtream - Counter-Strike Source
- ↳ Tutoriale
- ↳ Pluginuri
- ↳ Servere
- ↳ Resurse
- ↳ Harti
- ↳ Moduri
- ↳ Diverse
- ↳ Classic » CS
- ↳ Anunțuri administrative
- ↳ Cereri admin/slot
- ↳ Cereri unban
- ↳ Reclamații
- ↳ Banlist
- ↳ Admins Only
- ↳ Discord