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
 

Zdjęcie
CoD Stary

Eksplozja po śmierci gracza

CoD Stary

  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 alc0

    Zaawansowany

  • Użytkownik

Reputacja: 22
Życzliwy

  • Postów:104
  • Steam:steam
  • Imię:Kacper
  • Lokalizacja:Podkarpacie
Offline

Napisano 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;
}

  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika

#2 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 08.09.2011 14:07

Zamiast
ExecuteHam(Ham_TakeDamage, pid, 0, id, 50.0+float(inteligencja_gracza[id]/2), 1);
spróbuj to:
ExecuteHamB(Ham_TakeDamage, pid, CSW_HEGRENADE, id, 60.0, DMG_BLAST)
Tylko ten wybuch teraz nie będzie zależał od inteligencji.
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#3 alc0

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 22
Życzliwy

  • Postów:104
  • Steam:steam
  • Imię:Kacper
  • Lokalizacja:Podkarpacie
Offline

Napisano 09.09.2011 13:29

Może niech ktoś chociaż podrzuci mi swoje sma. w którym to działa. Oczywiście mowa o starej wersji Cod.
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika

#4 Hajtowy

    Zaawansowany

  • Zbanowany

Reputacja: 5
Nowy

  • Postów:132
  • Lokalizacja:Rzeszów
Offline

Napisano 09.09.2011 15:10

Ściągnij sobie QTM_CodMod by Peyote - oryginalna wersja bez przeróbek i tam wszystko działa ;)

#5 alc0

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 22
Życzliwy

  • Postów:104
  • Steam:steam
  • Imię:Kacper
  • Lokalizacja:Podkarpacie
Offline

Napisano 09.09.2011 16:21

Ale mi pomogłeś geniuszu... Tak się składa że tam nie ma tej funkcji, a bugów i braków jest więcej niż klas...
Potrzebuje sma w którym działa eksplozja po śmierci.
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika





Również z jednym lub większą ilością słów kluczowych: CoD Stary

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych