meniu weapons arme

Discutii legate de instalarea, configurarea si modificarea unui server de Counter-Strike.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

florin07
Membru, skill 0
Membru, skill 0
Posts: 26
Joined: 07 Aug 2017, 18:44
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: GO.USTRIKE.RO
Fond eXtream: 0
Contact:

14 Aug 2017, 10:32

Salut. Imi puteti spune si mie cum as putea sa scot acel meniu de arme de pe ecran ? deci cand intru pe server imi da sa aleg arme fara sa dau litera b. si vreau sa nu mai apara.
☆ GO.USTRIKE.RO -=[CS:GO COMPETITIVE | !WS !KNIFE !GLOVES]=- WWW.USTRIKE.RO
RoyalServer
*Or!g!naL*
Fost moderator
Fost moderator
Posts: 1367
Joined: 16 Feb 2014, 16:28
Detinator Steam: Nu
CS Status: N-avem!
Detinator server CS: Zm.Darkcs.ro
Reputatie: Fost moderator ajutator
Has thanked: 3 times
Been thanked: 1 time

14 Aug 2017, 14:16

posteaza aici plugins.ini
Image
florin07
Membru, skill 0
Membru, skill 0
Posts: 26
Joined: 07 Aug 2017, 18:44
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: GO.USTRIKE.RO
Fond eXtream: 0
Contact:

14 Aug 2017, 14:27

nu pot incarca aici ca nu am optiune aia de upload
☆ GO.USTRIKE.RO -=[CS:GO COMPETITIVE | !WS !KNIFE !GLOVES]=- WWW.USTRIKE.RO
florin07
Membru, skill 0
Membru, skill 0
Posts: 26
Joined: 07 Aug 2017, 18:44
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: GO.USTRIKE.RO
Fond eXtream: 0
Contact:

14 Aug 2017, 14:29

Acesta este plugins.ini
| Afiseaza codul
; AMX Mod X plugins  [

; Admin Base - Always one has to be activated
admin.amxx		; admin base (required for any admin-related)
;admin_sql.amxx		; admin base - SQL version (comment admin.amxx)

; Basic
admincmd.amxx		; basic admin console commands
adminhelp.amxx		; help command for admin console commands
adminslots.amxx		; slot reservation
multilingual.amxx	; Multi-Lingual management

; Menus
menufront.amxx		; front-end for admin menus
cmdmenu.amxx		; command menu (speech, settings)
plmenu.amxx		; players menu (kick, ban, client cmds.)
;telemenu.amxx		; teleport menu (Fun Module required!)
mapsmenu.amxx		; maps menu (vote, changelevel)
pluginmenu.amxx		; Menus for commands/cvars organized by plugin

; Chat / Messages
adminchat.amxx		; console chat commands
antiflood.amxx		; prevent clients from chat-flooding the server
scrollmsg.amxx		; displays a scrolling message
imessage.amxx		; displays information messages
adminvote.amxx		; vote commands

; Map related
nextmap.amxx		; displays next map in mapcycle
mapchooser.amxx		; allows to vote for next map
timeleft.amxx		; displays time left on map

; Configuration
pausecfg.amxx		; allows to pause and unpause some plugins
statscfg.amxx		; allows to manage stats plugins via menu and commands

; Counter-Strike
;restmenu.amxx		; restrict weapons menu
statsx.amxx		; stats on death or round end (CSX Module required!)
;miscstats.amxx		; bunch of events announcement for Counter-Strike
;stats_logging.amxx	; weapons stats logging (CSX Module required!)

; Enable to use AMX Mod plugins
;amxmod_compat.amxx	; AMX Mod backwards compatibility layer

; Custom - Add 3rd party plugins here
csgo11.amxx
admin_spec_esp.amxx
ads.amxx
advanced_bans.amxx
advanced_gag.amxx
afkbombtransfer.amxx
allchat.amxx
amx_lastmaps.amxx
amx_ss.amxx
amx_t_ct_spec.amxx
AutoRRound.amxx
Betting2.amxx
bmb_bonus.amxx
c4_timer_hud_sound.amxx
gamenamechanger.amxx
hp_bonus.amxx
ptb_ro.amxx
sayrestart.amxx
sillyc4.amxx
swear_replacement.amxx
botplayers.amxx
resetscore.amxx
semiclip.amxx
amx_who_reloaded.amxx
;QuakeSounds.amxx
preturi_ranguri_motd.amxx
ultimate_sounds.amxx
abd.amxx
parachute.amxx
resetscore.amxx
sillyc4.amxx
weaponicon.amxx
spriteFixer.amxx
shortnade.amxx
sgren_features_svcbad.amxx
backweapons.amxx


X-Kills.amxx
ad_manager.amxx


amx_who.amxx


high_ping_kicker.amxx


hzone_protect.amxx debug


hzone_protect.amxx debug


join_ip.amxx


ultimele_harti.amxx


rs.amxx


amx_warmup.amxx


weapon_icon.amxx


amx_exec.amxx
☆ GO.USTRIKE.RO -=[CS:GO COMPETITIVE | !WS !KNIFE !GLOVES]=- WWW.USTRIKE.RO
*Or!g!naL*
Fost moderator
Fost moderator
Posts: 1367
Joined: 16 Feb 2014, 16:28
Detinator Steam: Nu
CS Status: N-avem!
Detinator server CS: Zm.Darkcs.ro
Reputatie: Fost moderator ajutator
Has thanked: 3 times
Been thanked: 1 time

14 Aug 2017, 14:32

florin07 wrote:nu pot incarca aici ca nu am optiune aia de upload
Copy-paste la ce este in plugins.ini
Folosesti bbcod-ul

Code: Select all

[Sursa=][/Sursa]
sau BUTONUL Sursa= Pe care il au sub Subject si pastezi
Ex:

Code: Select all

[Sursa=]tot ce este in plugins.ini[/Sursa]
Edit: ce face asta csgo11.amxx?
Imi poti da o poza la meniul care iti apare ? sa stiu despre ce este vorba
Image
florin07
Membru, skill 0
Membru, skill 0
Posts: 26
Joined: 07 Aug 2017, 18:44
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: GO.USTRIKE.RO
Fond eXtream: 0
Contact:

14 Aug 2017, 14:54

csgo11.amxx este un mod de cs go http://i.imgur.com/R5yZhue
☆ GO.USTRIKE.RO -=[CS:GO COMPETITIVE | !WS !KNIFE !GLOVES]=- WWW.USTRIKE.RO
User avatar
A k c 3 n 7
Super moderator
Super moderator
Posts: 5137
Joined: 25 Aug 2014, 21:31
Detinator Steam: Da
CS Status: who dares wins
SteamID: Jandarmeria
Reputatie: Super moderator
Moderatorul anului 2023
Fost Membru Club eXtreamCS ( o luna )
Fost eXtream Mod
Fost Intermediar
Nume anterior: Sorinel
Fond eXtream: 0
Location: Unknown
Discord: remusakcent
Has thanked: 4 times
Been thanked: 46 times

14 Aug 2017, 17:50

posteaza sursa modului
florin07
Membru, skill 0
Membru, skill 0
Posts: 26
Joined: 07 Aug 2017, 18:44
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: GO.USTRIKE.RO
Fond eXtream: 0
Contact:

14 Aug 2017, 18:07

| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <colorchat>
#include <fun>

new const PLUGIN[] = "Global Offensive";
new const VERSION[] = "1.1p";
new const AUTHOR[] = "DeRoiD";

#define MAX 50

#define PointsMin 3
#define PointsMax 8
#define Drop 10
#define MarkMin 25

#pragma semicolon 1

new WeaponNames[MAX][32], WeaponMdls[MAX][48], Weapons[MAX], WeaponDrop[MAX], AllWeapon;
new UsingWeapon[3][33], uWeapon[MAX][33], Chest[33], pKey[33], Points[33], Rang[33], Kills[33],
aThing[33], aTarget[33], aPoints[33], Prefix[32];
new Folder[48], SkinFile[48], SaveFile[48], RegisterFile[48], DefaultSkinFile[48], RangFile[48], MenuMod[33], SayText;
new WeaponinMarket[33], inMarket[33], MarketPoints[33], Choosen[33];
new SavedPassword[33][32], bool:Loged[33], Password[33][32];
new DefaultSkin[31][32], NeedKills[30], Rangs[30][32];

new const eWeapon[][] =
{
	"weapon_famas", "weapon_p228", "weapon_p90", "weapon_glock18", "weapon_mac10", "weapon_usp", "weapon_awp","weapon_scout", "weapon_mp5navy", "weapon_m3", "weapon_m4a1","weapon_deagle", "weapon_ak47", "weapon_knife", "weapon_flashbang", "weapon_hegrenade",
"weapon_smokegrenade", "weapon_c4"
};

new const FirstWeaponNames[][][] =
{
	{ "AK47", "weapon_ak47" },
	{ "M4A1", "weapon_m4a1" },
	{ "AWP", "weapon_awp" },
	{ "P90", "weapon_p90" },
	{ "SCOUT", "weapon_scout" },
	{ "MAC10", "weapon_mac10" },
	{ "FAMAS", "weapon_famas" },
	{ "MP5", "weapon_mp5navy" },
	{ "SHOTGUN", "weapon_m3" }
};

new const SecondaryWeaponNames[][][] =
{
	{ "DEAGLE", "weapon_deagle" },
	{ "P228", "weapon_p228" },
	{ "GLOCK18", "weapon_glock18" },
	{ "USP", "weapon_usp" }
};

public plugin_precache() {
	new Line[128], Data[4][48], Len;
	AllWeapon++;
	get_configsdir(Folder, 47);
	format(SkinFile, 47, "%s/csgo/skins.cfg", Folder);
	format(SaveFile, 47, "%s/csgo/save.ini", Folder);
	format(RangFile, 47, "%s/csgo/rangs.cfg", Folder);
	format(RegisterFile, 47, "%s/csgo/reg.ini", Folder);
	format(DefaultSkinFile, 47, "%s/csgo/dskins.cfg", Folder);
	format(Prefix, 31, "[Global Offensive]");
	
	if(file_exists(RangFile))
	{
		for(new i; i < file_size(RangFile, 1); i++)
		{
			read_file(RangFile, i, Line, 127, Len);
			parse(Line, Data[0], 31, Data[1], 31);
			
			copy(Rangs, 31, Data[0]);
			NeedKills = str_to_num(Data[1]);
		}
	}
	if(file_exists(SkinFile))
	{
		for(new i; i < file_size(SkinFile, 1); i++)
		{
			read_file(SkinFile, i, Line, 127, Len);
			
			if(strlen(Line) < 5 || Line[0] == ';')
				continue;
			
			parse(Line, Data[0], 31, Data[1], 31, Data[2], 47, Data[3], 31);
			
			Weapons[AllWeapon] = str_to_num(Data[0]);
			copy(WeaponNames[AllWeapon], 31, Data[1]);
			
			if(ValidMdl(Data[2])) {
				precache_model(Data[2]);
				copy(WeaponMdls[AllWeapon], 47, Data[2]);
			}
			
			WeaponDrop[AllWeapon] = str_to_num(Data[3]);
			AllWeapon++;
		}
	}
	if(file_exists(DefaultSkinFile))
	{
		for(new i; i < file_size(DefaultSkinFile, 1); i++)
		{
			read_file(DefaultSkinFile, i, Line, 127, Len);
			
			if(strlen(Line) < 5 || Line[0] == ';')
				continue;
			
			parse(Line, Data[0], 31, Data[1], 47);
			
			if(ValidMdl(Data[1])) {
				precache_model(Data[1]);
				copy(DefaultSkin[str_to_num(Data[0])], 47, Data[1]);
			}
		}
	}
}
public plugin_init() {
	register_dictionary("globaloffensive.txt");
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_cvar(PLUGIN, VERSION, FCVAR_SERVER);
	
	register_clcmd("say /menu", "MenuOpen");
	register_clcmd("say /reg", "RegMenu");
	register_clcmd("say /gun", "Guns");
	
	register_concmd("Cost", "MarketCost");
	register_concmd("Gift", "GiftPoint");
	register_concmd("UserPassword", "PlayerPassword");
	
	SayText = get_user_msgid("SayText");
	register_forward(FM_ClientUserInfoChanged, "NameChange");
	RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
	
	for(new i; i < sizeof(eWeapon); i++)
	{
		RegisterHam(Ham_Item_Deploy, eWeapon, "WeaponSwitch", 1);
	}
	
	register_clcmd("say", "Say");
	register_clcmd("say_team", "Say");
	
	set_task(67.3, "Message", 7217, _, _, "b");
}
public Message() 
{
	print_color(0, "!g%s%L", Prefix, LANG_SERVER, "MSG", PLUGIN, VERSION, AUTHOR);
}
public Guns(id) 
{
	if(Choosen[id] < 1)
	{
		Choosen[id] = 0;
		WeaponMenu(id);
	}
}
public PlayerSpawn(id) 
{
	if(is_user_alive(id))
	{
		Choosen[id] = 0;
		
		if(user_has_weapon(id, CSW_C4))
		{
			strip_user_weapons(id);
			give_item(id, "weapon_c4");
			give_item(id, "weapon_knife");
			WeaponMenu(id);
			return PLUGIN_HANDLED;
		}
		
		strip_user_weapons(id);
		give_item(id, "weapon_knife");
		WeaponMenu(id);
		
		if(cs_get_user_team(id) == CS_TEAM_CT)
		{
			cs_set_user_defuse(id, 1);
		}
	}
	return PLUGIN_CONTINUE;
}
public Say(id)
{
	new Chat[256], Name[32], cChat[256];
	read_args(Chat, 255);
	remove_quotes(Chat);
	get_user_name(id, Name, 31);
	
	if(strlen(Chat) > 1)
	{
		formatex(cChat, 255, "^4[%s] ^3%s^1: %s", Rangs[Rang[id]], Name, Chat);
	}
	
	ColorChat(0, TEAM_COLOR, cChat);
	return PLUGIN_HANDLED;
}
public MenuOpen(id)
{
	if(!Loged[id])
	{
		RegMenu(id);
		return;
	}
	
	MenuMod[id] = 0;
	Menu(id);
}
public client_death(Killer, Victim)
{
	if(Killer == Victim)
	{
		return PLUGIN_HANDLED;
	}
	
	Kills[Killer]++;
	
	if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 1))
	{
		if(Kills[Killer] >= NeedKills[Rang[Killer]])
			Rang[Killer]++;
	}
	
	new pPont, Name[32];
	
	pPont += random_num(PointsMin, PointsMax);
	Points[Killer] += pPont;
	
	set_hudmessage(255, 255, 255, -1.0, 0.15, 0, 6.0, 2.0);
	show_hudmessage(Killer, "%L", LANG_SERVER, "POINT", pPont);
	
	
	if(Drop >= random_num(1, 100))
	{
		get_user_name(Killer, Name, 31);
		new x = random_num(1, 2);
		if(x == 1)
		{
			pKey[Killer]++;
			print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDKEY", Name);
		}
		if(x == 2)
		{
			Chest[Killer]++;
			print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDCHEST", Name);
		}
	}
	Save(Killer);
	return PLUGIN_CONTINUE;
}
public MarketCost(id)
{
	if(inMarket[id] || !Loged[id])
		return PLUGIN_HANDLED;
		
	new Data[32], Cost;
	read_args(Data, 31);
	remove_quotes(Data);
	
	Cost = str_to_num(Data);
	
	if(Cost < 0)
	{
		client_cmd(id, "messagemode Cost");
		return PLUGIN_HANDLED;
	}
	else if(MarkMin >= Cost)
	{
		print_color(id, "%s %L", Prefix, LANG_SERVER, "NOTENOUGHTMARKET", MarkMin);
		client_cmd(id, "messagemode Cost");
		return PLUGIN_HANDLED;
	}
	else
	{
		MarketPoints[id] = Cost;
		Menu(id);
		MenuMod[id] = 3;
		return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}
public GiftPoint(id)
{
	if(inMarket[id] || !Loged[id])
		return PLUGIN_HANDLED;
		
	new Data[32], Cost;
	read_args(Data, 31);
	remove_quotes(Data);
	
	Cost = str_to_num(Data);
	
	if(Cost < 0 || Points[id] < Cost)
	{
		client_cmd(id, "messagemode Gift");
		return PLUGIN_HANDLED;
	}
	else
	{
		aPoints[id] = Cost;
		Menu(id);
		MenuMod[id] = 5;
		return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}
public WeaponSwitch(Weapon) {
	new id = get_pdata_cbase(Weapon, 41, 4);
	new wid = cs_get_weapon_id(Weapon);
	
	if(id > 32 || id < 1)
	{
		return HAM_SUPERCEDE;
	}
	
	for(new i = 1; i < AllWeapon; i++)
	{
		if(i == UsingWeapon[0][id])
		{
			if(wid == Weapons)
			{
				set_pev(id, pev_viewmodel2, WeaponMdls);
				return HAM_SUPERCEDE;
			}
		}
		else if(i == UsingWeapon[1][id])
		{
			if(wid == Weapons)
			{
				set_pev(id, pev_viewmodel2, WeaponMdls);
				return HAM_SUPERCEDE;
			}
		}
		else if(i == UsingWeapon[2][id])
		{
			if(wid == Weapons)
			{
				set_pev(id, pev_viewmodel2, WeaponMdls);
				return HAM_SUPERCEDE;
			}
		}
		
	}
	if(ValidMdl(DefaultSkin[wid]))
	{
		set_pev(id, pev_viewmodel2, DefaultSkin[wid]);
	}
	return HAM_IGNORED;
}
public ChestOpen(id)
{
	new rWeapon = random_num(1, AllWeapon);
	new rNum = random_num(1, 100);
	
	if(WeaponDrop[rWeapon] >= rNum)
	{
		new Name[32];
		get_user_name(id, Name, 31);
		print_color(id, "!g[CSGO]%L", LANG_SERVER, "FOUNDITEM", Name, WeaponNames[rWeapon]);
		uWeapon[rWeapon][id]++;
		Save(id);
	}
	else
	{
		set_task(0.1, "ChestOpen", id);
	}
}
public Menu(id)
{
	if(!Loged[id])
	{
		RegMenu(id);
		return;
	}
	
	new sMenu, Line[128];
	
	if(MenuMod[id] == -2)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "GIFTCH", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new String[32], All;
		for(new i = 1; i < AllWeapon; i++)
		{
			if(uWeapon[id] == 0)
				continue;
				
			num_to_str(i, String, 31);
			formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
			menu_additem(sMenu, Line, String);
			All++;
		}
		if(Chest[id] > 0)
		{
			formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]);
			menu_additem(sMenu, Line, "101");
			All++;
		}
		if(pKey[id] > 0)
		{
			formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]);
			menu_additem(sMenu, Line, "102");
			All++;
		}
		if(All == 0)
		{
			MenuMod[id] = 0;
			Menu(id);
		}
	}
	else if(MenuMod[id] == -1)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "GIFTCH", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new String[32], All;
		for(new i = 1; i < AllWeapon; i++)
		{
			if(uWeapon[i][id] == 0)
				continue;
				
			num_to_str(i, String, 31);
			formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
			menu_additem(sMenu, Line, String);
			All++;
		}
		if(Chest[id] > 0)
		{
			formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]);
			menu_additem(sMenu, Line, "101");
			All++;
		}
		if(pKey[id] > 0)
		{
			formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]);
			menu_additem(sMenu, Line, "102");
			All++;
		}
		if(All == 0)
		{
			MenuMod[id] = 0;
			Menu(id);
		}
	}
	else if(MenuMod[id] == 0)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MAIN", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		formatex(Line, 127, "%L", LANG_SERVER, "MENUTOSKINS");
		menu_additem(sMenu, Line, "1");
		
		if(!inMarket[id])
		{
			formatex(Line, 127, "%L", LANG_SERVER, "MENUTOCHESTOPEN");
			menu_additem(sMenu, Line, "2");
		}
		else
		{
			formatex(Line, 127, "%L %L",
			LANG_SERVER, "MENUTOCHESTOPEN", LANG_SERVER, "INMARKET");
			menu_additem(sMenu, Line, "0");
		}
		
		formatex(Line, 127, "%L", LANG_SERVER, "MENUTOMARKET");
		menu_additem(sMenu, Line, "3");
		
		if(!inMarket[id])
		{
			formatex(Line, 127, "%L", LANG_SERVER, "MENUTODUSTBIN");
			menu_additem(sMenu, Line, "4");
		}
		else
		{
			formatex(Line, 127, "%L %L",
			LANG_SERVER, "MENUTODUSTBIN", LANG_SERVER, "INMARKET");
			menu_additem(sMenu, Line, "0");
		}
		
		if(!inMarket[id])
		{
			formatex(Line, 127, "%L%L",
			LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "MRANG", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]);
			menu_additem(sMenu, Line, "5");
		}
		else
		{
			formatex(Line, 127, "%L %L%L",
			LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "INMARKET", LANG_SERVER, "MRANG", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]);
			menu_additem(sMenu, Line, "0");
		}
	}
	else if(MenuMod[id] == 1)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MENUTOSKINS", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new String[32], All;
		for(new i = 1; i < AllWeapon; i++)
		{
			if(uWeapon[i][id] == 0)
				continue;
				
			formatex(String, 31, "%d %d", i, Weapons[i]);
			formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
			menu_additem(sMenu, Line, String);
			All++;
		}
		if(All == 0)
		{
			MenuMod[id] = 0;
			Menu(id);
		}
	}
	else if(MenuMod[id] == 2)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MENUTOCHESTOPEN", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		formatex(Line, 127, "%L", LANG_SERVER, "CHESTSANDKEYS", Chest[id], pKey[id]);
		menu_additem(sMenu, Line, "1");
	}
	else if(MenuMod[id] == 3)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MENUTOMARKET", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new String[32], All;
		if(!inMarket[id])
		{
			for(new i = 1; i < AllWeapon; i++)
			{
				if(i == WeaponinMarket[id] && uWeapon[i][id] > 0)
				{
					formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACES", WeaponNames[i], MarketPoints[id]);
					All++;
				}
			}
			
			if(101 == WeaponinMarket[id] && Chest[id] > 0)
			{
				formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACEC", MarketPoints[id]);
				All++;
			}
			if(102 == WeaponinMarket[id] && pKey[id] > 0)
			{
				formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACEK", MarketPoints[id]);
				All++;
			}
			
			if(All == 0)
				formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACECH");
			menu_additem(sMenu, Line, "-1");
		}
		
		if(!inMarket[id])
			formatex(Line, 127, "%L", LANG_SERVER, "TOMARKETM");
		else
			formatex(Line, 127, "%L", LANG_SERVER, "BACKMARKET");
		menu_additem(sMenu, Line, "0");
		
		new Name[32];
		for(new x; x < 32; x++)
		{
			if(!is_user_connected(x))
				continue;
			
			if(inMarket[x] && MarketPoints[x] > 0)
			{
				num_to_str(x, String, 31);
				get_user_name(x, Name, 31);
				if(101 == WeaponinMarket[x])
				{
					formatex(Line, 127, "%L", LANG_SERVER, "SELLERC", Name, MarketPoints[x]);
					menu_additem(sMenu, Line, String);
				}
				else if(102 == WeaponinMarket[x])
				{
					formatex(Line, 127, "%L", LANG_SERVER, "SELLERK", Name, MarketPoints[x]);
					menu_additem(sMenu, Line, String);
				}
				else
				{
					formatex(Line, 127, "%L", LANG_SERVER, "SELLERS", Name, WeaponNames[WeaponinMarket[x]], MarketPoints[x]);
					menu_additem(sMenu, Line, String);
				}
			}
		}
	}
	else if(MenuMod[id] == 4)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MENUTODUSTBIN", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new String[32], All;
		for(new i = 1; i < AllWeapon; i++)
		{
			if(uWeapon[i][id] == 0)
				continue;
				
			num_to_str(i, String, 31);
			formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
			menu_additem(sMenu, Line, String);
			All++;
		}
		if(All == 0)
		{
			MenuMod[id] = 0;
			Menu(id);
		}
	}
	else if(MenuMod[id] == 5)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new All, Name[32], String[32];
		get_user_name(aTarget[id], Name, 31);
		
		if(aTarget[id] > 0 && is_user_alive(aTarget[id]))
		{
			formatex(Line, 127, "%L", LANG_SERVER, "GIFTT", Name);
			menu_additem(sMenu, Line, "-1");
			for(new i = 1; i < AllWeapon; i++)
			{
				if(i == aThing[id] && uWeapon[i][id] > 0)
				{
					formatex(Line, 127, "%L", LANG_SERVER, "GIFTS", WeaponNames[i]);
					menu_additem(sMenu, Line, "-2");
					All++;
				}
			}
			
			if(aThing[id] == 0 && All == 0)
			{
				formatex(Line, 127, "%L", LANG_SERVER, "GIFTCH");
				menu_additem(sMenu, Line, "-2");
			}
			else if(aThing[id] > 100)
			{
				if(101 == aThing[id])
				{
					formatex(Line, 127, "%L", LANG_SERVER, "GIFTC");
				}
				if(102 == aThing[id])
				{
					formatex(Line, 127, "%L", LANG_SERVER, "GIFTK");
				}
				menu_additem(sMenu, Line, "-2");
			}
			
			formatex(Line, 127, "%L", LANG_SERVER, "GIFTPOINTS", aPoints[id]);
			menu_additem(sMenu, Line, "-4");
			formatex(Line, 127, "%L", LANG_SERVER, "SENDGIFT");
			menu_additem(sMenu, Line, "-3");
		}
		else
		{
			for(new i; i < 32; i++)
			{
				if(is_user_connected(i))
				{
					get_user_name(i, Name, 31);
					num_to_str(i, String, 31);
					menu_additem(sMenu, Name, String);
				}
			}
		}
	}
	menu_display(id, sMenu);
}
public MenuHandler(id, gMenu, Key)
{	
	if(Key == MENU_EXIT)
	{
		MenuMod[id] = 0;
		menu_destroy(gMenu);
		return PLUGIN_HANDLED;
	}
	new aMenu[2], Data[4][32], sKey[32], Name[32], mName[32];
	menu_item_getinfo(gMenu, Key, aMenu[0], Data[0], 31, Data[1], 31, aMenu[1]);
	
	parse(Data[0], sKey, 31);
	Key = str_to_num(sKey);
	
	if(MenuMod[id] == -2)
	{
		aThing[id] = Key;
		MenuMod[id] = 5;
		Menu(id);
		return PLUGIN_HANDLED;
	}
	if(MenuMod[id] == -1)
	{
		MenuMod[id] = 3;
		WeaponinMarket[id] = Key;
		client_cmd(id, "messagemode Cost");
		Menu(id);
		return PLUGIN_HANDLED;
	}
	else if(MenuMod[id] == 0)
	{
		MenuMod[id] = Key;
		Menu(id);
		return PLUGIN_HANDLED;
	}
	else if(MenuMod[id] == 1)
	{
		parse(Data[0], Data[2], 31, Data[3], 31);
		
		if(str_to_num(Data[3]) == 16 || str_to_num(Data[3]) == 26)
			UsingWeapon[1][id] = str_to_num(Data[2]);
		else if(str_to_num(Data[3]) == 29)
			UsingWeapon[2][id] = str_to_num(Data[2]);
		else
			UsingWeapon[0][id] = str_to_num(Data[2]);
		return PLUGIN_HANDLED;
	}
	else if(MenuMod[id] == 2)
	{
		if(Key == 1)
		{
			if(Chest[id] > 0 && pKey[id] > 0)
			{
				Chest[id]--;
				pKey[id]--;
				ChestOpen(id);
				Menu(id);
				return PLUGIN_HANDLED;
			}
		}
	}
	else if(MenuMod[id] == 3)
	{
		if(Key == -1)
		{
			MenuMod[id] = -1;
			Menu(id);
			return PLUGIN_HANDLED;
		}
		else if(Key == 0)
		{
			if(inMarket[id])
				inMarket[id] = false;
			else if(MarketPoints[id] > 0)
			{
				get_user_name(id, Name, 31);
				print_color(0, "!g%s%L",
				Prefix, LANG_SERVER, "TOMARKET", Name, WeaponNames[WeaponinMarket[id]], MarketPoints[id]);
				inMarket[id] = true;
			}
			Menu(id);
			return PLUGIN_HANDLED;
		}
		else if(inMarket[Key] && Points[id] >= MarketPoints[Key])
		{
			get_user_name(Key, Name, 31);
			get_user_name(id, mName, 31);
			if(WeaponinMarket[Key] < 101)
			{
				print_color(0, "!g%s%L",
				Prefix, LANG_SERVER, "BUYMARKETITEM",
				mName, WeaponNames[WeaponinMarket[Key]], MarketPoints[Key], Name);
				uWeapon[WeaponinMarket[Key]][id]++;
				uWeapon[WeaponinMarket[Key]][Key]--;
			}
			else if(WeaponinMarket[Key] == 101)
			{
				print_color(0, "!g%s%L",
				Prefix, LANG_SERVER, "BUYMARKETCHEST",
				mName, MarketPoints[Key], Name);
				Chest[id]++;
				Chest[Key]--;
			}
			else if(WeaponinMarket[Key] == 102)
			{
				print_color(0, "!g%s%L",
				Prefix, LANG_SERVER, "BUYMARKETKEY",
				mName, MarketPoints[Key], Name);
				pKey[id]++;
				pKey[Key]--;
			}
			Points[Key] += MarketPoints[Key];
			Points[id] -= MarketPoints[Key];
			Save(Key);
			Save(id);
			inMarket[Key] = false;
			MarketPoints[Key] = 0;
			WeaponinMarket[Key] = 0;
			MenuMod[id] = 0;
		}
	}
	else if(MenuMod[id] == 4)
	{
		uWeapon[Key][id]--;
		Menu(id);
		Save(id);
		return PLUGIN_HANDLED;
	}
	else if(MenuMod[id] == 5)
	{
		if(Key == -1)
		{
			aTarget[id] = 0;
		}
		if(Key == -2)
		{
			MenuMod[id] = -2;
		}
		if(Key == -3)
		{
			if(uWeapon[aThing[id]][id] > 0)
			{
				uWeapon[aThing[id]][aTarget[id]]++;
				uWeapon[aThing[id]][id]--;
				Points[aTarget[id]] += aPoints[id];
				Points[id] -= aPoints[id];
				Save(aTarget[id]);
				Save(id);
				MenuMod[id] = 0;
				aThing[id] = 0;
				aTarget[id] = 0;
				aPoints[id] = 0;
				print_color(id, "!g%s%L",
				Prefix, LANG_SERVER, "GIFTSUCCESS");
			}
		}
		if(Key == -4)
		{
			client_cmd(id, "messagemode Gift");
		}
		if(Key > 0)
			aTarget[id] = Key;
		Menu(id);
		return PLUGIN_HANDLED;
	}
	MenuMod[id] = 0;
	return PLUGIN_CONTINUE;
}
stock print_color(const id, const input[], any:...)
{
	new Count = 1, Players[32];
	static Msg[191];
	vformat(Msg, 190, input, 3);
	
	replace_all(Msg, 190, "!g", "^4");
	replace_all(Msg, 190, "!y", "^1");
	replace_all(Msg, 190, "!t", "^3");

	if(id) Players[0] = id; else get_players(Players, Count, "ch");
	{
		for (new i = 0; i < Count; i++)
		{
			if (is_user_connected(Players[i]))
			{
				message_begin(MSG_ONE_UNRELIABLE, SayText, _, Players[i]);
				write_byte(Players[i]);
				write_string(Msg);
				message_end();
			}
		}
	}
	return PLUGIN_HANDLED;
}
public client_putinserver(id)
{
	Kills[id] = 0, Rang[id] = 0, Points[id] = 0, Choosen[id] = 0, pKey[id] = 0, Chest[id] = 0;
	for(new i; i < AllWeapon; i++)
	{
		uWeapon[i][id] = 0;
	}
	Load(id);
	Password[id] = "";
	SavedPassword[id] = "";
	Loged[id] = false;
}
public Load(id)
{
	if(!is_user_connected(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new pFile, Name[32];
	pFile = fopen(SaveFile, "rt");
	get_user_name(id, Name, 31);
	
	if(pFile)
	{
		new Line[256];
		new LineName[32], tData[5][8], Data[MAX][8];
		
		while(!feof(pFile))
		{
			fgets(pFile, Line, 255);
			
			if(Line[0] == ';' || strlen(Line) < 2)
				continue;
				
			parse(Line, LineName, 31);
			
			if(equal(LineName, Name))
			{
				parse(Line, LineName, 31, tData[0], 7, tData[1], 7, tData[2], 7, tData[3], 7, tData[4], 7,
				Data[0], 7, Data[1], 7, Data[2], 7, Data[3], 7, Data[4], 7, Data[5], 7,
				Data[6], 7, Data[7], 7, Data[8], 7, Data[9], 7, Data[10], 7, Data[11], 7, Data[12], 7,
				Data[13], 7, Data[14], 7, Data[15], 7, Data[16], 7, Data[17], 7, Data[18], 7, Data[19], 7,
				Data[20], 7, Data[21], 7, Data[22], 7, Data[23], 7, Data[24], 7, Data[25], 7, Data[26], 7,
				Data[27], 7, Data[28], 7, Data[29], 7, Data[30], 7, Data[31], 7, Data[32], 7, Data[33], 7,
				Data[34], 7, Data[35], 7, Data[36], 7, Data[37], 7, Data[38], 7, Data[39], 7, Data[40], 7,
				Data[41], 7, Data[42], 7, Data[43], 7, Data[44], 7, Data[45], 7, Data[46], 7, Data[47], 7,
				Data[48], 7, Data[49], 7);
				
				Kills[id] = str_to_num(tData[0]);
				Points[id] = str_to_num(tData[1]);
				pKey[id] = str_to_num(tData[2]);
				Chest[id] = str_to_num(tData[3]);
				Rang[id] = str_to_num(tData[4]);
				
				for(new i; i < MAX; i++)
				{
					uWeapon[i][id] = str_to_num(Data[i]);
				}
				return PLUGIN_HANDLED;
			}
		}
		fclose(pFile);
	}
	return PLUGIN_CONTINUE;
}
public Save(id)
{
	if(!is_user_connected(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new pFile, Name[32];
	pFile = fopen(SaveFile, "rt");
	get_user_name(id, Name, 31);
	
	if(pFile)
	{
		new Line[192], Lines;
		
		new LineName[32], bool:Found;
		
		while(!feof(pFile))
		{
			fgets(pFile, Line, 191);
			
			if(Line[0] == ';' || strlen(Line) < 2)
				continue;
				
			parse(Line, LineName, 31);
			
			if(equal(LineName, Name) && !Found)
			{
				new mLine[256], LoadWeapon[256], String[8];
				
				format(String, 7, "^"%i^" ", Kills[id]);
				add(LoadWeapon, 255, String);
				
				format(String, 7, "^"%i^" ", Points[id]);
				add(LoadWeapon, 255, String);
				
				format(String, 7, "^"%i^" ", pKey[id]);
				add(LoadWeapon, 255, String);
				
				format(String, 7, "^"%i^" ", Chest[id]);
				add(LoadWeapon, 255, String);
				
				format(String, 7, "^"%i^" ", Rang[id]);
				add(LoadWeapon, 255, String);
					
				for(new i; i < MAX; i++)
				{
					format(String, 7, "^"%i^" ", uWeapon[i][id]);
					add(LoadWeapon, 255, String);
				}
				
				formatex(mLine, 255, "^"%s^" %s", Name, LoadWeapon);
				write_file(SaveFile, mLine, Lines);
				Found = true;
				return PLUGIN_HANDLED;
			}
			
			Lines++;
		}
		
		if(!Found)
		{
			new mLine[256], LoadWeapon[256], String[8];
			
			format(String, 7, "^"%i^" ", Kills[id]);
			add(LoadWeapon, 255, String);
			
			format(String, 7, "^"%i^" ", Points[id]);
			add(LoadWeapon, 255, String);
			
			format(String, 7, "^"%i^" ", pKey[id]);
			add(LoadWeapon, 255, String);
			
			format(String, 7, "^"%i^" ", Chest[id]);
			add(LoadWeapon, 255, String);
			
			format(String, 7, "^"%i^" ", Rang[id]);
			add(LoadWeapon, 255, String);
			
			for(new i; i < MAX; i++)
			{
				format(String, 7, "^"%i^" ", uWeapon[i][id]);
				add(LoadWeapon, 255, String);
			}
			
			formatex(mLine, 255, "^"%s^" %s", Name, LoadWeapon);
			write_file(SaveFile, mLine);
			return PLUGIN_HANDLED;
		}
		fclose(pFile);
	}
	return PLUGIN_CONTINUE;
}
public WeaponMenu(id)
{
	new String[128], Name[32];
	format(String, 127, "%s %L", Prefix, LANG_SERVER, "WPM");
	new wMenu = menu_create(String, "wMenuHandler");
	get_user_name(id, Name, 31);
	
	if(Choosen[id] == 0)
	{
		for(new i; i < sizeof(FirstWeaponNames); i++)
		{
			format(String, 127, "%s", FirstWeaponNames[i][0]);
			menu_additem(wMenu, String, FirstWeaponNames[i][1]);
		}
	}
	if(Choosen[id] == 1)
	{
		for(new i; i < sizeof(SecondaryWeaponNames); i++)
		{
			format(String, 127, "%s", SecondaryWeaponNames[i][0]);
			menu_additem(wMenu, String, SecondaryWeaponNames[i][1]);
		}
	}
	
	menu_display(id, wMenu);
}
public wMenuHandler(id, gMenu, item)
{	
	if(item == MENU_EXIT)
	{
		menu_destroy(gMenu);
		return;
	}
	new data[32], name[64];
	new access, callback;
	menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback);
	
	give_item(id, data);
	Choosen[id]++;
	
	if(Choosen[id] >= 2)
		Grenades(id);
		
	WeaponMenu(id);
}
public RegMenu(id)
{
	new String[128], Name[32];
	format(String, 127, "%s %L", Prefix, LANG_SERVER, "RMMAIN");
	new rMenu = menu_create(String, "rMenuHandler");
	get_user_name(id, Name, 31);
	
	format(String, 127, "%L", LANG_SERVER, "RMACCOUNT", Name);
	menu_additem(rMenu, String, "0");
	
	if(!Registered(id))
	{
		format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]);
		menu_additem(rMenu, String, "1");
		
		if(strlen(Password[id]) > 4)
		{
			format(String, 127, "%L", LANG_SERVER, "RMR");
			menu_additem(rMenu, String, "2");
		}
		else
		{
			format(String, 127, "\d%L", LANG_SERVER, "RMR");
			menu_additem(rMenu, String, "0");
		}
	}
	else
	{
		if(!Loged[id])
		{
			format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]);
			menu_additem(rMenu, String, "1");
			
			if(equal(SavedPassword[id], Password[id]))
			{
				format(String, 127, "%L", LANG_SERVER, "RMLOGIN");
				menu_additem(rMenu, String, "3");
			}
			else
			{
				format(String, 127, "\d%L", LANG_SERVER, "RMLOGIN");
				menu_additem(rMenu, String, "0");
			}
		}
		else
		{
			format(String, 127, "%L", LANG_SERVER, "RMLOGOUT");
			menu_additem(rMenu, String, "-1");
		}
	}
	
	menu_display(id, rMenu);
}
public rMenuHandler(id, gMenu, item)
{	
	if(item == MENU_EXIT)
	{
		menu_destroy(gMenu);
		return;
	}
	new data[9], name[64], Key;
	new access, callback;
	menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback);
 
	Key = str_to_num(data);
	
	if(Key == -1)
		ToLogout(id);
	if(Key == 0)
		RegMenu(id);
	if(Key == 1)
	{
		client_cmd(id, "messagemode UserPassword");
		RegMenu(id);
	}
	if(Key == 2)
	{
		print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERSUCCESS", Password[id]);
		Register(id, Password[id]);
		copy(SavedPassword[id], 31, Password[id]);
		Loged[id] = true;
		Menu(id);
	}
	if(Key == 3)
	{
		if(equal(SavedPassword[id], Password[id])) {
			Loged[id] = true;
			print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERLOGIN");
			Menu(id);
		}
	}
}
public ToLogout(id)
{
	if(Loged[id])
	{
		Loged[id] = false;
		Password[id] = "";
		print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERLOGOUT");
	}
}
public PlayerPassword(id)
{
	new Data[32];
	read_args(Data, 31);
	remove_quotes(Data);
	
	if(strlen(Data) < 5)
	{
		print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERSHORT");
		client_cmd(id, "messagemode UserPassword");
		return PLUGIN_HANDLED;
	}
	
	if(Loged[id])
	{
		return PLUGIN_HANDLED;
	}
	
	copy(Password[id], 31, Data);
	RegMenu(id);
	return PLUGIN_CONTINUE;
}
public NameChange(id) 
{
	if(!is_user_connected(id))
		return FMRES_IGNORED;
		
	new OldName[32], NewName[32], Name[32];
	get_user_name(id, Name, 31);
	pev(id, pev_netname, OldName, charsmax(OldName));
	if(OldName[0])
	{
		get_user_info(id, "name", NewName, charsmax(NewName));
		if(!equal(OldName, NewName))
		{
			set_user_info(id, "name", OldName);
			print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERNAMECHANGE");
			return FMRES_HANDLED;
		}
	}
	return FMRES_IGNORED;
}
stock bool:ValidMdl(Mdl[])
{
	if(containi(Mdl, ".mdl") != -1)
	{
		return true;
	}
	return false;
}
stock bool:Registered(id)
{
	new pFile, Data[2][32], Line[64], Name[32];
	get_user_name(id, Name, 31);
	pFile = fopen(RegisterFile, "rt");
	
	while(!feof(pFile))
	{
		fgets(pFile, Line, 63);
		
		parse(Line, Data[0], 31, Data[1], 31);
		
		if(equal(Data[0], Name))
		{
			copy(SavedPassword[id], 31, Data[1]);
			return true;
		}
	}
	
	fclose(pFile);
	
	return false;
}
stock Register(id, const rSavedPassword[])
{
	new pFile, Line[64], Name[32];
	get_user_name(id, Name, 31);
	pFile = fopen(RegisterFile, "at+");
	format(Line, 63, "^n^"%s^" ^"%s^"", Name, rSavedPassword);
	write_file(RegisterFile, Line);
	fclose(pFile);
}
stock Grenades(id)
{
	give_item(id, "weapon_hegrenade");
	give_item(id, "weapon_smokegrenade");
	give_item(id, "weapon_flashbang");
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/
☆ GO.USTRIKE.RO -=[CS:GO COMPETITIVE | !WS !KNIFE !GLOVES]=- WWW.USTRIKE.RO
User avatar
A k c 3 n 7
Super moderator
Super moderator
Posts: 5137
Joined: 25 Aug 2014, 21:31
Detinator Steam: Da
CS Status: who dares wins
SteamID: Jandarmeria
Reputatie: Super moderator
Moderatorul anului 2023
Fost Membru Club eXtreamCS ( o luna )
Fost eXtream Mod
Fost Intermediar
Nume anterior: Sorinel
Fond eXtream: 0
Location: Unknown
Discord: remusakcent
Has thanked: 4 times
Been thanked: 46 times

14 Aug 2017, 18:16

| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <colorchat>
#include <fun>

new const PLUGIN[] = "Global Offensive";
new const VERSION[] = "1.1p";
new const AUTHOR[] = "DeRoiD";

#define MAX 50

#define PointsMin 3
#define PointsMax 8
#define Drop 10
#define MarkMin 25

#pragma semicolon 1

new WeaponNames[MAX][32], WeaponMdls[MAX][48], Weapons[MAX], WeaponDrop[MAX], AllWeapon;
new UsingWeapon[3][33], uWeapon[MAX][33], Chest[33], pKey[33], Points[33], Rang[33], Kills[33],
aThing[33], aTarget[33], aPoints[33], Prefix[32];
new Folder[48], SkinFile[48], SaveFile[48], RegisterFile[48], DefaultSkinFile[48], RangFile[48], MenuMod[33], SayText;
new WeaponinMarket[33], inMarket[33], MarketPoints[33], Choosen[33];
new SavedPassword[33][32], bool:Loged[33], Password[33][32];
new DefaultSkin[31][32], NeedKills[30], Rangs[30][32];


new const eWeapon[][] =
{
"weapon_famas", "weapon_p228", "weapon_p90", "weapon_glock18", "weapon_mac10", "weapon_usp", "weapon_awp","weapon_scout", 

"weapon_mp5navy", "weapon_m3", "weapon_m4a1","weapon_deagle", "weapon_ak47", "weapon_knife", "weapon_flashbang", 

"weapon_hegrenade",
"weapon_smokegrenade", "weapon_c4"
};


new const FirstWeaponNames[][][] =
{
	{ "AK47", "weapon_ak47" },
	{ "M4A1", "weapon_m4a1" },
	{ "AWP", "weapon_awp" },
	{ "P90", "weapon_p90" },
	{ "SCOUT", "weapon_scout" },
	{ "MAC10", "weapon_mac10" },
	{ "FAMAS", "weapon_famas" },
	{ "MP5", "weapon_mp5navy" },
	{ "SHOTGUN", "weapon_m3" }
};

new const SecondaryWeaponNames[][][] =
{
	{ "DEAGLE", "weapon_deagle" },
	{ "P228", "weapon_p228" },
	{ "GLOCK18", "weapon_glock18" },
	{ "USP", "weapon_usp" }
};


public plugin_precache() {
	new Line[128], Data[4][48], Len;
	AllWeapon++;
	get_configsdir(Folder, 47);
	format(SkinFile, 47, "%s/csgo/skins.cfg", Folder);
	format(SaveFile, 47, "%s/csgo/save.ini", Folder);
	format(RangFile, 47, "%s/csgo/rangs.cfg", Folder);
	format(RegisterFile, 47, "%s/csgo/reg.ini", Folder);
	format(DefaultSkinFile, 47, "%s/csgo/dskins.cfg", Folder);
	format(Prefix, 31, "[Global Offensive]");
	
	if(file_exists(RangFile))
	{
		for(new i; i < file_size(RangFile, 1); i++)
		{
			read_file(RangFile, i, Line, 127, Len);
			parse(Line, Data[0], 31, Data[1], 31);
			
			copy(Rangs, 31, Data[0]);
			NeedKills = str_to_num(Data[1]);
		}
	}
	if(file_exists(SkinFile))
	{
		for(new i; i < file_size(SkinFile, 1); i++)
		{
			read_file(SkinFile, i, Line, 127, Len);
			
			if(strlen(Line) < 5 || Line[0] == ';')
				continue;
			
			parse(Line, Data[0], 31, Data[1], 31, Data[2], 47, Data[3], 31);
			
			Weapons[AllWeapon] = str_to_num(Data[0]);
			copy(WeaponNames[AllWeapon], 31, Data[1]);
			
			if(ValidMdl(Data[2])) {
				precache_model(Data[2]);
				copy(WeaponMdls[AllWeapon], 47, Data[2]);
			}
			
			WeaponDrop[AllWeapon] = str_to_num(Data[3]);
			AllWeapon++;
		}
	}
	if(file_exists(DefaultSkinFile))
	{
		for(new i; i < file_size(DefaultSkinFile, 1); i++)
		{
			read_file(DefaultSkinFile, i, Line, 127, Len);
			
			if(strlen(Line) < 5 || Line[0] == ';')
				continue;
			
			parse(Line, Data[0], 31, Data[1], 47);
			
			if(ValidMdl(Data[1])) {
				precache_model(Data[1]);
				copy(DefaultSkin[str_to_num(Data[0])], 47, Data[1]);
			}
		}
	}
}
public plugin_init() {
	register_dictionary("globaloffensive.txt");
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_cvar(PLUGIN, VERSION, FCVAR_SERVER);
	
	register_clcmd("say /menu", "MenuOpen");
	register_clcmd("say /reg", "RegMenu");
	register_clcmd("say /gun", "Guns");
	
	register_concmd("Cost", "MarketCost");
	register_concmd("Gift", "GiftPoint");
	register_concmd("UserPassword", "PlayerPassword");
	
	SayText = get_user_msgid("SayText");
	register_forward(FM_ClientUserInfoChanged, "NameChange");
	RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
	
	for(new i; i < sizeof(eWeapon); i++)
	{
		RegisterHam(Ham_Item_Deploy, eWeapon, "WeaponSwitch", 1);
	}
	
	register_clcmd("say", "Say");
	register_clcmd("say_team", "Say");
	
	set_task(67.3, "Message", 7217, _, _, "b");
}
public Message() 
{
	print_color(0, "!g%s%L", Prefix, LANG_SERVER, "MSG", PLUGIN, VERSION, AUTHOR);
}
/*
public Guns(id) 
{
	if(Choosen[id] < 1)
	{
		Choosen[id] = 0;
		WeaponMenu(id);
	}
}*/
public PlayerSpawn(id) 
{
	if(is_user_alive(id))
	{
		Choosen[id] = 0;
		
		if(user_has_weapon(id, CSW_C4))
		{
			strip_user_weapons(id);
			give_item(id, "weapon_c4");
			give_item(id, "weapon_knife");
			WeaponMenu(id);
			return PLUGIN_HANDLED;
		}
		
		strip_user_weapons(id);
		give_item(id, "weapon_knife");
		WeaponMenu(id);
		
		if(cs_get_user_team(id) == CS_TEAM_CT)
		{
			cs_set_user_defuse(id, 1);
		}
	}
	return PLUGIN_CONTINUE;
}
public Say(id)
{
	new Chat[256], Name[32], cChat[256];
	read_args(Chat, 255);
	remove_quotes(Chat);
	get_user_name(id, Name, 31);
	
	if(strlen(Chat) > 1)
	{
		formatex(cChat, 255, "^4[%s] ^3%s^1: %s", Rangs[Rang[id]], Name, Chat);
	}
	
	ColorChat(0, TEAM_COLOR, cChat);
	return PLUGIN_HANDLED;
}
public MenuOpen(id)
{
	if(!Loged[id])
	{
		RegMenu(id);
		return;
	}
	
	MenuMod[id] = 0;
	Menu(id);
}
public client_death(Killer, Victim)
{
	if(Killer == Victim)
	{
		return PLUGIN_HANDLED;
	}
	
	Kills[Killer]++;
	
	if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 1))
	{
		if(Kills[Killer] >= NeedKills[Rang[Killer]])
			Rang[Killer]++;
	}
	
	new pPont, Name[32];
	
	pPont += random_num(PointsMin, PointsMax);
	Points[Killer] += pPont;
	
	set_hudmessage(255, 255, 255, -1.0, 0.15, 0, 6.0, 2.0);
	show_hudmessage(Killer, "%L", LANG_SERVER, "POINT", pPont);
	
	
	if(Drop >= random_num(1, 100))
	{
		get_user_name(Killer, Name, 31);
		new x = random_num(1, 2);
		if(x == 1)
		{
			pKey[Killer]++;
			print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDKEY", Name);
		}
		if(x == 2)
		{
			Chest[Killer]++;
			print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDCHEST", Name);
		}
	}
	Save(Killer);
	return PLUGIN_CONTINUE;
}
public MarketCost(id)
{
	if(inMarket[id] || !Loged[id])
		return PLUGIN_HANDLED;
		
	new Data[32], Cost;
	read_args(Data, 31);
	remove_quotes(Data);
	
	Cost = str_to_num(Data);
	
	if(Cost < 0)
	{
		client_cmd(id, "messagemode Cost");
		return PLUGIN_HANDLED;
	}
	else if(MarkMin >= Cost)
	{
		print_color(id, "%s %L", Prefix, LANG_SERVER, "NOTENOUGHTMARKET", MarkMin);
		client_cmd(id, "messagemode Cost");
		return PLUGIN_HANDLED;
	}
	else
	{
		MarketPoints[id] = Cost;
		Menu(id);
		MenuMod[id] = 3;
		return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}
public GiftPoint(id)
{
	if(inMarket[id] || !Loged[id])
		return PLUGIN_HANDLED;
		
	new Data[32], Cost;
	read_args(Data, 31);
	remove_quotes(Data);
	
	Cost = str_to_num(Data);
	
	if(Cost < 0 || Points[id] < Cost)
	{
		client_cmd(id, "messagemode Gift");
		return PLUGIN_HANDLED;
	}
	else
	{
		aPoints[id] = Cost;
		Menu(id);
		MenuMod[id] = 5;
		return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}
public WeaponSwitch(Weapon) {
	new id = get_pdata_cbase(Weapon, 41, 4);
	new wid = cs_get_weapon_id(Weapon);
	
	if(id > 32 || id < 1)
	{
		return HAM_SUPERCEDE;
	}
	
	for(new i = 1; i < AllWeapon; i++)
	{
		if(i == UsingWeapon[0][id])
		{
			if(wid == Weapons)
			{
				set_pev(id, pev_viewmodel2, WeaponMdls);
				return HAM_SUPERCEDE;
			}
		}
		else if(i == UsingWeapon[1][id])
		{
			if(wid == Weapons)
			{
				set_pev(id, pev_viewmodel2, WeaponMdls);
				return HAM_SUPERCEDE;
			}
		}
		else if(i == UsingWeapon[2][id])
		{
			if(wid == Weapons)
			{
				set_pev(id, pev_viewmodel2, WeaponMdls);
				return HAM_SUPERCEDE;
			}
		}
		
	}
	if(ValidMdl(DefaultSkin[wid]))
	{
		set_pev(id, pev_viewmodel2, DefaultSkin[wid]);
	}
	return HAM_IGNORED;
}
public ChestOpen(id)
{
	new rWeapon = random_num(1, AllWeapon);
	new rNum = random_num(1, 100);
	
	if(WeaponDrop[rWeapon] >= rNum)
	{
		new Name[32];
		get_user_name(id, Name, 31);
		print_color(id, "!g[CSGO]%L", LANG_SERVER, "FOUNDITEM", Name, WeaponNames[rWeapon]);
		uWeapon[rWeapon][id]++;
		Save(id);
	}
	else
	{
		set_task(0.1, "ChestOpen", id);
	}
}
public Menu(id)
{
	if(!Loged[id])
	{
		RegMenu(id);
		return;
	}
	
	new sMenu, Line[128];
	
	if(MenuMod[id] == -2)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "GIFTCH", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new String[32], All;
		for(new i = 1; i < AllWeapon; i++)
		{
			if(uWeapon[id] == 0)
				continue;
				
			num_to_str(i, String, 31);
			formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
			menu_additem(sMenu, Line, String);
			All++;
		}
		if(Chest[id] > 0)
		{
			formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]);
			menu_additem(sMenu, Line, "101");
			All++;
		}
		if(pKey[id] > 0)
		{
			formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]);
			menu_additem(sMenu, Line, "102");
			All++;
		}
		if(All == 0)
		{
			MenuMod[id] = 0;
			Menu(id);
		}
	}
	else if(MenuMod[id] == -1)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "GIFTCH", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new String[32], All;
		for(new i = 1; i < AllWeapon; i++)
		{
			if(uWeapon[i][id] == 0)
				continue;
				
			num_to_str(i, String, 31);
			formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
			menu_additem(sMenu, Line, String);
			All++;
		}
		if(Chest[id] > 0)
		{
			formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]);
			menu_additem(sMenu, Line, "101");
			All++;
		}
		if(pKey[id] > 0)
		{
			formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]);
			menu_additem(sMenu, Line, "102");
			All++;
		}
		if(All == 0)
		{
			MenuMod[id] = 0;
			Menu(id);
		}
	}
	else if(MenuMod[id] == 0)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MAIN", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		formatex(Line, 127, "%L", LANG_SERVER, "MENUTOSKINS");
		menu_additem(sMenu, Line, "1");
		
		if(!inMarket[id])
		{
			formatex(Line, 127, "%L", LANG_SERVER, "MENUTOCHESTOPEN");
			menu_additem(sMenu, Line, "2");
		}
		else
		{
			formatex(Line, 127, "%L %L",
			LANG_SERVER, "MENUTOCHESTOPEN", LANG_SERVER, "INMARKET");
			menu_additem(sMenu, Line, "0");
		}
		
		formatex(Line, 127, "%L", LANG_SERVER, "MENUTOMARKET");
		menu_additem(sMenu, Line, "3");
		
		if(!inMarket[id])
		{
			formatex(Line, 127, "%L", LANG_SERVER, "MENUTODUSTBIN");
			menu_additem(sMenu, Line, "4");
		}
		else
		{
			formatex(Line, 127, "%L %L",
			LANG_SERVER, "MENUTODUSTBIN", LANG_SERVER, "INMARKET");
			menu_additem(sMenu, Line, "0");
		}
		
		if(!inMarket[id])
		{
			formatex(Line, 127, "%L%L",
			LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "MRANG", Rangs[Rang[id]+1], Kills[id], NeedKills[Rang[id]]);
			menu_additem(sMenu, Line, "5");
		}
		else
		{
			formatex(Line, 127, "%L %L%L",
			LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "INMARKET", LANG_SERVER, "MRANG", Rangs[Rang[id]+1], Kills[id], 

NeedKills[Rang[id]]);
			menu_additem(sMenu, Line, "0");
		}
	}
	else if(MenuMod[id] == 1)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MENUTOSKINS", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new String[32], All;
		for(new i = 1; i < AllWeapon; i++)
		{
			if(uWeapon[i][id] == 0)
				continue;
				
			formatex(String, 31, "%d %d", i, Weapons[i]);
			formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
			menu_additem(sMenu, Line, String);
			All++;
		}
		if(All == 0)
		{
			MenuMod[id] = 0;
			Menu(id);
		}
	}
	else if(MenuMod[id] == 2)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MENUTOCHESTOPEN", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		formatex(Line, 127, "%L", LANG_SERVER, "CHESTSANDKEYS", Chest[id], pKey[id]);
		menu_additem(sMenu, Line, "1");
	}
	else if(MenuMod[id] == 3)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MENUTOMARKET", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new String[32], All;
		if(!inMarket[id])
		{
			for(new i = 1; i < AllWeapon; i++)
			{
				if(i == WeaponinMarket[id] && uWeapon[i][id] > 0)
				{
					formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACES", WeaponNames[i], MarketPoints

[id]);
					All++;
				}
			}
			
			if(101 == WeaponinMarket[id] && Chest[id] > 0)
			{
				formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACEC", MarketPoints[id]);
				All++;
			}
			if(102 == WeaponinMarket[id] && pKey[id] > 0)
			{
				formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACEK", MarketPoints[id]);
				All++;
			}
			
			if(All == 0)
				formatex(Line, 127, "%L", LANG_SERVER, "MARKETPLACECH");
			menu_additem(sMenu, Line, "-1");
		}
		
		if(!inMarket[id])
			formatex(Line, 127, "%L", LANG_SERVER, "TOMARKETM");
		else
			formatex(Line, 127, "%L", LANG_SERVER, "BACKMARKET");
		menu_additem(sMenu, Line, "0");
		
		new Name[32];
		for(new x; x < 32; x++)
		{
			if(!is_user_connected(x))
				continue;
			
			if(inMarket[x] && MarketPoints[x] > 0)
			{
				num_to_str(x, String, 31);
				get_user_name(x, Name, 31);
				if(101 == WeaponinMarket[x])
				{
					formatex(Line, 127, "%L", LANG_SERVER, "SELLERC", Name, MarketPoints[x]);
					menu_additem(sMenu, Line, String);
				}
				else if(102 == WeaponinMarket[x])
				{
					formatex(Line, 127, "%L", LANG_SERVER, "SELLERK", Name, MarketPoints[x]);
					menu_additem(sMenu, Line, String);
				}
				else
				{
					formatex(Line, 127, "%L", LANG_SERVER, "SELLERS", Name, WeaponNames[WeaponinMarket[x]], 

MarketPoints[x]);
					menu_additem(sMenu, Line, String);
				}
			}
		}
	}
	else if(MenuMod[id] == 4)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MENUTODUSTBIN", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new String[32], All;
		for(new i = 1; i < AllWeapon; i++)
		{
			if(uWeapon[i][id] == 0)
				continue;
				
			num_to_str(i, String, 31);
			formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]);
			menu_additem(sMenu, Line, String);
			All++;
		}
		if(All == 0)
		{
			MenuMod[id] = 0;
			Menu(id);
		}
	}
	else if(MenuMod[id] == 5)
	{
		formatex(Line, 127, "%s\r %L %L",
		Prefix, LANG_SERVER, "MENUTOGIFT", LANG_SERVER, "YPOINT", Points[id]);
		sMenu = menu_create(Line, "MenuHandler");
		new All, Name[32], String[32];
		get_user_name(aTarget[id], Name, 31);
		
		if(aTarget[id] > 0 && is_user_alive(aTarget[id]))
		{
			formatex(Line, 127, "%L", LANG_SERVER, "GIFTT", Name);
			menu_additem(sMenu, Line, "-1");
			for(new i = 1; i < AllWeapon; i++)
			{
				if(i == aThing[id] && uWeapon[i][id] > 0)
				{
					formatex(Line, 127, "%L", LANG_SERVER, "GIFTS", WeaponNames[i]);
					menu_additem(sMenu, Line, "-2");
					All++;
				}
			}
			
			if(aThing[id] == 0 && All == 0)
			{
				formatex(Line, 127, "%L", LANG_SERVER, "GIFTCH");
				menu_additem(sMenu, Line, "-2");
			}
			else if(aThing[id] > 100)
			{
				if(101 == aThing[id])
				{
					formatex(Line, 127, "%L", LANG_SERVER, "GIFTC");
				}
				if(102 == aThing[id])
				{
					formatex(Line, 127, "%L", LANG_SERVER, "GIFTK");
				}
				menu_additem(sMenu, Line, "-2");
			}
			
			formatex(Line, 127, "%L", LANG_SERVER, "GIFTPOINTS", aPoints[id]);
			menu_additem(sMenu, Line, "-4");
			formatex(Line, 127, "%L", LANG_SERVER, "SENDGIFT");
			menu_additem(sMenu, Line, "-3");
		}
		else
		{
			for(new i; i < 32; i++)
			{
				if(is_user_connected(i))
				{
					get_user_name(i, Name, 31);
					num_to_str(i, String, 31);
					menu_additem(sMenu, Name, String);
				}
			}
		}
	}
	menu_display(id, sMenu);
}
public MenuHandler(id, gMenu, Key)
{	
	if(Key == MENU_EXIT)
	{
		MenuMod[id] = 0;
		menu_destroy(gMenu);
		return PLUGIN_HANDLED;
	}
	new aMenu[2], Data[4][32], sKey[32], Name[32], mName[32];
	menu_item_getinfo(gMenu, Key, aMenu[0], Data[0], 31, Data[1], 31, aMenu[1]);
	
	parse(Data[0], sKey, 31);
	Key = str_to_num(sKey);
	
	if(MenuMod[id] == -2)
	{
		aThing[id] = Key;
		MenuMod[id] = 5;
		Menu(id);
		return PLUGIN_HANDLED;
	}
	if(MenuMod[id] == -1)
	{
		MenuMod[id] = 3;
		WeaponinMarket[id] = Key;
		client_cmd(id, "messagemode Cost");
		Menu(id);
		return PLUGIN_HANDLED;
	}
	else if(MenuMod[id] == 0)
	{
		MenuMod[id] = Key;
		Menu(id);
		return PLUGIN_HANDLED;
	}
	else if(MenuMod[id] == 1)
	{
		parse(Data[0], Data[2], 31, Data[3], 31);
		
		if(str_to_num(Data[3]) == 16 || str_to_num(Data[3]) == 26)
			UsingWeapon[1][id] = str_to_num(Data[2]);
		else if(str_to_num(Data[3]) == 29)
			UsingWeapon[2][id] = str_to_num(Data[2]);
		else
			UsingWeapon[0][id] = str_to_num(Data[2]);
		return PLUGIN_HANDLED;
	}
	else if(MenuMod[id] == 2)
	{
		if(Key == 1)
		{
			if(Chest[id] > 0 && pKey[id] > 0)
			{
				Chest[id]--;
				pKey[id]--;
				ChestOpen(id);
				Menu(id);
				return PLUGIN_HANDLED;
			}
		}
	}
	else if(MenuMod[id] == 3)
	{
		if(Key == -1)
		{
			MenuMod[id] = -1;
			Menu(id);
			return PLUGIN_HANDLED;
		}
		else if(Key == 0)
		{
			if(inMarket[id])
				inMarket[id] = false;
			else if(MarketPoints[id] > 0)
			{
				get_user_name(id, Name, 31);
				print_color(0, "!g%s%L",
				Prefix, LANG_SERVER, "TOMARKET", Name, WeaponNames[WeaponinMarket[id]], MarketPoints[id]);
				inMarket[id] = true;
			}
			Menu(id);
			return PLUGIN_HANDLED;
		}
		else if(inMarket[Key] && Points[id] >= MarketPoints[Key])
		{
			get_user_name(Key, Name, 31);
			get_user_name(id, mName, 31);
			if(WeaponinMarket[Key] < 101)
			{
				print_color(0, "!g%s%L",
				Prefix, LANG_SERVER, "BUYMARKETITEM",
				mName, WeaponNames[WeaponinMarket[Key]], MarketPoints[Key], Name);
				uWeapon[WeaponinMarket[Key]][id]++;
				uWeapon[WeaponinMarket[Key]][Key]--;
			}
			else if(WeaponinMarket[Key] == 101)
			{
				print_color(0, "!g%s%L",
				Prefix, LANG_SERVER, "BUYMARKETCHEST",
				mName, MarketPoints[Key], Name);
				Chest[id]++;
				Chest[Key]--;
			}
			else if(WeaponinMarket[Key] == 102)
			{
				print_color(0, "!g%s%L",
				Prefix, LANG_SERVER, "BUYMARKETKEY",
				mName, MarketPoints[Key], Name);
				pKey[id]++;
				pKey[Key]--;
			}
			Points[Key] += MarketPoints[Key];
			Points[id] -= MarketPoints[Key];
			Save(Key);
			Save(id);
			inMarket[Key] = false;
			MarketPoints[Key] = 0;
			WeaponinMarket[Key] = 0;
			MenuMod[id] = 0;
		}
	}
	else if(MenuMod[id] == 4)
	{
		uWeapon[Key][id]--;
		Menu(id);
		Save(id);
		return PLUGIN_HANDLED;
	}
	else if(MenuMod[id] == 5)
	{
		if(Key == -1)
		{
			aTarget[id] = 0;
		}
		if(Key == -2)
		{
			MenuMod[id] = -2;
		}
		if(Key == -3)
		{
			if(uWeapon[aThing[id]][id] > 0)
			{
				uWeapon[aThing[id]][aTarget[id]]++;
				uWeapon[aThing[id]][id]--;
				Points[aTarget[id]] += aPoints[id];
				Points[id] -= aPoints[id];
				Save(aTarget[id]);
				Save(id);
				MenuMod[id] = 0;
				aThing[id] = 0;
				aTarget[id] = 0;
				aPoints[id] = 0;
				print_color(id, "!g%s%L",
				Prefix, LANG_SERVER, "GIFTSUCCESS");
			}
		}
		if(Key == -4)
		{
			client_cmd(id, "messagemode Gift");
		}
		if(Key > 0)
			aTarget[id] = Key;
		Menu(id);
		return PLUGIN_HANDLED;
	}
	MenuMod[id] = 0;
	return PLUGIN_CONTINUE;
}
stock print_color(const id, const input[], any:...)
{
	new Count = 1, Players[32];
	static Msg[191];
	vformat(Msg, 190, input, 3);
	
	replace_all(Msg, 190, "!g", "^4");
	replace_all(Msg, 190, "!y", "^1");
	replace_all(Msg, 190, "!t", "^3");

	if(id) Players[0] = id; else get_players(Players, Count, "ch");
	{
		for (new i = 0; i < Count; i++)
		{
			if (is_user_connected(Players[i]))
			{
				message_begin(MSG_ONE_UNRELIABLE, SayText, _, Players[i]);
				write_byte(Players[i]);
				write_string(Msg);
				message_end();
			}
		}
	}
	return PLUGIN_HANDLED;
}
public client_putinserver(id)
{
	Kills[id] = 0, Rang[id] = 0, Points[id] = 0, Choosen[id] = 0, pKey[id] = 0, Chest[id] = 0;
	for(new i; i < AllWeapon; i++)
	{
		uWeapon[i][id] = 0;
	}
	Load(id);
	Password[id] = "";
	SavedPassword[id] = "";
	Loged[id] = false;
}
public Load(id)
{
	if(!is_user_connected(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new pFile, Name[32];
	pFile = fopen(SaveFile, "rt");
	get_user_name(id, Name, 31);
	
	if(pFile)
	{
		new Line[256];
		new LineName[32], tData[5][8], Data[MAX][8];
		
		while(!feof(pFile))
		{
			fgets(pFile, Line, 255);
			
			if(Line[0] == ';' || strlen(Line) < 2)
				continue;
				
			parse(Line, LineName, 31);
			
			if(equal(LineName, Name))
			{
				parse(Line, LineName, 31, tData[0], 7, tData[1], 7, tData[2], 7, tData[3], 7, tData[4], 7,
				Data[0], 7, Data[1], 7, Data[2], 7, Data[3], 7, Data[4], 7, Data[5], 7,
				Data[6], 7, Data[7], 7, Data[8], 7, Data[9], 7, Data[10], 7, Data[11], 7, Data[12], 7,
				Data[13], 7, Data[14], 7, Data[15], 7, Data[16], 7, Data[17], 7, Data[18], 7, Data[19], 7,
				Data[20], 7, Data[21], 7, Data[22], 7, Data[23], 7, Data[24], 7, Data[25], 7, Data[26], 7,
				Data[27], 7, Data[28], 7, Data[29], 7, Data[30], 7, Data[31], 7, Data[32], 7, Data[33], 7,
				Data[34], 7, Data[35], 7, Data[36], 7, Data[37], 7, Data[38], 7, Data[39], 7, Data[40], 7,
				Data[41], 7, Data[42], 7, Data[43], 7, Data[44], 7, Data[45], 7, Data[46], 7, Data[47], 7,
				Data[48], 7, Data[49], 7);
				
				Kills[id] = str_to_num(tData[0]);
				Points[id] = str_to_num(tData[1]);
				pKey[id] = str_to_num(tData[2]);
				Chest[id] = str_to_num(tData[3]);
				Rang[id] = str_to_num(tData[4]);
				
				for(new i; i < MAX; i++)
				{
					uWeapon[i][id] = str_to_num(Data[i]);
				}
				return PLUGIN_HANDLED;
			}
		}
		fclose(pFile);
	}
	return PLUGIN_CONTINUE;
}
public Save(id)
{
	if(!is_user_connected(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new pFile, Name[32];
	pFile = fopen(SaveFile, "rt");
	get_user_name(id, Name, 31);
	
	if(pFile)
	{
		new Line[192], Lines;
		
		new LineName[32], bool:Found;
		
		while(!feof(pFile))
		{
			fgets(pFile, Line, 191);
			
			if(Line[0] == ';' || strlen(Line) < 2)
				continue;
				
			parse(Line, LineName, 31);
			
			if(equal(LineName, Name) && !Found)
			{
				new mLine[256], LoadWeapon[256], String[8];
				
				format(String, 7, "^"%i^" ", Kills[id]);
				add(LoadWeapon, 255, String);
				
				format(String, 7, "^"%i^" ", Points[id]);
				add(LoadWeapon, 255, String);
				
				format(String, 7, "^"%i^" ", pKey[id]);
				add(LoadWeapon, 255, String);
				
				format(String, 7, "^"%i^" ", Chest[id]);
				add(LoadWeapon, 255, String);
				
				format(String, 7, "^"%i^" ", Rang[id]);
				add(LoadWeapon, 255, String);
					
				for(new i; i < MAX; i++)
				{
					format(String, 7, "^"%i^" ", uWeapon[i][id]);
					add(LoadWeapon, 255, String);
				}
				
				formatex(mLine, 255, "^"%s^" %s", Name, LoadWeapon);
				write_file(SaveFile, mLine, Lines);
				Found = true;
				return PLUGIN_HANDLED;
			}
			
			Lines++;
		}
		
		if(!Found)
		{
			new mLine[256], LoadWeapon[256], String[8];
			
			format(String, 7, "^"%i^" ", Kills[id]);
			add(LoadWeapon, 255, String);
			
			format(String, 7, "^"%i^" ", Points[id]);
			add(LoadWeapon, 255, String);
			
			format(String, 7, "^"%i^" ", pKey[id]);
			add(LoadWeapon, 255, String);
			
			format(String, 7, "^"%i^" ", Chest[id]);
			add(LoadWeapon, 255, String);
			
			format(String, 7, "^"%i^" ", Rang[id]);
			add(LoadWeapon, 255, String);
			
			for(new i; i < MAX; i++)
			{
				format(String, 7, "^"%i^" ", uWeapon[i][id]);
				add(LoadWeapon, 255, String);
			}
			
			formatex(mLine, 255, "^"%s^" %s", Name, LoadWeapon);
			write_file(SaveFile, mLine);
			return PLUGIN_HANDLED;
		}
		fclose(pFile);
	}
	return PLUGIN_CONTINUE;
}
public WeaponMenu(id)
{
	new String[128], Name[32];
	format(String, 127, "%s %L", Prefix, LANG_SERVER, "WPM");
	new wMenu = menu_create(String, "wMenuHandler");
	get_user_name(id, Name, 31);
	
	if(Choosen[id] == 0)
	{
		for(new i; i < sizeof(FirstWeaponNames); i++)
		{
			format(String, 127, "%s", FirstWeaponNames[i][0]);
			menu_additem(wMenu, String, FirstWeaponNames[i][1]);
		}
	}
	if(Choosen[id] == 1)
	{
		for(new i; i < sizeof(SecondaryWeaponNames); i++)
		{
			format(String, 127, "%s", SecondaryWeaponNames[i][0]);
			menu_additem(wMenu, String, SecondaryWeaponNames[i][1]);
		}
	}
	
	menu_display(id, wMenu);
}
public wMenuHandler(id, gMenu, item)
{	
	if(item == MENU_EXIT)
	{
		menu_destroy(gMenu);
		return;
	}
	new data[32], name[64];
	new access, callback;
	menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback);
	
	give_item(id, data);
	Choosen[id]++;
	
	if(Choosen[id] >= 2)
		Grenades(id);
		
	WeaponMenu(id);
}
public RegMenu(id)
{
	new String[128], Name[32];
	format(String, 127, "%s %L", Prefix, LANG_SERVER, "RMMAIN");
	new rMenu = menu_create(String, "rMenuHandler");
	get_user_name(id, Name, 31);
	
	format(String, 127, "%L", LANG_SERVER, "RMACCOUNT", Name);
	menu_additem(rMenu, String, "0");
	
	if(!Registered(id))
	{
		format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]);
		menu_additem(rMenu, String, "1");
		
		if(strlen(Password[id]) > 4)
		{
			format(String, 127, "%L", LANG_SERVER, "RMR");
			menu_additem(rMenu, String, "2");
		}
		else
		{
			format(String, 127, "\d%L", LANG_SERVER, "RMR");
			menu_additem(rMenu, String, "0");
		}
	}
	else
	{
		if(!Loged[id])
		{
			format(String, 127, "%L", LANG_SERVER, "RMP", Password[id]);
			menu_additem(rMenu, String, "1");
			
			if(equal(SavedPassword[id], Password[id]))
			{
				format(String, 127, "%L", LANG_SERVER, "RMLOGIN");
				menu_additem(rMenu, String, "3");
			}
			else
			{
				format(String, 127, "\d%L", LANG_SERVER, "RMLOGIN");
				menu_additem(rMenu, String, "0");
			}
		}
		else
		{
			format(String, 127, "%L", LANG_SERVER, "RMLOGOUT");
			menu_additem(rMenu, String, "-1");
		}
	}
	
	menu_display(id, rMenu);
}
public rMenuHandler(id, gMenu, item)
{	
	if(item == MENU_EXIT)
	{
		menu_destroy(gMenu);
		return;
	}
	new data[9], name[64], Key;
	new access, callback;
	menu_item_getinfo(gMenu, item, access, data, charsmax(data), name, charsmax(name), callback);
 
	Key = str_to_num(data);
	
	if(Key == -1)
		ToLogout(id);
	if(Key == 0)
		RegMenu(id);
	if(Key == 1)
	{
		client_cmd(id, "messagemode UserPassword");
		RegMenu(id);
	}
	if(Key == 2)
	{
		print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERSUCCESS", Password[id]);
		Register(id, Password[id]);
		copy(SavedPassword[id], 31, Password[id]);
		Loged[id] = true;
		Menu(id);
	}
	if(Key == 3)
	{
		if(equal(SavedPassword[id], Password[id])) {
			Loged[id] = true;
			print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERLOGIN");
			Menu(id);
		}
	}
}
public ToLogout(id)
{
	if(Loged[id])
	{
		Loged[id] = false;
		Password[id] = "";
		print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERLOGOUT");
	}
}
public PlayerPassword(id)
{
	new Data[32];
	read_args(Data, 31);
	remove_quotes(Data);
	
	if(strlen(Data) < 5)
	{
		print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERSHORT");
		client_cmd(id, "messagemode UserPassword");
		return PLUGIN_HANDLED;
	}
	
	if(Loged[id])
	{
		return PLUGIN_HANDLED;
	}
	
	copy(Password[id], 31, Data);
	RegMenu(id);
	return PLUGIN_CONTINUE;
}
public NameChange(id) 
{
	if(!is_user_connected(id))
		return FMRES_IGNORED;
		
	new OldName[32], NewName[32], Name[32];
	get_user_name(id, Name, 31);
	pev(id, pev_netname, OldName, charsmax(OldName));
	if(OldName[0])
	{
		get_user_info(id, "name", NewName, charsmax(NewName));
		if(!equal(OldName, NewName))
		{
			set_user_info(id, "name", OldName);
			print_color(id, "!g%s%L", Prefix, LANG_SERVER, "REGISTERNAMECHANGE");
			return FMRES_HANDLED;
		}
	}
	return FMRES_IGNORED;
}
stock bool:ValidMdl(Mdl[])
{
	if(containi(Mdl, ".mdl") != -1)
	{
		return true;
	}
	return false;
}
stock bool:Registered(id)
{
	new pFile, Data[2][32], Line[64], Name[32];
	get_user_name(id, Name, 31);
	pFile = fopen(RegisterFile, "rt");
	
	while(!feof(pFile))
	{
		fgets(pFile, Line, 63);
		
		parse(Line, Data[0], 31, Data[1], 31);
		
		if(equal(Data[0], Name))
		{
			copy(SavedPassword[id], 31, Data[1]);
			return true;
		}
	}
	
	fclose(pFile);
	
	return false;
}
stock Register(id, const rSavedPassword[])
{
	new pFile, Line[64], Name[32];
	get_user_name(id, Name, 31);
	pFile = fopen(RegisterFile, "at+");
	format(Line, 63, "^n^"%s^" ^"%s^"", Name, rSavedPassword);
	write_file(RegisterFile, Line);
	fclose(pFile);
}
stock Grenades(id)
{
	give_item(id, "weapon_hegrenade");
	give_item(id, "weapon_smokegrenade");
	give_item(id, "weapon_flashbang");
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/
florin07
Membru, skill 0
Membru, skill 0
Posts: 26
Joined: 07 Aug 2017, 18:44
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: GO.USTRIKE.RO
Fond eXtream: 0
Contact:

14 Aug 2017, 18:30

Tot asa face .
☆ GO.USTRIKE.RO -=[CS:GO COMPETITIVE | !WS !KNIFE !GLOVES]=- WWW.USTRIKE.RO
User avatar
A k c 3 n 7
Super moderator
Super moderator
Posts: 5137
Joined: 25 Aug 2014, 21:31
Detinator Steam: Da
CS Status: who dares wins
SteamID: Jandarmeria
Reputatie: Super moderator
Moderatorul anului 2023
Fost Membru Club eXtreamCS ( o luna )
Fost eXtream Mod
Fost Intermediar
Nume anterior: Sorinel
Fond eXtream: 0
Location: Unknown
Discord: remusakcent
Has thanked: 4 times
Been thanked: 46 times

14 Aug 2017, 18:41

nu are cum l-am testat si la spawn nu mai apare meniul de arme
florin07
Membru, skill 0
Membru, skill 0
Posts: 26
Joined: 07 Aug 2017, 18:44
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: GO.USTRIKE.RO
Fond eXtream: 0
Contact:

14 Aug 2017, 22:06

merge dar nu mai pot baga parola sa ma loghez
☆ GO.USTRIKE.RO -=[CS:GO COMPETITIVE | !WS !KNIFE !GLOVES]=- WWW.USTRIKE.RO
Post Reply

Return to “Probleme la servere dedicate de Counter-Strike”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 82 guests