PLUGIN CSGO DEROID

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

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
d e a l e r -
Membru eXtream
Membru eXtream
Posts: 2462
Joined: 13 Feb 2016, 16:52
Detinator Steam: Da
CS Status: Connection lost
Reputatie: Fost eXtream Mod
Fost Membru Club eXtreamCS (1 luna)
Fond eXtream: 0
Location: Mediaş, Sibiu, România
Discord: dealer1945
Has thanked: 33 times
Been thanked: 79 times
Contact:

10 Aug 2017, 17:58

Salutare.
Am luat pluginul csgo mode a lui Deroid dar nu merge /reg.
Dau sa pun parola, dau enter si nu se pune.

Cod .sma

Code: Select all

#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("Password", "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;
			}
		}
		
	}
	log_amx("%d %s", wid, 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 Password");
		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 Password");
		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 }
*/
RoyalServer 2
User avatar
Emil B.
Membru, skill +3
Membru, skill +3
Posts: 1168
Joined: 05 Oct 2008, 11:33
Detinator Steam: Da
CS Status: ...
Reputatie: Fost moderator ajutator
0.5/3
Fost Membru Club eXtreamCS (doua luni)
Location: Atena, Grecia
Has thanked: 3 times
Been thanked: 6 times

11 Aug 2017, 08:39

Foloseste ultima versiune.
https://forums.alliedmods.net/showthread.php?t=294858

Cat despre /reg, completeaza corect datele bazei de date MySQL in sursa pluginului.
Knowledge is power.
User avatar
d e a l e r -
Membru eXtream
Membru eXtream
Posts: 2462
Joined: 13 Feb 2016, 16:52
Detinator Steam: Da
CS Status: Connection lost
Reputatie: Fost eXtream Mod
Fost Membru Club eXtreamCS (1 luna)
Fond eXtream: 0
Location: Mediaş, Sibiu, România
Discord: dealer1945
Has thanked: 33 times
Been thanked: 79 times
Contact:

11 Aug 2017, 09:15

Emil B. wrote:Foloseste ultima versiune.
https://forums.alliedmods.net/showthread.php?t=294858

Cat despre /reg, completeaza corect datele bazei de date MySQL in sursa pluginului.
A, pai eu nu stiam ca trebuie sa fac cu baza de date :)) d'aia nu mergea.
Mersi mult.
Post Reply

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

  • Information