- 0
Войдите для возможности подписаться
Подписчики
0
Вопросы
Лучший ответ
В
@OnPlayerReferal
после
strmid(pInfo[playerid][pReferal], inputtext, 0, strlen(inputtext), MAX_PLAYER_NAME);
добавьте:
RegisterBlocker[playerid][2] = 1;
Эта тема закрыта для публикации ответов.
Войдите для возможности подписаться
Подписчики
0
-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
-
Похожий контент
-
От Gabriel C
Всем привет. Ищу клиентскую сборку Flin RP для ПК.
Нужна полноценная версия клиента со всеми необходимыми файлами для запуска игры и подключения к серверу.
Желательно сборку примерно 2023 года, так как по имеющимся файлам видно, что обновления клиента и систем Real Cars / Real Skins были сделаны в начале 2023 года.
Нужна именно ПК-сборка/клиент Flin RP:
лаунчер (если был); папка с игрой; ASI/плагины; cache/modpack с моделями. Если у кого-то осталась рабочая сборка или архив клиента — буду благодарен за помощь.
-
От Gabriel C
Здравствуйте.
У меня есть gamemode и серверные файлы Flin RP, в которых используется система проверки клиента через auth_key для определения версии клиента и включения функций вроде Real Cars, Real Skins и других кастомных возможностей.
В gamemode используется проверка через RPC_ClientJoin и сравнение полученного auth_key со списком разрешённых версий клиента.
Мне нужно понять, как работает эта система и что именно отвечает за отправку данного ключа от клиента к серверу.
Интересует помощь в создании или настройке ASI-модуля, который будет корректно отправлять нужный auth_key, чтобы сервер определял клиент как поддерживаемую версию и включал необходимые функции.
Также хотелось бы понять как правильно сделать совместимость с системой проверки клиента для Flin RP.
Буду благодарен за объяснение принципа работы или пример реализации.
Прикрепил архив с необходимыми include-файлами
В архиве находятся файлы:
custom_models.inc custom_packets.inc custom_sync.inc perplayer.inc Это файлы, которые используются в gamemode для работы с кастомным клиентом, моделями, пакетами и синхронизацией.
Прикладываю их для ознакомления, чтобы было проще разобраться в структуре системы и понять, как реализована связь между сервером и клиентом.
raknet.rar
-
От Badr
Как добавить скины и машины с аризона рп на сервер самп , , я играю с serverconnect там не могу выдать скин больше 319, помогите пж
-
ShHyp0k Освоившийся 5
Вот на сервере при регистрации говорит "Введите реферал" - жму "От игрока этого сервера". Далее ввожу ник основы, жму "продолжить", а мне говорит "Вы не указали реферал". Видео
public OnPlayerClickTextDraw(playerid, Text:clickedid) { new bizid = GetPVarInt(playerid,"TuningBizID"); new till = BizInfo[bizid][bTill]; new string[1024]; if(clickedid == Text:RegistDraw[16]) { if(RegisterBlocker[playerid][0] == 0) return SendClientMessage(playerid, 0xAFAFAFFF, "Вы не ввели пароль"); if(RegisterBlocker[playerid][1] == 0) return SendClientMessage(playerid, 0xAFAFAFFF, "Вы не указали Mail"); if(RegisterBlocker[playerid][2] == 0) return SendClientMessage(playerid, 0xAFAFAFFF, "Вы не указали реферал"); if(RegisterBlocker[playerid][3] == 0) return SendClientMessage(playerid, 0xAFAFAFFF, "Вы не выбирали пол"); for(new i; i != 23; i++) TextDrawHideForPlayer(playerid, RegistDraw[i]); CancelSelectTextDraw(playerid); ClothesRound[playerid] = 1; SendClientMessage(playerid, COLOR_LIME, "Выберите одежду для вашего будущего персонажа:"); SetHealth(playerid, 100); SetHunger(playerid, 100); gPlayerLogged[playerid] = true; SpawnPlayerEx(playerid); } if(clickedid == Text:RegistDraw[11]) { if(RegisterBlocker[playerid][3] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже выбирали пол"); ShowPlayerDialog(playerid, dSex, 0, "{FFCC00}Выбор пола", "{ffffff}Выберите пол Вашего персонажа", "Мужской", "Женский"); } if(clickedid == Text:RegistDraw[9]) { if(RegisterBlocker[playerid][2] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже вводили реферал"); ShowPlayerDialog(playerid, dReferal, DIALOG_STYLE_LIST, "{FFCC00}Откуда Вы узнали о сервере?", "\ 1. На порталах/форумах\n\ 2. От игрока этого сервера\n\ 3. На мониторинге серверов\n\ 4. Через YouTube\n\ 5. В поисковике\n\ 6. Вкладка hosted\n\ 7. Сообщество ВКонтакте\n\ 8. Другое", "Далее", "Отмена" ); } if(clickedid == Text:RegistDraw[7]) { if(RegisterBlocker[playerid][1] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже ввели Mail"); ShowPlayerDialog(playerid, dJob+6, 1, "{FFCC00}Электронная почта", "\ {ffffff}Введите Ваш e-mail адрес, за которым будет закреплён данный аккаунт.\n\ Если вы потеряете доступ к аккаунту, то с помощью e-mail вы сможете восстановить его.", "Далее", "Отмена" ); } if(clickedid == Text:RegistDraw[13]) { if(RegisterBlocker[playerid][0] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже ввели пароль"); stringer[0] = EOS; format(stringer, 512, "\ {FFFFFF}Добро пожаловать на сервер проекта {FFCC00}"SERVER_NAME".\n\n\ {FFFFFF}Аккаунт с логином {63BD4E}%s {FFFFFF}ещё не зарегистрирован на этом сервере.\n\ Для того чтобы начать игру необходимо пройти регистрацию.", GetName(playerid)); ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_MSGBOX, "{FFCC00}Регистрация", stringer, "Далее", "Отмена"); }case dReferal: { if(!response) { SendClientMessage(playerid, COLOR_RED, PlayerNeedToLoggedForToPlay); return Kick(playerid); } if(listitem != 1) { static const list_search[8][32] = {"На порталах/форумах","None","На мониторинге серверов","Через YouTube","В поисковике","Вкладка hosted","Сообщество ВКонтакте","Другое"}; strmid(pInfo[playerid][pSearchServ], list_search[listitem], 0, strlen(list_search[listitem]), 32); strmid(pInfo[playerid][pReferal], list_search[1], 0, strlen(list_search[1]), MAX_PLAYER_NAME); RegisterBlocker[playerid][2] = 1; } else ShowPlayerDialog(playerid, dReferal+1, 1, "{FFCC00}Реферальная система", "{ffffff}Если Вы пришли на сервер по приглашению игрока, укажите его ник в поле ниже.\nВ качестве вознаграждения он получит {63BD4E}50.000$ {FFFFFF}после того как Вы достигнете {EAD86A}4 уровня.\n\n{FFFFFF}Если Вы узнали о сервере не от игрока, либо нашли сервер сами,\nто вернитесь назад и укажите другой вариант.", "Указать", "Назад"); } case dReferal+1: { if(!response) return ShowPlayerDialog(playerid, dReferal, DIALOG_STYLE_LIST, "{FFCC00}Откуда Вы узнали о сервере?", "1. На порталах/форумах\n2. От игрока этого сервера\n3. На мониторинге серверов\n4. Через YouTube\n5. В поисковике\n6. Вкладка hosted\n7. Сообщество ВКонтакте\n8. Другое", "Далее", "Отмена"); if(!(3 <= strlen(inputtext) <= MAX_PLAYER_NAME)) return ShowPlayerDialog(playerid, dReferal+1, 1, "{FFCC00}Реферальная система", "{ffffff}Если Вы пришли на сервер по приглашению игрока, укажите его ник в поле ниже.\nВ качестве вознаграждения он получит {63BD4E}50.000$ {FFFFFF}после того как Вы достигнете {EAD86A}4 уровня.\n\n{FFFFFF}Если Вы узнали о сервере не от игрока, либо нашли сервер сами,\nто вернитесь назад и укажите другой вариант.", "Указать", "Назад"); if(IsTextRussian(inputtext) || IsLoginInvalid(inputtext)) { SendClientMessage(playerid, COLOR_GREY, "Использовать русские символы запрещено!"); return ShowPlayerDialog(playerid, dReferal+1, 1, "{FFCC00}Реферальная система", "{ffffff}Если Вы пришли на сервер по приглашению игрока, укажите его ник в поле ниже.\nВ качестве вознаграждения он получит {63BD4E}50.000$ {FFFFFF}после того как Вы достигнете {EAD86A}4 уровня.\n\n{FFFFFF}Если Вы узнали о сервере не от игрока, либо нашли сервер сами,\nто вернитесь назад и укажите другой вариант.", "Указать", "Назад"); } mysql_query_string[0] = EOS; format(mysql_query_string, 128, "SELECT * FROM "T_ACCOUNTS" WHERE name = '%s' LIMIT 1", inputtext); mysql_tquery(dbHandle, mysql_query_string, "@OnPlayerReferal", "is", playerid, inputtext); }@OnPlayerReferal(playerid, inputtext[]); @OnPlayerReferal(playerid, inputtext[]) { #if MYSQL_R41_2 == true new rows; cache_get_row_count(rows); #else new rows, fields; cache_get_data(rows, fields); #endif if(!rows) { ShowPlayerDialog(playerid, dReferal+1, 1, "{FFCC00}Реферальная система", "{ffffff}Если Вы пришли на сервер по приглашению игрока, укажите его ник в поле ниже.\nВ качестве вознаграждения он получит {63BD4E}50.000$ {FFFFFF}после того как Вы достигнете {EAD86A}4 уровня.\n\n{FFFFFF}Если Вы узнали о сервере не от игрока, либо нашли сервер сами,\nто вернитесь назад и укажите другой вариант.", "Указать", "Назад"); return SendClientMessage(playerid, COLOR_GREY, "Игрок с таким ником не играет на этом сервере!"); } strmid(pInfo[playerid][pReferal], inputtext, 0, strlen(inputtext), MAX_PLAYER_NAME); ShowPlayerDialog(playerid, dSex, 0, "{FFCC00}Выбор пола", "{ffffff}Выберите пол Вашего персонажа", "Мужской", "Женский"); return 1; }Отредактировано пользователем DEST
Поделиться сообщением
Ссылка на сообщение