10
апр
2025

[ZP] Делаем эволюцию для класса-зомби    

Категория: CS 1.6: Статьи, Автор: alawz, Просмотров: 21

В этой статье мы научимся делать

эволюцию класса-зомби для 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.Понравилось ставьте лайк.



0

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.



Комментарии


Добавление комментария
Ваше Имя:
Ваш E-Mail:
Новый проект аниме блоги на недре
Код:
Кликните на изображение чтобы обновить код, если он неразборчив
Введите код: