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

Umarli - pobieranie wartości


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
12 odpowiedzi w tym temacie

#1 KariiO

    Super Hero

  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 25.12.2011 22:26

public moc(id)
{
	set_hudmessage(220, 30, 30, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
	
	if(smiertelne[id]==0)
	{
		show_hudmessage(id, "Smiertelnych obrazen mozesz uzyc raz na runde !")
		return PLUGIN_HANDLED
	}

	new lezacy = find_dead_body(id)

	
	if (lezacy == -1 || lezacy == 0)
		return PLUGIN_HANDLED
	
	if (is_user_alive(lezacy))
	{
		show_hudmessage(id, "Smiertelne obrazenia musza byc pobrane od martwego gracza !")
		return PLUGIN_HANDLED
	}
  
	new index1, bodypart1
	get_user_aiming(id,index1,bodypart1)
	if (index1==0)
	{
		show_hudmessage(id, "Smiertelne obrazenia zadzialaja gdy bd. mial wroga na celowniku !")
		return PLUGIN_HANDLED
	}
	
	UTIL_Damage(id,index1,0.0+last_hit[lezacy],DMG_SLASH,0,"world") //obraznie
	client_print(id,print_chat,"Zadales %i smiertelnych obrazen wrogowi!",last_hit[lezacy])
	smiertelne[id]--
	
	new Float:forigin[3], origin[3]
	pev(lezacy,pev_origin,forigin)	
	FVecIVec(forigin,origin)
	
	
	new origin2[3]
	get_user_origin(index1,origin2)
	
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte (TE_BEAMPOINTS)
	write_coord(origin[0])
	write_coord(origin[1])
	write_coord(origin[2]+8)
	write_coord(origin2[0])
	write_coord(origin2[1])
	write_coord(origin2[2]+8)
	write_short(sprite_lgt);
	write_byte(1) // framestart
	write_byte(1) // framerate
	write_byte(10) // life
	write_byte(200) // width
	write_byte(200) // noise
	write_byte(255) // r, g, b (red)
	write_byte(0) // r, g, b (TUTOR_TUTOR_GREEN)
	write_byte(0) // r, g, b (blue)
	write_byte(100) // brightness
	write_byte(5) // speed
	message_end()
	
	return PLUGIN_HANDLED
	
}

stock find_dead_body(id)
{
	static Float:origin[3]
	pev(id, pev_origin, origin)
	
	new ent
	static classname[32]	
	while((ent = fm_find_ent_in_sphere(ent, origin, get_pcvar_float(cvar_revival_dis))) != 0)
	{
		pev(ent, pev_classname, classname, 31)
		if(equali(classname, "fake_corpse") && fm_is_ent_visible(id, ent))
			return ent
	}
	return 0
}
Funkcja miała pobierać od najbliższego zmarłego(trupa) ostatnie obrazenia(last_hit) i zadawać je wrogowi(temu co mamy go na celowniku), jakieś pomysły dlaczego nie działa ?
  • +
  • -
  • 0

#2 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 26.12.2011 18:38

a tekst ze zadales tyle i tyle obrazen sie wyswietla ??

zamiast util... uzyj change_health
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#3 KariiO

    Super Hero

  • Autor tematu
  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 28.12.2011 13:56

Jest pewien problem bo nic nie pokazuje :P
Możesz jak inaczej znaleźć najbliższego trupa ?
  • +
  • -
  • 0

#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 28.12.2011 14:09

Jest pewien problem bo nic nie pokazuje :P
Możesz jak inaczej znaleźć najbliższego trupa ?

Pewnie nie tworzysz "fake_corpse", więc jak ma znaleźć tego trupa?
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#5 KariiO

    Super Hero

  • Autor tematu
  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 28.12.2011 14:13

Jest pewien problem bo nic nie pokazuje :P
Możesz jak inaczej znaleźć najbliższego trupa ?

Pewnie nie tworzysz "fake_corpse", więc jak ma znaleźć tego trupa?

Deathmsg:
set_task(0.5, "task_check_dead_flag", vid)
down:
public task_check_dead_flag(id)
{
    if(!is_user_connected(id))
        return
    
    if(pev(id, pev_deadflag) == DEAD_DEAD)
        create_fake_corpse(id)
    else
        set_task(0.5, "task_check_dead_flag", id)
}

  • +
  • -
  • 0

#6 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 28.12.2011 14:25

To jest do diablo? Jeśli tak, to "find_dead_body(id)" na pewno nie jest tutaj problemem, więc musisz go szukać gdzie indziej.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#7 KariiO

    Super Hero

  • Autor tematu
  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 28.12.2011 15:06

if (lezacy == -1 || lezacy == 0)
                return PLUGIN_HANDLED
Zastanawia mnie czy dobrze zrobiłem ten warunek...
  • +
  • -
  • 0

#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 28.12.2011 15:12

Daj może tam
if(!pev_valid(lezacy))

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#9 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 28.12.2011 15:37

Daj to co sebul ew.

if(!(1 <= lezacy <= get_maxplayers()) || is_user_alive(lezacy))
return PLUGIN_CONTINUE

  • +
  • -
  • 0

marwit-0.png


#10 KariiO

    Super Hero

  • Autor tematu
  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 28.12.2011 16:31

Nie wiem czemu ale w funkcji od wskrzeszania nekromanty był jeszcze taki myk i może dlatego bez niego nie działa :
new lezacyx = find_dead_body(id)

    new lezacyx = pev(lezacyx, pev_owner)

  • +
  • -
  • 0

#11 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 28.12.2011 16:50

Nie wiem czemu ale w funkcji od wskrzeszania nekromanty był jeszcze taki myk i może dlatego bez niego nie działa :

new lezacyx = find_dead_body(id)

    new lezacyx = pev(lezacyx, pev_owner)

A nawet na 100% to trzeba dodać, ale zrób nową zmienną
new lezacy = find_dead_body(id);
new lezacyid = pev(lezacy, pev_owner);

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#12 KariiO

    Super Hero

  • Autor tematu
  • Power User

Reputacja: 396
Wszechpomocny

  • Postów:1 133
  • GG:
  • Imię:Korneliusz
  • Lokalizacja:Cieszyn
Offline

Napisano 28.12.2011 17:00

public zadaj_smiertelnex(id)
{
	set_hudmessage(220, 30, 30, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
	
	if(smiertelne[id]==0)
	{
		show_hudmessage(id, "Smiertelnych obrazen mozesz uzyc raz na runde !")
		return PLUGIN_HANDLED
	}
	if(player_class[id]!=Wampir) return PLUGIN_HANDLED
	
	new lezacyx = find_dead_body(id)

	new lezacy = pev(lezacyx, pev_owner)

	
	if(!(1 <= lezacy <= get_maxplayers()) || is_user_alive(lezacy))
	{
		show_hudmessage(id, "Blad !")
			return PLUGIN_CONTINUE
	}
	
	new index1, bodypart1
	get_user_aiming(id,index1,bodypart1)
	if (index1==0)
	{
		show_hudmessage(id, "Smiertelne obrazenia zadzialaja gdy bd. mial wroga na celowniku !")
		return PLUGIN_HANDLED
	}
	
	new obrazenia = floatround(last_hit[lezacy],floatround_ceil)

	change_health(index1,-obrazenia,id,"world")

	client_print(id,print_chat,"Zadales %i smiertelnych obrazen wrogowi!",obrazenia)
	smiertelne[id]--
	
	new Float:forigin[3], origin[3]
	pev(lezacy,pev_origin,forigin)	
	FVecIVec(forigin,origin)
	
	
	new origin2[3]
	get_user_origin(index1,origin2)
	
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte (TE_BEAMPOINTS)
	write_coord(origin[0])
	write_coord(origin[1])
	write_coord(origin[2]+8)
	write_coord(origin2[0])
	write_coord(origin2[1])
	write_coord(origin2[2]+8)
	write_short(sprite_lgt);
	write_byte(1) // framestart
	write_byte(1) // framerate
	write_byte(10) // life
	write_byte(200) // width
	write_byte(200) // noise
	write_byte(255) // r, g, b (red)
	write_byte(0) // r, g, b (TUTOR_TUTOR_GREEN)
	write_byte(0) // r, g, b (blue)
	write_byte(100) // brightness
	write_byte(5) // speed
	message_end()
	
	return PLUGIN_HANDLED
	
}
Tak wygląda teraz kod.

Ten kod /\ działa jakby co :)

Można zamknąć.
  • +
  • -
  • 0

#13 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 28.12.2011 17:06

public zadaj_smiertelnex(id)
{
set_hudmessage(220, 30, 30, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)

if(!smiertelne[id])
{
show_hudmessage(id, "Smiertelnych obrazen mozesz uzyc raz na runde !")
return PLUGIN_HANDLED
}
if(player_class[id]!=Wampir) return PLUGIN_HANDLED

new lezacyx = find_dead_body(id)

if(!pev_valid(lezacyx))
return PLUGIN_HANDLED

new lezacy = pev(lezacyx, pev_owner)

if(!is_user_connected(lezacy) || is_user_alive(lezacy))
{
show_hudmessage(id, "Blad !")
return PLUGIN_CONTINUE
}

new index1, bodypart1
get_user_aiming(id,index1,bodypart1)
if (!is_user_alive(index1))
{
show_hudmessage(id, "Smiertelne obrazenia zadzialaja gdy bd. mial wroga na celowniku !")
return PLUGIN_HANDLED
}

new obrazenia = floatround(last_hit[lezacy],floatround_ceil)

change_health(index1,-obrazenia,id,"world")

client_print(id,print_chat,"Zadales %i smiertelnych obrazen wrogowi!",obrazenia)
smiertelne[id]--

new origin[3], origin2[3]
get_user_origin(lezacy,origin)
get_user_origin(index1,origin2)


message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (TE_BEAMPOINTS)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+8)
write_coord(origin2[0])
write_coord(origin2[1])
write_coord(origin2[2]+8)
write_short(sprite_lgt);
write_byte(1) // framestart
write_byte(1) // framerate
write_byte(10) // life
write_byte(200) // width
write_byte(200) // noise
write_byte(255) // r, g, b (red)
write_byte(0) // r, g, b (TUTOR_TUTOR_GREEN)
write_byte(0) // r, g, b (blue)
write_byte(100) // brightness
write_byte(5) // speed
message_end()

return PLUGIN_HANDLED
}

Tak powinno być dobrze.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





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

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