Здравствуйте Форумчане! Подскажите как лучше сделать что бы не захламлять скрип повторным кодом. Когда я выбираю в меню, приобрести Shotgun срабатывает код, дающий мне оружие. Еще есть дополнительная зарегистрированная команда bay_shotgun что бы можно было забиндить покупку, дело в том что в коде одно и тоже по два раза.
Как сделать что бы когда я запускаю зарегистрированную команду bay_shotgun, он выполнял функцию из меню option1 или на оборот, когда я выбираю в меню option1 то он выполняет скрипт cmd_shotgun? По сути разници для меня нет ни какой, но второй вариант был бы предпочтительней в плане удобства и эстетичности скрипта, а то как то криво и глупо это, когда по два раза одни и теже функции в скрипте.
Код
public OnPluginStart()
{
RegConsoleCmd("bay_shotgun", cmd_shotgun);
}
Код
public ActionMenuHandler(Handle:menu, MenuAction:action, client, itemNum)
{
if ( action == MenuAction_Select )
{
new String:info[32];
GetMenuItem(menu, itemNum, info, sizeof(info));
if ( strcmp(info,"option1") == 0 )
{
{
ActionMenu(client);
if (g_iCredits[client] >= 7)
{
if (IsPlayerAlive(client))
{
GivePlayerItem(client, "weapon_shotgun");
g_iCredits[client] -= 7;
PrintToChat(client, "[SM] \x01Вы купили Дробовик! \x04[7 кр]. \x01Осталось \x04%i кр.", g_iCredits[client]);
}
else
{
PrintToChat(client, "[SM] \x01В данный момент Вы не можете воспользоваться магазином.");
}
}
else
{
PrintToChat(client, "[SM] \x01Недостаточно \x04кредитов\x01, у Вас всего \x04%i кр\x01, необходимо \x047 кр\x01.", g_iCredits[client]);
}
}
}
Код
public Action: cmd_shotgun(client, args)
{
if (g_iCredits[client] >= 7)
{
if (IsPlayerAlive(client))
{
GivePlayerItem(client, "weapon_shotgun");
g_iCredits[client] -= 7;
PrintToChat(client, "[SM] \x01Вы купили Дробовик! \x04[7 кр]. \x01Осталось \x04%i кр.", g_iCredits[client]);
}
else
{
PrintToChat(client, "[SM] \x01В данный момент Вы не можете воспользоваться магазином.");
}
}
else
{
PrintToChat(client, "[SM] \x01Недостаточно \x04кредитов\x01, у Вас всего \x04%i кр\x01, необходимо \x047 кр\x01.", g_iCredits[client]);
}
}