XP plugin

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:

13 Aug 2014, 13:13

am gasit un plugin de xp facut de cyby si nu merge am bagat nativele fcs_get_user_credits si debeaga.. http://www.girlshare.ro/33507910.7
RoyalServer
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

13 Aug 2014, 14:53

lasa aici sursa nu sta nimeni sa o descarce..
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:

13 Aug 2014, 15:22

| Afiseaza codul
/*
Daca esti magar nu mai descarca pluginul, daca ai intentia de a modifica, reposta sau orice altceva ce tine
de comportament de nesimtit, din nou iti recomand sa nu descarci pluginul.

Intentia mea prin acest plugin sa dau startul la o noua moda in serverele de furien care vor sa fie putin mai clasice.

Versiunea aceasta este 1.0.1 si e posibil sa mai primeasca update-uri daca merge treaba.

Toate cele bune. Cyby
*/

// 1.0.2 Release rapid. Bug fix la Freezetime

#include <amxmodx>
#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 200 // 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][] = 
{
    "",
    "CLASA NIVEL 1",
    "CLASA NIVEL 2",
    "CLASA NIVEL 3",
    "CLASA NIVEL 4",
    "CLASA NIVEL 5",
    "CLASA NIVEL 6",
    "CLASA NIVEL 7",
    "CLASA NIVEL 8",
    "CLASA NIVEL 9",
    "CLASA NIVEL 10",
    "CLASA NIVEL 11",
    "CLASA NIVEL 12",
    "CLASA NIVEL 13",
    "CLASA NIVEL 14"
}

// Numele claselor Anti-Furien
new const CLASELE_ANTI_FURIEN[CLASE][] = 
{
    "",
    "CLASA NIVEL 1",
    "CLASA NIVEL 2",
    "CLASA NIVEL 3",
    "CLASA NIVEL 4",
    "CLASA NIVEL 5",
    "CLASA NIVEL 6",
    "CLASA NIVEL 7",
    "CLASA NIVEL 8",
    "CLASA NIVEL 9",
    "CLASA NIVEL 10",
    "CLASA NIVEL 11",
    "CLASA NIVEL 12",
    "CLASA NIVEL 13",
    "CLASA NIVEL 14"
}

// Pretul fiecarui nivel in credite.
new const CREDITE_COST[CLASE] = 
{
	0,
	100,
	200,
	400,
	800,
	1600,
	3200,
	6400,
	12800,
	25600,
	51200,
	102400,
	204800,
	409600,
	819200
}

// 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")
	
	// 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()
}

// 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 | %d Level", CLASELE_FURIEN, i)
		else
			formatex(menu_item, charsmax(menu_item), "\y%s | %d Level", 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, 120.0)
			case 3: set_pev(id, pev_health, 130.0)
			case 4: set_pev(id, pev_health, 140.0)
			case 5: set_pev(id, pev_health, 150.0)
			case 6: set_pev(id, pev_health, 160.0)
			case 7: set_pev(id, pev_health, 170.0)
			case 8: set_pev(id, pev_health, 180.0)
			case 9: set_pev(id, pev_health, 190.0)
			case 10: set_pev(id, pev_health, 200.0)
			case 11: set_pev(id, pev_health, 210.0)
			case 12: set_pev(id, pev_health, 220.0)
			case 13: set_pev(id, pev_health, 235.0)
			case 14: set_pev(id, pev_health, 250.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, 120.0)
			case 3: set_pev(id, pev_health, 130.0)
			case 4: set_pev(id, pev_health, 140.0)
			case 5: set_pev(id, pev_health, 150.0)
			case 6: set_pev(id, pev_health, 160.0)
			case 7: set_pev(id, pev_health, 170.0)
			case 8: set_pev(id, pev_health, 180.0)
			case 9: set_pev(id, pev_health, 190.0)
			case 10: set_pev(id, pev_health, 200.0)
			case 11: set_pev(id, pev_health, 210.0)
			case 12: set_pev(id, pev_health, 220.0)
			case 13: set_pev(id, pev_health, 235.0)
			case 14: set_pev(id, pev_health, 250.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 = 360.0 / 800.0
		}
	}
	else if(get_user_team(id) == 2)
	{
		switch(clasa_anti_furien[id])
		{
			case 1: valoare = 800.0 / 800.0
			case 2: valoare = 780.0 / 800.0
			case 3: valoare = 760.0 / 800.0
			case 4: valoare = 740.0 / 800.0
			case 5: valoare = 720.0 / 800.0
			case 6: valoare = 700.0 / 800.0
			case 7: valoare = 680.0 / 800.0
			case 8: valoare = 660.0 / 800.0
			case 9: valoare = 640.0 / 800.0
			case 10: valoare = 620.0 / 800.0
			case 11: valoare = 600.0 / 800.0
			case 12: valoare = 580.0 / 800.0
			case 13: valoare = 560.0 / 800.0
			case 14: valoare = 520.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, 500.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 | LVL: %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();
}
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

13 Aug 2014, 15:25

Code: Select all

//#define FURIEN_ASKHANAR
#define POINTS_SYSTEM_CYBY
//#define ARAGON_CREDITS
->>

Code: Select all

#define FURIEN_ASKHANAR
//#define POINTS_SYSTEM_CYBY
//#define ARAGON_CREDITS
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:

13 Aug 2014, 16:12

imi poti face viteza la lvl 0 650
lvl1 : 670
lvl2 : 690
lvl3 : 710
4 : 740
5: 760
6 : 780
7: 800
8: 820
9: 840
10: 860
11:880
12: 890
12: 910
13: 930
14: 960

iar la ct viteza normala si sa creasca doar cu 10
MS :*
Last edited by Cosmin on 13 Aug 2014, 16:25, edited 1 time in total.
Reason: nu,faci alta cerere,eu nu stau sa iti rezolv tie acum tot tot
Post Reply

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

  • Information
  • Who is online

    Users browsing this forum: No registered users and 88 guests