Pisex
Участник
- Сообщения
- 172
- Реакции
- 155
Размером, удобством для администрирования, раньше было сложно поменять данные если это надо былоЯ всё ещё пытаюсь узнать, чем она не устроила-то? Чисто "размером"? :)
Размером, удобством для администрирования, раньше было сложно поменять данные если это надо былоЯ всё ещё пытаюсь узнать, чем она не устроила-то? Чисто "размером"? :)
В моей картине мира, администратор лезет в базу только если его попросил об этом разраб, чтобы выполнить какой-то запрос, который поправит какую-то проблему. Потому что если он туда лезет как раз что-то поменять своими ручками, то он может наломать дров, установив какие-то неадекватные значения, которые тот же SourcePawn переварить не сможет вообще. А потом пойдёт плакаться в тему, что у него нифига не работает. Как уже бывало на этом форуме.удобством для администрирования, раньше было сложно поменять данные если это надо было
sm_achievement_set_value
, и будет учитывать возможное нахождение игрока на сервере, если плагин кэширует значения в памяти, что, в общем-то, является нормой в наше время.Ну просто Риммер постоянно для тестов и всего такого лез в базу и убирал себе выполненные ачивки, ну а так идея хорошая с добавлением команды для редактирования без залаза в базуВ моей картине мира, администратор лезет в базу только если его попросил об этом разраб, чтобы выполнить какой-то запрос, который поправит какую-то проблему. Потому что если он туда лезет как раз что-то поменять своими ручками, то он может наломать дров, установив какие-то неадекватные значения, которые тот же SourcePawn переварить не сможет вообще. А потом пойдёт плакаться в тему, что у него нифига не работает. Как уже бывало на этом форуме.
Для администрирования и изменения значения должен быть инструментарий именно со стороны плагина, который сам будет знать, что и где поменять при неких входных параметрах. Хотя бы те же команды аляsm_achievement_set_value
, и будет учитывать возможное нахождение игрока на сервере, если плагин кэширует значения в памяти, что, в общем-то, является нормой в наше время.
Поправьте, если не прав.
L 11/30/2022 - 22:45:33: [achievements/ach/achievements.smx] SQLT_OnSaveClient failure: "Field 'completed' doesn't have a default value"
L 11/30/2022 - 22:49:00: [achievements/ach/achievements.smx] SQLT_OnSaveClient failure: "Field 'НАЗВАНИЕ АЧИВКИ' doesn't have a default value"
Ты пиши людям, настройки например, у тебя sqliteL 11/30/2022 - 22:45:33: [achievements/ach/achievements.smx] SQLT_OnSaveClient failure: "Field 'completed' doesn't have a default value"
L 11/30/2022 - 22:49:00: [achievements/ach/achievements.smx] SQLT_OnSaveClient failure: "Field 'НАЗВАНИЕ АЧИВКИ' doesn't have a default value"
Актуально в R1.0
void CreateTables()
{
char driver[16],query[1024];
DBDriver Driver = g_hSQLdb.Driver;
Driver.GetIdentifier(driver, sizeof(driver));
if(driver[0] == 'm')
{
FormatEx(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `ach_progress`(\
`id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,\
`auth` VARCHAR(32) NOT NULL,\
`name` VARCHAR(64) NOT NULL,\
`completed` INTEGER NOT NULL DEFAULT 0,\
`server_id` INTEGER NOT NULL);");
g_hSQLdb.Query(SQL_CheckError, query);
FormatEx(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `ach_inventory` (\
`id` INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,\
`client_id` INTEGER NOT NULL,\
`ach_name` VARCHAR(64) NOT NULL);");
g_hSQLdb.Query(SQL_CheckError, query);
g_hSQLdb.SetCharset("utf8");
}
else if(driver[0] == 's')
{
SQL_LockDatabase(g_hSQLdb);
FormatEx(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `ach_progress`(\
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\
`auth` VARCHAR(32) NOT NULL,\
`name` VARCHAR(64) NOT NULL,\
`completed` INTEGER NOT NULL DEFAULT 0,\
`server_id` INTEGER NOT NULL);");
g_hSQLdb.Query(SQL_CheckError, query);
FormatEx(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `ach_inventory` (\
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\
`client_id` INTEGER NOT NULL,\
`ach_name` VARCHAR(64) NOT NULL);");
g_hSQLdb.Query(SQL_CheckError, query);
g_hSQLdb.SetCharset("utf8");
SQL_UnlockDatabase(g_hSQLdb);
}
char sBuffer[128];
for(int i = 0; i <= g_hArray_sAchievementNames.Length-1; i++)
{
g_hArray_sAchievementNames.GetString(i,sBuffer,sizeof sBuffer);
g_hSQLdb.Format(SZF(query), "ALTER TABLE `ach_progress` ADD `%s` INTEGER NOT NULL DEFAULT 0;",sBuffer);
g_hSQLdb.Query(SQL_CheckError2, query);
}
LC(i) {
OnClientPostAdminCheck(i);
}
}
addons\sourcemod\configs\core.cfgчто делать если плагин работает, меню открывается, в БД ведутся записи, но награды за выполнение ачикви не выдается?
вот что в Егор-логах нашел, но как фиксануть?
Посмотреть вложение 105425
L 11/30/2022 - 22:45:33: [achievements/ach/achievements.smx] SQLT_OnSaveClient failure: "Field 'completed' doesn't have a default value"
L 11/30/2022 - 22:49:00: [achievements/ach/achievements.smx] SQLT_OnSaveClient failure: "Field 'НАЗВАНИЕ АЧИВКИ' doesn't have a default value"
Актуально в R1.0
Я сейчас в Томске и немного не удобно проверять, тем более у меня используется MySQL, вот попробуйте:Весь день флудДо этого всё работало нормально в течении недели.L 12/08/2022 - 20:56:43: [SM] Exception reported: Invalid Handle 0 (error 4)
L 12/08/2022 - 20:56:43: [SM] Blaming: achievements.smx
L 12/08/2022 - 20:56:43: [SM] Call stack trace:
L 12/08/2022 - 20:56:43: [SM] [0] SetTrieValue
L 12/08/2022 - 20:56:43: [SM] [1] Line 181, achievements\sql.sp::SQLT_OnLoadProgress
Не проверял что скинули ниже?Весь день флудДо этого всё работало нормально в течении недели.L 12/08/2022 - 20:56:43: [SM] Exception reported: Invalid Handle 0 (error 4)
L 12/08/2022 - 20:56:43: [SM] Blaming: achievements.smx
L 12/08/2022 - 20:56:43: [SM] Call stack trace:
L 12/08/2022 - 20:56:43: [SM] [0] SetTrieValue
L 12/08/2022 - 20:56:43: [SM] [1] Line 181, achievements\sql.sp::SQLT_OnLoadProgress
Сейчас закину проверю.Не проверял что скинули ниже?
А то у меня с выхода обновы тоже норм все было,а вчера посыпал ошибками.
Проверить пока нет возможности,то что скинул Rimmer
Я сейчас в Томске и немного не удобно проверять, тем более у меня используется MySQL, вот попробуйте:
Я тебе уже говорил что ты не умеешь читать конфиги, параметр прочитай continue, там всё написаноРебят, выручайте, настроил конфиг. Не выдает достижение "Мозголом", "Мастер Glock", "Курильщик", "Вышибало".
Как вы могли заметить Achievements давно не обновлялось, хотя идей и реализаций куча, скрывать не буду, нам было лень, да и вообще мы отдыхали
A.R.C.R - Achievements Reborn Core Release
● Добавлены группы
ㅤ↳ Тем самым полностью переработан config в более удобную версию
ㅤ↳ Теперь достижения можно группировать в одну определённую группу, что бы игроки не путались
● Некоторые фиксы
ㅤ↳ Некоторые фиксы с SQL
ㅤ↳...
Было бы не лищним отображать рядом с Достижением его ход выполения, а то не удобненько будет нажимать на каждый что бы глянуть его статыRimmer обновил(а) ресурс [Achievements] Core 🏆 новой записью:
😴Мы отдохнули и готовы работать!🔔
Узнать больше об этом обновлении...
"min_players"
- Не работает."inv_thisorthat"
- Работает, но если отключить в меню все равно останется.L 01/09/2023 - 15:14:48: [SM] MEMORY LEAK DETECTED IN PLUGIN (file "achievements.smx")
L 01/09/2023 - 15:14:48: [SM] Unloading plugin to free 28539 handles.
L 01/09/2023 - 15:14:48: [SM] Contact the author(s) of this plugin to correct this error.
L 01/09/2023 - 15:14:48: --------------------------------------------------------------------------
L 01/09/2023 - 15:14:48: Type KeyValues | Count 1
L 01/09/2023 - 15:14:48: Type IBaseMenu | Count 70
L 01/09/2023 - 15:14:48: Type IDatabase | Count 28339
L 01/09/2023 - 15:14:48: Type GlobalFwd | Count 6
L 01/09/2023 - 15:14:48: Type Trie | Count 100
L 01/09/2023 - 15:14:48: Type TrieSnapshot | Count 10
L 01/09/2023 - 15:14:48: Type CellArray | Count 13
L 01/09/2023 - 15:14:48: -- Approximately 110345 bytes of memory are in use by (28539) Handles.
L 01/09/2023 - 15:14:48: [SM] Exception reported: Memory leak
L 01/09/2023 - 15:14:48: [SM] Blaming: achievements.smx
L 01/09/2023 - 15:14:48: [SM] Call stack trace:
L 01/09/2023 - 15:14:48: [SM] [0] SQL_TQuery
L 01/09/2023 - 15:14:48: [SM] [1] Line 194, achievements/sql.sp::SaveProgress
L 01/09/2023 - 15:14:48: [SM] [2] Line 90, achievements/events.sp::ProcessEvents
L 01/09/2023 - 15:14:48: [SM] [3] Line 4, achievements/events.sp::Event_ClientCallback
Обнаружены незначительные проблемы
- Проблема с"min_players"
- Не работает.
- Проблема с"inv_thisorthat"
- Работает, но если отключить в меню все равно останется.
А так же, уже не проблема а, кому лень делать достижения, я обновил свой конфиг:
[Achievements] Шаблоны ваших достижений
Здравствуйте дорогие Администраторы игровых серверов👋 Описание: Здесь вы можете скачать мой шаблон достижений, а так же скидывать свой. Требования: https://hlmod.ru/resources/achievements-core.3936/ https://hlmod.ru/resources/achievements-shop.3938/...hlmod.ruСообщения автоматически склеены:
Была обнаружена критическая ошибка!
Утечка памяти:
C-подобный:L 01/09/2023 - 15:14:48: [SM] MEMORY LEAK DETECTED IN PLUGIN (file "achievements.smx") L 01/09/2023 - 15:14:48: [SM] Unloading plugin to free 28539 handles. L 01/09/2023 - 15:14:48: [SM] Contact the author(s) of this plugin to correct this error. L 01/09/2023 - 15:14:48: -------------------------------------------------------------------------- L 01/09/2023 - 15:14:48: Type KeyValues | Count 1 L 01/09/2023 - 15:14:48: Type IBaseMenu | Count 70 L 01/09/2023 - 15:14:48: Type IDatabase | Count 28339 L 01/09/2023 - 15:14:48: Type GlobalFwd | Count 6 L 01/09/2023 - 15:14:48: Type Trie | Count 100 L 01/09/2023 - 15:14:48: Type TrieSnapshot | Count 10 L 01/09/2023 - 15:14:48: Type CellArray | Count 13 L 01/09/2023 - 15:14:48: -- Approximately 110345 bytes of memory are in use by (28539) Handles. L 01/09/2023 - 15:14:48: [SM] Exception reported: Memory leak L 01/09/2023 - 15:14:48: [SM] Blaming: achievements.smx L 01/09/2023 - 15:14:48: [SM] Call stack trace: L 01/09/2023 - 15:14:48: [SM] [0] SQL_TQuery L 01/09/2023 - 15:14:48: [SM] [1] Line 194, achievements/sql.sp::SaveProgress L 01/09/2023 - 15:14:48: [SM] [2] Line 90, achievements/events.sp::ProcessEvents L 01/09/2023 - 15:14:48: [SM] [3] Line 4, achievements/events.sp::Event_ClientCallback