←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Sprawdzanie czy gracz jest os...

Zablokowany

  • +
  • -
M@lpa - zdjęcie M@lpa 27.04.2012

Witam.
Napisałem plugin, którego zadaniem jest sprawdzanie, czy został ostatni żywy gracz z TT. Jeśli tak to wykonuję jakąś czynność(w tym przypadku client_print(0, print_chat, "123"); ). Problem w tym, że... nie działa. Nie wyrzuca żadnych logów ani nic, po prostu się nigdy nie wykonuje. Jakieś pomysły?

#include <amxmodx>
#include <fakemeta>
#include <fun>

new num;

public plugin_init()
{
		register_plugin( "a", "1.0", "au" );
	register_event("DeathMsg","death","a");	
}

public death(id)
{
	num = 0;
	for(new i=1; i<=32; i++)
	{
	if(is_user_alive(i) && get_user_team(i) == 1)
	num++;
	}
	if(num < 2)
	{
		for(new b = 1;1<=32;b++)
		{	
		if(is_user_connected(<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.png' class='bbc_emoticon' alt='B)' /> && get_user_team(<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.png' class='bbc_emoticon' alt='B)' /> == 2)
		{
		client_print(0, print_chat, "123");
		}
		else
		return PLUGIN_HANDLED;
		}
	}
	else
	return PLUGIN_HANDLED;
		return PLUGIN_CONTINUE;
}
Odpowiedz

MaxiKINGer - zdjęcie MaxiKINGer 27.04.2012

Nie widzę problemu - podpatrz funkcje w automaticknifeduel i po sprawie :D
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 27.04.2012

Sprawdź
#include <amxmodx>

new num

public plugin_init()
{
	register_plugin( "a", "1.0", "au" )
	register_event("DeathMsg","death","a")
}
public death()
{
	num = 0
	for(new i=1;i<=32;i++)
	{
		if(is_user_alive(i) && get_user_team(i) == 1)
		{
			num++
			if(num < 2)
			{
				client_print(i, print_chat, "123")
			}
		}
	}
}
Odpowiedz

mierzwi - zdjęcie mierzwi 27.04.2012


public death()

{

        num = 0

        for(new i=1;i<=32;i++)

        {

                if(is_user_alive(i) && get_user_team(i) == 1)

                {

                        num++

                        if(num == 1)

                        {

                                client_print(i, print_chat, "123")

                        }

                }

        }

}

Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 27.04.2012

Jak już to tak:

public death()
{
new num = 0
for(new i = 1; i<=get_playersnum(0); i++)
{
if(is_user_alive(i) && get_user_team(i) == 1)
{
num++

}
}
if(num == 1)
{
client_print(i, print_chat, "123")
}
}

speedkill (28.04.2012 06:03):
Nie zadziała, poza pętlą dajesz wiadomość dla określonego id.Będą błędy typu error 017: undefined symbol "i" + nie brakuje jednej klamry :D
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 28.04.2012

Do autora tematu:
1 <= 32 w argumencie fora stworzy pętlę nieskończoną
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 28.04.2012

Do autora tematu:
1 <= 32 w argumencie fora stworzy pętlę nieskończoną

??
Albo nie wiem o co chodzi, albo piszesz głupoty ^ ^
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 28.04.2012

Do autora tematu:
1 <= 32 w argumencie fora stworzy pętlę nieskończoną

??
Albo nie wiem o co chodzi, albo piszesz głupoty ^ ^

Chodzi mi że tu jest głupota:

if(num < 2)
{
for(new b = 1;1<=32;b++)
{
if(is_user_connected(B) && get_user_team(B) == 2)
{
client_print(0, print_chat, "123");
}
else
return PLUGIN_HANDLED;
}
}

czyt. 1 post
sebul (28.04.2012 11:37):
A no rzeczywiście ^^
Odpowiedz

mierzwi - zdjęcie mierzwi 28.04.2012

aż musiałem odpalić amxx studio bo się kaleczycie :lol:
static iParam[ 2 ];



for( new i = 1; i <= get_maxplayers(); i++ )

{

    if( is_user_alive( i ) )

    {

        if( get_user_team( i ) == 1 )

        {

            iParam[ 0 ]++;

            iParam[ 1 ] = i;

        }

    }

}



if( iParam[ 0 ] == 1 )

{

    client_print( iParam[ 1 ], "Write your message here..." );

}

Użytkownik emu edytował ten post 28.04.2012 10:33
Odpowiedz

  • +
  • -
M@lpa - zdjęcie M@lpa 28.04.2012

Już dałem rade, zrobiłem to po swojemu, a główny błąd, który mnie męczył to było:
death(id) zamiast death(). Tak czy tak, dzięki za zaangażowanie :).
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 28.04.2012

aż musiałem odpalić amxx studio bo się kaleczycie :lol:

static iParam[ 2 ];

for( new i = 1; i <= get_maxplayers(); i++ )
{
	if( is_user_alive( i ) )
	{
		if( get_user_team( i ) == 1 )
		{
			iParam[ 0 ]++;
			iParam[ 1 ] = i;
		}
	}
}

if( iParam[ 0 ] == 1 )
{
	client_print( iParam[ 1 ], "Write your message here..." );
}

A Ty dalej z tym static... Żeby to działało po Twojemu, to musiałbyś zerować pierwszy element w "iParam", albo po prostu używać normalnie new. Nawet jak dla mnie lepiej jest tutaj używać new, bo kod nie wykonuje się bardzo często. Czyli powinno to być tak
new i, num, maxpl = get_maxplayers();

for(i=1; i<=maxpl; ++i) {
if(is_user_alive(i) && get_user_team(i) == 1)
++num;
}

if(num == 1)
client_print(0, print_chat, "Wiadomosc");
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 28.04.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany