HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Страницы (241): « Первая ... « 34 35 36 37 [38] 39 40 41 42 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

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

Рейтинг



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

Добавлено 13-11-2019 в 13:06:

Цитата:
thambs писал:
Соображения есть, но пока не готов расписать, нужно ещё продумать всё. Сначала вопросы:
1. Есть ли в игре возможность явного доступа на чтение к полям энтити, например к таргетнэйму, ориджину и пр.?
2. Если ли возможность явного доступа к полям на запись, если есть, то как они защищены/не защищены?
3. В каком виде сервер сохраняет состояние энтить, как она сериализуется?

1. Что значит в игре? Ну очевидно у игрового движка в целом (ядро+геймкод), если полномочия модицифировать абсолютно всё по своему усмотрению, я ж говорю, что даже новое бсп-дерево налету строю при загрузке. Таргетнеймы никто не модифицирует, просто потому что в этом нет смысла, а не потому что нет доступа.

2. опять не понял. Что значит "поля" ? Куда их записать? В энтпатч?

3. Хм. https://www.hlfx.ru/forum/showthrea...=&threadid=3394

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 13-11-2019 10:06
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



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

Цитата:
Дядя Миша писал:
эти сами скрипты, они запускаются как в hlfx из какой-то энтити типо script_lua или из файлика с именем карты?

Например, имя скрипта может быть указано для энтити в поле script, а сам скрипт с этим именем быть определён в игровых файлах.

Цитата:
Дядя Миша писал:
Если скрипты пишутся для конкретной карты, как понять, что их исполнение нужно забрать на следующую карту?

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

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

Старое сообщение 13-11-2019 11:29
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
nemyax писал:
на основе отправки-приёма ивентов между скриптованными сущностями.

ивенты - это вызов целей на карте, это и так есть безо всякой скрипт-машины.

Цитата:
nemyax писал:
имя скрипта может быть указано для энтити в поле script

и сам скрипт в скомпилированном виде тоже перемещать между уровнями? Со всеми стейтами?

Добавлено 13-11-2019 в 14:38:

В D3 кстати так и сделано, там скрипты даже положение стека запоминают.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 13-11-2019 11:38
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



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

Отредактировано nemyax 13-11-2019 в 11:49

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

Старое сообщение 13-11-2019 12:00
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 13-11-2019 12:18
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



Цитата:
Дядя Миша писал:
Переменные через энтити конечно тоже доступны - env_local, env_global, но пока их немного

Что за переменные? Их можно натолкать свойствами в отдельную энтить, переходящую между уровнями и доступную скриптам для чтения-записи?

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

Старое сообщение 13-11-2019 12:25
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



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

Добавлено 13-11-2019 в 15:26:

Цитата:
nemyax писал:
Что за переменные?

да я почём знаю. Но язык без переменных, это уже и не язык вовсе.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 13-11-2019 12:26
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



Цитата:
Дядя Миша писал:
Но язык без переменных, это уже и не язык вовсе.

Пусть в скрипте и определяются. Ну там я не знаю:
code:
class mcguffin { entity target1; entity target2; void on_init(void); void on_kill(void); }; void mcguffin::on_init() { target1 = entities.get("entity14"); target2 = entities.get("entity88"); } void mcguffin::on_kill() { events.kill(target1); events.kill(target2); die(); }

Отредактировано nemyax 13-11-2019 в 12:42

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

Старое сообщение 13-11-2019 12:41
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34524
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

__________________

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

Старое сообщение 13-11-2019 12:56
-
 Дядя Миша
racing for fish

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

Рейтинг



nemyax то что ты привёл - это скрипт над объектами.

Добавлено 13-11-2019 в 16:01:

Цитата:
XaeroX писал:
обязан стать Haskell

Да нет не ко-кова Хаскеля

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 13-11-2019 13:01
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34524
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Дядя Миша
Есть, есть.

__________________

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

Старое сообщение 13-11-2019 13:02
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



Цитата:
Дядя Миша писал:
то что ты привёл - это скрипт над объектами

А над чем надо?

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

Старое сообщение 13-11-2019 13:04
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 13-11-2019 13:08
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4137

Рейтинг



Дядя Миша
Я имел в виду, что этот скрипт можно связать с любой энтитью, и у неё появится этот конкретный обработчик ивента kill. При kill-е любой такой энтити она поведёт себя так, как определено в скрипте. А например on_use здесь не определено, поэтому на use она реагировать не будет.

Добавлено 13-11-2019 в 16:30:

Либо пусть запускает дефолтную реакцию энтити на ивент, если обработчик не определён. А чтобы отключить реакцию, явно прописывать в классе void on_hurt(float) {} или void on_hide(void) {return;}.

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

Старое сообщение 13-11-2019 13:30
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32212
Нанёс повреждений: 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: Записан
Сообщение: 186309

Старое сообщение 13-11-2019 14:25
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 09:24. Новая тема    Ответить
Страницы (241): « Первая ... « 34 35 36 37 [38] 39 40 41 42 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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