Dougs
Новичок
Есть в моде список оффлайн игроков, он слишком много string жрет, можно как то оптимизировать? Я так понял, в каждом диалоге показывает по 15 игроков, то есть если снизить до 10 и уменьшить стринг до 700(примерно) получится так?
Вот что находиться в var_unite_1
PHP:
forward unit_2(playerid);
public unit_2(playerid)
{
new rows, fields, tmp = 0;
cache_get_data(rows, fields, database);
if(rows)
{
new vig, rank, name[24], data[24], string[80], stringall[2000];
strcat(stringall, "{D9D9D9}Имя\tРанг\tВыговоры\tПоследний вход\n");
for(new i = pTemp[playerid][var_unit_1]*15; i < rows; i++)
{
cache_get_field_content(i, "Name", name, database, 24);
if(!IsPlayerConnected(GetPlayerID(name)))
{
vig = cache_get_field_content_int(i, "pReprimands", database);
rank = cache_get_field_content_int(i, "pRank", database);
cache_get_field_content(i, "pGetonDate", data, database, 24);
tmp++;
format(string, sizeof(string), "{D9D9D9}%s\t%i\t%i\t%s\n", name, rank, vig, data);
strcat(stringall, string);
}
}
if(tmp > 0)
{
strcat(stringall, "Следующая страница\n");
if(pTemp[playerid][var_unit_1] > 0) strcat(stringall, "Предыдущая страница\n");
format(string, sizeof(string), "{0089FF}Список offline игроков страница: %i", pTemp[playerid][var_unit_1]+1);
ShowPlayerDialog(playerid, 281, DIALOG_STYLE_TABLIST_HEADERS, string, stringall, "Выбрать", "Закрыть");
}
else
{
if(pTemp[playerid][var_unit_1] > 0)
{
pTemp[playerid][var_unit_1]--;
unit_1(playerid);
}
SendClientMessage(playerid, COLOR_GREY, "Игроки не найдены.");
}
}
else
{
if(pTemp[playerid][var_unit_1] > 0)
{
pTemp[playerid][var_unit_1]--;
unit_1(playerid);
}
SendClientMessage(playerid, COLOR_GREY, "Игроки не найдены.");
}
return 1;
}
PHP:
unit_1(playerid)
{
new string[120];
format(string, sizeof(string), "SELECT * FROM `Accounts` WHERE `pMember` = '%i' LIMIT %i", PlayerInfo[playerid][pMember], pTemp[playerid][var_unit_1]*15+15);
mysql_function_query(database, string, true, "unit_2", "i", playerid);
}
Последнее редактирование:
