
No to zaczynamy. Mój perk będzie miał 1/4 szansy na zapalenie.
Na początku tworzymy normaly itemek

Pod:
#include <nvault>
Dodajemy:
#include <fakemeta_util>
w zmiennych globalnych dodajemy:
new sprite_fire, sprite_smoke;
new palenie_gracza[33];
W plugin_precache dodajemy:
sprite_fire = precache_model("sprites/fire.spr")
sprite_smoke = precache_model("sprites/steam1.spr")
w public Damage przed:
SprawdzPoziom(attacker);
dodajemy
if(informacje_przedmiotu_gracza[attacker][0] == numer itemu && random_num(1, informacje_przedmiotu_gracza[attacker][1]) == 1)
{
if(task_exists(id+2936))
remove_task(id+2936);
palenie_gracza[id] = 40;
set_task(0.5, "burning_flame", id+2936, _, _, "b");
}
Na końcu *.sma dodajemy:
public burning_flame(taskid)
{
new id = (taskid-2936)
if(!is_user_alive(id))
{
palenie_gracza[id] = 0
return PLUGIN_CONTINUE;
}
new origin[3], flags = pev(id, pev_flags)
get_user_origin(id, origin)
if(flags & FL_INWATER || palenie_gracza[id] < 1)
{
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SMOKE)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-50)
write_short(sprite_smoke)
write_byte(random_num(15,20))
write_byte(random_num(10,20))
message_end()
remove_task(taskid);
return PLUGIN_CONTINUE;
}
if(flags & FL_ONGROUND)
{
static Float:velocity[3]
pev(id, pev_velocity, velocity)
xs_vec_mul_scalar(velocity, 0.5, velocity)
set_pev(id, pev_velocity, velocity)
}
if(get_user_health(id)-1 > 0)
fm_set_user_health(id, get_user_health(id)-1)
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SPRITE)
write_coord(origin[0]+random_num(-5,5))
write_coord(origin[1]+random_num(-5,5))
write_coord(origin[2]+random_num(-10,10))
write_short(sprite_fire)
write_byte(random_num(5,10))
write_byte(200)
message_end()
palenie_gracza[id]--
return PLUGIN_CONTINUE;
}
Podziękowania dla Pijanego

Użytkownik Na5tyk edytował ten post 27.09.2011 14:50