Cerere modificare plugin

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori

Post Reply
User avatar
Hobby.dll
Membru, skill 0
Membru, skill 0
Posts: 2
Joined: 06 Aug 2018, 18:33
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

06 Aug 2018, 18:38

| Afiseaza codul
/*	Formatright © 2013, Jhob94

	Buy VIP With Points is free plugin
	You can redistribute it and/or modify it under the terms of the
	GNU General Public License as published by the Free Software Foundation.

	This plugin is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this Plugin Source; if not, write to the
	Free Software Foundation, Inc., 59 Temple Place - Suite 330,
	Boston, MA 02111-1307, USA.
*/

/*	CREDITS:
	- AMX MOD X DEVELOPMENT TEAM
	- ConnorMcLeod for optimize players menu
	
	What you need for run this plugin?
	- Maybe the question is more what you cant run. Amxbans or other type of admin manager that is from AMX MOD X plugins Base
	- You should use last oficial amx version. At Moment is 1.8.2
	- If new amx version is realeased, i will probably need update this plugin. So if you will update your AMXX, you should update this one too.
*/

// Uncomment for SQL version
// #define USING_SQL

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <nvault>
#if defined USING_SQL
#include <sqlx>
#endif

#define MESSAGE_PREFIX "AMXX"

#define VIP_FLAGS_TYPE "ce" // Dont Change This
#define VIP_PASSWORD "" // Dont Change This
#define VIP_FLAGS_ACESS "t" // VIP Flags (You Can Use More Then 1 BUT You Should Use Only One)

new SavePoints, Point_Kill, Point_Hs, Point_Suicide, Point_TeamKill, VIP_Cost
new g_vault
new PlayerPoints[33]

public plugin_init() {
#if defined USING_SQL
	register_plugin("Buy VIP With Points (SQL)", "0.0.4", "Jhob94")
#else
	register_plugin("Buy VIP With Points", "0.0.4", "Jhob94")
#endif

	register_event("DeathMsg", "eDeath", "a")
	
	SavePoints = register_cvar("SavePoints","1") // Turn 0 To Desativate Save Points Option
	Point_Kill = register_cvar("Points_kill", "1") // Points That You Get Per Normal Kill
	Point_Hs = register_cvar("Points_kill_hs","2") // Points That You Get Per HS Kill
	Point_Suicide = register_cvar("Points_suicide","1") // Points That You Lose Per Suicide
	Point_TeamKill = register_cvar("Points_teamkill","1") // Points That You Lose Per TeamKill
	VIP_Cost = register_cvar("Points_VIP_Cost","500") // How Many Points VIP Cost?
	
	register_concmd("amx_givepoints", "admin_give_points", ADMIN_LEVEL_A, "<user> <amount> : Give Points To Someone")
	register_concmd("amx_removepoints", "admin_remove_points", ADMIN_LEVEL_A, "<user> <amount> : Remove Points From Someone")
	
	register_clcmd("say /addvip", "cmdVIPAdd", ADMIN_RCON)
	register_clcmd("say_team /addvip", "cmdVIPAdd", ADMIN_RCON)
	
	register_clcmd("say /points", "show_points")
	register_clcmd("say_team /points", "show_points")
	register_clcmd("say /mypoints", "show_points")
	register_clcmd("say_team /mypoints", "show_points")
	
	register_clcmd("say /buyvip", "buy_vip")
	register_clcmd("say_team /buyvip", "buy_vip")
	
	g_vault = nvault_open("vip_points_system")
}

// Save Points When Pausing The Plugin
public plugin_pause()
{
	new iPlayers[32], iNum
	get_players(iPlayers, iNum)
	for(new i; i<iNum; i++)
		SaveData(iPlayers)
}

// Load Points After Unpause The Plugin
public plugin_unpause()
{
	new iPlayers[32], iNum
	get_players(iPlayers, iNum)
	for(new i; i<iNum; i++)
		LoadData(iPlayers)
}

// Load Points
public client_putinserver(id)
{
	PlayerPoints[id] = 0
	if(get_pcvar_num(SavePoints))
		LoadData(id)
}

// Give Points When Kill Someone
public eDeath() 
{
	new attacker = read_data(1)
	new victim = read_data(2)
	new headshot = read_data(3)
 
	if(cs_get_user_team(attacker) != cs_get_user_team(victim)) // Kill Enemie
	{
		if(!headshot)
			PlayerPoints[attacker] += get_pcvar_num(Point_Kill)
	
		else
			PlayerPoints[attacker] += get_pcvar_num(Point_Hs)
	}
	
	else
	{
		if(attacker == victim) // Suicide
		{
			if(PlayerPoints[attacker] > get_pcvar_num(Point_Suicide))
				PlayerPoints[attacker] -= get_pcvar_num(Point_Suicide)
				
			else
				PlayerPoints[attacker] = 0
		}
		
		else // Team Kill (Not necessary check if friendlyfire is enabled)
		{
			if(PlayerPoints[attacker] > get_pcvar_num(Point_TeamKill))
				PlayerPoints[attacker] -= get_pcvar_num(Point_TeamKill)
					
			else
				PlayerPoints[attacker] = 0
		}
	}
		
	show_points(attacker)
	
	if(get_pcvar_num(SavePoints))
		SaveData(attacker)
}

// Show How Many Points Player Has
public show_points(id)
{
	client_print(id, print_chat, "[%s] You Have Now %d Points!", MESSAGE_PREFIX, PlayerPoints[id])
}

// Check If Can Buy
public buy_vip(id)
{
	if(is_user_admin(id))
		client_print(id, print_chat, "[%s] You Already Have VIP/ADMIN Flags!", MESSAGE_PREFIX)
		
	else
	{
		if(PlayerPoints[id] < get_pcvar_num(VIP_Cost))
			client_print(id, print_chat, "[%s] You Need More %d Points To Can Buy VIP!", MESSAGE_PREFIX, get_pcvar_num(VIP_Cost) - PlayerPoints[id])
		
		else
			buying_vip(id)
	}
}

// Setting User VIP If Could Bought VIP
public buying_vip(id)
{
	new VIP_AuthID[35], VIP_Name[32]
	
	get_user_authid(id,VIP_AuthID,34)
	get_user_name(id,VIP_Name,31)
	
	PlayerPoints[id] -= get_pcvar_num(VIP_Cost)
	AddVIP(id, VIP_AuthID, VIP_FLAGS_ACESS, VIP_PASSWORD, VIP_FLAGS_TYPE, VIP_Name)
	client_print(id, print_chat, "[%s] You Bought VIP. Next Map Your VIP is Activated!", MESSAGE_PREFIX)
	
	if(get_pcvar_num(SavePoints))
		SaveData(id)
}

// Add VIP Via Chat Command
public cmdVIPAdd(id, lvl, cid)
{
	if( !(cmd_access(id, lvl, cid, 0)) )
		return PLUGIN_HANDLED
		
	else
	{
		new iMenu = menu_create("\yAdd VIP:", "cmdVIPAddHandler")
		
		new iPlayers[32], iNum, iPlayer, szPlayerName[32], szUserId[32]

		get_players(iPlayers, iNum)
		for(--iNum; iNum>=0; iNum--)
		{
			iPlayer = iPlayers[iNum]
			get_user_name(iPlayer, szPlayerName, charsmax(szPlayerName))
			formatex(szUserId, charsmax(szUserId), "%d", get_user_userid(iPlayer))
			menu_additem(iMenu, szPlayerName, szUserId, 0)
		}
    
		menu_setprop(iMenu, MPROP_NUMBER_COLOR, "\y")
		menu_display(id, iMenu)
	}
	
	return PLUGIN_HANDLED
}

public cmdVIPAddHandler(id, iMenu, iItem)
{
	if( iItem == MENU_EXIT )
	{
		menu_destroy(iMenu)
		return PLUGIN_HANDLED
	}
	
	new szUserId[32], szPlayerName[32], iPlayer, iCRAP
	menu_item_getinfo(iMenu, iItem, iCRAP, szUserId, charsmax(szUserId), szPlayerName, charsmax(szPlayerName), iPlayer)
	
	if( (iPlayer = find_player("k", str_to_num(szUserId)))  )
	{
		if(is_user_admin(iPlayer))
			client_print(id, print_chat, "[%s] %s is already on users.ini! Go on it and edit him flags..", MESSAGE_PREFIX, szPlayerName)
		
		else
		{
			new szAuthid[32], szAdminName[32]
			get_user_authid(iPlayer, szAuthid, charsmax(szAuthid))
			get_user_name(id, szAdminName, charsmax(szAdminName))
			
			AddVIP(id, szAuthid, VIP_FLAGS_ACESS, VIP_PASSWORD, VIP_FLAGS_TYPE, szPlayerName)
			client_print(iPlayer, print_chat, "[%s] %s added you as VIP. Next map you are VIP.", MESSAGE_PREFIX, szAdminName)
			client_print(id, print_chat, "[%s] You added %s <%s> as VIP. Next map he will be VIP", MESSAGE_PREFIX, szPlayerName, szAuthid)
		}
	}
	
	else
		client_print(id, print_chat, "[%s] %s seems to be disconnected.", MESSAGE_PREFIX, szPlayerName)
	
	menu_destroy(iMenu)
	return PLUGIN_HANDLED
}

// Give Points To Someone
public admin_give_points(id,level,cid)
{
	if(!cmd_access(id,level,cid,3))
		return PLUGIN_HANDLED
	
	else
	{
		new target[32], tid
		read_argv(1,target,31)
		tid = cmd_target(id,target,2)
		
		new amountstr[10], amount
		read_argv(2,amountstr,9)
		amount = str_to_num(amountstr)
		
		new name[32], tname[32]
		get_user_name(id,name,31)
		get_user_name(tid,tname,31)
		
		PlayerPoints[tid] += amount
		client_print(id, print_chat, "[%s] You Gave %d Points To %s", MESSAGE_PREFIX, amount, tname)
		client_print(tid, print_chat, "[%s] %s Gave You %d Points. You Have Now %d Points", MESSAGE_PREFIX, name, amount)
	}
	return PLUGIN_HANDLED
}

// Remove Points From Someone
public admin_remove_points(id,level,cid)
{
	if(!cmd_access(id,level,cid,3))
		return PLUGIN_HANDLED
	
	else
	{
		new target[32], tid
		read_argv(1,target,31)
		tid = cmd_target(id,target,2)
		
		new amountstr[10], amount
		read_argv(2,amountstr,9)
		amount = str_to_num(amountstr)
		
		new name[32], tname[32]
		get_user_name(id,name,31)
		get_user_name(tid,tname,31)
		
		if((PlayerPoints[tid] -= amount) < 0)
			amount = PlayerPoints[tid]
			
		PlayerPoints[tid] -= amount
		client_print(id, print_chat, "[%s] You Removed %d Points From %s", MESSAGE_PREFIX, amount, tname)
		client_print(tid, print_chat, "[%s] %s Removed From You %d Points. You Have Now %d Points", MESSAGE_PREFIX, name, amount)
	}
	return PLUGIN_HANDLED
}

// Save Points
public SaveData(id)
{
	new AuthID[35]
	get_user_authid(id,AuthID,34)

	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s",AuthID)
	format(vaultdata,255,"%i#",PlayerPoints[id])
	nvault_set(g_vault,vaultkey,vaultdata)
}

// Load Points
public LoadData(id)
{
	new AuthID[35]
	get_user_authid(id,AuthID,34)
	
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s",AuthID)
	format(vaultdata,255,"%i#",PlayerPoints[id])
	nvault_get(g_vault,vaultkey,vaultdata,255)
	
	replace_all(vaultdata, 255, "#", " ")
	
	new playerpoints[32]
	
	parse(vaultdata, playerpoints, 31)
	
	PlayerPoints[id] = str_to_num(playerpoints)
}

// CREDITS TO AMX MOD X DEVELOPMENT TEAM
AddVIP(id, auth[], accessflags[], password[], flags[], comment[]="")
{
#if defined USING_SQL
	new error[128], errno

	new Handle:info = SQL_MakeStdTuple()
	new Handle:sql = SQL_Connect(info, errno, error, 127)
	
	if (sql == Empty_Handle)
	{
		server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_CON", error)
		//backup to users.ini
#endif
		// Make sure that the users.ini file exists.
		new configsDir[64]
		get_configsdir(configsDir, 63)
		format(configsDir, 63, "%s/users.ini", configsDir)

		if (!file_exists(configsDir))
		{
			console_print(id, "[%s] File ^"%s^" doesn't exist.", MESSAGE_PREFIX, configsDir)
			return
		}

		// Make sure steamid isn't already in file.
		new line = 0, textline[256], len
		const SIZE = 63
		new line_steamid[SIZE + 1], line_password[SIZE + 1], line_accessflags[SIZE + 1], line_flags[SIZE + 1], parsedParams
		
		// <name|ip|steamid> <password> <access flags> <account flags>
		while ((line = read_file(configsDir, line, textline, 255, len)))
		{
			if (len == 0 || equal(textline, ";", 1))
				continue // comment line

			parsedParams = parse(textline, line_steamid, SIZE, line_password, SIZE, line_accessflags, SIZE, line_flags, SIZE)
			
			if (parsedParams != 4)
				continue	// Send warning/error?
			
			if (containi(line_flags, flags) != -1 && equal(line_steamid, auth))
			{
				console_print(id, "[%s] %s already exists!", MESSAGE_PREFIX, auth)
				return
			}
		}

		// If we came here, steamid doesn't exist in users.ini. Add it.
		new linetoadd[512]
		
		if (comment[0]==0)
		{
			formatex(linetoadd, 511, "^r^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", auth, password, accessflags, flags)
		}
		else
		{
			formatex(linetoadd, 511, "^r^n^"%s^" ^"%s^" ^"%s^" ^"%s^" ; %s", auth, password, accessflags, flags, comment)
		}
		console_print(id, "Adding:^n%s", linetoadd)

		if (!write_file(configsDir, linetoadd))
			console_print(id, "[%s] Failed writing to %s!", MESSAGE_PREFIX, configsDir)
#if defined USING_SQL
	}
	
	new table[32]
	
	get_cvar_string("amx_sql_table", table, 31)
	
	new Handle:query = SQL_PrepareQuery(sql, "SELECT * FROM `%s` WHERE (`auth` = '%s')", table, auth)

	if (!SQL_Execute(query))
	{
		SQL_QueryError(query, error, 127)
		server_print("[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error)
		console_print(id, "[AMXX] %L", LANG_SERVER, "SQL_CANT_LOAD_ADMINS", error)
	} else if (SQL_NumResults(query)) {
		console_print(id, "[%s] %s already exists!", MESSAGE_PREFIX, auth)
	} else {
		console_print(id, "Adding to database:^n^"%s^" ^"%s^" ^"%s^" ^"%s^"", auth, password, accessflags, flags)
	
		SQL_QueryAndIgnore(sql, "REPLACE INTO `%s` (`auth`, `password`, `access`, `flags`) VALUES ('%s', '%s', '%s', '%s')", table, auth, password, accessflags, flags)
	}
	
	SQL_FreeHandle(query)
	SQL_FreeHandle(sql)
	SQL_FreeHandle(info)
#endif
}



As dori ca si Adminii sa poata lua VIP cand tasteaza /buyvip , daca e posibil !
2. Daca e posibil de facut o comanda ex: amx_removepoints all !
IG-BOOST.org - Instagram Followers Best, Cheap, Reliable
User avatar
Laurentiu P.
Super moderator
Super moderator
Posts: 2472
Joined: 10 Jul 2013, 20:26
Detinator Steam: Da
Detinator server CS: Da
Reputatie: Super moderator
Nume anterior: Do[N]e ;3
Location: Constanta
Has thanked: 2 times

12 Mar 2019, 12:05

Image
User avatar
L E V I N
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2148
Joined: 24 Aug 2011, 11:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Has thanked: 73 times
Been thanked: 329 times
Contact:

12 Mar 2019, 18:02

la 2 să dea remove la toți de pe server, sau la toți cei salvați?
Nu-mi mai dați cerere pe Steam doar pentru a mă avea în lista de prieteni, sau să-mi cereți ajutorul(nu fac nimic contracost!), faceți cerere aici.
INACTIV MOMENTAN
Post Reply

Return to “Modificari pluginuri”

  • Information