Как добавить способности ножам в ZP 4.3?
В сегодняшней статье я расскажу вам, как можно добавить способности для ножей ZP 4.3!
1) После инклюдов пишем следующие:
#define TASK_FBURN 100
#define ID_FBURN ( taskid - TASK_FBURN )
#define MAX_CLIENTS 32
new bool:g_fRoundEnd
#define FIRE_DURATION 6
#define FIRE_DAMAGE 25
2) Ниже добавляем это:
new g_flameSpr, g_smokeSpr, g_burning_duration( MAX_CLIENTS + 1 )
3) В public plugin_precache добавляем:
g_flameSpr = precache_model( "sprites/flame.spr" );
g_smokeSpr = precache_model( "sprites/black_smoke3.spr" );
4) Находим public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
Находим что-то типо этого
if (weapon == CSW_KNIFE && g_KNIFE4(attacker))
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmgmult_vip))
new Float:vec(3);
new Float:oldvelo(3);
pev(victim, pev_velocity, oldvelo);
create_velocity_vector(victim , attacker , vec);
vec(0) += oldvelo(0);
vec(1) += oldvelo(1);
set_pev(victim, pev_velocity, vec);
ПОСЛЕ ЭТИХ СТРОЧЕК ПИШЕМ ЭТО
if( !task_exists( victim + TASK_FBURN ) )
{
g_burning_duration( victim ) += FIRE_DURATION * 5
set_task( 0.1, "CTask__BurningFlame", victim + TASK_FBURN, _, _, "b" )
}
Получится так
if (weapon == CSW_KNIFE && g_KNIFE4(attacker))
{
SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmgmult_vip))
new Float:vec(3);
new Float:oldvelo(3);
pev(victim, pev_velocity, oldvelo);
create_velocity_vector(victim , attacker , vec);
vec(0) += oldvelo(0);
vec(1) += oldvelo(1);
set_pev(victim, pev_velocity, vec);
if( !task_exists( victim + TASK_FBURN ) )
{
g_burning_duration( victim ) += FIRE_DURATION * 5
set_task( 0.1, "CTask__BurningFlame", victim + TASK_FBURN, _, _, "b" )
}
5) Ну и где-то в конце вставляем это:
public CTask__BurningFlame( taskid )
{
// Get player origin and flags
static origin(3), flags
get_user_origin(ID_FBURN, origin)
flags = pev(ID_FBURN, pev_flags)
// Madness mode - in water - burning stopped
if ((flags & FL_INWATER) || g_burning_duration(ID_FBURN) < 1 || g_fRoundEnd || !is_user_alive(ID_FBURN))
{
// Smoke sprite
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SMOKE) // TE id
write_coord(origin(0)) // x
write_coord(origin(1)) // y
write_coord(origin(2)-50) // z
write_short(g_smokeSpr) // sprite
write_byte(random_num(15, 20)) // scale
write_byte(random_num(10, 20)) // framerate
message_end()
// Task not needed anymore
remove_task(taskid)
return
}
// Get player's health
static health
health = pev(ID_FBURN, pev_health)
// Take damage from the fire
if (health - FIRE_DAMAGE > 0)
fm_set_user_health(ID_FBURN, health - FIRE_DAMAGE)
// Flame sprite
message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SPRITE) // TE id
write_coord(origin(0)+random_num(-5, 5)) // x
write_coord(origin(1)+random_num(-5, 5)) // y
write_coord(origin(2)+random_num(-10, 10)) // z
write_short(g_flameSpr) // sprite
write_byte(random_num(5, 10)) // scale
write_byte(200) // brightness
message_end()
g_burning_duration(ID_FBURN)--
}
P.S Вот исходник ножей со способностями поджёг, заморозка, антидот, пользуйтесь XD
Внимание! Для скачивания, просмотра вам необходимо авторизоваться или зарегистрироваться.
Минимальная длина комментария - 50 знаков. комментарии модерируются
Смотрите также:
Как сделать поджег зомби при выстреле в CS 1.6
В этой статье будет рассказано как добавить к оружию эффект поджога зомби
(ZP) Как добавить эффекты к гранатам для ZP?
Как добавить эффекты к гранатам для ZP?