- #include <amxmodx> 
- #include <amxmisc> 
- #include <fakemeta> 
- #include <hamsandwich> 
- #include <cstrike> 
- #include <colorchat> 
- #include <fun> 
-   
- new const PLUGIN[] = "Global Offensive"; 
- new const VERSION[] = "1.0p"; 
- 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_usp", "weapon_awp", "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" }, 
- 	{ "FAMAS", "weapon_famas" }, 
- 	{ "MP5", "weapon_mp5navy" }, 
- 	{ "SHOTGUN", "weapon_mp3" } 
- }; 
-   
- new const SecondaryWeaponNames[][][] = 
- { 
- 	{ "DEAGLE", "weapon_deagle" }, 
- 	{ "USP", "weapon_usp" } 
- }; 
-   
- public plugin_precache() { 
- 	new Line[128], Data[4][48], Len; 
- 	AllWeapon++; 
- 	get_configsdir(Folder, 47); 
- 	format(SkinFile, 47, "%s/csgo/skins.cfg", Folder); 
- 	format(SaveFile, 47, "%s/csgo/save.ini", Folder); 
- 	format(RangFile, 47, "%s/csgo/rangs.cfg", Folder); 
- 	format(RegisterFile, 47, "%s/csgo/reg.ini", Folder); 
- 	format(DefaultSkinFile, 47, "%s/csgo/dskins.cfg", Folder); 
- 	format(Prefix, 31, "[Global Offensive]"); 
-   
- 	if(file_exists(RangFile)) 
- 	{ 
- 		for(new i; i < file_size(RangFile, 1); i++) 
- 		{ 
- 			read_file(RangFile, i, Line, 127, Len); 
- 			parse(Line, Data[0], 31, Data[1], 31); 
-   
- 			copy(Rangs[i], 31, Data[0]); 
- 			NeedKills[i] = str_to_num(Data[1]); 
- 		} 
- 	} 
- 	if(file_exists(SkinFile)) 
- 	{ 
- 		for(new i; i < file_size(SkinFile, 1); i++) 
- 		{ 
- 			read_file(SkinFile, i, Line, 127, Len); 
-   
- 			if(strlen(Line) < 5) 
- 				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) 
- 				continue; 
-   
- 			parse(Line, Data[0], 31, Data[1], 47); 
-   
- 			if(ValidMdl(Data[1])) { 
- 				precache_model(Data[1]); 
- 				copy(DefaultSkin[str_to_num(Data[0])], 47, Data[1]); 
- 			} 
- 		} 
- 	} 
- } 
- public plugin_init() { 
- 	register_dictionary("globaloffensive.txt"); 
- 	register_plugin(PLUGIN, VERSION, AUTHOR); 
- 	register_cvar(PLUGIN, VERSION, FCVAR_SERVER); 
-   
- 	register_clcmd("say /menu", "MenuOpen"); 
- 	register_clcmd("say /reg", "RegMenu"); 
- 	register_clcmd("say /gun", "Guns"); 
-   
- 	register_concmd("Cost", "MarketCost"); 
- 	register_concmd("Gift", "GiftPoint"); 
- 	register_concmd("UserPassword", "PlayerPassword"); 
-   
- 	SayText = get_user_msgid("SayText"); 
- 	register_forward(FM_ClientUserInfoChanged, "NameChange"); 
- 	RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1); 
-   
- 	for(new i; i < sizeof(eWeapon); i++) 
- 	{ 
- 		RegisterHam(Ham_Item_Deploy, eWeapon[i], "WeaponSwitch", 1); 
- 	} 
-   
- 	register_clcmd("say", "Say"); 
- 	register_clcmd("say_team", "Say"); 
-   
- 	set_task(67.3, "Message", 69); 
- } 
- public Message()  
- { 
- 	print_color(0, "!g%s%L", Prefix, LANG_SERVER, "MSG", PLUGIN, VERSION, AUTHOR); 
- 	set_task(76.9, "Message", 69); 
- } 
- 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); 
- 		} 
- 		else 
- 		{ 
- 			strip_user_weapons(id); 
- 			if(cs_get_user_team(id) == CS_TEAM_CT) 
- 				cs_set_user_defuse(id, 1); 
- 			give_item(id, "weapon_knife"); 
- 			WeaponMenu(id); 
- 		} 
- 	} 
- } 
- 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); 
- 	} 
-   
- 	switch(cs_get_user_team(id)) 
-       	{ 
- 		case 1: ColorChat(0, RED, cChat); 
- 		case 2: ColorChat(0, BLUE, cChat); 
- 		case 3: ColorChat(0, GREY, cChat); 
- 	} 
- 	return PLUGIN_HANDLED; 
- } 
- public MenuOpen(id) 
- { 
- 	//if(!Loged[id]) 
- 	//{ 
- 	//	RegMenu(id); 
- 	//	return; 
- 	//} 
-   
- 	MenuMod[id] = 0; 
- 	Menu(id); 
- } 
- public client_death(Killer, Victim) 
- { 
- 	if(Killer == Victim) 
- 	{ 
- 		return PLUGIN_HANDLED; 
- 	} 
-   
- 	Kills[Killer]++; 
-   
- 	if(Rang[Killer] < sizeof(Rangs) && Rang[Killer] < file_size(RangFile, 1)) 
- 	{ 
- 		if(Kills[Killer] >= NeedKills[Rang[Killer]]) 
- 			Rang[Killer]++; 
- 	} 
-   
- 	new pPont, Name[32]; 
-   
- 	pPont += random_num(PointsMin, PointsMax); 
- 	Points[Killer] += pPont; 
-   
- 	set_hudmessage(255, 255, 255, -1.0, 0.15, 0, 6.0, 2.0); 
- 	show_hudmessage(Killer, "%L", LANG_SERVER, "POINT", pPont); 
-   
-   
- 	if(Drop >= random_num(1, 100)) 
- 	{ 
- 		get_user_name(Killer, Name, 31); 
- 		new x = random_num(1, 2); 
- 		if(x == 1) 
- 		{ 
- 			pKey[Killer]++; 
- 			print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDKEY", Name); 
- 		} 
- 		if(x == 2) 
- 		{ 
- 			Chest[Killer]++; 
- 			print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDCHEST", Name); 
- 		} 
- 	} 
- 	Save(Killer); 
- 	return PLUGIN_CONTINUE; 
- } 
- public MarketCost(id) 
- { 
- 	if(inMarket[id]/* || !Loged[id]*/) 
- 		return PLUGIN_HANDLED; 
-   
- 	new Data[32], Cost; 
- 	read_args(Data, 31); 
- 	remove_quotes(Data); 
-   
- 	Cost = str_to_num(Data); 
-   
- 	if(Cost < 0) 
- 	{ 
- 		client_cmd(id, "messagemode Cost"); 
- 		return PLUGIN_HANDLED; 
- 	} 
- 	else if(MarkMin >= Cost) 
- 	{ 
- 		print_color(id, "%s %L", Prefix, LANG_SERVER, "NOTENOUGHTMARKET", MarkMin); 
- 		client_cmd(id, "messagemode Cost"); 
- 		return PLUGIN_HANDLED; 
- 	} 
- 	else 
- 	{ 
- 		MarketPoints[id] = Cost; 
- 		Menu(id); 
- 		MenuMod[id] = 3; 
- 		return PLUGIN_CONTINUE; 
- 	} 
- 	return PLUGIN_CONTINUE; 
- } 
- public GiftPoint(id) 
- { 
- 	if(inMarket[id]/* || !Loged[id]*/) 
- 		return PLUGIN_HANDLED; 
-   
- 	new Data[32], Cost; 
- 	read_args(Data, 31); 
- 	remove_quotes(Data); 
-   
- 	Cost = str_to_num(Data); 
-   
- 	if(Cost < 0 || Points[id] < Cost) 
- 	{ 
- 		client_cmd(id, "messagemode Gift"); 
- 		return PLUGIN_HANDLED; 
- 	} 
- 	else 
- 	{ 
- 		aPoints[id] = Cost; 
- 		Menu(id); 
- 		MenuMod[id] = 5; 
- 		return PLUGIN_CONTINUE; 
- 	} 
- 	return PLUGIN_CONTINUE; 
- } 
- public WeaponSwitch(Weapon) { 
- 	new id = get_pdata_cbase(Weapon, 41, 4); 
- 	new wid = cs_get_weapon_id(Weapon); 
-   
- 	if(id > 32 || id < 1) 
- 	{ 
- 		return HAM_SUPERCEDE; 
- 	} 
-   
- 	for(new i = 1; i < AllWeapon; i++) 
- 	{ 
- 		if(i == UsingWeapon[0][id]) 
- 		{ 
- 			if(wid == Weapons[i]) 
- 			{ 
- 				set_pev(id, pev_viewmodel2, WeaponMdls[i]); 
- 				return HAM_SUPERCEDE; 
- 			} 
- 		} 
- 		else if(i == UsingWeapon[1][id]) 
- 		{ 
- 			if(wid == Weapons[i]) 
- 			{ 
- 				set_pev(id, pev_viewmodel2, WeaponMdls[i]); 
- 				return HAM_SUPERCEDE; 
- 			} 
- 		} 
- 		else if(i == UsingWeapon[2][id]) 
- 		{ 
- 			if(wid == Weapons[i]) 
- 			{ 
- 				set_pev(id, pev_viewmodel2, WeaponMdls[i]); 
- 				return HAM_SUPERCEDE; 
- 			} 
- 		} 
-   
- 	} 
- 	if(ValidMdl(DefaultSkin[wid])) 
- 	{ 
- 		set_pev(id, pev_viewmodel2, DefaultSkin[wid]); 
- 	} 
- 	return HAM_IGNORED; 
- } 
- public ChestOpen(id) 
- { 
- 	new rWeapon = random_num(1, AllWeapon); 
- 	new rNum = random_num(1, 100); 
-   
- 	if(WeaponDrop[rWeapon] >= rNum) 
- 	{ 
- 		new Name[32]; 
- 		get_user_name(id, Name, 31); 
- 		print_color(id, "!g[CSGO]%L", LANG_SERVER, "FOUNDITEM", Name, WeaponNames[rWeapon]); 
- 		uWeapon[rWeapon][id]++; 
- 		Save(id); 
- 	} 
- 	else 
- 	{ 
- 		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[i][id] == 0) 
- 				continue; 
-   
- 			num_to_str(i, String, 31); 
- 			formatex(Line, 127, "%L", LANG_SERVER, "SKINPIECE", WeaponNames[i], uWeapon[i][id]); 
- 			menu_additem(sMenu, Line, String); 
- 			All++; 
- 		} 
- 		if(Chest[id] > 0) 
- 		{ 
- 			formatex(Line, 127, "%L", LANG_SERVER, "CHESTPIECE", Chest[id]); 
- 			menu_additem(sMenu, Line, "101"); 
- 			All++; 
- 		} 
- 		if(pKey[id] > 0) 
- 		{ 
- 			formatex(Line, 127, "%L", LANG_SERVER, "KEYPIECE", pKey[id]); 
- 			menu_additem(sMenu, Line, "102"); 
- 			All++; 
- 		} 
- 		if(All == 0) 
- 		{ 
- 			MenuMod[id] = 0; 
- 			Menu(id); 
- 		} 
- 	} 
- 	else if(MenuMod[id] == -1) 
- 	{ 
- 		formatex(Line, 127, "%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]); 
- 	} 
- 	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 } 
- */ 
-