Как сделать зомби класс для 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]