←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Nowy Plugin
Informuje ze jeden gracz został żywy na se...

Blejder - zdjęcie Blejder 05.11.2013

Witam, zrobi mi ktoś plugin który informuje ze jeden gracz został żywy na serwerze.

Obrazek jak to ma wyglądać

TT:

Spoiler

I tak samo w CT

Odpowiedz

  • +
  • -
szelbi - zdjęcie szelbi 05.11.2013

#include <amxmodx>

new bool:TT, sync;

public plugin_init()
{
	register_plugin("Ostatni zywy", "1.0", "szelbi");
	register_event("DeathMsg", "client_death", "a");
	register_logevent("usun", 2, "1=Round_End");
	
	sync = CreateHudSyncObj();
}

public client_death()
{
	new i, numT, numC, maxpl = get_maxplayers();

	for(i=1; i<=maxpl; ++i)
	{
		if(!is_user_alive(i))
		continue;
		
		if(get_user_team(i) == 1)
		++numT;
		
		if(get_user_team(i) == 2)
		++numC;
	}

	if(numT == 1)
	{
		TT = true;
		pokaz();
	}
	
	if(numC == 1)
	{
		TT = false;
		pokaz();
	}	
}

public pokaz()
{
	set_hudmessage(0, 255, 0, 0.7, -0.7, 0, 0.1, 10.0);
	ShowSyncHudMsg(0, sync, "Zostal jeden %s!^nMa prawo do runowania!", TT? "TT": "CT");
	set_task(10.0, "pokaz", 789);
}

public usun()
{
	remove_task(789);
	ClearSyncHud(0, sync);
}

A co jeśli jednocześnie będzie żywy jeden TT i jeden CT?

W powyższym pluginie nie zostało to uwzględnione.

Odpowiedz

Aemiksowy - zdjęcie Aemiksowy 05.11.2013

New bool:sync ??? Zupełnie nie tak.

#include <amxmodx>
 
#define TASK_ID 789
 
new bool:TT, sync;
 
public plugin_init(){
register_plugin("Ostatni zywy", "1.0", "szelbi");
register_event("DeathMsg", "client_death", "a");
register_logevent("usun", 2, "1=Round_End");
 
sync = CreateHudSyncObj();
}
 
public client_death(){
if(team(1) == 1){
TT = true;
pokaz()
set_task(10.0, "pokaz", TASK_ID, .flags="b");
}
 
if(team(2) >= 1)
TT = false; 
}
 
public pokaz(){
if(!TT)
return;
 
set_hudmessage(0, 255, 0, 0.7, -0.7, 0, 0.1, 10.0);
ShowSyncHudMsg(0, sync, "Zostal jeden TT!^nMa prawo do runowania!");
}
 
public usun(){
remove_task(TASK_ID);
ClearSyncHud(0, sync);
}
 
stock team(teams) {
new players[32], num, suma;
get_players(players, num, "a");
 
for(new i = 0; i < num; i++) {
if(get_user_team(players[i]) == teams) suma++;
}
return suma;
}

Użytkownik Aemiksowy edytował ten post 05.11.2013 19:17
Odpowiedz

  • +
  • -
szelbi - zdjęcie szelbi 05.11.2013

New bool:sync ???

Niby gdzie według ciebie sync zostało utworzone jako zmienna?

 

Plugin testowałem na botach i działa jak trzeba ;)

Odpowiedz

Aemiksowy - zdjęcie Aemiksowy 05.11.2013

Masz rację, zmyliło mnie to. New x, bool:y, z, nie oznacza, że z to bool. 

 

Co do mojej wersji. Według mnie jest bardziej optymalna i zawiera wszystko co trzeba. Żadnej filozofii i jeśli zadziała, będzie lepiej.

Odpowiedz