cerere plugin hud credite furien

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
User avatar
Rony
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 966
Joined: 11 Mar 2013, 11:43
Detinator Steam: Da
CS Status: CO-FOUNDER BETANO
Detinator server CS: CS1.6 , CS:GO
SteamID: 31r1
Reputatie: Membru Club eXtreamCS (1 luna)
Membru Club eXtreamCs (28 Feb)
Utilizator neserios (tepar)
Location: NAPOLI
Has thanked: 173 times
Been thanked: 66 times
Contact:

14 Sep 2013, 12:21

RoyalServer 2
User avatar
KrAiD.
Fost moderator
Fost moderator
Posts: 866
Joined: 15 Jun 2013, 12:14
Detinator Steam: Da
CS Status: Cat de cat activ :D
Detinator server CS: Nu
Reputatie: Fost Moderator ajutator
0.7 / 3
Has thanked: 14 times
Been thanked: 131 times
Contact:

14 Sep 2013, 12:25

poftim
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csx>
#include <dhudmessage>
#include <fakemeta>
#include <nvault>

#define PLUGIN  "Depozit Mooney"
#define AUTHOR  "Aragon*"
#define VERSION "1.0"

enum (+= 100)
{
	TASK_MESAJHUD
}

#define ID_HUD (taskid - TASK_MESAJHUD)

new PlayerCredits[10000], retrase[33];
new Vault, SymbolsName, savepoints;

public plugin_init() {         
	register_plugin(PLUGIN,VERSION,AUTHOR)
	register_forward(FM_ClientUserInfoChanged, "ChangeName");
	SymbolsName = register_cvar("fr_name_symbols", "`"); 	//| Symbols Name Restricted |//	biohazardshopmod = register_cvar("bh_shop_mode", "1");		//| Money/Points 0 Money Tax -> 1 Points Tax |//
	savepoints = register_cvar("fr_save_points", "1");	//| Save Points Mode 0 Disable -> 1 Name -> 2 IP -> 3 SteamID |//
	register_clcmd("depozit","Depozit")
	register_logevent("round_start", 2, "1=Round_Start")
	register_clcmd("say /depozit","Depozit")
	register_clcmd("say_team /depozit","Depozit")
	register_clcmd("retrage","Retrage")
	register_clcmd("say /retrage","Retrage")
	register_clcmd("say_team /retrage","Retrage")
	register_clcmd("credite","Show_Credits")
	register_clcmd("credite","Show_Credits")
	register_clcmd("say /credite","Show_Credits")
	register_clcmd("say /credite","Show_Credits")
	register_clcmd("say_team /credite","Show_Credits")
	register_clcmd("say_team /credite","Show_Credits")
	register_concmd("amx_give_credits", "Give_Credits", ADMIN_IMMUNITY, "Name/@T/@CT/@All -> Amount");
	register_concmd("amx_reset_credits", "Reset_Credits", ADMIN_IMMUNITY, "Name/@T/@CT/@All");
	}
public plugin_natives() {
	register_native("get_user_credits", "get_user_credits", 1);
	register_native("set_user_credits", "set_user_credits", 1);
}
public set_user_credits(id, credits) {
	PlayerCredits[id] = credits;
	SaveCredits(id)
	}
public get_user_credits(id) {
	return PlayerCredits[id]
	}
public client_putinserver(id) {
	LoadCredits(id)
	retrase[id] = 0
	set_task(180.0, "give_credits", id, _, _, "b")
	set_task(1.0, "MesajHUD", id+TASK_MESAJHUD, _, _, "b")
	}
public client_authorized(id) {
	LoadCredits(id)
	}
public client_connected(id) {
	LoadCredits(id)
	}
public client_disconnect(id) {
	SaveCredits(id)
	remove_task(id)
	retrase[id] = 0
	remove_task(id+TASK_MESAJHUD)
	}
	
public give_credits(id)
{
	ColorChat(id, "^x03[FURIEN]^x04 Ai primit^x03 15 credite^x04 pentru ca ai jucat 5 minute.");
	ColorChat(id, "^x03[FURIEN]^x04 Joaca cat mai mult si acumulezi credite in prostie.");
	PlayerCredits[id] += 15
}

public bomb_planted(id)
{
	new nume[32];
	get_user_name(id, nume, 31)
	PlayerCredits[id] += 10
	ColorChat(0, "^x03[FURIEN]^x04 Pentru plantarea bombei,^x03 %s^x04 a primit 10 credite.", nume);
}

public bomb_explode(id)
{
	new nume[32];
	get_user_name(id, nume, 31)
	PlayerCredits[id] += 20
	ColorChat(0, "^x03[FURIEN]^x04 Pentru explodarea bombei,^x03 %s^x04 a primit 20 credite.", nume);
}

public bomb_defused(id)
{
	new nume[32];
	get_user_name(id, nume, 31)
	PlayerCredits[id] += 30
	ColorChat(0, "^x03[FURIEN]^x04 Pentru dezamorsarea bombei,^x03 %s^x04 a primit 30 credite.", nume);
}

public round_start()
{
	static id;
	for (id = 1; id <= get_maxplayers(); id++)
	{
		if(is_user_alive(id))
		{
			retrase[id] = 0
		}
	}
}

public MesajHUD(taskid)
{
	static id
	id = ID_HUD;
	
	if(!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if(!is_user_alive(id))
			return;
	}
	
	if(id != ID_HUD)
	{
		new nume[32];
		get_user_name(id, nume, 31)
		set_dhudmessage(200, 100, 150, 0.0, 0.52, 0, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_HUD, "%s^nViata: %d | Credite: %d", nume, pev(id, pev_health), PlayerCredits[id])
	}
	else
	{
		set_dhudmessage(0, 100, 250, 0.0, 0.885, 0, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_HUD, "^nViata: %d | Credite: %d", pev(ID_HUD, pev_health), PlayerCredits[id])
	}
}
	
//------| 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;
	}
	
//------| Client connect |------//	
public client_connect(id) {
	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 == sChars[j]) {
	server_cmd("kick #%d ^"Numele tau contine caractere nepermise.^"", get_user_userid(id));
	break;
	}
	else {
	LoadCredits(id);
	}
	}
	}
	}
	
public Depozit(id) {
	if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) return PLUGIN_HANDLED;
	
	if(cs_get_user_money(id) == 16000) {
	ColorChat(id, "^x03[FURIEN]^x04 Ai depus^x03 $ 16000^x04 si ai primit^x03 un credit^x04.");
	PlayerCredits[id] += 1;
	cs_set_user_money(id, 0);
	}
	else {
	ColorChat(id, "^x03[FURIEN]^x04 Nu ai^x03 $ 16000^x04.");	
	}
	SaveCredits(id)
	return PLUGIN_HANDLED;
	}
	
public Retrage(id) 
{
	if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
		return PLUGIN_HANDLED;

	if(cs_get_user_money(id) == 16000) 
	{
		ColorChat(id, "^x03[FURIEN]^x04 Ai deja^x03 $ 16000^x04.");
	}
	else if(PlayerCredits[id]) 
	{
		if(retrase[id] < 3)
		{
			ColorChat(id, "^x03[FURIEN]^x04 Ai retras^x03 un credit^x04 si ai primit^x03 $ 16000^x04.");
			PlayerCredits[id] -= 1;
			cs_set_user_money(id, 16000);
			retrase[id]++
		}
		else
		{
			ColorChat(id, "^x03[FURIEN]^x04 Ai retras runda asta deja^x03 3 credite^x04. Incearca runda viitoare.");
		}
	}
	else 
	{
		ColorChat(id, "^x03[FURIEN]^x04 Ai nevoie de^x03 un credit^x04 pentru a retrage.");	
	}
	SaveCredits(id)
	return PLUGIN_HANDLED;
}
	
public Show_Credits(id) {
	set_hudmessage(0, 128, 0, 0.03, 0.86, 2, 6.0, 5.0);
	show_hudmessage(id, "Ai %d credite.", PlayerCredits[id]);
	ColorChat(id, "^x03[FURIEN]^x04 Ai^x03 %d^x04 credite.", PlayerCredits[id]);
	return PLUGIN_HANDLED;
	}
	
public Give_Credits(id, level, cid) {
	if(!cmd_access(id, level, cid, 2)) {
	return PLUGIN_HANDLED;
	}
	new arg[23], gplayers[32], num, i, players, name[32];
	get_user_name(id, name, 31);
	read_argv(1, arg, 23);
	new give_credits[5];
	read_argv(2, give_credits, charsmax(give_credits));
	new Credits = str_to_num(give_credits);
	if(equali(arg, "@T")) {
	get_players(gplayers, num, "e", "TERRORIST");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] += Credits;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 le-a dat^x03 %i credite^x04 tuturor^x03 Furienilor.", Credits);
	case 2: ColorChat(0, "^x03%s^x04 le-a dat^x03 %i credite^x04 tuturor^x03 Furienilor.", name, Credits);
	}
	}
	else if(equali(arg, "@CT")) {
	get_players(gplayers, num, "e", "CT");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] += Credits;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 le-a dat^x03 %i credite^x04 tuturor^x03 Anti-Furienilor.", Credits);
	case 2: ColorChat(0, "^x03%s^x04 le-a dat^x03 %i credite^x04 tuturor^x03 Anti-Furienilor.", name, Credits);
	}
	}
	if(equali(arg, "@All")) {
	get_players(gplayers, num, "a");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] += Credits;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 le-a dat^x03 %i credite^x04 tuturor^x03 jucatorilor.", Credits);
	case 2: ColorChat(0, "^x03%s^x04 a dat^x03 %i credite ^x03 jucatorilor.", name, Credits);
	}
	}
	new player = cmd_target(id, arg, 11);
	if(!player) {
	return PLUGIN_HANDLED;
	}
	PlayerCredits[player] += Credits;
	SaveCredits(id)
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(player, "^x03Adminul^x04 ti-a dat^x03 %i credite.", Credits);
	case 2: ColorChat(player, "^x03%s^x04 ti-a dat^x03 %i credite.", name, Credits);
	}
	return PLUGIN_HANDLED;
	}
	
public Reset_Credits(id, level, cid) {
	if(!cmd_access(id, level, cid, 2)) {
	return PLUGIN_HANDLED;
	}
	new arg[23], gplayers[32], num, i, players, name[32];
	get_user_name(id, name, 31);
	read_argv(1, arg, 23);
	if(equali(arg, "@T")) {
	get_players(gplayers, num, "e", "TERRORIST");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] = 0;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 a luat^x03 creditele^x04 tuturor^x03 Furienilor.");
	case 2: ColorChat(0, "^x03%s^x04 a luat^x03 creditele^x04 tuturor^x03 Furienilor.", name);
	}
	}
	
	else if(equali(arg, "@CT")) {
	get_players(gplayers, num, "e", "CT");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] = 0;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 a luat^x03 creditele^x04 tuturor^x03 Anti-Furienilor.");
	case 2: ColorChat(0, "^x03%s^x04 a luat^x03 creditele^x04 tuturor^x03 Anti-Furienilor.", name);
	}
	}
	if(equali(arg, "@All")) {
	get_players(gplayers, num, "a");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] = 0;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 a luat^x03 creditele^x04 tuturor^x03 jucatorilor.");
	case 2: ColorChat(0, "^x03%s^x04 a luatx03 creditele^x04 tuturor^x03 jucatorilor.", name);
	}
	}
	new player = cmd_target(id, arg, 11);
	if(!player) {
	return PLUGIN_HANDLED;
	}
	PlayerCredits[player] = 0;
	SaveCredits(id)
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(player, "^x03Adminul^x04 ti-a luat^x03 creditele.");
	case 2: ColorChat(player, "^x03%s^x04 ti-a luat^x03 creditele.", name);
	}
	return PLUGIN_HANDLED;
	}
	
//------| Save Credits |------//
public SaveCredits(id) {
	Vault = nvault_open("DepozitCredits");
	new data_credits[256], key_credits[64];
	switch( get_pcvar_num(savepoints) ) { 
	case 1:  { 
	new name[33];
	get_user_name(id,name,32);
	format(key_credits, 63, "%s-/", name);
		}
	case 2: {
	new player_ip[33];
	get_user_ip(id,player_ip,32);
	format(key_credits, 63, "%s-/", player_ip);
	}
	case 3: {
	new steam_ID[33];
	get_user_authid(id,steam_ID,32);
	format(key_credits, 63, "%s-/", steam_ID);
	}
	}
	format(data_credits, 255, "%i#", PlayerCredits[id]);
	nvault_set(Vault, key_credits, data_credits);
	return PLUGIN_CONTINUE;
	}
//------| Loading Credits |------//
public LoadCredits(id) {
	Vault = nvault_open("DepozitCredits");
	new data_credits[256], key_credits[64];
	switch( get_pcvar_num(savepoints) )  { 
	case 1:  { 
	new name[33];
	get_user_name(id,name,32);
	format(key_credits, 63, "%s-/", name);
	}
	case 2: {
	new player_ip[33];
	get_user_ip(id,player_ip,32);
	format(key_credits, 63, "%s-/", player_ip);
	}
	case 3: {
	new steam_ID[33];
	get_user_authid(id,steam_ID,32);
	format(key_credits, 63, "%s-/", steam_ID);
	}
	}
	format(data_credits, 255, "%i#", PlayerCredits[id]);
	nvault_get(Vault, key_credits, data_credits, 255);
	replace_all(data_credits, 255, "#", " ");

	new Credits[32];
	parse(data_credits, Credits, 31);
	PlayerCredits[id] = str_to_num(Credits);
	return PLUGIN_CONTINUE;
	} 
	
stock ColorChat(const id, const input[], any:...) {
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
 
	replace_all(msg, 190, "!x04", "^4");
	replace_all(msg, 190, "!x01", "^1");
	replace_all(msg, 190, "!x03", "^3");
 
	if(id) players[0] = id;
	else get_players(players, count, "ch"); {
	for(new i = 0; i < count; i++) {
	if(is_user_connected(players)) {
	message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
	write_byte(players);
	write_string(msg);
	message_end();
	}
	}
	} 
	}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
User avatar
Rony
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 966
Joined: 11 Mar 2013, 11:43
Detinator Steam: Da
CS Status: CO-FOUNDER BETANO
Detinator server CS: CS1.6 , CS:GO
SteamID: 31r1
Reputatie: Membru Club eXtreamCS (1 luna)
Membru Club eXtreamCs (28 Feb)
Utilizator neserios (tepar)
Location: NAPOLI
Has thanked: 173 times
Been thanked: 66 times
Contact:

14 Sep 2013, 12:27

KrAiD. wrote:poftim
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csx>
#include <dhudmessage>
#include <fakemeta>
#include <nvault>

#define PLUGIN  "Depozit Mooney"
#define AUTHOR  "Aragon*"
#define VERSION "1.0"

enum (+= 100)
{
	TASK_MESAJHUD
}

#define ID_HUD (taskid - TASK_MESAJHUD)

new PlayerCredits[10000], retrase[33];
new Vault, SymbolsName, savepoints;

public plugin_init() {         
	register_plugin(PLUGIN,VERSION,AUTHOR)
	register_forward(FM_ClientUserInfoChanged, "ChangeName");
	SymbolsName = register_cvar("fr_name_symbols", "`"); 	//| Symbols Name Restricted |//	biohazardshopmod = register_cvar("bh_shop_mode", "1");		//| Money/Points 0 Money Tax -> 1 Points Tax |//
	savepoints = register_cvar("fr_save_points", "1");	//| Save Points Mode 0 Disable -> 1 Name -> 2 IP -> 3 SteamID |//
	register_clcmd("depozit","Depozit")
	register_logevent("round_start", 2, "1=Round_Start")
	register_clcmd("say /depozit","Depozit")
	register_clcmd("say_team /depozit","Depozit")
	register_clcmd("retrage","Retrage")
	register_clcmd("say /retrage","Retrage")
	register_clcmd("say_team /retrage","Retrage")
	register_clcmd("credite","Show_Credits")
	register_clcmd("credite","Show_Credits")
	register_clcmd("say /credite","Show_Credits")
	register_clcmd("say /credite","Show_Credits")
	register_clcmd("say_team /credite","Show_Credits")
	register_clcmd("say_team /credite","Show_Credits")
	register_concmd("amx_give_credits", "Give_Credits", ADMIN_IMMUNITY, "Name/@T/@CT/@All -> Amount");
	register_concmd("amx_reset_credits", "Reset_Credits", ADMIN_IMMUNITY, "Name/@T/@CT/@All");
	}
public plugin_natives() {
	register_native("get_user_credits", "get_user_credits", 1);
	register_native("set_user_credits", "set_user_credits", 1);
}
public set_user_credits(id, credits) {
	PlayerCredits[id] = credits;
	SaveCredits(id)
	}
public get_user_credits(id) {
	return PlayerCredits[id]
	}
public client_putinserver(id) {
	LoadCredits(id)
	retrase[id] = 0
	set_task(180.0, "give_credits", id, _, _, "b")
	set_task(1.0, "MesajHUD", id+TASK_MESAJHUD, _, _, "b")
	}
public client_authorized(id) {
	LoadCredits(id)
	}
public client_connected(id) {
	LoadCredits(id)
	}
public client_disconnect(id) {
	SaveCredits(id)
	remove_task(id)
	retrase[id] = 0
	remove_task(id+TASK_MESAJHUD)
	}
	
public give_credits(id)
{
	ColorChat(id, "^x03[FURIEN]^x04 Ai primit^x03 15 credite^x04 pentru ca ai jucat 5 minute.");
	ColorChat(id, "^x03[FURIEN]^x04 Joaca cat mai mult si acumulezi credite in prostie.");
	PlayerCredits[id] += 15
}

public bomb_planted(id)
{
	new nume[32];
	get_user_name(id, nume, 31)
	PlayerCredits[id] += 10
	ColorChat(0, "^x03[FURIEN]^x04 Pentru plantarea bombei,^x03 %s^x04 a primit 10 credite.", nume);
}

public bomb_explode(id)
{
	new nume[32];
	get_user_name(id, nume, 31)
	PlayerCredits[id] += 20
	ColorChat(0, "^x03[FURIEN]^x04 Pentru explodarea bombei,^x03 %s^x04 a primit 20 credite.", nume);
}

public bomb_defused(id)
{
	new nume[32];
	get_user_name(id, nume, 31)
	PlayerCredits[id] += 30
	ColorChat(0, "^x03[FURIEN]^x04 Pentru dezamorsarea bombei,^x03 %s^x04 a primit 30 credite.", nume);
}

public round_start()
{
	static id;
	for (id = 1; id <= get_maxplayers(); id++)
	{
		if(is_user_alive(id))
		{
			retrase[id] = 0
		}
	}
}

public MesajHUD(taskid)
{
	static id
	id = ID_HUD;
	
	if(!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if(!is_user_alive(id))
			return;
	}
	
	if(id != ID_HUD)
	{
		new nume[32];
		get_user_name(id, nume, 31)
		set_dhudmessage(200, 100, 150, 0.0, 0.52, 0, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_HUD, "%s^nViata: %d | Credite: %d", nume, pev(id, pev_health), PlayerCredits[id])
	}
	else
	{
		set_dhudmessage(0, 100, 250, 0.0, 0.885, 0, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_HUD, "^nViata: %d | Credite: %d", pev(ID_HUD, pev_health), PlayerCredits[id])
	}
}
	
//------| 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;
	}
	
//------| Client connect |------//	
public client_connect(id) {
	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 == sChars[j]) {
	server_cmd("kick #%d ^"Numele tau contine caractere nepermise.^"", get_user_userid(id));
	break;
	}
	else {
	LoadCredits(id);
	}
	}
	}
	}
	
public Depozit(id) {
	if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) return PLUGIN_HANDLED;
	
	if(cs_get_user_money(id) == 16000) {
	ColorChat(id, "^x03[FURIEN]^x04 Ai depus^x03 $ 16000^x04 si ai primit^x03 un credit^x04.");
	PlayerCredits[id] += 1;
	cs_set_user_money(id, 0);
	}
	else {
	ColorChat(id, "^x03[FURIEN]^x04 Nu ai^x03 $ 16000^x04.");	
	}
	SaveCredits(id)
	return PLUGIN_HANDLED;
	}
	
public Retrage(id) 
{
	if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
		return PLUGIN_HANDLED;

	if(cs_get_user_money(id) == 16000) 
	{
		ColorChat(id, "^x03[FURIEN]^x04 Ai deja^x03 $ 16000^x04.");
	}
	else if(PlayerCredits[id]) 
	{
		if(retrase[id] < 3)
		{
			ColorChat(id, "^x03[FURIEN]^x04 Ai retras^x03 un credit^x04 si ai primit^x03 $ 16000^x04.");
			PlayerCredits[id] -= 1;
			cs_set_user_money(id, 16000);
			retrase[id]++
		}
		else
		{
			ColorChat(id, "^x03[FURIEN]^x04 Ai retras runda asta deja^x03 3 credite^x04. Incearca runda viitoare.");
		}
	}
	else 
	{
		ColorChat(id, "^x03[FURIEN]^x04 Ai nevoie de^x03 un credit^x04 pentru a retrage.");	
	}
	SaveCredits(id)
	return PLUGIN_HANDLED;
}
	
public Show_Credits(id) {
	set_hudmessage(0, 128, 0, 0.03, 0.86, 2, 6.0, 5.0);
	show_hudmessage(id, "Ai %d credite.", PlayerCredits[id]);
	ColorChat(id, "^x03[FURIEN]^x04 Ai^x03 %d^x04 credite.", PlayerCredits[id]);
	return PLUGIN_HANDLED;
	}
	
public Give_Credits(id, level, cid) {
	if(!cmd_access(id, level, cid, 2)) {
	return PLUGIN_HANDLED;
	}
	new arg[23], gplayers[32], num, i, players, name[32];
	get_user_name(id, name, 31);
	read_argv(1, arg, 23);
	new give_credits[5];
	read_argv(2, give_credits, charsmax(give_credits));
	new Credits = str_to_num(give_credits);
	if(equali(arg, "@T")) {
	get_players(gplayers, num, "e", "TERRORIST");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] += Credits;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 le-a dat^x03 %i credite^x04 tuturor^x03 Furienilor.", Credits);
	case 2: ColorChat(0, "^x03%s^x04 le-a dat^x03 %i credite^x04 tuturor^x03 Furienilor.", name, Credits);
	}
	}
	else if(equali(arg, "@CT")) {
	get_players(gplayers, num, "e", "CT");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] += Credits;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 le-a dat^x03 %i credite^x04 tuturor^x03 Anti-Furienilor.", Credits);
	case 2: ColorChat(0, "^x03%s^x04 le-a dat^x03 %i credite^x04 tuturor^x03 Anti-Furienilor.", name, Credits);
	}
	}
	if(equali(arg, "@All")) {
	get_players(gplayers, num, "a");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] += Credits;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 le-a dat^x03 %i credite^x04 tuturor^x03 jucatorilor.", Credits);
	case 2: ColorChat(0, "^x03%s^x04 a dat^x03 %i credite ^x03 jucatorilor.", name, Credits);
	}
	}
	new player = cmd_target(id, arg, 11);
	if(!player) {
	return PLUGIN_HANDLED;
	}
	PlayerCredits[player] += Credits;
	SaveCredits(id)
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(player, "^x03Adminul^x04 ti-a dat^x03 %i credite.", Credits);
	case 2: ColorChat(player, "^x03%s^x04 ti-a dat^x03 %i credite.", name, Credits);
	}
	return PLUGIN_HANDLED;
	}
	
public Reset_Credits(id, level, cid) {
	if(!cmd_access(id, level, cid, 2)) {
	return PLUGIN_HANDLED;
	}
	new arg[23], gplayers[32], num, i, players, name[32];
	get_user_name(id, name, 31);
	read_argv(1, arg, 23);
	if(equali(arg, "@T")) {
	get_players(gplayers, num, "e", "TERRORIST");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] = 0;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 a luat^x03 creditele^x04 tuturor^x03 Furienilor.");
	case 2: ColorChat(0, "^x03%s^x04 a luat^x03 creditele^x04 tuturor^x03 Furienilor.", name);
	}
	}
	
	else if(equali(arg, "@CT")) {
	get_players(gplayers, num, "e", "CT");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] = 0;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 a luat^x03 creditele^x04 tuturor^x03 Anti-Furienilor.");
	case 2: ColorChat(0, "^x03%s^x04 a luat^x03 creditele^x04 tuturor^x03 Anti-Furienilor.", name);
	}
	}
	if(equali(arg, "@All")) {
	get_players(gplayers, num, "a");
	for(i = 0; i < num; i++) {
	players = gplayers;
	if(!is_user_connected(players))
	continue;
	PlayerCredits[players] = 0;
	SaveCredits(id)
	}
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(0, "^x03Adminul^x04 a luat^x03 creditele^x04 tuturor^x03 jucatorilor.");
	case 2: ColorChat(0, "^x03%s^x04 a luatx03 creditele^x04 tuturor^x03 jucatorilor.", name);
	}
	}
	new player = cmd_target(id, arg, 11);
	if(!player) {
	return PLUGIN_HANDLED;
	}
	PlayerCredits[player] = 0;
	SaveCredits(id)
	switch(get_cvar_num("amx_show_activity")) {
	case 1: ColorChat(player, "^x03Adminul^x04 ti-a luat^x03 creditele.");
	case 2: ColorChat(player, "^x03%s^x04 ti-a luat^x03 creditele.", name);
	}
	return PLUGIN_HANDLED;
	}
	
//------| Save Credits |------//
public SaveCredits(id) {
	Vault = nvault_open("DepozitCredits");
	new data_credits[256], key_credits[64];
	switch( get_pcvar_num(savepoints) ) { 
	case 1:  { 
	new name[33];
	get_user_name(id,name,32);
	format(key_credits, 63, "%s-/", name);
		}
	case 2: {
	new player_ip[33];
	get_user_ip(id,player_ip,32);
	format(key_credits, 63, "%s-/", player_ip);
	}
	case 3: {
	new steam_ID[33];
	get_user_authid(id,steam_ID,32);
	format(key_credits, 63, "%s-/", steam_ID);
	}
	}
	format(data_credits, 255, "%i#", PlayerCredits[id]);
	nvault_set(Vault, key_credits, data_credits);
	return PLUGIN_CONTINUE;
	}
//------| Loading Credits |------//
public LoadCredits(id) {
	Vault = nvault_open("DepozitCredits");
	new data_credits[256], key_credits[64];
	switch( get_pcvar_num(savepoints) )  { 
	case 1:  { 
	new name[33];
	get_user_name(id,name,32);
	format(key_credits, 63, "%s-/", name);
	}
	case 2: {
	new player_ip[33];
	get_user_ip(id,player_ip,32);
	format(key_credits, 63, "%s-/", player_ip);
	}
	case 3: {
	new steam_ID[33];
	get_user_authid(id,steam_ID,32);
	format(key_credits, 63, "%s-/", steam_ID);
	}
	}
	format(data_credits, 255, "%i#", PlayerCredits[id]);
	nvault_get(Vault, key_credits, data_credits, 255);
	replace_all(data_credits, 255, "#", " ");

	new Credits[32];
	parse(data_credits, Credits, 31);
	PlayerCredits[id] = str_to_num(Credits);
	return PLUGIN_CONTINUE;
	} 
	
stock ColorChat(const id, const input[], any:...) {
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
 
	replace_all(msg, 190, "!x04", "^4");
	replace_all(msg, 190, "!x01", "^1");
	replace_all(msg, 190, "!x03", "^3");
 
	if(id) players[0] = id;
	else get_players(players, count, "ch"); {
	for(new i = 0; i < count; i++) {
	if(is_user_connected(players)) {
	message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
	write_byte(players);
	write_string(msg);
	message_end();
	}
	}
	} 
	}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/

eu vreau cu pluginul de credite a lui askhanar
http://www.extreamcs.com/forum/amxmodx/ ... 04666.html
User avatar
KrAiD.
Fost moderator
Fost moderator
Posts: 866
Joined: 15 Jun 2013, 12:14
Detinator Steam: Da
CS Status: Cat de cat activ :D
Detinator server CS: Nu
Reputatie: Fost Moderator ajutator
0.7 / 3
Has thanked: 14 times
Been thanked: 131 times
Contact:

14 Sep 2013, 12:30

pai si la asta poti sa ii pui in fata nativelor fcs si poti folosi dupa pluginul asta si celelalte !
incerc sa ti-l fac pe ala :D
User avatar
Rony
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 966
Joined: 11 Mar 2013, 11:43
Detinator Steam: Da
CS Status: CO-FOUNDER BETANO
Detinator server CS: CS1.6 , CS:GO
SteamID: 31r1
Reputatie: Membru Club eXtreamCS (1 luna)
Membru Club eXtreamCs (28 Feb)
Utilizator neserios (tepar)
Location: NAPOLI
Has thanked: 173 times
Been thanked: 66 times
Contact:

14 Sep 2013, 12:31

KrAiD. wrote:pai si la asta poti sa ii pui in fata nativelor fcs si poti folosi dupa pluginul asta si celelalte !
incerc sa ti-l fac pe ala :D
astept
User avatar
-Turbo-
Membru, skill +4
Membru, skill +4
Posts: 1664
Joined: 11 Nov 2012, 01:28
Detinator Steam: Da
CS Status: Bored !
Detinator server CS: Da
SteamID: kingforbidden
Reputatie: Utilizator neserios ( tepar )
Restrictie moderator
Ban scos ( achitat )
Nume anterior: Turbo19973
Location: Botosani
Has thanked: 49 times
Been thanked: 212 times

14 Sep 2013, 13:12

| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fakemeta >
#include < nvault >
#include < dhudmessage >

//#pragma semicolon 1


#define PLUGIN "Furien Credits System AIO"
#define VERSION "0.8.7Stable"

#define	ONE_DAY_IN_SECONDS	86400
#define TASK_pentru	06091993
#define FCS_TEAM_FURIEN 	CS_TEAM_T
#define FCS_TEAM_ANTIFURIEN	CS_TEAM_CT

enum Color
{
	NORMAL = 1, 		// Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
	GREEN, 			// Culoare Verde.
	TEAM_COLOR, 		// Culoare Rosu, Albastru, Gri.
	GREY, 			// Culoarea Gri.
	RED, 			// Culoarea Rosu.
	BLUE, 			// Culoarea Albastru.
};

new TeamName[  ][  ] = 
{
	"",
	"TERRORIST",
	"CT",
	"SPECTATOR"
};

enum (+= 100)
{
	TASK_MESAJHUD
}

#define ID_HUD (taskid - TASK_MESAJHUD)

new const g_szTag[ ] = "[Furien Credits]";
new const g_szGiveCreditsFlag[ ] = "a";

new g_iCvarPruneDays;
new g_iCvarEntry;

new g_iCvarPTREnable;
new g_iCvarPTRMinutes;
new g_iCvarPTRCredits;

new g_iCvarKREnable;
new g_iCvarKRCredits;
new g_iCvarKRHSCredits;

new g_iCvarTSEnable;
new g_iCvarTSMaxCredits;

new g_iCvarWTREnable;
new g_iCvarWTRFurien;
new g_iCvarWTRAnti;

new g_szName[ 33 ][ 32 ];
new g_iUserCredits[ 33 ];
new g_iUserTime[ 33 ];

new iVault;
new g_iMaxPlayers;
public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, "Askhanar" );
	register_cvar( "fcs_version_aio", VERSION, FCVAR_SERVER | FCVAR_SPONLY ); 

	g_iCvarPruneDays = register_cvar( "fcs_prunedays", "15" );
	g_iCvarEntry = register_cvar( "fcs_entry_credits", "300" );
	
	g_iCvarPTREnable = register_cvar( "fcs_pentru_enable", "1" );
	g_iCvarPTRMinutes = register_cvar( "fcs_pentru_minutes", "5" );
	g_iCvarPTRCredits = register_cvar( "fcs_pentru_credits", "15" );
	
	g_iCvarKREnable = register_cvar( "fcs_kr_enable", "1" );
	g_iCvarKRCredits = register_cvar( "fcs_kr_credits", "7" );
	g_iCvarKRHSCredits = register_cvar( "fcs_kr_hscredits", "3" );//( bonus, fcs_kr_credits + fcs_kr_hscredits )
	
	g_iCvarTSEnable = register_cvar("fcs_transfer_enable", "1" );
	g_iCvarTSMaxCredits = register_cvar("fcs_transfer_maxcredits", "50" );

	g_iCvarWTREnable = register_cvar( "fcs_wtr_enable", "1" );
	g_iCvarWTRFurien = register_cvar( "fcs_wtr_furien", "12" );
	g_iCvarWTRAnti = register_cvar( "fcs_wtr_antifurien", "20" );
	
	register_clcmd( "say", "ClCmdSay" );
	register_clcmd( "say_team", "ClCmdSay" );
	
	register_clcmd( "say /depozit", "ClCmdSayDepozit" );
	register_clcmd( "say /deposit", "ClCmdSayDepozit" );
	register_clcmd( "say_team /depozit", "ClCmdSayDepozit" );
	register_clcmd( "say_team /deposit", "ClCmdSayDepozit" );
	
	register_clcmd( "say /retrage", "ClCmdSayRetrage" );
	register_clcmd( "say /withdraw", "ClCmdSayRetrage" );
	register_clcmd( "say_team /retrage", "ClCmdSayRetrage" );
	register_clcmd( "say_team /withdraw", "ClCmdSayRetrage" );
	
	register_clcmd( "fcs_credite", "ClCmdCredits" );
	register_clcmd( "fcs_credits", "ClCmdCredits" );
	
	register_clcmd( "donate", "ClCmdFcsDonate" );
	register_clcmd( "transfer", "ClCmdFcsDonate" );
	
	register_clcmd( "amx_give_credits", "ClCmdGiveCredits" );
	register_clcmd( "amx_take_credits", "ClCmdTakeCredits" );
	
	register_forward( FM_ClientUserInfoChanged, "Fwd_ClientUserInfoChanged" );
	register_event( "DeathMsg","ev_DeathMsg", "a" );
	register_event( "SendAudio", "ev_SendAudioTerWin", "a", "2=%!MRAD_terwin" );
	register_event( "SendAudio", "ev_SendAudioCtWin", "a", "2=%!MRAD_ctwin" );
	
	
	iVault  =  nvault_open(  "FurienCreditsSystem"  );
	if(  iVault  ==  INVALID_HANDLE  )
		set_fail_state(  "nValut returned invalid handle!"  );
	
	set_task( 1.0, "task_PTRFunctions", TASK_pentru, _, _, "b", 0 );	
	g_iMaxPlayers = get_maxplayers( );

}

public plugin_natives()
{
	
	register_library( "fcs" );
	register_native( "fcs_get_user_credits", "_fcs_get_user_credits" );
	register_native( "fcs_set_user_credits", "_fcs_set_user_credits" );
	
}

public _fcs_get_user_credits( iPlugin, iParams )
{
	return g_iUserCredits[  get_param( 1 )  ];
}

public _fcs_set_user_credits(  iPlugin, iParams  )
{
	new id = get_param( 1 );
	g_iUserCredits[ id ] = max( 0, get_param( 2 ) );
	SaveCredits( id );
	return g_iUserCredits[ id ];
}
public client_putinserver(id) {
	
	set_task(1.0, "MesajHUD", id+TASK_MESAJHUD, _, _, "b");
}

public client_authorized( id )
{
	if( is_user_bot( id ) )
		return PLUGIN_CONTINUE;
	
	get_user_name( id, g_szName[ id ], sizeof ( g_szName[] ) -1 );
	LoadCredits( id );
	
	g_iUserTime[ id ] = 0;
	return PLUGIN_CONTINUE;
	
}

public client_disconnect( id )
{
	if( is_user_bot( id ) )
		return PLUGIN_CONTINUE;
		
	SaveCredits( id );
	
	return PLUGIN_CONTINUE;
	
}
public MesajHUD(taskid)
{
	static id
	id = ID_HUD;
	
	if(!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if(!is_user_alive(id))
			return;
	}
	
	if(id != ID_HUD)
	{
		new nume[32];
		get_user_name(id, nume, 31)
		set_dhudmessage(200, 100, 150, 0.0, 0.52, 0, 6.0, 1.1, 0.0, 0.0);
		show_dhudmessage(ID_HUD, "%s^nCredite: %d", nume, g_iUserCredits[ id ]);
	}
	else
	{
		set_dhudmessage(0, 100, 250, 0.0, 0.885, 0, 6.0, 1.1, 0.0, 0.0);
		show_dhudmessage(ID_HUD, "Credite: %d", g_iUserCredits[ id ]);
	}
}
public ClCmdSay( id )
{
	static szArgs[192];
	read_args( szArgs, sizeof ( szArgs ) -1 );
	
	if( !szArgs[ 0 ] )
		return 0;
	
	new szCommand[ 15 ];
	remove_quotes( szArgs[ 0 ] );
	
	if( equal( szArgs, "/credite", strlen( "/credite" ) )
		|| equal( szArgs, "/credits", strlen( "/credits" ) ) )
	{
		replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
		formatex( szCommand, sizeof ( szCommand ) -1, "fcs_%s", szArgs );
		client_cmd( id, szCommand );
		return 1;
	}
	else if( equal( szArgs,  "/transfer", strlen(  "/transfer" ) )
		|| equal( szArgs,  "/donate",  strlen(  "/donate" ) ) )
	{
		replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
		formatex( szCommand, sizeof ( szCommand ) -1, "%s", szArgs );
		client_cmd( id, szCommand );
		return 1;
	}
		
	return 0;
}

public ClCmdCredits( id )
{
	if( !is_user_connected( id ) )
		return 1;
		
	new szArg[ 32 ];
    	read_argv( 1, szArg, sizeof ( szArg ) -1 );

	if( equal( szArg, "" ) ) 
	{
		
		ColorChat( id, RED, "^x04%s^x01 Ai^x03 %i^x01 credite.", g_szTag, g_iUserCredits[ id ] );
		return 1;
	}
	
    	new iPlayer = cmd_target( id, szArg, 8 );
    	if( !iPlayer || !is_user_connected( iPlayer ) )
	{
		ColorChat( id, RED,"^x04%s^x01 Jucatorul specificat nu a fost gasit!", g_szTag, szArg );
		return 1;
	}

	new szName[ 32 ];
	get_user_name( iPlayer, szName, sizeof ( szName ) -1 );
	ColorChat( id, RED,"^x04%s^x01 Jucatorul^x03 %s^x01 are^x03 %i^x01 credit%s", g_szTag, szName, g_iUserCredits[ iPlayer ], g_iUserCredits[ iPlayer ] == 1 ? "." : "e." );
	
	return 1;
	
}

public ClCmdSayDepozit( id)
{
	
	if( !is_user_connected( id ) )
		return 1;
		
	new iTeam = get_user_team( id );
	
	if( 1 <= iTeam <= 2 )
	{
		new iMoney = cs_get_user_money( id );
		if( iMoney >= 16000 )
		{
			
			ColorChat( id, RED, "^x04%s^x01 Ai depozitat^x03 16000$^x01 si ai primit^x03 1^x01 credit.", g_szTag );
			cs_set_user_money( id, iMoney - 16000 );
			g_iUserCredits[ id ] += 1;
			
			SaveCredits( id );
			return 1;
		}
		else
		{
			ColorChat( id, RED, "^x04%s^x01 Iti trebuie^x03 16000$^x01 pentru a putea depozita.", g_szTag );
			return 1;
		}
	}
	
	return 1;

}

public ClCmdSayRetrage( id)
{
	
	new iTeam = get_user_team( id );
	
	if( 1 <= iTeam <= 2 )
	{
		
		if( g_iUserCredits[ id ] > 0 )
		{
			new iMoney = cs_get_user_money( id );
			
			ColorChat( id, RED, "^x04%s^x01 Ai retras^x03 1^x01 credit si, ai primi^x03 16000$^x01.", g_szTag );
			cs_set_user_money( id, iMoney + 16000 );
			
			g_iUserCredits[ id ] -=1;
			SaveCredits( id );
			
			if( ( iMoney + 16000 ) > 16000 )
			{
				ColorChat( id, RED, "^x04%s^x03 ATENTIE^x01, ai^x03 %i$^x01 !", g_szTag, iMoney + 16000 );
				ColorChat( id, RED, "^x04%s^x01 La spawn, vei pierde tot ce depaseste suma de^x03 16000$^x01.", g_szTag );
				return 1;
			}
		}
		else
		{
			ColorChat(id, RED, "^x04%s^x03 NU^x01 ai ce sa retragi, ai^x03 0^x01 credite.", g_szTag );
			return 1;
		}
		
	}
	
	return 1;

}

public ClCmdGiveCredits( id )
{
	
	if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
	{
		client_cmd( id, "echo NU ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		client_cmd( id, "echo amx_give_credits < nume/ @ALL/ @T/ @CT > < credite >" );
		return 1;
	}
	
	new iPlayers[ 32 ];
	new iPlayersNum;
	
	new iCredits = str_to_num( szSecondArg );
	if( iCredits <= 0 )
	{
		client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
	
	if( szFirstArg[ 0 ] == '@' )
	{
		
		switch ( szFirstArg[ 1 ] )
		{
			case 'A':
			{
				if( equal( szFirstArg, "@ALL" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ch" );
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite tuturor jucatorilor!", g_szTag, szName, iCredits );
					return 1;
				}
			}
			
			case 'T':
			{
				if( equal( szFirstArg, "@T" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" );
					if( iPlayersNum == 0 )
					{
						client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
						return 1;
					}
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 TERO^x01!", g_szTag, szName, iCredits );
					return 1;
				}
			}
			
			case 'C':
			{
				if( equal( szFirstArg, "@CT" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ceh", "CT" );
					if( iPlayersNum == 0 )
					{
						client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
						return 1;
					}
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 CT^x01!", g_szTag, szName, iCredits );
					return 1;
				}
			}
		}
	}
		
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer )
	{
		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	g_iUserCredits[ iPlayer ] += iCredits;
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	
	ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a dat^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
	
	return 1;
	
	
}

public ClCmdTakeCredits( id )
{
	
	if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
	{
		client_cmd( id, "echo NU ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		client_cmd( id, "echo amx_take_credits < nume > < credite >" );
		return 1;
	}
	
	new iCredits = str_to_num( szSecondArg );
	if( iCredits <= 0 )
	{
		client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
			
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer )
	{
		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	if( g_iUserCredits[ iPlayer ] < iCredits )
	{
		client_cmd( id, "echo Jucatorul %s nu are atatea credite!Are doar %i", szFirstArg, g_iUserCredits[ iPlayer ] );
		return 1;
	}
	
	g_iUserCredits[ iPlayer ] -= iCredits;
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	
	ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a sters^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
	
	return 1;
	
	
}

public ClCmdFcsDonate( id )
{
	if(  get_pcvar_num(  g_iCvarTSEnable  )  !=  1  )
	{
		ColorChat( id, RED, "^x04%s^x01 Comanda dezactivata de catre server!",  g_szTag  );
		return PLUGIN_HANDLED;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
    	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		ColorChat( id, RED, "^x04%s^x01 Folosire:^x03 /transfer^x01 sau^x03 /donate^x01 <^x03 nume^x01 > <^x03 credite^x01 >.", g_szTag );
		return 1;
	}
	
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	
	if( !iPlayer  )
	{
		ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", g_szTag );
		return PLUGIN_HANDLED;
	}
	
	//if( iPlayer == id )
	//{
	//	ColorChat(  id,  RED, "^x04%s^x01 Nu-ti poti transfera credite.", g_szTag );
	//	return PLUGIN_HANDLED;
	//}
	
	
	new iCredits;
	iCredits = str_to_num( szSecondArg );
	
	
	if( iCredits <= 0 )
	{
		ColorChat( id, RED, "^x04%s^x01 Trebuie sa introduci o valoare mai mare de 0.", g_szTag );
		return PLUGIN_HANDLED;
	}
	
	new iMaxCredits = get_pcvar_num( g_iCvarTSMaxCredits );
	if( iCredits > iMaxCredits )
	{
		ColorChat( id, RED, "^x04%s^x01 Poti transfera maxim^x03 %i^x01 credit%s o data!", g_szTag, iMaxCredits, iMaxCredits == 1 ? "" : "e" );
		return PLUGIN_HANDLED;
	}
	
	if( g_iUserCredits[ id ] <  iCredits  )
	{
		ColorChat(  id,  RED, "^x04%s^x01 Nu ai destule credite, ai doar^x03 %i credit%s^x01.",  g_szTag, g_iUserCredits[ id ], g_iUserCredits[ id ] == 1 ? "" : "e"  );
		return 1;
	}
	
	g_iUserCredits[ id ] -= iCredits;
	g_iUserCredits[ iPlayer ] += iCredits;
	
	SaveCredits( id );
	SaveCredits( iPlayer );
	
	new szFirstName[ 32 ], szSecondName[ 32 ];
	
	get_user_name( id, szFirstName, sizeof ( szFirstName )  -1 );
	get_user_name( iPlayer, szSecondName, sizeof ( szSecondName )  -1 );
	
	ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a transferat^03 %i credit%s^x01 lui^x03 %s^x01 .", g_szTag, szFirstName, iCredits, iCredits == 1 ? "" : "e", szSecondName );
	return PLUGIN_HANDLED;
}

public Fwd_ClientUserInfoChanged( id, szBuffer )
{
	if ( !is_user_connected( id ) ) 
		return FMRES_IGNORED;
	
	static szNewName[ 32 ];
	
	engfunc( EngFunc_InfoKeyValue, szBuffer, "name", szNewName, sizeof ( szNewName ) -1 );
	
	if ( equal( szNewName, g_szName[ id ] ) )
		return FMRES_IGNORED;
	
	SaveCredits(  id  );
	
	ColorChat( id, RED, "^x04%s^x01 Tocmai ti-ai schimbat numele din^x03 %s^x01 in^x03 %s^x01 !", g_szTag, g_szName[ id ], szNewName );
	ColorChat( id, RED, "^x04%s^x01 Am salvat^x03 %i^x01 credite pe numele^x03 %s^x01 !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
	
	copy( g_szName[ id ], sizeof ( g_szName[] ) -1, szNewName );
	LoadCredits( id );
	
	ColorChat( id, RED, "^x04%s^x01 Am incarcat^x03 %i^x01 credite de pe noul nume (^x03 %s^x01 ) !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
	
	return FMRES_IGNORED;
}


public LoadCredits( id )
{
	static szData[ 256 ],  iTimestamp;
	
	if(  nvault_lookup( iVault, g_szName[ id ], szData, sizeof ( szData ) -1, iTimestamp ) )
	{
		static szCredits[ 15 ];
		parse( szData, szCredits, sizeof ( szCredits ) -1 );
		g_iUserCredits[ id ] = str_to_num( szCredits );
		return;
	}
	else
	{
		g_iUserCredits[ id ] = get_pcvar_num( g_iCvarEntry );
	}
	
}


public SaveCredits(  id  )
{
	
	static szData[ 256 ];
	formatex( szData, sizeof ( szData ) -1, "%i", g_iUserCredits[ id ] );
	
	nvault_set( iVault, g_szName[ id ], szData );
}


public task_PTRFunctions( )
{
	if( get_pcvar_num( g_iCvarPTREnable ) != 1 )
		return;
		
	static iPlayers[ 32 ];
	static iPlayersNum;
	
	get_players( iPlayers, iPlayersNum, "ch" );
	if( !iPlayersNum )
		return;
	
	static id, i;
	for( i = 0; i < iPlayersNum; i++ )
	{
		id = iPlayers[ i ];
		
		g_iUserTime[ id ]++;
		static iTime;
		iTime = get_pcvar_num( g_iCvarPTRMinutes ) ;
		
		if( g_iUserTime[ id ] >= iTime * 60 )
		{
			g_iUserTime[ id ] -= iTime * 60;
			
			static iCredits;
			iCredits = get_pcvar_num( g_iCvarPTRCredits );
			
			g_iUserCredits[ id ] += iCredits;
			ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credite pentru^x03 %i^x01 minute jucate!",
				g_szTag, iCredits, iTime );
				
			SaveCredits( id );
				
		}
	}
	
}

public ev_DeathMsg( )
{
	if( get_pcvar_num( g_iCvarKREnable ) != 1 )
		return;
	new iKiller = read_data( 1 );
	if( iKiller == read_data( 2 ) )
		return;
		
	new iCredits = get_pcvar_num( g_iCvarKRCredits );
	
	if( read_data( 3 ) )
		iCredits += get_pcvar_num( g_iCvarKRHSCredits );
		
	g_iUserCredits[ iKiller ] += iCredits;
	SaveCredits( iKiller );
	
}

public ev_SendAudioTerWin( )
{
	static iCvarEnable, iCvarFurienReward;
	iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
	iCvarFurienReward = get_pcvar_num( g_iCvarWTRFurien );
	
	if( iCvarEnable != 1 || iCvarFurienReward == 0 )
		return;
		
	GiveTeamReward( FCS_TEAM_FURIEN, iCvarFurienReward );
	
}


public ev_SendAudioCtWin( )
{
	
	static iCvarEnable, iCvarAntiReward;
	iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
	iCvarAntiReward = get_pcvar_num( g_iCvarWTRAnti );
	
	if( iCvarEnable != 1 || iCvarAntiReward == 0 )
		return;
		
	GiveTeamReward( FCS_TEAM_ANTIFURIEN, iCvarAntiReward );
}

public GiveTeamReward( const CsTeams:iTeam, iCredits )
{
	
	for(  new id = 1;  id <= g_iMaxPlayers;  id++   )
	{
		if( cs_get_user_team( id ) == iTeam )
		{
			ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credit%s pentru castigarea rundei!", g_szTag, iCredits, iCredits == 1 ? "" : "e" );
			g_iUserCredits[ id ] += iCredits;
			SaveCredits( id );
		}
	}
}

public plugin_end( )
{
	new iDays = get_pcvar_num( g_iCvarPruneDays );
	if( iDays > 0 )
	{
		nvault_prune( iVault, 0, get_systime( ) - ( iDays * ONE_DAY_IN_SECONDS ) );
	}
	
	nvault_close( iVault );
}

ColorChat(  id, Color:iType, const msg[  ], { Float, Sql, Result, _}:...  )
{
	
	// Daca nu se afla nici un jucator pe server oprim TOT. Altfel dam de erori..
	if( !get_playersnum( ) ) return;
	
	new szMessage[ 256 ];

	switch( iType )
	{
		 // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
		case NORMAL:	szMessage[ 0 ] = 0x01;
		
		// Culoare Verde.
		case GREEN:	szMessage[ 0 ] = 0x04;
		
		// Alb, Rosu, Albastru.
		default: 	szMessage[ 0 ] = 0x03;
	}

	vformat(  szMessage[ 1 ], 251, msg, 4  );

	// Ne asiguram ca mesajul nu este mai lung de 192 de caractere.Altfel pica server-ul.
	szMessage[ 192 ] = '^0';
	

	new iTeam, iColorChange, iPlayerIndex, MSG_Type;
	
	if( id )
	{
		MSG_Type  =  MSG_ONE_UNRELIABLE;
		iPlayerIndex  =  id;
	}
	else
	{
		iPlayerIndex  =  CC_FindPlayer(  );
		MSG_Type = MSG_ALL;
	}
	
	iTeam  =  get_user_team( iPlayerIndex );
	iColorChange  =  CC_ColorSelection(  iPlayerIndex,  MSG_Type, iType);

	CC_ShowColorMessage(  iPlayerIndex, MSG_Type, szMessage  );
		
	if(  iColorChange  )	CC_Team_Info(  iPlayerIndex, MSG_Type,  TeamName[ iTeam ]  );

}

CC_ShowColorMessage(  id, const iType, const szMessage[  ]  )
{
	
	static bool:bSayTextUsed;
	static iMsgSayText;
	
	if(  !bSayTextUsed  )
	{
		iMsgSayText  =  get_user_msgid( "SayText" );
		bSayTextUsed  =  true;
	}
	
	message_begin( iType, iMsgSayText, _, id  );
	write_byte(  id  );		
	write_string(  szMessage  );
	message_end(  );
}

CC_Team_Info( id, const iType, const szTeam[  ] )
{
	static bool:bTeamInfoUsed;
	static iMsgTeamInfo;
	if(  !bTeamInfoUsed  )
	{
		iMsgTeamInfo  =  get_user_msgid( "TeamInfo" );
		bTeamInfoUsed  =  true;
	}
	
	message_begin( iType, iMsgTeamInfo, _, id  );
	write_byte(  id  );
	write_string(  szTeam  );
	message_end(  );

	return 1;
}

CC_ColorSelection(  id, const iType, Color:iColorType)
{
	switch(  iColorType  )
	{
		
		case RED:	return CC_Team_Info(  id, iType, TeamName[ 1 ]  );
		case BLUE:	return CC_Team_Info(  id, iType, TeamName[ 2 ]  );
		case GREY:	return CC_Team_Info(  id, iType, TeamName[ 0 ]  );

	}

	return 0;
}

CC_FindPlayer(  )
{
	new iMaxPlayers  =  get_maxplayers(  );
	
	for( new i = 1; i <= iMaxPlayers; i++ )
		if(  is_user_connected( i )  )
			return i;
	
	return -1;
}
User avatar
Rony
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 966
Joined: 11 Mar 2013, 11:43
Detinator Steam: Da
CS Status: CO-FOUNDER BETANO
Detinator server CS: CS1.6 , CS:GO
SteamID: 31r1
Reputatie: Membru Club eXtreamCS (1 luna)
Membru Club eXtreamCs (28 Feb)
Utilizator neserios (tepar)
Location: NAPOLI
Has thanked: 173 times
Been thanked: 66 times
Contact:

14 Sep 2013, 13:21

Turbo19973 wrote:
| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fakemeta >
#include < nvault >
#include < dhudmessage >

//#pragma semicolon 1


#define PLUGIN "Furien Credits System AIO"
#define VERSION "0.8.7Stable"

#define	ONE_DAY_IN_SECONDS	86400
#define TASK_pentru	06091993
#define FCS_TEAM_FURIEN 	CS_TEAM_T
#define FCS_TEAM_ANTIFURIEN	CS_TEAM_CT

enum Color
{
	NORMAL = 1, 		// Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
	GREEN, 			// Culoare Verde.
	TEAM_COLOR, 		// Culoare Rosu, Albastru, Gri.
	GREY, 			// Culoarea Gri.
	RED, 			// Culoarea Rosu.
	BLUE, 			// Culoarea Albastru.
};

new TeamName[  ][  ] = 
{
	"",
	"TERRORIST",
	"CT",
	"SPECTATOR"
};

enum (+= 100)
{
	TASK_MESAJHUD
}

#define ID_HUD (taskid - TASK_MESAJHUD)

new const g_szTag[ ] = "[Furien Credits]";
new const g_szGiveCreditsFlag[ ] = "a";

new g_iCvarPruneDays;
new g_iCvarEntry;

new g_iCvarPTREnable;
new g_iCvarPTRMinutes;
new g_iCvarPTRCredits;

new g_iCvarKREnable;
new g_iCvarKRCredits;
new g_iCvarKRHSCredits;

new g_iCvarTSEnable;
new g_iCvarTSMaxCredits;

new g_iCvarWTREnable;
new g_iCvarWTRFurien;
new g_iCvarWTRAnti;

new g_szName[ 33 ][ 32 ];
new g_iUserCredits[ 33 ];
new g_iUserTime[ 33 ];

new iVault;
new g_iMaxPlayers;
public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, "Askhanar" );
	register_cvar( "fcs_version_aio", VERSION, FCVAR_SERVER | FCVAR_SPONLY ); 

	g_iCvarPruneDays = register_cvar( "fcs_prunedays", "15" );
	g_iCvarEntry = register_cvar( "fcs_entry_credits", "300" );
	
	g_iCvarPTREnable = register_cvar( "fcs_pentru_enable", "1" );
	g_iCvarPTRMinutes = register_cvar( "fcs_pentru_minutes", "5" );
	g_iCvarPTRCredits = register_cvar( "fcs_pentru_credits", "15" );
	
	g_iCvarKREnable = register_cvar( "fcs_kr_enable", "1" );
	g_iCvarKRCredits = register_cvar( "fcs_kr_credits", "7" );
	g_iCvarKRHSCredits = register_cvar( "fcs_kr_hscredits", "3" );//( bonus, fcs_kr_credits + fcs_kr_hscredits )
	
	g_iCvarTSEnable = register_cvar("fcs_transfer_enable", "1" );
	g_iCvarTSMaxCredits = register_cvar("fcs_transfer_maxcredits", "50" );

	g_iCvarWTREnable = register_cvar( "fcs_wtr_enable", "1" );
	g_iCvarWTRFurien = register_cvar( "fcs_wtr_furien", "12" );
	g_iCvarWTRAnti = register_cvar( "fcs_wtr_antifurien", "20" );
	
	register_clcmd( "say", "ClCmdSay" );
	register_clcmd( "say_team", "ClCmdSay" );
	
	register_clcmd( "say /depozit", "ClCmdSayDepozit" );
	register_clcmd( "say /deposit", "ClCmdSayDepozit" );
	register_clcmd( "say_team /depozit", "ClCmdSayDepozit" );
	register_clcmd( "say_team /deposit", "ClCmdSayDepozit" );
	
	register_clcmd( "say /retrage", "ClCmdSayRetrage" );
	register_clcmd( "say /withdraw", "ClCmdSayRetrage" );
	register_clcmd( "say_team /retrage", "ClCmdSayRetrage" );
	register_clcmd( "say_team /withdraw", "ClCmdSayRetrage" );
	
	register_clcmd( "fcs_credite", "ClCmdCredits" );
	register_clcmd( "fcs_credits", "ClCmdCredits" );
	
	register_clcmd( "donate", "ClCmdFcsDonate" );
	register_clcmd( "transfer", "ClCmdFcsDonate" );
	
	register_clcmd( "amx_give_credits", "ClCmdGiveCredits" );
	register_clcmd( "amx_take_credits", "ClCmdTakeCredits" );
	
	register_forward( FM_ClientUserInfoChanged, "Fwd_ClientUserInfoChanged" );
	register_event( "DeathMsg","ev_DeathMsg", "a" );
	register_event( "SendAudio", "ev_SendAudioTerWin", "a", "2=%!MRAD_terwin" );
	register_event( "SendAudio", "ev_SendAudioCtWin", "a", "2=%!MRAD_ctwin" );
	
	
	iVault  =  nvault_open(  "FurienCreditsSystem"  );
	if(  iVault  ==  INVALID_HANDLE  )
		set_fail_state(  "nValut returned invalid handle!"  );
	
	set_task( 1.0, "task_PTRFunctions", TASK_pentru, _, _, "b", 0 );	
	g_iMaxPlayers = get_maxplayers( );

}

public plugin_natives()
{
	
	register_library( "fcs" );
	register_native( "fcs_get_user_credits", "_fcs_get_user_credits" );
	register_native( "fcs_set_user_credits", "_fcs_set_user_credits" );
	
}

public _fcs_get_user_credits( iPlugin, iParams )
{
	return g_iUserCredits[  get_param( 1 )  ];
}

public _fcs_set_user_credits(  iPlugin, iParams  )
{
	new id = get_param( 1 );
	g_iUserCredits[ id ] = max( 0, get_param( 2 ) );
	SaveCredits( id );
	return g_iUserCredits[ id ];
}
public client_putinserver(id) {
	
	set_task(1.0, "MesajHUD", id+TASK_MESAJHUD, _, _, "b");
}

public client_authorized( id )
{
	if( is_user_bot( id ) )
		return PLUGIN_CONTINUE;
	
	get_user_name( id, g_szName[ id ], sizeof ( g_szName[] ) -1 );
	LoadCredits( id );
	
	g_iUserTime[ id ] = 0;
	return PLUGIN_CONTINUE;
	
}

public client_disconnect( id )
{
	if( is_user_bot( id ) )
		return PLUGIN_CONTINUE;
		
	SaveCredits( id );
	
	return PLUGIN_CONTINUE;
	
}
public MesajHUD(taskid)
{
	static id
	id = ID_HUD;
	
	if(!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if(!is_user_alive(id))
			return;
	}
	
	if(id != ID_HUD)
	{
		new nume[32];
		get_user_name(id, nume, 31)
		set_dhudmessage(200, 100, 150, 0.0, 0.52, 0, 6.0, 1.1, 0.0, 0.0);
		show_dhudmessage(ID_HUD, "%s^nCredite: %d", nume, g_iUserCredits[ id ]);
	}
	else
	{
		set_dhudmessage(0, 100, 250, 0.0, 0.885, 0, 6.0, 1.1, 0.0, 0.0);
		show_dhudmessage(ID_HUD, "Credite: %d", g_iUserCredits[ id ]);
	}
}
public ClCmdSay( id )
{
	static szArgs[192];
	read_args( szArgs, sizeof ( szArgs ) -1 );
	
	if( !szArgs[ 0 ] )
		return 0;
	
	new szCommand[ 15 ];
	remove_quotes( szArgs[ 0 ] );
	
	if( equal( szArgs, "/credite", strlen( "/credite" ) )
		|| equal( szArgs, "/credits", strlen( "/credits" ) ) )
	{
		replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
		formatex( szCommand, sizeof ( szCommand ) -1, "fcs_%s", szArgs );
		client_cmd( id, szCommand );
		return 1;
	}
	else if( equal( szArgs,  "/transfer", strlen(  "/transfer" ) )
		|| equal( szArgs,  "/donate",  strlen(  "/donate" ) ) )
	{
		replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
		formatex( szCommand, sizeof ( szCommand ) -1, "%s", szArgs );
		client_cmd( id, szCommand );
		return 1;
	}
		
	return 0;
}

public ClCmdCredits( id )
{
	if( !is_user_connected( id ) )
		return 1;
		
	new szArg[ 32 ];
    	read_argv( 1, szArg, sizeof ( szArg ) -1 );

	if( equal( szArg, "" ) ) 
	{
		
		ColorChat( id, RED, "^x04%s^x01 Ai^x03 %i^x01 credite.", g_szTag, g_iUserCredits[ id ] );
		return 1;
	}
	
    	new iPlayer = cmd_target( id, szArg, 8 );
    	if( !iPlayer || !is_user_connected( iPlayer ) )
	{
		ColorChat( id, RED,"^x04%s^x01 Jucatorul specificat nu a fost gasit!", g_szTag, szArg );
		return 1;
	}

	new szName[ 32 ];
	get_user_name( iPlayer, szName, sizeof ( szName ) -1 );
	ColorChat( id, RED,"^x04%s^x01 Jucatorul^x03 %s^x01 are^x03 %i^x01 credit%s", g_szTag, szName, g_iUserCredits[ iPlayer ], g_iUserCredits[ iPlayer ] == 1 ? "." : "e." );
	
	return 1;
	
}

public ClCmdSayDepozit( id)
{
	
	if( !is_user_connected( id ) )
		return 1;
		
	new iTeam = get_user_team( id );
	
	if( 1 <= iTeam <= 2 )
	{
		new iMoney = cs_get_user_money( id );
		if( iMoney >= 16000 )
		{
			
			ColorChat( id, RED, "^x04%s^x01 Ai depozitat^x03 16000$^x01 si ai primit^x03 1^x01 credit.", g_szTag );
			cs_set_user_money( id, iMoney - 16000 );
			g_iUserCredits[ id ] += 1;
			
			SaveCredits( id );
			return 1;
		}
		else
		{
			ColorChat( id, RED, "^x04%s^x01 Iti trebuie^x03 16000$^x01 pentru a putea depozita.", g_szTag );
			return 1;
		}
	}
	
	return 1;

}

public ClCmdSayRetrage( id)
{
	
	new iTeam = get_user_team( id );
	
	if( 1 <= iTeam <= 2 )
	{
		
		if( g_iUserCredits[ id ] > 0 )
		{
			new iMoney = cs_get_user_money( id );
			
			ColorChat( id, RED, "^x04%s^x01 Ai retras^x03 1^x01 credit si, ai primi^x03 16000$^x01.", g_szTag );
			cs_set_user_money( id, iMoney + 16000 );
			
			g_iUserCredits[ id ] -=1;
			SaveCredits( id );
			
			if( ( iMoney + 16000 ) > 16000 )
			{
				ColorChat( id, RED, "^x04%s^x03 ATENTIE^x01, ai^x03 %i$^x01 !", g_szTag, iMoney + 16000 );
				ColorChat( id, RED, "^x04%s^x01 La spawn, vei pierde tot ce depaseste suma de^x03 16000$^x01.", g_szTag );
				return 1;
			}
		}
		else
		{
			ColorChat(id, RED, "^x04%s^x03 NU^x01 ai ce sa retragi, ai^x03 0^x01 credite.", g_szTag );
			return 1;
		}
		
	}
	
	return 1;

}

public ClCmdGiveCredits( id )
{
	
	if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
	{
		client_cmd( id, "echo NU ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		client_cmd( id, "echo amx_give_credits < nume/ @ALL/ @T/ @CT > < credite >" );
		return 1;
	}
	
	new iPlayers[ 32 ];
	new iPlayersNum;
	
	new iCredits = str_to_num( szSecondArg );
	if( iCredits <= 0 )
	{
		client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
	
	if( szFirstArg[ 0 ] == '@' )
	{
		
		switch ( szFirstArg[ 1 ] )
		{
			case 'A':
			{
				if( equal( szFirstArg, "@ALL" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ch" );
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite tuturor jucatorilor!", g_szTag, szName, iCredits );
					return 1;
				}
			}
			
			case 'T':
			{
				if( equal( szFirstArg, "@T" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" );
					if( iPlayersNum == 0 )
					{
						client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
						return 1;
					}
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 TERO^x01!", g_szTag, szName, iCredits );
					return 1;
				}
			}
			
			case 'C':
			{
				if( equal( szFirstArg, "@CT" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ceh", "CT" );
					if( iPlayersNum == 0 )
					{
						client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
						return 1;
					}
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 CT^x01!", g_szTag, szName, iCredits );
					return 1;
				}
			}
		}
	}
		
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer )
	{
		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	g_iUserCredits[ iPlayer ] += iCredits;
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	
	ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a dat^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
	
	return 1;
	
	
}

public ClCmdTakeCredits( id )
{
	
	if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
	{
		client_cmd( id, "echo NU ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		client_cmd( id, "echo amx_take_credits < nume > < credite >" );
		return 1;
	}
	
	new iCredits = str_to_num( szSecondArg );
	if( iCredits <= 0 )
	{
		client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
			
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer )
	{
		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	if( g_iUserCredits[ iPlayer ] < iCredits )
	{
		client_cmd( id, "echo Jucatorul %s nu are atatea credite!Are doar %i", szFirstArg, g_iUserCredits[ iPlayer ] );
		return 1;
	}
	
	g_iUserCredits[ iPlayer ] -= iCredits;
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	
	ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a sters^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
	
	return 1;
	
	
}

public ClCmdFcsDonate( id )
{
	if(  get_pcvar_num(  g_iCvarTSEnable  )  !=  1  )
	{
		ColorChat( id, RED, "^x04%s^x01 Comanda dezactivata de catre server!",  g_szTag  );
		return PLUGIN_HANDLED;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
    	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		ColorChat( id, RED, "^x04%s^x01 Folosire:^x03 /transfer^x01 sau^x03 /donate^x01 <^x03 nume^x01 > <^x03 credite^x01 >.", g_szTag );
		return 1;
	}
	
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	
	if( !iPlayer  )
	{
		ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", g_szTag );
		return PLUGIN_HANDLED;
	}
	
	//if( iPlayer == id )
	//{
	//	ColorChat(  id,  RED, "^x04%s^x01 Nu-ti poti transfera credite.", g_szTag );
	//	return PLUGIN_HANDLED;
	//}
	
	
	new iCredits;
	iCredits = str_to_num( szSecondArg );
	
	
	if( iCredits <= 0 )
	{
		ColorChat( id, RED, "^x04%s^x01 Trebuie sa introduci o valoare mai mare de 0.", g_szTag );
		return PLUGIN_HANDLED;
	}
	
	new iMaxCredits = get_pcvar_num( g_iCvarTSMaxCredits );
	if( iCredits > iMaxCredits )
	{
		ColorChat( id, RED, "^x04%s^x01 Poti transfera maxim^x03 %i^x01 credit%s o data!", g_szTag, iMaxCredits, iMaxCredits == 1 ? "" : "e" );
		return PLUGIN_HANDLED;
	}
	
	if( g_iUserCredits[ id ] <  iCredits  )
	{
		ColorChat(  id,  RED, "^x04%s^x01 Nu ai destule credite, ai doar^x03 %i credit%s^x01.",  g_szTag, g_iUserCredits[ id ], g_iUserCredits[ id ] == 1 ? "" : "e"  );
		return 1;
	}
	
	g_iUserCredits[ id ] -= iCredits;
	g_iUserCredits[ iPlayer ] += iCredits;
	
	SaveCredits( id );
	SaveCredits( iPlayer );
	
	new szFirstName[ 32 ], szSecondName[ 32 ];
	
	get_user_name( id, szFirstName, sizeof ( szFirstName )  -1 );
	get_user_name( iPlayer, szSecondName, sizeof ( szSecondName )  -1 );
	
	ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a transferat^03 %i credit%s^x01 lui^x03 %s^x01 .", g_szTag, szFirstName, iCredits, iCredits == 1 ? "" : "e", szSecondName );
	return PLUGIN_HANDLED;
}

public Fwd_ClientUserInfoChanged( id, szBuffer )
{
	if ( !is_user_connected( id ) ) 
		return FMRES_IGNORED;
	
	static szNewName[ 32 ];
	
	engfunc( EngFunc_InfoKeyValue, szBuffer, "name", szNewName, sizeof ( szNewName ) -1 );
	
	if ( equal( szNewName, g_szName[ id ] ) )
		return FMRES_IGNORED;
	
	SaveCredits(  id  );
	
	ColorChat( id, RED, "^x04%s^x01 Tocmai ti-ai schimbat numele din^x03 %s^x01 in^x03 %s^x01 !", g_szTag, g_szName[ id ], szNewName );
	ColorChat( id, RED, "^x04%s^x01 Am salvat^x03 %i^x01 credite pe numele^x03 %s^x01 !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
	
	copy( g_szName[ id ], sizeof ( g_szName[] ) -1, szNewName );
	LoadCredits( id );
	
	ColorChat( id, RED, "^x04%s^x01 Am incarcat^x03 %i^x01 credite de pe noul nume (^x03 %s^x01 ) !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
	
	return FMRES_IGNORED;
}


public LoadCredits( id )
{
	static szData[ 256 ],  iTimestamp;
	
	if(  nvault_lookup( iVault, g_szName[ id ], szData, sizeof ( szData ) -1, iTimestamp ) )
	{
		static szCredits[ 15 ];
		parse( szData, szCredits, sizeof ( szCredits ) -1 );
		g_iUserCredits[ id ] = str_to_num( szCredits );
		return;
	}
	else
	{
		g_iUserCredits[ id ] = get_pcvar_num( g_iCvarEntry );
	}
	
}


public SaveCredits(  id  )
{
	
	static szData[ 256 ];
	formatex( szData, sizeof ( szData ) -1, "%i", g_iUserCredits[ id ] );
	
	nvault_set( iVault, g_szName[ id ], szData );
}


public task_PTRFunctions( )
{
	if( get_pcvar_num( g_iCvarPTREnable ) != 1 )
		return;
		
	static iPlayers[ 32 ];
	static iPlayersNum;
	
	get_players( iPlayers, iPlayersNum, "ch" );
	if( !iPlayersNum )
		return;
	
	static id, i;
	for( i = 0; i < iPlayersNum; i++ )
	{
		id = iPlayers[ i ];
		
		g_iUserTime[ id ]++;
		static iTime;
		iTime = get_pcvar_num( g_iCvarPTRMinutes ) ;
		
		if( g_iUserTime[ id ] >= iTime * 60 )
		{
			g_iUserTime[ id ] -= iTime * 60;
			
			static iCredits;
			iCredits = get_pcvar_num( g_iCvarPTRCredits );
			
			g_iUserCredits[ id ] += iCredits;
			ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credite pentru^x03 %i^x01 minute jucate!",
				g_szTag, iCredits, iTime );
				
			SaveCredits( id );
				
		}
	}
	
}

public ev_DeathMsg( )
{
	if( get_pcvar_num( g_iCvarKREnable ) != 1 )
		return;
	new iKiller = read_data( 1 );
	if( iKiller == read_data( 2 ) )
		return;
		
	new iCredits = get_pcvar_num( g_iCvarKRCredits );
	
	if( read_data( 3 ) )
		iCredits += get_pcvar_num( g_iCvarKRHSCredits );
		
	g_iUserCredits[ iKiller ] += iCredits;
	SaveCredits( iKiller );
	
}

public ev_SendAudioTerWin( )
{
	static iCvarEnable, iCvarFurienReward;
	iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
	iCvarFurienReward = get_pcvar_num( g_iCvarWTRFurien );
	
	if( iCvarEnable != 1 || iCvarFurienReward == 0 )
		return;
		
	GiveTeamReward( FCS_TEAM_FURIEN, iCvarFurienReward );
	
}


public ev_SendAudioCtWin( )
{
	
	static iCvarEnable, iCvarAntiReward;
	iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
	iCvarAntiReward = get_pcvar_num( g_iCvarWTRAnti );
	
	if( iCvarEnable != 1 || iCvarAntiReward == 0 )
		return;
		
	GiveTeamReward( FCS_TEAM_ANTIFURIEN, iCvarAntiReward );
}

public GiveTeamReward( const CsTeams:iTeam, iCredits )
{
	
	for(  new id = 1;  id <= g_iMaxPlayers;  id++   )
	{
		if( cs_get_user_team( id ) == iTeam )
		{
			ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credit%s pentru castigarea rundei!", g_szTag, iCredits, iCredits == 1 ? "" : "e" );
			g_iUserCredits[ id ] += iCredits;
			SaveCredits( id );
		}
	}
}

public plugin_end( )
{
	new iDays = get_pcvar_num( g_iCvarPruneDays );
	if( iDays > 0 )
	{
		nvault_prune( iVault, 0, get_systime( ) - ( iDays * ONE_DAY_IN_SECONDS ) );
	}
	
	nvault_close( iVault );
}

ColorChat(  id, Color:iType, const msg[  ], { Float, Sql, Result, _}:...  )
{
	
	// Daca nu se afla nici un jucator pe server oprim TOT. Altfel dam de erori..
	if( !get_playersnum( ) ) return;
	
	new szMessage[ 256 ];

	switch( iType )
	{
		 // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
		case NORMAL:	szMessage[ 0 ] = 0x01;
		
		// Culoare Verde.
		case GREEN:	szMessage[ 0 ] = 0x04;
		
		// Alb, Rosu, Albastru.
		default: 	szMessage[ 0 ] = 0x03;
	}

	vformat(  szMessage[ 1 ], 251, msg, 4  );

	// Ne asiguram ca mesajul nu este mai lung de 192 de caractere.Altfel pica server-ul.
	szMessage[ 192 ] = '^0';
	

	new iTeam, iColorChange, iPlayerIndex, MSG_Type;
	
	if( id )
	{
		MSG_Type  =  MSG_ONE_UNRELIABLE;
		iPlayerIndex  =  id;
	}
	else
	{
		iPlayerIndex  =  CC_FindPlayer(  );
		MSG_Type = MSG_ALL;
	}
	
	iTeam  =  get_user_team( iPlayerIndex );
	iColorChange  =  CC_ColorSelection(  iPlayerIndex,  MSG_Type, iType);

	CC_ShowColorMessage(  iPlayerIndex, MSG_Type, szMessage  );
		
	if(  iColorChange  )	CC_Team_Info(  iPlayerIndex, MSG_Type,  TeamName[ iTeam ]  );

}

CC_ShowColorMessage(  id, const iType, const szMessage[  ]  )
{
	
	static bool:bSayTextUsed;
	static iMsgSayText;
	
	if(  !bSayTextUsed  )
	{
		iMsgSayText  =  get_user_msgid( "SayText" );
		bSayTextUsed  =  true;
	}
	
	message_begin( iType, iMsgSayText, _, id  );
	write_byte(  id  );		
	write_string(  szMessage  );
	message_end(  );
}

CC_Team_Info( id, const iType, const szTeam[  ] )
{
	static bool:bTeamInfoUsed;
	static iMsgTeamInfo;
	if(  !bTeamInfoUsed  )
	{
		iMsgTeamInfo  =  get_user_msgid( "TeamInfo" );
		bTeamInfoUsed  =  true;
	}
	
	message_begin( iType, iMsgTeamInfo, _, id  );
	write_byte(  id  );
	write_string(  szTeam  );
	message_end(  );

	return 1;
}

CC_ColorSelection(  id, const iType, Color:iColorType)
{
	switch(  iColorType  )
	{
		
		case RED:	return CC_Team_Info(  id, iType, TeamName[ 1 ]  );
		case BLUE:	return CC_Team_Info(  id, iType, TeamName[ 2 ]  );
		case GREY:	return CC_Team_Info(  id, iType, TeamName[ 0 ]  );

	}

	return 0;
}

CC_FindPlayer(  )
{
	new iMaxPlayers  =  get_maxplayers(  );
	
	for( new i = 1; i <= iMaxPlayers; i++ )
		if(  is_user_connected( i )  )
			return i;
	
	return -1;
}
thanks
User avatar
Gabriel963
Fost moderator
Fost moderator
Posts: 1658
Joined: 03 Feb 2013, 13:03
Detinator Steam: Da
CS Status: Retried
Reputatie: Membru Club eXtreamCS (1 luna)
Fost Moderator
Location: Bucharest, Romania.
Has thanked: 20 times
Been thanked: 85 times

14 Sep 2013, 13:24

Turbo19973 wrote:
| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fakemeta >
#include < nvault >
#include < dhudmessage >

//#pragma semicolon 1


#define PLUGIN "Furien Credits System AIO"
#define VERSION "0.8.7Stable"

#define	ONE_DAY_IN_SECONDS	86400
#define TASK_pentru	06091993
#define FCS_TEAM_FURIEN 	CS_TEAM_T
#define FCS_TEAM_ANTIFURIEN	CS_TEAM_CT

enum Color
{
	NORMAL = 1, 		// Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
	GREEN, 			// Culoare Verde.
	TEAM_COLOR, 		// Culoare Rosu, Albastru, Gri.
	GREY, 			// Culoarea Gri.
	RED, 			// Culoarea Rosu.
	BLUE, 			// Culoarea Albastru.
};

new TeamName[  ][  ] = 
{
	"",
	"TERRORIST",
	"CT",
	"SPECTATOR"
};

enum (+= 100)
{
	TASK_MESAJHUD
}

#define ID_HUD (taskid - TASK_MESAJHUD)

new const g_szTag[ ] = "[Furien Credits]";
new const g_szGiveCreditsFlag[ ] = "a";

new g_iCvarPruneDays;
new g_iCvarEntry;

new g_iCvarPTREnable;
new g_iCvarPTRMinutes;
new g_iCvarPTRCredits;

new g_iCvarKREnable;
new g_iCvarKRCredits;
new g_iCvarKRHSCredits;

new g_iCvarTSEnable;
new g_iCvarTSMaxCredits;

new g_iCvarWTREnable;
new g_iCvarWTRFurien;
new g_iCvarWTRAnti;

new g_szName[ 33 ][ 32 ];
new g_iUserCredits[ 33 ];
new g_iUserTime[ 33 ];

new iVault;
new g_iMaxPlayers;
public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, "Askhanar" );
	register_cvar( "fcs_version_aio", VERSION, FCVAR_SERVER | FCVAR_SPONLY ); 

	g_iCvarPruneDays = register_cvar( "fcs_prunedays", "15" );
	g_iCvarEntry = register_cvar( "fcs_entry_credits", "300" );
	
	g_iCvarPTREnable = register_cvar( "fcs_pentru_enable", "1" );
	g_iCvarPTRMinutes = register_cvar( "fcs_pentru_minutes", "5" );
	g_iCvarPTRCredits = register_cvar( "fcs_pentru_credits", "15" );
	
	g_iCvarKREnable = register_cvar( "fcs_kr_enable", "1" );
	g_iCvarKRCredits = register_cvar( "fcs_kr_credits", "7" );
	g_iCvarKRHSCredits = register_cvar( "fcs_kr_hscredits", "3" );//( bonus, fcs_kr_credits + fcs_kr_hscredits )
	
	g_iCvarTSEnable = register_cvar("fcs_transfer_enable", "1" );
	g_iCvarTSMaxCredits = register_cvar("fcs_transfer_maxcredits", "50" );

	g_iCvarWTREnable = register_cvar( "fcs_wtr_enable", "1" );
	g_iCvarWTRFurien = register_cvar( "fcs_wtr_furien", "12" );
	g_iCvarWTRAnti = register_cvar( "fcs_wtr_antifurien", "20" );
	
	register_clcmd( "say", "ClCmdSay" );
	register_clcmd( "say_team", "ClCmdSay" );
	
	register_clcmd( "say /depozit", "ClCmdSayDepozit" );
	register_clcmd( "say /deposit", "ClCmdSayDepozit" );
	register_clcmd( "say_team /depozit", "ClCmdSayDepozit" );
	register_clcmd( "say_team /deposit", "ClCmdSayDepozit" );
	
	register_clcmd( "say /retrage", "ClCmdSayRetrage" );
	register_clcmd( "say /withdraw", "ClCmdSayRetrage" );
	register_clcmd( "say_team /retrage", "ClCmdSayRetrage" );
	register_clcmd( "say_team /withdraw", "ClCmdSayRetrage" );
	
	register_clcmd( "fcs_credite", "ClCmdCredits" );
	register_clcmd( "fcs_credits", "ClCmdCredits" );
	
	register_clcmd( "donate", "ClCmdFcsDonate" );
	register_clcmd( "transfer", "ClCmdFcsDonate" );
	
	register_clcmd( "amx_give_credits", "ClCmdGiveCredits" );
	register_clcmd( "amx_take_credits", "ClCmdTakeCredits" );
	
	register_forward( FM_ClientUserInfoChanged, "Fwd_ClientUserInfoChanged" );
	register_event( "DeathMsg","ev_DeathMsg", "a" );
	register_event( "SendAudio", "ev_SendAudioTerWin", "a", "2=%!MRAD_terwin" );
	register_event( "SendAudio", "ev_SendAudioCtWin", "a", "2=%!MRAD_ctwin" );
	
	
	iVault  =  nvault_open(  "FurienCreditsSystem"  );
	if(  iVault  ==  INVALID_HANDLE  )
		set_fail_state(  "nValut returned invalid handle!"  );
	
	set_task( 1.0, "task_PTRFunctions", TASK_pentru, _, _, "b", 0 );	
	g_iMaxPlayers = get_maxplayers( );

}

public plugin_natives()
{
	
	register_library( "fcs" );
	register_native( "fcs_get_user_credits", "_fcs_get_user_credits" );
	register_native( "fcs_set_user_credits", "_fcs_set_user_credits" );
	
}

public _fcs_get_user_credits( iPlugin, iParams )
{
	return g_iUserCredits[  get_param( 1 )  ];
}

public _fcs_set_user_credits(  iPlugin, iParams  )
{
	new id = get_param( 1 );
	g_iUserCredits[ id ] = max( 0, get_param( 2 ) );
	SaveCredits( id );
	return g_iUserCredits[ id ];
}
public client_putinserver(id) {
	
	set_task(1.0, "MesajHUD", id+TASK_MESAJHUD, _, _, "b");
}

public client_authorized( id )
{
	if( is_user_bot( id ) )
		return PLUGIN_CONTINUE;
	
	get_user_name( id, g_szName[ id ], sizeof ( g_szName[] ) -1 );
	LoadCredits( id );
	
	g_iUserTime[ id ] = 0;
	return PLUGIN_CONTINUE;
	
}

public client_disconnect( id )
{
	if( is_user_bot( id ) )
		return PLUGIN_CONTINUE;
		
	SaveCredits( id );
	
	return PLUGIN_CONTINUE;
	
}
public MesajHUD(taskid)
{
	static id
	id = ID_HUD;
	
	if(!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if(!is_user_alive(id))
			return;
	}
	
	if(id != ID_HUD)
	{
		new nume[32];
		get_user_name(id, nume, 31)
		set_dhudmessage(200, 100, 150, 0.0, 0.52, 0, 6.0, 1.1, 0.0, 0.0);
		show_dhudmessage(ID_HUD, "%s^nCredite: %d", nume, g_iUserCredits[ id ]);
	}
	else
	{
		set_dhudmessage(0, 100, 250, 0.0, 0.885, 0, 6.0, 1.1, 0.0, 0.0);
		show_dhudmessage(ID_HUD, "Credite: %d", g_iUserCredits[ id ]);
	}
}
public ClCmdSay( id )
{
	static szArgs[192];
	read_args( szArgs, sizeof ( szArgs ) -1 );
	
	if( !szArgs[ 0 ] )
		return 0;
	
	new szCommand[ 15 ];
	remove_quotes( szArgs[ 0 ] );
	
	if( equal( szArgs, "/credite", strlen( "/credite" ) )
		|| equal( szArgs, "/credits", strlen( "/credits" ) ) )
	{
		replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
		formatex( szCommand, sizeof ( szCommand ) -1, "fcs_%s", szArgs );
		client_cmd( id, szCommand );
		return 1;
	}
	else if( equal( szArgs,  "/transfer", strlen(  "/transfer" ) )
		|| equal( szArgs,  "/donate",  strlen(  "/donate" ) ) )
	{
		replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
		formatex( szCommand, sizeof ( szCommand ) -1, "%s", szArgs );
		client_cmd( id, szCommand );
		return 1;
	}
		
	return 0;
}

public ClCmdCredits( id )
{
	if( !is_user_connected( id ) )
		return 1;
		
	new szArg[ 32 ];
    	read_argv( 1, szArg, sizeof ( szArg ) -1 );

	if( equal( szArg, "" ) ) 
	{
		
		ColorChat( id, RED, "^x04%s^x01 Ai^x03 %i^x01 credite.", g_szTag, g_iUserCredits[ id ] );
		return 1;
	}
	
    	new iPlayer = cmd_target( id, szArg, 8 );
    	if( !iPlayer || !is_user_connected( iPlayer ) )
	{
		ColorChat( id, RED,"^x04%s^x01 Jucatorul specificat nu a fost gasit!", g_szTag, szArg );
		return 1;
	}

	new szName[ 32 ];
	get_user_name( iPlayer, szName, sizeof ( szName ) -1 );
	ColorChat( id, RED,"^x04%s^x01 Jucatorul^x03 %s^x01 are^x03 %i^x01 credit%s", g_szTag, szName, g_iUserCredits[ iPlayer ], g_iUserCredits[ iPlayer ] == 1 ? "." : "e." );
	
	return 1;
	
}

public ClCmdSayDepozit( id)
{
	
	if( !is_user_connected( id ) )
		return 1;
		
	new iTeam = get_user_team( id );
	
	if( 1 <= iTeam <= 2 )
	{
		new iMoney = cs_get_user_money( id );
		if( iMoney >= 16000 )
		{
			
			ColorChat( id, RED, "^x04%s^x01 Ai depozitat^x03 16000$^x01 si ai primit^x03 1^x01 credit.", g_szTag );
			cs_set_user_money( id, iMoney - 16000 );
			g_iUserCredits[ id ] += 1;
			
			SaveCredits( id );
			return 1;
		}
		else
		{
			ColorChat( id, RED, "^x04%s^x01 Iti trebuie^x03 16000$^x01 pentru a putea depozita.", g_szTag );
			return 1;
		}
	}
	
	return 1;

}

public ClCmdSayRetrage( id)
{
	
	new iTeam = get_user_team( id );
	
	if( 1 <= iTeam <= 2 )
	{
		
		if( g_iUserCredits[ id ] > 0 )
		{
			new iMoney = cs_get_user_money( id );
			
			ColorChat( id, RED, "^x04%s^x01 Ai retras^x03 1^x01 credit si, ai primi^x03 16000$^x01.", g_szTag );
			cs_set_user_money( id, iMoney + 16000 );
			
			g_iUserCredits[ id ] -=1;
			SaveCredits( id );
			
			if( ( iMoney + 16000 ) > 16000 )
			{
				ColorChat( id, RED, "^x04%s^x03 ATENTIE^x01, ai^x03 %i$^x01 !", g_szTag, iMoney + 16000 );
				ColorChat( id, RED, "^x04%s^x01 La spawn, vei pierde tot ce depaseste suma de^x03 16000$^x01.", g_szTag );
				return 1;
			}
		}
		else
		{
			ColorChat(id, RED, "^x04%s^x03 NU^x01 ai ce sa retragi, ai^x03 0^x01 credite.", g_szTag );
			return 1;
		}
		
	}
	
	return 1;

}

public ClCmdGiveCredits( id )
{
	
	if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
	{
		client_cmd( id, "echo NU ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		client_cmd( id, "echo amx_give_credits < nume/ @ALL/ @T/ @CT > < credite >" );
		return 1;
	}
	
	new iPlayers[ 32 ];
	new iPlayersNum;
	
	new iCredits = str_to_num( szSecondArg );
	if( iCredits <= 0 )
	{
		client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
	
	if( szFirstArg[ 0 ] == '@' )
	{
		
		switch ( szFirstArg[ 1 ] )
		{
			case 'A':
			{
				if( equal( szFirstArg, "@ALL" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ch" );
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite tuturor jucatorilor!", g_szTag, szName, iCredits );
					return 1;
				}
			}
			
			case 'T':
			{
				if( equal( szFirstArg, "@T" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" );
					if( iPlayersNum == 0 )
					{
						client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
						return 1;
					}
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 TERO^x01!", g_szTag, szName, iCredits );
					return 1;
				}
			}
			
			case 'C':
			{
				if( equal( szFirstArg, "@CT" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ceh", "CT" );
					if( iPlayersNum == 0 )
					{
						client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
						return 1;
					}
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 CT^x01!", g_szTag, szName, iCredits );
					return 1;
				}
			}
		}
	}
		
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer )
	{
		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	g_iUserCredits[ iPlayer ] += iCredits;
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	
	ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a dat^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
	
	return 1;
	
	
}

public ClCmdTakeCredits( id )
{
	
	if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
	{
		client_cmd( id, "echo NU ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		client_cmd( id, "echo amx_take_credits < nume > < credite >" );
		return 1;
	}
	
	new iCredits = str_to_num( szSecondArg );
	if( iCredits <= 0 )
	{
		client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
			
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer )
	{
		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	if( g_iUserCredits[ iPlayer ] < iCredits )
	{
		client_cmd( id, "echo Jucatorul %s nu are atatea credite!Are doar %i", szFirstArg, g_iUserCredits[ iPlayer ] );
		return 1;
	}
	
	g_iUserCredits[ iPlayer ] -= iCredits;
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	
	ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a sters^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
	
	return 1;
	
	
}

public ClCmdFcsDonate( id )
{
	if(  get_pcvar_num(  g_iCvarTSEnable  )  !=  1  )
	{
		ColorChat( id, RED, "^x04%s^x01 Comanda dezactivata de catre server!",  g_szTag  );
		return PLUGIN_HANDLED;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
    	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		ColorChat( id, RED, "^x04%s^x01 Folosire:^x03 /transfer^x01 sau^x03 /donate^x01 <^x03 nume^x01 > <^x03 credite^x01 >.", g_szTag );
		return 1;
	}
	
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	
	if( !iPlayer  )
	{
		ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", g_szTag );
		return PLUGIN_HANDLED;
	}
	
	//if( iPlayer == id )
	//{
	//	ColorChat(  id,  RED, "^x04%s^x01 Nu-ti poti transfera credite.", g_szTag );
	//	return PLUGIN_HANDLED;
	//}
	
	
	new iCredits;
	iCredits = str_to_num( szSecondArg );
	
	
	if( iCredits <= 0 )
	{
		ColorChat( id, RED, "^x04%s^x01 Trebuie sa introduci o valoare mai mare de 0.", g_szTag );
		return PLUGIN_HANDLED;
	}
	
	new iMaxCredits = get_pcvar_num( g_iCvarTSMaxCredits );
	if( iCredits > iMaxCredits )
	{
		ColorChat( id, RED, "^x04%s^x01 Poti transfera maxim^x03 %i^x01 credit%s o data!", g_szTag, iMaxCredits, iMaxCredits == 1 ? "" : "e" );
		return PLUGIN_HANDLED;
	}
	
	if( g_iUserCredits[ id ] <  iCredits  )
	{
		ColorChat(  id,  RED, "^x04%s^x01 Nu ai destule credite, ai doar^x03 %i credit%s^x01.",  g_szTag, g_iUserCredits[ id ], g_iUserCredits[ id ] == 1 ? "" : "e"  );
		return 1;
	}
	
	g_iUserCredits[ id ] -= iCredits;
	g_iUserCredits[ iPlayer ] += iCredits;
	
	SaveCredits( id );
	SaveCredits( iPlayer );
	
	new szFirstName[ 32 ], szSecondName[ 32 ];
	
	get_user_name( id, szFirstName, sizeof ( szFirstName )  -1 );
	get_user_name( iPlayer, szSecondName, sizeof ( szSecondName )  -1 );
	
	ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a transferat^03 %i credit%s^x01 lui^x03 %s^x01 .", g_szTag, szFirstName, iCredits, iCredits == 1 ? "" : "e", szSecondName );
	return PLUGIN_HANDLED;
}

public Fwd_ClientUserInfoChanged( id, szBuffer )
{
	if ( !is_user_connected( id ) ) 
		return FMRES_IGNORED;
	
	static szNewName[ 32 ];
	
	engfunc( EngFunc_InfoKeyValue, szBuffer, "name", szNewName, sizeof ( szNewName ) -1 );
	
	if ( equal( szNewName, g_szName[ id ] ) )
		return FMRES_IGNORED;
	
	SaveCredits(  id  );
	
	ColorChat( id, RED, "^x04%s^x01 Tocmai ti-ai schimbat numele din^x03 %s^x01 in^x03 %s^x01 !", g_szTag, g_szName[ id ], szNewName );
	ColorChat( id, RED, "^x04%s^x01 Am salvat^x03 %i^x01 credite pe numele^x03 %s^x01 !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
	
	copy( g_szName[ id ], sizeof ( g_szName[] ) -1, szNewName );
	LoadCredits( id );
	
	ColorChat( id, RED, "^x04%s^x01 Am incarcat^x03 %i^x01 credite de pe noul nume (^x03 %s^x01 ) !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
	
	return FMRES_IGNORED;
}


public LoadCredits( id )
{
	static szData[ 256 ],  iTimestamp;
	
	if(  nvault_lookup( iVault, g_szName[ id ], szData, sizeof ( szData ) -1, iTimestamp ) )
	{
		static szCredits[ 15 ];
		parse( szData, szCredits, sizeof ( szCredits ) -1 );
		g_iUserCredits[ id ] = str_to_num( szCredits );
		return;
	}
	else
	{
		g_iUserCredits[ id ] = get_pcvar_num( g_iCvarEntry );
	}
	
}


public SaveCredits(  id  )
{
	
	static szData[ 256 ];
	formatex( szData, sizeof ( szData ) -1, "%i", g_iUserCredits[ id ] );
	
	nvault_set( iVault, g_szName[ id ], szData );
}


public task_PTRFunctions( )
{
	if( get_pcvar_num( g_iCvarPTREnable ) != 1 )
		return;
		
	static iPlayers[ 32 ];
	static iPlayersNum;
	
	get_players( iPlayers, iPlayersNum, "ch" );
	if( !iPlayersNum )
		return;
	
	static id, i;
	for( i = 0; i < iPlayersNum; i++ )
	{
		id = iPlayers[ i ];
		
		g_iUserTime[ id ]++;
		static iTime;
		iTime = get_pcvar_num( g_iCvarPTRMinutes ) ;
		
		if( g_iUserTime[ id ] >= iTime * 60 )
		{
			g_iUserTime[ id ] -= iTime * 60;
			
			static iCredits;
			iCredits = get_pcvar_num( g_iCvarPTRCredits );
			
			g_iUserCredits[ id ] += iCredits;
			ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credite pentru^x03 %i^x01 minute jucate!",
				g_szTag, iCredits, iTime );
				
			SaveCredits( id );
				
		}
	}
	
}

public ev_DeathMsg( )
{
	if( get_pcvar_num( g_iCvarKREnable ) != 1 )
		return;
	new iKiller = read_data( 1 );
	if( iKiller == read_data( 2 ) )
		return;
		
	new iCredits = get_pcvar_num( g_iCvarKRCredits );
	
	if( read_data( 3 ) )
		iCredits += get_pcvar_num( g_iCvarKRHSCredits );
		
	g_iUserCredits[ iKiller ] += iCredits;
	SaveCredits( iKiller );
	
}

public ev_SendAudioTerWin( )
{
	static iCvarEnable, iCvarFurienReward;
	iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
	iCvarFurienReward = get_pcvar_num( g_iCvarWTRFurien );
	
	if( iCvarEnable != 1 || iCvarFurienReward == 0 )
		return;
		
	GiveTeamReward( FCS_TEAM_FURIEN, iCvarFurienReward );
	
}


public ev_SendAudioCtWin( )
{
	
	static iCvarEnable, iCvarAntiReward;
	iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
	iCvarAntiReward = get_pcvar_num( g_iCvarWTRAnti );
	
	if( iCvarEnable != 1 || iCvarAntiReward == 0 )
		return;
		
	GiveTeamReward( FCS_TEAM_ANTIFURIEN, iCvarAntiReward );
}

public GiveTeamReward( const CsTeams:iTeam, iCredits )
{
	
	for(  new id = 1;  id <= g_iMaxPlayers;  id++   )
	{
		if( cs_get_user_team( id ) == iTeam )
		{
			ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credit%s pentru castigarea rundei!", g_szTag, iCredits, iCredits == 1 ? "" : "e" );
			g_iUserCredits[ id ] += iCredits;
			SaveCredits( id );
		}
	}
}

public plugin_end( )
{
	new iDays = get_pcvar_num( g_iCvarPruneDays );
	if( iDays > 0 )
	{
		nvault_prune( iVault, 0, get_systime( ) - ( iDays * ONE_DAY_IN_SECONDS ) );
	}
	
	nvault_close( iVault );
}

ColorChat(  id, Color:iType, const msg[  ], { Float, Sql, Result, _}:...  )
{
	
	// Daca nu se afla nici un jucator pe server oprim TOT. Altfel dam de erori..
	if( !get_playersnum( ) ) return;
	
	new szMessage[ 256 ];

	switch( iType )
	{
		 // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
		case NORMAL:	szMessage[ 0 ] = 0x01;
		
		// Culoare Verde.
		case GREEN:	szMessage[ 0 ] = 0x04;
		
		// Alb, Rosu, Albastru.
		default: 	szMessage[ 0 ] = 0x03;
	}

	vformat(  szMessage[ 1 ], 251, msg, 4  );

	// Ne asiguram ca mesajul nu este mai lung de 192 de caractere.Altfel pica server-ul.
	szMessage[ 192 ] = '^0';
	

	new iTeam, iColorChange, iPlayerIndex, MSG_Type;
	
	if( id )
	{
		MSG_Type  =  MSG_ONE_UNRELIABLE;
		iPlayerIndex  =  id;
	}
	else
	{
		iPlayerIndex  =  CC_FindPlayer(  );
		MSG_Type = MSG_ALL;
	}
	
	iTeam  =  get_user_team( iPlayerIndex );
	iColorChange  =  CC_ColorSelection(  iPlayerIndex,  MSG_Type, iType);

	CC_ShowColorMessage(  iPlayerIndex, MSG_Type, szMessage  );
		
	if(  iColorChange  )	CC_Team_Info(  iPlayerIndex, MSG_Type,  TeamName[ iTeam ]  );

}

CC_ShowColorMessage(  id, const iType, const szMessage[  ]  )
{
	
	static bool:bSayTextUsed;
	static iMsgSayText;
	
	if(  !bSayTextUsed  )
	{
		iMsgSayText  =  get_user_msgid( "SayText" );
		bSayTextUsed  =  true;
	}
	
	message_begin( iType, iMsgSayText, _, id  );
	write_byte(  id  );		
	write_string(  szMessage  );
	message_end(  );
}

CC_Team_Info( id, const iType, const szTeam[  ] )
{
	static bool:bTeamInfoUsed;
	static iMsgTeamInfo;
	if(  !bTeamInfoUsed  )
	{
		iMsgTeamInfo  =  get_user_msgid( "TeamInfo" );
		bTeamInfoUsed  =  true;
	}
	
	message_begin( iType, iMsgTeamInfo, _, id  );
	write_byte(  id  );
	write_string(  szTeam  );
	message_end(  );

	return 1;
}

CC_ColorSelection(  id, const iType, Color:iColorType)
{
	switch(  iColorType  )
	{
		
		case RED:	return CC_Team_Info(  id, iType, TeamName[ 1 ]  );
		case BLUE:	return CC_Team_Info(  id, iType, TeamName[ 2 ]  );
		case GREY:	return CC_Team_Info(  id, iType, TeamName[ 0 ]  );

	}

	return 0;
}

CC_FindPlayer(  )
{
	new iMaxPlayers  =  get_maxplayers(  );
	
	for( new i = 1; i <= iMaxPlayers; i++ )
		if(  is_user_connected( i )  )
			return i;
	
	return -1;
}
Gabi, imi poti face si mie la fel dar sa fie pe mijloc si sa fie asa : HP | AP | Credits
Image
User avatar
FlyingSnow
Membru, skill +2
Membru, skill +2
Posts: 825
Joined: 01 Oct 2012, 02:22
Detinator Steam: Da
Detinator server CS: Dap.
SteamID: Nu-i public.
Has thanked: 26 times
Been thanked: 52 times
Contact:

14 Sep 2013, 13:25

Pe mijloc unde? sus, jos..?
User avatar
-Turbo-
Membru, skill +4
Membru, skill +4
Posts: 1664
Joined: 11 Nov 2012, 01:28
Detinator Steam: Da
CS Status: Bored !
Detinator server CS: Da
SteamID: kingforbidden
Reputatie: Utilizator neserios ( tepar )
Restrictie moderator
Ban scos ( achitat )
Nume anterior: Turbo19973
Location: Botosani
Has thanked: 49 times
Been thanked: 212 times

14 Sep 2013, 13:31

| Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fakemeta >
#include < nvault >
#include < dhudmessage >

//#pragma semicolon 1


#define PLUGIN "Furien Credits System AIO"
#define VERSION "0.8.7Stable"

#define	ONE_DAY_IN_SECONDS	86400
#define TASK_pentru	06091993
#define FCS_TEAM_FURIEN 	CS_TEAM_T
#define FCS_TEAM_ANTIFURIEN	CS_TEAM_CT

enum Color
{
	NORMAL = 1, 		// Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
	GREEN, 			// Culoare Verde.
	TEAM_COLOR, 		// Culoare Rosu, Albastru, Gri.
	GREY, 			// Culoarea Gri.
	RED, 			// Culoarea Rosu.
	BLUE, 			// Culoarea Albastru.
};

new TeamName[  ][  ] = 
{
	"",
	"TERRORIST",
	"CT",
	"SPECTATOR"
};

enum (+= 100)
{
	TASK_MESAJHUD
}

#define ID_HUD (taskid - TASK_MESAJHUD)

new const g_szTag[ ] = "[Furien Credits]";
new const g_szGiveCreditsFlag[ ] = "a";

new g_iCvarPruneDays;
new g_iCvarEntry;

new g_iCvarPTREnable;
new g_iCvarPTRMinutes;
new g_iCvarPTRCredits;

new g_iCvarKREnable;
new g_iCvarKRCredits;
new g_iCvarKRHSCredits;

new g_iCvarTSEnable;
new g_iCvarTSMaxCredits;

new g_iCvarWTREnable;
new g_iCvarWTRFurien;
new g_iCvarWTRAnti;

new g_szName[ 33 ][ 32 ];
new g_iUserCredits[ 33 ];
new g_iUserTime[ 33 ];

new iVault;
new g_iMaxPlayers;
public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, "Askhanar" );
	register_cvar( "fcs_version_aio", VERSION, FCVAR_SERVER | FCVAR_SPONLY ); 

	g_iCvarPruneDays = register_cvar( "fcs_prunedays", "15" );
	g_iCvarEntry = register_cvar( "fcs_entry_credits", "300" );
	
	g_iCvarPTREnable = register_cvar( "fcs_pentru_enable", "1" );
	g_iCvarPTRMinutes = register_cvar( "fcs_pentru_minutes", "5" );
	g_iCvarPTRCredits = register_cvar( "fcs_pentru_credits", "15" );
	
	g_iCvarKREnable = register_cvar( "fcs_kr_enable", "1" );
	g_iCvarKRCredits = register_cvar( "fcs_kr_credits", "7" );
	g_iCvarKRHSCredits = register_cvar( "fcs_kr_hscredits", "3" );//( bonus, fcs_kr_credits + fcs_kr_hscredits )
	
	g_iCvarTSEnable = register_cvar("fcs_transfer_enable", "1" );
	g_iCvarTSMaxCredits = register_cvar("fcs_transfer_maxcredits", "50" );

	g_iCvarWTREnable = register_cvar( "fcs_wtr_enable", "1" );
	g_iCvarWTRFurien = register_cvar( "fcs_wtr_furien", "12" );
	g_iCvarWTRAnti = register_cvar( "fcs_wtr_antifurien", "20" );
	
	register_clcmd( "say", "ClCmdSay" );
	register_clcmd( "say_team", "ClCmdSay" );
	
	register_clcmd( "say /depozit", "ClCmdSayDepozit" );
	register_clcmd( "say /deposit", "ClCmdSayDepozit" );
	register_clcmd( "say_team /depozit", "ClCmdSayDepozit" );
	register_clcmd( "say_team /deposit", "ClCmdSayDepozit" );
	
	register_clcmd( "say /retrage", "ClCmdSayRetrage" );
	register_clcmd( "say /withdraw", "ClCmdSayRetrage" );
	register_clcmd( "say_team /retrage", "ClCmdSayRetrage" );
	register_clcmd( "say_team /withdraw", "ClCmdSayRetrage" );
	
	register_clcmd( "fcs_credite", "ClCmdCredits" );
	register_clcmd( "fcs_credits", "ClCmdCredits" );
	
	register_clcmd( "donate", "ClCmdFcsDonate" );
	register_clcmd( "transfer", "ClCmdFcsDonate" );
	
	register_clcmd( "amx_give_credits", "ClCmdGiveCredits" );
	register_clcmd( "amx_take_credits", "ClCmdTakeCredits" );
	
	register_forward( FM_ClientUserInfoChanged, "Fwd_ClientUserInfoChanged" );
	register_event( "DeathMsg","ev_DeathMsg", "a" );
	register_event( "SendAudio", "ev_SendAudioTerWin", "a", "2=%!MRAD_terwin" );
	register_event( "SendAudio", "ev_SendAudioCtWin", "a", "2=%!MRAD_ctwin" );
	
	
	iVault  =  nvault_open(  "FurienCreditsSystem"  );
	if(  iVault  ==  INVALID_HANDLE  )
		set_fail_state(  "nValut returned invalid handle!"  );
	
	set_task( 1.0, "task_PTRFunctions", TASK_pentru, _, _, "b", 0 );	
	g_iMaxPlayers = get_maxplayers( );

}

public plugin_natives()
{
	
	register_library( "fcs" );
	register_native( "fcs_get_user_credits", "_fcs_get_user_credits" );
	register_native( "fcs_set_user_credits", "_fcs_set_user_credits" );
	
}

public _fcs_get_user_credits( iPlugin, iParams )
{
	return g_iUserCredits[  get_param( 1 )  ];
}

public _fcs_set_user_credits(  iPlugin, iParams  )
{
	new id = get_param( 1 );
	g_iUserCredits[ id ] = max( 0, get_param( 2 ) );
	SaveCredits( id );
	return g_iUserCredits[ id ];
}
public client_putinserver(id) {
	
	set_task(1.0, "MesajHUD", id+TASK_MESAJHUD, _, _, "b");
}

public client_authorized( id )
{
	if( is_user_bot( id ) )
		return PLUGIN_CONTINUE;
	
	get_user_name( id, g_szName[ id ], sizeof ( g_szName[] ) -1 );
	LoadCredits( id );
	
	g_iUserTime[ id ] = 0;
	return PLUGIN_CONTINUE;
	
}

public client_disconnect( id )
{
	if( is_user_bot( id ) )
		return PLUGIN_CONTINUE;
		
	SaveCredits( id );
	
	return PLUGIN_CONTINUE;
	
}
public MesajHUD(taskid)
{
	static id
	id = ID_HUD;
	
	if(!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if(!is_user_alive(id))
			return;
	}
	
	if(id != ID_HUD)
	{
		new nume[32];
		get_user_name(id, nume, 31)
		set_dhudmessage(200, 100, 150, 0.0, 0.52, 0, 6.0, 1.1, 0.0, 0.0);
		show_dhudmessage(ID_HUD, "%s^nHP: %d|AP: %d |Credite: %d", nume,pev(id, pev_health),pev(id, pev_armor) ,g_iUserCredits[ id ]);
	}
	else
	{
		set_dhudmessage(0, 100, 250, 0.5, 0.69, 0, 6.0, 1.1, 0.0, 0.0);
		show_dhudmessage(ID_HUD, "^nHP: %d |AP: %d | Credite: %d", pev(ID_HUD, pev_health),pev(ID_HUD, pev_armor) g_iUserCredits[ id ])
	}
}
public ClCmdSay( id )
{
	static szArgs[192];
	read_args( szArgs, sizeof ( szArgs ) -1 );
	
	if( !szArgs[ 0 ] )
		return 0;
	
	new szCommand[ 15 ];
	remove_quotes( szArgs[ 0 ] );
	
	if( equal( szArgs, "/credite", strlen( "/credite" ) )
		|| equal( szArgs, "/credits", strlen( "/credits" ) ) )
	{
		replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
		formatex( szCommand, sizeof ( szCommand ) -1, "fcs_%s", szArgs );
		client_cmd( id, szCommand );
		return 1;
	}
	else if( equal( szArgs,  "/transfer", strlen(  "/transfer" ) )
		|| equal( szArgs,  "/donate",  strlen(  "/donate" ) ) )
	{
		replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
		formatex( szCommand, sizeof ( szCommand ) -1, "%s", szArgs );
		client_cmd( id, szCommand );
		return 1;
	}
		
	return 0;
}

public ClCmdCredits( id )
{
	if( !is_user_connected( id ) )
		return 1;
		
	new szArg[ 32 ];
    	read_argv( 1, szArg, sizeof ( szArg ) -1 );

	if( equal( szArg, "" ) ) 
	{
		
		ColorChat( id, RED, "^x04%s^x01 Ai^x03 %i^x01 credite.", g_szTag, g_iUserCredits[ id ] );
		return 1;
	}
	
    	new iPlayer = cmd_target( id, szArg, 8 );
    	if( !iPlayer || !is_user_connected( iPlayer ) )
	{
		ColorChat( id, RED,"^x04%s^x01 Jucatorul specificat nu a fost gasit!", g_szTag, szArg );
		return 1;
	}

	new szName[ 32 ];
	get_user_name( iPlayer, szName, sizeof ( szName ) -1 );
	ColorChat( id, RED,"^x04%s^x01 Jucatorul^x03 %s^x01 are^x03 %i^x01 credit%s", g_szTag, szName, g_iUserCredits[ iPlayer ], g_iUserCredits[ iPlayer ] == 1 ? "." : "e." );
	
	return 1;
	
}

public ClCmdSayDepozit( id)
{
	
	if( !is_user_connected( id ) )
		return 1;
		
	new iTeam = get_user_team( id );
	
	if( 1 <= iTeam <= 2 )
	{
		new iMoney = cs_get_user_money( id );
		if( iMoney >= 16000 )
		{
			
			ColorChat( id, RED, "^x04%s^x01 Ai depozitat^x03 16000$^x01 si ai primit^x03 1^x01 credit.", g_szTag );
			cs_set_user_money( id, iMoney - 16000 );
			g_iUserCredits[ id ] += 1;
			
			SaveCredits( id );
			return 1;
		}
		else
		{
			ColorChat( id, RED, "^x04%s^x01 Iti trebuie^x03 16000$^x01 pentru a putea depozita.", g_szTag );
			return 1;
		}
	}
	
	return 1;

}

public ClCmdSayRetrage( id)
{
	
	new iTeam = get_user_team( id );
	
	if( 1 <= iTeam <= 2 )
	{
		
		if( g_iUserCredits[ id ] > 0 )
		{
			new iMoney = cs_get_user_money( id );
			
			ColorChat( id, RED, "^x04%s^x01 Ai retras^x03 1^x01 credit si, ai primi^x03 16000$^x01.", g_szTag );
			cs_set_user_money( id, iMoney + 16000 );
			
			g_iUserCredits[ id ] -=1;
			SaveCredits( id );
			
			if( ( iMoney + 16000 ) > 16000 )
			{
				ColorChat( id, RED, "^x04%s^x03 ATENTIE^x01, ai^x03 %i$^x01 !", g_szTag, iMoney + 16000 );
				ColorChat( id, RED, "^x04%s^x01 La spawn, vei pierde tot ce depaseste suma de^x03 16000$^x01.", g_szTag );
				return 1;
			}
		}
		else
		{
			ColorChat(id, RED, "^x04%s^x03 NU^x01 ai ce sa retragi, ai^x03 0^x01 credite.", g_szTag );
			return 1;
		}
		
	}
	
	return 1;

}

public ClCmdGiveCredits( id )
{
	
	if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
	{
		client_cmd( id, "echo NU ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		client_cmd( id, "echo amx_give_credits < nume/ @ALL/ @T/ @CT > < credite >" );
		return 1;
	}
	
	new iPlayers[ 32 ];
	new iPlayersNum;
	
	new iCredits = str_to_num( szSecondArg );
	if( iCredits <= 0 )
	{
		client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
	
	if( szFirstArg[ 0 ] == '@' )
	{
		
		switch ( szFirstArg[ 1 ] )
		{
			case 'A':
			{
				if( equal( szFirstArg, "@ALL" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ch" );
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite tuturor jucatorilor!", g_szTag, szName, iCredits );
					return 1;
				}
			}
			
			case 'T':
			{
				if( equal( szFirstArg, "@T" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" );
					if( iPlayersNum == 0 )
					{
						client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
						return 1;
					}
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 TERO^x01!", g_szTag, szName, iCredits );
					return 1;
				}
			}
			
			case 'C':
			{
				if( equal( szFirstArg, "@CT" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ceh", "CT" );
					if( iPlayersNum == 0 )
					{
						client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
						return 1;
					}
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 CT^x01!", g_szTag, szName, iCredits );
					return 1;
				}
			}
		}
	}
		
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer )
	{
		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	g_iUserCredits[ iPlayer ] += iCredits;
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	
	ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a dat^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
	
	return 1;
	
	
}

public ClCmdTakeCredits( id )
{
	
	if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
	{
		client_cmd( id, "echo NU ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		client_cmd( id, "echo amx_take_credits < nume > < credite >" );
		return 1;
	}
	
	new iCredits = str_to_num( szSecondArg );
	if( iCredits <= 0 )
	{
		client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
			
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer )
	{
		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	if( g_iUserCredits[ iPlayer ] < iCredits )
	{
		client_cmd( id, "echo Jucatorul %s nu are atatea credite!Are doar %i", szFirstArg, g_iUserCredits[ iPlayer ] );
		return 1;
	}
	
	g_iUserCredits[ iPlayer ] -= iCredits;
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	
	ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a sters^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
	
	return 1;
	
	
}

public ClCmdFcsDonate( id )
{
	if(  get_pcvar_num(  g_iCvarTSEnable  )  !=  1  )
	{
		ColorChat( id, RED, "^x04%s^x01 Comanda dezactivata de catre server!",  g_szTag  );
		return PLUGIN_HANDLED;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
    	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		ColorChat( id, RED, "^x04%s^x01 Folosire:^x03 /transfer^x01 sau^x03 /donate^x01 <^x03 nume^x01 > <^x03 credite^x01 >.", g_szTag );
		return 1;
	}
	
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	
	if( !iPlayer  )
	{
		ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", g_szTag );
		return PLUGIN_HANDLED;
	}
	
	//if( iPlayer == id )
	//{
	//	ColorChat(  id,  RED, "^x04%s^x01 Nu-ti poti transfera credite.", g_szTag );
	//	return PLUGIN_HANDLED;
	//}
	
	
	new iCredits;
	iCredits = str_to_num( szSecondArg );
	
	
	if( iCredits <= 0 )
	{
		ColorChat( id, RED, "^x04%s^x01 Trebuie sa introduci o valoare mai mare de 0.", g_szTag );
		return PLUGIN_HANDLED;
	}
	
	new iMaxCredits = get_pcvar_num( g_iCvarTSMaxCredits );
	if( iCredits > iMaxCredits )
	{
		ColorChat( id, RED, "^x04%s^x01 Poti transfera maxim^x03 %i^x01 credit%s o data!", g_szTag, iMaxCredits, iMaxCredits == 1 ? "" : "e" );
		return PLUGIN_HANDLED;
	}
	
	if( g_iUserCredits[ id ] <  iCredits  )
	{
		ColorChat(  id,  RED, "^x04%s^x01 Nu ai destule credite, ai doar^x03 %i credit%s^x01.",  g_szTag, g_iUserCredits[ id ], g_iUserCredits[ id ] == 1 ? "" : "e"  );
		return 1;
	}
	
	g_iUserCredits[ id ] -= iCredits;
	g_iUserCredits[ iPlayer ] += iCredits;
	
	SaveCredits( id );
	SaveCredits( iPlayer );
	
	new szFirstName[ 32 ], szSecondName[ 32 ];
	
	get_user_name( id, szFirstName, sizeof ( szFirstName )  -1 );
	get_user_name( iPlayer, szSecondName, sizeof ( szSecondName )  -1 );
	
	ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a transferat^03 %i credit%s^x01 lui^x03 %s^x01 .", g_szTag, szFirstName, iCredits, iCredits == 1 ? "" : "e", szSecondName );
	return PLUGIN_HANDLED;
}

public Fwd_ClientUserInfoChanged( id, szBuffer )
{
	if ( !is_user_connected( id ) ) 
		return FMRES_IGNORED;
	
	static szNewName[ 32 ];
	
	engfunc( EngFunc_InfoKeyValue, szBuffer, "name", szNewName, sizeof ( szNewName ) -1 );
	
	if ( equal( szNewName, g_szName[ id ] ) )
		return FMRES_IGNORED;
	
	SaveCredits(  id  );
	
	ColorChat( id, RED, "^x04%s^x01 Tocmai ti-ai schimbat numele din^x03 %s^x01 in^x03 %s^x01 !", g_szTag, g_szName[ id ], szNewName );
	ColorChat( id, RED, "^x04%s^x01 Am salvat^x03 %i^x01 credite pe numele^x03 %s^x01 !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
	
	copy( g_szName[ id ], sizeof ( g_szName[] ) -1, szNewName );
	LoadCredits( id );
	
	ColorChat( id, RED, "^x04%s^x01 Am incarcat^x03 %i^x01 credite de pe noul nume (^x03 %s^x01 ) !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
	
	return FMRES_IGNORED;
}


public LoadCredits( id )
{
	static szData[ 256 ],  iTimestamp;
	
	if(  nvault_lookup( iVault, g_szName[ id ], szData, sizeof ( szData ) -1, iTimestamp ) )
	{
		static szCredits[ 15 ];
		parse( szData, szCredits, sizeof ( szCredits ) -1 );
		g_iUserCredits[ id ] = str_to_num( szCredits );
		return;
	}
	else
	{
		g_iUserCredits[ id ] = get_pcvar_num( g_iCvarEntry );
	}
	
}


public SaveCredits(  id  )
{
	
	static szData[ 256 ];
	formatex( szData, sizeof ( szData ) -1, "%i", g_iUserCredits[ id ] );
	
	nvault_set( iVault, g_szName[ id ], szData );
}


public task_PTRFunctions( )
{
	if( get_pcvar_num( g_iCvarPTREnable ) != 1 )
		return;
		
	static iPlayers[ 32 ];
	static iPlayersNum;
	
	get_players( iPlayers, iPlayersNum, "ch" );
	if( !iPlayersNum )
		return;
	
	static id, i;
	for( i = 0; i < iPlayersNum; i++ )
	{
		id = iPlayers[ i ];
		
		g_iUserTime[ id ]++;
		static iTime;
		iTime = get_pcvar_num( g_iCvarPTRMinutes ) ;
		
		if( g_iUserTime[ id ] >= iTime * 60 )
		{
			g_iUserTime[ id ] -= iTime * 60;
			
			static iCredits;
			iCredits = get_pcvar_num( g_iCvarPTRCredits );
			
			g_iUserCredits[ id ] += iCredits;
			ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credite pentru^x03 %i^x01 minute jucate!",
				g_szTag, iCredits, iTime );
				
			SaveCredits( id );
				
		}
	}
	
}

public ev_DeathMsg( )
{
	if( get_pcvar_num( g_iCvarKREnable ) != 1 )
		return;
	new iKiller = read_data( 1 );
	if( iKiller == read_data( 2 ) )
		return;
		
	new iCredits = get_pcvar_num( g_iCvarKRCredits );
	
	if( read_data( 3 ) )
		iCredits += get_pcvar_num( g_iCvarKRHSCredits );
		
	g_iUserCredits[ iKiller ] += iCredits;
	SaveCredits( iKiller );
	
}

public ev_SendAudioTerWin( )
{
	static iCvarEnable, iCvarFurienReward;
	iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
	iCvarFurienReward = get_pcvar_num( g_iCvarWTRFurien );
	
	if( iCvarEnable != 1 || iCvarFurienReward == 0 )
		return;
		
	GiveTeamReward( FCS_TEAM_FURIEN, iCvarFurienReward );
	
}


public ev_SendAudioCtWin( )
{
	
	static iCvarEnable, iCvarAntiReward;
	iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
	iCvarAntiReward = get_pcvar_num( g_iCvarWTRAnti );
	
	if( iCvarEnable != 1 || iCvarAntiReward == 0 )
		return;
		
	GiveTeamReward( FCS_TEAM_ANTIFURIEN, iCvarAntiReward );
}

public GiveTeamReward( const CsTeams:iTeam, iCredits )
{
	
	for(  new id = 1;  id <= g_iMaxPlayers;  id++   )
	{
		if( cs_get_user_team( id ) == iTeam )
		{
			ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credit%s pentru castigarea rundei!", g_szTag, iCredits, iCredits == 1 ? "" : "e" );
			g_iUserCredits[ id ] += iCredits;
			SaveCredits( id );
		}
	}
}

public plugin_end( )
{
	new iDays = get_pcvar_num( g_iCvarPruneDays );
	if( iDays > 0 )
	{
		nvault_prune( iVault, 0, get_systime( ) - ( iDays * ONE_DAY_IN_SECONDS ) );
	}
	
	nvault_close( iVault );
}

ColorChat(  id, Color:iType, const msg[  ], { Float, Sql, Result, _}:...  )
{
	
	// Daca nu se afla nici un jucator pe server oprim TOT. Altfel dam de erori..
	if( !get_playersnum( ) ) return;
	
	new szMessage[ 256 ];

	switch( iType )
	{
		 // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
		case NORMAL:	szMessage[ 0 ] = 0x01;
		
		// Culoare Verde.
		case GREEN:	szMessage[ 0 ] = 0x04;
		
		// Alb, Rosu, Albastru.
		default: 	szMessage[ 0 ] = 0x03;
	}

	vformat(  szMessage[ 1 ], 251, msg, 4  );

	// Ne asiguram ca mesajul nu este mai lung de 192 de caractere.Altfel pica server-ul.
	szMessage[ 192 ] = '^0';
	

	new iTeam, iColorChange, iPlayerIndex, MSG_Type;
	
	if( id )
	{
		MSG_Type  =  MSG_ONE_UNRELIABLE;
		iPlayerIndex  =  id;
	}
	else
	{
		iPlayerIndex  =  CC_FindPlayer(  );
		MSG_Type = MSG_ALL;
	}
	
	iTeam  =  get_user_team( iPlayerIndex );
	iColorChange  =  CC_ColorSelection(  iPlayerIndex,  MSG_Type, iType);

	CC_ShowColorMessage(  iPlayerIndex, MSG_Type, szMessage  );
		
	if(  iColorChange  )	CC_Team_Info(  iPlayerIndex, MSG_Type,  TeamName[ iTeam ]  );

}

CC_ShowColorMessage(  id, const iType, const szMessage[  ]  )
{
	
	static bool:bSayTextUsed;
	static iMsgSayText;
	
	if(  !bSayTextUsed  )
	{
		iMsgSayText  =  get_user_msgid( "SayText" );
		bSayTextUsed  =  true;
	}
	
	message_begin( iType, iMsgSayText, _, id  );
	write_byte(  id  );		
	write_string(  szMessage  );
	message_end(  );
}

CC_Team_Info( id, const iType, const szTeam[  ] )
{
	static bool:bTeamInfoUsed;
	static iMsgTeamInfo;
	if(  !bTeamInfoUsed  )
	{
		iMsgTeamInfo  =  get_user_msgid( "TeamInfo" );
		bTeamInfoUsed  =  true;
	}
	
	message_begin( iType, iMsgTeamInfo, _, id  );
	write_byte(  id  );
	write_string(  szTeam  );
	message_end(  );

	return 1;
}

CC_ColorSelection(  id, const iType, Color:iColorType)
{
	switch(  iColorType  )
	{
		
		case RED:	return CC_Team_Info(  id, iType, TeamName[ 1 ]  );
		case BLUE:	return CC_Team_Info(  id, iType, TeamName[ 2 ]  );
		case GREY:	return CC_Team_Info(  id, iType, TeamName[ 0 ]  );

	}

	return 0;
}

CC_FindPlayer(  )
{
	new iMaxPlayers  =  get_maxplayers(  );
	
	for( new i = 1; i <= iMaxPlayers; i++ )
		if(  is_user_connected( i )  )
			return i;
	
	return -1;
}
User avatar
Gabriel963
Fost moderator
Fost moderator
Posts: 1658
Joined: 03 Feb 2013, 13:03
Detinator Steam: Da
CS Status: Retried
Reputatie: Membru Club eXtreamCS (1 luna)
Fost Moderator
Location: Bucharest, Romania.
Has thanked: 20 times
Been thanked: 85 times

14 Sep 2013, 13:33

Imi da 5 erori, ceva gresit?
Sa fie pe mijloc deaspura la timer.
Image
User avatar
-Turbo-
Membru, skill +4
Membru, skill +4
Posts: 1664
Joined: 11 Nov 2012, 01:28
Detinator Steam: Da
CS Status: Bored !
Detinator server CS: Da
SteamID: kingforbidden
Reputatie: Utilizator neserios ( tepar )
Restrictie moderator
Ban scos ( achitat )
Nume anterior: Turbo19973
Location: Botosani
Has thanked: 49 times
Been thanked: 212 times

14 Sep 2013, 13:36

Greseala mea :D | Afiseaza codul
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fakemeta >
#include < nvault >
#include < dhudmessage >

//#pragma semicolon 1


#define PLUGIN "Furien Credits System AIO"
#define VERSION "0.8.7Stable"

#define	ONE_DAY_IN_SECONDS	86400
#define TASK_pentru	06091993
#define FCS_TEAM_FURIEN 	CS_TEAM_T
#define FCS_TEAM_ANTIFURIEN	CS_TEAM_CT

enum Color
{
	NORMAL = 1, 		// Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
	GREEN, 			// Culoare Verde.
	TEAM_COLOR, 		// Culoare Rosu, Albastru, Gri.
	GREY, 			// Culoarea Gri.
	RED, 			// Culoarea Rosu.
	BLUE, 			// Culoarea Albastru.
};

new TeamName[  ][  ] = 
{
	"",
	"TERRORIST",
	"CT",
	"SPECTATOR"
};

enum (+= 100)
{
	TASK_MESAJHUD
}

#define ID_HUD (taskid - TASK_MESAJHUD)

new const g_szTag[ ] = "[Furien Credits]";
new const g_szGiveCreditsFlag[ ] = "a";

new g_iCvarPruneDays;
new g_iCvarEntry;

new g_iCvarPTREnable;
new g_iCvarPTRMinutes;
new g_iCvarPTRCredits;

new g_iCvarKREnable;
new g_iCvarKRCredits;
new g_iCvarKRHSCredits;

new g_iCvarTSEnable;
new g_iCvarTSMaxCredits;

new g_iCvarWTREnable;
new g_iCvarWTRFurien;
new g_iCvarWTRAnti;

new g_szName[ 33 ][ 32 ];
new g_iUserCredits[ 33 ];
new g_iUserTime[ 33 ];

new iVault;
new g_iMaxPlayers;
public plugin_init( )
{
	register_plugin( PLUGIN, VERSION, "Askhanar" );
	register_cvar( "fcs_version_aio", VERSION, FCVAR_SERVER | FCVAR_SPONLY ); 

	g_iCvarPruneDays = register_cvar( "fcs_prunedays", "15" );
	g_iCvarEntry = register_cvar( "fcs_entry_credits", "300" );
	
	g_iCvarPTREnable = register_cvar( "fcs_pentru_enable", "1" );
	g_iCvarPTRMinutes = register_cvar( "fcs_pentru_minutes", "5" );
	g_iCvarPTRCredits = register_cvar( "fcs_pentru_credits", "15" );
	
	g_iCvarKREnable = register_cvar( "fcs_kr_enable", "1" );
	g_iCvarKRCredits = register_cvar( "fcs_kr_credits", "7" );
	g_iCvarKRHSCredits = register_cvar( "fcs_kr_hscredits", "3" );//( bonus, fcs_kr_credits + fcs_kr_hscredits )
	
	g_iCvarTSEnable = register_cvar("fcs_transfer_enable", "1" );
	g_iCvarTSMaxCredits = register_cvar("fcs_transfer_maxcredits", "50" );

	g_iCvarWTREnable = register_cvar( "fcs_wtr_enable", "1" );
	g_iCvarWTRFurien = register_cvar( "fcs_wtr_furien", "12" );
	g_iCvarWTRAnti = register_cvar( "fcs_wtr_antifurien", "20" );
	
	register_clcmd( "say", "ClCmdSay" );
	register_clcmd( "say_team", "ClCmdSay" );
	
	register_clcmd( "say /depozit", "ClCmdSayDepozit" );
	register_clcmd( "say /deposit", "ClCmdSayDepozit" );
	register_clcmd( "say_team /depozit", "ClCmdSayDepozit" );
	register_clcmd( "say_team /deposit", "ClCmdSayDepozit" );
	
	register_clcmd( "say /retrage", "ClCmdSayRetrage" );
	register_clcmd( "say /withdraw", "ClCmdSayRetrage" );
	register_clcmd( "say_team /retrage", "ClCmdSayRetrage" );
	register_clcmd( "say_team /withdraw", "ClCmdSayRetrage" );
	
	register_clcmd( "fcs_credite", "ClCmdCredits" );
	register_clcmd( "fcs_credits", "ClCmdCredits" );
	
	register_clcmd( "donate", "ClCmdFcsDonate" );
	register_clcmd( "transfer", "ClCmdFcsDonate" );
	
	register_clcmd( "amx_give_credits", "ClCmdGiveCredits" );
	register_clcmd( "amx_take_credits", "ClCmdTakeCredits" );
	
	register_forward( FM_ClientUserInfoChanged, "Fwd_ClientUserInfoChanged" );
	register_event( "DeathMsg","ev_DeathMsg", "a" );
	register_event( "SendAudio", "ev_SendAudioTerWin", "a", "2=%!MRAD_terwin" );
	register_event( "SendAudio", "ev_SendAudioCtWin", "a", "2=%!MRAD_ctwin" );
	
	
	iVault  =  nvault_open(  "FurienCreditsSystem"  );
	if(  iVault  ==  INVALID_HANDLE  )
		set_fail_state(  "nValut returned invalid handle!"  );
	
	set_task( 1.0, "task_PTRFunctions", TASK_pentru, _, _, "b", 0 );	
	g_iMaxPlayers = get_maxplayers( );

}

public plugin_natives()
{
	
	register_library( "fcs" );
	register_native( "fcs_get_user_credits", "_fcs_get_user_credits" );
	register_native( "fcs_set_user_credits", "_fcs_set_user_credits" );
	
}

public _fcs_get_user_credits( iPlugin, iParams )
{
	return g_iUserCredits[  get_param( 1 )  ];
}

public _fcs_set_user_credits(  iPlugin, iParams  )
{
	new id = get_param( 1 );
	g_iUserCredits[ id ] = max( 0, get_param( 2 ) );
	SaveCredits( id );
	return g_iUserCredits[ id ];
}
public client_putinserver(id) {
	
	set_task(1.0, "MesajHUD", id+TASK_MESAJHUD, _, _, "b");
}

public client_authorized( id )
{
	if( is_user_bot( id ) )
		return PLUGIN_CONTINUE;
	
	get_user_name( id, g_szName[ id ], sizeof ( g_szName[] ) -1 );
	LoadCredits( id );
	
	g_iUserTime[ id ] = 0;
	return PLUGIN_CONTINUE;
	
}

public client_disconnect( id )
{
	if( is_user_bot( id ) )
		return PLUGIN_CONTINUE;
		
	SaveCredits( id );
	
	return PLUGIN_CONTINUE;
	
}
public MesajHUD(taskid)
{
	static id
	id = ID_HUD;
	
	if(!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if(!is_user_alive(id))
			return;
	}
	
	if(id != ID_HUD)
	{
		new nume[32];
		get_user_name(id, nume, 31)
		set_dhudmessage(200, 100, 150, 0.0, 0.52, 0, 6.0, 1.1, 0.0, 0.0);
		show_dhudmessage(ID_HUD, "%s^nHP: %d|AP: %d |Credite: %d", nume,pev(id, pev_health),get_user_armor(id) ,g_iUserCredits[ id ]);
	}
	else
	{
		set_dhudmessage(0, 100, 250, 0.5, 0.69, 0, 6.0, 1.1, 0.0, 0.0);
		show_dhudmessage(ID_HUD, "^nHP: %d |AP: %d | Credite: %d", pev(ID_HUD, pev_health),get_user_armor(ID_HUD), g_iUserCredits[ id ])
	}
}
public ClCmdSay( id )
{
	static szArgs[192];
	read_args( szArgs, sizeof ( szArgs ) -1 );
	
	if( !szArgs[ 0 ] )
		return 0;
	
	new szCommand[ 15 ];
	remove_quotes( szArgs[ 0 ] );
	
	if( equal( szArgs, "/credite", strlen( "/credite" ) )
		|| equal( szArgs, "/credits", strlen( "/credits" ) ) )
	{
		replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
		formatex( szCommand, sizeof ( szCommand ) -1, "fcs_%s", szArgs );
		client_cmd( id, szCommand );
		return 1;
	}
	else if( equal( szArgs,  "/transfer", strlen(  "/transfer" ) )
		|| equal( szArgs,  "/donate",  strlen(  "/donate" ) ) )
	{
		replace( szArgs, sizeof ( szArgs ) -1, "/", "" );
		formatex( szCommand, sizeof ( szCommand ) -1, "%s", szArgs );
		client_cmd( id, szCommand );
		return 1;
	}
		
	return 0;
}

public ClCmdCredits( id )
{
	if( !is_user_connected( id ) )
		return 1;
		
	new szArg[ 32 ];
    	read_argv( 1, szArg, sizeof ( szArg ) -1 );

	if( equal( szArg, "" ) ) 
	{
		
		ColorChat( id, RED, "^x04%s^x01 Ai^x03 %i^x01 credite.", g_szTag, g_iUserCredits[ id ] );
		return 1;
	}
	
    	new iPlayer = cmd_target( id, szArg, 8 );
    	if( !iPlayer || !is_user_connected( iPlayer ) )
	{
		ColorChat( id, RED,"^x04%s^x01 Jucatorul specificat nu a fost gasit!", g_szTag, szArg );
		return 1;
	}

	new szName[ 32 ];
	get_user_name( iPlayer, szName, sizeof ( szName ) -1 );
	ColorChat( id, RED,"^x04%s^x01 Jucatorul^x03 %s^x01 are^x03 %i^x01 credit%s", g_szTag, szName, g_iUserCredits[ iPlayer ], g_iUserCredits[ iPlayer ] == 1 ? "." : "e." );
	
	return 1;
	
}

public ClCmdSayDepozit( id)
{
	
	if( !is_user_connected( id ) )
		return 1;
		
	new iTeam = get_user_team( id );
	
	if( 1 <= iTeam <= 2 )
	{
		new iMoney = cs_get_user_money( id );
		if( iMoney >= 16000 )
		{
			
			ColorChat( id, RED, "^x04%s^x01 Ai depozitat^x03 16000$^x01 si ai primit^x03 1^x01 credit.", g_szTag );
			cs_set_user_money( id, iMoney - 16000 );
			g_iUserCredits[ id ] += 1;
			
			SaveCredits( id );
			return 1;
		}
		else
		{
			ColorChat( id, RED, "^x04%s^x01 Iti trebuie^x03 16000$^x01 pentru a putea depozita.", g_szTag );
			return 1;
		}
	}
	
	return 1;

}

public ClCmdSayRetrage( id)
{
	
	new iTeam = get_user_team( id );
	
	if( 1 <= iTeam <= 2 )
	{
		
		if( g_iUserCredits[ id ] > 0 )
		{
			new iMoney = cs_get_user_money( id );
			
			ColorChat( id, RED, "^x04%s^x01 Ai retras^x03 1^x01 credit si, ai primi^x03 16000$^x01.", g_szTag );
			cs_set_user_money( id, iMoney + 16000 );
			
			g_iUserCredits[ id ] -=1;
			SaveCredits( id );
			
			if( ( iMoney + 16000 ) > 16000 )
			{
				ColorChat( id, RED, "^x04%s^x03 ATENTIE^x01, ai^x03 %i$^x01 !", g_szTag, iMoney + 16000 );
				ColorChat( id, RED, "^x04%s^x01 La spawn, vei pierde tot ce depaseste suma de^x03 16000$^x01.", g_szTag );
				return 1;
			}
		}
		else
		{
			ColorChat(id, RED, "^x04%s^x03 NU^x01 ai ce sa retragi, ai^x03 0^x01 credite.", g_szTag );
			return 1;
		}
		
	}
	
	return 1;

}

public ClCmdGiveCredits( id )
{
	
	if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
	{
		client_cmd( id, "echo NU ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		client_cmd( id, "echo amx_give_credits < nume/ @ALL/ @T/ @CT > < credite >" );
		return 1;
	}
	
	new iPlayers[ 32 ];
	new iPlayersNum;
	
	new iCredits = str_to_num( szSecondArg );
	if( iCredits <= 0 )
	{
		client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
	
	if( szFirstArg[ 0 ] == '@' )
	{
		
		switch ( szFirstArg[ 1 ] )
		{
			case 'A':
			{
				if( equal( szFirstArg, "@ALL" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ch" );
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite tuturor jucatorilor!", g_szTag, szName, iCredits );
					return 1;
				}
			}
			
			case 'T':
			{
				if( equal( szFirstArg, "@T" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" );
					if( iPlayersNum == 0 )
					{
						client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
						return 1;
					}
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 TERO^x01!", g_szTag, szName, iCredits );
					return 1;
				}
			}
			
			case 'C':
			{
				if( equal( szFirstArg, "@CT" ) )
				{
					
					get_players( iPlayers, iPlayersNum, "ceh", "CT" );
					if( iPlayersNum == 0 )
					{
						client_cmd( id, "echo NU se afla niciun jucator in aceasta echipa!" );
						return 1;
					}
					for( new i = 0; i < iPlayersNum ; i++ )
						g_iUserCredits[ iPlayers[ i ] ] += iCredits;
						
					new szName[ 32 ];
					get_user_name( id, szName, sizeof ( szName ) -1 );
					ColorChat( 0, RED, "^x04^%s^x01 Adminul^x03 %s^x01 le-a dat^x03 %i^x01 credite jucatorilor de la^x03 CT^x01!", g_szTag, szName, iCredits );
					return 1;
				}
			}
		}
	}
		
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer )
	{
		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	g_iUserCredits[ iPlayer ] += iCredits;
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	
	ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a dat^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
	
	return 1;
	
	
}

public ClCmdTakeCredits( id )
{
	
	if( !( get_user_flags( id ) & read_flags( g_szGiveCreditsFlag ) ) )
	{
		client_cmd( id, "echo NU ai acces la aceasta comanda!" );
		return 1;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		client_cmd( id, "echo amx_take_credits < nume > < credite >" );
		return 1;
	}
	
	new iCredits = str_to_num( szSecondArg );
	if( iCredits <= 0 )
	{
		client_cmd( id, "echo Valoare creditelor trebuie sa fie mai mare decat 0!" );
		return 1;
	}
			
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	if( !iPlayer )
	{
		client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg );
		return 1;
	}
	
	if( g_iUserCredits[ iPlayer ] < iCredits )
	{
		client_cmd( id, "echo Jucatorul %s nu are atatea credite!Are doar %i", szFirstArg, g_iUserCredits[ iPlayer ] );
		return 1;
	}
	
	g_iUserCredits[ iPlayer ] -= iCredits;
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	
	ColorChat( 0, RED, "^x04%s^x01 Adminul^x03 %s^x01 i-a sters^x03 %i^x01 credite lui^x03 %s^x01.", g_szTag, szName, iCredits, _szName );
	
	return 1;
	
	
}

public ClCmdFcsDonate( id )
{
	if(  get_pcvar_num(  g_iCvarTSEnable  )  !=  1  )
	{
		ColorChat( id, RED, "^x04%s^x01 Comanda dezactivata de catre server!",  g_szTag  );
		return PLUGIN_HANDLED;
	}
	
	new szFirstArg[ 32 ], szSecondArg[ 10 ];
	
    	read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 );
	read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 );
	
	if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) )
	{
		ColorChat( id, RED, "^x04%s^x01 Folosire:^x03 /transfer^x01 sau^x03 /donate^x01 <^x03 nume^x01 > <^x03 credite^x01 >.", g_szTag );
		return 1;
	}
	
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	
	if( !iPlayer  )
	{
		ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", g_szTag );
		return PLUGIN_HANDLED;
	}
	
	//if( iPlayer == id )
	//{
	//	ColorChat(  id,  RED, "^x04%s^x01 Nu-ti poti transfera credite.", g_szTag );
	//	return PLUGIN_HANDLED;
	//}
	
	
	new iCredits;
	iCredits = str_to_num( szSecondArg );
	
	
	if( iCredits <= 0 )
	{
		ColorChat( id, RED, "^x04%s^x01 Trebuie sa introduci o valoare mai mare de 0.", g_szTag );
		return PLUGIN_HANDLED;
	}
	
	new iMaxCredits = get_pcvar_num( g_iCvarTSMaxCredits );
	if( iCredits > iMaxCredits )
	{
		ColorChat( id, RED, "^x04%s^x01 Poti transfera maxim^x03 %i^x01 credit%s o data!", g_szTag, iMaxCredits, iMaxCredits == 1 ? "" : "e" );
		return PLUGIN_HANDLED;
	}
	
	if( g_iUserCredits[ id ] <  iCredits  )
	{
		ColorChat(  id,  RED, "^x04%s^x01 Nu ai destule credite, ai doar^x03 %i credit%s^x01.",  g_szTag, g_iUserCredits[ id ], g_iUserCredits[ id ] == 1 ? "" : "e"  );
		return 1;
	}
	
	g_iUserCredits[ id ] -= iCredits;
	g_iUserCredits[ iPlayer ] += iCredits;
	
	SaveCredits( id );
	SaveCredits( iPlayer );
	
	new szFirstName[ 32 ], szSecondName[ 32 ];
	
	get_user_name( id, szFirstName, sizeof ( szFirstName )  -1 );
	get_user_name( iPlayer, szSecondName, sizeof ( szSecondName )  -1 );
	
	ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a transferat^03 %i credit%s^x01 lui^x03 %s^x01 .", g_szTag, szFirstName, iCredits, iCredits == 1 ? "" : "e", szSecondName );
	return PLUGIN_HANDLED;
}

public Fwd_ClientUserInfoChanged( id, szBuffer )
{
	if ( !is_user_connected( id ) ) 
		return FMRES_IGNORED;
	
	static szNewName[ 32 ];
	
	engfunc( EngFunc_InfoKeyValue, szBuffer, "name", szNewName, sizeof ( szNewName ) -1 );
	
	if ( equal( szNewName, g_szName[ id ] ) )
		return FMRES_IGNORED;
	
	SaveCredits(  id  );
	
	ColorChat( id, RED, "^x04%s^x01 Tocmai ti-ai schimbat numele din^x03 %s^x01 in^x03 %s^x01 !", g_szTag, g_szName[ id ], szNewName );
	ColorChat( id, RED, "^x04%s^x01 Am salvat^x03 %i^x01 credite pe numele^x03 %s^x01 !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
	
	copy( g_szName[ id ], sizeof ( g_szName[] ) -1, szNewName );
	LoadCredits( id );
	
	ColorChat( id, RED, "^x04%s^x01 Am incarcat^x03 %i^x01 credite de pe noul nume (^x03 %s^x01 ) !", g_szTag, g_iUserCredits[ id ], g_szName[ id ] );
	
	return FMRES_IGNORED;
}


public LoadCredits( id )
{
	static szData[ 256 ],  iTimestamp;
	
	if(  nvault_lookup( iVault, g_szName[ id ], szData, sizeof ( szData ) -1, iTimestamp ) )
	{
		static szCredits[ 15 ];
		parse( szData, szCredits, sizeof ( szCredits ) -1 );
		g_iUserCredits[ id ] = str_to_num( szCredits );
		return;
	}
	else
	{
		g_iUserCredits[ id ] = get_pcvar_num( g_iCvarEntry );
	}
	
}


public SaveCredits(  id  )
{
	
	static szData[ 256 ];
	formatex( szData, sizeof ( szData ) -1, "%i", g_iUserCredits[ id ] );
	
	nvault_set( iVault, g_szName[ id ], szData );
}


public task_PTRFunctions( )
{
	if( get_pcvar_num( g_iCvarPTREnable ) != 1 )
		return;
		
	static iPlayers[ 32 ];
	static iPlayersNum;
	
	get_players( iPlayers, iPlayersNum, "ch" );
	if( !iPlayersNum )
		return;
	
	static id, i;
	for( i = 0; i < iPlayersNum; i++ )
	{
		id = iPlayers[ i ];
		
		g_iUserTime[ id ]++;
		static iTime;
		iTime = get_pcvar_num( g_iCvarPTRMinutes ) ;
		
		if( g_iUserTime[ id ] >= iTime * 60 )
		{
			g_iUserTime[ id ] -= iTime * 60;
			
			static iCredits;
			iCredits = get_pcvar_num( g_iCvarPTRCredits );
			
			g_iUserCredits[ id ] += iCredits;
			ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credite pentru^x03 %i^x01 minute jucate!",
				g_szTag, iCredits, iTime );
				
			SaveCredits( id );
				
		}
	}
	
}

public ev_DeathMsg( )
{
	if( get_pcvar_num( g_iCvarKREnable ) != 1 )
		return;
	new iKiller = read_data( 1 );
	if( iKiller == read_data( 2 ) )
		return;
		
	new iCredits = get_pcvar_num( g_iCvarKRCredits );
	
	if( read_data( 3 ) )
		iCredits += get_pcvar_num( g_iCvarKRHSCredits );
		
	g_iUserCredits[ iKiller ] += iCredits;
	SaveCredits( iKiller );
	
}

public ev_SendAudioTerWin( )
{
	static iCvarEnable, iCvarFurienReward;
	iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
	iCvarFurienReward = get_pcvar_num( g_iCvarWTRFurien );
	
	if( iCvarEnable != 1 || iCvarFurienReward == 0 )
		return;
		
	GiveTeamReward( FCS_TEAM_FURIEN, iCvarFurienReward );
	
}


public ev_SendAudioCtWin( )
{
	
	static iCvarEnable, iCvarAntiReward;
	iCvarEnable = get_pcvar_num( g_iCvarWTREnable );
	iCvarAntiReward = get_pcvar_num( g_iCvarWTRAnti );
	
	if( iCvarEnable != 1 || iCvarAntiReward == 0 )
		return;
		
	GiveTeamReward( FCS_TEAM_ANTIFURIEN, iCvarAntiReward );
}

public GiveTeamReward( const CsTeams:iTeam, iCredits )
{
	
	for(  new id = 1;  id <= g_iMaxPlayers;  id++   )
	{
		if( cs_get_user_team( id ) == iTeam )
		{
			ColorChat( id, RED, "^x04%s^x01 Ai primit^x03 %i^x01 credit%s pentru castigarea rundei!", g_szTag, iCredits, iCredits == 1 ? "" : "e" );
			g_iUserCredits[ id ] += iCredits;
			SaveCredits( id );
		}
	}
}

public plugin_end( )
{
	new iDays = get_pcvar_num( g_iCvarPruneDays );
	if( iDays > 0 )
	{
		nvault_prune( iVault, 0, get_systime( ) - ( iDays * ONE_DAY_IN_SECONDS ) );
	}
	
	nvault_close( iVault );
}

ColorChat(  id, Color:iType, const msg[  ], { Float, Sql, Result, _}:...  )
{
	
	// Daca nu se afla nici un jucator pe server oprim TOT. Altfel dam de erori..
	if( !get_playersnum( ) ) return;
	
	new szMessage[ 256 ];

	switch( iType )
	{
		 // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
		case NORMAL:	szMessage[ 0 ] = 0x01;
		
		// Culoare Verde.
		case GREEN:	szMessage[ 0 ] = 0x04;
		
		// Alb, Rosu, Albastru.
		default: 	szMessage[ 0 ] = 0x03;
	}

	vformat(  szMessage[ 1 ], 251, msg, 4  );

	// Ne asiguram ca mesajul nu este mai lung de 192 de caractere.Altfel pica server-ul.
	szMessage[ 192 ] = '^0';
	

	new iTeam, iColorChange, iPlayerIndex, MSG_Type;
	
	if( id )
	{
		MSG_Type  =  MSG_ONE_UNRELIABLE;
		iPlayerIndex  =  id;
	}
	else
	{
		iPlayerIndex  =  CC_FindPlayer(  );
		MSG_Type = MSG_ALL;
	}
	
	iTeam  =  get_user_team( iPlayerIndex );
	iColorChange  =  CC_ColorSelection(  iPlayerIndex,  MSG_Type, iType);

	CC_ShowColorMessage(  iPlayerIndex, MSG_Type, szMessage  );
		
	if(  iColorChange  )	CC_Team_Info(  iPlayerIndex, MSG_Type,  TeamName[ iTeam ]  );

}

CC_ShowColorMessage(  id, const iType, const szMessage[  ]  )
{
	
	static bool:bSayTextUsed;
	static iMsgSayText;
	
	if(  !bSayTextUsed  )
	{
		iMsgSayText  =  get_user_msgid( "SayText" );
		bSayTextUsed  =  true;
	}
	
	message_begin( iType, iMsgSayText, _, id  );
	write_byte(  id  );		
	write_string(  szMessage  );
	message_end(  );
}

CC_Team_Info( id, const iType, const szTeam[  ] )
{
	static bool:bTeamInfoUsed;
	static iMsgTeamInfo;
	if(  !bTeamInfoUsed  )
	{
		iMsgTeamInfo  =  get_user_msgid( "TeamInfo" );
		bTeamInfoUsed  =  true;
	}
	
	message_begin( iType, iMsgTeamInfo, _, id  );
	write_byte(  id  );
	write_string(  szTeam  );
	message_end(  );

	return 1;
}

CC_ColorSelection(  id, const iType, Color:iColorType)
{
	switch(  iColorType  )
	{
		
		case RED:	return CC_Team_Info(  id, iType, TeamName[ 1 ]  );
		case BLUE:	return CC_Team_Info(  id, iType, TeamName[ 2 ]  );
		case GREY:	return CC_Team_Info(  id, iType, TeamName[ 0 ]  );

	}

	return 0;
}

CC_FindPlayer(  )
{
	new iMaxPlayers  =  get_maxplayers(  );
	
	for( new i = 1; i <= iMaxPlayers; i++ )
		if(  is_user_connected( i )  )
			return i;
	
	return -1;
}
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: Yandex [Bot] and 20 guests