Page 1 of 1

[Cerere Plugin] Kill benefici

Posted: 05 Nov 2018, 16:00
by DozerRadu
După un anumit număr de ucideri să primeşti nişte benefici , exemplu :
  • 1. După 10 ucideri - +10 hp (110 hp la spawn)
  • 2. Dupa 20 ucideri - +20 hp & 1 grenada flash (120 hp & grenada flash la spawn)
  • 3. Dupa 30 ucideri - +30 hp & speed (130 hp & speed la spawn)
etc...


Aceste benefici să fie valabile până la schimbarea hărţi !
Doresc să scrie undeva pe ecran nick-ul jucătorului , numărul de kill-uri şi la ce grad este ; exemplu :

JucatorEXTREAM [45 UCIDERI] [ GRAD 4 ]


Doresc acest plugin pentru modul respawn.

Re: [Cerere Plugin] Kill benefici

Posted: 05 Nov 2018, 17:19
by levin
o să ai nevoide de - https://forums.alliedmods.net/showthread.php?t=76453
| Afiseaza codul
#include <amxmodx>
//#include <amxmisc>
#include <fun>
#include <fvault>

new const g_VAULTNAME[] = "Kills";

#define RANK_10 "GRAD1"
#define RANK_20 "GRAD2"
#define RANK_30 "GRAD3"

new kills[33]

public client_putinserver(id) if(is_user_connected(id)&&(!is_user_bot(id)||!is_user_hltv(id)))	LoadData(id);
public client_disconnect(id)	if((!is_user_bot(id)||!is_user_hltv(id)))	SaveData(id)

public client_PreThink(id)
{
	if(is_user_alive(id))	if(kills[id]>=30)	set_user_maxspeed(id,265.0)

	if(is_user_connected(id)&&(!is_user_bot(id)||!is_user_hltv(id)))
	{
		new name[32]
		get_user_name(id,name,charsmax(name))

		if(kills[id]>=10)
		{
			set_hudmessage(255,127,0,0.55,0.4,0,6.0,12.0)
			show_hudmessage(id,"%s [%d UCIDERI] [ %d ]",name,kills[id],RANK_10)
		}
		else if(kills[id]>=20)
		{
			set_hudmessage(255,127,0,0.55,0.4,0,6.0,12.0)
			show_hudmessage(id,"%s [%d UCIDERI] [ %d ]",name,kills[id],RANK_20)
		}
		else if(kills[id]>=30)
		{
			set_hudmessage(255,127,0,0.55,0.4,0,6.0,12.0)
			show_hudmessage(id,"%s [%d UCIDERI] [ %d ]",name,kills[id],RANK_30)
		}
	}
}

public client_spawn(id)
{
	if(is_user_alive(id))
	{
		if(kills[id]>=10)	set_user_health(id,110)
		else if(kills[id]>=20)
		{
			set_user_health(id,120)
			give_item(id,"weapon_flashbang")
		}
		else if(kills[id]>=30)
		{
			set_user_health(id,130)
			set_user_maxspeed(id,265.0)
		}
	}
}

public client_death(killer,victim,wpnindex,hitplace,TK)	if(is_user_connected(killer)&&is_user_connected(victim)&&killer!=victim)	kills[killer]++



public SaveData(id){ 
	new authid[32],mapname[32]
	get_user_name(id, authid, 31)
	get_mapname(mapname, charsmax(mapname))
	
	new data[65]
	formatex( data, sizeof( data ) - 1, "%d %s", kills[id], mapname )
	fvault_set_data(g_VAULTNAME, authid, data )
} 

public LoadData(id){ 
	
	new authid[32],mapname[32]
	get_user_name(id,authid,31) 
	get_mapname(mapname, charsmax(mapname))
	
	new data[ 65 ], szKills[ 32 ], szMap[ 32 ];
	if( fvault_get_data(g_VAULTNAME, authid, data, sizeof( data ) - 1 ) )
	{
		parse/*strbreak*/( data, szKills, sizeof( szKills ) - 1, szMap, sizeof( szMap ) - 1 );

		get_mapname(szMap, charsmax(szMap))

		if(equali(mapname,szMap))	kills[id] = str_to_num( szKills );
		else	kills[id]=0
	}
}

Re: [Cerere Plugin] Kill benefici

Posted: 09 Nov 2018, 16:06
by DozerRadu
Nu merge :weary:

Re: [Cerere Plugin] Kill benefici

Posted: 09 Nov 2018, 17:07
by levin
ce nu merge -_-

Re: [Cerere Plugin] Kill benefici

Posted: 12 Nov 2018, 18:36
by DozerRadu
Pluginul oferit de tine adică îl pun şi am facut kiluri dar nu primeşte nimic.

Re: [Cerere Plugin] Kill benefici

Posted: 19 Nov 2018, 19:36
by levin
poate nu ai modulele active, depinde ce amxx ai(AMXX NU REAMXX SAU REHLDS)

Re: [Cerere Plugin] Kill benefici

Posted: 22 Nov 2018, 09:08
by DozerRadu
UP*

Re: [Cerere Plugin] Kill benefici

Posted: 24 Nov 2018, 12:53
by YONTU
DozerRadu wrote:După un anumit număr de ucideri să primeşti nişte benefici , exemplu :
  • 1. După 10 ucideri - +10 hp (110 hp la spawn)
  • 2. Dupa 20 ucideri - +20 hp & 1 grenada flash (120 hp & grenada flash la spawn)
  • 3. Dupa 30 ucideri - +30 hp & speed (130 hp & speed la spawn)
etc...


Aceste benefici să fie valabile până la schimbarea hărţi !
Doresc să scrie undeva pe ecran nick-ul jucătorului , numărul de kill-uri şi la ce grad este ; exemplu :

JucatorEXTREAM [45 UCIDERI] [ GRAD 4 ]


Doresc acest plugin pentru modul respawn.
| Afiseaza codul
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <fun>
#include <csx>

/*
1. Dupa 10 ucideri - +10 hp (110 hp la spawn)
2. Dupa 20 ucideri - +20 hp & 1 grenada flash (120 hp & grenada flash la spawn)
3. Dupa 30 ucideri - +30 hp & speed (130 hp & speed la spawn)
etc...


Aceste benefici sa fie valabile pâna la schimbarea harti !
Doresc sa scrie undeva pe ecran nick-ul jucatorului , numarul de kill-uri si la ce grad este ; exemplu : 

JucatorEXTREAM [45 UCIDERI] [ GRAD 4 ] 
*/

new _nivel[33], _fraguri[33], _nume[33][32], SyncHudMessage;
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;

#define PLUGIN_NAME "[AMXX] Bonus shits"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"


// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
#define TAG	"[AMXX]"
#define _HP1	10
#define _HP2	20
#define _HP3	30
#define _KILLS1	10
#define _KILLS2	20
#define _KILLS3	30
#define _SPEED3	250.0
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------


public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPre", 1);
	RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeedPost", true);
	register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in");
	
	SyncHudMessage = CreateHudSyncObj();
}


public client_putinserver(id)
{
	get_user_name(id, _nume[id], charsmax(_nume[]));
	set_task(1.0, "task_aratahud", id + 12221);
	//_nivel[id] = -1;
	//_fraguri[id] = 0;
}


public event_textmsg()
{
	arrayset(_nivel, -1, charsmax(_nivel));
	arrayset(_fraguri, 0, charsmax(_fraguri));
}

public fw_PlayerSpawnPre(id)
{
	if(!is_user_alive(id))
		return HAM_HANDLED;
	
	new _viata;
	switch(_nivel[id])
	{
		case 1: _viata = _HP1;
		case 2:
		{
			_viata = _HP2;
			give_item(id, "weapon_flashbang");
		}
		case 3: _viata = _HP3;
		default: _viata = 0;
	}
	if(_viata != 0)
		set_user_health(id, get_user_health(id) + _viata);
	
	return HAM_IGNORED;
}

public fw_ResetMaxSpeedPost(id)
{
	if(is_user_alive(id) && _nivel[id] == 3)
	{
		new Float:fViteza = _SPEED3;
		engfunc(EngFunc_SetClientMaxspeed, id, fViteza);
		set_pev(id, pev_maxspeed, fViteza);
	}
	return HAM_IGNORED;
}

public task_aratahud(taskid)
{
	new player = taskid - 12221;

	if(is_user_connected(player))
	{
		set_hudmessage(200, 200, 200, 0.02, 0.32, 0, 6.0, 1.1, 0.0, 0.0, -1);
		ShowSyncHudMsg(player, SyncHudMessage, "Jucator: %s^nUcideri: %d^nGrad [%d]", _nume[player], _fraguri[player], _nivel[player]);
	
		set_task(1.0, "task_aratahud", player + 12221);
	}
}

public adauga_efecte(id)
{
	if(!is_user_connected(id))
		return;
		
	static g_msg_screenshake = 0;
	if(!g_msg_screenshake)
		g_msg_screenshake = get_user_msgid("ScreenShake");
	
	message_begin(MSG_ONE, g_msg_screenshake, _, id);
	write_short(1<<14);
	write_short(1<<14);
	write_short(1<<14);
	message_end();

	static g_msg_screenfade = 0;
	if(!g_msg_screenfade)
		g_msg_screenfade = get_user_msgid("ScreenFade");
		
	message_begin(MSG_ONE_UNRELIABLE, g_msg_screenfade, _, id);
	write_short(1<<10);
	write_short(1<<10);
	write_short(1<<12);
	write_byte(random_num(0, 255));
	write_byte(random_num(0, 255));
	write_byte(random_num(0, 255));
	write_byte(100);
	message_end();	
}

public client_death(killer, victim, wpnindex, hitplace, tk)
{
	if(!is_user_alive(killer))
		return;

	if(killer == victim)
		return;

	_fraguri[killer]++;
	switch(_fraguri[killer])
	{
		case _KILLS1: _nivel[killer] = 1;
		case _KILLS2: _nivel[killer] = 2;
		case _KILLS3: _nivel[killer] = 3;
	}
	if(_fraguri[killer] == _KILLS1 || _fraguri[killer] == _KILLS2 || _fraguri[killer] == _KILLS3)
	{
		adauga_efecte(killer);
		ColorChat(killer, "!4%s!1 Felicitari! La urmatorul spawn vei primi un bonus in iteme.", TAG);
	}
}

stock ColorChat(id, String[], any:...) 
{
	static szMesage[192];
	vformat(szMesage, charsmax(szMesage), String, 3);
	
	replace_all(szMesage, charsmax(szMesage), "!1", "^1");
	replace_all(szMesage, charsmax(szMesage), "!3", "^3");
	replace_all(szMesage, charsmax(szMesage), "!4", "^4");
	
	static g_msg_SayText = 0;
	if(!g_msg_SayText)
		g_msg_SayText = get_user_msgid("SayText");
	
	new Players[32], iNum = 1, i;

 	if(id) Players[0] = id;
	else get_players(Players, iNum, "ch");
	
	for(--iNum; iNum >= 0; iNum--) 
	{
		i = Players[iNum];
		
		message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
		write_byte(i);
		write_string(szMesage);
		message_end();
	}
}
Ia incearca asa.

Intri in sursa si cauti liniile:

Code: Select all

// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
#define TAG    "[AMXX]" // la inceputul unui mesaj apare acest cuvant
#define _HP1    10
#define _HP2    20
#define _HP3    30
#define _KILLS1    10
#define _KILLS2    20
#define _KILLS3    30
#define _SPEED3    250.0
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------  
Modifici dupa bunul plac.

Re: [Cerere Plugin] Kill benefici

Posted: 24 Nov 2018, 14:28
by levin
din câte a zis el, el vrea să se salveze până la schimbarea unei mape

Re: [Cerere Plugin] Kill benefici

Posted: 24 Nov 2018, 14:43
by YONTU
N a precizat nimic de salvarea killurilor. Bonusurile sunt valabile pana la schimbarea hartii. Cand se da restart la runda, killurile se resetează