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 ?
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.
|
Umarli - pobieranie wartości
#1
Napisano 25.12.2011 22:26
#2
Napisano 26.12.2011 18:38
zamiast util... uzyj change_health
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)
#3
Napisano 28.12.2011 13:56
Możesz jak inaczej znaleźć najbliższego trupa ?
#4
Napisano 28.12.2011 14:09
Pewnie nie tworzysz "fake_corpse", więc jak ma znaleźć tego trupa?Jest pewien problem bo nic nie pokazuje
Możesz jak inaczej znaleźć najbliższego trupa ?
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#5
Napisano 28.12.2011 14:13
Deathmsg:Pewnie nie tworzysz "fake_corpse", więc jak ma znaleźć tego trupa?Jest pewien problem bo nic nie pokazuje
Możesz jak inaczej znaleźć najbliższego trupa ?
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)
}
#6
Napisano 28.12.2011 14:25
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#7
Napisano 28.12.2011 15:06
if (lezacy == -1 || lezacy == 0)
return PLUGIN_HANDLED Zastanawia mnie czy dobrze zrobiłem ten warunek...
#8
Napisano 28.12.2011 15:12
if(!pev_valid(lezacy))
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#9
Napisano 28.12.2011 15:37
if(!(1 <= lezacy <= get_maxplayers()) || is_user_alive(lezacy))
return PLUGIN_CONTINUE

#10
Napisano 28.12.2011 16:31
new lezacyx = find_dead_body(id)
new lezacyx = pev(lezacyx, pev_owner)
#11
Napisano 28.12.2011 16:50
A nawet na 100% to trzeba dodać, ale zrób nową zmienną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)
new lezacy = find_dead_body(id);
new lezacyid = pev(lezacy, pev_owner);
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#12
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ąć.
#13
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.
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


Dodatki SourceMod













