Иконка ресурса

Player preferences 1.0.7

Нет прав для скачивания

cpCTRL

bruh
Скриптер
Постоялец
Регистрация
20 Фев 2018
Сообщения
263
Симпатии
65
Пол
Мужской
cpCTRL добавил(а) новый ресурс:

Player preferences - API для сохранения и загрузки пользовательских данных в БД

Описание в оригинале


Так-как GMX проект был заброшен, посмею выдернуть интересный модуль системы
Не считаю лучшей реализацией.
Узнать больше об этом ресурсе...
 

cpCTRL

bruh
Скриптер
Постоялец
Регистрация
20 Фев 2018
Сообщения
263
Симпатии
65
Пол
Мужской
Безымянный.png
 

karaulov

Скриптер
Постоялец
Пользователь
Регистрация
5 Май 2019
Сообщения
1.041
Симпатии
359
Пол
Мужской
Можно в любое время загрузить и сохранить значение ?
 

cpCTRL

bruh
Скриптер
Постоялец
Регистрация
20 Фев 2018
Сообщения
263
Симпатии
65
Пол
Мужской
Можно в любое время загрузить и сохранить значение ?
Сохранить в любое время, загрузить тоже, но если нужно получить при коннекте - только в player_loaded, хук срабатывает при загрузке (если они есть) всех данных с БД. Если данных нет - так же срабатывает, но вернет дефолтные значения.
есть подозрения что где то будет сохранять пустые значения, аля {}
 

karaulov

Скриптер
Постоялец
Пользователь
Регистрация
5 Май 2019
Сообщения
1.041
Симпатии
359
Пол
Мужской
Нельзя модифицировать так что бы не сохранял игроков если в них не записано никаких данных?
 

cpCTRL

bruh
Скриптер
Постоялец
Регистрация
20 Фев 2018
Сообщения
263
Симпатии
65
Пол
Мужской
Нельзя модифицировать так что бы не сохранял игроков если в них не записано никаких данных?
И так не будет. Игроков сохраняет в бд только если данные были записаны какие либо
 

cpCTRL

bruh
Скриптер
Постоялец
Регистрация
20 Фев 2018
Сообщения
263
Симпатии
65
Пол
Мужской
karaulov, удалил пару пустышек из своей бд, но мб это с тестов остались
 

karaulov

Скриптер
Постоялец
Пользователь
Регистрация
5 Май 2019
Сообщения
1.041
Симпатии
359
Пол
Мужской
полезная вещь давно чтото такое искал многопоточное
 

karaulov

Скриптер
Постоялец
Пользователь
Регистрация
5 Май 2019
Сообщения
1.041
Симпатии
359
Пол
Мужской
Так все же если данные не успели загрузиться, как определить что их нет?
 

cpCTRL

bruh
Скриптер
Постоялец
Регистрация
20 Фев 2018
Сообщения
263
Симпатии
65
Пол
Мужской
karaulov, player_loaded
Код:
/**
* Checks if the specified key for player exists.
*
* @param id                Client index
* @param key               Unique key to which the value will be set
*
* @return                  true on success, false otherwise
* @error                   If the index is not within the range of 1 to MaxClients,
*                          an error will be thrown.
*/
native bool: pp_has_key(const id, const key[]);
 

cpCTRL

bruh
Скриптер
Постоялец
Регистрация
20 Фев 2018
Сообщения
263
Симпатии
65
Пол
Мужской
cpCTRL обновил(а) ресурс Player preferences новой записью:

Некоторые исправления

Версия осталась прежней.

* Добавлен недостающий эвент player_key_changed информация о нем уже была в библиотеке, но несколько обновлена. Смену информации у клиента теперь можно заблокировать (касается только данных БД, читаем мануал по player_key_changed)
* Убран ошибочный SQL_FreeHandle(g_hTuple); после успешного подключения к БД.
Узнать больше об этом обновлении...
 

Limbooc

Пользователь
Регистрация
24 Июл 2017
Сообщения
15
Симпатии
-2
Код:
    if (task_exists(312)) {
        remove_task(312);
    }

    server_print("[PP] Connection [%d/2] to '%s' database success", g_iConnections, dbdata[db]);

    SQL_FreeHandle(g_hTuple);
    SQL_FreeHandle(sConnection);
}
а это правильно что вы закрываете соедение SQL_FreeHandle(g_hTuple);?

повторно закрываем закрытый соеденение?
Код:
public plugin_end() {
    if (g_hTuple != Empty_Handle) {
        SQL_FreeHandle(g_hTuple);
    }
}
 

cpCTRL

bruh
Скриптер
Постоялец
Регистрация
20 Фев 2018
Сообщения
263
Симпатии
65
Пол
Мужской
Limbooc, форум чуть-чуть бросили, обнову залил еще вчера.Безымянный.png
 

Limbooc

Пользователь
Регистрация
24 Июл 2017
Сообщения
15
Симпатии
-2
имеется ли лимит хранение Unique key (в стуктуре БД)?, есть мысль сделай ачивку на основе этого плагина, ачивка хранить больше >100 ячеейк



также думаю целесобразно удалить ячейку в БД об игроке перед тем как занести INSERT, тем самым у вас не будет проблем в плане занесение если были какието изменение
 

Limbooc

Пользователь
Регистрация
24 Июл 2017
Сообщения
15
Симпатии
-2
UPDATE:

целесобразнее удалить ячейку об игроке в ThreadHandler Load_Player после получение данных, а в save_values оставить только INSERT
 

cpCTRL

bruh
Скриптер
Постоялец
Регистрация
20 Фев 2018
Сообщения
263
Симпатии
65
Пол
Мужской

fantom

Разработчик
Регистрация
11 Июн 2017
Сообщения
426
Симпатии
293
Пол
Мужской
Тут бы пригодился модуль для работы с монгоДБ, так как это хранилище куда целесобразней использовать в данном случае. Увы и ах, кс комьюнити дальше mysql врят ли пойдет еще лет 5. Поэтому такие костыли.
 
Сверху Снизу