[Levels Ranks] Core

[Levels Ranks] Core 3.1.2

BombermaG

Участник
Сообщения
40
Реакции
22
Качество кода по работе с базой данных оставляет желать лучшего.
1. Отсутствуют индексы по полям в таблице, по которым производится выборка. Любая выборка вызывает полное сканирование таблицы.
2. Для получения количества игроков производится полная выгрузка всех SteamID из таблицы, вместо простого получения числа с количеством записей.
C-подобный:
g_sSQL_CountPlayers[] = "SELECT `steam` FROM `%s`;",
3. Для получения ранга игрока производится полная загрузка таблицы из базы в память игрового сервера и дальнейший проход по всем полученным записям.
C-подобный:
g_sSQL_PlacePlayer[] = "SELECT `value`, `steam` FROM `%s` ORDER BY `value` DESC;",

...

while(dbRs.HasResults && dbRs.FetchRow())
{
    i++;
    dbRs.FetchString(1, sSteam, sizeof(sSteam));
    if(StrEqual(sSteam, g_sSteamID[iClient], false))
    {
        g_iDBRankPlayer[iClient] = i;
        break;
    }
}
У вас в базе 100 тысяч игроков и ранк необходимо показать для последнего игрока в списке? Получите перебор в цикле на 100 тысяч элементов.

Иными словами, чем больше игроков у вас в базе, тем больше будет нагрузка, как на игровой сервер, так и на сервер базы данных.
Необходимо проставить индексы в таблице и переписать запросы должным образом, используя все возможности SQL, а не перенося логику в код плагина.
 

gam19980

Участник
Сообщения
61
Реакции
3
Не работает через mysql.
Ошибок подключения базы нет в логах и должно было все заработать, но все равно sqllite подрубается и создается локальная база.
Ничего не понимаю. Но если ввожу немерено неверные данные - то появляются логи с ошибками

P.S. Может в настройках где-то есть параметр, которых отвечает за тип бд и его нужно сменить?
 

Paranoiiik

хачю клиентмод
Сообщения
2,047
Реакции
1,490
Не работает через mysql.
Ошибок подключения базы нет в логах и должно было все заработать, но все равно sqllite подрубается и создается локальная база.
Ничего не понимаю. Но если ввожу немерено неверные данные - то появляются логи с ошибками

P.S. Может в настройках где-то есть параметр, которых отвечает за тип бд и его нужно сменить?
Надо сюда прислать то, что вписываешь в databases.cfg, предварительно затерев пароль
 

sniper45301

<Выживаю и играю>
Сообщения
464
Реакции
133
А что нельзя больше 19 званий вписать в конфиг?
если больше впишешь то ошибки сразу
L 05/15/2019 - 22:12:43: [SM] Exception reported: Array index out-of-bounds (index 20, limit 20)
L 05/15/2019 - 22:12:43: [SM] Blaming: levelsranks.smx
L 05/15/2019 - 22:12:43: [SM] Call stack trace:
L 05/15/2019 - 22:12:43: [SM] [1] Line 216, levels_ranks/settings.sp::SetSettingsRank
L 05/15/2019 - 22:12:43: [SM] [2] Line 193, levels_ranks/settings.sp::SetSettingsType
L 05/15/2019 - 22:12:43: [SM] [3] Line 96, levels_ranks/settings.sp::SetSettings
L 05/15/2019 - 22:12:43: [SM] [4] Line 115, levelsranks.sp::OnPluginStart
L 05/15/2019 - 22:12:43: [SM] Unable to load plugin "levelsranks.smx": Error detected in plugin startup (see error logs)
можно ли увеличить число?
 

Paranoiiik

хачю клиентмод
Сообщения
2,047
Реакции
1,490

Paranoiiik

хачю клиентмод
Сообщения
2,047
Реакции
1,490
как долго ждать?
У автора сейчас сессия, дела личные. Он даже в Дискорде редко сидит. Как сессия закончится, он выдохнет и начнёт заниматься версией 3.0.
Лучше сидеть на сервере в Дискорд этого плагина и оттуда черпать информацию в случае чего. Все инсайды, в том числе и по новому WEB-интерфейсу, появляются в первую очередь там:

Join the Romeo's channel Discord Server!
 

RoadSide Romeo

rest in peace...
Сообщения
1,628
Реакции
1,489
@Paranoiiik, ребят, да, это верно. Я сейчас забит по горло учебой, на носу госы и диплом, так что пока не до плагина и форума. Ккак вся жопа закончится, продолжу разработку на полную.
 

mar1q

Участник
Сообщения
13
Реакции
1
Нужна помощь, установил плагин, но при убийстве опыт не сыпит.. Что делать? Куда глядеть?
 

Felya

Array-based enum structs will be removed in 1.11
Сообщения
208
Реакции
83
Можно ли выдавать опыт через консоль?
Через консоль нельзя. Можно только через базу mysql менять значения или поставив
C-подобный:
 "lr_type_statistics" "0"
вы сможете выдавать опыт через админку. !lvl ---> Админ панель
 

Zakhar Revin

Участник
Сообщения
218
Реакции
28
Господа, а подскажите, видны все сообщения в чат, кто поднял звание, кто понизил. Все опции показа в конфиге выключены.. и все равно отображаются надписи. Версия последняя на текущий момент.
 

Felya

Array-based enum structs will be removed in 1.11
Сообщения
208
Реакции
83
Господа, а подскажите, видны все сообщения в чат, кто поднял звание, кто понизил. Все опции показа в конфиге выключены.. и все равно отображаются надписи. Версия последняя на текущий момент.

Join the Romeo's channel Discord Server! - онлайн поддержка по [LR] Core
 

Zakhar Revin

Участник
Сообщения
218
Реакции
28

Felya

Array-based enum structs will be removed in 1.11
Сообщения
208
Реакции
83
Ну.. тогда зачем тема в рамках форума?
Отвечу сам: снести все три принта в custom_functions (на ксс просто файл перевода исправить можно, на ксго, если не снести принты, будут пустые строки)
Потому что создатель плагина не может отвечать, а быстрая поддержка только в дискорде + удобство.
--- Добавлено позже ---
У автора сейчас сессия, дела личные. Он даже в Дискорде редко сидит. Как сессия закончится, он выдохнет и начнёт заниматься версией 3.0.
Лучше сидеть на сервере в Дискорд этого плагина и оттуда черпать информацию в случае чего. Все инсайды, в том числе и по новому WEB-интерфейсу, появляются в первую очередь там:

Join the Romeo's channel Discord Server!
@Paranoiiik, ребят, да, это верно. Я сейчас забит по горло учебой, на носу госы и диплом, так что пока не до плагина и форума. Ккак вся жопа закончится, продолжу разработку на полную.
 
Последнее редактирование:

novichek

Участник
Сообщения
631
Реакции
21
Помогите. Есть ДМ сервер режим FFA забирает очки за убийство своего. Как поправить для этого режима?
 
Сверху Снизу