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

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Func_ladder (https://hlfx.ru/forum/showthread.php?threadid=2928)


Отправлено Jimmy C. 19-07-2011 в 13:51:

Func_ladder

Здрасте. подскажите где находится код func_ladder?

__________________
Все что делает маппер, программист делает в движке, поскольку ему лень. ©Дядя Миша


Отправлено Дядя Миша 19-07-2011 в 13:59:

в triggers.cpp

Добавлено 19-07-2011 в 17:59:

Там в коде лестницы есть занятный комент, из которого можно понять, что раньше они становились невидимыми при помощи EF_NODRAW и на клиенте отсутствовали как класс. Впрочем это было еще до введения предиктинга.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Jimmy C. 19-07-2011 в 13:59:

Блин. Ну да ладно. как сделать чтобы игрок не мог лезть по лестнице спиной. и если он лезет то не мог сильно поворачиваться. ну как в DNF

__________________
Все что делает маппер, программист делает в движке, поскольку ему лень. ©Дядя Миша


Отправлено Дядя Миша 19-07-2011 в 14:10:

а это уже в pm_shared.c ковыряться надо.
Навскидку не подскажу, но функции PM_Ladder надо замутить полноценную проверку с направлениями, куда игрок смотрит.
Но повторюсь, навскидку не придумаю, поскольку траселайн там использовать нельзя.
А ну-ка, где наши кодеры

__________________
My Projects: download page

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

Цитата:

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


Отправлено KiQ 19-07-2011 в 15:01:

Через origin игрока, может?

__________________
-Brain is dead-


Отправлено -=DrTressi=- 21-07-2011 в 10:02:

(epeFk@ Погляди, где то в Half-quake:Sunrise было то что тебе нужно)

__________________
How interesting, just look at that!
© Scientist


Отправлено XaeroX 21-07-2011 в 12:17:

Цитата:
(epeFk@ писал:
Ну да ладно. как сделать чтобы игрок не мог лезть по лестнице спиной

Вопрос - зачем? Только не говори, что в реале это невозможно.

__________________

xaerox on Vivino


Отправлено FiEctro 21-07-2011 в 12:44:

XaeroX
Это из разряда "А если глаз выбили, то не видно пол экрана."

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено thambs 21-07-2011 в 13:09:

XaeroX

вообще это неплохо прибавляет геймплея, особенно если стрелять нельзя при этом. в том же l4d лестницы стараешься пробегать как можно быстрее. и уж тем более нельзя залипнув на лестнице кемперски перестрелять всю толпу монстров внизу.


Отправлено Jimmy C. 21-07-2011 в 13:26:

Это определенно не нужно для сингла. а для мульта в самый раз.

__________________
Все что делает маппер, программист делает в движке, поскольку ему лень. ©Дядя Миша


Отправлено Ku2zoff 21-07-2011 в 13:44:

Цитата:
(epeFk@ писал:
как сделать чтобы игрок не мог лезть по лестнице спиной.

Исходники ку2 глянь. Думаю, отличий не так много, проверку скопипастить сможешь.


Отправлено XaeroX 21-07-2011 в 13:45:

Цитата:
(epeFk@ писал:
а для мульта в самый раз.

Вообще говоря, не вижу препятствий стрелять из пистолета, уцепившись одной рукой за лестницу и отвернувшись от неё. Имхо, ничуть не сложнее, чем стрельба в прыжке.
Вот из автомата да, вряд ли получится.

__________________

xaerox on Vivino


Отправлено Jimmy C. 21-07-2011 в 13:46:

Цитата:
XaeroX писал:
стрелять из пистолета уцепившись одной рукой за лестницу

Цитата:
XaeroX писал:
Вот из автомата да, вряд ли получится

Хм. а такое можно замутить?

__________________
Все что делает маппер, программист делает в движке, поскольку ему лень. ©Дядя Миша


Отправлено XaeroX 21-07-2011 в 13:49:

Цитата:
Ku2zoff писал:
Исходники ку2 глянь. Думаю, отличий не так много, проверку скопипастить сможешь.

В исходниках ку2 - идиотский код лестниц, так что падение при отворачивании - скорее баг, а не фича. В халфе код другой, и бага этого нет. В волатиле физика лестниц оригинально была ку2-подобная, а баг я фиксил специально.

Добавлено 21-07-2011 в 20:49:

Цитата:
(epeFk@ писал:
Хм. а такое можно замутить?

Ну а почему нет. Правда, я не уверен, доступна ли коду физики в халфе инфа о текущей пушке в руках игрока. А в ксаше - можно добавить, если что.

__________________

xaerox on Vivino


Отправлено Дядя Миша 21-07-2011 в 14:44:

Цитата:
XaeroX писал:
Правда, я не уверен, доступна ли коду физики в халфе инфа о текущей пушке в руках игрока

скажу по секрету - там есть доступ к идикту. А раз есть доступ к идикту - значит и к привате дата есть доступ, а раз есть доступ к привате дата - можно вытворять всё что угодно. Только сделать условие #ifndef CLIENT_DLL и переписать pm_shared.c на C++ - это не так уж и сложно, я сто раз такое проделывал.

Добавлено 21-07-2011 в 18:44:

Наврал, доступа к идикту там нету, но ведь никто не мешает, например
сделать так:
pmove->iuser1 = (int)edict;
и обратно
edict_t *ent = (edict_t *)pmove->iuser1;

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 21-07-2011 в 14:47:

Цитата:
Дядя Миша писал:
скажу по секрету - там есть доступ к идикту

Да не может быть доступа к идикту в коде физики. По одной простой причине - на клиенте в халфе нет идиктов...
Цитата:
Дядя Миша писал:
А раз есть доступ к идикту - значит и к привате дата есть доступ

...и уж тем более приватДаты.
Цитата:
Дядя Миша писал:
сделать условие #ifndef CLIENT_DLL

Приехали. Т.е. сервер будет сваливать игрока при наличии автомата в руках, а клиентский код предикта - радостно возвращать обратно Нет, так нельзя.

Добавлено 21-07-2011 в 21:47:

Цитата:
Дядя Миша писал:
но ведь никто не мешает

Предикт мешает.
Впрочем, я рассуждаю в концепции волатилы, там предикт должен очень строго соответствовать серверному коду, иначе будут мерзкие рывки. В халфе, может, и иначе - тут я не шарю.

__________________

xaerox on Vivino


Отправлено underworlddemon 21-07-2011 в 14:52:

а если просто увеличить разброс ?
особенно на "двуручном" оружии...
типа держишься одной рукой, повернулся фиг знает как и стреляешь потому косо


Отправлено Дядя Миша 21-07-2011 в 14:57:

Цитата:
XaeroX писал:
По одной простой причине - на клиенте в халфе нет идиктов...

ну на клиенте еще просче узнать насчет оружия. Условие другое, а код такой же. Так шта не проблема.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 21-07-2011 в 15:16:

Цитата:
underworlddemon писал:
а если просто увеличить разброс ?
особенно на "двуручном" оружии...
типа держишься одной рукой, повернулся фиг знает как и стреляешь потому косо

В КС так и сделано. В ОИДМ, кстати, тоже - но я наверное уже всех достал его упоминанием?
Проблема в том, что из автомата ты одной рукой не сможешь стрелять в принципе - больно он тяжелый. Из СМГ - ещё туда-сюда, но из винтовки - уж точно нет.

__________________

xaerox on Vivino


Отправлено Jimmy C. 21-07-2011 в 15:19:

Цитата:
XaeroX писал:
СМГ - ещё туда-сюда, но из винтовки - уж точно нет

А если ты рембо какой нить. я на ютубе видел мужика который стрелял из 2 ак сразу!

__________________
Все что делает маппер, программист делает в движке, поскольку ему лень. ©Дядя Миша


Отправлено XaeroX 21-07-2011 в 15:22:

Цитата:
(epeFk@ писал:
я на ютубе видел мужика который стрелял из 2 ак сразу!

В фильме "Хищник" Шварценеггер вообще из шестиствольного пулемёта стрелял, толку-то? Видео это видео, реал это реал.

__________________

xaerox on Vivino


Отправлено underworlddemon 21-07-2011 в 15:31:

... а игра это игра

Цитата:
XaeroX писал:
В КС так и сделано

давно не играл в КС...
но помнится этой фичей можно было и пользоваться
т.е. не было чёткой невозможности стрелять из тяжёлого оружия

з.ы. кроме того ИМХО разброс должен увеличиваться и от высоты поднытия оружия (ибо держать его на одной вытянутой руке тяжелее, чем стрелять под небольшим углом в низ )


Отправлено Chocolate 21-07-2011 в 15:37:

Ну раз пошла идея что нельзя подниматься спиной и стрелять при этом из автомата, то тогда уж и придумать что сделать чтобы не 2 руками игрок держал оружие (Counter - Strike), а одной. (1 держится за лестницу, а другой держит автомат) И при этом еще не мог подниматься, т.е. или поднимайся обеими руками, или стреляй и стой, так сказать. Оно надо?

__________________
Уже идёт работа


Отправлено XaeroX 21-07-2011 в 16:06:

Цитата:
underworlddemon писал:
т.е. не было чёткой невозможности стрелять из тяжёлого оружия

Стрелять-то можно, попасть - невозможно

__________________

xaerox on Vivino


Отправлено -=DrTressi=- 21-07-2011 в 16:23:

А почему тупо но поставить проверку на соприкосновение с лестницей? И тупо убрать ствол? Это даже я могу!

А где то в HQS делали ещё и проверку на угол обзра игрока, и чует моя жопа - маппингом.

Если можно маппингом - почему нельзя сфигарить коддингом.

А то как у нас с HAWK0044 бэттлы - делаю маппингом то что он коддингом не может, и наоборот

__________________
How interesting, just look at that!
© Scientist


Отправлено FiEctro 21-07-2011 в 17:31:

В HLWE последнем вроде при подъёме на лестницу нельзя стрелять, и вьюмоделька красиво опускается. Здорово сделали вообщим.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 21-07-2011 в 17:42:

Цитата:
-=DrTressi=- писал:
А почему тупо но поставить проверку на соприкосновение с лестницей? И тупо убрать ствол? Это даже я могу!

ВАХ! Тебе брашевого салюта мало? Еще хочэшъ?

__________________
My Projects: download page

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

Цитата:

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


Отправлено fire64 21-07-2011 в 18:06:

А там разве не используется CONTENT_LADDER задаваемый самим компилятором.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей


Отправлено Дядя Миша 21-07-2011 в 18:42:

Цитата:
fire64 писал:
А там разве не используется CONTENT_LADDER задаваемый самим компилятором.

конпелятор не имеет права задавать контентсы для функ-моделей.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Chocolate 22-07-2011 в 08:49:

можно как нибудь исхитриться поставить по бокам clip браши, авось поможет )

__________________
Уже идёт работа


Отправлено Дядя Миша 22-07-2011 в 09:34:

Цитата:
Chocolate писал:
можно как нибудь исхитриться поставить по бокам clip браши

ты устанешь на эту лестницу карабкаться.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Chocolate 22-07-2011 в 10:29:

Цитата:
Дядя Миша писал:
ты устанешь на эту лестницу карабкаться.


В смысле?

__________________
Уже идёт работа


Отправлено pRoxxx 22-07-2011 в 10:58:

Хм а добавить в класс Func_Ladder тач ? И там уже баловаться как хочеш, отправлять анимацию холстера на оружии и прочью байду ? Там же и проверять куда направлен вектор взгляда игрока.


Отправлено Jimmy C. 22-07-2011 в 13:13:

Цитата:
Дядя Миша писал:
можно как нибудь исхитриться поставить по бокам clip браши

Мего изврат.
Цитата:
pRoxxx писал:
Хм а добавить в класс Func_Ladder тач ?

Говоришь на примере amxx?

__________________
Все что делает маппер, программист делает в движке, поскольку ему лень. ©Дядя Миша


Отправлено Дядя Миша 22-07-2011 в 13:59:

Цитата:
Chocolate писал:
В смысле?

ну не сможешь ты на нее залезть.

__________________
My Projects: download page

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

Цитата:

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


Отправлено pRoxxx 22-07-2011 в 19:26:

Цитата:
(epeFk@ писал:
Мего изврат.
Говоришь на примере amxx?

Там хуки.


Отправлено Jimmy C. 22-07-2011 в 19:31:

Ладно господа. вы мне обьясните другое. почему в vgui не работает это

C++ Source Code:
1
if(i == 1)
2
{
3
  //m_pButtons[1]->setPos(  TEAMMENU_TOPLEFT_BUTTON_X, YRES(64) );
4
  m_pButtons[1]->setBoundKey( '1' );
5
  m_pButtons[1]->setText( gHUD.m_TextMessage.BufferedLocaliseTextString("#Team_Terrorist") );
6
  m_pButtons[1]->setVisible( true );
7
  m_pButtons[1]->addActionSignal( new CMenuHandler_StringCommandWatch( "jointeam 1", true ) );
8
  m_pButtons[1]->addInputSignal( new CHandler_MenuButtonOver(this, 1) );
9
}
10
 
11
 
12
if(i == 2)
13
{
14
  //m_pButtons[2]->setPos(  TEAMMENU_TOPLEFT_BUTTON_X, YRES(128) );
15
  m_pButtons[2]->setBoundKey( '2' );
16
  m_pButtons[2]->setText( gHUD.m_TextMessage.BufferedLocaliseTextString("#Team_CounterTerrorist") );
17
  m_pButtons[2]->setVisible( true );
18
  m_pButtons[2]->addActionSignal( new CMenuHandler_StringCommandWatch( "jointeam 2", true ) );
19
  m_pButtons[2]->addInputSignal( new CHandler_MenuButtonOver(this, 2) );
20
}

всмысле кнопок не видно,но при нажатии оных выполняются команды.

__________________
Все что делает маппер, программист делает в движке, поскольку ему лень. ©Дядя Миша


Отправлено FiEctro 22-07-2011 в 20:18:

(epeFk@ так у тебя их отрисовка закоментирована.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Ku2zoff 23-07-2011 в 08:28:

Цитата:
FiEctro писал:
(epeFk@ так у тебя их отрисовка закоментирована.

Не отрисовка, а указание координат.


Отправлено Jimmy C. 23-07-2011 в 10:43:

Цитата:
Ku2zoff писал:
(epeFk@ так у тебя их отрисовка закоментирована

Я их расскоментировал и толку ноль.

__________________
Все что делает маппер, программист делает в движке, поскольку ему лень. ©Дядя Миша


Отправлено Ku2zoff 24-07-2011 в 09:43:

Цитата:
(epeFk@ писал:
Я их расскоментировал и толку ноль.

C++ Source Code:
1
if(i == 1)
2
{
3
  m_pButtons[i]->setPos(  TEAMMENU_TOPLEFT_BUTTON_X, YRES(64) );
4
  m_pButtons[i]->setBoundKey( '1' );
5
  m_pButtons[i]->setText( gHUD.m_TextMessage.BufferedLocaliseTextString("#Team_Terrorist") );
6
  m_pButtons[i]->setVisible( true );
7
  m_pButtons[i]->addActionSignal( new CMenuHandler_StringCommandWatch( "jointeam 1", true ) );
8
  m_pButtons[i]->addInputSignal( new CHandler_MenuButtonOver(this, i) );
9
}

Вместо цифры вставь i. А лучше создай для каждой команды свою кнопку. Цикл полезен в случае, когда кол-во кнопок большое (около 10-ти) или когда оно меняется в зависимости от чего-нибудь. А так тебе нужно всего лишь четыре кнопки:
Команда 1
Команда 2
Наблюдатель
Отмена


Отправлено pRoxxx 25-07-2011 в 17:56:

Цитата:
Дядя Миша писал:
поскольку траселайн там использовать нельзя.

Разве ?О_о
code:
trace = pmove->PM_PlayerTrace (start, stop, PM_NORMAL, -1 ); if (trace.fraction == 1.0)


Отправлено Дядя Миша 25-07-2011 в 19:32:

pRoxxx у лестницы выставлен SOLID_NOT.
А трасса ищет пол.

__________________
My Projects: download page

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

Цитата:

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


Отправлено pRoxxx 25-07-2011 в 20:21:

Цитата:
Дядя Миша писал:
pRoxxx у лестницы выставлен SOLID_NOT.
А трасса ищет пол.

А это да поэтому и с тачем не получаеться, ибо если менять на SOLID_TRIGGER не хочет вобще вобще лазить по лестнице. В pm_shared не нашол почему, так важно что лестница была не солидна.


Отправлено Дядя Миша 25-07-2011 в 21:05:

ну что непонятного? лестница - это разновидность воды.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 26-07-2011 в 08:14:

Дядя Миша
Разве? Там же опора нужна, а без опоры не поднимишься.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 26-07-2011 в 08:30:

Цитата:
FiEctro писал:
Там же опора нужна, а без опоры не поднимишься.

какая еще опора?
Лестница - это вода. Все движения игрока вперед и назад трансформируются в вверх или вниз, с учетом начального направления (пускай и самого незначительного). Иными словами игрок с лестницы может соскочить только при трех условиях:
если лестница внезапно кончится
если под игроком окажется пол (только мир, для функ_валл это неработает)
при прыжке с лестницы.
Ну и при движении по диагонали (вверх и одновременно вбок).

__________________
My Projects: download page

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

Цитата:

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


Отправлено IPwnMice 26-07-2011 в 08:53:

Цитата:
Дядя Миша писал:
Лестница - это вода

Лестница это не вода. Вода с гравитацией и вперед-назад это вперед-назад, а не вверх-вниз.


Отправлено Ku2zoff 26-07-2011 в 09:02:

Цитата:
IPwnMice писал:
Лестница это не вода.

Не знаю насчёт воды, но игрок ведёт себя так как в воде, а движения трансформируются именно так, как описал ДМ.


Отправлено XaeroX 26-07-2011 в 09:05:

Цитата:
IPwnMice писал:
Лестница это не вода.

А что же это такое, в таком разе? Только не говори "лестница - это лестница".

__________________

xaerox on Vivino


Отправлено Дядя Миша 26-07-2011 в 09:21:

Цитата:
IPwnMice писал:
Лестница это не вода. Вода с гравитацией и вперед-назад это вперед-назад, а не вверх-вниз.

еще раз для особо одаренных среди слаборазвитых: лестница это вода.
Такой же контентс по крайней мере.
Для игрока выбирается соответствующее поведение на лестницах и в воде. С таким же успехом можно подменить контентс воды и лестницы и игрок будет вести себя в воде как на лестнице, а на лестнице - как в воде.
Вся разница - только в номере контентса.

__________________
My Projects: download page

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

Цитата:

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


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

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