Go to tabletopsimulator
[question] I keep on getting p2p connection error while attempting to play with my brother. How do I fix this?
So we live in the same house, SEA region, rather good internet connection.
When we first play, we started by playing duke and there was no problem. But then, we try bigger game like dead of winter and red dragon inn. What happened next is just constant disconnecting.
The system log only shows Steam P2P session failed with [player name]. If he host, I get disconnected. If I host, he get disconnected. It’s pretty frustrating not being able to play due to all this connection failure.
Any help would be appreciated.
1.tabletop simulator (лицензия)
2.у друга не загружаются настолки из воркшопа, выдаёт ошибку bad connection
3.
9 июня 2018 — 16:36 #2
Законопослушный гражданин Сообщений: 718 , Симпатий: 3638 , Трофеев: 31
Bad connect= плохое соединение. в след раз используй переводчик если не знаешь английского
9 июня 2018 — 17:35 #3
steam must be running to play this game (steamAPI_int() failed) решение для пиратских игр
Прародитель живого Сообщений: 8663 , Симпатий: 5609 , Трофеев: 33
В чате написано что у тебя нет какого-то DLC и поэтому загрузка невозможна. Может в этом проблема?
Англ. конечно не все знают, но тут вроде простейший текст.
Источник: coop-land.ru
Для одного игрока
Против игроков (по сети)
Против игроков (общий экран)
Кооператив (по сети)
Кооператив (общий экран)
Кроссплатформенная игра
Достижения Steam
Контроллер (полностью)
Отслеживание контроллеров
Поддержка VR
Коллекционные карточки
Мастерская Steam
Решение проблемы на тп Steam
Steam Cloud
Включает редактор уровней
Remote Play Together
Поддерживаемых языков: 1
Интерфейс Озвучка Субтитры
русский | Не поддерживается |
английский | ✔ |
Название: Tabletop Simulator
Жанр: Казуальные игры, Инди, Ролевые игры, Симуляторы, Стратегии
Разработчик: Berserk Games
Издатель: Berserk Games
Дата выхода: 5 июн. 2015
Обсуждения в сообществе Steamnbsp public void StartSession(List clientsId)
При первой отправке сообщения, и возможно ещё в каких то ситуациях, должно произойти рукопожатие. В документации этот момент описан так:
«Если у нас еще нет сеанса с этим пользователем, сеанс создается неявно. Возможно, должно произойти некоторое рукопожатие, прежде чем мы действительно сможем начать отправлять данные сообщений.»
Для этого создаем метод, который будет отвечать на это рукопожатие:
void SteamNetworkingMessagesSessionRequest(SteamNetworkingMessagesSessionRequest_t request) < CSteamID clientId = request.m_identityRemote.GetSteamID(); //Получаем SteamID того кто пытается пожать нам руку if (ExpectingClient(clientId)) < //Создаем сущность SteamNetworkingIdentity для подтверждения рукопожатия var client = new SteamNetworkingIdentity(); client.SetSteamID(clientId); SteamNetworkingMessages.AcceptSessionWithUser(ref request.m_identityRemote); >else < //Выдаем ошибку, если к нам пытается подключиться кто-то нам не знакомый Debug.LogWarning(«Unexpected session request from » + clientId); >>
Где ExpectingClient это метод который вернет true если мы готовы этому пользователю «пожать руку». В моём случае выглядит так:
bool ExpectingClient(CSteamID clientId)
Для того чтобы наш метод SteamNetworkingMessagesSessionRequest обрабатывался, нам надо при старте создать поле обратного вызова:
private Callback _p2PSessionRequestCallback; void Start() < _p2PSessionRequestCallback = Callback.Create(SteamNetworkingMessagesSessionRequest); >
Теперь можно попыться что-то отправить:
public void SendMessage(CSteamID clientId, Package package) < //Создаем индетефикатор пользователя, которому хотим отправить сообщение var client = new SteamNetworkingIdentit(); client.SetSteamID(clientId); IntPtr _pInt_buffer = Marshal.AllocCoTaskMem(Marshal.SizeOf(package)); // выделили кусочек памяти Marshal.StructureToPtr(package, _pInt_buffer, false); // записали содержимое uint cubData = (uint)Marshal.SizeOf(package); //размер сообщения int sendflag = 1; //флаг отправки EResult result = SteamNetworkingMessages.SendMessageToUser(ref client, _pInt_buffer,cubData,sendflag,0); // Debug.LogWarning(«send message to: » + client.ToString()+»result: «+result+» size: «+cubData); >
В этом методе cubData это размер пересылаемого сообщения. sendflag это флаг, используемый для отправки сообщений. Может быть следующий:
- 0 — отправляет сообщение ненадежно. Сообщение может быть потеряно;
- 1 — тоже самое что и 0, но с отключенным алгоритмом Nagle;
- 4 — Если сообщение не может быть отправлено очень скоро (потому что соединение все еще делает некоторые первоначальные рукопожатия, переговоры о маршруте и т. Д.), То просто отбрасывает его;
- 8 — Надежная отправка сообщений.
И последняя цифра, это номер канала, на котором мы передаем сообщение (в случае если не хотите использовать эту фичу, ставте 0). SendMessageToUser возвращает результат в виде сущности EResult , её можно вывести в дебаг.
Чтобы не заморачиваться я просто отправляю сообщения всем клиентам (разумеется кроме себя):
public void SendMessageAllClients(Package package) < foreach (var client in ClientsId) < SendMessage(client, package); >>
Отправить это конечно хорошо, но надо бы и что то получить. Тут немного сложнее. Для чтения используется метод:
SteamNetworkingMessages.ReceiveMessagesOnChannel(0, outMessages, readPacketCount)
В котором первая цифра, это тот самый номер канала, outMessages это массив принятых сообщений (за раз их может несколько),а readPacketCount это, как раз, максимальное количество сообщений, которое мы хотим прочитать.
В итоге чтение будет выглядеть примерно так:
public int readPacketCount = 10; public List ReadMessages() < Listpackages = new List(); IntPtr[] outMessages = new IntPtr[400]; //Размер массива указал на абум, вообще надо по readPacketCount int countMessage = SteamNetworkingMessages.ReceiveMessagesOnChannel(0, outMessages, readPacketCount); if(countMessage>0) < for(int i=0;i(t); packages.Add(package); > > return packages; >
Не забудьте, что поле message в нашей структуре фиксированного размера, а записываемая в него информация нет. Поэтому для правильной десериализации потребуется дополнительный буффер и метод Buffer.BlockCopy . У меня это все происходит при переконвертации из структуры в класс.
На этом в принципе и всё. Далее потребуется ещё какой-нибудь класс, который будет управлять всеми этими функциями, но это тема уже отдельной статьи.
Источник: habr.com
I have had this game for quite a while now, and I’ve always been able to play with my friends. During this last sale, I bought it for my girlfriend. However, neither she nor I can join each other’s games and testing on the server browser, it seems I can’t join any game at all. I tried following to the best of my capabilities the “Having Issues?” pinned Thread on Steam Discussions. The game seems to even refuse to create a proper log. I suppose I did create the output rule for the ports in question, but to no avail. I’d love to have someone work this through with me.
Основная информация:
Когда возникла проблема: день назад, продолжается до сих пор
Операционная система: Windows 7
Мобильный оператор: Билайн
Как раздаётся интернет: с телефона на компьютер через провод
На каких играх пробовал: Barotrauma, Helldivers (другие игры тоже не будут работать, технология одна и та же)
В качестве решения НЕ предлагать перейти на проводной или прочий интернет, живу в «глуши», нет никакой возможности это сделать
Никаких проблем с другими приложениями нет. Сетевых настроек не трогал. Приложений не ставил. Всё произошло спонтанно.
Как решал проблему:
- Пытался выключать приложения на пк, чтобы найти проблемное. Когда выключил Discord, ошибка steam p2p connection failed пропала и я смог подключаться к игровым серверам. Но позже ошибка всё равно вернулась. Не важно, включён ли дискорд или нет. То заходит на сервер, то снова ошибка.
- Конечно же гуглил, но проблема довольно нишевая и найти решения не удалось. Люди писали, что у них сбоил провайдер. Обычно при таких случаях я бы увидел много недавних постов о сбоях, но их нет. Также люди предлагали переустановить стим, пробовал, не помогло. Удалял моды, загруженные из воркшопа — не помогло.
- Проверял, работает ли P2P соединение через торрент (работает).
- Перезагружал компьютер, перезагружал телефон, перезагружал одновременно и то, и то, перезагружал интернет.
- Проверял, находятся ли необходимые для работы стима адреса или айпишники в реестре запрещённых сайтов. Информацию брал с официального сайта стима («Порты, необходимые для работы Steam»).
Пожалуйста, направьте меня в нужное русло. Где копать?
-
Вопрос задан08 мая
-
214 просмотров
Билайн переодически срезает p2p коннекты… может длиться сутки — может неделю, как повезет. то ли чет перенастраивают, то ли (подозреваю) разгружают переизбыток трафика…
решение — включить полный VPN. мне опенВПН помогал в таких случаях
идеальный вариант сменить провайдера, но не факт что он тоже не будет это зарезать
Пригласить эксперта
Мобильный оператор: Билайн
Этим всё сказано. Мегафон в тарифах большими буквами про торренты и подобный трафик пишет, что ограничения.
Я думаю у других операторов так же. Может не явно, но проблемы будут. Тоже самое для VPN
Возможно заблокирован доступ для пользователей из РФ или наоборот Билайн заблокировал сети этих серверов.
-
Показать ещё
Загружается…
29 мая 2023, в 06:54
5000 руб./за проект
29 мая 2023, в 06:37
1500 руб./за проект
29 мая 2023, в 06:23
15000 руб./за проект
Минуточку внимания
This web browser is either blocking scripts or does not support JavaScript.
How to turn on JavaScript
Steam P2P Session Failed With Tabletop Simulator 06 май 2023
Microsoft Sway