Raised This Month: $ Target: $400
 0% 

One skin disappears, the other doesn't problem


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Adomaz1
Senior Member
Join Date: Feb 2014
Old 12-15-2015 , 06:16   Re: One skin disappears, the other doesn't problem
Reply With Quote #5


Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#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

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_p228", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade",
	"weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp",
	"weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
	"weapon_ak47", "weapon_knife", "weapon_p90"
};

public plugin_precache() {
	new Line[128], Data[4][48], Len;
	AllWeapon++;
	get_configsdir(Folder, 47);
	format(SkinFile, 47, "%s/csgo/skins.cfg", Folder);
	format(SaveFile, 47, "%s/csgo/save.ini", Folder);
	format(RangFile, 47, "%s/csgo/rangs.cfg", Folder);
	format(RegisterFile, 47, "%s/csgo/reg.ini", Folder);
	format(DefaultSkinFile, 47, "%s/csgo/dskins.cfg", Folder);
	format(Prefix, 31, "[Global Offensive]");
	
	if(file_exists(RangFile))
	{
		for(new i; i < file_size(RangFile, 1); i++)
		{
			read_file(RangFile, i, Line, 127, Len);
			parse(Line, Data[0], 31, Data[1], 31);
			
			copy(Rangs[i], 31, Data[0]);
			NeedKills[i] = str_to_num(Data[1]);
		}
	}
	if(file_exists(SkinFile))
	{
		for(new i; i < file_size(SkinFile, 1); i++)
		{
			read_file(SkinFile, i, Line, 127, Len);
			
			if(strlen(Line) < 5 || Line[0] == ';')
				continue;
			
			parse(Line, Data[0], 31, Data[1], 31, Data[2], 47, Data[3], 31);
			
			Weapons[AllWeapon] = str_to_num(Data[0]);
			copy(WeaponNames[AllWeapon], 31, Data[1]);
			
			if(ValidMdl(Data[2])) {
				precache_model(Data[2]);
				copy(WeaponMdls[AllWeapon], 47, Data[2]);
			}
			
			WeaponDrop[AllWeapon] = str_to_num(Data[3]);
			AllWeapon++;
		}
	}
	if(file_exists(DefaultSkinFile))
	{
		for(new i; i < file_size(DefaultSkinFile, 1); i++)
		{
			read_file(DefaultSkinFile, i, Line, 127, Len);
			
			if(strlen(Line) < 5 || Line[0] == ';')
				continue;
			
			parse(Line, Data[0], 31, Data[1], 47);
			
			if(ValidMdl(Data[1])) {
				precache_model(Data[1]);
				copy(DefaultSkin[str_to_num(Data[0])], 47, Data[1]);
			}
		}
	}
}
public plugin_init() {
	register_dictionary("globaloffensive.txt");
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_cvar(PLUGIN, VERSION, FCVAR_SERVER);
	
	register_clcmd("say /menu", "MenuOpen");
	register_clcmd("say /reg", "RegMenu");
	
	register_concmd("Cost", "MarketCost");
	register_concmd("Gift", "GiftPoint");
	register_concmd("UserPassword", "PlayerPassword");
	
	SayText = get_user_msgid("SayText");
	register_message(get_user_msgid("SayText"),"handleSayText");  
	register_forward(FM_ClientUserInfoChanged, "NameChange");
	
	for(new i; i < sizeof(eWeapon); i++)
	{
		RegisterHam(CurWeapon, eWeapon[i], "WeaponSwitch", 1);
	}
	
	register_clcmd("say", "hundleSayText");
	register_clcmd("say_team", "hundleSayText");
	
	set_task(67.3, "Message", 7217, _, _, "b");
}
public handleSayText(msgId, msgDest, msgEnt){ 
    new id = get_msg_arg_int(1); 
     
    if(is_user_connected(id)){ 
        new szTmp[256], 
        szTmp2[256]; 
         
        get_msg_arg_string(2, szTmp, charsmax(szTmp)); 
         
        new szPrefix[64]  
        formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",Rangs[Rang[id]]);
         
        if(!equal(szTmp, "#Cstrike_Chat_All")){ 
            add(szTmp2, charsmax(szTmp2), szPrefix); 
            add(szTmp2, charsmax(szTmp2), " "); 
            add(szTmp2, charsmax(szTmp2), szTmp); 
        } 
        else{ 
            add(szTmp2, charsmax(szTmp2), szPrefix); 
            add(szTmp2, charsmax(szTmp2), "^x03 %s1^x01 :  %s2"); 
        } 
        set_msg_arg_string(2, szTmp2); 
    } 
    return PLUGIN_CONTINUE; 
}  
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(160, 160, 160, -1.0, 0.15, 2, 0.1, 1);
	show_hudmessage(Killer, "%L", LANG_SERVER, "POINT", pPont);
	
	
	if(Drop >= random_num(1, 100))
	{
		get_user_name(Killer, Name, 31);
		new x = random_num(1, 2);
		if(x == 1)
		{
			pKey[Killer]++;
			print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDKEY", Name);
		}
		if(x == 2)
		{
			Chest[Killer]++;
			print_color(0, "!g%s%L", Prefix, LANG_SERVER, "FOUNDCHEST", Name);
		}
	}
	Save(Killer);
	return PLUGIN_CONTINUE;
}
public MarketCost(id)
{
	if(inMarket[id] || !Loged[id])
		return PLUGIN_HANDLED;
		
	new Data[32], Cost;
	read_args(Data, 31);
	remove_quotes(Data);
	
	Cost = str_to_num(Data);
	
	if(Cost < 0)
	{
		client_cmd(id, "messagemode Cost");
		return PLUGIN_HANDLED;
	}
	else if(MarkMin >= Cost)
	{
		print_color(id, "%s %L", Prefix, LANG_SERVER, "NOTENOUGHTMARKET", MarkMin);
		client_cmd(id, "messagemode Cost");
		return PLUGIN_HANDLED;
	}
	else
	{
		MarketPoints[id] = Cost;
		Menu(id);
		MenuMod[id] = 3;
		return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}
public GiftPoint(id)
{
	if(inMarket[id] || !Loged[id])
		return PLUGIN_HANDLED;
		
	new Data[32], Cost;
	read_args(Data, 31);
	remove_quotes(Data);
	
	Cost = str_to_num(Data);
	
	if(Cost < 0 || Points[id] < Cost)
	{
		client_cmd(id, "messagemode Gift");
		return PLUGIN_HANDLED;
	}
	else
	{
		aPoints[id] = Cost;
		Menu(id);
		MenuMod[id] = 5;
		return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}
public WeaponSwitch(Weapon) {
	new id = get_pdata_cbase(Weapon, 41, 4);
	new wid = cs_get_weapon_id(Weapon);
	
	if(id > 32 || id < 1)
	{
		return HAM_SUPERCEDE;
	}
	
	for(new i = 1; i < AllWeapon; i++)
	{
		if(i == UsingWeapon[0][id])
		{
			if(wid == Weapons[i])
			{
				set_pev(id, pev_viewmodel2, WeaponMdls[i]);
				return HAM_SUPERCEDE;
			}
		}
		else if(i == UsingWeapon[1][id])
		{
			if(wid == Weapons[i])
			{
				set_pev(id, pev_viewmodel2, WeaponMdls[i]);
				return HAM_SUPERCEDE;
			}
		}
		else if(i == UsingWeapon[2][id])
		{
			if(wid == Weapons[i])
			{
				set_pev(id, pev_viewmodel2, WeaponMdls[i]);
				return HAM_SUPERCEDE;
			}
		}
		
	}
	if(ValidMdl(DefaultSkin[wid]))
	{
		set_pev(id, pev_viewmodel2, DefaultSkin[wid]);
	}
	return HAM_IGNORED;
}
public ChestOpen(id)
{
	new rWeapon = random_num(1, AllWeapon);
	new rNum = random_num(1, 100);
	
	if(WeaponDrop[rWeapon] >= rNum)
	{
		new Name[32];
		get_user_name(id, Name, 31);
		print_color(id, "!g[CSGO]%L", LANG_SERVER, "FOUNDITEM", Name, WeaponNames[rWeapon]);
		uWeapon[rWeapon][id]++;
		Save(id);
	}
	else
	{
		set_task(0.1, "ChestOpen", id);
	}
}
public Menu(id)
{
	if(!Loged[id])
	{
		RegMenu(id);
		return;
	}
	
	new sMenu, Line[128];
	
	if(MenuMod[id] == -2)
	{
		formatex(Line, 127, "%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 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);
}
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);
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/

Last edited by Adomaz1; 12-15-2015 at 06:17.
Adomaz1 is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 18:01.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode