Главная » Статьи » Zombie Plague

Добавление зомби класса для VIP (способ SISA)
1) Найдем в исходнике zombie_plague40.sma функцию:

// Zombie Class Menu
public menu_zclass(id, menuid, item)


Можете оттуда смело все удалить, кроме:

if (item == MENU_EXIT)

menu_destroy(menuid)
return PLUGIN_HANDLED;


Так как вы можете вставить все, что находится ниже.

2) Для начала нужно сделать так, чтобы когда игрок без флага(флагов) ВИП не мог выбрать Зомби класс для ВИП:

if (item == 6) // какой по счету в списке зомби класс для ВИП

[color=red]if (!(get_user_flags(id) & ADMIN_LEVEL_H))

zp_colored_print(id, "^x04[Zombie CSO]^x01 %L", id, "ZCLASS_VIP") /*Выводится сообщение что этот класс только для ВИП*/
g_zombieclassnext[id] = 0 //Класс зомби не выбирается, а остается тем же какой был раньше


Для начинающих item == 6: цифра 6 не означает, что ВИП класс находится шестым по списку, он находится в списке седьмым.

3) Если игрок не выбирал класса зомби для ВИП и он сам не является ВИПом, то выполняются следудующие действия:

if ((item != 6) & !(get_user_flags(id) & ADMIN_LEVEL_H))

// Retrieve zombie class id
static buffer[2], dummy, classid
menu_item_getinfo(menuid, item, dummy, buffer, charsmax(buffer), _, _, dummy)
classid = buffer[0]

// Store selection for the next infection
g_zombieclassnext[id] = classid

static name[32]
ArrayGetString(g_zclass_name, g_zombieclassnext[id], name, charsmax(name))

// Show selected zombie class info and stats
zp_colored_print(id, "^x04[Zombie CSO]^x01 %L: %s", id, "ZOMBIE_SELECT", name)
zp_colored_print(id, "^x04[Zombie CSO]^x01 %L: %d %L: %d %L: %d %L: %d%%", id, "ZOMBIE_ATTRIB1", ArrayGetCell(g_zclass_hp, g_zombieclassnext[id]), id, "ZOMBIE_ATTRIB2", ArrayGetCell(g_zclass_spd, g_zombieclassnext[id]),
id, "ZOMBIE_ATTRIB3", floatround(Float:ArrayGetCell(g_zclass_grav, g_zombieclassnext[id]) * 800.0), id, "ZOMBIE_ATTRIB4", floatround(Float:ArrayGetCell(g_zclass_kb, g_zombieclassnext[id]) * 100.0))


4) Если ВИП выбрал любой класс зомби, то должно выполнится следующее:

if (get_user_flags(id) & ADMIN_LEVEL_H)

// Retrieve zombie class id
static buffer[2], dummy, classid
menu_item_getinfo(menuid, item, dummy, buffer, charsmax(buffer), _, _, dummy)
classid = buffer[0]

// Store selection for the next infection
g_zombieclassnext[id] = classid

static name[32]
ArrayGetString(g_zclass_name, g_zombieclassnext[id], name, charsmax(name))

// Show selected zombie class info and stats
zp_colored_print(id, "^x04[Zombie CSO]^x01 %L: %s", id, "ZOMBIE_SELECT", name)
zp_colored_print(id, "^x04[Zombie CSO]^x01 %L: %d %L: %d %L: %d %L: %d%%", id, "ZOMBIE_ATTRIB1", ArrayGetCell(g_zclass_hp, g_zombieclassnext[id]), id, "ZOMBIE_ATTRIB2", ArrayGetCell(g_zclass_spd, g_zombieclassnext[id]),
id, "ZOMBIE_ATTRIB3", floatround(Float:ArrayGetCell(g_zclass_grav, g_zombieclassnext[id]) * 800.0), id, "ZOMBIE_ATTRIB4", floatround(Float:ArrayGetCell(g_zclass_kb, g_zombieclassnext[id]) * 100.0))

menu_destroy(menuid)
return PLUGIN_HANDLED;[/color]
Категория: Zombie Plague | Добавил: ЭлДоРн (28.03.2012)
Просмотров: 2498 | Теги: SISA, vip, zombie | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Вверх