
В этой статье мы научимся делать
эволюцию класса-зомби для Zombie Plague в игре CS 1.6
Внимание: Этот вариант не идеален!
Приступим!
1. Добавляем инклуд:
#include <fakemeta>
2. Создаем три масива:
new g_evolution[33] - Будет отвечать за количество зараженных людей
new stadia_1[33] - Будет отвечать за 1 стадию эволюции
new stadia_2[33] - Будет отвечать за 2 стадию эволюции
3. Копируем:
#define EVOLUTION_HEALTH_1 4000 //Характеристики при 1 эволюции
#define EVOLUTION_SPEED_1 300
#define EVOLUTION_GRAVITY_1 0.70
#define EVOLUTION_HEALTH_2 6000 //Характеристики при 2 эволюции
#define EVOLUTION_SPEED_2 350
#define EVOLUTION_GRAVITY_2 0.30
#define RELOAD_ABILITY_EVOLUTION 5.0 - Время перезарядки способности будет зависеть от стадии эволюции
#define INFECT_PLAYER_1 5 //Сколько нужно заразить игроков до эволюции
#define INFECT_PLAYER_2 10
4.Создаем саму эволюцию:
public evolution(index, level)
{
switch(level)
{
case 0:
{
set_pev(index, pev_health, float(EVOLUTION_HEALTH_1))
set_pev(index, pev_maxspeed, float(EVOLUTION_SPEED_1))
set_pev(index, pev_gravity, EVOLUTION_GRAVITY_1)
stadia_1[index] = true
stadia_2[index] = false
}
case 1:
{
set_pev(index, pev_health, float(EVOLUTION_HEALTH_2))
set_pev(index, pev_maxspeed, float(EVOLUTION_SPEED_2))
set_pev(index, pev_gravity, EVOLUTION_GRAVITY_2)
stadia_1[index] = false
stadia_2[index] = true
}
}
}
5. Выдаем эволюцию:
public zp_user_infected_post(id, infector) //Если игрока заразили
{
if ((zp_get_user_zombie_class(id) == class_boomer) && !zp_get_user_nemesis(id)) // Пишите свой класс
{
if(zp_get_user_first_zombie(id)) //Если игрок первый зомби дается первая стадия эволюции.
{
g_evolution[id] = INFECT_PLAYER_1
evolution(id, 0)
}
else //Если нет все по нулям
{
g_evolution[id] = 0
stadia_1[id] = false
stadia_2[id] = false
}
}
if(is_user_connected(infector) && zp_get_user_zombie_class(infector) == class_boomer) // Пишите свой класс
{
if(g_evolution[infector] == INFECT_PLAYER_1)
{
evolution(infector, 0) //Выдача 1 стадии
}
else if(g_evolution[infector] == INFECT_PLAYER_2)
{
evolution(infector, 1) //Выдача 2 стадии
}
}
}
6. Добавляем ниже:
public zp_user_humanized_post(id) //Если игрок стал человеком ,сбрасываем эволюцию.
{
g_evolution[id] = 0
stadia_1[id] = false
stadia_2[id] = false
}
7.Делаем зависимость времени перезарядки способности от эволюции.
Находите место перезарядки способности.
Например:
set_task(g_abilonecooldown,"set_ability_one_cooldown",id)
и заменяем на
set_task(stadia_2[id] ? RELOAD_ABILITY_EVOLUTION : g_abilonecooldown,"set_ability_one_cooldown",id)
-
то есть если зомби перешел на 2 стадию эволюции, то он пользоватся способностью на много чаще.
Пример зомби класса.
z_class_strong_zombie.sma [7.44 Kb] (cкачиваний: 0)
P.S.Понравилось ставьте лайк.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.