Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

alc0 - zdjęcie

alc0

Rejestracja: 19.06.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 16.09.2011 21:53
-----

Moje tematy

Eksplozja po śmierci gracza

07.09.2011 20:54

Mam wszystko zrobione wg. tego poradnika --> http://amxx.pl/topic...cha-po-smierci/ , ale mój problem polega na tym że eksplozja zawsze zabija pobliskich graczy bez względu na ich ilość hp. Czy to jakiś bug lub specyficzna wada w funkcji?
Zauważyłem że kod jest niemal identyczny do funkcji PoluzDynamit(id)...

Ktoś potrafi pomóc, tak to u mnie wygląda:

public Death()
{
new id = read_data(2);
new attacker = read_data(1);
 
if(!is_user_alive(attacker) || !is_user_connected(attacker))
	return PLUGIN_CONTINUE;
 
new weapon = get_user_weapon(attacker);
new zdrowie = get_user_health(attacker);
 
if(informacje_przedmiotu_gracza[id][0]) {
	new zniszcz = random_num(10,30)
	
	if(wytrzymalosc_itemu[id] - zniszcz >= 0) {
		wytrzymalosc_itemu[id] -= zniszcz;
	}
	if(wytrzymalosc_itemu[id] - zniszcz > 0)  {
		client_print(id, print_chat, "[CoD] Zniszczenia przedmiotu: %i/100.", wytrzymalosc_itemu[id]);
	}
	else {
		client_print(id, print_chat, "[CoD] Przedmiot: %s, zostal calkowicie zniszczony.", nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]]);
		UsunPrzedmiot(id);
	}
}
 
if(klasa_gracza[id] == Ultra || klasa_gracza[id] == Admin)
{
	  Eksploduj(id);
}
 
if(get_user_team(id) != get_user_team(attacker) && klasa_gracza[attacker])
{
	new nowe_doswiadczenie = 0;
	
	nowe_doswiadczenie += doswiadczenia_za_zabojstwo;
	
	if(klasa_gracza[id] == Rambo && klasa_gracza[attacker] != Rambo || klasa_gracza[id] == Admin && klasa_gracza[attacker] != Admin)
		nowe_doswiadczenie += doswiadczenia_za_zabojstwo*2;
	
	if(poziom_gracza[id] > poziom_gracza[attacker])
		nowe_doswiadczenie += (poziom_gracza[id] - poziom_gracza[attacker])/2;
	
	if(klasa_gracza[attacker] == Rambo || informacje_przedmiotu_gracza[attacker][0] == 15 && maxClip[weapon] != -1)
	{
		
		new nowe_zdrowie = (zdrowie+20<maksymalne_zdrowie_gracza[attacker])? zdrowie+20: maksymalne_zdrowie_gracza[attacker];
		set_user_clip(attacker, maxClip[weapon]);
		set_user_health(attacker, nowe_zdrowie);
	}
	#if defined BOTY
	if(is_user_bot2(attacker) && random(9) == 0)
		WyrzucPrzedmiot(id);
	#endif
	if(!informacje_przedmiotu_gracza[attacker][0])
		DajPrzedmiot(attacker, random_num(1, sizeof nazwy_przedmiotow-1));
	
	if(informacje_przedmiotu_gracza[attacker][0] == 14)
	{
		new nowe_zdrowie = (zdrowie+50<maksymalne_zdrowie_gracza[attacker])? zdrowie+50: maksymalne_zdrowie_gracza[attacker];
		set_user_health(attacker, nowe_zdrowie);
	}   
	new bonus_doswiadczenie = 50
	if(informacje_przedmiotu_gracza[attacker][0] == 31)
		nowe_doswiadczenie += bonus_doswiadczenie
	
	set_hudmessage(80, 0, 255, 0.50, 0.33, 1, 6.0, 4.0);
	ShowSyncHudMsg(attacker, SyncHudObj2, "+%i", nowe_doswiadczenie);
	
	doswiadczenie_gracza[attacker] += nowe_doswiadczenie;
}
 
SprawdzPoziom(attacker);
 
if(informacje_przedmiotu_gracza[id][0] == 7 && random_num(1, informacje_przedmiotu_gracza[id][1]) == 1)
	set_task(0.1, "Wskrzes", id+ZADANIE_WSKRZES);
 
return PLUGIN_CONTINUE;
}


public Eksploduj(id)
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( id, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32);
write_byte(20);
write_byte(0);
message_end();
 
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[0] );
write_coord( iOrigin[1] );
write_coord( iOrigin[2] );
write_coord( iOrigin[0] );
write_coord( iOrigin[1] + 300 );
write_coord( iOrigin[2] + 300 );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // r, g, b
write_byte( 100 );// r, g, b
write_byte( 100 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 8 ); // speed
message_end();
 
new entlist[33];
new numfound = find_sphere_class(id, "player", 300.0 , entlist, 32);
 
for (new i=0; i < numfound; i++)
{			  
	new pid = entlist[i];
	
	if (!is_user_alive(pid) || get_user_team(id) == get_user_team(pid) || informacje_przedmiotu_gracza[pid][0] == 24 || informacje_przedmiotu_gracza[pid][0] == 52 || klasa_gracza[pid] == Admin)
		continue;
	ExecuteHam(Ham_TakeDamage, pid, 0, id, 50.0+float(inteligencja_gracza[id]/2), 1);
}
return PLUGIN_CONTINUE;
}

[Cod Stary] Odliczanie na HUD.

04.09.2011 19:45

Mam do was pytanie...
Mógłby mi ktoś przybliżyć jak dodać do itemu "Nieśmiertelność" odliczanie. Żeby po użyciu "E" na HUD wyświetlało się 4... 3... 2... 1...

Tak wygląda ta funkcja:

public Odrodzenie(id)
if(informacje_przedmiotu_gracza[id][0] == 38)
    informacje_przedmiotu_gracza[id][1] = 1;

public UzyjPrzedmiotu(id)
if(informacje_przedmiotu_gracza[id][0] == 38 && informacje_przedmiotu_gracza[id][1]>0)
{
    set_task(0.1,"godon",id,"",0,"a",1);
    informacje_przedmiotu_gracza[id][1]--;
}

public godon(id)
{
set_user_godmode(id, 1)
set_task(4.0,"godoff",id,"",0,"a",1)
}
public godoff(id)
{
set_user_godmode(id, 0)
}

[COD Stary] Przypisanie obrażeń... how?

30.08.2011 22:28

Witam, zrobiłem sobie przedmiot działający podobnie do "Weteran noża", ale nie chce żeby zwiększał obrażenia od noża, tylko żeby miał konkretną wartość...

Zrobiłem to tak, ale nie działa:

if(informacje_przedmiotu_gracza[idattacker][0] == 54)
   	 damage == 666;

 

Może mi ktoś powiedzieć jak zrobić żeby przypisać konkretną wartość

Przy "weteran noża" jest tak:

if(informacje_przedmiotu_gracza[this][0] == 4)
   	 damage = damage*1.5+inteligencja_gracza[idattacker];

Jak ograniczyc rozdawanie pkt. umiejetnosci?

28.08.2011 15:38

Witam interesuje mnie jak, ograniczyć możliwość rozdawania pkt. w dane umiejętności na starym CoD?
Przykładowo mam teraz 5 statystyk i do każdej z nich mogę dodać maksymalnie po 200pkt. Ale chciałbym zrobić takie ograniczenie że jeśli ktoś dodał w życie 100pkt. to aby móc dalej wzmacniać tą umiejętność musi rozdać 100pkt. w inna statystykę.

Jak zrobić takie ograniczenie?

Model gracza ADMIN dla klasy

07.08.2011 14:42

Witam, widziałem gdzieś takie pluginy VIP co admini mają własny model z napisem "ADMIN"
Potrafi mi ktoś przybliżyć jak dać taki model konkretnej klasie?

Mam klasę Administrator na flagę "s"

I druga sprawa w związku z tą pierwszą... Czy funkcja "zmien_ubranie" będzie działać na ten model? Bo tego bym chciał uniknąć.

Z góry dzięki za pomoc, będą plusiki.