←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Modyfikacja
k/d ratio

  • +
  • -
Hiko - zdjęcie Hiko 23.10.2016

Witam.

Mam system rang z hudem.

I chciałbym dodać do tego k/d ratio.

Załózmy że mamy range silver 1 i potrzeba 20 killi ale jeszcze 0.5 k/d i wtedy ja dostajemy. 

#include <amxmodx>
#include <hamsandwich>
#include <nvault>

new PLUGIN[] = "Rangi"
new VERSION[] = "1.1"
new AUTHOR[] = "Petpat"

new TASK = 666


new poziom[33];
new ranga[][] = {
"Zabij By miec range",
	"Unranked", "Silver I", "Silver II", "Silver III",
		"Silver IV", "Silver Elite", "Silver Elite Master", "Gold Nova I",
			"Gold Nova II ", "Gold Nova III ", "Gold Nova Master", "Master Guardian I",
		"Master Guardian II", "Master Guardian Elite", "Distinguished MG", "Legendary Eagle",
	"Legendary Eagle Master", "Supreme Master Firstclass", "The Global Elite"
}

new const wymaganezabojstwa[33] = {
	0,
		10, 25, 50, 100, 150, 200, 251, 500, 750, 1000, 
		1200, 1400, 1700, 1900, 2200, 2700, 2904, 3500, 4000, 5000
	
}

new SHO, zapis_sprawdz, zabojstwa[33];
public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	RegisterHam(Ham_Spawn, "player", "respawn");
	register_event("DeathMsg", "DeathMsg", "a");
	register_message(get_user_msgid("SayText"), "Prefix");

	
	SHO = CreateHudSyncObj();
	
	zapis_sprawdz = nvault_open("ranga")
	if(zapis_sprawdz == INVALID_HANDLE)
		set_fail_state("[BLAD] Nie moge otworzyc pliku");

}

public DeathMsg(){
	new zabil = read_data(1)
	
	if(is_user_alive(zabil) && is_user_connected(zabil)){
		zabojstwa[zabil]++
	}
}

public client_connect(id){
	wczytaj(id)
	Wczytaj_Dane(id)
}

public client_disconnect(id){
	Zapisz_Dane(id)
}

public respawn(id){
	if(!task_exists(id+TASK))
		set_task(0.1, "Hud", id+TASK, .flags = "b");
}

public Hud(id){
	
	id -= TASK;

	
	
	if(!is_user_connected(id)){
		remove_task(id+TASK)
		return PLUGIN_CONTINUE
	}
	
	if(zabojstwa[id] == 0){
		poziom[id] = 0;
	} else if(zabojstwa[id] >= 1) {
		while(zabojstwa[id] >= wymaganezabojstwa[poziom[id]])
			poziom[id]++
	}

	new name[33]
	get_user_name(id,name,32)
	set_hudmessage(0, 255, 0, 0.05, 0.2, 0, 1.0, 1.0, 0.1, 0.1);
	ShowSyncHudMsg(id, SHO, "[CSGO]^n|/|Nick : %s^n|/|Zabicia: %d/%d^n|/|Ranga : %s^n|/|VIP: %s^n", name, zabojstwa[id], wymaganezabojstwa[poziom[id]], ranga[poziom[id]], get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie" );
	
	return PLUGIN_CONTINUE;
}

public Zapisz_Dane(id)
{
	new name[64];
	get_user_name(id, name, 63)
	Zapisz_DaneNick(id, name)
}

public Zapisz_DaneNick(id, name[]){
	new vaultkey[128],vaultdata[256]
	formatex(vaultkey, 127 ,"%s-RNG", name);
	formatex(vaultdata, 255, " ^"%d^" ^"%d^"", zabojstwa[id], poziom[id])
	nvault_set(zapis_sprawdz, vaultkey, vaultdata);
}

public Wczytaj_Dane(id){
	new name[32]
	get_user_name(id, name, 31)
	Wczytaj_DaneNick(id, name)
}

public Wczytaj_DaneNick(id, name[])
{
	new vaultkey[128],vaultdata[256]
	formatex(vaultkey, 127, "%s-RNG", name);
	nvault_get(zapis_sprawdz, vaultkey, vaultdata, 255);
	
	if(nvault_get(zapis_sprawdz, vaultkey, vaultdata, 127)) {
		new zabojstwatemp[16], poziomtemp[16];
		parse(vaultdata, zabojstwatemp, 15, poziomtemp, 15)
		
		zabojstwa[id] = str_to_num(zabojstwatemp)
		poziom[id] = str_to_num(poziomtemp)
	}
}

public wczytaj(id){
	zabojstwa[id] = 0;
	poziom[id] = 0;
}

public client_infochanged(id){
	new NowyNick[32], StaryNick[32];
	get_user_info(id, "name", NowyNick, 31);
	get_user_name(id, StaryNick, 31);
	if(!equal(StaryNick, NowyNick)){
		Zapisz_DaneNick(id, StaryNick);
		wczytaj(id);
		Wczytaj_DaneNick(id, NowyNick);
	}
}

public Prefix(msgId,msgDest,msgEnt)
{
	new id = get_msg_arg_int(1);
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	new szTmp[256],szTmp2[256];
	get_msg_arg_string(2,szTmp, charsmax( szTmp ) )
	new szPrefix[64];
	
	formatex(szPrefix,charsmax( szPrefix ),"^x04[^x03%s^x04]^x03", ranga[poziom[id]]);
	
	if(!equal(szTmp,"#Cstrike_Chat_All"))	{
		add(szTmp2,charsmax(szTmp2),szPrefix);
		add(szTmp2,charsmax(szTmp2)," ");
		add(szTmp2,charsmax(szTmp2),szTmp);
	}else{
		add(szTmp2,charsmax(szTmp2),szPrefix);
		add(szTmp2,charsmax(szTmp2),"^x03%s1^x01 : %s2");
	}
	set_msg_arg_string(2,szTmp2);
		
	return PLUGIN_CONTINUE;
}


Odpowiedz

  • +
  • -
Hiko - zdjęcie Hiko 23.10.2016

do zamkniecia poradzilem sobie :)

Odpowiedz