-
Опьтимизация диологов
Как оптимизировать такой диалог
PHP код:
case dYazik:
{
if(!response)
{
switch(listitem)
{
case 0:
{
PlayerTextDrawSetString(playerid,register[playerid][14], TranslateText("Английскии"));
SendClientMessage(playerid,COLOR_ORANGE,"Хорошо, ваш родной язык теперь:{FFFFFF} 'Английский'"), PlayerInfo[playerid][pyazik] = 2;
}
case 1:
{
PlayerTextDrawSetString(playerid,register[playerid][14], TranslateText("Китайскии"));
SendClientMessage(playerid,COLOR_ORANGE,"Хорошо, ваш родной язык теперь:{FFFFFF} 'Китайский'"), PlayerInfo[playerid][pyazik] = 3;
}
case 2:
{
PlayerTextDrawSetString(playerid,register[playerid][14], TranslateText("Испанскии"));
SendClientMessage(playerid,COLOR_ORANGE,"Хорошо, ваш родной язык теперь:{FFFFFF} 'Испанский'"), PlayerInfo[playerid][pyazik] = 4;
}
case 3:
{
PlayerTextDrawSetString(playerid,register[playerid][14], TranslateText("Русскии"));
SendClientMessage(playerid,COLOR_ORANGE,"Хорошо, ваш родной язык теперь:{FFFFFF} 'Русский'"), PlayerInfo[playerid][pyazik] = 5;
}
}
}
}
-
А что тут оптимизировать собственно?
Если только 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");
-
К ответу выше добавлю, что если твой сервер страдает от лагов, то, в первую очередь, нужно переписывать алгоритмы систем, а не делать вот такие мелкие правки, которые, в лучшем случае, позволят выиграть пару тиков процессора. Подобным следует заниматься либо сразу при написании кода, либо уже когда прямо все системы написаны максимально хорошо, но из-за объёмов кода сервер всё равно подтормаживает в некоторые моменты. В остальных случаях это, чаще всего, просто потеря времени
-
Ещё вместо TranslateText можно воспользоваться плагином rustext