Форум Oni

Русскоязычный форум поклонников игры «Они» от Bungie

  • Здравствуйте, Гость

#281 21-01-2009 06:52:31

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Вопросы по написанию игровых скриптов

geyser написал(а):

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

Что первое в голову приходит, то и городю. ) Если получается что-то полезное и рабочее, то оно не трогается, пока не сломается или пока не получится слишком длинный скрипт.
Извращение получается, когда мысль слишком постепенная. "как сделать чтобы followme было длительным?" - рекурсия с задержкой и переменной отмены, "а чтобы можно было пятнадцать персов регулировать?" - пятнадцать функций и пятнадцать переменных, "а чтобы можно было свободно назначать их по порядку" - дополнительная функция с контролем остальных, "а теперь раз функция одна почему бы не сделать ей флажок" - засунуть этот флажок с кучей системков. Вот и получается...

geyser написал(а):

Причём ладно бы - ограничился одной глобальной функцией и одной переменной - я же сказал, что этого достаточно, или нет?

Имеется ввиду то, что ниже?
Собственно, для случая с одним телом или двумя-тремя фиксированно заданными я такую же функцию и имел ввиду, когда отвечал дулиту. А тебя спросил про возможность глобализации настолько, что можно переопределить ai2_followme раз и навсегда без потери чего бы то ни было. В упрощённом варианте нету динамичности и возможности отмены следования на конкретное тело. То есть, чтобы отменить следование 1 человека из 16, нужно отменить всё, а затем восстановить 15 следований. Некрасиво. ) А если они заданы не фиксированно, а вызваны какими-то триггерами, и неизвестно, сколько и кого следует? Хранить кучку переменных с именами всех ведомых, или по флажку на каждое тело на уровне?

geyser написал(а):

Как знаешь...

"Более" рунтаймовая - это уже больше практическое и субъективное имхо. Просто вроде как любая функция зовётся или движком по событию, или из другой скриптовой функции, или из консоли. При этом второе сначала само следует из первого либо третьего (ну, сокращая промежуточные обращения). И почему консоль вдруг исключается из способов вызова и обзывается интерфейсом к скриптам (при том, что скриптов может вообще не быть), не совсем понимаю. О_о А то, что почти ни для какого вызова нет разницы, в консоли он записан или в .bsl, тем более говорит пользу её равновесности.

geyser написал(а):

у неё бывают глюки с вызовами вилок

Эээ... Вилка, ответвляемая не от материнской функции, а от самой консоли, что ли? Или в каком смысле?..

Оффлайн

 

#282 21-01-2009 08:15:49

geyser (муж.)
Учёный Синдиката
Откуда: угадайте
Регистрация: 24-06-2007
Сообщений: 1352
Профиль  Вебсайт

Re: Вопросы по написанию игровых скриптов

"То есть, чтобы отменить следование 1 человека из 16, нужно отменить всё, а затем восстановить 15 следований. Некрасиво."
Красиво. Написано за секунды, в употреблении тривиально.

"А если они заданы не фиксированно, а вызваны какими-то триггерами, и неизвестно, сколько и кого следует? Хранить кучку переменных с именами всех ведомых, или по флажку на каждое тело на уровне?"
1) Вот тогда и подумаем, но ведь этого не будет никогда.... 2) Да, именно так.
Прикинул я реальные ситуации с парой-тройкой ведомых, и - не поморщился...
Есть простые задачи, для них есть простое решение. Сложности иф эни - потом.
Кроме того, всё это неактуально, так как динамическое задание NEUT- это сила.

"почему консоль вдруг исключается из способов вызова и обзывается интерфейсом к скриптам (при том, что скриптов может вообще не быть), не совсем понимаю."
Способы вызова ЧЕГО? Консоль умеет обращаться только к скриптовым функциям и переменным, специально зарегистрированным движком (или скриптами иф эни). С точки зрения вызовов, присвоений, и даже вывода на ту же консоль - разницы нет: за вычетом определений пользовательских функций и переменных (и глюка с вилкой), скрипты и консоль общаются с движком на совершенно равных правах.

"Вилка, ответвляемая не от материнской функции, а от самой консоли, что ли?"
Ну да. "Контекст" консольного вызова, казалось бы, ничем не хуже main() или любой пользовательнской функции. Поэтому, казалось бы, вызовешь рекурсивную функцию RoundAndRound() с консоли (без fork) - и она начнёт себе крутиться в бэкграунде. Однако иногда этот номер не проходит и вызванная таким образом петля встаёт после первого повтора. Эффект я изучил не досконально (там как-то влияют либо слипы, либо какой-то глюк с парсингом), но помню, что он лечится, если вызывать не просто так, а fork RoundAndRound().


Если у тебя есть фонтан, заткни его; дай отдохнуть и фонтану.

Оффлайн

 

#283 21-01-2009 09:39:33

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Вопросы по написанию игровых скриптов

geyser написал(а):

Способы вызова ЧЕГО?

Функций. Не скриптовых, а функций. ) Если угодно, их можно назвать консольными. Я и сам со времён обнаружения, что команды из стандартного перечисления фокусов "чита thedayismine" работают в скриптах, привык относиться к консоли как к штуке, которая позволяет из игры вызывать "скриптовые команды" (то бишь, любые строки, которые традиционно используются в скриптах). А потом возник вопрос, а почему, собственно, скриптовые, а не консольные, или общие? ) Дискриминация. Да, консоль может обращаться к тем функциям и переменным, которые предварительно объявлены скриптами, и отображает всякие dprint'ы, но называть её за это "всего лишь интерфейсом для скриптов"... >_<

geyser написал(а):

Ну да.

Хм. А это точно проблема консоли? Может, просто в скриптах слишком редко рекурсивные функции вызываются без fork, чтобы это было заметно...

Оффлайн

 

#284 21-01-2009 10:22:02

geyser (муж.)
Учёный Синдиката
Откуда: угадайте
Регистрация: 24-06-2007
Сообщений: 1352
Профиль  Вебсайт

Re: Вопросы по написанию игровых скриптов

"почему, собственно, скриптовые, а не консольные, или общие?"
Потому, что эта часть движка называется BFW Scripting Language.
Типично скриптовый синтаксис и парсинг в рантайме, если угодно.

"Хм. А это точно проблема консоли?" По моему впечатлению - да.
Примеры были предельно простые, как полагается. Глюк налицо.


Если у тебя есть фонтан, заткни его; дай отдохнуть и фонтану.

Оффлайн

 

#285 30-01-2009 19:10:15

stas
Цивил
Регистрация: 28-01-2009
Сообщений: 2
Профиль

Re: Вопросы по написанию игровых скриптов

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

Оффлайн

 

#286 31-01-2009 04:14:15

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Вопросы по написанию игровых скриптов

stas, раз на этот раз запостил тут - деревом рекурсивных функций со смыслом "chr_wait_animation(namae,anim1); => chr_animate(namae,anim2);", где anim1 - "родная" анимация, а anim2 - новая. -__-

Оффлайн

 

#287 01-02-2009 19:44:46

anikanow88
Цивил
Регистрация: 29-04-2008
Сообщений: 1
Профиль

Re: Вопросы по написанию игровых скриптов

Привет всем! У меня такой вопрос: как можно одним героем (Барабасом) пройти все туры? Он же не всюду доступен ?:/

Оффлайн

 

#288 01-02-2009 21:00:10

demos_kratos (муж.)
Рядовой чатланин
Откуда: Волжский
Регистрация: 25-07-2008
Сообщений: 694
Профиль  Вебсайт

Re: Вопросы по написанию игровых скриптов

аниканов, ставь edition, там есть и глобализация персов, и глобализация оружия, много вообщем чего


I would put a tax... on all people... who stand... in water.
........
OOH!

Оффлайн

 

#289 03-02-2009 07:28:30

doktordulit (муж.)
Элитный спецназ TCTF
Откуда: Рига
Регистрация: 07-10-2008
Сообщений: 478
Профиль

Re: Вопросы по написанию игровых скриптов

ДЛюди!У меня вот что случилось!Удалил я все файлы в папке Airport,вхожу в здание,
и вдруг слышу..."Сюда!"!И закричал мне это цивил!А я ведь до этого в папке Аеропорт всё удалил!Каким образом она там оказалась?


http://yoursmileys.ru/tsmile/stamp/t2708.gif

Оффлайн

 

#290 03-02-2009 08:27:00

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Вопросы по написанию игровых скриптов

doktordulit написал(а):

"Сюда!"

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

Оффлайн

 

#291 03-02-2009 08:31:04

doktordulit (муж.)
Элитный спецназ TCTF
Откуда: Рига
Регистрация: 07-10-2008
Сообщений: 478
Профиль

Re: Вопросы по написанию игровых скриптов

Ты меня не понял!Откудо она взялась?Я же удалил скрипт с её спавном!!!


http://yoursmileys.ru/tsmile/stamp/t2708.gif

Оффлайн

 

#292 03-02-2009 08:39:29

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Вопросы по написанию игровых скриптов

doktordulit написал(а):

Я же удалил скрипт с её спавном!!!

преспавн. есть куча персонажей, заспавненных заранее.

Оффлайн

 

#293 03-02-2009 08:48:26

doktordulit (муж.)
Элитный спецназ TCTF
Откуда: Рига
Регистрация: 07-10-2008
Сообщений: 478
Профиль

Re: Вопросы по написанию игровых скриптов

Тоесть заранее?Я удалил все скрипты этого уровня!


http://yoursmileys.ru/tsmile/stamp/t2708.gif

Оффлайн

 

#294 03-02-2009 08:54:30

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Вопросы по написанию игровых скриптов

doktordulit написал(а):

Я удалил все скрипты этого уровня!

если удалишь level4_Final.*, то её не будет. в скриптах её спавна нет, причём здесь они?

Оффлайн

 

#295 03-02-2009 09:00:26

doktordulit (муж.)
Элитный спецназ TCTF
Откуда: Рига
Регистрация: 07-10-2008
Сообщений: 478
Профиль

Re: Вопросы по написанию игровых скриптов

А разве можно ставить спауны в ресурсах????

Добавлено спустя 1 минуту 30 секунд:
И фиг тебе!Не буду я удалять level4_Final.*!Я знаю что там все файлы уровня!!!


http://yoursmileys.ru/tsmile/stamp/t2708.gif

Оффлайн

 

#296 03-02-2009 09:06:38

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Вопросы по написанию игровых скриптов

doktordulit написал(а):

А разве можно ставить спауны в ресурсах????

преспавн. в ресурсах можно ставить почти всё.

doktordulit написал(а):

Не буду я удалять level4_Final.*!

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

Оффлайн

 

#297 03-02-2009 09:43:20

doktordulit (муж.)
Элитный спецназ TCTF
Откуда: Рига
Регистрация: 07-10-2008
Сообщений: 478
Профиль

Re: Вопросы по написанию игровых скриптов

А как называется анимация при нажатии "Контрл"?


http://yoursmileys.ru/tsmile/stamp/t2708.gif

Оффлайн

 

#298 03-02-2009 10:23:43

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Вопросы по написанию игровых скриптов

doktordulit написал(а):

при

если под "контролом" подразумевается то, что забиндено на action, игрок играет за Маи и перед ним нет action-подверженных консолей и/или персонажей, то KONCOMtaunt1 или KONCOMtaunt2.

Оффлайн

 

#299 03-02-2009 13:37:42

doktordulit (муж.)
Элитный спецназ TCTF
Откуда: Рига
Регистрация: 07-10-2008
Сообщений: 478
Профиль

Re: Вопросы по написанию игровых скриптов

Всё!Достало!Люди,помогите,я в скрипте На уровне аеропорт пишу

Код:

        chr_set_class hidden_striker1 k4_L

А он меня закидывает на крышу здания!!!
Естественно страикер в коноку не превратлся!!!
И тут то самое главное...Скрипт не работает в ЭДИШНЕ!!!


http://yoursmileys.ru/tsmile/stamp/t2708.gif

Оффлайн

 

#300 03-02-2009 14:07:05

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Вопросы по написанию игровых скриптов

doktordulit, на будущее: для отладки всего и вся скриптового крайне полезна консоль. в частности, её стоит держать включенной при запуске бажного скрипта и видеть сообщения об ошибках. "закидывает на крышу" в аэропорту - значит отказался дочитывать весь скрипт вообще, наткнувшись на плохую строчку.
на прошлое: chr_set_class очень не любит работать с именами персонажей. зато любит их id.
например, chr_set_class 1 k4_L, где под цифрой 1 значился этот самый комгай, великолепно работает.

doktordulit написал(а):

И тут то самое главное...Скрипт не работает в ЭДИШНЕ!!!

да, было бы весьма странно, если бы в оригинальных ресурсах игра не ругалась на это "k4_L" прям в аэропорту...

Оффлайн

 

Board footer

© 2006-2024 Амэ & Mih@
ОНИмия – фан-сайт игры Oni
Движок форума - модифицированный PunBB