HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 25 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Лажа с mp_teamplay (https://hlfx.ru/forum/showthread.php?threadid=3513)


Отправлено ONeiLL 04-07-2012 в 17:58:

Лажа с mp_teamplay

Вот такая проблема, в меню ставлю галку teamplay, и иногда всё норм, но бывает что надо потом в консоль писать restart, иначе тимплей не врубится. Если решение этой проблемы и какое?


Отправлено Дядя Миша 04-07-2012 в 17:58:

сто тысячное сообщение

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 04-07-2012 в 18:59:

Цитата:
ONeiLL писал:
и иногда всё норм, но бывает что надо потом в консоль писать restart, иначе тимплей не врубится. Если решение этой проблемы и какое?

Зарегить квар mp_teamplay на клиенте Правда, тогда он будет доступен не только локальному игроку, а всем, кто подключен к серверу. Но меняться кем попало вроде не должен. Я просто никогда не проверял.


Отправлено marikcool 04-07-2012 в 19:30:

поставь дефалтное значение 1 в регистер квар.

Добавлено 04-07-2012 в 23:30:

Цитата:
Ku2zoff писал:
Зарегить квар mp_teamplay на клиенте Правда, тогда он будет доступен не только локальному игроку, а всем, кто подключен к серверу. Но меняться кем попало вроде не должен. Я просто никогда не проверял.

ниче не произойдет, на серваке имено на его серверный cvar.value завязана логика.


Отправлено ONeiLL 04-07-2012 в 19:33:

marikcool , мне надо чтобы просто коректно работала переключалка, так как в моде должно быть два режима, тим плей и каждый сам за себя


Отправлено marikcool 04-07-2012 в 19:40:

Цитата:
ONeiLL писал:
marikcool , мне надо чтобы просто коректно работала переключалка, так как в моде должно быть два режима, тим плей и каждый сам за себя

тогда лучше не юзать стандартный mp_teamplay, либо проштудировать сообщения которыя отсылаются и сделать переключалку там, вроде как отсылаются названия команд в inithud и еще гдето, на клиенте активируется командный скоребоард меню(для меню тоже пересоздание скоребоарда нужно сделать будет).
и вроде как gameplay rules надо будет пересоздать.


Отправлено ONeiLL 04-07-2012 в 20:00:

фух, сделал, сейчас заделюсь

Добавлено 04-07-2012 в 23:00:

файл teamplay_gamerules.cpp
ищем такие строчки:

C++ Source Code:
void CHalfLifeTeamplay :: Think ( void )
{


и заменяем на эти:

C++ Source Code:
1
extern cvar_t teamplay;
2
void CHalfLifeTeamplay :: Think ( void )
3
{
4
  if( !teamplay.value )
5
    SERVER_COMMAND( "restart\n" );


Теперь multiplay_gamerules.cpp
ищем такое:

C++ Source Code:
void CHalfLifeMultiplay :: Think ( void )
{


И заменяем на это

C++ Source Code:
1
extern cvar_t teamplay;
2
void CHalfLifeMultiplay :: Think ( void )
3
{
4
  if( teamplay.value )
5
    SERVER_COMMAND( "restart\n" );


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


Отправлено HAWK0044 04-07-2012 в 20:10:

ONeiLL дикий орр!!!!
DDDDDDDDDDDDDD

>Это калечный, но полностью рабочий способ.
да...полностью...


Отправлено marikcool 05-07-2012 в 07:05:

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


Отправлено fire64 05-07-2012 в 07:42:

ONeiLL, что за бред?
Класс GameRules выбирается при создании сервера, а попытки изменить его в процессе игры, просто абсурдны.

Короче создай новый класс наследуемый от CHalfLifeMultiplay и у уже в нем делай все, что душе угодно, а не ту чушь, что сейчас.

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

Переключение GameRules делается в InstallGameRules.

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


Отправлено ONeiLL 05-07-2012 в 08:16:

fire64 , потом так и сделаю. Но пока что так. Времени нету, да и лень


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

Думаю проверять надо не значение, а тот факт, что оно изменилось.
Т.е. завести статическую переменную и сравнивать её с текущим значением квара. Ну и если поменялось - рестартить карту.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 07-07-2012 в 10:35:

Цитата:
fire64 писал:
Класс GameRules выбирается при создании сервера, а попытки изменить его в процессе игры, просто абсурдны.
Это верно. Но бывает, что при запуске карты из меню, галка не срабатывает с первого раза. Потому что когда создаётся первый сервак после старта игры, сервенрные квары ещё не инициализированы. Если зарегить квар на клиенте, а на сервере проверять не имяквара.value, а например CVAR_GET_FLOAT("имяквара") == 1/0, то всё будет срабатывать сразу.


Отправлено ONeiLL 07-07-2012 в 11:59:

Ku2zoff , ясно

У меня второй вопрос появился. Как добавлять свои пункты в менюшку
( на скрине меню, в которое надо добавлять )


Отправлено HAWK0044 07-07-2012 в 13:09:

а очень просто, открой user.scr или settings.scr блокнотом и поправляй


Временная зона GMT. Текущее время 20:54. Страницы (2): [1] 2 »
Показать все 25 сообщений этой темы на одной странице

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