Sterge lvl

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

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
Fuck
Membru, skill 0
Membru, skill 0
Posts: 32
Joined: 02 Aug 2014, 00:22
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 2 times
Contact:

19 Aug 2014, 21:36

am sistemu asta de lvl ,aveam 25 de lvl si l-am micsorat la 15 si am sters ala din valut ,dc nu se reseetaza lvl.. ?
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <nvault>

// Aici stergeti // din fata in functie de ce sistem de credite folositi.
#define FURIEN_ASKHANAR
//#define POINTS_SYSTEM_CYBY
//#define ARAGON_CREDITS

// Aici sunt inregistrate nativele in functie de ce sistem folositi.
#if defined FURIEN_ASKHANAR
	native fcs_get_user_credits(client)
	native fcs_set_user_credits(client, credits)
#endif
#if defined POINTS_SYSTEM_CYBY
	native get_points(id)
	native set_points(id, value)
#endif
#if defined ARAGON_CREDITS
	native get_user_credits(id)
	native set_user_credits(id, credits)
#endif

// Variabile pentru nivel
new nivel[33], clasa_furien[33], clasa_anti_furien[33], g_nextclass_a[33], g_nextclass[33];

// Constanta unde este inregistrat tagul.
new const TAG[] = "[FURIEN CLASS]";

// Sistemul de salvare
new salvare_nvault;

// Credite pe damage
new daune_provocate[33];
#define DAUNE_MAXIM 500 // Aici modifici pentru cat damage sa primeasca un credit.

// Mesajul sincronizat pentru spectatori si afisarea creditelor.
new mesaj_sync;

// Setarea vitezei prin hamsandwich [stock utilizat din Zombie Plague]
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;

// Rezolvam bugul cu viteza in freeze time xDxD.
new freeze;

// Aici definim cate clase sunt. Intotdeauna numarul lor trebuie sa fie + 1. Exemplu, daca sunt 14 clase in total noi punem 15.
#define CLASE 15

// Numele claselor FURIEN
new const CLASELE_FURIEN[CLASE][] = 
{
    "",
    "Belial",
    "Dummy",
    "Ghost",
    "Blink",
    "Deimos",
    "Ahpuch",
    "Tank",
    "Scream",
    "Smoker",
    "Liker",
    "Crow",
    "Lucye",
    "Scorch",
    "Darck"
}

// Numele claselor Anti-Furien
new const CLASELE_ANTI_FURIEN[CLASE][] = 
{
    "",
    "Craven",
    "Brave",
    "Bill",
    "Steve",
    "Good",
    "Hero",
    "Divine",
    "Lyox",
    "Tough",
    "Melod",
    "Craven",
    "Handsome",
    "Peter",
    "Francis"    
}

// Pretul fiecarui nivel in credite.
new const CREDITE_COST[CLASE] = 
{
	0,
	300,
	650,
	1300,
	2700,
	4400,
	8800,
	16000,
	30000,
	60000,
	61000,
	62000,
	62000,
	64000,
         65000
}
// Task-ul pentru afisarea hudului.
enum (+= 100)
{
	TASK_SHOWHUD
}

#define ARATA_HUD (taskid - TASK_SHOWHUD)

// Aici se termina inregistrarea porcariilor.

// Init.
public plugin_init()
{
	register_plugin("Anti-Furien & Furien Class", "1.0.2", "cyby")
	// Comanda pentru afisarea meniului de clase.
	register_clcmd("say /class", "showclass")
	register_clcmd("say /level", "showclass")
	
	register_concmd("amx_take_level","cmdTake",_,"<nume> <level>")
	
	// Evenimentul de ucidere.
	register_event("DeathMsg", "event_ucidere", "a")
	
	// Functii prinse prin hamsandwich.
	RegisterHam(Ham_TakeDamage, "player", "ham_take_dmg")
	RegisterHam(Ham_Spawn, "player", "spawn_post", 1)
	RegisterHam(Ham_Player_ResetMaxSpeed, "player", "speed_reset_post", 1)
	
	// Functii pentru rezolvarea bugului cu viteza.
	register_event("HLTV", "round_start_before_freeze", "a", "1=0", "2=0")
	register_logevent("round_start_after_freeze", 2, "1=Round_Start")
	
	// Definim functia de Hud Sincronizat.
	mesaj_sync = CreateHudSyncObj()
}
public cmdTake(id){
	if(!(get_user_flags(id) & ADMIN_IMMUNITY)) 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, "" ) )
	{
		console_print( id, "amx_take_level < name > < level >" );
		return 1;
	}
	
	new LEVEL = str_to_num( szSecondArg );		//nivel[id]
	if( LEVEL <= 0 )
	{
		console_print ( id, "Level value must be greater than 0" );
		return 1;
	}
	
	new iPlayer = cmd_target( id, szFirstArg, 8 );
	
	if( !iPlayer )
	{
		console_print( id, "Player %s was not found.", szFirstArg );
		return 1;
	}
	
	if( nivel[iPlayer] < LEVEL )
	{
		console_print( id, "Player %s doesn't have so much level. He has: %i", szFirstArg, nivel [  iPlayer ] );
		return 1;	//xp
	}
	
	nivel[iPlayer]-=LEVEL
	
	new szName[ 32 ], _szName[ 32 ];
	get_user_name( id, szName, sizeof ( szName ) -1 );
	get_user_name( iPlayer, _szName, sizeof ( _szName ) -1 );
	client_print(0,print_chat,"ADMIN:%s i-a luat din level playerului %s",szName,_szName);
	SaveData(iPlayer)
	return 1;
}
// Salvarea pe nvault. Recomand sa nu modifici.
public plugin_cfg()
{
	salvare_nvault = nvault_open("level_furien")
	
	if(salvare_nvault == INVALID_HANDLE)
        set_fail_state("Eroare la deschiderea bazei de date.")
}

// Inchiderea fisierului nvault daca serverul pica sau se schimba harta. Recomand sa nu modifici.
public plugin_end()
	nvault_close(salvare_nvault)
	
public round_start_before_freeze()
	freeze = true

public round_start_after_freeze()
	freeze = false

// Nativ pentru a putea prelua nivelul fiecarui jucator.
// Ex: fr_get_level(id) == 2 [daca jucatorul are nivelul 2]
public plugin_natives()
	register_native("fr_get_level", "native_get_level", 1)

// Partea din spate a nativului
public native_get_level(id)
{
	if(!is_user_connected(id))
		return -1;
		
	return nivel[id];
}

// Evenimentul de ucidere.
public event_ucidere()
{
	static atacator, victima;
	atacator = read_data(1);
	victima = read_data(2);
	if(is_user_alive(atacator) && is_user_connected(victima))
	{
		check_level(atacator)
		check_level(victima)
	}
}

// Functia de scanare a nivelului + cumparare daca sunt gasiti numarul de credite la jucator + salvare.
public check_level(id)
{
	static credite;	
	#if defined FURIEN_ASKHANAR
		credite = fcs_get_user_credits(id)
	#endif
	#if defined POINTS_SYSTEM_CYBY
		credite = get_points(id)
	#endif
	#if defined ARAGON_CREDITS
		credite = get_user_credits(id)
	#endif
	if(credite >= CREDITE_COST[nivel[id]])
	{
		#if defined FURIEN_ASKHANAR
			fcs_set_user_credits(id, credite - CREDITE_COST[nivel[id]])
		#endif
		#if defined POINTS_SYSTEM_CYBY
			set_points(id, credite - CREDITE_COST[nivel[id]])
		#endif
		#if defined ARAGON_CREDITS
			set_user_credits(id, credite - CREDITE_COST[nivel[id]])
		#endif
		nivel[id]++
		SaveData(id)
		color(id, ".v%s.g Felicitari. Ai ajuns nivelul.e %d.g.", TAG, nivel[id])
		color(0, ".v%s.g Felicitari lui.e %s.g pentru avansarea la nivelul.e %d.g.", TAG, get_name(id), nivel[id])
	}
}

// Functia de primire a unei cantitati de credite daca jucatorul face cat este definit in DAUNE_MAXIM.
public ham_take_dmg(victima, inductor, atacator, Float:daune)
{
	if(victima == atacator || get_user_team(atacator) == get_user_team(victima) || !is_user_alive(atacator))
		return HAM_IGNORED;
		
	daune += nivel[atacator] * 2.0
	SetHamParamFloat(4, daune)
	
	daune_provocate[atacator] += floatround(daune)
	if(daune_provocate[atacator] > DAUNE_MAXIM)
	{
		daune_provocate[atacator] = 0
		#if defined FURIEN_ASKHANAR
			fcs_set_user_credits(atacator, fcs_get_user_credits(atacator) + 1)
		#endif
		#if defined POINTS_SYSTEM_CYBY
			set_points(atacator, get_points(atacator) + 1)
		#endif
		#if defined ARAGON_CREDITS
			set_user_credits(atacator, get_user_credits(atacator) + 1)
		#endif
		check_level(atacator)
	}
	return HAM_IGNORED;
}
// Functia afisare meniul principal
public showclass(id)
{
	if(!is_user_connected(id))
		return;
		
	static menu_name[300];
	#if defined FURIEN_ASKHANAR
		formatex(menu_name, charsmax(menu_name), "\yClass Menu^nLevel:\r %d\w |\y Credits:\r %d\y^n^n", nivel[id], fcs_get_user_credits(id));
	#endif
	#if defined POINTS_SYSTEM_CYBY
		formatex(menu_name, charsmax(menu_name), "\yClass Menu^nLevel:\r %d\w |\y Credits:\r %d\y^n^n", nivel[id], get_points(id));
	#endif
	#if defined ARAGON_CREDITS
		formatex(menu_name, charsmax(menu_name), "\yClass Menu^nLevel:\r %d\w |\y Credits:\r %d\y^n^n", nivel[id], get_user_credits(id));
	#endif
	
	static item_menu_furien[60], item_menu_anti_furien[60];
	formatex(item_menu_furien, charsmax(item_menu_furien), "Furien Class\r [%s]\y", CLASELE_FURIEN[clasa_furien[id]])
	formatex(item_menu_anti_furien, charsmax(item_menu_anti_furien), "Anti-Furien Class\r [%s]\y", CLASELE_ANTI_FURIEN[clasa_anti_furien[id]])
	new menu = menu_create(menu_name, "spate_showclass")
	menu_additem(menu, item_menu_furien, "1")
	menu_additem(menu, item_menu_anti_furien, "2")
	menu_display(id, menu, 0)
}

// Spatele meniului principal
public spate_showclass(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED;
	}
	
	static tasta;
	tasta = item + 1
	switch(tasta)
	{
		case 1: clase_furien(id)
		case 2: clase_anti_furien(id)
	}
	menu_destroy(menu)
	return PLUGIN_HANDLED;
}
	

// Meniul de clase Furien.
public clase_furien(id)
{
	if(!is_user_connected(id))
		return;
	
	static menu_name[300];
	#if defined FURIEN_ASKHANAR
		formatex(menu_name, charsmax(menu_name), "\yClase Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], fcs_get_user_credits(id), CLASELE_FURIEN[clasa_furien[id]]);
	#endif
	#if defined POINTS_SYSTEM_CYBY
		formatex(menu_name, charsmax(menu_name), "\yClase Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], get_points(id), CLASELE_FURIEN[clasa_furien[id]]);
	#endif
	#if defined ARAGON_CREDITS
		formatex(menu_name, charsmax(menu_name), "\yClase Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], get_user_credits(id), CLASELE_FURIEN[clasa_furien[id]]);
	#endif
	
	new menu = menu_create(menu_name, "spate_clase_furien")
	static tasta[3], menu_item[35], i;
	for(i = 1; i < sizeof CLASELE_FURIEN; i++)
	{
		if(nivel[id] < i || clasa_furien[id] == i)
			formatex(menu_item, charsmax(menu_item), "\d%s | Level %d", CLASELE_FURIEN, i)
		else
			formatex(menu_item, charsmax(menu_item), "\y%s | Level %d", CLASELE_FURIEN, i)
		
		tasta[0] = i
		tasta[1] = 0
		menu_additem(menu, menu_item, tasta)
	}
	menu_display(id, menu, 0)
}

// Meniul de clase Anti-Furien.
public clase_anti_furien(id)
{
	if(!is_user_connected(id))
		return;
	
	static menu_name[300];
	#if defined FURIEN_ASKHANAR
		formatex(menu_name, charsmax(menu_name), "\yClase Anti-Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], fcs_get_user_credits(id), CLASELE_ANTI_FURIEN[clasa_anti_furien[id]]);
	#endif
	#if defined POINTS_SYSTEM_CYBY
		formatex(menu_name, charsmax(menu_name), "\yClase Anti-Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], get_points(id), CLASELE_ANTI_FURIEN[clasa_anti_furien[id]]);
	#endif
	#if defined ARAGON_CREDITS
		formatex(menu_name, charsmax(menu_name), "\yClase Anti-Furien^nLevel:\r %d\w |\y Credits:\r %d\y^nCurrent Class:\r %s\y", nivel[id], get_user_credits(id), CLASELE_ANTI_FURIEN[clasa_anti_furien[id]]);
	#endif
	
	new menuid = menu_create(menu_name, "spate_clase_a_furien")
	static menu_item[35], tasta[3], i;
	for(i = 1; i < sizeof CLASELE_ANTI_FURIEN; i++)
	{
		if(nivel[id] < i || clasa_anti_furien[id] == i)
			formatex(menu_item, charsmax(menu_item), "\d%s | %d Level", CLASELE_ANTI_FURIEN, i)
		else
			formatex(menu_item, charsmax(menu_item), "\y%s | %d Level", CLASELE_ANTI_FURIEN, i)

		tasta[0] = i
		tasta[1] = 0
		menu_additem(menuid, menu_item, tasta)
	}
	menu_display(id, menuid, 0)
}

// Spatele meniului clase Furien.
public spate_clase_furien(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED;
	}
	
	static tasta;
	tasta = item + 1
	g_nextclass[id] = tasta
	if(nivel[id] < g_nextclass[id]) 
	{ 
		color(id, ".v%s.g Ai nivelul prea mic pentru clasa.e %s.g.", TAG, CLASELE_FURIEN[tasta])
		g_nextclass[id] = 0
		clase_furien(id)
		return PLUGIN_HANDLED;
	}
	if(g_nextclass[id] == clasa_furien[id])
	{
		color(id, ".v%s.g Ai deja selectata clasa.e %s.g.", TAG, CLASELE_FURIEN[tasta])
		g_nextclass[id] = 0
		return PLUGIN_HANDLED;
	}
	color(id, ".v%s.g Ai selectat clasa.e %s.g. In runda urmatoare este activa.", TAG, CLASELE_FURIEN[tasta])
	menu_destroy(menu); 
	return PLUGIN_HANDLED;
}

// Spatele meniului clase Anti-Furien.
public spate_clase_a_furien(id, menu, item) 
{ 
	if(item == MENU_EXIT)
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED;
	}
	
	static tasta;
	tasta = item + 1
	g_nextclass_a[id] = tasta
	if(nivel[id] < g_nextclass_a[id]) 
	{ 
		color(id, ".v%s.g Ai nivelul prea mic pentru clasa.e %s.g.", TAG, CLASELE_ANTI_FURIEN[tasta])
		g_nextclass_a[id] = 0
		clase_anti_furien(id)
		return PLUGIN_HANDLED;
	}
	if(g_nextclass_a[id] == clasa_anti_furien[id])
	{
		color(id, ".v%s.g Ai deja selectata clasa.e %s.g.", TAG, CLASELE_ANTI_FURIEN[tasta])
		g_nextclass_a[id] = 0
		return PLUGIN_HANDLED;
	}
	color(id, ".v%s.g Ai selectat clasa.e %s.g. In runda urmatoare este activa.", TAG, CLASELE_ANTI_FURIEN[tasta])
	menu_destroy(menu); 
	return PLUGIN_HANDLED;
}

// Functia de spawn. Mai exact cand jucatorul este pus in baza, reinviat. Primeste facilitatile pentru nivelurile pe care jucatorul X are
// si Y level si clasa selectata din meniu Z ii seteaza ca si clasa default.
public spawn_post(id)
{
	if(!is_user_alive(id))
		return;
	
	if(g_nextclass[id] != 0)
	{
		clasa_furien[id] = g_nextclass[id]
		g_nextclass[id] = 0
		color(id, ".v%s.g Ti s-a setat cu succes clasa.e %s.g.", TAG, CLASELE_FURIEN[clasa_furien[id]])
	}
	
	if(g_nextclass_a[id] != 0)
	{
		clasa_anti_furien[id] = g_nextclass_a[id]
		g_nextclass_a[id] = 0
		color(id, ".v%s.g Ti s-a setat cu succes clasa.e %s.g.", TAG, CLASELE_ANTI_FURIEN[clasa_anti_furien[id]])
	}
	
	if(get_user_team(id) == 2)
	{
		switch(clasa_anti_furien[id])
		{
			case 1: set_pev(id, pev_health, 100.0)
			case 2: set_pev(id, pev_health, 105.0)
			case 3: set_pev(id, pev_health, 110.0)
			case 4: set_pev(id, pev_health, 115.0)
			case 5: set_pev(id, pev_health, 120.0)
			case 6: set_pev(id, pev_health, 125.0)
			case 7: set_pev(id, pev_health, 130.0)
			case 8: set_pev(id, pev_health, 135.0)
			case 9: set_pev(id, pev_health, 140.0)
			case 10: set_pev(id, pev_health, 145.0)
			case 11: set_pev(id, pev_health, 150.0)
			case 12: set_pev(id, pev_health, 155.0)
			case 13: set_pev(id, pev_health, 160.0)
			case 14: set_pev(id, pev_health, 165.0)
			case 15: set_pev(id, pev_health, 170.0)
		}
	}
	else if(get_user_team(id) == 1)
	{
		switch(clasa_furien[id])
		{
			case 1: set_pev(id, pev_health, 100.0)
			case 2: set_pev(id, pev_health, 105.0)
			case 3: set_pev(id, pev_health, 110.0)
			case 4: set_pev(id, pev_health, 115.0)
			case 5: set_pev(id, pev_health, 120.0)
			case 6: set_pev(id, pev_health, 125.0)
			case 7: set_pev(id, pev_health, 130.0)
			case 8: set_pev(id, pev_health, 135.0)
			case 9: set_pev(id, pev_health, 140.0)
			case 10: set_pev(id, pev_health, 145.0)
			case 11: set_pev(id, pev_health, 150.0)
			case 12: set_pev(id, pev_health, 155.0)
			case 13: set_pev(id, pev_health, 160.0)
			case 14: set_pev(id, pev_health, 165.0)
			case 15: set_pev(id, pev_health, 170.0)
		}
	}
	
	new Float:valoare;
	if(get_user_team(id) == 1)
	{
		switch(clasa_furien[id])
		{
			case 1: valoare = 620.0 / 800.0
			case 2: valoare = 600.0 / 800.0
			case 3: valoare = 580.0 / 800.0
			case 4: valoare = 560.0 / 800.0
			case 5: valoare = 560.0 / 800.0
			case 6: valoare = 540.0 / 800.0
			case 7: valoare = 520.0 / 800.0
			case 8: valoare = 500.0 / 800.0
			case 9: valoare = 480.0 / 800.0
			case 10: valoare = 460.0 / 800.0
			case 11: valoare = 440.0 / 800.0
			case 12: valoare = 420.0 / 800.0
			case 13: valoare = 400.0 / 800.0
			case 14: valoare = 380.0 / 800.0
			case 15: valoare = 370.0 / 800.0
		}
	}
	else if(get_user_team(id) == 2)
	{
		switch(clasa_anti_furien[id])
		{
			case 1: valoare = 620.0 / 800.0
			case 2: valoare = 600.0 / 800.0
			case 3: valoare = 580.0 / 800.0
			case 4: valoare = 560.0 / 800.0
			case 5: valoare = 560.0 / 800.0
			case 6: valoare = 540.0 / 800.0
			case 7: valoare = 520.0 / 800.0
			case 8: valoare = 500.0 / 800.0
			case 9: valoare = 480.0 / 800.0
			case 10: valoare = 460.0 / 800.0
			case 11: valoare = 440.0 / 800.0
			case 12: valoare = 420.0 / 800.0
			case 13: valoare = 400.0 / 800.0
			case 14: valoare = 380.0 / 800.0
			case 15: valoare = 370.0 / 800.0
		}
	}
	set_pev(id, pev_gravity, valoare)
	check_level(id)
	ExecuteHamB(Ham_Player_ResetMaxSpeed, id)
}

// Functia de setare a vitezei.
public speed_reset_post(id)
{
	if(!is_user_alive(id) || freeze)
		return;
	
	set_player_maxspeed(id)
}

// Spatele functiei de setare a vitezei.
set_player_maxspeed(id)
{
	switch(get_user_team(id))
	{
		case 1: set_pev(id, pev_maxspeed, 650.0 + (20.0 * clasa_furien[id]))
		case 2: set_pev(id, pev_maxspeed, 240.0 + (10.0 * clasa_anti_furien[id]))
	}
}

// Hudul de afisare a caracteristicilor
public HealthHud(taskid)
{
	static id;
	id = ARATA_HUD;
	
	if(!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if(!is_user_alive(id)) return;
	}
	
	static msj_clasa[50], clasa, rosu, verde, albastru;
	switch(get_user_team(id))
	{
		case 1:
		{
			clasa = clasa_furien[id]
			rosu = 200
			verde = 50
			albastru = 70	
			formatex(msj_clasa, charsmax(msj_clasa), "%s", CLASELE_FURIEN[clasa])
		}
		case 2:
		{
			clasa = clasa_anti_furien[id]
			rosu = 20
			verde = 50
			albastru = 200
			formatex(msj_clasa, charsmax(msj_clasa), "%s", CLASELE_ANTI_FURIEN[clasa])
		}
	}
	
	if(id != ARATA_HUD)
	{
		static credits[15];
		#if defined FURIEN_ASKHANAR
			AddCommas(fcs_get_user_credits(id), credits, charsmax(credits))
		#endif
		#if defined POINTS_SYSTEM_CYBY
			AddCommas(get_points(id), credits, charsmax(credits))
		#endif
		#if defined ARAGON_CREDITS
			AddCommas(get_user_credits(id), credits, charsmax(credits))
		#endif
		set_hudmessage(100, 50, 150, -1.0, 0.8, 1, 0.3, 0.3)
		ShowSyncHudMsg(ARATA_HUD, mesaj_sync, "%s^nHP: %d | AP: %d^nLVL: %d | CLASA: %s^nCREDITE: %s", get_name(id), get_user_health(id), get_user_armor(id), nivel[id], msj_clasa, credits)
	}
	else
	{
		static credits[15];	
		#if defined FURIEN_ASKHANAR
			AddCommas(fcs_get_user_credits(ARATA_HUD), credits, charsmax(credits))
		#endif
		#if defined POINTS_SYSTEM_CYBY
			AddCommas(get_points(ARATA_HUD), credits, charsmax(credits))
		#endif
		#if defined ARAGON_CREDITS
			AddCommas(get_user_credits(ARATA_HUD), credits, charsmax(credits))
		#endif
		set_dhudmessage(rosu, verde, albastru, -1.0, 0.85, 0, 0.0, 0.3, 0.1, 0.2)
		show_dhudmessage(ARATA_HUD, "[ HP: %d | AP: %d | Credite: %s ]^n[ Clasa: %s | Level: %d ]", get_user_health(ARATA_HUD), get_user_armor(ARATA_HUD), credits, msj_clasa, nivel[ARATA_HUD])
	}
}

// Functia de disconnect + salvare a datelor.
public client_disconnect(id)
{
	daune_provocate[id] = 0
	remove_task(id+TASK_SHOWHUD)
	SaveData(id)
	g_nextclass[id] = 0
	g_nextclass_a[id] = 0
}

// Functia de join + preluare a datelor.
public client_putinserver(id)
{
	LoadData(id)
	g_nextclass[id] = 0
	g_nextclass_a[id] = 0
	
	set_task(0.3, "HealthHud", id+TASK_SHOWHUD, _, _, "b")
}

// Spatele functiei de preluare a datelor.
public LoadData(id) 
{ 
	new vaultkey[64], vaultdata[256];
	format(vaultkey, 63, "%s##LEVELING", get_name(id))
	format(vaultdata, 255, "%i#%i#%i#", nivel[id], clasa_furien[id], clasa_anti_furien[id])
	nvault_get(salvare_nvault, vaultkey, vaultdata, 255)
	replace_all(vaultdata, 255, "#", " ")
	new lvl[32], clasaf[32], clasaa[32];
	parse(vaultdata, lvl, 31, clasaf, 31, clasaa, 31)
	nivel[id] = str_to_num(lvl)
	clasa_furien[id] = str_to_num(clasaf)
	clasa_anti_furien[id] = str_to_num(clasaa)
	if(nivel[id] == 0)
		nivel[id] = 1
	if(clasa_furien[id] == 0)
		clasa_furien[id] = 1
	if(clasa_anti_furien[id] == 0)
		clasa_anti_furien[id] = 1
}  

// Spatele functiei de salvare a datelor.
public SaveData(id) 
{
	new vaultkey[64], vaultdata[256];
	format(vaultkey, 63, "%s##LEVELING", get_name(id))
	format(vaultdata, 255, "%i#%i#%i#", nivel[id], clasa_furien[id], clasa_anti_furien[id])
	nvault_set(salvare_nvault, vaultkey, vaultdata)
}  

// "Comanda rapida" la preluarea numelui pentru a scurta din cod pe ici pe colo.
stock get_name(id)
{
	static name[32];
	get_user_name(id, name, charsmax(name) - 1)
	return name;
}

// Stockul folosit pentru chat color.
stock color(const id, const input[], any:...)
{
	new count = 1, players[32];
	static msg[191]
	vformat(msg, 190, input, 3)
	
	replace_all(msg, 190, ".v", "^4")
	replace_all(msg, 190, ".g", "^1")
	replace_all(msg, 190, ".e", "^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();
			}
		}
	}
}

// Functia pentru adaugarea la numere de peste 1000 virgula la ele.
public AddCommas(iNum , szOutput[] , iLen)
{
	new szTmp[15], iOutputPos, iNumPos, iNumLen;

	if(iNum < 0)
	{
		szOutput[iOutputPos++] = '-'
		iNum = abs(iNum)
	}

	iNumLen = num_to_str(iNum, szTmp, charsmax(szTmp))

	if(iNumLen <= 3)
		iOutputPos += copy(szOutput[iOutputPos], iLen, szTmp)
	else
	{
		while((iNumPos < iNumLen) && (iOutputPos < iLen)) 
		{
			szOutput[iOutputPos++] = szTmp[iNumPos++]
		
			if((iNumLen - iNumPos) && !((iNumLen - iNumPos) % 3)) 
				szOutput[iOutputPos++] = ','
		}
		szOutput[iOutputPos] = EOS
	}
	return iOutputPos;
}

// Stockul pentru dhudmessage.
stock __dhud_color;
stock __dhud_x;
stock __dhud_y;
stock __dhud_effect;
stock __dhud_fxtime;
stock __dhud_holdtime;
stock __dhud_fadeintime;
stock __dhud_fadeouttime;
stock __dhud_reliable;

stock set_dhudmessage( red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = false )
{
    #define clamp_byte(%1)       ( clamp( %1, 0, 255 ) )
    #define pack_color(%1,%2,%3) ( %3 + ( %2 << 8 ) + ( %1 << 16 ) )

    __dhud_color       = pack_color( clamp_byte( red ), clamp_byte( green ), clamp_byte( blue ) );
    __dhud_x           = _:x;
    __dhud_y           = _:y;
    __dhud_effect      = effects;
    __dhud_fxtime      = _:fxtime;
    __dhud_holdtime    = _:holdtime;
    __dhud_fadeintime  = _:fadeintime;
    __dhud_fadeouttime = _:fadeouttime;
    __dhud_reliable    = _:reliable;

    return 1;
}

stock show_dhudmessage( index, const message[], any:... )
{
    new buffer[ 128 ];
    new numArguments = numargs();

    if( numArguments == 2 )
    {
        send_dhudMessage( index, message );
    }
    else if( index || numArguments == 3 )
    {
        vformat( buffer, charsmax( buffer ), message, 3 );
        send_dhudMessage( index, buffer );
    }
    else
    {
        new playersList[ 32 ], numPlayers;
        get_players( playersList, numPlayers, "ch" );

        if( !numPlayers )
        {
            return 0;
        }

        new Array:handleArrayML = ArrayCreate();

        for( new i = 2, j; i < numArguments; i++ )
        {
            if( getarg( i ) == LANG_PLAYER )
            {
                while( ( buffer[ j ] = getarg( i + 1, j++ ) ) ) {}
                j = 0;

                if( GetLangTransKey( buffer ) != TransKey_Bad )
                {
                    ArrayPushCell( handleArrayML, i++ );
                }
            }
        }

        new size = ArraySize( handleArrayML );

        if( !size )
        {
            vformat( buffer, charsmax( buffer ), message, 3 );
            send_dhudMessage( index, buffer );
        }
        else
        {
            for( new i = 0, j; i < numPlayers; i++ )
            {
                index = playersList[ i ];

                for( j = 0; j < size; j++ )
                {
                    setarg( ArrayGetCell( handleArrayML, j ), 0, index );
                }

                vformat( buffer, charsmax( buffer ), message, 3 );
                send_dhudMessage( index, buffer );
            }
        }

        ArrayDestroy( handleArrayML );
    }

    return 1;
}

stock send_dhudMessage( const index, const message[] )
{
    message_begin( __dhud_reliable ? ( index ? MSG_ONE : MSG_ALL ) : ( index ? MSG_ONE_UNRELIABLE : MSG_BROADCAST ), SVC_DIRECTOR, _, index );
    {
        write_byte( strlen( message ) + 31 );
        write_byte( DRC_CMD_MESSAGE );
        write_byte( __dhud_effect );
        write_long( __dhud_color );
        write_long( __dhud_x );
        write_long( __dhud_y );
        write_long( __dhud_fadeintime );
        write_long( __dhud_fadeouttime );
        write_long( __dhud_holdtime );
        write_long( __dhud_fxtime );
        write_string( message );
    }
    message_end();
}
RoyalServer 2
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

19 Aug 2014, 22:40

cand stergi alea trebuie sa ai stins serverul + ca trebuie sa stergi ambele fisiere .journal si .vault parca sau cum e
User avatar
dRaGoNeLy^ ;x
Membru, skill +3
Membru, skill +3
Posts: 1430
Joined: 27 Jun 2014, 15:42
Detinator Steam: Da
CS Status: PR0 Than Y0U!
Detinator server CS: Nu.
SteamID: PM!
Reputatie: Castigator Membru Club eXtream @ Mos Nicolae (doua luni)
Fost Membru Club eXtreamCS (patru luni)
Fond eXtream: 0
Location: București
Has thanked: 23 times
Been thanked: 13 times
Contact:

20 Aug 2014, 15:10

Baga asta in consola: amx_give_credits dragonely 999999999

@ON: Am uitat sa-ti zic k trebuia sa fie serveru off :(
Image
Fuck
Membru, skill 0
Membru, skill 0
Posts: 32
Joined: 02 Aug 2014, 00:22
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 2 times
Contact:

21 Aug 2014, 18:57

dRaGoNeLy^ ;x wrote:Baga asta in consola: amx_give_credits dragonely 999999999

@ON: Am uitat sa-ti zic k trebuia sa fie serveru off :(
aha.cica
Frate am o eroare ,dac anu intri 1 zis se sterg lvl
Post Reply

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

  • Information
  • Who is online

    Users browsing this forum: No registered users and 67 guests