Если честно, не особо понял логики, объясняющей использование ника игроков в запросе. Пишешь, что если делать через ID, то подключать библиотеку будет сложнее, но, при этом, уже нагородил и перехват пакетов с изменением ника, и функцию VK_SetNewName, которую, видимо, нужно использовать всякий раз, когда сервер меняет ник игроку. Собственно, а что мешало сделать вместо всего этого такую же функцию, которая бы передавал ID аккаунта игрока? Уж описать то, как получить ID игрока в случае, если по каким-то причинам этот самый ID люди не получают в своих модах, гораздо проще, чем обязывать их не забывать использовать всякий раз VK_SetNewName или же писать перехват для SetPlayerName.
А если уж прямо принципиально не хочется ничего объяснять, то можно написать простенькую функцию, в качестве параметров которой нужно будет передать имя таблицы аккаунтов, имя столбца с ником и имя столбца с ID аккаунта. И уже внутри инклуда отправить нужный запрос.
Ну и стоит описать все новые функции в шапке темы. А так же стоит поработать над уникальностью имён функций/переменных внутри инклуда, ибо названия, а-ля: "_SendRequest", - явно не тянут на какую-то уникальность.
VK Security Cистема защиты игрового аккаунта
#23
Отправлено 26 января 2022 - 10:17
Examplio (25 января 2022 - 23:25) писал:
При новом подключении игрока, все равно бы пришлось делать запрос к базе по нику. Какой тогда смысл в этом?)
Эмм, с чего это вдруг? Система аккаунтов в моде, при входе игрока, подгружает ID его аккаунта. Мы этот ID воруем и далее используем уже его для того, чтоб привязать данные в таблицах к конкретному игроку. В результате у нас и запросы обрабатываются более быстро, и размер таблиц получается гораздо меньший, и не нужно воротить кучу перехватов, добавлять зависимость от стороннего плагина. Вот какой в этом смысл.
UPD: А если речь о том, что сама система аккаунтов, при первом подключении, ищет аккаунт по нику, то это уже вынужденное зло, которое не говорит о том, что теперь и все остальные запросы, связанные с аккаунтом, можно и нужно производить через ник. Сравнивать текст, при поиске нужных данных в таблице, априори дольше, чем сравнивать числа.
Сообщение отредактировал DeimoS: 26 января 2022 - 10:23
#25
Отправлено 31 января 2022 - 15:22
Не очень понимаю сути придирки к словам. Суть ведь не конкретно в зависимости от плагина, а в том, что реализация через ник не только в плане потребления ресурсов хуже, но и в том плане, что добавляет скриптеру головной боли, ведь даже если я не буду пользоваться плагином - мне всё равно тогда придётся работать с VK_SetNewName.
Точнее, суть в том, что реализация через ID все эти проблемы решает, уменьшая и потребление ресурсов скриптом, и количество требуемых действий от скриптера для подключения и поддержки твоего скрипта.
Ну и, к слову, ещё одна проблема твоей текущей реализации:
Как известно, в SAMP максимальная длина ника - 24 символа. При этом, игрок может использовать только 20, а оставшиеся 4, можно сказать, оставлены для возможности добавления префиктов. Переходим к сути.
Если я напишу, например, AFK-систему, в которой у игрока будет изменяться ник на "AFK_ник" (а такие системы, как минимум, раньше встречались), то твоя текущая реализация с перехватом пакетов, будет ловить подобную смену ника и добавлять этот префикс в таблицу скрипта. И если игрок, вставший в АФК, выйдет с сервера, не заходя в игру - в таблице твоего скрипта так и останется запись с префиксом :)
Точнее, суть в том, что реализация через ID все эти проблемы решает, уменьшая и потребление ресурсов скриптом, и количество требуемых действий от скриптера для подключения и поддержки твоего скрипта.
Ну и, к слову, ещё одна проблема твоей текущей реализации:
Как известно, в SAMP максимальная длина ника - 24 символа. При этом, игрок может использовать только 20, а оставшиеся 4, можно сказать, оставлены для возможности добавления префиктов. Переходим к сути.
Если я напишу, например, AFK-систему, в которой у игрока будет изменяться ник на "AFK_ник" (а такие системы, как минимум, раньше встречались), то твоя текущая реализация с перехватом пакетов, будет ловить подобную смену ника и добавлять этот префикс в таблицу скрипта. И если игрок, вставший в АФК, выйдет с сервера, не заходя в игру - в таблице твоего скрипта так и останется запись с префиксом :)
Сообщение отредактировал DeimoS: 31 января 2022 - 15:23
#26
Отправлено 16 марта 2022 - 16:28
спасибо, уважаемые пользователи, трудился над плагином месяц :D
#28
Отправлено 10 мая 2022 - 18:54
Обновление 3.0.0:
Немного измененная установка веб-части:
Настройка базы данных для веб-части:
UPD: Главная шапка в начале темы обновлена :)
Скачать:
Github
Yandex.Disk
- Новая функция-проверка: VK_IsConfirmed. Возвращает 1 если у пользователя активирована защита ВК, иначе 0. Параметры: playerid
- Новая функция-проверка: VK_isLogged. Возвращает 1 если пользователь подтвердил вход через ВКонтакте, иначе 0. Параметры: playerid
- Добавление в мод паблика "VK_OnLoginDetected" позволит получать событие подтверждения через ВКонтакте. Полезно когда нужно произвести действие после того как пользователь подтвердит вход. Параметр: playerid
- Полностью изменена веб-часть скрипта, больше нет зависимости от сторонней библиотеки, оптимизирован код.
- Исправлены баги, изменены названия на более понятные, проведена оптимизация скрипта.
Немного измененная установка веб-части:
- Заходим в группу, через которую будет работать наш бот.
- Переходим в Управление -> Работа с API -> Создать ключ. (Создаем ключ с правами на сообщения сообщества )
- После получения ключа, его следует указать в client/config/config.php, строка: 3.
- После процедуры переходим во вкладку "Callback API".
- Выбираем последнюю версию API -> 5.131.
- В "адрес" указываем прямую ссылку на файл _main.php на Вашем сайте. ( Пример: example.com/_main.php )
- Находим: "Строка которую должен вернуть сервер", копируем и вставляем его как подтверждающий ключ в файл client/config/config.php , строка: 4.
- Сохраняем файл client/config/_config.php и обновляем его на сайте. После чего нажимаем: "Подтвердить".
- Если Вы все сделали правильно, то ВК подтвердит Ваш сайт.
- Если у Вас не получается, Вы можете обратится за помощью ко мне. Написав тут или в личные сообщения ВКонтакте.
Настройка базы данных для веб-части:
- Открываем файл по пути: client/config/config.php
- Указываем адрес базы данных (хост): строка 7
- Указываем имя пользователя базы данных (хост): строка 8
- Указываем пароль базы данных (хост): строка 9
- Указываем имя таблицы базы данных (хост): строка 10
UPD: Главная шапка в начале темы обновлена :)
Скачать:
Github
Yandex.Disk
Сообщение отредактировал Examplio: 11 мая 2022 - 01:25
#30
Отправлено 12 мая 2022 - 04:37
Вход
Регистрация
Помощь









