А что тут оптимизировать собственно?
Если только break добавить.
Или вы хотите код сократить?
Можно так, например
PHP код:
case dYazik:
{
if (!response)
{
new string[64];
static const languages[][] = {
"Английский", "Китайский", "Испанский", "Русский"
};
PlayerTextDrawSetString(playerid, register[playerid][14], TranslateText(languages[listitem]));
format(string, sizeof(string), "Хорошо, ваш родной язык теперь:{FFFFFF} '%s'", languages[listitem]);
SendClientMessage(playerid, COLOR_ORANGE, string);
PlayerInfo[playerid][pyazik] = listitem + 2;
}
}
Только это далеко не оптимизация, времени на это больше уйдет чем на ваш вариант
Можно и без static const languages обойтись, передав название в inputtext.
PHP код:
case dYazik:
{
if (!response)
{
new string[64];
PlayerTextDrawSetString(playerid, register[playerid][14], TranslateText(inputtext));
format(string, sizeof(string), "Хорошо, ваш родной язык теперь:{FFFFFF} '%s'", inputtext);
SendClientMessage(playerid, COLOR_ORANGE, string);
PlayerInfo[playerid][pyazik] = listitem + 2;
}
}
Только в этом случае, ShowPlayerDialog должен такой вид иметь
PHP код:
ShowPlayerDialog(playerid, dYazik, DIALOG_STYLE_LIST, "Язык", "Английский\nКитайский\nИспанский\nРусский", "Кнопка 1", "Кнопка 2");