Cerere plugin misiuni

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 .
Post Reply
User avatar
gaNNNja
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 131
Joined: 26 Jun 2014, 16:02
Detinator Steam: Da
Reputatie: Utilizator neserios (tepar)
Fond eXtream: 0
Has thanked: 1 time
Been thanked: 4 times

04 Nov 2019, 23:45

Plugin Cerut: plugin misiuni furien
Descriere (adica ce face el mai exact):
Serverul ruleaza (HLDS/ReHLDS): rehlds
Versiune AMX Mod X: 1.8.2
Modul Serverului: furien remade

Imagini.
| Afiseaza codul
Image
Image
Image
Image
Enix
User avatar
gaNNNja
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 131
Joined: 26 Jun 2014, 16:02
Detinator Steam: Da
Reputatie: Utilizator neserios (tepar)
Fond eXtream: 0
Has thanked: 1 time
Been thanked: 4 times

06 Nov 2019, 18:41

Cineva ?
User avatar
Jucator
Membru, skill +1
Membru, skill +1
Posts: 203
Joined: 15 Jul 2017, 20:38
Detinator Steam: Da
Fond eXtream: 0
Has thanked: 26 times
Been thanked: 11 times
Contact:

06 Nov 2019, 22:46

gaNNNja wrote:
06 Nov 2019, 18:41
Cineva ?
Acel plugin este băgat în sistem Addons doar daca vb cu deținătorul serverului îl poți să ai contra cost
User avatar
gaNNNja
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 131
Joined: 26 Jun 2014, 16:02
Detinator Steam: Da
Reputatie: Utilizator neserios (tepar)
Fond eXtream: 0
Has thanked: 1 time
Been thanked: 4 times

06 Nov 2019, 23:29

Acel plugin nu este integrat în modul de baza . Este un plugin separat care nu are treaba cu modul
User avatar
cyby
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 1779
Joined: 16 Jul 2011, 20:46
Detinator Steam: Da
Detinator server CS: Da
Reputatie: Scripter eXtreamCS
Fost Moderator ajutator
Location: Bacău
Has thanked: 145 times
Been thanked: 392 times
Contact:

07 Nov 2019, 12:36

89.34.25.17:27015 - XMAS MOD
89.34.25.38:27015 - XMAS MOD
User avatar
-ToTo-
Membru, skill +1
Membru, skill +1
Posts: 325
Joined: 30 Jul 2016, 20:28
Detinator Steam: Da
CS Status: Muncă
Detinator server CS: Frcso.Play-Arena.Ro
SteamID: Privat
Fond eXtream: 0
Location: Botosani

08 Nov 2019, 19:42

Ia legatura cu YONTU daca il mai are, iam dat acu cateva luni sa mi-l faca, dar am inceput munca si nu am avut cum lua legatura cu el, cu ocazia asta imi cer si scuze ca l-am pus sa mi-l faca si nu iam mai dat nici un semn, dar pedeoparte am si uitat. 100lei parca era pluginu.
Aici era in testare, trebuia sa fie cu arme cso pentru anti-furieni si puteri pentru furieni ceva de genu din cate imi aduc aminte special pentru modu ala a lui cyby, si multe altele, dar nu imi mai aduc aminte bine.
Nu ne oprim din joacă atunci când îmbătrânim ci îmbătrânim când încetăm să ne mai jucăm.

User avatar
YONTU
Moderator ajutator
Moderator ajutator
Posts: 2398
Joined: 10 May 2013, 13:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 253 times
Been thanked: 272 times
Contact:

24 Dec 2019, 10:13

misiuni.sma | Afiseaza codul
/*
LICENTA


DETALII PLUGIN:

System Misiuni pentru Furien si Anti-Furieni. Sa fie cate o  misiune random activa la fiecare echipa pe toata durata mapei.
Cand scrii "/misiune" sa arate ce misiune se desfasoara in acel moment.
Cand scrii "misiune alege" sa pot alege eu o misiune
Cine termina primul aceste misiuni sa scrie in chat: 
(Anti-Furien) Jucatoru Ionica a indeplinit misiunea si a primit 120 dolari si hook.
(Furien) Jucatoru Ionica a indeplinit misiunea si a primit 120 dolari si teleport.
( acesti dolari sa fie salavati ca baza nu salveaza :)) )
premiile dureaza toata harta

#Anti-Furieni
Omoara 10 Furieni prin HeadShot.
Ucide 6 furieni cu lama
Dezamorseaza 8 bombe.
Omoara 30 furieni.

#Furieni
Foloseste 140$ intr-o runda.
Fa 35 kill-uri cu knife-ul.
Planteaza 10 bombe.
Omoara 30 anti-furieni.

Acestea sa se activeze cand sunt peste 3 playeri.

Meniu statisticile tale:
1. Misiune curenta: X
2. Killurile tale:  (+ procentaj) (x% completat)
3. Bombe plantate: (+ procentaj)
4. Bombe dezamorsate


CE TREBUIE SA MAI FAC:
- modt despre misiuni
- daca s-a incheiat o misiune iar castigatorul trece de la o echipa la cealalta ce se intampla?
- de afisat mesaj hud cu castigatorul imediat dupa ce a finalizat misiunea (o singura data)
- cand dam premiul la castigator sa verificam daca e conectat si in viata
- de adaugat invartire ecran la castigator
- cvar-uri
- progresul facut intr-o runda (de ex. tre sa fac 10 killuri, iar eu am facut 3 => arat procentaj)
- bug: misiune castigata dar am ales alta misiune => mesajele
DACA APAR ERORI:
- mutam maxim pe static si il trecem prin referinta
- restart la pc -> memorie volatila
- de verifcat tasku-ul task_anunta_castigator() cand misiunea la t este prima (de verificat de mai multe ori)

*/

#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <csx>

#pragma compress 1

#define PLUGIN_NAME "[AMXX] Misiuni"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"


#define ULTIMA_MODIFICARE "10.02.2019"


// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
#define TAG	"[AMXX]"
#define MIN_JUCATORI	2
#define ACCES_ADMIN	ADMIN_IMMUNITY
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------

/*
	se_desfasoara:
	1 = misiunea se desfasoara
	0 = misiunea nu se desfasoara
*/

new misiune_ct, misiune_t, bool:se_desfasoara, bool:misiune_completa_t, bool:misiune_completa_ct, misiune_aleasa_ct, misiune_aleasa_t, castigator_t, castigator_ct, jucatori;
new max_players, g_sync_hudmessage, g_sync_hudmessage2;
new bmb_plant[33], bmb_def[33], nume_admin[33], kills_t[33], kills_ct[33], runde[33], text_potentiali[512], text_misiune[128],
nume_castigator_ct[32], nume_castigator_t[32];

enum datas_
{
	str[32],
	info
};

new const misiuni_t[][datas_] =
{
	{ "Rezista # de runde fara sa mori", 3 },
	{ "Ucide # anti-furieni cu cutitul", 4 },
	{ "Planteaza # bombe", 2 },
	{ "Omoara # anti-furieni", 10 }
};

new const misiuni_ct[][datas_] =
{
	{ "Omoara # furieni prin headshot", 4 },
	{ "Ucide # furieni cu lama", 2 },
	{ "Dezamorseaza # bombe", 8 },
	{ "Omoara # furieni", 3 }
};

// 93.114.82.92:27015

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
	register_cvar("misiuni_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
	set_cvar_string("misiuni_", PLUGIN_VERSION);

	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPre", 1);
	register_logevent("round_end", 2, "1=Round_End");
	register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in");

	register_clcmd("say", "cmd_say");
	register_clcmd("say_team", "cmd_say");

	se_desfasoara = false;
	misiune_t = -1;
	misiune_ct = -1;
	misiune_aleasa_t = -1;
	misiune_aleasa_ct = -1;
	max_players = get_maxplayers();

	// alegem misiunea imediat dupa ce s-a dat restart la server/schimbat harta
	set_task(5.0, "task_alege_misiune");

	g_sync_hudmessage = CreateHudSyncObj();
	g_sync_hudmessage2 = CreateHudSyncObj();
}

public client_putinserver(id)
{
	jucatori++;
	set_task(3.0, "task_verifica_inceput");
}

public client_disconnect(id)
{
	jucatori--;
	set_task(3.0, "task_verifica_inceput");
}

public task_verifica_inceput()
{
	se_desfasoara = (jucatori >= MIN_JUCATORI) ? true : false;
	
	if(se_desfasoara)
        	{
		/*
		Misiune in desfasurare...
		
		Fii primul care termina misiunea
		si vei fi rasplatit cu un premiu
		*/
		
		new jucatori2[32], numar = 0, id, i;
		if(!misiune_completa_ct)
		{
			if(0 <= misiune_ct <= sizeof(misiuni_ct))
			{
				get_players(jucatori2, numar, "e", "CT");
				for(i = 0; i < numar; i++)
				{
					id = jucatori2;
					if(!is_user_connected(id))
						continue;
						
					set_hudmessage(255, 255, 255, 0.2, 0.40, 2, _, 2.0, _, _);
					ShowSyncHudMsg(id, g_sync_hudmessage2, "Misiune in desfasurare...^n^nFii primul care termina misiunea^nsi vei fi rasplatit cu un premiu", MIN_JUCATORI - jucatori);
				}
			}
			return;
		}
		if(!misiune_completa_t)
		{
			if(0 <= misiune_t <= sizeof(misiuni_t))
			{
				get_players(jucatori2, numar, "e", "TERRORIST");
				for(i = 0; i < numar; i++)
				{
					id = jucatori2;
					if(!is_user_connected(id))
						continue;
						
					set_hudmessage(255, 255, 255, 0.2, 0.40, 2, _, 2.0, _, _);
					ShowSyncHudMsg(id, g_sync_hudmessage2, "Misiune in desfasurare...^n^nFii primul care termina misiunea^nsi vei fi rasplatit cu un premiu", MIN_JUCATORI - jucatori);
				}
			}
			return;
		}
	}				
}

// sa prevenim aparitia bugurilor la noile misiuni
public event_textmsg()
{
	if(misiune_aleasa_ct != -1)
	{
		arrayset(bmb_def, 0, charsmax(bmb_def));
		arrayset(kills_ct, 0, charsmax(kills_ct));
		castigator_ct = -1;
		misiune_completa_ct = false;
	}
	if(misiune_aleasa_t != -1)
	{
		arrayset(bmb_plant, 0, charsmax(bmb_plant));
		arrayset(kills_t, 0, charsmax(kills_t));
		arrayset(runde, 0, charsmax(runde));
		castigator_t = -1;
		misiune_completa_t = false;
	}
	//reseteaza_tot();
}

// s-ar putea sa apara bug aici
// neconcludent
public task_alege_misiune()
{
	if(misiune_aleasa_t == -1)
	{
		if(misiune_t == -1)
			misiune_t = random_num(0, charsmax(misiuni_t));
	}
	if(misiune_aleasa_t == -1)
	{
		if(misiune_ct == -1)
			misiune_ct = random_num(0, charsmax(misiuni_ct));
	}

	reseteaza_tot();
}

public fw_PlayerSpawnPre(id)
{
	if(!is_user_alive(id))
		return HAM_HANDLED;
		
	if(misiune_aleasa_ct != -1)
	{
		misiune_ct = misiune_aleasa_ct;
		misiune_aleasa_ct = -1;
		
		task_alege_misiune();
		if(cs_get_user_team(id) == CS_TEAM_CT)
		{
			format_misiune_ct(misiune_ct, text_misiune);
			ColorChat(id, "!4%s!1 O NOUA MISIUNE A FOST ALEASA PENTRU VOI.", TAG);
			ColorChat(id, "!4%s!1 Adminul!3 %s!1 a ales misiunea!3 %s", TAG, nume_admin, text_misiune);
		}
		return HAM_HANDLED;
	}
	if(misiune_aleasa_t != -1)
	{
		misiune_t = misiune_aleasa_t;
		misiune_aleasa_t = -1;

		task_alege_misiune();
		if(cs_get_user_team(id) == CS_TEAM_T)
		{
			format_misiune_t(misiune_t, text_misiune);
			ColorChat(id, "!4%s!1 O NOUA MISIUNE A FOST ALEASA PENTRU VOI.", TAG);
			ColorChat(id, "!4%s!1 Adminul!3 %s!1 a ales misiunea!3 %s", TAG, nume_admin, text_misiune);
		}
		return HAM_HANDLED;
	}
	
	return HAM_IGNORED;
}

/*
Pot fi mai multi jucatori care au supravietuit x runde,
asadar, pentru a alege un castigator, alegem unul random
din toti cei care au supravietuit.
*/

public round_end()
{
	if(se_desfasoara && misiune_t == 0 && !misiune_completa_t)
	{
		new players[32], numar, i, id, total = 0, id_supravietuitori[32];
		cauta_id_jucatori(players, numar);
		for(i = 0; i < numar; i++)
		{
			id = players;
			if(!is_user_connected(id))
				continue;

			if(cs_get_user_team(id) != CS_TEAM_T)
				continue;

			if(is_user_alive(id))
			{
				if(++runde[id] == misiuni_t[misiune_t][info])
				{
					// numaram toti jucatorii care au supravietuti x runde si le retinem id-ul
					id_supravietuitori[total++] = id;
					misiune_completa_t = true;
				}
			}
			else runde[id] = 0;
		}

		if(misiune_completa_t)
		{
			// am gasit id-ul castigatorului, astfel putem sa ii dam un premiu pe restul rundelor
			castigator_t = id_supravietuitori[random_num(0, total-1)];
			get_user_name(castigator_t, nume_castigator_t, charsmax(nume_castigator_t));
			set_task(1.0, "task_anunta_castigator");
		}
	}
}

public task_anunta_castigator()
{
	new players[32], numar = 0, i, id, nume_castigator[32];
	if(misiune_completa_ct)
	{
		format_misiune_ct(misiune_ct, text_misiune);
		get_players(players, numar, "e", "CT");
		for(i = 0; i < numar; i++)
		{
			id = players;
			if(!is_user_connected(id))
				continue;
				
			get_user_name(id, nume_castigator, charsmax(nume_castigator));
			
			if(id == castigator_ct && equal(nume_castigator_ct, nume_castigator))
			{
				ColorChat(id, "!4%s!1 FELICITARI!4 %s!1!!! Ai terminat primul misiunea!3 %s!1.", TAG, nume_castigator, text_misiune);
				set_task(0.25, "adauga_efecte", id, _, _, "a", 12);
			}
			else
			{
				ColorChat(id, "!4%s!1 Jucatorul!4 %s!1 a terminat primul misiunea!3 %s!1.", TAG, nume_castigator_ct, text_misiune);
			}
		}
		return;
	}
	if(misiune_completa_t)
	{
		format_misiune_t(misiune_t, text_misiune);
		get_players(players, numar, "e", "TERRORIST");
		for(i = 0; i < numar; i++)
		{
			id = players;
			if(!is_user_connected(id))
				continue;
				
			get_user_name(id, nume_castigator, charsmax(nume_castigator));
			
			if(id == castigator_t && equal(nume_castigator_t, nume_castigator))
			{
				ColorChat(id, "!4%s!1 FELICITARI!4 %s!1!!! Ai terminat primul misiunea!3 %s!1.", TAG, nume_castigator, text_misiune);
				set_task(0.25, "adauga_efecte", id, _, _, "a", 12);
			}
			else
			{
				ColorChat(id, "!4%s!1 Jucatorul!4 %s!1 a terminat primul misiunea!3 %s!1.", TAG, nume_castigator_t, text_misiune);
			}
		}
	}
}

public adauga_efecte(castigator)
{
	if(!is_user_connected(castigator))
		return;
		
	static g_msg_screenshake = 0;
	if(!g_msg_screenshake)
		g_msg_screenshake = get_user_msgid("ScreenShake");
	
	message_begin(MSG_ONE, g_msg_screenshake, _, castigator);
	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, _, castigator);
	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 cmd_say(id)
{
	static chat[192];
	read_args(chat, charsmax(chat));
	remove_quotes(chat);
    
	if(equali(chat, ""))
		return PLUGIN_HANDLED_MAIN;

	new CsTeams:echipa = cs_get_user_team(id);
	
	if(echipa == CS_TEAM_CT)
	{
		if(misiune_ct != -1)
			format_misiune_ct(misiune_aleasa_ct != -1 ? misiune_aleasa_ct : misiune_ct, text_misiune);
	}
	else
	{
		if(misiune_t != -1)
			format_misiune_t(misiune_aleasa_t != -1 ? misiune_aleasa_t : misiune_t, text_misiune);
	}

	new comanda[32];
	strbreak(chat, comanda, charsmax(comanda), chat, charsmax(chat));

	if(equali(comanda, "misiune", 7) || equali(comanda, "/misiune", 7))
	{
		if(equali(chat[0], "help"))
		{
			meniu_statistici(id);
			return PLUGIN_CONTINUE;
		}
		if(equali(chat[0], "alege"))
		{
			if(!(get_user_flags(id) & ACCES_ADMIN))
			{
				ColorChat(id, "!4%s!1 Doar adminii au dreptul sa aleaga o misiune.", TAG);
				return PLUGIN_CONTINUE;
			}
			if(misiune_aleasa_ct != -1 || misiune_aleasa_t != -1)
			{
				ColorChat(id, "!4%s!3 A fost aleasa deja o misiune de catre adminul!1 %s!3. Te rugam sa astepti pana la urmatorul spawn.", TAG, nume_admin);
				ColorChat(id, "!4%s!1 Urmatoarea misiune:!3 %s", TAG, text_misiune);
			}
			else
			{
				static menu, text[128], tasta[2], i;
				if(echipa == CS_TEAM_CT)
				{
					formatex(text, charsmax(text), "\wAlege o misiune^nMisiunea curenta:\y %s", text_misiune);
					menu = menu_create(text, "alege_handler");
					
					for(i = 0; i < sizeof misiuni_ct; i++)
					{
						format_misiune_ct(i, text_misiune);
						formatex(text, charsmax(text), "%s%s", (i == misiune_ct) ? "\d" : "", text_misiune);
						tasta[0] = i;
						tasta[1] = 0;
						menu_additem(menu, text, tasta);
					}
				}
				else
				{
					formatex(text, charsmax(text), "\wAlege o misiune^nMisiunea curenta:\y %s", text_misiune);
					menu = menu_create(text, "alege_handler");
					
					for(i = 0; i < sizeof misiuni_t; i++)
					{
						format_misiune_t(i, text_misiune);
						formatex(text, charsmax(text), "%s%s", (i == misiune_t) ? "\d" : "", text_misiune);
						tasta[0] = i;
						tasta[1] = 0;
						menu_additem(menu, text, tasta);
					}
				}
				menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
				menu_display(id, menu, 0);
			}
			return PLUGIN_CONTINUE;
		}
		if(se_desfasoara)
		{
			if(echipa == CS_TEAM_CT)
			{
				// COMPLETA
				if(misiune_completa_ct)
				{
					ColorChat(id, "!4%s!1 Misiunea!3 %s!1 a fost castigata de!4 %s!1.", TAG, text_misiune, nume_castigator_ct);
					ColorChat(id, "!4%s!1 Harta urmatoare alegem o noua misiune. Fii alaturi de noi.", TAG);
				}
				else
				{
					// IN DESFASURARE
					ColorChat(id, "!4%s!1 In acest moment se desfasoara misiunea:!3 %s!1 (!4%d!1).", TAG, text_misiune, misiune_ct);
					if(calculeaza(id, CS_TEAM_CT, misiune_ct, 1, text_potentiali) == 1.0)	// 1.0 succes
						ColorChat(id, "!4%s!1 Potentiali castigatori:!3 %s", TAG, text_potentiali);
		
					set_hudmessage(42, 255, 42, 0.1, 0.6, 2, _, 2.0, _, _);
					ShowSyncHudMsg(id, g_sync_hudmessage, "Misiunea numarul %d^n^nDescriere: %s", misiune_ct, text_misiune);
				}
			}
			else
			{
				// COMPLETA
				if(misiune_completa_t)
				{
					ColorChat(id, "!4%s!1 Misiunea!3 %s!1 a fost castigata de!4 %s!1.", TAG, text_misiune, nume_castigator_t);
					ColorChat(id, "!4%s!1 Harta urmatoare alegem o noua misiune. Fii alaturi de noi.", TAG);
				}
				else
				{
					// IN DESFASURARE
					ColorChat(id, "!4%s!1 In acest moment se desfasoara misiunea:!3 %s!1 (!4%d!1).", TAG, text_misiune, misiune_t);
					if(calculeaza(id, CS_TEAM_T, misiune_t, 1, text_potentiali) == 1.0)	// 1.0 succes
						ColorChat(id, "!4%s!1 Potentiali castigatori:!3 %s", TAG, text_potentiali);
		
					set_hudmessage(42, 255, 42, 0.1, 0.6, 2, _, 2.0, _, _);
					ShowSyncHudMsg(id, g_sync_hudmessage, "Misiunea numarul %d^n^nDescriere: %s", misiune_t, text_misiune);
				}
			}
			meniu_statistici(id);
			return PLUGIN_CONTINUE;
		}
		else
		{
			if(echipa == CS_TEAM_CT)
			{
				// COMPLETA
				if(misiune_completa_ct)
				{
					ColorChat(id, "!4%s!1 Misiunea!3 %s!1 a fost castigata de!4 %s!1.", TAG, text_misiune, nume_castigator_ct);
					ColorChat(id, "!4%s!1 Harta urmatoare alegem o noua misiune. Fii alaturi de noi.", TAG);
				}
				else
				{
					// SUSPENDATA
					if(misiune_ct != -1)
					{
						ColorChat(id, "!4%s!1 Misiunea!3 '%s'!1 a fost suspendata.", TAG, text_misiune);
						if(MIN_JUCATORI - jucatori > 0)
						{
							ColorChat(id, "!4%s!1 Nu sunt suficienti jucatori pe server pentru a continua.", TAG);
						
							set_hudmessage(42, 255, 42, 0.1, 0.60, 0, _, 2.0, _, _);
							ShowSyncHudMsg(id, g_sync_hudmessage, "JUCATORI NECESARI: inca %d", MIN_JUCATORI - jucatori);
						}
					}
					else
					{
						// NU EXISTA MISIUNE
						ColorChat(id, "!4%s!1 Momentan nu ruleaza nicio misiune pe server.", TAG);
						return PLUGIN_CONTINUE;
					}
				}
			}
			else
			{
				// COMPLETA
				if(misiune_completa_t)
				{
					ColorChat(id, "!4%s!1 Misiunea!3 %s!1 a fost castigata de!4 %s!1.", TAG, text_misiune, nume_castigator_t);
					ColorChat(id, "!4%s!1 Harta urmatoare alegem o noua misiune. Fii alaturi de noi.", TAG);
				}
				else
				{
					// SUSPENDATA
					if(misiune_t != -1)
					{
						ColorChat(id, "!4%s!1 Misiunea!3 '%s'!1 a fost suspendata.", TAG, text_misiune);
						if(MIN_JUCATORI - jucatori > 0)
						{
							ColorChat(id, "!4%s!1 Nu sunt suficienti jucatori pe server pentru a continua. Necesari:!4 %d", TAG, MIN_JUCATORI - jucatori);
						
							set_hudmessage(42, 255, 42, 0.1, 0.60, 0, _, 2.0, _, _);
							ShowSyncHudMsg(id, g_sync_hudmessage, "JUCATORI NECESARI: inca %d", MIN_JUCATORI - jucatori);
						}
					}
					else
					{
						// NU EXISTA MISIUNE
						ColorChat(id, "!4%s!1 Momentan nu ruleaza nicio misiune pe server.", TAG);
						return PLUGIN_CONTINUE;
					}
				}
			}
			meniu_statistici(id);
			return PLUGIN_CONTINUE;
		}
	}
	return PLUGIN_CONTINUE;
}

/*
Status misiune:
COMPLETA
SUSPENDATA
IN DESFASURARE
*/

public meniu_statistici(id)
{
	new CsTeams:echipa = cs_get_user_team(id);
	static menu, text[128], Float:progres;
	menu = menu_create("\rStatisticile mele", "statistici_handler");
	
	progres = 0.0;
	if(echipa == CS_TEAM_CT)
	{
		format_misiune_ct(misiune_ct, text_misiune);
		formatex(text, charsmax(text), "Misiune curenta: %s", text_misiune);
		menu_additem(menu, text, "1");
	
		if(!misiune_completa_ct)
		{
			if(misiune_ct != -1 && se_desfasoara)
				formatex(text, charsmax(text), "Status misiune: \yIN DESFASURARE");
			else
				formatex(text, charsmax(text), "Status misiune: \dSUSPENDATA");
			menu_additem(menu, text, "2");
			
			switch(misiune_ct)
			{
				case 0:
				{
					progres = (kills_ct[id] * 100.0)/float(misiuni_ct[misiune_ct][info]);
					formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
					menu_additem(menu, text, "3");
					
					formatex(text, charsmax(text), "Kill-uri facute:\r %d/%d", kills_ct[id], misiuni_ct[misiune_ct][info]);
					menu_additem(menu, text, "4");
				}
				case 1:
				{
					progres = (kills_ct[id] * 100.0)/float(misiuni_ct[misiune_ct][info]);
					formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
					menu_additem(menu, text, "3");
					
					formatex(text, charsmax(text), "Kill-uri facute:\r %d/%d", kills_ct[id], misiuni_ct[misiune_ct][info]);
					menu_additem(menu, text, "4");
				}
				case 2:
				{
					progres = (bmb_def[id] * 100.0)/float(misiuni_ct[misiune_ct][info]);
					formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
					menu_additem(menu, text, "3");
					
					formatex(text, charsmax(text), "Bombe dezamorsate:\r %d/%d", bmb_def[id], misiuni_ct[misiune_ct][info]);
					menu_additem(menu, text, "4");
				}
				case 3:
				{
					progres = (kills_ct[id] * 100.0)/float(misiuni_ct[misiune_ct][info]);
					formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
					menu_additem(menu, text, "3");
					
					formatex(text, charsmax(text), "Kill-uri facute:\r %d/%d", kills_ct[id], misiuni_ct[misiune_ct][info]);
					menu_additem(menu, text, "4");
				}
			}

			formatex(text, charsmax(text), "Sansa de a castiga premiul:\r %.2f%%", calculeaza(id, CS_TEAM_CT, misiune_ct, 0, text_potentiali));
			menu_additem(menu, text, "5");
		}
		else
		{
			new bool:gasit = false, i, players[32], numar, player, nume_jucator[32];
			cauta_id_jucatori(players, numar);
			
			for(i = 0; i < numar; i++)
			{
				player = players;
				if(!is_user_connected(player))
					continue;
					
				get_user_name(player, nume_jucator, charsmax(nume_jucator));
				if(equal(nume_castigator_ct, nume_jucator))
				{
					gasit = true;
					break;
				}
			}
			formatex(text, charsmax(text), "Castigator: \r%s%s (%sconectat)", nume_castigator_ct, gasit ? "\w" : "\d", gasit ? "" : "de");
			menu_additem(menu, text, "2");
		}
	}
	else
	{
		format_misiune_t(misiune_t, text_misiune);
		formatex(text, charsmax(text), "Misiune curenta: %s", text_misiune);
		menu_additem(menu, text, "1");
	
		if(!misiune_completa_t)
		{
			if(misiune_t != -1 && se_desfasoara)
				formatex(text, charsmax(text), "Status misiune: \yIN DESFASURARE");
			else
				formatex(text, charsmax(text), "Status misiune: \dSUSPENDATA");
			menu_additem(menu, text, "2");
			
			switch(misiune_t)
			{
				case 0:
				{
					progres = (runde[id] * 100.0)/float(misiuni_t[misiune_t][info]);
					formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
					menu_additem(menu, text, "3");
					
					formatex(text, charsmax(text), "Runde supravietuite:\r %d/%d", runde[id], misiuni_t[misiune_t][info]);
					menu_additem(menu, text, "4");
				}
				case 1:
				{
					progres = (kills_t[id] * 100.0)/float(misiuni_t[misiune_t][info]);
					formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
					menu_additem(menu, text, "3");
					
					formatex(text, charsmax(text), "Kill-uri facute:\r %d/%d", kills_t[id], misiuni_t[misiune_t][info]);
					menu_additem(menu, text, "4");
				}
				case 2:
				{
					progres = (bmb_plant[id] * 100.0)/float(misiuni_t[misiune_t][info]);
					formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
					menu_additem(menu, text, "3");
					
					formatex(text, charsmax(text), "Bombe plantate:\r %d/%d", bmb_plant[id], misiuni_t[misiune_t][info]);
					menu_additem(menu, text, "4");
				}
				case 3:
				{
					progres = (kills_t[id] * 100.0)/float(misiuni_t[misiune_t][info]);
					formatex(text, charsmax(text), "Progresul tau:\r %.1f%%", progres);
					menu_additem(menu, text, "3");
					
					formatex(text, charsmax(text), "Kill-uri facute:\r %d/%d", kills_t[id], misiuni_t[misiune_t][info]);
					menu_additem(menu, text, "4");
				}
			}
			
			formatex(text, charsmax(text), "Sansa de a castiga premiul:\r %.2f%%", calculeaza(id, CS_TEAM_T, misiune_t, 0, text_potentiali));
			menu_additem(menu, text, "5");
		}
		else
		{
			new bool:gasit = false, i, players[32], numar, player, nume_jucator[32];
			cauta_id_jucatori(players, numar);
			
			for(i = 0; i < numar; i++)
			{
				player = players;
				if(!is_user_connected(player))
					continue;
					
				get_user_name(player, nume_jucator, charsmax(nume_jucator));
				if(equal(nume_castigator_t, nume_jucator))
				{
					gasit = true;
					break;
				}
			}
			formatex(text, charsmax(text), "Castigator: \r%s%s (%sconectat)", nume_castigator_t, gasit ? "\w" : "\d", gasit ? "" : "de");
			menu_additem(menu, text, "2");
		}
	}

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
}

public statistici_handler(id, menu, item)
{
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

public alege_handler(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	new CsTeams:echipa = cs_get_user_team(id);
	if(echipa == CS_TEAM_CT)
	{
		if(item != misiune_ct)
		{
			misiune_aleasa_ct = item;
			//format_misiune_ct(misiune_aleasa_ct, text_misiune);
		}
		else
		{
			ColorChat(id, "!4%s!3 Nu poti alege misiunea curenta. Alege alta misiune.", TAG);
			menu_destroy(menu);
			return PLUGIN_HANDLED;
		}
	}
	else
	{
		if(item != misiune_t)
		{
			misiune_aleasa_t = item;
			//format_misiune_t(misiune_aleasa_t, text_misiune);
		}
		else
		{	
			ColorChat(id, "!4%s!3 Nu poti alege misiunea curenta. Alege alta misiune.", TAG);
			menu_destroy(menu);
			return PLUGIN_HANDLED;
		}
	}
	get_user_name(id, nume_admin, charsmax(nume_admin));
	ColorChat(id, "!4%s!1 Misiunea!3 %s!1 va fi activata la urmatorul spawn.", TAG, text_misiune);
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

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

	if(killer == victim)
		return;

	if(!se_desfasoara)
		return;

	new CsTeams:echipa = cs_get_user_team(killer);
	if(echipa == CS_TEAM_CT)
	{
		if(misiune_completa_ct)
			return;
			
		switch(misiune_ct)
		{
			case 0:
			{
				if(hitplace != HIT_HEAD)
					return;

				if(++kills_ct[killer] == misiuni_ct[misiune_ct][info])
				{
					castigator_ct = killer;
					misiune_completa_ct = true;
					get_user_name(castigator_ct, nume_castigator_ct, charsmax(nume_castigator_ct));
					set_task(1.0, "task_anunta_castigator");
				}
			}
			case 1:
			{
				if(wpnindex != CSW_KNIFE)
					return;

				if(++kills_ct[killer] == misiuni_ct[misiune_ct][info])
				{
					castigator_ct = killer;
					misiune_completa_ct = true;
					get_user_name(castigator_ct, nume_castigator_ct, charsmax(nume_castigator_ct));
					set_task(1.0, "task_anunta_castigator");
				}
			}
			case 3:
			{
				if(++kills_ct[killer] == misiuni_ct[misiune_ct][info])
				{
					castigator_ct = killer;
					misiune_completa_ct = true;
					get_user_name(castigator_ct, nume_castigator_ct, charsmax(nume_castigator_ct));
					set_task(1.0, "task_anunta_castigator");
				}
			}
			default: {}
		}
	}
	else
	{
		if(misiune_completa_t)
			return;
			
		switch(misiune_t)
		{
			case 0: runde[victim] = 0;
			case 1:
			{
				if(wpnindex != CSW_KNIFE)
					return;

				if(++kills_t[killer] == misiuni_t[misiune_t][info])
				{
					castigator_t = killer;
					misiune_completa_t = true;
					get_user_name(castigator_t, nume_castigator_t, charsmax(nume_castigator_t));
					set_task(1.0, "task_anunta_castigator");
				}
			}
			case 3:
			{
				if(++kills_t[killer] == misiuni_t[misiune_t][info])
				{
					castigator_t = killer;
					misiune_completa_t = true;
					get_user_name(castigator_t, nume_castigator_t, charsmax(nume_castigator_t));
					set_task(1.0, "task_anunta_castigator");
				}
			}
			default: {}
		}
	}
}

public bomb_planted(id)
{
	if(se_desfasoara && misiune_t == 2 && !misiune_completa_t)
	{
		ColorChat(id, "!4%s!1 Felicitari!!! Ai plantat o bomba. Planteaza in continuare bombe si termina primul misiunea.", TAG);
		ColorChat(id, "!4%s!1 Urmareste-ti progresul, tastand in chat!3 /misiune!1.", TAG);

		if(++bmb_plant[id] == misiuni_t[misiune_t][info])
		{
			castigator_t = id;
			misiune_completa_t = true;
			get_user_name(castigator_t, nume_castigator_t, charsmax(nume_castigator_t));
			set_task(1.0, "task_anunta_castigator");
		}
	}
}

public bomb_defused(id)
{
	if(se_desfasoara && misiune_ct == 2 && !misiune_completa_ct)
	{
		ColorChat(id, "!4%s!1 Felicitari!!! Ai dezamorsat o bomba. Dezamorseaza in continuare bombe si termina primul misiunea.", TAG);
		ColorChat(id, "!4%s!1 Urmareste-ti progresul, tastand in chat!3 /misiune!1.", TAG);

		if(++bmb_def[id] == misiuni_ct[misiune_ct][info])
		{
			castigator_ct = id;
			misiune_completa_ct = true;
			get_user_name(castigator_ct, nume_castigator_ct, charsmax(nume_castigator_ct));
			set_task(1.0, "task_anunta_castigator");
		}
	}
}

stock cauta_id_jucatori(players[32], &numar)
{
	numar = 0;
	new player;
	for(player = 1; player <= max_players; player++)
	{
		if(!is_user_connected(player))
			continue;
			
		players[numar++] = player;
	}
}

/*
	Ce calculez?
	0 = sansa
	1 = potentiali castigatori
*/

stock Float:calculeaza(id, const CsTeams:echipa, const misiune, const ce_calculez, text[512])
{
	// retinem id-ul tuturor jucatorilor de pe server (numar = total de id-uri)
	new players[32], numar, i, player;
	cauta_id_jucatori(players, numar);
	
	new progres[33], maxim = 0;
	arrayset(progres, 0, charsmax(progres));
	
	for(i = 0; i < numar; i++)
	{
		player = players;
		if(!is_user_connected(player))
			continue;
		
		if(cs_get_user_team(player) != echipa)
			continue;

		if(echipa == CS_TEAM_CT)
		{
			switch(misiune)
			{
				case 0,1,3: progres[player] = kills_ct[player];
				case 2: progres[player] = bmb_def[player];
				default: progres[player] = 0;
			}
		}
		else
		{
			switch(misiune)
			{
				case 0: progres[player] = runde[player];
				case 1,3: progres[player] = kills_t[player];
				case 2: progres[player] = bmb_plant[player];
				default: progres[player] = 0;
			}
		}
		
		// calcularea maximului
		if(maxim <= progres[player])
			maxim = progres[player];
	}

	if(ce_calculez == 0)
	{
		// algoritm: statisticile tale intr-o misiune raportate la numarul total maxim de statistici
		// nu se poate imparti la 0, deci daca maximul este 0, inseamna ca exista sanse de 100.0% ca un jucator sa castige premiul
		return (maxim == 0) ? 100.0 : (float(progres[id])/float(maxim))*100.0;
	}
	
	new len = 0, nume[32];
	if(!maxim)
		len += format(text[len], charsmax(text)-len, "!3toti jucatorii!1.");
	else
	{
		for(i = 0; i < numar; i++)
		{
			player = players;
			if(!is_user_connected(player))
				continue;
					
			if(progres[player] == maxim)
			{
				get_user_name(player, nume, charsmax(nume));
				len += format(text[len], charsmax(text)-len, "!3%s!1 | ", nume);
			}
		}
		// sa nu mai apara dupa ultimul nume caracterul '|'
		text[strlen(text)-2] = 0;
	}

	///*	debug
	console_print(id, "MAXIM jucatori: %d", maxim);
	for(i = 0; i < numar; i++)
	{
		player = players;
		if(!is_user_connected(player))
			continue;

		if(cs_get_user_team(player) != echipa)
			continue;

		get_user_name(player, nume, charsmax(nume));
		client_print(id, print_console, "--> %s	Progres: %d", nume, progres[player]);
	}
	//*/
	
	// p.l.m...
	return 1.0;
}

stock reseteaza_tot()
{
	// reset
	arrayset(bmb_plant, 0, charsmax(bmb_plant));
	arrayset(bmb_def, 0, charsmax(bmb_def));
	arrayset(kills_t, 0, charsmax(kills_t));
	arrayset(kills_ct, 0, charsmax(kills_ct));
	arrayset(runde, 0, charsmax(runde));
	
	castigator_t = -1;
	castigator_ct = -1;
	misiune_completa_t = false;
	misiune_completa_ct = false;
	nume_castigator_t[0] = EOS;
	nume_castigator_ct[0] = EOS;
}

stock format_misiune_ct(const misiune, string[128])
{
	string[0] = EOS;
	static str_to_rpl[3];
	num_to_str(misiuni_ct[misiune][info], str_to_rpl, charsmax(str_to_rpl));
	copy(string, charsmax(string), misiuni_ct[misiune][str]);
	replace(string, charsmax(string), "#", str_to_rpl);
	//client_print(id, print_chat, "%d. %s", misiune, string);
}

stock format_misiune_t(const misiune, string[128])
{
	string[0] = EOS;
	static str_to_rpl[3];
	num_to_str(misiuni_t[misiune][info], str_to_rpl, charsmax(str_to_rpl));
	copy(string, charsmax(string), misiuni_t[misiune][str]);
	replace(string, charsmax(string), "#", str_to_rpl);
	//client_print(id, print_chat, "%d. %s", misiune, string);
}

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();
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/


uite aici ai pluginul. l am lasat exact asa dupa ultima modificare care a avut loc

Code: Select all

#define ULTIMA_MODIFICARE "10.02.2019"
=))))))
o sa mi fac timp si o sa mi postez toate pluginurile mele inclusiv addonsurile alea de biohazard pe care mi le ati cerut pe privat

edit: comenzi:
/misiune
/misiune help
/misiune alege

ca sa modifici valorile (numerele intregi) ai aici array-urile:
| Afiseaza codul
new const misiuni_t[][datas_] =
{
	{ "Rezista # de runde fara sa mori", 3 },
	{ "Ucide # anti-furieni cu cutitul", 4 },
	{ "Planteaza # bombe", 2 },
	{ "Omoara # anti-furieni", 10 }
};

new const misiuni_ct[][datas_] =
{
	{ "Omoara # furieni prin headshot", 4 },
	{ "Ucide # furieni cu lama", 2 },
	{ "Dezamorseaza # bombe", 8 },
	{ "Omoara # furieni", 3 }
};
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș
Pluginurile mele publice | Afiseaza codul
Control HE Damage(s)
[Zombie mod] Liderul oamenilor
NO RUSH (MANUAL)
Salvatorul Craciunului
Harry Potter's Magic Wand [0.0.3]
New HE Grenade Effects
Upgrades Menu -> Health/Armor/Damage
Serverele care au achizitonat pluginurile mele: #1 #2

CONTACT: sef_yontu@yahoo.com | skype: cyp_yontu
User avatar
gaNNNja
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 131
Joined: 26 Jun 2014, 16:02
Detinator Steam: Da
Reputatie: Utilizator neserios (tepar)
Fond eXtream: 0
Has thanked: 1 time
Been thanked: 4 times

25 Dec 2019, 12:46

Mulțumesc frumos. Se poate inchide
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: Facebook [Bot] and 24 guests