HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (260): « Первая ... « 248 249 250 251 [252] 253 254 255 256 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1010
Возраст: 31

Рейтинг



Никак не могу понять, как можно передать строчку текста на клиент. А точнее, прописать в keyvalue энтити текст и потом, зная индекс энтити, получить его на клиенте. Я хотел попробовать ALLOC_STRING и получить id строчки на клиенте, но у меня в клиенте нет такой функции.

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 215656

Старое сообщение 06-09-2023 10:36
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32260
Нанёс повреждений: 392 ед.

Рейтинг



ALLOC_STRING только на сервере.
Только через MESSAGE_BEGIN и WRITE_STRING.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 215663

Старое сообщение 06-09-2023 18:48
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4443
Возраст: 34

Рейтинг



Цитата:
Дядя Миша писал:
Может это какой-нибудь CalcBob чудит?

Кстати да, я боб отключил и это пропало.

Сообщить модератору | | IP: Записан
Сообщение: 215668

Старое сообщение 07-09-2023 03:56
- За что?
APAMk2
Новичок

Дата регистрации: Sep 2023
Проживает: Бобруйск, Беларусь
Сообщений: 29
Возраст: 17

Рейтинг



Вопросец, а можно-ли в MP при смене карты сохранить весь инвентарь игрока как это происходит в сингле? Бегло покопал форум и гуголь, ничего не нашёл, подозреваю просто где-то кусок из сингла в мультиплеер перенести, направьте по верному пути плз.

Сообщить модератору | | IP: Записан
Сообщение: 216313

Старое сообщение 28-09-2023 06:36
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32260
Нанёс повреждений: 392 ед.

Рейтинг



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

Вообщем надо выделить некоторое место и сохранить туда информацию о броне, здоровье, патронах и пушках для каждого игрока. А при заходе на новый уровень - дать всё это игроку. Какая-то глобальная структурка нужна где всё это держать во время смены уровня.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 216314

Старое сообщение 28-09-2023 07:20
-
APAMk2
Новичок

Дата регистрации: Sep 2023
Проживает: Бобруйск, Беларусь
Сообщений: 29
Возраст: 17

Рейтинг



Цитата:
Дядя Миша писал:
Какая-то глобальная структурка

Вроде game.h подходящее место, только теперь не знаю где остальной код дописывать, multiplay_gamerules.cpp похоже для этого не подходит, либо я не туда дописываю код (пробовал в CHalfLifeMultiplay::ChangeLevel и CHalfLifeMultiplay::Think), т.к. он не исполняется(ни один ALERT не сработал).
Структура:
C++ Source Code:
1
//game.h
2
 
3
extern struct PlayerChangeLevelSave
4
{
5
  int health = 100;
6
  int hev_charge = 0;
7
  int ammo_count[15] = {15};
8
  int have_weapons[23];
9
};


Сохранение и загрузка данных:
C++ Source Code:
1
//multiplay_gamerules.cpp
2
 
3
#include ......
4
 
5
PlayerChangeLevelSave player1, player2;
6
std::vector<PlayerChangeLevelSave> players = {player1, player2};
7
 
8
...
9
 
10
void CHalfLifeMultiplay::Think()
11
 
12
...
13
 
14
for (int i = 0; i <= 1; i++)
15
{
16
  CBaseEntity* pPlayer = UTIL_PlayerByIndex(i);
17
  players[i].health = pPlayer->pev->health;
18
  ALERT(at_console, "1Health:%i", pPlayer->pev->health);
19
  players[i].hev_charge = pPlayer->pev->armorvalue;
20
  ALERT(at_console, "1HEV:%i", pPlayer->pev->armorvalue);
21
  players[i].ammo_count[1] = pPlayer->ammo_9mm;
22
}
23
 
24
ChangeLevel(); //intermission is over
25
 
26
...
27
 
28
void CHalfLifeMultiplay::ChangeLevel()
29
...
30
 
31
CHANGE_LEVEL(szNextMap, NULL);
32
 
33
for (int i = 0; i <= 1; i++)
34
{
35
  CBaseEntity* pPlayer = UTIL_PlayerByIndex(i);
36
  pPlayer->pev->health = players[i].health;
37
  ALERT(at_console, "Health: %i", players[i].health);
38
  pPlayer->pev->armorvalue = players[i].hev_charge;
39
  ALERT(at_console, "HEV: %i", players[i].hev_charge);
40
  pPlayer->ammo_9mm = players[i].ammo_count[1];
41
}

Сообщить модератору | | IP: Записан
Сообщение: 216319

Старое сообщение 28-09-2023 11:08
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32260
Нанёс повреждений: 392 ед.

Рейтинг



Сохранять надо перед вызовом ChangeLevel, тут всё правильно.
А восстанавливать в PutClientInServer чёт такое вообщем.
Ну и завести ещё переменную, что игрока ожидает инвентарь с прошлого уровня, сделать проверку на мультиплеер.
Там кажется есть PlayerSpawn или подобная функция. Вот в ней попробуй.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 216322

Старое сообщение 28-09-2023 14:34
-
APAMk2
Новичок

Дата регистрации: Sep 2023
Проживает: Бобруйск, Беларусь
Сообщений: 29
Возраст: 17

Рейтинг



Перенёс в PlayerSpawn загрузку параметров, ох и долго-же я себе голову ломал...
По какой-то причине игре немного насрать на тот ChangeLevel что в multiplay_gamerules.cpp, перенёс сохранение в trigger.cpp и всё заработало , спасибо за помощь, пошёл допиливать код в адекватное состояние.

Сообщить модератору | | IP: Записан
Сообщение: 216329

Старое сообщение 28-09-2023 16:57
- За что?
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Цитата:
APAMk2 писал:
Вопросец, а можно-ли в MP при смене карты сохранить весь инвентарь игрока как это происходит в сингле? Бегло покопал форум и гуголь, ничего не нашёл, подозреваю просто где-то кусок из сингла в мультиплеер перенести, направьте по верному пути плз.

Ищи на гитхабе исходники gravgun мода, там это было реализовано как-то.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

Сообщить модератору | | IP: Записан
Сообщение: 216333

Старое сообщение 28-09-2023 18:58
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32260
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
APAMk2 писал:
немного насрать на тот ChangeLevel что в multiplay_gamerules.cpp, перенёс сохранение в trigger.cpp и всё заработало

Это очень просто. Тот чейнджлевел по задумке авторов должен был срабатывать после вызова функции NextLevel в triggers.cpp.
Однако эта функция не вызывается вообще ниоткуда

C++ Source Code:
1
/*
2
go to the next level for deathmatch
3
only called if a time or frag limit has expired
4
*/
5
void NextLevel( void )
6
{

Возможно это наследие из первокваки, которое забыли подключить. Что-то такое я там припоминаю.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 216335

Старое сообщение 28-09-2023 19:10
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4443
Возраст: 34

Рейтинг



Цитата:
Crystallize писал:
Интересно почему у него точность только три знака, а потом идут нули

Цитата:
Дядя Миша писал:
Потому что он восстанавливается из usercmd.msec у которого весь лимит - 250 милисекунд, путём умножения на тысячу.

Это получается у игрока свой особый фреймтайм? Я в PreThink двигаю игрока через SetAbsVelocity, и двигаю рядом спрайт, в основном для отладки, и спрайт держится рядом только если использовать этот калечный pmove->frametime, иначе постепенно уползает вперед.

Сообщить модератору | | IP: Записан
Сообщение: 216389

Старое сообщение 01-10-2023 18:43
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32260
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Crystallize писал:
Это получается у игрока свой особый фреймтайм?

Именно так. И время для него идёт иначе.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 216391

Старое сообщение 01-10-2023 19:11
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4443
Возраст: 34

Рейтинг



Как временно отключить гравитацию конкретно игроку? Чтобы он не дрейфовал вниз когда его передвигает SetAbsVelocity. Просто выставить мувтип fly не срабатывает.

Отредактировано Crystallize 05-10-2023 в 08:22

Сообщить модератору | | IP: Записан
Сообщение: 216465

Старое сообщение 05-10-2023 08:20
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32260
Нанёс повреждений: 392 ед.

Рейтинг



pev->gravity = 0.0f;

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 216472

Старое сообщение 05-10-2023 12:10
-
APAMk2
Новичок

Дата регистрации: Sep 2023
Проживает: Бобруйск, Беларусь
Сообщений: 29
Возраст: 17

Рейтинг



Решил ради тестов попробовать портануть модельку солдата из Q2 под ХЛ, столкнулся конечно-же с проблемой вертексной анимации и перегоне её в скелетную, чёт вспомнил о QR и QW, покопал их подфорум, ничё по этому поводу внятного не нашёл, ну неужели ничего внятного за все эти годы никто не придумал и нужно по классике ручками костылять модель в Т-позу и потом клеить на неё скелет из ХЛ или и того хуже - запиливать код вертексной анимации?

Сообщить модератору | | IP: Записан
Сообщение: 216576

Старое сообщение 08-10-2023 12:51
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 22:51. Новая тема    Ответить
Страницы (260): « Первая ... « 248 249 250 251 [252] 253 254 255 256 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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