При хостинг поддержке Интернет-сообщества VBIOS CS-Mapping.com.ua
Вернуться   CS-Mapping.com.ua > Forum > Картостроение > Модострой
Ник
Пароль
Регистрация Правила форума FAQ Пользователи Администрация Календарь Поиск За 24 часа Пометить все разделы прочитанными

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.11.2017, 17:45  #41
a1batross
a1batross
Старшина
Регистрация: 06.01.2015
Адрес: Москва
Возраст: 19
Сообщения: 410


По умолчанию

2 SNMetamorph:
я какие-то отрывки информации видел в HLSDK 2.3. В остальном разбирался вдумчиво читая код Xash3D.

Чтобы кто-то на форумах около-голдсорсных писал что-то о неткоде я не видел. Может плохо искал.
a1batross сейчас на форуме Ответить с цитированием
Старый 21.11.2017, 14:57  #42
SNMetamorph
SNMetamorph
Рядовой
Регистрация: 09.11.2017
Сообщения: 20


По умолчанию

Снова проблемы.
Задаю флаги игроку в PreThink().
Передаю игроку флаги через UpdateClientData().

Проверяю флаг вот так:
Код:
void PM_PlayerMove() 
{
			if (pmove->cmd.buttons & IN_JUMP)
				if (pmove->iuser4 & FL_INWALLJUMP)
	                            PM_WallJump();
}
И бывает, что периодически не срабатывает. Эффект такой, будто фрейм с нужным флагом где-то теряется. Этот баг проявляет себя только на дедике (тестил на локальном, без фейклаг/лосса). Если создать сервер через игру, то такого не происходит, по крайней мере у хоста, но мне кажется у других игроков точно так же будет проявляться.
Где же теперь моя криворукость проявила себя?

Есть какие-либо другие методы по реализации данной фичи?

Последний раз редактировалось SNMetamorph, вчера в 11:25.
SNMetamorph вне форума Ответить с цитированием
Старый сегодня, 10:59  #43
SNMetamorph
SNMetamorph
Рядовой
Регистрация: 09.11.2017
Сообщения: 20


По умолчанию

Таки пофиксил. Проблема была в том, что записывал/читал флаги я в поле класса CBasePlayer, а в UpdateClientData() присваивал iuser4 значение этого поля. Выпилил поле из класса, начал писать флаги из кода напрямую в pev->iuser4, и всё стало нормально работать.
SNMetamorph вне форума Ответить с цитированием
Старый сегодня, 11:49  #44
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,111


По умолчанию

2 SNMetamorph: UpdateClientData тоже разный бывает. Тот что внутри класса игрока старается обновляться пореже, экономя траффик.
Дядя Миша вне форума Ответить с цитированием
Старый сегодня, 15:51  #45
SNMetamorph
SNMetamorph
Рядовой
Регистрация: 09.11.2017
Сообщения: 20


По умолчанию

Опять какой-то косяк.
Сервер поднимал на дедике.
Код:
void CBasePlayer::PreThink()
{
		if (FBitSet(pev->flags, FL_ONGROUND))
			m_flStamina += 4 * SI_STAMINA_MULT * gpGlobals->frametime;
		else
			m_flStamina += SI_STAMINA_MULT * gpGlobals->frametime;
}
При таком раскладе скорость пополнения стамины начинает зависить от фреймрейта клиента. Больше ФПС - больше скорость. Как это компенсировать?
SNMetamorph вне форума Ответить с цитированием
Старый сегодня, 16:06  #46
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 12,111


По умолчанию

Дык это извечная халфовская проблема - толстый канал соединения, больше фпс, вот это всё. Ну добавляй через время, дискретно. Типо прошла секунда - +1 к стамине.
Дядя Миша вне форума Ответить с цитированием
Ответ

Здесь присутствуют: 3 (пользователей - 1 , гостей - 2)
a1batross
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 23:36.


Designed by FT-502, TRUP@C. Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2017 by CS-Mapping.com.ua Community