[TUT] Делаем случайный выбор класса зомби + доступ к меню только для Админов/VIP [ZP 4.3]


[TUT] Делаем случайный выбор класса зомби + доступ к меню только для Админов/VIP [ZP 4.3]

Статья о том, как сделать рандомный выбор класса зомби для игрока, а выбор сделать для игрока с определенным админ флагом

[TUT] Делаем случайный выбор класса зомби + доступ к меню только для Админов/VIP [ZP 4.3]

Автор: Джейк
Уровень сложности: легкий

Итак, по многочисленным просьбам, решил написать данную статью, а точнее как сделать рандомный выбор класса зомби после заражения + доступ к выбору класса только для игрока с определенным админ флагом.

И так, приступим:

Шаг 1
Отрываем ваш исходник zombie_plague. Там ищем такие строки

#define PL_ACTION g_menu_data[id][0]

После нее добавляем

#define ADMIN_FLAG ADMIN_LEVEL_H // Флаг доступа админа

Тут мы установили какой флаг будет нужен для открытия меню с выбором класса зомби.

Шаг 2
Теперь ищем такую строку:

if (get_pcvar_num(cvar_zclasses))

И после

get_pcvar_num(cvar_zclasses)

добавляем

&& (get_user_flags(id) & ADMIN_FLAG)

И у нас получается что-то, вроде этого

if (get_pcvar_num(cvar_zclasses) && (get_user_flags(id) & ADMIN_FLAG))len += formatex(menu[len], charsmax(menu) - len, "\w1.\w %L^n", id,"MENU_ZCLASS")elselen += formatex(menu[len], charsmax(menu) - len, "\d3. %L^n", id,"MENU_ZCLASS")

Шаг 3
Далее мы ищем функцию

public menu_game(id, key)

В ней ищем строку

if (get_pcvar_num(cvar_zclasses))

Аналогично после

get_pcvar_num(cvar_zclasses)

добавляем

&& (get_user_flags(id) & ADMIN_FLAG)

И у нас получается что-то вроде этого:

if (get_pcvar_num(cvar_zclasses) && (get_user_flags(id) & ADMIN_FLAG))show_menu_zclass(id)elsezp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT_ZCLASSES")

Шаг 4
Далее ищем функцию

zombieme(id, infector, nemesis, silentmode, rewards)

Находим в ней эту строку

if (g_zombieclassnext[id] == ZCLASS_NONE && get_pcvar_num(cvar_zclasses))

После

get_pcvar_num(cvar_zclasses)

добавляем:

& ADMIN_FLAG

У нас получается, такое:

if (g_zombieclassnext[id] == ZCLASS_NONE && get_pcvar_num(cvar_zclasses) && (get_user_flags(id) & ADMIN_FLAG))set_task(0.2, "show_menu_zclass", id)

Шаг 4
В этой же функции находим строку:

g_zombieclass[id] = g_zombieclassnext[id]

Удаляем её, вместо нее вписываем:

if(get_user_flags(id) & ADMIN_FLAG)g_zombieclass[id] = g_zombieclassnext[id]elseg_zombieclass[id] = random_num(0, ArraySize(g_zclass_name) - 1)

Таким образом, обычному игроку при заражении выбирает рандомный зомби класс, а админу с определенным флагом откроет список выбора зомби класса.

Кому интересно вот флагин доступа:

 Вот_они

Источник:


Комментарии:


Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Zombie-Mod.com — крупнейший игровой портал по Counter Strike