Raised This Month: $ Target: $400
 0% 

Level Plugin with AmmoPacks


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
warco
Junior Member
Join Date: Jan 2016
Old 01-11-2016 , 17:34   Level Plugin with AmmoPacks
Reply With Quote #1

Hello, I shall want to put a counter of ammopack on the plugin level, and I have a problem with this, I would want that the ammo pack of the plugin ammopacks.amxx or in the hud of the plugin level and I do not find to make how, I have touch it has everything and the plugin compiles well but the meter stays has 0.

Sorry for my english

Original plugin
Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <cstrike>
#include <fakemeta_util>

#define PLUGIN "New Level System"
#define VERSION "1.3"
#define AUTHOR "Pl0x"

new g_level_max, g_level_num, g_levels[32] 
new g_level[32], g_level_data, g_frags_level, g_ScreenFade,SymbolsName
new level_exp[32]
new g_level_exp[32], g_exp_data, g_Players, nameid[32]
new g_trime[32], g_MsgSync
new sound_level_up[] = { "LeveL/level.wav"}
const PEV_SPEC_TARGET = pev_iuser2
new SaveSystem

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	SaveSystem = register_cvar("fr_SaveSystem","1")
	
	
	g_frags_level =  register_cvar("fr_level_frags", "20")
	g_level_max  = register_cvar("fr_level_max", "200")
	g_level_num =  register_cvar("fr_level_number", "1")
		
	g_level_data = nvault_open("fr_Leveling_Save")
	g_exp_data = nvault_open("fr_Exp_Save")
				
	SymbolsName = register_cvar("fr_name_symbols", "`")
	
	register_forward(FM_ClientUserInfoChanged, "ChangeName")
					
	register_event("StatusValue","show_status","be","1=2","2!0");
	register_event("StatusValue","show_statusx","be","1=2","2!0");
	register_event("HLTV", "Round_Start", "a", "1=0", "2=0")
	register_event("DeathMsg", "Frags_Manager", "a", "1>0")    
	set_task(2.0,"System_Save",_,_,_,"b")
	
	g_ScreenFade = get_user_msgid( "ScreenFade" )
	g_Players =get_maxplayers()	
	g_MsgSync = CreateHudSyncObj()
}

 



//------| Change Name |------//
public ChangeName(id, buffer) {
	if(!is_user_connected(id))
	return FMRES_IGNORED;

	static Name[32], Val[32];
	get_user_name(id, Name, sizeof Name - 1);
	engfunc(EngFunc_InfoKeyValue, buffer, "name", Val, sizeof Val - 1);
	
	if(equal(Val, Name))
	return FMRES_IGNORED;
	
	set_task(0.2, "client_connect", id);
	return FMRES_SUPERCEDE;
	}
	

public client_putinserver(id)
{

	if(get_pcvar_num(SaveSystem))
	System_Load(id)
	g_level_exp[id] = get_pcvar_num(g_frags_level)
	new name[32]
	g_trime[id] = false;
	nameid[id] = get_user_name(id, name, sizeof name - 1)
	if(is_user_alive(id))
	{
		g_trime[id] = false;
		new n = 1;
		while( n != g_level[id] )
		{
			n = n + 1;
		}
	}
	if( g_level[id] == 0) g_level[id] = 1;
	if( level_exp[id] == g_level[id] ) level_exp[id] = 0;
	if(g_level[id] < get_pcvar_num(g_level_num))
		g_levels[id] = get_pcvar_num(g_level_num);
	else
	{
		if(g_level[id] != g_levels[id])
		{
			new x = 1;
			while( g_level[id] > ( x * get_pcvar_num(g_level_num)) )
			{
				x = x + 1;
				g_levels[id] = x * get_pcvar_num(g_level_num);
			}
		}
	}
	new y = 1;
	while( g_level[id] != y )
	{
		y = y + 1;
		g_level_exp[id] = y * get_pcvar_num(g_frags_level);
	}
}

public client_connected(id) {
	System_Load(id)
	}
public client_authorized(id) {
	System_Load(id)
	}	
public client_disconnect(id){
	
	System_Save(id)
	remove_task(id)	
	new name[32], player_nick[32]
	player_nick[id] = get_user_name(id, name, sizeof name - 1)
	if(player_nick[id] == nameid[id])
	g_trime[id] = false;

	static sName[32];
	get_user_name(id, sName, sizeof sName - 1);
	static sChars[32];
	get_pcvar_string(SymbolsName, sChars, sizeof sChars - 1);	
	for(new i = 0 ; i < strlen(sName) ; i++) {
	for(new j = 0 ; j < strlen(sChars) ; j++) {
	if(sName[i] == sChars[j]) {
	server_cmd("kick #%d ^"Votre nom contient des caractères illégaux.^"", get_user_userid(id));
	break;
	}
	}
	}
}

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

// Load System After Unpause The Plugin
public plugin_unpause()
{
	new iPlayers[32], iNum
	get_players(iPlayers, iNum)
	for(new i; i<iNum; i++)
		System_Load(iPlayers[i])
}
public System_Save(id){
	new key[64], data[256], data_exp[256], key_exp[64]
	new name[33]
	get_user_name(id,name,32)
	
	format(key, 63, "%s-/", name)
	format(data, 255, "%i#", g_level[id])
	
	format(key_exp, 63, "%s-/", name)
	format(data_exp, 255, "%i#", level_exp[id])			
	
	nvault_set(g_level_data, key, data)
	nvault_set(g_exp_data, key_exp, data_exp)
	
	return PLUGIN_CONTINUE;

}

public System_Load(id)
{

	new key[64], data[256], data_exp[256], key_exp[64]
	new name[33]
	get_user_name(id,name,32)
	
	format(key, 63, "%s-/", name)
	format(data, 255, "%i#", g_level[id])
	
	format(key_exp, 63, "%s-/", name)
	format(data_exp, 255, "%i#", level_exp[id])
		
	nvault_get(g_level_data, key, data, 255)
	nvault_get(g_exp_data, key_exp, data_exp, 255)
	
	replace_all(data, 255, "#", " ")
	replace_all(data_exp, 255, "#", " ")
	
	new givelevel[32], give_exp[32]
	parse(data, givelevel, 31)
	parse(data_exp, give_exp, 31)

	g_level[id] = str_to_num(givelevel)
	level_exp[id] = str_to_num(give_exp)
		
	set_task(1.0 ,"level_status", id, _, _, "b")
	return PLUGIN_CONTINUE;	
}
/*------------------------------------- Level System ---------------------------------------------------------*/
public Round_Start()
{
for(new id=1;id<=g_Players;id++)
	set_task(3.0, "Level", id)
	
}

public Level(id)
{
	if(is_user_alive(id) )
	{
		g_trime[id] = false;
		new n = 1;
		while( n < g_level[id] )
		{
			n = n + 1
		}
	}
}

public Frags_Manager()
{
	new aname[32], attacker; attacker = read_data(1)
	new y; y = 1;
	get_user_name(attacker, aname, sizeof aname - 1)
	if( ( level_exp[attacker] >= (g_level_exp[attacker] - 1) ) && (g_level[attacker] <= get_pcvar_num(g_level_max)) && is_user_alive(attacker) )
	{
		g_level[attacker] = g_level[attacker] + 1;
		level_exp[attacker] = 0;
		while( g_level[attacker] != y )
		{
			y = y + 1;
			g_level_exp[attacker] = y * get_pcvar_num(g_frags_level);
		}
		message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, _, attacker)
		write_short(1<<12) // duration
		write_short(1) // hold time
		write_short(0x0000) // fade type
		write_byte(1) // red
		write_byte(200) // green
		write_byte(0) // blue
		write_byte(205) // alpha
		message_end()
		emit_sound(attacker, CHAN_STREAM, sound_level_up, 1.0, ATTN_NORM, 0, PITCH_HIGH )
		set_hudmessage(0, 200, 0, 0.65, 0.5, 0, 0.0, 3.0, 2.0, 1.0, -1)
		show_hudmessage(0, "%s has cut down %i level", aname, g_level[attacker])
		System_Save(attacker);
	}
	else
	{		
		if(g_level[attacker] == get_pcvar_num(g_level_max))
		Chat9olor(attacker, "^x04you have reached a maximum level: ^4%i", g_level[attacker] )
		level_exp[attacker] = level_exp[attacker] + 1;
		if(get_pcvar_num(SaveSystem))
		System_Save(attacker);
	}
}

/*-----------------------------------------Hud Message----------------------------------------------------------*/

public level_status(id)
{
	new Spec
	Spec = pev(id, PEV_SPEC_TARGET)
	new PlayerName[32]
	get_user_name(Spec, PlayerName, 31)
	 
	if(is_user_alive(id))
	{
		
	if(cs_get_user_team(id) == CS_TEAM_CT)
	{
	set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1)
	ShowSyncHudMsg(id, g_MsgSync, " [ Health: %d | Armor: %d | Money: %d ]^n [ Level : %i - Exp : %i/%i ]",get_user_health(id),get_user_armor(id),cs_get_user_money(id),g_level[id],level_exp[id],g_level_exp[id])
	}
	
	if(cs_get_user_team(id) == CS_TEAM_T)
	{
	set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1)
	ShowSyncHudMsg(id, g_MsgSync, "[ Health: %d | Armor: %d | Money: %d ]^n [ Level : %i | Exp : %i/%i ]",get_user_health(id),get_user_armor(id),cs_get_user_money(id),g_level[id],level_exp[id],g_level_exp[id])
	}	
	
	}
	
	else 
	
	if(is_user_alive(Spec)) // When Spectating Someone.
	{
		
	if(cs_get_user_team(id) == CS_TEAM_CT)
	{		
	set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
	ShowSyncHudMsg(id, g_MsgSync, "Spectating: %s [ Level : %d ] - [ Exp %d/%d ] ^n [ Class : Counter-Terrorist ]",PlayerName,g_level[Spec],level_exp[Spec],g_level_exp[Spec])
	}
	
	if(cs_get_user_team(id) == CS_TEAM_T)
	{		
	set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
	ShowSyncHudMsg(id, g_MsgSync, "Spectating: %s  [ Level : %d ] - [ Exp %d/%d ] ^n [ Class : Terrorist ]",PlayerName,g_level[Spec],level_exp[Spec],g_level_exp[Spec])
	}
	
	}
}
public show_status(id)
{
    	new name[32],pid = read_data(2) // When Aiming Someone (enemy/friend)
    	get_user_name(pid,name,31)
	new idAiming, iBodyPart
	get_user_aiming(id, idAiming, iBodyPart)
	
	if(is_user_alive(idAiming) && is_user_alive(id)) 
	{
		if(cs_get_user_team(id) == CS_TEAM_CT && cs_get_user_team(idAiming) == CS_TEAM_CT)
		{
			set_hudmessage(238,201,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
			show_hudmessage(id, "%s ^n[ Health: %d | Armor: %d | Money: %d ]^n [ Level : %i - Exp : %i/%i ]", name,get_user_health(pid),get_user_armor(pid),cs_get_user_money(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
		}
		else 
		if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_T)
		{
			set_hudmessage(255,0,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
			show_hudmessage(id, "%s ^n [ Health: %d | Armor: %d | Money: %d ]^n [ Level : %i | Exp : %i/%i ]", name,get_user_health(pid),get_user_armor(pid),cs_get_user_money(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
		}
	}
}
public show_statusx(id)
{
    	new name[32],pid = read_data(2)
    	get_user_name(pid,name,31)
	new idAiming, iBodyPart
	get_user_aiming(id, idAiming, iBodyPart)
    
	if(is_user_alive(idAiming) && is_user_alive(id)) 
	{
		if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_CT)
		{
			set_hudmessage(238, 201, 0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
			show_hudmessage(id, "%s ^n [ Health: %d | Armor: %d | Money: %d ]^n [ Level : %i | Exp : %i/%i ]", name,get_user_health(pid),get_user_armor(pid),cs_get_user_money(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
		}
	}
}
stock Chat9olor(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, get_user_msgid("SayText"), _, players[ i ] )  
			write_byte( players[ i ] )
			write_string( msg )
			message_end( )
		}
	}
}
}
Plugin modified by me
Code:
#include <amxmodx>
#include <amxmisc>
#include <nVault>
#include <fun>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN "New Level System"
#define VERSION "1.3"
#define AUTHOR "Pl0x"

/*----------------------------------- added by me --------------------------------------*/
new ammo_packi[32]
new nazwa_gracza[32]
new vault, g_vault
/*-----------------------------------------------------------------------------------------*/

new g_level_max, g_level_num, g_levels[32] 
new g_level[32], g_level_data, g_frags_level, g_ScreenFade,SymbolsName
new level_exp[32]
new g_level_exp[32], g_exp_data, g_Players, nameid[32]
new g_trime[32], g_MsgSync
new sound_level_up[] = { "LeveL/level.wav"}
const PEV_SPEC_TARGET = pev_iuser2
new SaveSystem

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	SaveSystem = register_cvar("fr_SaveSystem","1")
	
	g_frags_level =  register_cvar("fr_level_frags", "20")
	g_level_max  = register_cvar("fr_level_max", "200")
	g_level_num =  register_cvar("fr_level_number", "1")
		
	g_level_data = nvault_open("fr_Leveling_Save")
	g_exp_data = nvault_open("fr_Exp_Save")
				
	SymbolsName = register_cvar("fr_name_symbols", "`")
	
	register_forward(FM_ClientUserInfoChanged, "ChangeName")
					
	register_event("StatusValue","show_status","be","1=2","2!0");
	register_event("StatusValue","show_statusx","be","1=2","2!0");
	register_event("HLTV", "Round_Start", "a", "1=0", "2=0")
	register_event("DeathMsg", "Frags_Manager", "a", "1>0")    
	set_task(2.0,"System_Save",_,_,_,"b")
	
	g_ScreenFade = get_user_msgid( "ScreenFade" )
	g_Players =get_maxplayers()	
	g_MsgSync = CreateHudSyncObj()
	

/*----------------------------------- added by me --------------------------------------*/
	RegisterHam(Ham_Spawn,"player","spwn")
		
	if(get_pcvar_num(vault))
		g_vault=nvault_open("Base_Builder")
}

public spwn(id){
	if(task_exists(id+241)) remove_task(id+241)
	set_task(0.6,"pokaz_packi",id+241,_,_,"b")
}
public zapisz_dane(id){
	
	new vaultkey[64],vaultdata[64] 
	
	format(vaultkey,63,"%s-bb",nazwa_gracza[id]) 
	
	format(vaultdata,63,"%d",ammo_packi[id])
	
	nvault_set(g_vault,vaultkey,vaultdata) 
    
	return PLUGIN_CONTINUE
}
public wczytaj_dane(id){
	
	new vaultkey[64],vaultdata[256]
	
	format(vaultkey,63,"%s-bb",nazwa_gracza[id])
	format(vaultdata,255,"%d",ammo_packi[id])
	
	nvault_get(g_vault,vaultkey,vaultdata,255) // pobieramy dane
	 
	ammo_packi[id]=str_to_num(vaultdata)
	    	   
	return PLUGIN_CONTINUE
}
/*-----------------------------------------------------------------------------------------*/

//------| Change Name |------//
public ChangeName(id, buffer) {
	if(!is_user_connected(id))
	return FMRES_IGNORED;

	static Name[32], Val[32];
	get_user_name(id, Name, sizeof Name - 1);
	engfunc(EngFunc_InfoKeyValue, buffer, "name", Val, sizeof Val - 1);
	
	if(equal(Val, Name))
	return FMRES_IGNORED;
	
	set_task(0.2, "client_connect", id);
	return FMRES_SUPERCEDE;
	}
	

public client_putinserver(id)
{

	if(get_pcvar_num(SaveSystem))
	System_Load(id)
	g_level_exp[id] = get_pcvar_num(g_frags_level)
	new name[32]
	g_trime[id] = false;
	nameid[id] = get_user_name(id, name, sizeof name - 1)
	if(is_user_alive(id))
	{
		g_trime[id] = false;
		new n = 1;
		while( n != g_level[id] )
		{
			n = n + 1;
		}
	}
	if( g_level[id] == 0) g_level[id] = 1;
	if( level_exp[id] == g_level[id] ) level_exp[id] = 0;
	if(g_level[id] < get_pcvar_num(g_level_num))
		g_levels[id] = get_pcvar_num(g_level_num);
	else
	{
		if(g_level[id] != g_levels[id])
		{
			new x = 1;
			while( g_level[id] > ( x * get_pcvar_num(g_level_num)) )
			{
				x = x + 1;
				g_levels[id] = x * get_pcvar_num(g_level_num);
			}
		}
	}
	new y = 1;
	while( g_level[id] != y )
	{
		y = y + 1;
		g_level_exp[id] = y * get_pcvar_num(g_frags_level);
	}
}

public client_connected(id) {
	System_Load(id)

/*----------------------------------- added by me --------------------------------------*/
	get_user_name(id,nazwa_gracza[id],63)
	if(get_pcvar_num(vault)==1)
/*-----------------------------------------------------------------------------------------*/

		wczytaj_dane(id)
	}
public client_authorized(id) {
	System_Load(id)
	}	
public client_disconnect(id){
	
	System_Save(id)
	remove_task(id)	
	new name[32], player_nick[32]
	player_nick[id] = get_user_name(id, name, sizeof name - 1)
	if(player_nick[id] == nameid[id])
	g_trime[id] = false;
	static sName[32];
	get_user_name(id, sName, sizeof sName - 1);
	static sChars[32];
	get_pcvar_string(SymbolsName, sChars, sizeof sChars - 1);	
	for(new i = 0 ; i < strlen(sName) ; i++) {
	for(new j = 0 ; j < strlen(sChars) ; j++) {
	if(sName[i] == sChars[j]) {
	server_cmd("kick #%d ^"Votre nom contient des caractères illégaux.^"", get_user_userid(id));
	break;
	}
	}
/*----------------------------------- added by me --------------------------------------*/
	if(get_pcvar_num(vault)==1)
		zapisz_dane(id)
	ammo_packi[id]=0

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

// Load System After Unpause The Plugin
public plugin_unpause()
{
	new iPlayers[32], iNum
	get_players(iPlayers, iNum)
	for(new i; i<iNum; i++)
		System_Load(iPlayers[i])
}
public System_Save(id){
	new key[64], data[256], data_exp[256], key_exp[64]
	new name[33]
	get_user_name(id,name,32)
	
	format(key, 63, "%s-/", name)
	format(data, 255, "%i#", g_level[id])
	
	format(key_exp, 63, "%s-/", name)
	format(data_exp, 255, "%i#", level_exp[id])			
	
	nvault_set(g_level_data, key, data)
	nvault_set(g_exp_data, key_exp, data_exp)
	
	return PLUGIN_CONTINUE;

}

public System_Load(id)
{

	new key[64], data[256], data_exp[256], key_exp[64]
	new name[33]
	get_user_name(id,name,32)
	
	format(key, 63, "%s-/", name)
	format(data, 255, "%i#", g_level[id])
	
	format(key_exp, 63, "%s-/", name)
	format(data_exp, 255, "%i#", level_exp[id])
		
	nvault_get(g_level_data, key, data, 255)
	nvault_get(g_exp_data, key_exp, data_exp, 255)
	
	replace_all(data, 255, "#", " ")
	replace_all(data_exp, 255, "#", " ")
	
	new givelevel[32], give_exp[32]
	parse(data, givelevel, 31)
	parse(data_exp, give_exp, 31)

	g_level[id] = str_to_num(givelevel)
	level_exp[id] = str_to_num(give_exp)
		
	set_task(1.0 ,"level_status", id, _, _, "b")
	return PLUGIN_CONTINUE;	
}
/*------------------------------------- Level System ---------------------------------------------------------*/
public Round_Start()
{
for(new id=1;id<=g_Players;id++)
	set_task(3.0, "Level", id)
	
}

public Level(id)
{
	if(is_user_alive(id) )
	{
		g_trime[id] = false;
		new n = 1;
		while( n < g_level[id] )
		{
			n = n + 1
		}
	}
}

public Frags_Manager()
{
	new aname[32], attacker; attacker = read_data(1)
	new y; y = 1;
	get_user_name(attacker, aname, sizeof aname - 1)
	if( ( level_exp[attacker] >= (g_level_exp[attacker] - 1) ) && (g_level[attacker] <= get_pcvar_num(g_level_max)) && is_user_alive(attacker) )
	{
		g_level[attacker] = g_level[attacker] + 1;
		level_exp[attacker] = 0;
		while( g_level[attacker] != y )
		{
			y = y + 1;
			g_level_exp[attacker] = y * get_pcvar_num(g_frags_level);
		}
		message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, _, attacker)
		write_short(1<<12) // duration
		write_short(1) // hold time
		write_short(0x0000) // fade type
		write_byte(1) // red
		write_byte(200) // green
		write_byte(0) // blue
		write_byte(205) // alpha
		message_end()
		emit_sound(attacker, CHAN_STREAM, sound_level_up, 1.0, ATTN_NORM, 0, PITCH_HIGH )
		set_hudmessage(0, 200, 0, 0.65, 0.5, 0, 0.0, 3.0, 2.0, 1.0, -1)
		show_hudmessage(0, "%s has cut down %i level", aname, g_level[attacker])
		System_Save(attacker);
	}
	else
	{		
		if(g_level[attacker] == get_pcvar_num(g_level_max))
		Chat9olor(attacker, "^x04you have reached a maximum level: ^4%i", g_level[attacker] )
		level_exp[attacker] = level_exp[attacker] + 1;
		if(get_pcvar_num(SaveSystem))
		System_Save(attacker);
	}
}

/*-----------------------------------------Hud Message----------------------------------------------------------*/

public level_status(id)
{
	new Spec
	Spec = pev(id, PEV_SPEC_TARGET)
	new PlayerName[32]
	get_user_name(Spec, PlayerName, 31)
	 
	if(is_user_alive(id))
	{
		
	if(cs_get_user_team(id) == CS_TEAM_CT)
	{
	set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1)
	ShowSyncHudMsg(id, g_MsgSync, " Health: %d | Class: Human | Armor: %d | Ammo packs: %d ]^n  Level : %i - Exp : %i/%i ",get_user_health(id),get_user_armor(id),ammo_packi[id],g_level[id],level_exp[id],g_level_exp[id])
	}
	
	if(cs_get_user_team(id) == CS_TEAM_T)
	{
	set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1)
	ShowSyncHudMsg(id, g_MsgSync, " Health: %d | Class: Zombie | Armor: %d | Ammo packs: %d ]^n  Level : %i | Exp : %i/%i ",get_user_health(id),get_user_armor(id),ammo_packi[id],g_level[id],level_exp[id],g_level_exp[id])
	}	
	
	}
	
	else 
	
	if(is_user_alive(Spec)) // When Spectating Someone.
	{
		
	if(cs_get_user_team(id) == CS_TEAM_CT)
	{		
	set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
	ShowSyncHudMsg(id, g_MsgSync, "Spectating: %s  Class: Human ^n Level : %d - Exp %d/%d ^n ",PlayerName,g_level[Spec],level_exp[Spec],g_level_exp[Spec])
	}
	
	if(cs_get_user_team(id) == CS_TEAM_T)
	{		
	set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
	ShowSyncHudMsg(id, g_MsgSync, "Spectating: %s  Class: Zombie ^n Level : %d - Exp %d/%d  ",PlayerName,g_level[Spec],level_exp[Spec],g_level_exp[Spec])
	}
	
	}
}
public show_status(id)
{
    	new name[32],pid = read_data(2) // When Aiming Someone (enemy/friend)
    	get_user_name(pid,name,31)
	new idAiming, iBodyPart
	get_user_aiming(id, idAiming, iBodyPart)
	
	if(is_user_alive(idAiming) && is_user_alive(id)) 
	{
		if(cs_get_user_team(id) == CS_TEAM_CT && cs_get_user_team(idAiming) == CS_TEAM_CT)
		{
			set_hudmessage(238,201,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
			show_hudmessage(id, "%s ^n Health: %d | Class: Human | Armor: %d %d ^n  Level : %i - Exp : %i/%i ", name,get_user_health(pid),get_user_armor(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
		}
		else 
		if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_T)
		{
			set_hudmessage(255,0,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
			show_hudmessage(id, "%s ^n Health: %d | Class: Zombie | Armor: %d ^n  Level : %i | Exp : %i/%i ", name,get_user_health(pid),get_user_armor(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
		}
	}
}
public show_statusx(id)
{
    	new name[32],pid = read_data(2)
    	get_user_name(pid,name,31)
	new idAiming, iBodyPart
	get_user_aiming(id, idAiming, iBodyPart)
    
	if(is_user_alive(idAiming) && is_user_alive(id)) 
	{
		if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_CT)
		{
			set_hudmessage(238, 201, 0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
			show_hudmessage(id, "%s ^n  Health: %d | Armor: %d | Ammo packs: %d ^n  Level : %i | Exp : %i/%i ", name,get_user_health(pid),get_user_armor(pid),ammo_packi[pid],g_level[pid],level_exp[pid],g_level_exp[pid])
		}
	}
}
stock Chat9olor(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, get_user_msgid("SayText"), _, players[ i ] )  
			write_byte( players[ i ] )
			write_string( msg )
			message_end( )
		}
	}
}
}
Plugin ammopacks
Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <nVault>
#include <basebuilder>

#define PLUGIN "BB ammo_packs"
#define VERSION "1.0"
#define AUTHOR "G[o]Q"

new mKup_przedmiot // Menu
new mcbKup_przedmiot // Menu Callback

const AP_HANDLED=120 

new ammo_packi[33]
new liczba_itemow
new pack_bonus,pack_bonus2,vault

new Array:nazwy_itemow
new Array:teamy_itemow
new Array:koszta_itemow

new kup_item

new g_vault

new nazwa_gracza[33][64]

public plugin_init() {
	
	register_clcmd("say /buy","pokaz_menu")
	register_clcmd("say /ammoshop","pokaz_menu")
	register_clcmd("say /shop2","pokaz_menu")
	register_concmd("bb_give_ammo","cmd_daj_ap",ADMIN_RCON,"<Nick> <Ilosc>") // za davane ammo
	
	register_clcmd("","use_command_4_item")
		
	register_clcmd("say","use_command_4_item")
	
	nazwy_itemow=ArrayCreate(64,1);
	teamy_itemow=ArrayCreate(1,1);
	koszta_itemow=ArrayCreate(1,1);
	
	cache_comands_first()
	//cache_comands_second()
	
	set_task(1.0,"cache_comands_second")
	
	register_event("DeathMsg", "DeathMsg", "a")
	register_event("Damage", "Damage", "b", "2!=0")
	
	RegisterHam(Ham_Spawn,"player","spwn")
	
	pack_bonus=register_cvar("BB_ammo_per_kill","4")  // 
	pack_bonus2=register_cvar("BB_ammo_per_dmg","9999999999999999999") //  
	vault=register_cvar("BB_save_ap","1") 
	
	if(get_pcvar_num(vault))
		g_vault=nvault_open("Base_Builder")
	
	kup_item = CreateMultiForward("wybrano_item", ET_CONTINUE, FP_CELL, FP_CELL) //wybrano_item(id,item_id)
	
}
public cache_comands_first(){
	new linijka=0,text[128],chars
	static configdir[64],plik[128]

	get_configsdir(configdir,63)
	formatex(plik,127,"%s/bb-commands.ini",configdir)
	
	
	do{
		linijka = read_file(plik,linijka,text,127,chars)
		if((text[0]==';') || !chars) continue 
		register_clcmd(text,"pokaz_menu")
	}
	while(linijka!=0)
	
}

public cache_comands_second(){
	new name_item[33]
	new komenda[33]
	new size=ArraySize(teamy_itemow)
	
	for(new i=0;i<size;i++){
		ArrayGetString(nazwy_itemow,i,name_item,32)
		replace_all(name_item,32,"+","")
		register_clcmd(name_item,"use_command_4_item")
		format(komenda,33,"say %s",name_item)
		register_clcmd(komenda,"use_command_4_item")
		
	}
	return PLUGIN_CONTINUE
}
public use_command_4_item(id){
	new param[3][33],name_item[33]
	new result,team
	read_argv(0, param[0], 32)
	read_argv(1, param[1], 32)
	new size=ArraySize(teamy_itemow)
	
	for(new i=0;i<size;i++){
		
		ArrayGetString(nazwy_itemow,i,name_item,32)
		replace_all(name_item,32,"+","")
		
		team=ArrayGetCell(teamy_itemow,i)
		
		if((equal(param[1],name_item)) || (equal(param[0],name_item))){
			if(!team || team==get_user_team(id)){
				ExecuteForward(kup_item, result, id, i);
		
				if(result>=AP_HANDLED){
					return PLUGIN_HANDLED
				}
		
				new koszt =ArrayGetCell(koszta_itemow,i)
		
				kup(id,koszt)
			}
		}
			
	
	}
	return PLUGIN_CONTINUE
}
public client_connect(id){
	get_user_name(id,nazwa_gracza[id],63)
	if(get_pcvar_num(vault)==1)
		wczytaj_dane(id)
}
public client_disconnect(id){
	if(get_pcvar_num(vault)==1)
		zapisz_dane(id)
	ammo_packi[id]=0
}
public DeathMsg()
{
	new kid = read_data(1)	//zabojca
	new vid = read_data(2)	// ofiara
	
	ammo_packi[kid]+=get_pcvar_num(pack_bonus)
	if(task_exists(vid+241)) remove_task(vid+241)
}
public Damage(id)
{
	new damage = read_data(2)
	new kid = get_user_attacker(id)	// Gracz atakujacy
	if(kid==id || !kid || !is_user_alive(kid)) return PLUGIN_HANDLED
	while(damage>=get_pcvar_num(pack_bonus2)){
		damage-=get_pcvar_num(pack_bonus2)
		ammo_packi[kid]+=1
	}
	return PLUGIN_CONTINUE
	
}
public pokaz_packi(id){
	id-=241
	
	new text[128]
	set_hudmessage(255, 255, 255, 0.0, 0.90, 0, 12.0, 12.0)
	show_hudmessage(id, "Ammo: %d", ammo_packi[id])
	message_begin(MSG_ONE,get_user_msgid("StatusText"),{0,0,0}, id) 
	write_byte(0) 
	write_string(text) 
	message_end() 
}
public spwn(id){
	if(task_exists(id+241)) remove_task(id+241)
	set_task(0.6,"pokaz_packi",id+241,_,_,"b")
}

public dodaj_item(const nazwa[],koszt,team){ //team 1 - TT 2 - CT
	
	param_convert(1)
	
	ArrayPushString(nazwy_itemow, nazwa);
	ArrayPushCell(teamy_itemow, team);
	ArrayPushCell(koszta_itemow,koszt);
	liczba_itemow++
	return liczba_itemow-1
}

public pokaz_menu(id){
	if(!is_user_alive(id)){
		client_print(id,print_chat,"You have to be alive activated users the shop!")
		return PLUGIN_HANDLED
	}
	
	
	mKup_przedmiot = menu_create("Buy items", "mh_Kup_przedmiot")
	mcbKup_przedmiot = menu_makecallback("mcb_Kup_przedmiot")
	
	new size=ArraySize(koszta_itemow)
	for(new i=0;i<size;i++){
		static text[128],nazwa[33],koszt,team,teams[16]
		
		ArrayGetString(nazwy_itemow,i,nazwa,32)
		koszt=ArrayGetCell(koszta_itemow,i)
		team=ArrayGetCell(teamy_itemow,i)
		
		
		
		switch(team){
			case 0:{
				teams="ALL"
			}
			case 1:{
				teams="ZOMBIE"
			}
			case 2:{
				teams="HUMAN"
			}
		}
		
		if(team!=get_user_team(id) && team!=0) 
			format(text,127,"%s - only for %s ",nazwa,teams)
		else format(text,127,"%s - \y%d\w (%s)",nazwa,koszt,teams)
		menu_additem(mKup_przedmiot, text,"ma_Kup_prezdmiot", ADMIN_ALL, mcbKup_przedmiot)
	}
	menu_display(id, mKup_przedmiot, 0) 
	
	return PLUGIN_CONTINUE
}
public kup(id,koszt){
	
	ammo_packi[id]-=koszt
}
public mh_Kup_przedmiot(id, menu, item) {
	
	new result
	if(item>-1){
		ExecuteForward(kup_item, result, id, item);
	
		if(result>=AP_HANDLED){
			menu_destroy(menu)
			return PLUGIN_HANDLED
		}
	
		new koszt =ArrayGetCell(koszta_itemow,item)
	
		kup(id,koszt)
		menu_destroy(menu)
	}
	return PLUGIN_CONTINUE
}


public ma_Kup_prezdmiot(id){}
public mcb_Kup_przedmiot(id, menu, item) {
	new team=ArrayGetCell(teamy_itemow,item)
	
	if(ammo_packi[id]<ArrayGetCell(koszta_itemow,item) || (get_user_team(id)!=team && team>0)) return ITEM_DISABLED
	return ITEM_ENABLED

}
public plugin_natives(){
	register_native("dodaj_extra_item", "dodaj_item", 1)
	register_native("BB_get_user_ap", "get_ap",1)
	register_native("BB_set_user_ap", "set_ap",1)
}
public get_ap(id){
	return ammo_packi[id]
}
public set_ap(id,ammount){
	ammo_packi[id]=ammount
}

public zapisz_dane(id){
	
	new vaultkey[64],vaultdata[64] 
	
	
	
	format(vaultkey,63,"%s-bb",nazwa_gracza[id]) 
	
	format(vaultdata,63,"%d",ammo_packi[id])
	
	nvault_set(g_vault,vaultkey,vaultdata) 
    
	return PLUGIN_CONTINUE
}

public wczytaj_dane(id){
	
	new vaultkey[64],vaultdata[256]
	
	format(vaultkey,63,"%s-bb",nazwa_gracza[id])
	format(vaultdata,255,"%d",ammo_packi[id])
	
	nvault_get(g_vault,vaultkey,vaultdata,255) // pobieramy dane
	 
	ammo_packi[id]=str_to_num(vaultdata)
	    	   
	return PLUGIN_CONTINUE
}
public cmd_daj_ap(id,level,cid){
	if(is_user_connected(id)){
		new name[32], count[32]
		read_argv(1, name, 31)
		read_argv(2, count, 31)
	
		new ilosc=str_to_num(count)
		new player = cmd_target(id, name, CMDTARGET_ALLOW_SELF)
		
		ammo_packi[player]+=ilosc
		
	}
	return PLUGIN_HANDLED
}

Last edited by warco; 01-11-2016 at 17:43.
warco is offline
 


Thread Tools
Display Modes

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 09:22.


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