Как сделать зомби класс для vip

Как сделать зомби класс для vip

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) Если игрок не выбирал класса зомби для ВИП и он сам не является ВИПом, то выполняются следудующие действия:

// 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]

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *