HLFX.Ru Forum
Показать все 28 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- [XashXT] Скорость игрока по диагонали. (https://hlfx.ru/forum/showthread.php?threadid=4402)


Отправлено ILZM 17-05-2014 в 16:54:

[XashXT] Скорость игрока по диагонали.

Добрая ночь.
На этом форуме уже говорили про это, да и решение вроде показывали. Суть проблемы, а может быть и фичи, в том, что когда игрок бежит по диагонали, зажав IN_FORWARD & IN_RIGHT, его скорость суммируется и он бежит быстрее, чем sv_maxspeed. Как это исправить? Не это ли в playermove.cpp?

C++ Source Code:
if (wishspeed > pmove->maxspeed)
{
  wishvel *= ( pmove->maxspeed / wishspeed );
  wishspeed = pmove->maxspeed;
}


Отправлено Cybermax 17-05-2014 в 17:52:

Это такая шутка?

__________________


Отправлено Government-Man 17-05-2014 в 17:53:

По-моему в ксаше если зажать вперед и вбок игрок будет бежать с нормальной скоростью...


Отправлено -=DrTressi=- 17-05-2014 в 18:15:

Cybermax Нет, это не совсем то. Для распрыжки клавиша "Вперёд" вообще не юзается.

__________________
How interesting, just look at that!
© Scientist


Отправлено tolerance 17-05-2014 в 18:33:

Я всегда считал, что корень этой "проблемы" лежит в том, что игровое пространство — "сетка" координат, как и тетрадный лист:

Ну вообщем, диагональ. Остюда и long-jump'ы, распрыжки и всё такое.


Отправлено Дядя Миша 17-05-2014 в 19:30:

а зачем вы зажимаете две кнопки? Неудобно же.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено JPEG 17-05-2014 в 21:57:

Цитата:
Дядя Миша писал:

ну как же, во время ходьбы вперед часто нужно нажимать влево или вправо и получается ускорение

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))


Отправлено ILZM 18-05-2014 в 08:30:

А если вообще при этом поворачивать мышкой, то скорость становится ещё больше. Так чё делать?

Добавлено 18-05-2014 в 12:30:

Government-Man, я тоже так думал, да и код вроде такой, но на практике нету...


Отправлено ~ X ~ 18-05-2014 в 10:03:

Я бы сказал, скалярная скорость возрастает примерно в 1.4142 раза. Так и есть, никто вектор движения не нормализует по св_максспиид. То же самое на лестнице - я у себя скорость взбирания понизил, но если жать две клавиши, можно ускориться.
Проблема решабельна, но противно копаться в этом быдлокоде движения.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено -=DrTressi=- 18-05-2014 в 10:33:

~ X ~ На сорсе кстати это так и не профикшено. Если держать вперёд и вбок игрок взбирается по лесенке гораздо быстрее.

__________________
How interesting, just look at that!
© Scientist


Отправлено Cybermax 18-05-2014 в 12:53:

Цитата:
-=DrTressi=- писал:
Cybermax Нет, это не совсем то. Для распрыжки клавиша "Вперёд" вообще не юзается.

Цитата:
ILZM писал:
А если вообще при этом поворачивать мышкой, то скорость становится ещё больше. Так чё делать?


Что это если не разпрыжка?

Добавлено 18-05-2014 в 16:53:

ILZM не надо фиксить, лучше сделай распрыжку как в quake2
http://vrgames.by/publ/quake-2-esch...ryukov-na-q2dm1

__________________


Отправлено Дядя Миша 18-05-2014 в 13:15:

Цитата:
~ X ~ писал:
Проблема решабельна, но противно копаться в этом быдлокоде движения.

И это говорит человек, который у себя в XDM всё-всё переписал?
Помоему называть быдлокодом всё, что недоступно твоему пониманию - это отличная иллюстрация к басне "Лиса и виноград".

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено -=DrTressi=- 18-05-2014 в 14:25:

Цитата:
Cybermax писал:
Что это если не разпрыжка?

Опять начинается спор из-за какого-то говна. Ну не распрыжка это. Другой механизм.

__________________
How interesting, just look at that!
© Scientist


Отправлено Cybermax 18-05-2014 в 15:26:

Цитата:
-=DrTressi=- писал:
Опять начинается спор из-за какого-то говна. Ну не распрыжка это. Другой механизм.


Ладно не злись. Просто ты говоришь что это не распрыжка а я говорю что она
Игроки довольно быстро обнаружили, что прыжок по диагонали с одновременным разворотом мыши в соответствующую сторону даёт заметное увеличение скорости передвижения и дальности прыжка.

__________________


Отправлено ~ X ~ 18-05-2014 в 15:44:

Распрыжки, фуфлыжки. Задроты. -_-
Хотя, помню, в компьютерных клубах попадались такие читеры-эксплойтеры. К счастью, они быстро выпиливались остальными игроками ИРЛ А вот по интернету только бокс по переписке...

Цитата:
Дядя Миша писал:
Помоему называть быдлокодом всё, что недоступно твоему пониманию - это отличная иллюстрация к басне "Лиса и виноград".

По-моему беспочвенно комментировать чужое субъективное мнение - отличная иллюстрация твоей персоны.
Потому что я называю быдлокодом ВСЁ. Если ты ещё не понял.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Ghoul [BB] 18-05-2014 в 16:02:

А в чём суть вопроса-то? Ну есть распрыжка, и пусть будет. Лучше бы что-то более полезное наБЫДЛОкодили.

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


Отправлено Cybermax 18-05-2014 в 16:18:

Цитата:
Ghoul [BB] писал:
А в чём суть вопроса-то? Ну есть распрыжка, и пусть будет. Лучше бы что-то более полезное наБЫДЛОкодили.


Ну есть bunny hopping, strafe jump а есть aerocontrol. Все эти фичи способны увеличить динамику игры и привлечь новых людей. Лично я этой темой давно интересуюсь и мне хотелось бы дальнейшего развития её и доведения до логического конца так сказать.

__________________


Отправлено Дядя Миша 18-05-2014 в 16:21:

Цитата:
~ X ~ писал:
Потому что я называю быдлокодом ВСЁ. Если ты ещё не понял.

Но свой-то код не считаешь быдлокодом?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ILZM 18-05-2014 в 16:24:

Воу воу, посоны, палехче .

Тут решение или совет нужен.

Cybermax, ну почти, только не прыгает).


Отправлено ILZM 20-05-2014 в 05:03:

Нашёл участок кода, который отвечает за это, но он нерабочий.

C++ Source Code:
1
// clip to maxspeed
2
spd = gEngfuncs.GetClientMaxspeed();
3
if( spd != 0.0f )
4
{
5
  // scale the 3 speeds so that the total velocity is not > cl.maxspeed
6
  float fmov = sqrt(( cmd->forwardmove * cmd->forwardmove) + (cmd->sidemove * cmd->sidemove) + (cmd->upmove * cmd->upmove));
7
 
8
  if( fmov > spd )
9
  {
10
    float fratio = spd / fmov;
11
    cmd->forwardmove *= fratio;
12
    cmd->sidemove *= fratio;
13
    cmd->upmove *= fratio;
14
  }
15
}

И всё дело в gEngfuncs.GetClientMaxspeed(), т. к. оно возвращает 0. В чём дело с этой функцией?


Отправлено ~ X ~ 20-05-2014 в 07:06:

ILZM У меня вроде всё ок было. Или не ок... Короче, я этот кусок помню. И помню что его дебажил. А что в итоге получилось - забыл. Ковыряй мой быдлокод.

Дядя Миша WWWRONGG множество "всё" включает все множества.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 20-05-2014 в 07:56:

~ X ~
Как-то это неоптимально. Если весь код - быдлокод, то имеет смысл называть его просто "кодом". На пять букв меньше набирать на клавиатуре.

__________________

xaerox on Vivino


Отправлено Дядя Миша 20-05-2014 в 12:48:

Цитата:
~ X ~ писал:
WWWRONGG множество "всё" включает все множества.

Т.е. ты 15 лет писал быдлокод? А зачем?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ~ X ~ 20-05-2014 в 18:14:

XaeroX правильно! "код" - это сокращённый вариант )

Дядя Миша ну а что ещё делать? открыть быдлоавтосервис? стать быдлобанкиром? быдлодизайнером? быдломиллионером? быдлопрезидентов?

ILZM приведи файл и строку, а то искать некогдалень

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 20-05-2014 в 18:28:

Запилил бы свою быдлолурку с trigger_bydlo

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ILZM 20-05-2014 в 18:52:

~ X ~, в input.cpp в CL_CreateMove
[cpp]
// clip to maxspeed
spd = 300.0f; // gEngfuncs.GetClientMaxspeed();
[cpp/]


Отправлено Ku2zoff 22-05-2014 в 06:23:

Цитата:
ILZM писал:
в input.cpp в CL_CreateMove

Эти вещи надо делать в pm_shared.c, там всё нормально возвращает. Попробуй перенести этот кусок кода в PM_WalkMove().

Добавлено 22-05-2014 в 13:13:

В новом HLSDK кстати там вместо 300 стоит gEngfuncs.GetClientMaxspeed().
Может правильно возвращает. Я просто не ковырял этот код ещё, щас проверю.

Добавлено 22-05-2014 в 13:23:

Пробежался, вроде бы нормально работает. То есть максимальная диагональная скорость равна максимальной из скоростей четырёх направлений.


Отправлено pRoxxx 23-05-2014 в 20:23:

Цитата:
ILZM писал:
И всё дело в gEngfuncs.GetClientMaxspeed(), т. к. оно возвращает 0. В чём дело с этой функцией?

Дак а толку? Оно будет скейлить скорость по твоему spd, тогда надо что бы spd была равна 250, ну как просто бег вперед.


Временная зона GMT. Текущее время 02:21.
Показать все 28 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024