Русскоязычный форум поклонников игры «Они» от Bungie
1) Oni Master.
2) на Oni Stuff.
3) строка dump_docs, выполненная игрой через консоль либо через скрипт.
4) у тех, кто её знает, задавая конкретные вопросы. в т.ч. на англоязычном форуме.
5) возможно, когда-нибудь будет русское руководство. возможно, не будет.
Оффлайн
Killer, по поводу неработающих читов, раскладку клавиатуры и состояние CapsLock смотри.
Nik, качаешь это, vtuneapi.dll из папки buka кладёшь в папку с игрой, запускаешь игру.
Отредактировал(а) SFeLi (12-05-2007 17:34:49)
Оффлайн
Эй люди - я тут недавно где-то прочитал что нельзя добавлять на карту больше анимаций, чем там положено. Однако нельзя ли придать нужные текстуры того, или иного объекта не меняя анимацию?
Оффлайн
"нельзя добавлять на карту больше анимаций, чем там положено" ????
"придать нужные текстуры того, или иного объекта не меняя анимацию" ????????
Оффлайн
geyser это я имею ввиду придать например страйкеру внешний вид охранника, только и всего. Или добавить на уровень больше врагов, чем запрограммировано.
Оффлайн
Ну и где же ты читал, что "нельзя"? Всё можно. Хошь плоди, хошь переодевай: легко и просто.
Если хочешь, чтоб охранник дрался как Страйкер: это несколько сложнее, опять же через OUP.
Вот это например: http://geyser.oni2.net/pics/screenshots/onisplit
Сделал Мурзиллу глобальным (через ещё не готовый к релизу ОniSplit ).
А потом дождался выхода Карен с роботами и сделал
chr_set 1 mutantmuro и chr_set 1 mutantmuro
Оффлайн
geyser ты случаем не можешь написать какие анимации есть в Они? В смысле например когда у Маи появляется всплеск силы (как во сне рег. управлении там), и др. анимации.
Отредактировал(а) Cursor (20-11-2007 08:03:26)
Оффлайн
Анимаций много, гы. Перечислять я не нанялся.
Открывай OUP, выбирай TRAM и смотри сам...
Ещё вот: http://wiki.oni2.net/index.php/Animation
Берёшь на промокашку имя TRAC (например, konokocore_animations).
Потом с консоли (девмодовой) вбиваешь:
tr_write_collection konokocore_animations konokocore.txt
Ищешь в папке Они файл konokocore.txt - список анимаций.
Оффлайн
Наелись?
Ладно, к теме: можешь дать пример того - как добавлять персов на карту? Я печатаю ai2_spawn (имя) но ничего не выходит. Может чего-то ещё надо?
Оффлайн
Я печатаю ai2_spawn (имя) но ничего не выходит. Может чего-то ещё надо?
Ничего больше не надо. Это вы чего-то съели. Пример давай, лапа.
А работающих примеров в Они дофижищи. Там и смотри.
Рекомендую грузить уровень без скриптов и девмодить.
Например, грузишь главу 0 или 1, без скриптов.
Оказываешься в первом тренировочном зале.
С консоли вбиваешь ai2_spawn demo3
Ну или если хочешь ai2_spawn(demo3)
Оффлайн
Если очень нужно,я могу перевести(самому интересно).Просто, наверное щас уже русский перевод никому не нужен)
Добавлено спустя 43 секунды:
Но я всё равно сделаю,как будет время(переведу всё по скриптингу).Строго не судите:Р
Оффлайн
Веля Солнышкин написал(а):
Если очень нужно,я могу перевести(самому интересно).Просто, наверное щас уже русский перевод никому не нужен)
Да я уже почти перевёл. Через некоторое время сюда выкладу.
Оффлайн
"Гейсер, можешь выложить ссылку на учебник по скриптированию? На Онимастере неполная инфа."
Вечная проблема. Я тебе уже говорил: "полная" инфа только у меня в башке. Кое-что в башке у Лузера, у Михи и Аме, у полдюжины других... записывать навыки на промокашке всем влом по нескольким вполне очевидным причинам. Я, например, начал описывать BSL на вики, потом я перестал, ну чисто посмотреть, что будет, и стало ясно, что просвещением заниматься никому, кроме меня, неинтересно. Вот так и живём.
Оффлайн
Ладно, тогда завтра я выложу что перевёл.
И вопрос: как сделать чтобы какой-нить перс был дружеским, а не враждебен.
Отредактировал(а) Cursor (12-01-2008 09:22:53)
Оффлайн
"Может хоть скажите какое скриптовое имя у Керра в закрытой лаборатории."
Во-первых, что за странный вопрос? Если ты уже захачил сцену, где его убивают, то как ты можешь не знать его имя?
Во-вторых, его зовут по-разному: или ScanKerr01, или KerrKerr. Смотрим сюда: http://ssg.oni2.net/subfold/charas/l14.htm
Оффлайн
geyser написал(а):
что за странный вопрос? Если ты уже захачил сцену, где его убивают, то как ты можешь не знать его имя?
Я убрал скрипт, отвечающий за его смерть в файле cutscine, а не увеличил здоровье. Согласно скрипту, здоровье у него автоматически станомится на нуле. А за второе спасибо, ScanKerr01 не пробовал.
Оффлайн
Ответ для Gelo
Печатать это надо в тот файл - который больше всех весит.
Чтобы увеличить здоровье - прописывай: chr_set_health 500 (Это игровой максимум для Маи)
Чтобы за тобой следовали - пропиши ai2_lookatchar имя следителя имя присматриваемого.
Со врагами - ai2_spawn имя
Оффлайн
Cursor, ну допустим, я нашел тот файл, открыл его, как блокнот. И дальше могу впечатывать куда захочу??? Или мне надо искать слова?
Отредактировал(а) Gelo (19-01-2008 14:57:54)
Оффлайн
Gelo написал(а):
Cursor, ну допустим, я нашел тот файл, открыл его, как блокнот. И дальше могу впечатывать куда захочу??? Или мне надо искать слова?
Желательно после надписи restore game
Оффлайн
Ясно... А как ты нашел строчку restore_game? Я нажал ф3 и ввел... Вроде получилось. В начале уровня у Маи, как я и захотел, было 500 жизней. А ведь можно ей поставить 100000
Оффлайн
Gelo написал(а):
Ясно... А как ты нашел строчку restore_game? Я нажал ф3 и ввел... Вроде получилось. В начале уровня у Маи, как я и захотел, было 500 жизней. А ведь можно ей поставить 100000
Искать - одновременно просто и тяжело. Если есть вопросы, то я сейчас в чате.
Оффлайн
С коро я выложу все имена. Пока, для аэропорта вот
ai2_spawn IntroStriker01
ai2_spawn IntroStriker02
ai2_spawn Terminal_Striker_1
ai2_spawn LoadingBay_Thug_1
ai2_spawn LoadingBay_Thug_2
ai2_spawn LoadingBay_Striker_1
Оффлайн
"Так как узнать имена персонажей?" http://ssg.oni2.net/subfold/charas/charas.htm
Оффлайн
Ого! Там все имена написанны! Но тут легче читается. Вот например, я открыл одну страницу. Там все персы, которые есть в уровне. Но с именами я еще не разобрался. В одном персе-имя страйкер 1, в другом-страйкер 2, потом страйкер 3.... Эти цифры стирать что ли?
Оффлайн
"В одном персе-имя страйкер 1, в другом-страйкер 2, потом страйкер 3"
Не путай имя чела (Top_Comguy_1) с именем его класса (striker_easy_1).
Оффлайн
Вот проверил опять этот сайт. Зашел в уровень Лаборатория док. Хасегавы. Вот увидел, что у каждого перса обязательно есть следующие пункты:
Name:
Model:
Health:
Team:
Lose func:
И иногда вот это:
Weapon:
Hit func:
Has:
Drops:
Можно объяснить, для чего это всё. Почему здоровье у Маи всего 200? В каком из этих пунктов содержится имя персонажа, которое можно добавлять в скрипты? И вообще, что означает каждый пункт. Помогите малоопытному юзеру!
Оффлайн
"В каком из этих пунктов содержится имя персонажа, которое можно добавлять в скрипты?" Name, ёпть.
"Почему здоровье у Маи всего 200?" Потому, что всё это документировалось на Сложной сложности.
Model: Класс, он же скин, он же облик. Включи девмоду и дави F8 , всё поймёшь...
Продвинутые юзеры могут любого чела превратить в любого другого: chr_set_class
Health: Ну типа хелсы (ёпть). Опять же с учётом Сложной сложности.
Team: Команда, определяющая враждебность по отношению к врагам и неуязвимость к ударам товарищей.
Lose func:
Скриптовая функция, автоматически вызываемая, когда чел отбрасывает копыта. Есть другие.
Есть например функция, вызываемая когда чел заряжает последний магазин в свою пушку...
Ну и естественно функции, вызываемые, когда чела заспавнили, в первый раз ранили и т.п.
Weapon:
Имя пушки, выданной при спавне. Можно отобрать (chr_inv_reset) или выдать другую (chr_give_weapon).
Hit func: Скриптовая функция, автоматически вызываемая, когда чела в первый раз ранили.
Has: Инвентарь, которым чел может воспользоваться (например, патроны, маска, щит).
Drops: Инвентарь, который чел роняет при смерти.
Оффлайн
geyser написал(а):
Команда, определяющая враждебность по отношению к врагам и неуязвимость к ударам товарищей.
А помнится у меня когда-то была версия, в которой товарищи могли ударить, и их.
Оффлайн
"у меня когда-то была версия, в которой товарищи могли ударить, и их."
Если ты не работал в Bungie West, то это мог быть только чит reservoirdogs.
Ну и броски, конечно. От них достаётся всем подряд - известное дело...
По идее можно все удары оформить так же, как броски, будет весело
Оффлайн
Девмода включается кодом thedayismine, она даёт при определённых комбинациях, например - открытие всех дверей, или проход сквозь стены, и т.д.
Отредактировал(а) Cursor (22-01-2008 14:07:08)
Оффлайн
Качать надо файл vtuneapi.dll (так называемый Даодан), и класть в папку с .
Для русской версии: http://geyser.oni2.net/EXE/pc.buka
Для английской: http://geyser.oni2.net/EXE/pc.east
Вместо "thedayismine" можно просто жать "x" (икс).
Девмода включается кодом thedayisnine
Курсор, пиши поаккуратнее, хотя бы читы
Оффлайн
Ааааа..... Всё понятно! Даодан весь давно скачан. Этот код открывает режим разработчиков! Я как-то вводил его! Только ничего нормального не заметил. Так что еще делает режим разработчиков? Зачем он нужен? Как им пользоваться? Какая от него польза?
Добавлено спустя 1 минуту 51 секунду:
Ааааа..... Всё понятно! Даодан весь давно скачан. Этот код открывает режим разработчиков! Я как-то вводил его! Только ничего нормального не заметил. Так что еще делает режим разработчиков? Зачем он нужен? Как им пользоваться? Какая от него польза?
Добавлено спустя 3 минуты 56 секунд:
Извините за повторение сообщений! Опера глююючит...
Оффлайн
"Так что еще делает режим разработчиков? Зачем он нужен? Как им пользоваться? Какая от него польза?"
Создай отдельную темку о Дев Моде, там и поговорим. А пока вот, читай: http://wiki.oni2.net/thedayismine
Для скриптера в дев моде главное - консоль. Вызывается некоей кнопкой вверху слева.
Внизу слева появляется командная строка "CMD:", позволяющая скриптить в рил-тайме.
Оффлайн
И еще: в учебнике было сказанно, что в скриптах Маи обозначается 0. А на том сайте я видел имя Коноко. Несостыковочка получается.
P.S. Я открывал самый 1 уровень.
Оффлайн
"Несостыковочка получается."
Вместо имени можно использовать так называемый "script ID", который как раз у Коноки 0.
"script ID" очень важно не путать с индексом человека в памяти, так называемый "char ID".
"У меня родился отличный вопрос: как заставить гражданского драться?" ai2_noncombatant imjarek 0
Оффлайн
Что-то со скриптами у меня ниче не получается. Попробую объяснить каждый шаг.
1. Открываю папку аэропорт
2. Открываю самый большой файл.
3. Ищу первую сохранку.
4. Вижу restore_game.
5. Сразу после него пишу ai2_spawn IntroStriker01.
Теперь по идее, как я думаю, на меня должны нестись сразу 2 страйкера. Но никаких изменений. То же самое, когда пытаюсь дать Маи даодановый крикун. Только один пистолет.
Добавлено спустя 1 минуту 53 секунды:
То же самое, при введении ai2_noncombatant imjarek 0. Никто не хочет драться.
Оффлайн
Так после всего надо force напечатать? А Q я нажимал. Она вытаскивает пистолет и убирает. Ладно, еще раз попробую. Так персы не добавлялись, потому что force в конце надо было напечатать? А так со всеми персами?
Оффлайн
Gelo: в случае проблем с собственными скриптами советую прилагать БСЛ-файл или включить в сообщение ту часть, куда ты внёс изменения.
А то даже если я в принципе понимаю, где ты лоханулся, конечной уверенности не имею, так что при всём желании не смогу тебе помочь...
Оффлайн
"пишу сразу после первого restore_game." Что именно пишешь? Жаловался ты на кучу разных команд. Каждая из них - отдельная проблема. Вот и жалуйся отдельно. Пожалей нас.
Оффлайн
В следующий раз буду выкладывать файл. А сейчас будет просто вопрос: вот я всё-таки наколдовал 2 страйкера. Но они появились далеко сзади меня. МОЖНО ЛИ ИЗМЕНЯТЬ МЕСТО ИХ ПОЯВЛЕНИЯ?
P.S. Все команды я пишу после restore_game.
Оффлайн
А где эту точку найти? К примеру, я хочу переместить этих 2х созданных, с улицы в здание, сразу перед входом, там, где еще синий страйкер гражданского мочит.
Оффлайн
Так, начнем всё сначала. А то я снова запутался. Сначала надо определиться, что хочу... Так... 1.Хочу, чтобы количество врагов удвоилось, и чтоб оригинал бежал рядом с копией.
2. У всех врагов увеличились в 2 раза хелсы,
3. Научить гражданских драться.
4. Наколдовать 10-ых элитных спецназовцев.
5. Заставить спецназовцев ходить за собой.
6. Наколдовать себе пушку Мукада.
7. В конец уровня поместить... Барабаса.
Всё. Моя фантазия исчерпанна.
Добавлено спустя 4 минуты 9 секунд:
Это всё надо писать после restore_game?
Оффлайн
Дааа, Гело... сообщения склеивай плиз. Хотя так же поступал, когда только пришёл на сайт. Не торопись сразу всё сделать, осваивай шаг за шагом. Копия перенимает мысли оригинала, гражданским стиль боя ставь, и их принадлежность. Точки находить - я ещё сам не научился. Пока всё, завтра сбда вывешу - как всё это делать надо.
Оффлайн
Спасибо. Насчет сообщений извините. Приму к сведению. Но знайте, что это не с целью повысить поскорее свой ранг (честно!)! Просто мысли, как еще дополнить, приходят слишком поздно.
Оффлайн
План твой, Гело, хороший, но не осуществим сразу как целое. Давай лучше по пунктам, а?
Ведь твоя цель в каждый данный момент - научиться скриптить что-то очень конкретное...
Если хочешь заскриптить мод-массовку - сначала надо одного бота до ума довести.
Обобщить модификацию на N ботов - очень просто, если ты освоил простые случаи.
"Просто мысли, как еще дополнить, приходят слишком поздно."
Есть такая замечательная кнопка "Редактировать". Подойдёт?
"Копия перенимает мысли оригинала"
Не совсем так либо совсем не так, в зависимости от того, что ты подразумеваешь, Курсор.
Каждый бот имеет собственный интеллект, с кучей случайных чисел, т.е. "мысли" у них свои.
Однако нескольким ботам можно задать общую цель (например, "гасите Коноку").
Оффлайн
Ну как, для начала, удвоить количество врагов? Покопавшись в других скриптах, я заметил, что самые глобальные изменения пишутся не сразу после restore_game. Они пишутся где-то внизу, когда все restore_game уже давно прошли.
Враги удваиваются при помощи ai2_spawn IntroStriker01 force.
Ai2_spawn IntroStriker02 force. Это всё, что я смог изменить. Далеко за моей спиной появляются 2 страйкера: синий и красный. Сначала они даже не видят меня.
Добавлено спустя 8 минут 25 секунд:
Потом я пытаюсь всех их удвоить, получилось:
Restore_game
ai2_spawn IntroStriker01 force
Ai2_spawn IntroStriker02 force
ai2_spawn IntroStriker01 force
ai2_spawn IntroStriker02 force
chr_giveweapon 0 w10_shi
И дальше 2 строки, чтобы увеличить здоровье Маи, дать ей щит босса (это у меня получилось) но вот враги не удваиваются! И еще прикол: если это добавить до restore_game, то можно очутиться на крыше соседнего здания.
Оффлайн
Я понятно объяснил, где я лоханулся? И еще: как мне добавить хотя бы одного элитного спецназовца? Какой командой? И что означает force? chr_giveweapon 0 w10_shi почему не сработал? Я ж ведь ю нажимал....
Слушайте, вот интересно, в начале уровня мы видим трупы агентов TSTF. Это ж наверное боты с нулем хитов. Интересно, можно ли их оживить, найдя о них информацию?
P.S. Какую команду прописывают главарям, что они всё время меня видят?
Отредактировал(а) Gelo (27-01-2008 09:46:09)
Оффлайн
geyser написал(а):
Однако нескольким ботам можно задать общую цель (например, "гасите Коноку").
ai2_attack пашет крайне редко, зоть убей! Поэтому и в моём скрипте ошибка такая. Кстати, иправляется кодом reservoirdogs и его отменой после 5 секунд.
Gelo написал(а):
Они пишутся где-то внизу, когда все restore_game уже давно прошли.
Враги удваиваются при помощи ai2_spawn IntroStriker01 force.
Это в основном обозначеня точек, где будут происходить всякие действия. Если ты их все поймёшь - то ты мастер скриптов.
Оффлайн
Ну, до мастера мне как до луны пешком... За решение проблемы с скриптом спасибо! Даже не думал, что обычный код может всё исправить. А то Мукад стоит, как лох. Иногда моих стреляет, но меня не замечает. Кстати, люди сегодня я понял, что такое команда chr_set_class... Это прикольная штука! Я могу превратить кого угодно в кого угодно. И всё так прикольно выглядит! Я за сегодня подрался с Барабасом, побил Муро, даже самого себя побил.
Оффлайн
Мне понравилось мочить Маи двойника. Она ко мне подбежала... И стоит. Заколебалась! Но после того, как я отправил её в полет, она живо поняла, кого тут надо мочить.
А еще было прикольно смотреть, как на полу валяется танкер и прикрывается, чтоб его не били. Весь дрожит такой... А потом как встанет... И... Заговорит БАБЬИМ ГОЛОСОМ: вот, мол, возьми этот гипо... Радости нету предела! Теперь знаю, как Барабаса вставить в конец уровня!Кстати, а как отобрать у врага оружие и другое вставить? Ведь у них нету привычки Й нажимать.
Оффлайн
Gelo написал(а):
А еще было прикольно смотреть, как на полу валяется танкер и прикрывается, чтоб его не били. Весь дрожит такой... А потом как встанет... И... Заговорит БАБЬИМ ГОЛОСОМ: вот, мол, возьми этот гипо... Радости нету предела!
Может попробуешь фанфик написать?
Отредактировал(а) Cursor (28-01-2008 00:54:49)
Оффлайн
Честно говоря, даже не думал об этом (а я вообще когда-нибудь думал? :-) ). Ах да, кстати, хочу поделиться с вами впечатлениями! Я НАКОНЕЦ-ТО ДАЛ МАИ МУКАДОВ КРИКУН. И нашел глупейшую ошибку, смеяться будете. Я писал вместо w10_sni строчку w10_shi. И столько времени не замечал! Теперь у меня вновь возникли вопросы...
1. Помните закрытую лабораторию? Самое начало, когда Маи проскользнула мимо охранников?
Добавлено спустя 6 минут 33 секунды:
Я хочу вместо охранников поставить Мукада и Барабаса. Ну и еще пару моих строчек. Вопрос: где именно надо вводить изменения? А то я что-то написал до restore_game, во время катсцены, а заставка даже не пошла. Заглююючил комп.
2. Так как же всё-таки добавить себе помощников и удвоить количество врагов в этом уровне аэропорт?
Оффлайн
Gelo написал(а):
Я хочу вместо охранников поставить Мукада и Барабаса. Ну и еще пару моих строчек. Вопрос: где именно надо вводить изменения?
Это уже в файле neuro_cutscene.bsl.
Gelo написал(а):
2. Так как же всё-таки добавить себе помощников и удвоить количество врагов в этом уровне аэропорт?
смени принадлежность, и наспавни копий.
Оффлайн
Хе хе хе... Люди, у меня получилось! Накопировал чуваков... Очень много. Только вот прикол: из всех созданных союзник только один. Как я ни пытался... И в голову пришла другая идея-переместить с другой локации... Надо писать chr_teleport GrifOps01 [локация]. Я хочу с последнего уровня скопировать. Значит мне что, писать chr_teleport GrifOps01 compound?
Оффлайн
Правда я писал вместо "Коноко" TCTF. Но союзник был. Это надо каждый раз писать? Ведь одного и того же перса по идее переманиваю. Надо будет попробовать каждому вводить... Ну и еще парочку вопросов... Значит, чтоб в начале уровня Маи говорила "шоу начинается" надо ввести sound_dialog_play 07_22_01? И еще последний вопрос... Чтобы союзник бегал за мной, надо ввести ai2_followme IntroStriker01, или ai2_lookatchar IntroStriker01 0?
Оффлайн
Gelo написал(а):
союзник бегал за мной, надо ввести ai2_followme IntroStriker01, или ai2_lookatchar IntroStriker01 0
Вот не понимаю, у меня енто не работает. Попробуй ai2_followme IntroStriker01
ai2_lookatme IntroStriker01
В точности! Может сработает.
Оффлайн
Если вы наклонировали одноимённых челов, то команды типа chr_changeteam в любой момент влияют только на одного из них.
Пока первый ("оригинал") не умер, влиять будет на него, потом - на первого force-клона (если он жив), и так далее.
Это верно для всех команд, обращающихся к челам по имени, а таких команд, как вам известно, большинство.
Практически это означает, что польза от ai2_spawn ... force ограничена случаями, когда с клонами не нужно работать.
Другими словами, к клонам можно обращаться только по индексу (порядку появления): chr_weapon, chr_health, ...
А это требует знания индекса и того, чтобы команда использовала именно индекс (e.g., chr_weapon, chr_health, ...)
Оффлайн
То, что для одного действует, это я сегодня понял. Но что передаются после смерти... Не знал. А с диалогами так и не получилось. Пришлось копаться в уже готовых скриптах и искать фразу.
Так значит, никак нельзя сделать себе союзников?
Добавлено спустя 3 минуты 30 секунд:
И еще... Никто не знает, как лучше ориентироваться в номерах персов? А то я запутался, под каким номером гражданский, а под каким враг. Может, девмода поможет?
Оффлайн
"Так значит, никак нельзя сделать себе союзников?"
На одних скриптах - можно, но сложно. Всё зависит от ситуации и от того, что ты называешь союзником.
Если хачить бинарники, то нет никаких проблем сделать какой угодно расклад союзников, врагов, и т.д.
"как лучше ориентироваться в номерах персов? [...] Может, девмода поможет?"
Да, поможет, но только с английским движком. В русском движке дев мода кривая, пока не починили.
Короче, команда chr_who: вбиваешь с консоли и имеешь список всех живых челов на данный момент.
На экран выводятся: имя чела, имя его класса, индекс в памяти (с "#") и так называемый "script ID".
Повторяю, это только с английским движком: русский в ответ на chr_who ничего не напечатает.
Так что скриптить надо с английским движком, ну а пользоваться скриптами всё равно где.
Оффлайн
"На пас версии едитиона движок английский." ??????????????????????????????????????????????????????
"Неее... У меня всё русское..." Качай движок и Даодан отсюда: http://geyser.oni2.net/EXE/pc.east
Оффлайн
"И у меня че, будет игра на английском?" Нет, конечно. Ты попробуй.
Озвучка будет русская. Титров не будет совсем. Но скриптить можно.
(хотя русские шрифты в скриптах тоже не покатят, естественно...)
Оффлайн
"А движок, это ЕХЕ?" EXE+DLL, отсюда: http://geyser.oni2.net/EXE/pc.east
"Получается, что я не смогу писать русские буквы в диалогах?" Ну да.
То есть пиши, если хочешь, но на экране русские буквы не появятся.
Оффлайн
Народ! Помогите пожалуйста! кто может написать пояснения по вот таким сктиптовым командам:
chr_animate
chr_animate_block
chr_wait_animation
chr_wait_animtype
chr_wait_animstate
Можно и на английском, но лучше всё-таки на русском - главное подробно
Оффлайн
WaRDoG написал(а):
chr_animate_block
остановить анимацию
WaRDoG написал(а):
chr_wait_animation
ждать анимацию.
Смотри учебник по скриптированию. Я для кого переводил?
Оффлайн
"остановить анимацию" неверно
"Я для кого переводил?" не знаю
"Помогите пожалуйста!" Подробно объяснять всегда сложно. Это ведь целая наука.
chr_wait_animation, chr_wait_animtype, chr_wait_animstate: это сравнительно просто.
Первым аргументом имя чела или его "script ID" (фактически единственный используемый "script ID" - это Конокин 0).
Далее может быть некоторое количество аргументов (анимаций, типов или состояний - соответственно).
Впрочем, как работает chr_wait_animation, ты уже знаешь. Здесь единственные для тебя новости вот:
1) Можно ждать сразу нескольких анимаций (вплоть до 16): chr_wait_animation 0 KONCOMcomb_p KONCOMcomb_k ...
2) Можно ждать анимации не по имени, а по типу или состоянию (опять же вплоть до 16-ти разных типов или состояний)
Типы и состояния - очень важные компоненты анимационного движка (Тоторо), более общие, чем анимации.
Советую ознакомиться с ОниМеню, где вовсю применяются функции chr_wait_anim...
http://geyser.oni2.net/oni_menu/v3b/
http://geyser.oni2.net/oni_menu/v4prealpha/
http://geyser.oni2.net/OniTeamArena/tools/global/
Ну и в ОТА тоже есть примеры применения. И на вот этой ленте OCF:
http://oni.bungie.org/forums/index.php?threadid=5
chr_animate и chr_animate_block - это посложнее. Там больше разных входных параметров, да и анимации бывают "разные".
"_block" означает, что дальнейшие команды скрипта не будут выполняться до тех пор, пока не закончится данная анимация. См. также chr_envanim_block, playback_block, chr_playback_block, env_setanim_block, env_anim_block, cm_orbit_block, cm_interpolate_block, cm_anim_block, sound_dialog_play_block.
В противоположность этому, после команды "chr_animate" (без "_block") игра запускает анимацию и сразу переходит к следующим скриптовым инструкциям, т.е. анимация развивается параллельно последующим инструкциям (в этом случае дожидаться конца анимации надо, например, через sleep).
То есть "chr_animate_block" означает, что данную анимацию требуется переждать и только потом приступить к исполнению следующих инструкций.
Аргументы у обеих функций одни и те же: главная, необходимая пара - это имя (или script-ID) чела и имя анимации. Анимация должна быть подходящая, то есть не оверлейная: http://geyser.oni2.net/anim/overlay.txt
После этого идут два факультативных аргумента. Во-первых, время, в течении которого следует крутить данную анимацию (в 60-х долях секунды). Если указанное время меньше длины анимации, то анимация всё равно прокрутится целиком. Обрубить анимацию можно только наслав другую анимацию с повышенным приоритетом или через команду chr_peace.
Последний же аргумент - длительность интерполяции (тоже в 60-х долях секунды). В течении этого времени новая анимация будет смешиваться с теми анимациями, что были бы в её отсутствии, причём в начале интерполяции вклад от новой анимации равен нулю, и постепенно нарастает вплоть до конца интерполяции, когда наоборот вклад новой интерполяции равен единице, а остальные анимации сходят на нет.
Наглядный пример использования интерполяции - скрипт Trinity :
http://oni.bungie.org/forums/index.php? ... #post_3263
Наглядный пример использования chr_peace - скрипт New Combat Move :
http://oni.bungie.org/forums/index.php? ... #post_4839
Также рекомендую следующие скрипты на предмет анимационных трюков :
http://geyser.oni2.net/scripts/compound/lobbers/
http://geyser.oni2.net/scripts/power/jesus/
http://geyser.oni2.net/scripts/global/prone_final.bsl
Оффлайн
Народ, кто знает чё там надо написать чтобы убрать панели навигации, ну или как там они называются... два кружка в нижних углах экрана.
gs_show_ui= 0
Где надо всё это изменять? Я читал и нечего не понял. Помогите пожалуйста.
Простые команды можно вбивать с консоли в ДевМоде. А так - речь идёт о файлах с расширением .bsl в папке Oni\GameDataFolder\IGMD и ниже.
geyser написал(а):
chr_animate и chr_animate_block - это посложнее. Там больше разных входных параметров, да и анимации бывают "разные".
"_block" означает, что дальнейшие команды скрипта не будут выполняться до тех пор, пока не закончится данная анимация. См. также chr_envanim_block, playback_block, chr_playback_block, env_setanim_block, env_anim_block, cm_orbit_block, cm_interpolate_block, cm_anim_block, sound_dialog_play_block.
В противоположность этому, после команды "chr_animate" (без "_block") игра запускает анимацию и сразу переходит к следующим скриптовым инструкциям, т.е. анимация развивается параллельно последующим инструкциям (в этом случае дожидаться конца анимации надо, например, через sleep).
То есть "chr_animate_block" означает, что данную анимацию требуется переждать и только потом приступить к исполнению следующих инструкций.
Я тут начал документировать Онишные скрипты и по ходу разобрался с cm_interpolate_block. Получается, что пережидается не данная интерполяция, а предыдущая анимация с камерой...
То есть функция с "_block" непременно должна работать в паре с другой аналогичной функцией , запущенной ранее, и действие которой надо переждать, прежде чем приступать к данной.
Самый простой пример - со звуками. Хотим, например, чтобы Шинатама сказала две вещи подряд, причём без sleep. И делаем это так:
sound_dialog_play c00_01_24shinatama sound_dialog_play_block c00_01_25shinatama dmsg hello
Команда sound_dialog_play_block c00_01_25shinatama начнёт играть звук c00_01_25shinatama только тогда, когда предыдущая команда sound_dialog_play c00_01_24shinatama закончит играть звук c00_01_24shinatama.
Именно тогда (одновременно с концом первого звука и началом второго) исполнение скрипта двинется дальше команды sound_dialog_play_block c00_01_25shinatama и дойдёт до команды dmsg hello.
То есть употребление sound_dialog_play_block для второго звука равносильно "какому надо sleep" между двумя sound_dialog_play. Аналогичное поведение предполагаю (но пока детально не проверял) для chr_animate_block, chr_envanim_block, playback_block, chr_playback_block, env_setanim_block, env_anim_block, cm_orbit_block, cm_anim_block.
Оффлайн
VenomMan и все-все-все: Меня нет. То есть я есть, в том числе и в Аське, но далеко не для всех...
Мне очень срочно надо жить и работать, а с деятельностью Они-гуру это совместить никак нельзя.
Есть ли альтернатива (и какая?) полному исчезновению вплоть до осенней защиты? "Посмотрим..."
Оффлайн
geyser написал(а):
VenomMan и все-все-все: Меня нет. То есть я есть, в том числе и в Аське, но далеко не для всех...
Мне очень срочно надо жить и работать, а с деятельностью Они-гуру это совместить никак нельзя.
Есть ли альтернатива (и какая?) полному исчезновению вплоть до осенней защиты? "Посмотрим..."
Я не всё понял что ты написал.
Просто скажи номер. ПЛИИИИИЗ!!!
Оффлайн
geyser написал(а):
VenomMan и все-все-все: Меня нет. То есть я есть, в том числе и в Аське, но далеко не для всех...
Мне очень срочно надо жить и работать, а с деятельностью Они-гуру это совместить никак нельзя.
Есть ли альтернатива (и какая?) полному исчезновению вплоть до осенней защиты? "Посмотрим..."
без тебя фигово будет......ты серьезно аж до самой осени не появишсо?
Оффлайн
geyser написал(а):
VenomMan и все-все-все: Меня нет. То есть я есть, в том числе и в Аське, но далеко не для всех...
Мне очень срочно надо жить и работать, а с деятельностью Они-гуру это совместить никак нельзя.
Есть ли альтернатива (и какая?) полному исчезновению вплоть до осенней защиты? "Посмотрим..."
Прискорбно...
2 VenomMan:
Т.к. Гейзеру жизненные обстоятельства больше не позволяют тратить время на подобную "ерунду",
то ответы на свои вопросы тебе придется искать самому, что на самом деле не так уж и плохо ) ...
Оффлайн
@ VenomMan: Я бы тебе может и помог, но у тебя на проверку оказался такой attention span, что "нет ни сил, ни времени, ни желания". Не поминай лихом.
@ остальные: Я вот сейчас по свежим следам залогинился, чтоб показать пример: отыскал хорошо забытые ленты про Хризалиду и номера уровней в Они.
Просьба не совать этот пример коту под хвост. Если Онька нам вообще интересна, то короткая память не есть гуд. Неужели я один гожусь в просветители?
Оффлайн
geyser написал(а):
то короткая память не есть гуд
тут не в памяти дело! просто людям тупо лень или не интересно читать форум!
Отредактировал(а) RedDog (26-03-2008 17:48:42)
Оффлайн
geyser написал(а):
@ VenomMan: Я бы тебе может и помог, но у тебя на проверку оказался такой attention span, что "нет ни сил, ни времени, ни желания". Не поминай лихом.
Что такое attention span?
Оффлайн
Люди, кто знает
можно ли через скрипты сделать броски (вроде Chr_animate 0 ELICOMthrow_bk_tgt) у меня при этом игра вылетает
если нет то как это сделать через level.DAT
Оффлайн
Оффлайн
всё,не могу больше!вот интересно,почему,когда я создаю скрипт в последнем уровне,иногда (а даже чаще всего) я появляюсь не перед Муро с такой ситуацией,которая должна быть (как я написал),а на первой сохранке Горной Резиденции,без заставки и солдат?это оч бесит,особенно когда начирикаешь в скрипте кучу всего,а эта "куча" не желает свету являться.ну в чём,скажите,в чём проблема?!
Оффлайн
Это когда Онька отказывается работать с твоими скриптами и не грузит никаких.
В скриптах с непривычки легко ошибиться, да и опытные могут опечататься...
В таких случаях надо методично искать ошибку/опечатку в своём скрипте.
Оффлайн
таак,ладно,будем исправлять,спасибо
p.s. надо сразу было,как и хотел,всё копировать,а не самому писать...
Добавлено спустя 6 минут 2 секунды:
и ещё несколько вопросов: во первых,я так и не понял,как добавлять ещё солдат.писать,предположим, ai2_spawn GrifOps 03 force,04 force и т.д. или ai2_spawn GrifOps 03 force,03 force,03 force?.. а во-вторых,как в таких случаях раздать всем TCTF'щикам даодановые крикуны?надо ли добавлять force,или просто писать chr_giveweapon GrifOps02 w10_sni?да у меня миллион вопросов!..
Оффлайн
Ох уж мне эти миллионы... Нет чтоб английский выучить и всему научиться в первоисточнике.
Или хотя бы Поиск юзайте. Задолбался я снова отвечать на одни и те же миллионы вопросов.
Персы из коллекции как правило одноразовые (есть редкие исключения).
Это значит, что игнорируются все ai2_spawn Imjarek - кроме первого.
Причём игнорируются, даже если к моменту их вызова первый Imjarek умер.
Запрет на многоразовость можно обойти, написав ai2_spawn Imjarek force
То есть, если в скрипте где-то стоит ai2_spawn Imjarek, а вам надо троих:
ai2_spawn Imjarek
ai2_spawn Imjarek force
ai2_spawn Imjarek force
То есть, первого спауним как обычно, а потом ещё два раза - форсируем.
Главная проблема с дублями - обращение по имени становится неоднозначным.
Если мы такие хитрые, что заспаунили троих Imjarek, то чела три, а имя одно...
Команда chr_giveweapon Imjarek w10_sniдаст пушку только одному из них.
Первому, если он жив, второму, если жив второй и мёртв первый, и т.д.
Есть способы обращаться к челам не по имени, а по индексу (char ID).
Для оружия, например, существует такая команда chr_weapon.
Оффлайн
т.е. раздать всем Imjarek оружие или предметы,независимо от их имени,невозможно?вот сейчас пробую - у половины invis'ы есть,а у другой половины - нет...
Добавлено спустя 3 минуты 10 секунд:
а вообще,в кое-чём я уже разобрался.*гордо* теперь я умею раздавать персам оружие.да и вообще много чего.в частности,беру я всё из других скриптов.теперь 500 000-ми вопросов меньше .но что было,когда я дал Гриффину даодановый крикун...ой,что было...ладно,что-то я не в тему
так ты ответишь на мой вопрос?
Добавлено спустя 7 минут 37 секунд:
geyser написал(а):
Задолбался я снова отвечать на одни и те же миллионы вопросов
а ты создай спецальную статью на сайте по написанию скриптов.и полную,понимаешь,полную.чтоб вопросов не возникало среди новичков.и,если я не слишком преувиличиваю или наглею,пусть Амэ создаст на главной странице сайта новость о этой самой статье,чтобы новички сразу знали,зачем им это и куда.вот такой вот скромненький совет
Отредактировал(а) Freestyler (24-04-2008 12:39:35)
Оффлайн
и последнее: почему,когда я сделаю малейшее изменение в последнем уровне,сразу меняется...хм,даже незнаю,как назвать...короче,видно все текстуры.ну,исчезает эффект "ночи".всё становится светло-серым.это,конечно,не так уж и плохо,но раздражает.можно ли это исправить?
Оффлайн
исчезает эффект "ночи".всё становится светло-серым.
Этим занимается OpenGLный туман. Его характеристики - трёхкомпонентный цвет и две "глубины" в "перспективном пространстве".
По умолчанию туман тёмно-серый, начинается метрах в 15-ти от камеры и накопляется до километра, где кончается поле зрения.
Онишные скрипты настраивают туман по-всякому, но если твой скрипт Оньке не понравился, то ты имеешь туман "по умолчанию".
http://wiki.oni2.net/BSL:Frustum_and_fog
так ты ответишь на мой вопрос?
Какой? Вот этот? (тщательнее надо спрашивать, тщательнее...)
раздать всем Imjarek оружие или предметы,независимо от их имени,невозможно?
Имя у них у всех одинаковое, поэтому по имени раздавать нельзя. И оружие, и вещи, и "одежду" можно раздавать по индексу.
Вот некоторые команды, обращающиеся к челам по индексу: chr_health, chr_location, chr_set_class, chr_weapon, give_powerup.
Индекс чела определяется историей добавления и уничтожения челов в данном уровне на момент добавления данного чела.
Поэтому с индексами не всегда удобно работать, а иногда даже опасно ("Blam"). Приходится конкретно следить за базаром.
а ты создай спецальную статью на сайте по написанию скриптов.и полную,понимаешь,полную.чтоб вопросов не возникало среди новичков.и,если я не слишком преувиличиваю или наглею,пусть Амэ создаст на главной странице сайта новость о этой самой статье,чтобы новички сразу знали,зачем им это и куда.вот такой вот скромненький совет
"Полного" руководства по скриптингу нет и быть не может, так как его возможности неограничены. К тому же ты явно переоцениваешь новичков. Им редко когда помогает наличие документации. Задалбывать приятнее.
Кое-какие "статьеподобные" вещи есть на вики, на английском форуме и здесь (и чем дальше, тем больше), только новичкам, как правило, влом делать Поиск на интересующую их скриптовую переменную или функцию.
Оффлайн
geyser написал(а):
http://wiki.oni2.net/BSL:Frustum_and_fog
слушай,я в английском абсолютный ноль,поэтому,пожалуйста,просто по русски скажи,как этот "туман" сделать (ну,или исправить,незнаю...)
geyser написал(а):
Индекс чела определяется историей добавления и уничтожения челов в данном уровне на момент добавления данного чела
не понял...по всей видимости,индекс - сложная штука...так что же - индекс может быть каким угодно?и как мне его вычислить?
geyser написал(а):
Полного" руководства по скриптингу нет и быть не может
хм...
geyser написал(а):
Какой? Вот этот?
да-да-да,предыдущий
Оффлайн
и ещё: мне срочно нужно знать,как сделать так,чтоб при убийстве Муро\Маи игра не переходила на выигрыш или поражение,а продолжалась?
P.S. строчки
chr_wait_health Muro 0
ai2_allpassive 1
lock_keys
sleep 120
dmsg "Текст"
sleep 120
win
У меня не работают.Игра всё равно переходит,куда ей надо,не оставляя времени на всё вышенаписанное
Отредактировал(а) Freestyler (25-04-2008 08:27:58)
Оффлайн
Слушайте, я тут тоже насчёт смерти. Помните, как роботы на тренировке возрождались? Как сделать так, чтобы у других персов то же самое было?
Оффлайн
во-во!и это мне тоже нужно! (Gelo,ты не подумай,что я у тебя идею краду,прост у мне тоже так надо..)
Оффлайн
слушай,я в английском абсолютный ноль,поэтому,пожалуйста,просто по русски скажи
Послушай и ты меня. Скриптеров, робеющих английского, не бывает
Между прочим, Онишные скрипты - это тоже язык, со своими правилами.
Так что если ты забил на английский, то и в скриптах будешь ноликом...
как этот "туман" сделать (ну,или исправить,незнаю...)
Если Они отказывается грузить твои скрипты - туман исправить нельзя.
В Онишных скриптах туман обычно настраивается в функции "main".
В разных уровнях - разные настройки (ночь, день, закатное небо и т. п.)
Если ты не убирал эти настройки, а туман пропал - значит ты запорол скрипты.
Исправить ситуацию можно только одним способом - вылечив скрипт с "main".
Помните, как роботы на тренировке возрождались? Как сделать так, чтобы у других персов то же самое было?
Роботы не становятся трупами по причине команды chr_death_lock. Однако номер с воскрешением проходит только потому, что роботам не надо драться...
После смерти любой чел теряет профиль MELE, и chr_death_lock этого не предотвращает. OTA для воскрешения использует просто-напросто chr_unkillable.
как сделать так,чтоб при убийстве Муро\Маи игра не переходила на выигрыш или поражение,а продолжалась?
Смотрим сюда, ищем Коноку и Мурзилку: http://ssg.oni2.net/subfold/charas/l19.htm
Обращаем внимание на графу "Lose Func" напротив них. Это - вызовы.
У Маи это "you_lose", у Мурзиллы - "Outro", у Мурзилки - "check_death2".
Функции с такими названиями действительно существуют в скриптах уровня.
Их надобно перехватить (предотвратить вызов win/lose) или просто удалить.
так что же - индекс может быть каким угодно?и как мне его вычислить?
http://oni.bungie.org/community/forum/v ... 3171#p3171
http://oni.bungie.org/community/forum/v ... 3177#p3177
http://oni.bungie.org/community/forum/v ... 3413#p3413
Оффлайн
geyser написал(а):
Смотрим сюда, ищем Коноку и Мурзилку: http://ssg.oni2.net/subfold/charas/l19.htm
Обращаем внимание на графу "Lose Func" напротив них. Это - вызовы.
У Маи это "you_lose", у Мурзиллы - "Outro", у Мурзилки - "check_death2".
Функции с такими названиями действительно существуют в скриптах уровня.
Их надобно перехватить (предотвратить вызов win/lose) или просто удалить
огромное спасибо - помогло!
Добавлено спустя 5 минут 34 секунды:
geyser написал(а):
Роботы не становятся трупами по причине команды chr_death_lock. Однако номер с воскрешением проходит только потому, что роботам не надо драться...
После смерти любой чел теряет профиль MELE, и chr_death_lock этого не предотвращает. OTA для воскрешения использует просто-напросто chr_unkillable
так,можно,пожалуйста,поподробней,если я тебя ещё окончательно не достал.я попробовал написать...
chr_wait_health Muro 0
chr_unkillable Muro 500
а также...
chr_wait_health Muro 0
chr_unkillable Muro
...и ничего не вышло.возникла та проблема,о которой я раньше говорил - Онька отказалась грузить скрипт.так как же правильно надо писать эту твою команду chr_unkillable?
Оффлайн
и ещё: все мы помним и знаем момент,когда Гриффин прилетает на вертолёте в помощь Маи.Я хочу вставить этот ролик (иначе его не назовёшь) после смерти Гриффина.и чтоб вместо самого Гриффина и солдат прилетали Мукад и Барабас,которые бы были за меня.Т.е. - Гриффин умирает,появляется ролик с прибывшими Мукадом и Барабасом,а затем бой возобновляется.Гейсер,такое вообще возможно,и если да,то как это претворить в жизнь?
Оффлайн
Отличная идея! Заодно пусть скажет как сделать так что бы персонаж достал оружие (например после анимации, или через определённый момент времени) Какая анимация отвечает за акт появления в руках чара оружия???!!!) Заранее спасибо)!
Насчёт барабаса и нинзя думаю получится т.к. персонажей из одного уровня в другие отправлять как я узнал можно!
И неслишком жирна?? ЗА тебя 2 крутых босса!! Пусть мукад против тебя и появляется из двери!! А барабас за тебя, с двумя TCTF прилетает!
Тогда примерно на равных будете)
Оффлайн
хм...да,пожалуй именно так и надо сделать,спасибо.Гейсер,так ты нам поможешь?плииииzz....
Отредактировал(а) Freestyler (25-04-2008 18:18:10)
Оффлайн
вот очень интересно,можт кто знает...я пытаюсь впихать диалог в финальную битву.ну,в Лабалатории Грёз,Шина повторяет - "Коноко...Сюда!..".вот именно эту фразу я хочу включить в битву с Муро.и что же я получил?вместо этих слов - тишина,а внизу появляются маленькие буквы этой фразы,которые почти мгновенно исчезают.можно ли осуществить это?и как?
p.s. вот строчки,которыми я пользовался:
sound_dialog_play c12_63_01shinatama
sound_dialog_play_block pause
и просто
sound_dialog_play c12_63_01shinatama
Оффлайн
Гейсер,так ты нам поможешь?плииииzz...
Вообще-то не очень хочется. Задаёте вопрос за вопросом, ответа не ждёте.
Не разобравшись как следует с одной задачей, спешите к следующей...
Плюс ноль внимания к Поиску и самостоятельной интуиции тоже ноль.
Какой толк вам помогать?
Freestyler, sound_dialog_play c12_63_01shinatama может сработать только если соответствующий звуковой файл доступен из данного уровня.
А ты, как я догадываюсь, не сделал все звуки глобальными, то есть так и не установил Anniversary Editon. Установи Edition, потом поговорим.
"Гейсер,такое вообще возможно,и если да,то как это претворить в жизнь?"
Да, возможно, и даже полуочевидно, но готовое решение я тебе выдавать не буду, так ведь?
Для начала тебе опять же придётся установить AE, чтобы сделать челов глобально доступными.
Потом советую поэкспериментировать с разными составляющими твоей идеи по-отдельности.
Например, попробуй заменить одного из Элитовцев на Барабаса, а нинзю - на Мукада.
А я на тебя посмотрю...
"как сделать так, чтобы персонаж достал оружие (например после анимации, или через определённый момент времени)"
Если у чела DjadjaVasja в руках пушка, то команда chr_forceholster DjadjaVasja 1 заставит его эту пушку спрятать.
После этого его можно в любой момент заставить эту же пушку достать, командой chr_forceholster DjadjaVasja 0
"можно,пожалуйста,поподробней,если я тебя ещё окончательно не достал"
Достал. Изучил бы скрипт ОТА, что ли...
Правильно, например, вот так:
ai2_spawn Muro chr_unkillable Muro 1 chr_wait_health Muro 1 ai2_passive Muro 1 chr_wait_animation 0 taunt chr_full_health Muro ai2_passive Muro 0 chr_wait_health Muro 1 ...
А ещё лучше - вот так, а ля ОТА:
func spawn(string name) { ai2_spawn(name) chr_unkillable(name,1) fork respawn(name) } func respawn(string name) { chr_wait_health(name,1) ai2_passive(name,1) chr_wait_animtype 0 Taunt chr_full_health(name) ai2_passive(name,0) fork respawn(name) }
Оффлайн
geyser написал(а):
Не разобравшись как следует с одной задачей, спешите к следующей...
это потому,что пока ты ответишь,у нас возникнут ещё вопросы!
geyser написал(а):
Плюс ноль внимания к Поиску и самостоятельной интуиции тоже ноль.
обижааааешь!думаешь,идею с Барабасом и Мукадом я не пытался провернуть?ещё как пытался!откуда ж мне было знать,что надо качать этот твой Anniversary Editon?вобще то он у меня закачен (недавно - хотел попробовать),да только букв нет (какие-то проблемы с движком).что мне даёт AE?
кстати,когда я пытался закачать вторую (или первую ссылку,не помню), и установить программу,у меня ничего не получилось.вот так вот.
geyser написал(а):
Изучил бы скрипт ОТА, что ли...
где?в поиске я ничего дельного не нашёл.что это вообще такое?программа?скрипт?
Оффлайн
А что за ОТА? И еще один вопросик: помните, в скрипте <всё вместе>, в один момент у всех персов становится бооольшая голова. Это значит, автоматически ввелся код. Как это сделать? И последний вопрос: КАК вносить изменения в катсцены? В каком файле, знаю, но, вот, например, на уровне <аэропорт> хочу, чтоб вместо страйкеров с Муро ходили две очаровательные фурии... Как это сделать?
Оффлайн
"А что за ОТА?"
http://wiki.oni2.net/OTA
http://edt.oni2.net/shots.html
"чтоб вместо страйкеров с Муро ходили две очаровательные фурии"
Это где это в Аэропорту с Муро ходят Страйкеры? Разве они ходят?
"Это значит, автоматически ввелся код. Как это сделать?"
chr_big_head= 1
"когда я пытался закачать вторую (или первую ссылку,не помню), и установить программу,у меня ничего не получилось.вот так вот."
Да-да, конечно. Главное дело, если что-то при установке не получается - подольше помолчать, а то вдруг кто-нибудь догадается...
"откуда ж мне было знать,что надо качать этот твой Anniversary Editon?"
А я о чём говорю? Интуиция где? Ты же знаешь, что Мукада и Барабаса В-О-О-Б-Щ-Е Н-Е-Т в главе 14...
Какой тогда смысл пытаться их заполучить именно в вертолётной сцене? Они должны В-О-О-Б-Щ-Е быть.
Главное, чего я не вижу - трезвого подхода к структуре игры. Циклиться на задумках как таковых - плохо.
"он у меня закачен (недавно - хотел попробовать),да только букв нет (какие-то проблемы с движком)"
Господи, "какие-то проблемы"... Ты их здесь описал хоть раз, проблемы эти? Опиши, пожалуйста...
А то сидишь у себя в углу и думаешь, что Edition - это фуфло, которое "почему-то не ставится".
"что мне даёт AE?"
В долгом плане: всё возможное и даже больше.
А пока что - ставь и узнаешь. Или Юзай Поиск:
Seventh Anniversary Edition, Версия Гораздо Хуже
Последний нонешний денёчек...
Оффлайн
geyser написал(а):
Господи, "какие-то проблемы"...
я так сказал,потому что уверен,что ты проблемы эти знаешь.стоп,не начинай спорить.в одной из многочисленных тем ты говорил о vtupeapi.dll и о разных его версиях.ну,на английскую там,на русскую Оньку.там же ты упомянул движок.вот я и подумал,что ты наверняка поймёшь,о чём идёт речь
geyser написал(а):
Главное дело, если что-то при установке не получается - подольше помолчать, а то вдруг кто-нибудь догадается...
и не так уж долго я молчал!между прочим,мне это было даром не нужно - я закачал чисто из любопытства.а сейчас,когда это мне поможет сделать нормальный,понимаешь,нормальный скрипт,как бы ты выразился, "я вдруг забеспокоился"
geyser написал(а):
Ты же знаешь, что Мукада и Барабаса В-О-О-Б-Щ-Е Н-Е-Т в главе 14...
вот именно,что знаю!так я по-любому должен был спросить.или ты что,думаешь,я умею читать мысли на расстоянии?
geyser написал(а):
А то сидишь у себя в углу и думаешь, что Edition - это фуфло, которое "почему-то не ставится".
ты не знаешь,что я думаю.а я так не думаю
geyser написал(а):
ставь и узнаешь
так я поставил.буквы - это не самое главное,но что мне делать дальше?ладно-ладно,не начинай,попробую сам что-нибудь выяснить...
Оффлайн
"так я поставил.буквы - это не самое главное,но что мне делать дальше?" Какие на фиг "буквы"?
"я так сказал,потому что уверен,что ты проблемы эти знаешь." О "буквах" первый раз слышу
Есть много способов лажануться... и тот, который выбрал ты, мне - мягко говоря - не очевиден.
Оффлайн
geyser написал(а):
Какие на фиг "буквы"?
всмысле те самые "буквы",которые отображаются в игре.названия глав,посторонний текст в игре.вот такие вот "буквы"
Отредактировал(а) Freestyler (27-04-2008 18:16:07)
Оффлайн
По ходу ты путаешь Edition с Даоданом, да ещё и Даодан не тот поставил. Ну-ну.
На каком языке содержание твоей Оньки? На русском, я так полагаю? От Буки?
Тогда тебе нужен вот этот движок/Даодан: http://geyser.oni2.net/EXE/pc.buka
Ещё раз скажу: темнить вредно. Если есть проблемы, докладывай по-полной.
Твой компьютер не находится у меня перед носом. Учитывай это, пожалуйста...
Как я могу поставить диагноз по обрывкам информации, понятным тебе одному?
Оффлайн
Вот если бы был изложен скриптовый язык Они на русскоя языке (где нибуть), где всё понятно и дохотчиво объяснялась команды, то тогда вопросов не возникла у каждого. Я вижу ты очень подкован в этом плане geyser)) Очень хоршо знаешь скриптовый язык они И мне иногда кажется, что тебе даже проще сделать этот скрипт чем объснять как его написать!! Я рад что Freestyler заинтересован этим делом, конечно на первый пары у него много будет вопрос, но если он подойдёт к этому вопросу серьёзно то в будущем у него всё получится!!))
Оффлайн
geyser написал(а):
да ещё и Даодан не тот поставил
Даодан у меня тот.100%.я говорю,что буквы исчезают тогда,когда я пытаюсь загрузить run_full или run_wind из папки edition.
p.s. извиняюсь за оффтоп
geyser написал(а):
Ещё раз скажу: темнить вредно. Если есть проблемы, докладывай по-полной
так,ладно.в первую очередь - это скрипт.по твоим словам я должен скачать AE,чтобы сделать что-то "глобальным".этого я не понял.в общем,у меня AE установлен,да только сама установка была,мягко говоря,проблемной.не то,что я "не понял",как нужно устанавливать,просто у меня возникла ошибка при установки программы,которую ты выложил в качестве одной из двух ссылок (не помню,какая именно,но одна там была программа,а одна - папка edition.я говорю про программу).
ну и я по-глупости решил,что и "так сойдёт".в результате после всех инструкций я запустил run_full из папки edition и перед мною предстала такая картина - букв,которые должны быть на русском,нет.тут же вспомнилась одна тема про Даодан.учитывая то,что он у меня был успешно установлен,мне это показалось странным.дальше мой мозг отказался работать,и я обратился к тебе
Отредактировал(а) Freestyler (29-04-2008 12:38:00)
Оффлайн
"не помню,какая именно"
Вспомни, какая именно...
Может быть, .NET 2.0?
Точный текст ошибки?
"Help us help you."
Однако, если .NET не встало, то run_*.bat не должны работать в принципе.
Так что тут особенно остро не хватает точного описания с твоей стороны...
"Даодан у меня тот.100%." А я в этом по-прежнему сомневаюсь.
При запуске Оньки из основной папки с буквами всё в порядке?
Тогда расскажи всё-таки поподробнее об ошибке при установке.
'скачать AE,чтобы сделать что-то "глобальным".этого я не понял.'
В исходной Оньке классы персов (ONCC) в каждом уровне свои.
Поэтому Мукад есть только в 2-х главах из 14, Барабас - в 3-х.
Самое элементарное, что делает Edition - глобализация ONCC.
"p.s. извиняюсь за оффтоп"
Да хрен с ним с оффтопом...
Зато докладывать научишься.
Оффлайн
geyser написал(а):
Вспомни, какая именно...
так,что называется,"вспомнил".вторая,точно,вторая ссылка! (в теме "Seventh Anniversary Edition, Версия Абсолютный Ноль")
geyser написал(а):
Может быть, .NET 2.0?
именно.там надо скачать файл dotnetfx.exe
geyser написал(а):
Точный текст ошибки?
когда установка начинается,проходит несколько секунд,а затем появляется табличка - "Установка Microsoft .NET Framework 1.0".в окне: "Setup cannot continue because this version of the .NET Framework is incompatible with a previously installed one. For more information see http://support.microsoft.com/support/kb ... .asp"
дальше я нажимаю "OK" (поскольку ничего другого и не нажмёшь),в окне установки высвечивается: "Ошибка при установке.В процессе установки произошла следующая ошибка:Ошибка установки",а в ещё одном окне под названием setup.exe написано вот что: "setup.exe has encountered a problem and needs to close. We are sorry for the inconvenience.Please tell Microsoft about this problem." надо выбирать - либо "Send Error Report" либо "Don't Send".
вот
geyser написал(а):
Однако, если .NET не встало, то run_*.bat не должны работать в принципе.
geyser написал(а):
не должны работать в принципе
но работают!
geyser написал(а):
При запуске Оньки из основной папки с буквами всё в порядке?
yes
geyser написал(а):
В исходной Оньке классы персов (ONCC) в каждом уровне свои.
Поэтому Мукад есть только в 2-х главах из 14, Барабас - в 3-х.
Самое элементарное, что делает Edition - глобализация ONCC.
ага,понял,спасибо
Оффлайн
"Установка Microsoft .NET Framework 1.0"
.NET 1.0? Какого хрена? Мои ссылки - на 2.0
"Setup cannot continue because this version of the .NET Framework is incompatible with a previously installed one."
Ну ещё бы. Если ты пытаешься поставить .NET 1.0 поверх 2.0, то, в общем, удивляться нечему.
Похоже на то, что ты каким-то образом поставил-таки себе .NET 2.0
Поэтому собственно Edition по идее должен работать. Поздравляю.
То есть не поздравляю, а прошу однозначно подтвердить.
Работают ли .bat-ники из папки Oni\edition\install?
"При запуске Оньки из основной папки с буквами всё в порядке? - yes" Вот как...
Есть подозрение, что в папке Oni у тебя лежит два движка, русский и английский.
Батники запускают конкретно Oni\Oni.exe, а он - я так подозреваю - английский...
А тот, который ты обычно запускаешь - может быть, OniRu.exe или OniRuNoCD.exe?
Оффлайн
Не получилось разобраться...
Я увидел картинку <Коноки-Барабасы> и захотел тоже так сделать. Вот картинка http://onimia.ru/doc/game_gallery_res.php?6
Но не получилось. Пытался наforcить Конок, но в ответ получил очень интересный факт. Я смотрю с глаз одной Коноки, а управляю другой... Пытался найти, как изменять по индексу команду-не нашел. Замучился! Помогите!
И еще один вопрос: на уровнях <аэропорт>, <биолаборатория> есть трупы TCTF'овцев... Их можно оживить? У меня такое впечатление, что нет...
Оффлайн
Трупов я уверен нельзя воскрешать (они для красоты лежат, и не обладают, какими-либо функциями))))!!)
Меня интресеут другой вопрос, есть ли скрипт у кого-то или на сайте где-нибуть, который делает возможным персов из одного уровня перемещать в другой уровень!! Из первого уровня персов во второй, из второго в третий и.т.д. Шоб например весь TCTF переместить в последний уровень (из регеональной штаб квартиры, из 2-ого уровня и.т.д.) Сам пытался, но запутался окончательно((
Оффлайн
Да это ж легкотня! Достаточно только знать имена классов. Если ты их не знаешь, то вот этот сайт содержит полную информацию о персах, которые есть вообще в игре. Даю ссылочку
http://ssg.oni2.net/subfold/charas/charas.htm
В последнем уровне ты берешь, копируешь всех своих чудиков и просто меняешь их класс... Для этого надо просто угадать их номер. Всё понятно?
Добавлено спустя 1 минуту 42 секунды:
Ну может всё-таки Geyser знает ответ на мой вопрос? Очень хочется! Прям не могу!
Отредактировал(а) Gelo (04-05-2008 23:05:16)
Оффлайн
"Трупов я уверен нельзя воскрешать (они для красоты лежат, и не обладают, какими-либо функциями)" Правильно.
"есть ли скрипт у кого-то или на сайте где-нибуть, который делает возможным персов из одного уровня перемещать в другой уровень"
Далеко не в первый и, надеюсь, в последний раз говорю - скрипты здесь ни при чём. Этим занимается CHAR a.ka. BINACJBOCharacter.
http://wiki.oni2.net/CHAR
http://wiki.oni2.net/AE:Adding_spawnable_characters
"Пытался наforcить Конок, но в ответ получил очень интересный факт. Я смотрю с глаз одной Коноки, а управляю другой."
Коноку forcить без толку, так как она оформлена под игрока - не умеет драться и даже стрелять. Нужна Конока-не-игрок, с искусственным интеллектом.
Как именно Амэ с Михой добивались этого - неочевидно, но там как пить дать не обошлось без бинарных хаков (пушка Барабаса, например, похачена).
Вероятнее всего, они хачили тот самый BINACJBOCharacter : сделали konoko не-игроком и добавили Коноку-игрока с другим именем, например, char_0.
"В последнем уровне ты берешь, копируешь всех своих чудиков и просто меняешь их класс... Для этого надо просто угадать их номер. Всё понятно?"
Gelo, не надо так, а то ещё обидится кто... Угадывать номера челов - совсем не легкотня.
Ты, наверно, недостаточно с этим экспериментировал, а туда же - "всё понятно?"... Блин.
Менять челам класс - нехилая возможность, но есть и недостатки, аж целых две штуки.
Во-первых - обращаться к челам по индексу - в общем случае - довольно неудобно.
Челы приходят и уходят, заполняя и освобождая ячейки в памяти, то бишь индексы.
Если нет систематического контроля челов - обращаться по индексу просто нельзя.
Во-вторых - далеко не всё можно сделать с челом, обращаясь к нему по индексу.
Например, если вы наспоунили двойников - им нельзя приказать куда-то бежать.
Оффлайн
Я с этим уже работал. Не очень много, но работаю до сих пор. Я взял, допустим, превратил чела номер 1 в Барабаса, чела номер 2 в Мукада. Увидел, что промахнулся-в финальной битве изменились мой TCTF'овец и Гриффин. Выхожу из игры, ставлю номера 4 и 5. И опять промахиваюсь: я превратил Фурию в Барабаса-это хорошо, но вот Муро стал Мукадом. И снова изменяю... Тут только терпение... <Им нельзя приказать куда-то бежать...> Согласен, но вроде товарищу Ser это и не надо. Он просто хочет мочилово. Ведь согласись, в последней битве никому не надо куда-то бежать.
<А то еще обидится кто...> За что, за <всё понятно?>? Ну я вообще-то говорил спокойно, без раздражения. Я всегда так пишу, мол, если непонятно, то я еще подробней объясню.
Честно говоря, очень расстроился из-за того, что скриптами мой вопрос не решить. А это вообще трудно, сделать так, как ты сказал? Хотя, зачем я спрашиваю, ведь до такого уровня я еще не дошел. И дойду нескоро...
Оффлайн
"И снова изменяю... Тут только терпение..." Скрипты - точная наука. "Угадывать" индексы НЕЛЬЗЯ!
Я сказал, как правильно с этим работать. Точнее, ссылку дал. На чёткие инструкции. По-английски.
Ты должен, например, сделать chr_death_lock всем челам, заспоуненным до "Барабаса" и "Мукада".
Тогда они не станут трупами (и не освободят индекс), пока ты этого не захочешь. "Всё понятно?"
Оффлайн
Что-то недоходит... А если буду угадывать, то что тут плохого? Вот в том-то и дело, что ты ссылочку на английский ресурс дал, а мне это...
Оффлайн
Вот в том-то и дело, что ты ссылочку на английский ресурс дал, а мне это...
Если ты не способен совладать с английским ровно настолько, чтобы понять вполне конкретную инструкцию к решению вполне конкретной проблемы, то какие могут быть надежды на результаты в области скриптинга? Ведь скрипты - это такой же точно язык, даже строже в смысле опечаток и ошибок. Если человек забил на иностранные языки - то учить такого человека скриптить всё равно, что учить его этим самым иностранным языкам. Разницы практически никакой.
Именно поэтому меня ломает объяснять всё по-русски. Потому, что способные и любознательные (в смысле логики в целом и программирования в частности) понимают, что без английского - никуда. И даже если у них не хватает интуиции, сама готовность воспринимать науку на английском - это очень значительная разница. С людьми, которые в меру своих возможностей научились изъясняться или хотя бы со словарём читать по-английски - гораздо приятнее работать.
Что-то недоходит... А если буду угадывать, то что тут плохого?
А то тут плохого, что индексы эти могут меняться от раза к разу.
"А? Эээ... Так-то, дружок... В этом-то всё и дело." (C) Угадайте Кто
Оффлайн
Gelo можно чуть по подробней ! Я пытаюсь для начало превратить TCTF из 2-ого уровня, в чёрного TCTF из посленего уровня! Ничего неполучается, игра просто не запускается можешь просто прописать эту команду, на твоём примере сразу врублюсь!)))
Оффлайн
geyser написал(а):
.NET 1.0? Какого хрена? Мои ссылки - на 2.0
подожди...ладно,попробую разобраться...
geyser написал(а):
Работают ли .bat-ники из папки Oni\edition\install
да.у меня там их куча - step0001,step0002,big_deal,big_zeal и т.д.
просто...в общем,я просто хочу спросить - даже если edition у меня установлен,как сделать что-либо,как ты выразился,глобальным.в этой папке есть GameDataFolder.ну,попробовал я изменить чей-нить класс на класс Мукада - вылетает с табличкой "Blam!" (точного текста не помню,но догадываюсь,что это "Дьявол!Оп-па,Они навернулась!")
geyser написал(а):
А тот, который ты обычно запускаешь - может быть, OniRu.exe или OniRuNoCD.exe
так,подожди,сейчас ты говоришь про ярлык или про vtuneapi.dll?
если первое,то запускаю я Oni.exe -noswitch
Добавлено спустя 2 минуты 49 секунд:
Ser написал(а):
Gelo можно чуть по подробней ! Я пытаюсь для начало превратить TCTF из 2-ого уровня, в чёрного TCTF из посленего уровня! Ничего неполучается, игра просто не запускается можешь просто прописать эту команду, на твоём примере сразу врублюсь!)))
видимо,ты не сделал всех чуваков глобальными.вот - Seventh Anniversary Edition, Версия Абсолютный Ноль
следуй указаниям,что-нить не получится - пиши туда же,дабы не оффтопить здесь
Отредактировал(а) Freestyler (05-05-2008 10:54:34)
Оффлайн
"даже если edition у меня установлен,как сделать что-либо,как ты выразился,глобальным."
Edition это делает сам. step000# (# = 1, 2, 3) - это глобализация челов, звуков и текстур.
Для верности проверь, что у тебя не самая ранняя версия Edition. Бери лучше отсюда:
Последний нонешний денёчек...
http://geyser.oni2.net/edition/20080121
"попробовал я изменить чей-нить класс на класс Мукада - вылетает с табличкой "Blam!" "
0) "Damn!" "Blam, Oni crashed" ??????? То есть твой Oni.exe - английский-таки движок?
1) Как именно ты запросил класс Мукада? Не надёжнее ли проверять кнопкой F8?
"вот - Seventh Anniversary Edition, Версия Абсолютный Ноль" Это очень старая версия, люди.
Она хороша только наличием инструкций на русском. А ставить надо другие версии, поновее.
"запускаю я Oni.exe -noswitch"
Окей, и судя по ошибке при вылете, этот Oni.exe - английский движок. А Онька у тебя Букина. А английский движок русские буквы не переваривает. Всё нормально.
Почему буквы отображаются, когда ты запускаешь Oni вручную из папки Oni - вот в чём вопрос... Может быть, в этом случае ты запускаешь вовсе не Oni.exe, а?
"пиши туда же,дабы не оффтопить здесь"
Ага. Ибо здесь оффтопим мы.
просто...в общем,я просто хочу спросить - даже если edition у меня установлен,как сделать что-либо,как ты выразился,глобальным.в этой папке есть GameDataFolder.ну,попробовал я изменить чей-нить класс на класс Мукада - вылетает с табличкой "Blam!" (точного текста не помню,но догадываюсь,что это "Дьявол!Оп-па,Они навернулась!")
Хочешь-то ты хочешь, но спрашиваешь очень путано. Хоть на точки не поскупился - и на том спасибо.
Оффлайн
geyser написал(а):
Бери лучше отсюда
хорошо,щас я всё устрооою....
geyser написал(а):
То есть твой Oni.exe - английский-таки движок?
без понятия.раньше я загружал Oni.exe который был изначально в папке Они,т.е. при установке
geyser написал(а):
Не надёжнее ли проверять кнопкой F8?
блин,в том-то и дело что коды у меня не работают!
geyser написал(а):
А ставить надо другие версии, поновее.
Окей,поставлю
geyser написал(а):
Ага. Ибо здесь оффтопим мы.
Оффлайн
таак,подожди...
geyser написал(а):
Почему буквы отображаются, когда ты запускаешь Oni вручную из папки Oni - вот в чём вопрос...
неет,в этом случае всё,конечно,нормально!буквы не отображаются,когда я запускаю run_full.bat или run_wind.bat
Добавлено спустя 8 минут 47 секунд:
Gelo написал(а):
Я взял, допустим, превратил чела номер 1 в Барабаса, чела номер 2 в Мукада. Увидел, что промахнулся-в финальной битве изменились мой TCTF'овец и Гриффин. Выхожу из игры, ставлю номера 4 и 5. И опять промахиваюсь: я превратил Фурию в Барабаса-это хорошо, но вот Муро стал Мукадом. И снова изменяю... Тут только терпение...
ты что?!наугад?!ох...а нельзя ли счётом?0 - это Маи,1,2 и 3 - это Гриффин с двумя TCTF'щиками,ну а 4,5,6 - Муро с фуриями.и так на каждом уровне!вот только проблема в том,что врагов на уровне уж больно много - запутаться легче лёгкого...считай себе и всё!хотя есть ещё кое-что...Гейсер сказал,что враги занимают и освобождают индексы (1,2,3 и т.д.) по мере подыхания.один умер - всё,ты в провале.для примитива сойдёт,а так - нужно всё это учитывать.эт прям как математика,если не сложнее...
Оффлайн
Гейсер,ты уж извини что мне надо "всё и сразу",но это мне пока важнее всего.как сделать так,чтобы происходило что-то,если умирает Муро,и происходило что-то,если умирает Гриффин?ну,я пишу
chr_wait_health Muro 0 [то,что мне нужно] win
затем
chr_wait_health Griffin 0 [то,что мне нужно]
так в результате получается вот что:когда умирает Муро,всё происходит по плану,но если умирает Гриффин,ничего не происходит.если я поставлю наоборот,получится обратный результат: если умирает Муро,ничего не происходит,а если Гриффин,то да.но кое-что ещё даёт о себе знать:когда произойдёт всё после смерти Гриффина,начинает работать то,что происходит при смерти Муро!
в общем,как я понял,эти два chr_wait_health нужно как-то разделить.строками - не получается,знаками "#" - то же.тогда как?
Оффлайн
Да. Согласен. Если честно, только вчера дошло. Но у меня такое ощущение, что я всё-же что-то не до конца понял. Вот только что?...
Оффлайн
мы постоянно что-то упускаем. кстати,пока нашего товарища Гейсера нет,не мог бы ты рассказать мне о локациях?что это вообще такое?
Оффлайн
Насколько я понимаю-это уровень. Склад, лаборатория, резиденция, крыши-всё это локации. Это я так понимаю. Но, возможно, сейчас придет товарищ Geyser и скажет мне: "Садись, два!"...
Оффлайн
"пока нашего товарища Гейсера нет" Товарищу Гейсеру вы надоели, так что теперь он будет заходить сюда не чаще СФеЛи. Привыкайте.
"блин,в том-то и дело что коды у меня не работают!" Вот уж действительно блин. В отсутствии толковой жалобы могу только посочуствовать.
"неет,в этом случае всё,конечно,нормально!буквы не отображаются,когда я запускаю run_full.bat или run_wind.bat"
Какое тебе, блин, "конечно"? Мудрец нашёлся... Перестань ходить вокруг да около и докладывай детально.
Скрипты run_*.bat запускают Oni.exe из папки Oni, так? А вручную ты запускаешь тот же движок? Точно?
Я ведь почему спрашиваю?
Потому, что в Oni\edition\GameDataFolder по идее оказываются те же игровые данные, что в Oni\GameDataFolder
А если и движок, вызываемый через run_*.bat , совпадает с тем который ты вызываешь вручную из папки Oni ...
Тогда разницы с русскими шрифтами не должно быть никакой. Это ис-клю-че-но.
Так что если ты думаешь иначе, ты по умолчанию заблуждаешься. Проверь ещё.
"один умер - всё,ты в провале.для примитива сойдёт,а так - нужно всё это учитывать.эт прям как математика,если не сложнее..."
Во! Кое-что кое-до-кого уже начинает доходить. Наука не сложнее арифметики, но если у вас с арифметикой проблемы, то это ещё ничего хорошего не значит.
"Если честно, только вчера дошло. Но у меня такое ощущение, что я всё-же что-то не до конца понял. Вот только что?"
Если вам лень полистать пару страниц, найти ссылку на английский базар и разобраться в нём - ничем не могу помочь.
"один умер - всё,ты в провале." Я сказал, как с этим бороться. Сделать всем chr_death_lock ImjaChela 1 , до времени.
"не мог бы ты рассказать мне о локациях?что это вообще такое?"
Не знаю, что такое "локация". Первый раз слышу применительно к Они.
Если ты о chr_location и chr_location_settocamera, то location=положение.
"эти два chr_wait_health нужно как-то разделить.строками - не получается,знаками "#" - то же.тогда как?"
Тебе нужны две параллельные ветки логики. Ключевое слово - fork , ключевое понятие - функция (func).
Изучай чужие скрипты, а пока вот тебе первое и последнее "личное" обслуживание в виде готового скрипта.
func main { goto -200 1485 -2700 ai2_spawn Muro ai2_spawn Griffin fork WaitForGriffinToDie fork WaitForMuroToDie } func WaitForGriffinToDie { dmsg "Waiting for Griffin to die..." chr_wait_health Griffin 0 dmsg "Griffin is dead." } func WaitForMuroToDie { dmsg "Waiting for Muro to die..." chr_wait_health Muro 0 dmsg "Muro is dead." }
Оффлайн
geyser написал(а):
Вот уж действительно блин. В отсутствии толковой жалобы могу только посочуствовать
Даодан установлен,коды не работают.скажи,что я ещё должен "доложить"
geyser написал(а):
А вручную ты запускаешь тот же движок? Точно?
на данный момент в папке "Они" у меня два движка - Oni.exe и Oni.exe -noswitch оба русские.точно
geyser написал(а):
Первый раз слышу применительно к Они.
в учебнике по скриптированию сказано,что любое оружие или предмет можно поместить в локацию.но что такое эта самая локация там толком не сказано.ну да ладно,это я так,для справки спросил...
geyser написал(а):
Изучай чужие скрипты
так я и изучаю...половину проблем таким способом решил
geyser написал(а):
а пока вот тебе первое и последнее "личное" обслуживание в виде готового скрипта.
спасибо тебе огромное,мастер Geyser!
Оффлайн
"в учебнике по скриптированию сказано,что любое оружие или предмет можно поместить в локацию"
Ох уж мне этот учебник... Предметы и оружие можно размещать только на флагах. См. в другой ленте.
"в папке "Они" у меня два движка - Oni.exe и Oni.exe -noswitch оба русские.точно" То есть один движок?
( -noswitch - всего лишь входной параметр для движка, и с лежащими в папке файлами никак не связан)
Так что проверь ещё раз, пожалуйста, какие именно файлы с расширением .ехе лежат в папке Они.
Файлы run_full.bat и run_wind.bat запускают Oni\Oni.exe и Oni\Oni.exe -noswitch, соответственно...
Скажи ещё раз, пожалуйста, как именно ты запускаешь Oni вручную, из папки Oni, мимо edition.
Твоё "оба русские. точно" выглядит ненадёжно за счёт грубой неточности с самим понятием движка.
Я до сих пор подозреваю, что у тебя в папке Oni затесался английский движок под названием Oni.exe
А ещё я подозреваю, что есть второй движок, русский, с другим названием, в той же папке Oni.
"Даодан установлен,коды не работают." Для полноты подтверди следующее.
Сделал ли ты в Окнах английскую клавиатуру клавиатурой по умолчанию?
Выбираешь ли английскую клавиатуру перед тем, как запустить Они?
Оффлайн
geyser написал(а):
"в папке "Они" у меня два движка - Oni.exe и Oni.exe -noswitch оба русские.точно" То есть один движок?
( -noswitch - всего лишь входной параметр для движка, и с лежащими в папке файлами никак не связан)
Так что проверь ещё раз, пожалуйста, какие именно файлы с расширением .ехе лежат в папке Они.
Файлы run_full.bat и run_wind.bat запускают Oni\Oni.exe и Oni\Oni.exe -noswitch, соответственно...
Скажи ещё раз, пожалуйста, как именно ты запускаешь Oni вручную, из папки Oni, мимо edition.
Твоё "оба русские. точно" выглядит ненадёжно за счёт грубой неточности с самим понятием движка.
Я до сих пор подозреваю, что у тебя в папке Oni затесался английский движок под названием Oni.exe
А ещё я подозреваю, что есть второй движок, русский, с другим названием, в той же папке Oni.
всё,проблема решена!!! оказывается,что ты был,как всегда,прав.просто Oni.exe почему-то был английским движком,а Oni.exe -noswitch - русским!я удалил Oni.exe и стёр -noswitch у Oni.exe -noswitch.темноты у меня по-прежнему нет,и едитион спокойно включается на русском!спасибо огромное,Гейсер!
geyser написал(а):
Сделал ли ты в Окнах английскую клавиатуру клавиатурой по умолчанию?
Выбираешь ли английскую клавиатуру перед тем, как запустить Они?
на оба вопроса положительный ответ.да и вообще,сдались мне эти коды?и без них хорошо - я сплошь на скриптах проживу...
P.S. OTA - это просто НЕЧТО!взял ту ссылку,которую ты мне давал,перевёл,скачал - тащусь...DM на крышах - полный улёт!всё,как просил Gelo: стреляешь,дерёшься,умираешь,появляешься,продолжаешь...это реальное МОЧИЛОВО!до сих пор опомниться не могу...ОТУ сделал ты?
Отредактировал(а) Freestyler (07-05-2008 13:04:02)
Оффлайн
Oni.exe почему-то был английским движком,а Oni.exe -noswitch - русским!
Но, в энный раз, "Oni.exe -noswitch" не может быть названием движка... или может?
Ты, что ли, ему такое название сделал? Переименовал "Oni.exe" в "Oni.exe -noswitch"?
Ну-ну...
на оба вопроса положительный ответ.да и вообще,сдались мне эти коды? и без них хорошо - я сплошь на скриптах проживу...
ДевМода - незаменимый инструмент для работы со скриптами и много чего ещё. Ну и другие весёлые читы есть - kangaroo...
Почему у тебя не работают читы - не понимаю (а с английским движком - тоже?). Постепенно разберёмся, ну а пока живи без.
"ОТУ сделал ты?" Ну я. Вообще-то я написал ядро, а адаптацию к разным уровням поручал другим. Но Крыши доводил конкретно я.
Другая версия, сделанная конкретно мной: http://geyser.oni2.net/OniTeamArena/WIP/ABPbis.zip
Ещё есть во эта, которую я по заказу чинил: http://geyser.oni2.net/OniTeamArena/WIP/HQfixed.zip
Оффлайн
Я скачал. Здорово! Правда успел просмотреть только "биолабораторию" не всю и "аэропорт" тоже не весь. Но в "биолаборатории" есть 2 косяка. Косяк номер 1: когда играешь за ученого, связиста и других, у которых приемы такие, как у TCTF, то при обычном броске (вперед+удар рукой) игра вылетает. Но это, наверное, глюк эдитиона. Товарищ Geyser, разберитесь, пожалуйста.
И теперь глюк номер 2: это уже глюк самого скрипта. Если убить камикадзе (ну, того, который взрывается при смерти), то начинает идти заставка, которая идет перед третьим сохранением (когда Маи бросает камикадзе с вышки) и, естесственно, игра вылетает. Значит, камикадзе убивать нельзя! Но в том прикол, что он первый лезет под удар. Я успел дойти только до места, где всё оранжевое. Надоело, когда игра вылетает! И еще последний глюк: если никого не убить, то место не меняется-вы всё время будете <плавать> в кислоте.
Оффлайн
"при обычном броске (вперед+удар рукой) игра вылетает. Но это, наверное, глюк эдитиона. Товарищ Geyser, разберитесь, пожалуйста."
Да, это глюк последних версий, о котором я сам часто забываю. Лузер виноват, ухачил кучу анимаций, но с проверкой сильно подкачал.
Будет время - слеплю версию, в которой таких вылетов не будет. Извините за трабл, и спасибо за жалобы - лучше поздно, чем никогда.
"Если убить камикадзе (ну, того, который взрывается при смерти), то начинает идти заставка, которая идет перед третьим сохранением"
Ну это ты сам виноват. Скрипты, не имеющие отношения к Арене, надо убрать. Иначе гарантируется косяк на косяке (если загрузится! ).
Если будешь и дальше жаловаться на "биолабораторию" и "аэропорт" - будь другом, давай ссылки на скрипты, для однозначности.
Оффлайн
Дело не в изменениях, а в источнике твоих скриптов (откуда качал), и в процедуре установки.
Оффлайн
geyser написал(а):
Ты, что ли, ему такое название сделал? Переименовал "Oni.exe" в "Oni.exe -noswitch"?
Ну-ну...
а в чём,собственно,дело?темноты нет,едитион спокойно запускается,да и ладно...
geyser написал(а):
Постепенно разберёмся, ну а пока живи без
ура!ура!ура!читы ЗАРАБОТАЛИ!как и ДевМода.оказывается,дело было,как всегда,в моей несообразительности.я НЕ ставил английскую раскладку по умолчанию.решил проверить,поставил - читы заработали!я безмерно рад!
Гейсер,у меня к тебе ещё один,по всей видимости,глупый вопрос: если я сделал скрипт в Edition'е,пойдёт ли этот скрипт у тех,кого нет эдитиона?
Отредактировал(а) Freestyler (08-05-2008 10:36:53)
Оффлайн
"а в чём,собственно,дело?темноты нет,едитион спокойно запускается,да и ладно..."
Я всего лишь пытаюсь разобраться в том, как именно ты лоханулся с движками
"оказывается,дело было,как всегда,в моей несообразительности."
Ну что я могу сказать? Ты слишком самоуверен. Учись сомневаться.
Тормоза бывают разные, но такого, как ты, я пока не встречал...
"если я сделал скрипт в Edition'е,пойдёт ли этот скрипт у тех,кого нет эдитиона?"
Зависит от скрипта и от Эдишна. Главная проблема на данный момент - глобализация чел-классов (но чем дальше, тем больше будет отличий между Эдишн и "нормальной Онькой").
С глобализацией проблема такова, что если твой скрипт делает кому-то chr_set_class, а требуемого класса из данного уровня не видно, то у пользователя Онька вылетит на фиг
Оффлайн
geyser написал(а):
Тормоза бывают разные, но такого, как ты, я пока не встречал...
т.е.?это значит,что я худший из тормозов или лучший?
geyser написал(а):
Я всего лишь пытаюсь разобраться в том, как именно ты лоханулся с движками
сам толком не знаю...
geyser написал(а):
Зависит от скрипта и от Эдишна. Главная проблема на данный момент - глобализация чел-классов (но чем дальше, тем больше будет отличий между Эдишн и "нормальной Онькой").
С глобализацией проблема такова, что если твой скрипт делает кому-то chr_set_class, а требуемого класса из данного уровня не видно, то у пользователя Онька вылетит на фиг
ясно...
Оффлайн
"это значит,что я худший из тормозов или лучший?" Лучший с конца.
Отменный тормоз, по правде говоря. Кошмар эксперта-траблшутера...
Человек, который действительно уверен, что всё делает правильно.
И которому надо семь раз не поверить, чтобы он сам засомневался.
Оффлайн
geyser написал(а):
Отменный тормоз, по правде говоря. Кошмар эксперта-траблшутера...
Человек, который действительно уверен, что всё делает правильно.
И которому надо семь раз не поверить, чтобы он сам засомневался
да потому что я проверяю всё напрямую,о косвенных вещах не думая.к тому же,я только учусь!
Оффлайн
xDDDDDDDDDDD Freestyler VenoMan этоппц)))
Гейсеру можно только посочувствовать,жееесть...
З.Ы.Прочел весь форум,не нашел.Если туплю-не подскажите как ai2_create персонажа которого вроде как на уровне нет (Едишн,даодан и все-все-все включено,работает отлично)???Насчет location- где то читал,что 0-начальная точка уровня,проверил-не пашет...
Как вообще location узнать?если я правильно понял над этим вопросом парятся уже не один год,и ответа вроде как нет.
ОЧень хотелось бы объяснение на конкретном примере...Скажем,очень хоцца чтоб конкретного персонажа скажем...l4_t1(уровень TCTF) превратился (как бабочка) в Мурло,облдал его боевыми хар-ками и т.п.В общем чтоб произошло ЧУДО.
З.Ы.Народ,если кто может-помогите,не стоит Гейсера тк напрягать,он уже с явным раздражением писал...
Оффлайн
Тут у меня помню такая путаница была! Проверял телепортом все возможные точки, некоторых нету! Если от 1 до 4 есть, то от7 до 17 не пашет. Персонажа нада если портануть, то пиши его имя, и чтобы он был жив, и чтобы он вообще был до команды, и чтобы он существовал в данном сейве. Надеюсь ты понял. Начальные точки могут быть разными, я долго парился чтобы найти все в закрытой лаболратории. Лепить персов как - понятя не имею, мне проще скопировать, да текстурку ему поменять.
Отредактировал(а) Cursor (27-06-2008 22:56:45)
Оффлайн
Люди, помогите плиз неумелому человеку. как в катсценах камерой управлять? напишите, плиз все возможные действия!! заранее благодарен тому человеку, который отзовётся!
Оффлайн
Смотри учебник по скриптированию, там есть это, и всё что с этим связано. Я для этого и писал так что прежде чем спрашивать как написать ту, или иную команду, загляните туда.
Оффлайн
У меня такой вопрос:как задать задержку между выстрелами? Про roughjustie, я знаю, но говорят что можно самому задавать?
Оффлайн
2ilijaos
в скриптах - нельзя
в ресурсах, в файле ONWC по адресу 0х21Е содержится задержка между выстрелами в 1/60-ых секунды
Оффлайн
качай OniUnPacker и StructDefs к нему, всё есть на главной странице
Оффлайн
RavenField написал(а):
З.Ы.Прочел весь форум,не нашел.Если туплю-не подскажите как ai2_create персонажа которого вроде как на уровне нет (Едишн,даодан и все-все-все включено,работает отлично)???Насчет location- где то читал,что 0-начальная точка уровня,проверил-не пашет...
Как вообще location узнать?если я правильно понял над этим вопросом парятся уже не один год,и ответа вроде как нет.
ОЧень хотелось бы объяснение на конкретном примере...Скажем,очень хоцца чтоб конкретного персонажа скажем...l4_t1(уровень TCTF) превратился (как бабочка) в Мурло,облдал его боевыми хар-ками и т.п.В общем чтоб произошло ЧУДО.
приступим...
создать персонажа, которого на уровне нет можно только через хаканье CJBOCharacters.BINA (инструкции на вики)
0 - начальная точка уровня? ересь.
location узнать можно с помощью команды where
максимум что я могу предложить через скрипты, это
1. войти в игру на уровень TCTF и ВКЛЮЧИТЬ ДЕВМОДУ
2. дождаться спауна l4_t1
3. прописать chr_who, найти char_ID (цифра после решётки) l4_t1 и записать его на бумажке
4. удостовериться чтоб больше в игре ничего ничего не случалось (чтоб всё как по плану)
5. в файле tctf_spawn_syndicate после строчки ai2_spawn l4_t1 вписать chr_set_class @char_ID_который_ты_записал@ muro_generic
и сразу несколько нюансов
1. Сработает не всегда (может случайно стать "мурлом" другой бот)
2. Драться он будет не так, как "мурло"
А чтоб работало всегда, надо в CJBOCharacter.BINA шестой главы найти строчку l4_t1, недалеко до этой строчки будет надпись TCTF_swat_1. Меняешь на muro_generic
Чтоб дрался как "мурло" надо сменить Melee ID. вообщем ищешь в том же CJBOCharacter.BINA шестой главы после строки l4_t1 такой участок -
00 00 00 00 00 00 00 00 05 00 2A 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 64 00 00 00 01 00 00 00
и заменяешь 05 на 1Е и всё. и никаких скриптов не надо
разумеется всё это будет работать только с поставленной AE
Отредактировал(а) demos_kratos (28-08-2008 15:53:19)
Оффлайн
demos_kratos написал(а):
в ресурсах, в файле ONWC по адресу 0х21Е содержится задержка между выстрелами в 1/60-ых секунды
Кстати говоря, чем начисто портить пушку, имхо лучше чуть ниже заменить задержку по адресу 0х220, отвечающую за roughjustice.
demos_kratos написал(а):
неважно где понажимать F8 много раз, пока не станешь, эээ, "Мурлом" и записать номер класса muro_generic (у всех разный бывает)
demos_kratos написал(а):
@class_no_который_ты_записал_после_script_ID@
Да зачееем? О_о Зачем номер, когда есть культурное и статичное название? Не понимаю. >_<
Оффлайн
Мih@ написал(а):
Да зачееем? О_о Зачем номер, когда есть культурное и статичное название? Не понимаю. >_<
исправил, прошу простить
Мih@ написал(а):
Кстати говоря, чем начисто портить пушку, имхо лучше чуть ниже заменить задержку по адресу 0х220, отвечающую за roughjustice
возможно, но заменя числа по адресу 0х21Е не "начисто портит пушку", а сменяет основную задержку (спаси господи, зачем я это говорю человеку, который и так это знает...)
Отредактировал(а) demos_kratos (25-08-2008 08:23:32)
Оффлайн
demos_kratos написал(а):
возможно, но заменя числа по адресу 0х21Е не "начисто портит пушку", а сменяет основную задержку (спаси господи, зачем я это говорю человеку, который и так это знает...)
Ну? По моим представлениям, пушка с таким покорябанным параметром, как задержка между выстрелами - испорченная. Сам долгое время бегал со всем оружием с 0100 и соответствующими обоймами, знаю... ) Поначалу весело, а потом уже раздражает. Есть ведь специально придуманный для извращений roughjustice, который можно включать-выключать без консоли, даодана, скриптов, АЕ и всего-всего. Усилить его до опупения, и всё. Издалека даже не заметно.
Разумеется, речь не о реальном модифицировании вменяемых видов оружия с соответствующей правкой обойм, урона и прочая-прочая, а просто на будущее для тех, кому надо арбалет со скорострельностью в 3600 выстрелов в минуту.
И заодно на заметку для тех, кто писал об ONWC на OniStuff и вики и почему-то не понял сакрального смысла этой пары байт. -_-
Оффлайн
Мih@ написал(а):
И заодно на заметку для тех, кто писал об ONWC на OniStuff и вики и почему-то не понял сакрального смысла этой пары байт. -_-
на Galore я исправил, можно жить спокойно...
Оффлайн
demos_kratos написал(а):
3. прописать chr_who, найти script_ID (цифра после решётки) l4_t1 и записать его на бумажке
4. удостовериться чтоб больше в игре ничего ничего не случалось (чтоб всё как по плану)
5. в файле tctf_spawn_syndicate после строчки ai2_spawn l4_t1 вписать chr_set_class @script_ID_который_ты_записал@ muro_generic
Протестую. "script ID" никакого отношения к делу не имеет. То, что выводится после знака # в ответ на вызов chr_who (и поступает аргументом в chr_set_class и много ещё куда) - это так называемый "char ID" или "spawn ID", соответствующий порядку заполнения таблицы челов по мере их добавления в уровень и удаления из оного (если совсем честно - такое определение работает везде, кроме главы 3, в которой индексы по неизвестной причине ведут себя совсем уж непредсказуемо). А "script ID" - это такой никому не нужный индекс, прописанный в AISA ( http://wiki.oni2.net/AISA ), позволяющий споунить тупых ботов для катсцен, и фигурирующий в аутпуте chr_who не после знака #, а после словечка "id".
Мih@ написал(а):
И заодно на заметку для тех, кто писал об ONWC на OniStuff и вики и почему-то не понял сакрального смысла этой пары байт. -_-
Сам дурак. Давно бы на вики залогинился и поправил, так ведь нет... А тебе, demos_kratos - спасибо, удивил и обрадовал.
Оффлайн
Можно и мне со своим ламерским вопросиком потревожить гениев скриптования?
Суть такова: хочу воссоздать Мукадову телепортацию. У него-то, конечно, все по флагам расписано, но я придумал по-другому: забиндить на какие-нибудь клавиши функцию со скриптом chr_location 0 x x x... Вот эти "x x x" меня и волнуют.
В идеале, нужен скрипт, вычисляющий текущее положение игрока. Далее прибавляем к нему какое-то значение (хз даже примерно сколько, с координатами в они впервые столкнулся, метров 5 игровых будет достаточно). Ну и финал - локейшн к уже известным координатам... Телепортация за спину врага... должно быть интересно.
Господа скриптеры, реально ли такое осуществить?
Ну и менее глобальный замысел...
Подскажите, пожалуйста, имена фраз Мукада, "мухахаха" при телепортации и "девилстар")) И еще имя анимации, когда он накладывает на себя руки. Так-то инвиз я сделать смог, а анимации подходящей нет(
Отредактировал(а) Pathetique (28-08-2008 21:14:23)
Оффлайн
Pathetique написал(а):
Суть такова: хочу воссоздать Мукадову телепортацию.
Именно скриптами будет затруднительно...
Pathetique написал(а):
забиндить на какие-нибудь клавиши функцию со скриптом chr_location 0 x x x... Вот эти "x x x" меня и волнуют.
А вот меня больше волнует "забиндить". Скриптовую функцию на клавишу - пока что фантастика. Пока что разве что анимации на F2 и F3.
Pathetique написал(а):
В идеале, нужен скрипт, вычисляющий текущее положение игрока.
Вроде пока что такого нету. Может, например, с релизом daodan'а появятся соответствующие переменные/возвращающие_функции, наравне с такими вещами, как текущие хелсы персонажа, номер уровня, и т.п. Но пока что нету.
Pathetique написал(а):
Далее прибавляем к нему какое-то значение
Прибавляем мы не значение, а вектор - это раз. Помимо абсциссы, ординаты и аппликаты, есть такая штука, как направление, куда персонаж смотрит. Его тоже нужно переводить в соответствующий вид, и уже потом домножать и прибавлять.
Опять же, с арифметикой в скриптах плохо, и смешанного счёта и/или перевода между разными типами данных нету. Можно организовать складывалку, которая будет прибавлять чего-нибудь, пока счётчик не превышает значения координаты плюс координата вектора, "умноженная" всё сложением же. Проблема опять возникнет в том, что типы данных между собой практически совсем несовместимы, да и счёт у float затруднён...
Pathetique написал(а):
Ну и финал - локейшн к уже известным координатам... Телепортация за спину врага... должно быть интересно.
В случае телепортации врагов, лучше был бы полный рандом - и интереснее, и неожиданнее. Мукадовы телепортации тем и слабы, что он никогда не появится перед носом во время бега или не нападёт сбоку, а также никогда не догонит сзади. Всегда можно оторваться на достаточное расстояние, чтобы было легко развернуться и пнуть его с прыжка, а иногда и на интуитиве отбросить ударом назад. Это что касается того, что реально имеет смысл. +)
С телепортацией игрока всё гораздо проще, красивее и универсальнее. В даодановом режиме разработчиков можно телепортироваться с помощью клавиш "[" и "]": сначала во время движения нажимается [, и, через небольшой промежуток времени, ]. Если вместо wasd использовать ijkl, okl; или даже pl;', то вдвойне удобно и юзабельно. Кроме того, таким образом можно и летать. )
Что касается телепортаций с анимациями, то это можно сделать без скриптов вообще: достаточно сделать соответствующую анимацию, которая будет вызывать те синенькие партикли, по сути состоять из teleport_in и teleport_out, и перемещать анимируемого персонажа на достаточное расстояние. И привязать такие штуки, например, заместо стандартных кувырков. Будет вдвойне удобно, так как ещё и будет пресекаться особо наглое прохождение сквозь стены, которое ни к чему хорошему бы не привело.
Pathetique написал(а):
Подскажите, пожалуйста
Анимации:
NINCOMteleport_in и NINCOMteleport_out - телепортация.
NINCOMinvisible - накладывание рук для невидимости.
NINCOMtaunt1 и NINCOMtaunt2 - верчение с хохотом (к телепортации хохот отношения не имеет =))
Звуки - c17_99_24superninja (смех) и c18_79_13superninja (ЛакиДевилстар).
Оффлайн
Mih@, большое спасибо!
"Именно скриптами будет затруднительно..."
Значит, я сделал как-то по-другому О_о Я использовал скрипт, который облегчает выполнение ударов (вашего, кстати, авторства ). На данный момент вот чего я наворотить успел:
*На обычный удар ногой забиндена вертушка Муро.
*На удар рукой назад - вертушка рукой Муро))
*На удар ногой назад как раз
chr_animate 0 NINCOMteleport_in
chr_givepowerup 0 invis 350
То есть как это выглядит - игрок вертится на месте, появляются синие партиклы, затем моделька исчезает на 1 секунду и появляется там же, где и крутилась. После этого включается фазовая маска на 3-4 секунды (этого бывает достаточно))). Пробовал впихнуть туда же анимацию подката, или прыжка - чтобы во время исчезновения переместиться, не получилось. Сейчас буду пытаться фпихнуть туда звук.
"...состоять из teleport_in и teleport_out, и перемещать анимируемого персонажа на достаточное расстояние."
Эээ.. немного недопонял) При простой анимации телепорта никто никуда не перемещается, так может все-таки есть какая-то волшебная строчка, впихнув которую, скажем, в кувырок, можно перемещаться метров на 5 вперед?
Оффлайн
И кстати, как устроить чтобы при нажатии, допустим, удара рукой вперед появлялся шарег Мукада? Как приделать звук я уже знаю
Оффлайн
Pathetique написал(а):
Значит, я сделал как-то по-другому О_о
В облегчении ударов и практически всём интерфейсе используются chr_wait_. Именно на них я и предлагал привязать то, что нужно, взяв в качестве замещаемых приёмов кувырки. В скрипте "облегчения" используется то же самое, просто анимацию заменяет другая анимация, хотя могла быть функция любого содержания, и необязательно прерывающая старую анимацию.
Универсальный скрипт на вплоть до 1000 удобно редактируемых замещений с комментариями, кстати, я тоже писал, но неожиданно столкнулся с лимитом на объём скрипта, хотя некоторые тамошние наработки можно где-нибудь и использовать, если отыщу...
Pathetique написал(а):
Пробовал впихнуть туда же анимацию подката, или прыжка - чтобы во время исчезновения переместиться, не получилось.
Н-да? Приведи не получившийся код. К тому же, вовсе необязаельно анимацию изменять, можно сделать, например, такую функцию (на всякий случай универсализированную):func void gibmirinv (string anim_name, int invis_time)
{
chr_wait_animation(0, anim_name);
chr_givepowerup(0, invis, invis_time);
sleep(invis_time);
fork gibmirinv(anim_name, invis_time);
}
Вызвается строкой fork gibmirinv([название_анимации], [время])
. Звуки, новую анимацию или ещё чего-то добавить по желанию. Можно ещё сделать поддержку бесконечной невидимости (т.е. на анимации будет висеть вкл/выкл).
Pathetique написал(а):
Сейчас буду пытаться фпихнуть туда звук.
А с ним-то какие вообще проблемы могут возникнуть? О_о
Pathetique написал(а):
Эээ.. немного недопонял) При простой анимации телепорта никто никуда не перемещается
Мih@ написал(а):
Что касается телепортаций с анимациями, то это можно сделать без скриптов вообще: достаточно сделать соответствующую анимацию, которая будет вызывать те синенькие партикли, по сути состоять из teleport_in и teleport_out, и перемещать анимируемого персонажа на достаточное расстояние.
=)
Pathetique написал(а):
так может все-таки есть какая-то волшебная строчка, впихнув которую, скажем, в кувырок, можно перемещаться метров на 5 вперед?
Волшебных строчек не существует, только crash. Скриптами такое не сделать, надо менять саму TRAM. У меня есть пара извращённых идей по этому поводу, но это на 73% не сработает, заимеет очень существенное ограничение в скорости и вообще будет очень неудобно и совсем некрасиво. Лучше используй [].
Pathetique написал(а):
И кстати, как устроить чтобы при нажатии, допустим, удара рукой вперед появлялся шарег Мукада?
Скриптами, опять же, очень затруднительно: можно приделать к удару chr_giveweapon 0 w10_sni
или хотя бы chr_forceholster 0 0
(можно со счётчиком - в первый раз выдаём оружие, а дальше просто вынимаем), дать человеку время выстрелить, и почти сразу спрятать оружие обратно - chr_forceholster 0 1
. =) Заставить персонажа выстрелить при помощи скриптов вроде бы можно только плейбеками, но это очень неприятное и неудобное дело, ни разу не подходящее для битвы. Опять же - если надо, не стесняемся редактировать ресурсы. +)
Оффлайн
Еще раз спасибо, теперь все понятно.
Сейчас он просто крутится и исчезает на секунду со смехом аля "аццкоесатана") Этой секунды достаточно, например, чтобы увернуться от хэви кика, панча и еще от всего что можно))
Добавлено спустя 7 минут 47 секунд:
Кстати, насечет w10_sni... В AE оно заменено полностью на большую пушку-крикуна, или есть возможность получить маленькую черную точку, как в оригинальной Они?
Оффлайн
Pathetique написал(а):
Сейчас он просто крутится и исчезает на секунду со смехом аля "аццкоесатана")
Такие штуки, кстати, лучше всего привязывать на taunt (который по Ctrl). +)
Pathetique написал(а):
Кстати, насечет w10_sni...
Насчёт w10_sni забудь. ) Всё оказалось (вернее, было так изначально уже много лет, но для меня это новость О_о) также просто, как и с МутантомМуро, достаточно обыкновенного: chr_animate 0 NINCOMfireball
Чтобы был и выкрик "девилстар", и анимация, и светлячок. )
Оффлайн
"Такие штуки, кстати, лучше всего привязывать на taunt (который по Ctrl). +)"
Тоже верно. Ты не мог бы обьяснить мне побольше про []? Имхо ими пользоваться неудобно, то камера едет со скоростью черепашки, то летит очень быстро за пределы карты... Это вообще скриптовая штука, или в йадро зашыто? Если там какой-то скрипт, то почему бы не попытаться его модифицировать на мгновенный перенос вперед)
Оффлайн
Pathetique написал(а):
И кстати, как устроить чтобы при нажатии, допустим, удара рукой вперед появлялся шарег Мукада?
http://www.rapidshare.ru/766955 - качаешь это (выложил на рапиду, ибо почта.ру нагнулась) засовываешь в GameDataFolder (необходим daodan)
далее в папке GameDataFolder/IGMD/global/ создаёшь любой файл с расширением bsl (допустим fireball.bsl) и прописываешь в нём
func void firebl(void) { chr_wait_animation 0 KONCOMpunch_fw chr_animate 0 NINCOMfireball fork firebl }
а в _main.bsl файле желаемого уровня прописать
chr_set_class 0 konoko_par fork firebl
Оффлайн
Хм, я и сам немного разобрался. Если во время движения 2 раза быстро нажать ], то получается как раз то, что я задумывал! По сути. А на деле хорошо бы это в анимацию приделать) Эффект этой штуки (]) реально вызвать с помощью скриптов?
Добавлено спустя 55 секунд:
demos_kratos, огромное спасибо! Иду тестить)
Добавлено спустя 9 минут 11 секунд:
Все работает. demos_kratos, ты волшебник!
Оффлайн
Pathetique написал(а):
Это вообще скриптовая штука, или в йадро зашыто?
Вроде бы это штука, зашитая в daodan. Ну, или в саму девмоду...
Скрипты тут ни при чём изначально. Всё скриптовое, что подлежит редактированию простыми смертными, лежит в \IGMD\.
К тому же, мгновенный перенос - имхо не очень интересная штука, как и сама идея телепортации. Есть уворотки, есть красивое и регулируемое по направлению и расстоянию [] (прошу прощенья, всё-таки забыл ведь, как правильно ими пользоваться +))... Есть полёт, наконец. ) Зачем ещё упрощать игру?..
demos_kratos, аригато за привязку. )
Оффлайн
"есть красивое и регулируемое по направлению и расстоянию [] "
Научи меня регулировать расстояние)
А зачем упрощать - ради эффектности, красивый телепорт за спину врагу - у мну прям мечта децтва) Когда первый раз в Они играл, жутко завидовал Мукаду.
Теперь невидимость я воссоздал, девилстар тоже (за что вам обоим спасибо). Телепорт, наверное, не получится. Но буду искать выход. И ждать выхода новых возможностей бсл
Добавлено спустя 1 минуту 5 секунд:
Кстати, shift+w сквозь противника тоже было бы супер)
Оффлайн
Pathetique написал(а):
Научи меня регулировать расстояние)
В смысле? Чем больше промежуток между двумя нажатиями ], тем больше расстояние. Чем больше скорость движения при первом нажатии, тем быстрее перемещение камеры. )
Pathetique написал(а):
Кстати, shift+w сквозь противника тоже было бы супер)
Сквозь стены - легко. Сквозь противников скриптами вроде как нельзя...
Оффлайн
Жалко... а нажимать ] постоянно - неудобно. Её на другую кнопку забиндить можно?
Оффлайн
Ну тогда, наверное, последние 2 вопроса:
1) При анимации NINCOMteleport_in ниндзя крутится 2 раза (с эффектом) и исчезает на долю секунды. Можно как-нибудь продлить время исчезновения? Или только...
2) Изменить саму анимацию? Возможно ли это?
Оффлайн
Pathetique написал(а):
Можно как-нибудь продлить время исчезновения?
Скриптами - никак. Но зависит от того, какой именно смысл вкладывается в исчезновение. "Спрятать" игрока от собственной камеры можно парой строк: chr_mini_me=1
и chr_mini_me_amount=0
. Раскукожить обратно, соответственно, через chr_mini_me=0
.
Pathetique написал(а):
2) Изменить саму анимацию? Возможно ли это?
Ковыряй TRAM.
Оффлайн
Хм, спрятать-то понятно, а вот сделать невидимым и неприкасаемым? Если уж телепортации пока не добиться, почему бы не сделать исчезновение на пару секунд) Просто текущего времени недостаточно чтобы поймать в "пустышку", к примеру, хэви кик Муро.
Оффлайн
Поработал над уменьшением.... Теперь получается визуальное исчезновение на 3 секунды после анимации телепорта, с возможностью передвигаться. Уже хорошо, но противник видит, зараза. В учебнике прочитал про то как ослепить\оглушить врага. Но
func void hard_bk_fw_k (void) { chr_wait_animation 0 NINCOMtaunt1 chr_animate 0 NINCOMteleport_out 0 sleep 30 chr_mini_me=1 chr_mini_me_amount=0 ai2_make blind 1 sleep 150 ai2_make blind 0 chr_mini_me=0 chr_animate 0 NINCOMteleport_out chr_givepowerup 0 invis 350 sleep 350 fork hard_bk_fw_k }
не работает Как правильно прописать ослепление?
Отредактировал(а) Pathetique (29-08-2008 15:41:55)
Оффлайн
Pathetique написал(а):
Хм, спрятать-то понятно, а вот сделать невидимым и неприкасаемым?
invincible=1
, unstoppable=1
, chr_enable_collision=0
, chr_givepowerup 0 invis -1
... Ботов слепить не надо (всё равно ведь не заденут, так пусть пинают в пустоту), либо ai2_allpassive 1
рулит. +)
Кстати, по поводу прохождения сквозь врагов я опять ошибся. +) Всё можно, только не через chr_nocollision.func void gibmirnoc (string anim_name, int nocollision_time)
{
chr_wait_animation(0, anim_name);
chr_enable_collision=0;
sleep(nocollision_time);
chr_enable_collision=1;
fork gibmirnoc(anim_name, nocollision_time);
}
Вызывается fork gibmirnoc(NINCOMcrouch_fw, 46)
. =)
Оффлайн
@Pathetique
добавь для всего прочего chr_nocollision 0 1 (с последующим выключением)
Оффлайн
demos_kratos написал(а):
добавь для всего прочего chr_nocollision 0 1 (с последующим выключением)
chr_enable_collision=0. ) chr_nocollision отключает коллизии с архитектурой и атмосферой, но не отключает взаимодействий с персонажами. А эта штука - наоборот.
Оффлайн
Ребят, спасибо вам большое! Работаю.
Оффлайн
и ещё, правильно так - ai2_makeblind [имя_бота] 0/1
в твоём случае лучше использовать ai2_blind=1
вообще все команды смотрите здесь - http://ssg.oni2.net/commands.htm
Mih@ написал(а):
chr_nocollision отключает коллизии с архитектурой и атмосферой, но не отключает взаимодействий с персонажами.
благодарю, исправлюсь.
Отредактировал(а) demos_kratos (29-08-2008 15:59:31)
Оффлайн
ЙЕЕЕЕЕС!!!! Я это сделал!
func void hard_bk_fw_k (void) { chr_wait_animation 0 NINCOMtaunt1 chr_animate 0 NINCOMteleport_out 0 chr_enable_collision=0 invincible=1 unstoppable=1 ai2_allpassive 1 sleep 20 chr_animate 0 NINCOMcrouch_fw chr_mini_me=1 chr_mini_me_amount=0 sleep 70 ai2_allpassive 0 invincible=0 unstoppable=0 chr_enable_collision=1 chr_mini_me=0 chr_animate 0 NINCOMteleport_out sleep 170 fork hard_bk_fw_k }
Именно то, о чем я думал! Осталось пришить это к краучам во все стороны. Рулез! Еще раз домо аригато)) Вы просто гении)
Оффлайн
Оффлайн
Pathetique написал(а):
sleep 20
chr_animate 0 NINCOMcrouch_fw
элементарно заменить на sleep 300 и можно самому выбрать место назначения
Pathetique написал(а):
sleep 170
fork hard_bk_fw_k
слип то зачем? чтоб не злоупотреблять?
Оффлайн
"элементарно заменить на sleep 300 и можно самому выбрать место назначения"
Если поставить большой слип, то можно будет бегать в "портале", и даже атаковать. А это не есть хорошо. Вот если бы сделать что-то вроде фключателя: нажал раз, вошел в портал, добежал, нажал второй раз - вышел в выбранной точке.
Добавлено спустя 5 минут 9 секунд:
Вообще, сейчас в конечном варианте это выглядит так:
func void hard_bk_fw_k (void) { chr_wait_animation 0 NINCOMcrouch_fw chr_animate 0 NINCOMteleport_out 0 chr_enable_collision=0 sound_dialog_play c17_99_24superninja invincible=1 unstoppable=1 ai2_allpassive 1 sleep 17 chr_animate 0 NINCOMcrouch_fw chr_mini_me=1 chr_mini_me_amount=0 sleep 5 ai2_allpassive 0 sleep 25 invincible=1 unstoppable=0 chr_enable_collision=1 chr_mini_me=0 chr_animate 0 NINCOMteleport_out sleep 170 #это можно и убрать :) fork hard_bk_fw_k }
Все происходит секунда в секунду, слипы подправлены.
Оффлайн
Pathetique написал(а):
Вот если бы сделать что-то вроде фключателя: нажал раз, вошел в портал, добежал, нажал второй раз - вышел в выбранной точке.
Эээ... А почему бы и так не сделать? Создай булеву переменную, отвечающую за "нахождение в портале", и в зависимости от неё делай вход и выход. Можно добавить задержку или даже таймер, чтобы нельзя было там торчать слишком долго.
Возможность атаковать можно пресечь обыкновенными lock_keys.
Pathetique написал(а):
chr_animate 0 NINCOMteleport_out 0
Второй нолег по идее не нужен.
Pathetique написал(а):
sleep 170 #это можно и убрать
Комментарии в таком виде лучше не давать. +) Понимаю, что в собственно скриптах такого нет, но всё же. >_<
Оффлайн
Ясно. Вот этот режим (чем-то напоминает shadowstep в ВоВе)) лучше забиндить на таунт.
Оффлайн
товарищи, подскажите названия нестатичных переменных (хелсы, инвиз, щит, локация, угол обзора и т д)
P.S. 2Mih@
посмотри тему про моддинг, пожалуйстааа...
Оффлайн
demos_kratos написал(а):
товарищи, подскажите названия нестатичных переменных
Вроде как с точки зрения скриптов их не существует. Разве что в расширении бсл появятся функции, возвращающие подобные вещи (а также номер уровня, текущее оружие, количество патронов-батареек-гипов и т.д. и т.п.).
demos_kratos написал(а):
посмотри тему про моддинг, пожалуйстааа...
"О плагинах и крутом моддинге вообще"? Про .BINA навороченные? В без десяти пять ночи? О_о С утра погляжу, пока что особого представления не имею.
Пока что единственная догадка - неверно указан размер raw-части, там, где ссылка. Я так понимаю, работает всё, кроме дописанного после того места, где раньше raw-часть оканчивалась? Если поменять местами какого-нибудь родного персонажа с MK-клоном, клон спавнится? Ну, туда ответишь, чтоб не оффтопить, если что... )
Оффлайн
@Ghogot:
Курсор - мимо... Да, скрипты тут ни при чём, но и key_config.txt - тоже.
Двойной удар по W можно "упростить" только замодив TRAC или TRAM.
В теперешнем Эдишне именно так, но народ жалуется, верну как было.
@Остальное: Слишком много наговорено. Без комментариев пока.
Оффлайн
Подскажите, из-за чего могут совершенно не работать изменения, которые я вношу в скрипты? Сделать я хочу элементарную (по идее) вещь: избавиться от необходимости каждый раз вводить shapeshifter и перелистывать персонажей через F8, чтобы поиграть за другого персонажа, в данном случае - Муро. Версия игры - английская, ONCC Муро я вытащил из 19 уровня и впихнул в нулевой, так что через F8 он наипрекраснейшим образом доступен. Через консоль тоже: ввожу "chr_set_class 0 muro_generic" - получаю Муро. А попытка сделать скрипт, ни к чему не приводит. Например, открываю lab_main.bsl. Сразу за "func void main(void) {" ввожу "chr_set_class 0 muro_generic", т.е. выглядит это так:
func void main(void)
{
chr_set_class 0 muro_generic
дальше идет исходное содержание скрипта
Никакого результата. В чем загвоздка? Ради эксперимента пробовал прописывать превращение в других персонажей, которые уж точно доступны на этом уровне - тоже ни фига. Хотя дело и не может быть в этом, ведь через F8 Муро доступен. Опять же ради эксперимента попробовал прописать неуязвимость - invincible=1. Опять-таки ничего. Что я делаю не так? Я правильно понял, что если я хочу, чтобы что-нибудь происходило автоматически при загрузке уровня, то я должен это прописать сразу после "func void main(void) {" или нет?
Оффлайн
Uncle-Istvan, ты всё делаешь правильно. Если нет "никакого результата", то "загвоздка" может быть только в том, что скрипт, который ты редактируешь, вообще не имеет отношения к проверяемому уровню (обычно это легко проверить, добавив где-нибудь там же в начале func main строчку "dmsg fdshehgkrte").
Либо ты перепутал уровни: правишь, например, скрипты в папке IGMD\tctf_ii, а грузишь главу 6, а не 13. Либо ты наоборот перепутал папки IGMD: правишь, например скрипты в папке Oni\GameDataFolder\IGMD, а запускаешь Оньку Эдишнскую, которая использует папку Oni\edition\GameDataFolder\IGMD.
Я правильно понял, что если я хочу, чтобы что-нибудь происходило автоматически при загрузке уровня, то я должен это прописать сразу после "func void main(void) {" или нет?
Понял в принципе правильно. При загрузке уровня движок гарантированно всегда вызывает функцию func main, поэтому именно там удобно проделывать всякие операции, присущие загрузке уровня (расставить чудиков, настроить туман, убрать лишние части геометрии уровня, включить тот или иной детектор, запереть или отпереть какие-нибудь двери... всё это в зависимости от загруженной сохранки, например). Если ты хочешь, чтобы твой финт стал первым из этих самых всяких операций, то пишешь его в func main первым, только и всего.
Замечу, что func main обычно только "расставляет фишки" в начале сохранки, а последующие скрипты не имеют к func main никакого отношения: движок непосредственно "дёргает" ту или иную скриптовую функцию, когда игрок достигает детектора какого-нибудь, использует консоль, кого-нибудь убивает и т.п. В частности, для персонажа Коноко может быть прописано название скриптовой функции, которая вызывается, когда персонаж попадает в уровень (а это происходит в самом начале) - инструкции в такой функции по порядку исполнения будет конкурировать с инструкциями в func main.
Ghogot написал(а):
Только странно, почему люди жалуются, так же удобнее, имхо.
Бегать, может, и удобнее, а вот прыгать - не очень. Плохо даются прыжки на короткие дистанции, что иногда необходимо для "паркура". И вообще система с "двойным вперёд" вполне справедливая и отменять её не следует, если есть выбор. Идея Эдишна совсем не в том, чтобы игроку не надо было "лишний" раз на кнопку нажимать - главное, что мы таким образом заставили врагов перемещаться с максимальной скоростью, а не трюхать, как сонные мухи.
Оффлайн
Все заработало, после того, как я переустановил игру, но в чем была проблема, я так и не понял. Уровни я не перепутал: lab - это ведь Vago Biotech? И в любом случае я пробовал с несколькими уровнями - на всякий случай. А папки IGMD я не мог перепутать по той простой причине, что я не ставил Эдишн В конце концов я отчаялся, снес Оньку и установил ее по новой. После этого все заработало! В общем, остался я в непонятках, но главное, что теперь все работает прекрасно! Спасибо!
Оффлайн
Если ты "вытащил ONCC Муро из 19 уровня и впихнул в нулевой", это значит, что ты воспользовался программой OniSplit, а именно функциями -export, -move и -import. Я думаю, у тебя хватило ума не паковать новые уровни поверх старых, и ты создал "рабочую копию" папки GameDataFolder, а это значит, что у тебя всё обстояло примерно так, как при установке Эдишн. Если есть принципиальная разница, объясни в чём: мне не до конца понятно, в чём состоят твои извращения, а "интуицию развивать" влом.
"lab" - это Биотехнологическая Лаборатория, да, то бишь level3_Final. Кстати, уровень этот имеет некоторые "особенности" в бинарниках (путеводная сетка глючная), и индексы персонажей ведут себя не очень надёжно. На скриптах это, возможно, и не сказывается, но в памяти творится что-то странное, так что для гарантии лучше заодно проверять вещи в другом уровне.
Отчаиваться - последнее дело. Если хочешь поумнеть, не отчаивайся и не сноси Оньку при каждой скриптовой проблеме (в самом деле, такой поворот меня сильно удивил и огорчил). Лучше толково докладывай о своих действиях: всё-таки моддинг - точная наука, и чем меньше среди моддеров мистики и "отчаяния", тем лучше. Не так ли?
Оффлайн
Да я пользовался OniSplit. Но что касается резервной копии GameDataFolder - у меня немного по-другому. Рабочая и резервная папки не находятся рядом: Онька стоит в папке D:\Games\Oni, а резервную копию GameDataFolder я сохранил в папке "Мои документы" - специально чтобы не путаться.
Спасибо за информацию насчет Биотехнологической Лаборатории - буду использовать для проверок какой-нибудь другой уровень.
geyser написал(а):
Отчаиваться - последнее дело. Если хочешь поумнеть, не отчаивайся и не сноси Оньку при каждой скриптовой проблеме (в самом деле, такой поворот меня сильно удивил и огорчил). Лучше толково докладывай о своих действиях: всё-таки моддинг - точная наука, и чем меньше среди моддеров мистики и "отчаяния", тем лучше. Не так ли?
Так я в сущности и не собираюсь становится серьезным моддером - так, пару вещей подправить, чтобы удобнее было.
Оффлайн
Гм. Странное какое-то эгоцентрическое отношение к моддингу... тогда уж делись в какой-нибудь форме тем, что ты напоправлял, вдруг остальным пригодится, глядишь, и в Эдишн твои "удобства" попадут... А сносить Оньку при такой простой проблеме - это всё равно противопоказано, как ни крути. И я-таки сильно огорчился
Насчёт твоих папок, насколько мне понятно, ты перепутал Мои Документы\GameDataFolder\IGMD\lab\lab_main.bsl и D:\Games\Oni\GameDataFolder\IGMD\lab\lab_main.bsl, или что-то в этом духе. Другого объяснения полному отсутствию эффекта от chr_set_class 0 muro_generic попросту нет (если, конечно, ты не набрал имя команды с ошибкой).
Насчёт лабы - я не имел в виду чтобы совсем её избегать, но для гарантии лучше проверять и в других уровнях тоже. А рапортуя о трудностях, с другой стороны, всегда полезно сразу указать уровень/главу, в котором/которой они наблюдаются.
Оффлайн
раз уж в той теме не было ответа... Как менять стили боя того же чёрного сватовца, к примеру? Понял что в raw редакторе и в нужном файле, а вот где там именно? после какой строки? гейсер ответь плиз, или кто знает. лучше отскринить.
П.С. Я про пас главу. без едишна.
Оффлайн
А теперь повтори вопрос так, чтоб читающий понял, чего именно тебе надобно, старче. Можешь дать ссылку на "ту тему". Можешь объяснить, что такое "менять стили боя", и при чём тут последняя глава. А пока лично я ничем не могу помочь...
Оффлайн
Оффлайн
geyser написал(а):
Гм. Странное какое-то эгоцентрическое отношение к моддингу... тогда уж делись в какой-нибудь форме тем, что ты напоправлял, вдруг остальным пригодится, глядишь, и в Эдишн твои "удобства" попадут...
Ну, тут не эгоцентрическое отношение к моддингу, а просто тот факт, что моддингом как таковым я не занимаюсь. Нельзя же назвать модом, то что я внес маленькое изменение в скрипт, позволяющее с самой загрузки уровня играть за нужного персонажа, не парясь с F8. А что касается более серьезных вещей - была у меня идея впихнуть на парочку уровней по лишнему сейв-пойнту, но... Знаете такое хокку:
Поймал стрекозу,
Заглянул ей в глаза, и понял:
Осень настала.
Вот и я - открыл соответствующий level_logic.bsl, посмотрел на него и понял: времени на то, чтобы разобраться в этом у меня в ближайшие полгода не будет...
Оффлайн
Идея с сэйвпойнтами правильная, как говорится, "нужная и своевременная".
Но и хайку - весьма справедливый (однако вторая строчка длинновата)...
Так что без обид. Осень действительно настала, спасибо, что напомнил.
Курсор, а тебе вот такой риторический вопросик, отвечать не обязательно: какого ляда ты поднял заведомо бинарный вопрос на теме о скриптах?
Ты действительно считаешь, что раз "там" не ответили, то имеет смысл флудить в посторонней теме, лишь бы у меня и других моддеров под носом?
Да за такое я могу в энный раз обидеться и надолго уйти, тем более что мне сейчас такое поведение очень даже кстати... На покой пора, в натуре.
Оффлайн
Извиняюсь, если задаю вопрос не в той теме - я не знаю, можно это сделать через скрипты или нет: меня интересует как отнять у персонажа оружие с которым тот спавнится в оригинале Они. Как дать оружие персонажу, у которого его не было понятно: chr_giveweapon. А как отнять оружие, которое у персонажа было? Если конкретно - хочу отобрать у Барабаса его пушку, а то она его отвлекает от рукопашной - он постоянно ее подбирает.
Оффлайн
Появился маленький вопросец!Как заставить кого-нибудь идти куда-нибудь?
Отредактировал(а) doktordulit (16-01-2009 12:43:40)
Оффлайн
Я где-то читал что можно,но не помню где!
Оффлайн
МОЖНО,ЭТО ДЕЛАЕТСЯ С ПОМОЩЬЮ СПЛИТА ЧЕРЕЗ РЕСУРСЫ
Оффлайн
???А поточней???
Оффлайн
в ресурсах есть бинаркм с ботами,их характеристики(каждого персонажа на нужном уровне)там прописан маршрут,посмотри,не так тяжело
Оффлайн
Нет, awp, патрули - это дело десятое. dulit ведь спрашивает о том, как заставить чела пойти, а не ходить...
Так что с следует упомянуть ai2_movetoflag(Chelovek, 42). Доступных в ресурсах флагов обычно хватает.
А понятие о патрулях здесь понадобится разве что для того, чтобы чел не уходил оттуда, куда пошёл.
И опять-таки можно обойтись без ресурсов, а использовать своевременный ai2_setjobstate(Chelovek).
Uncle-Istvan: только chr_inv_reset(Chelovek). Заодно у чела пропадёт весь инвентарь, кроме сбрасываемого после смерти.
Маи: ЦЫЦ!
Оффлайн
нет,как я понял он пишет "Появился маленький вопросец!Как заставить кого-нибудь идти куда-нибудь?" т.е. он хочет чтобы чел ходил по точкам туда,куда ему надо-патрулировать...doktordulit,ты сам поясни чего хочешь,а то идти куда-нибудь-это понятие растяжимое
Оффлайн
Я имею в виду чтобы человек пошел к заданой точке,и там остался.
Оффлайн
Люди, мож повторяюсь, но читать все это лень
Итак - 1) файл warehouse_cutscene
самое начало файла - cm_interpolate_block KonCamFoot02 300
sleep f260
что значит f? Если это число фреймов слипа, то почему в большинстве остальных файлов после слипа секунд нет: sleep 260
2) Долго думал, не совсем понял, что значит # перед некоторыми командами? # first hit on ledge
3) cm_interpolate KonCamFoot01 0
cm_interpolate_block KonCamFoot02 300
sleep f260
#cm_interpolate KonCamChest01 0
#cm_interpolate_block KonCamChest02 180
#sleep f120
Все это работает следующим образом, как я понимаю: камера нацелена на ногу Коноко (KonCamFoot01), так как время равно 0, то при этом никуда не движется, далее - она движется (cm_interpolate_block - запрещает ей делать что-либо, пока она не выполнит следующую команду, то есть движок временно блочится?) до какой-то точки на ноге (KonCamFoot02) и движется 5 секунд после чего перекур 260 фреймов, как бы перерыв между кадрами. Все ли правильно?
Теперь собственно вопрос - где можно найти/изменить/содать новые положения этих камер?
4) swing_cutscene - как это понимается? это обрезание анимации? или прерывание трека анимации? или что?
5) playback kerr KerrSet - запуск проигрыша чего? что за KerrSet?
6) где можно найти приписку уровня (имеется ввиду очередность загрузки папок/очередность уровней), чтобы можно было менять их очередность/вставлять новые (в идеале)
7) letterbox 0
chr_full_health 0
give_powerup ammo
give_powerup ammo
give_powerup ammo
chr_delete griffin
chr_delete kerr
s1
yhealth
опять же первый уровень, когда Коноко пообщалась с Гриффином
что значат выделенные команды? без них у меня лично игра в этом месте виснит
8) файл - neuro_main.bsl
присутствует следующая строка - neuro_cs_intro - это отсылка к файлу neuro_cutscene.bsl? то есть в мейне заскрипчены все отсылки ко всем файлам в пределах папки, а также жрет глобал?
9) предыдущий файл, следующая команда - save_game 1 autosave - а где сохраняется, что была использованна эта команда (чтобы потом, после перезагрузки это сохранение было в списке доступных?
Вопросы есть еще, но неоформленные, надо подумать, и сформулировать, прежде чем задавать...
Отредактировал(а) Sellin (18-01-2009 01:50:32)
Оффлайн
Ребята, не злоупотребляйте цветным текстом, а то на светлом фоне темы Carbon очень неудобно читать - особенно дальтонику.
"Люди, мож повторяюсь, но читать все это лень"
Так и быть, попробую притвориться, что мне не влом отвечать тем, кому лень читать справочники. К тому же вопросы грамотные, это всегда радует.
1) параметр у "sleep" по умолчанию во фреймах, а зачем кое-где приписывали "f" - не знаю; наверное, пережиток.
2) на удивление бестолковый вопрос - "это же бубль-гум", то бишь "закомментированные" строчки. В данном случае просто ля-ля о том, что написано рядом: анимация сама по себе лишена звуков, поэтому приземление приходится озвучивать отдельно.
3) Нет, не всё правильно. Подробное объяснение есть здесь: http://wiki.oni2.net/AE:Authoring_custo ... animations
a) камера рывком (за 0 фреймов) принимает положение и направление, задаваемые OBANKonCamFoot01
b) выполнение инструкций блокируется, пока не завершилась предыдущая интерполяция (a) - то есть в данном случае всё равно что не блокируется - а затем положение и направление камеры начинают потихоньку меняться, с расчётом на то, что через 5 секунд они совпадут с OBANKonCamFoot02
c) 260 фреймов спустя после начала интерполяции (b) начинается следующая, а именно: камера рывком (за 0 фреймов) принимает положение и направление OBANKonCamBack01 - оттуда, где была, а именно - пройдя 86.667% пути от OBANKonCamFoot01 до OBANKonCamFoot02.
И ещё - никаких "точек на ноге". Просто камера должна плавно проползти мимо Коноки на уровне ног (а потом показать её со спины, а потом сбоку). Для этого сделали некоторое количество ключевых положений/направлений для камеры (минимальная анимация как раз из одного такого ключевого момента состоит), назвали соответственно, а потом интерполируют между ними попарно. OBAN - это онишный формат анимации какого-либо объекта относительно вселенной: используется для камер, дверей, движущихся объектов, а также для необычных перемещений персонажей (езда на мотоцикле, полёт, лифты, и т.п.).
4) это не зашитая функция движка, а пользовательская. Просто из функции с названием void swing() вызывается другая функция, с названием void swing_cutscene(). Лежит эта вторая функция там же, в warehouse_cutscene.bsl, но могла бы лежать в любом другом файле *.bsl в папке данного уровня или в global, так что советую в таких случаях юзать поиск - пользовательские функции часто вызывают одна другую. Название "swing" - это о том, как Конока повисла на руках и "качнулась" под крышу.
5) FILMKerrSet. FILM - это формат записи ввода с клавиатуры и мыши, записанный разработчиками (с помощью клавиш F9, F10 и F11), а потом применяемый к персонажам, чтобы они как-то замысловато бегали, прыгали и крутились, взаимодействовали с уровнем, или просто становились в нужное место. В данном случае FILM именно такой, минимальный, из одного положения и направления. Поэтому команда просто ставит персонажа с именем kerr "на место". А могла бы заставить прыгать, если бы в FILMKerrSet были сохранены прыжки.
6) Это сложно, и не обходится без моддинга ресурсов. Порядок уровней определяется числом в названии файла (level1_Final и т.п.)? Файл этот нельзя просто так переименовать (или перенумеровать), потому что с его имени в момент создания снята контрольная сумма и запихана в сам файл - для проверки "целости и сохранности" содержимого. Поэтому любой перемещённый или добавленный уровень придётся "паковать" заново - ОниСплитом. Заодно надо будет переименовать ресурсы ONLV, AKEV и др., так как им соответствует имя скриптовой папки. Ещё надо будет поменять/добавить названия уровней в ONLD, или просто номера поменять, в зависимости от того, что нужно. И опять же запаковать заново, но уже нулевой уровень (level0_Final или "плагин").
7) Тот же совет, что и (4) - юзай поиск. На этот раз речь идёт о функциях void s1(string) и void yhealth(string), которые лежат в warehouse_level_scripts.bsl. Как видишь, любой файл может ссылаться на любую функцию в любом другом файле. Порядок загрузки файлов и порядок функций в них не важен (в случае BSL; в других языках вроде C на функцию можно сослаться только если она была "объявлена" до того места, откуда ссылаются).
8) То же самое. Да, это вызов пользовательской функции, определённой в другом файле. Вывод об уникальности "мэйна" неверен. Да, движок запускает функцию void main() при загрузке уровня, а она в свою очередь вызывает кучу зашитых и пользовательских функций. Однако не все пользовательские функции достигаются таким способом. Очень многие функции движок вызывает непосредственно, а не через main(). Например, когда Конока умирает , как правило, вызывается функция you_lose. Когда Конока куда-то заходит или использует консоль какую-нибудь - опять-таки вызываются некоторые пользовательские функции, напрямую из движка. Названия этих функций определены во всевозможных OBJC, которые хранятся в ресурсах уровня. Естественно, имена прописанные в OBJC и в *.bsl должны быть согласованы.
9) save_game по заказу меняет состояние сохраночного файла persist.dat. Кроме того Они меняет этот файл при загрузке каждого уровня, чтобы отметить там текущие (последние загруженные) уровень и сохранку. Некоторые настройки также меняют состояние persist.dat, ну и команда killed_griffen(bool) тоже.
Оффлайн
Ладно,толком ничего не ппонял поэтому напишу поэтапно:
1-Как заставить человека идти в заданную точку и там остатся?
2-Как заставить персонажа ходить после команды lock_keys?
3-Как заставить чела идти за тобой?
Оффлайн
doktordulit написал(а):
Как заставить человека идти в заданную точку и там остатся?
geyser написал(а):
Так что с следует упомянуть
ai2_movetoflag(Chelovek, 42)
. Доступных в ресурсах флагов обычно хватает.
Где Chelovek - персонаж, 42 - номер "точки". -_-
doktordulit написал(а):
Как заставить персонажа ходить после команды lock_keys?
Командой lock_keys с перечислением тех keys, которые нужно разлочить. Например, если кроме ходьбы ничего не нужно: lock_keys keys_movement
Ещё есть keys_reload
, keys_hypo
, keys_walk
, keys_inventory
, keys_action
, keys_pause
, keys_attack
, keys_crouch
, keys_jump
. Или, если нужно всё сразу: lock_keys keys_all
doktordulit написал(а):
Как заставить чела идти за тобой?
Есть, например, ai2_followme(char);
, где char - тело, которое должно идти. При этом персонаж будет идти строго до той точки, в которой был игрок в момент исполнения команды. Можно закинуть в рекурсивную функцию, которая будет до смены флага повторять персонажу его задачу с заданным шагом, корректируя целевые координаты.
Оффлайн
И исчо один вопрос!Как сделать так чтобы все остановились и не двигались,и как это убрать?
Оффлайн
Вопросов не осталось...
Оффлайн
Мih@ написал(а):
Есть, например,
ai2_followme(char);
, где char - тело, которое должно идти. При этом персонаж будет идти строго до той точки, в которой был игрок в момент исполнения команды. Можно закинуть в рекурсивную функцию, которая будет до смены флага повторять персонажу его задачу с заданным шагом, корректируя целевые координаты.
Вообще-то такая функциональность по идее должна быть только у ai2_comehere. Возможно, в случае ai2_followme имеет место косяк в движке. На данный момент самым грамотным решением проблемы является специальное "нейтральное поведение" (NEUT). Смысл в том, что персонаж с таким поведением будет ходить за игроком по всему уровню, как будто хочет поговорить, но говорить не будет. Поведение можно вроде бы менять в рантайме.
Оффлайн
geyser написал(а):
Возможно, в случае ai2_followme имеет место косяк в движке.
Ну, хотя бы не как в случае с Крикунами. ) Однако имхо было бы логично дать этой функции ещё булеву входную данную для включения/выключения преследования.
А возможно без извращений переопределить ai2_followme глобальной рекурсивной функцией с тем же ai2_comehere, чтобы оно было отключаемым, например, по смене переменной? И распространялось на любое количество персонажей, и было единой функцией (не тридцать функций с тридцатью флажками и не навороты с уймой вспомогательных переменных и расчётов >_<).
Например, если есть возможность повесить на персонажа какую-нибудь двоичную метку и иметь возможность её писать/читать...
geyser написал(а):
Поведение можно вроде бы менять в рантайме.
Скриптами/консолью? Как именно? Помню, был такой ai2_neutralbehavior, но не помню, чтобы он использовался иначе как с "none", и не вникал в сакральный смысл.
Оффлайн
Ну, хотя бы не как в случае с Крикунами. )
Ну, Крикунов-то мы починили, слава Мукаду (и ракеты и даже взрыв камикадзе). Это всё одна малина.
Однако имхо было бы логично дать этой функции ещё булеву входную данную для включения/выключения преследования.
Естественно, если эффект функции постоянный, а не как сейчас, то флажок станет необходимым. Либо функция-пара ai2_stopfollowingme
А возможно без извращений переопределить ai2_followme глобальной рекурсивной функцией с тем же ai2_comehere, чтобы оно было отключаемым, например, по смене переменной?
Да, возможно глобально заскриптить рекурсивную функцию, хранящую имя любого чела, и с заданным интервалом применяющую к нему ai2_comehere (это аналог Арены и других похожих скриптов попроще: он чреват перегрузкой стека вызовов, который не опустошается, и при одной ежефреймной рекурсивной петле приводит к нехватке памяти за считанные часы). С выключателем на данный момент сложнее: у персов есть куча флажков, которые можно сетить, но читать их нельзя. Единственное решение на данный момент - это глобальный выключатель, который прекращает все преследования, после чего можно возобновить те преследования, которые должны продолжаться. Я рекомендую вникнуть в сакральный смысл NEUT (см. ниже), ибо это намного правильнее скриптовой рекурсии.
И распространялось на любое количество персонажей, и было единой функцией (не тридцать функций с тридцатью флажками и не навороты с уймой вспомогательных переменных и расчётов >_<).
Как chr_wait_animation, что ли? На фига? Не вижу проблемы с отдельной инструкцией на преследование для каждого чела. Проще надо жить, боярин.
А насчёт "наворотов с уймой вспомогательных переменных и расчётов" - я, наверно, не понимаю, что имеется в виду. Какие расчёты? Но это и неважно.
Всё равно ai2_followme не работает, NEUT - работает, а что касается доводки движка - в твоём случае - флаг в руки утопающим, ты уж извини. Давно пора.
А то легко, конечно, навороты с переменными и расчётами перебросить из скриптов в движок... "Ничего в этом сложного нет - если мама готовит обед."
Например, если есть возможность повесить на персонажа какую-нибудь двоичную метку и иметь возможность её писать/читать...
Если есть желание и время - присоединяйся к проекту ReOni/Daodan. Благодаря Маковому движку все функции и переменные уже проименованы, хотя в ASM по-прежнему приходится вникать в каждом конкретном случае. Если умеешь хучить на Си или можешь научиться - хучь. Если не умеешь или не хочешь на Си - переписывай и добавляй ASMовый код, и собирай движок заново. А всевозможные заказы - устарели как идея. Было время - хачил один только СФеЛи, а теперь все только об этом и говорят, даже те, кто в ASMе ни бум-бум.
geyser написал(а):
Поведение можно вроде бы менять в рантайме.
Скриптами/консолью? Как именно? Помню, был такой ai2_neutralbehavior, но не помню, чтобы он использовался иначе как с "none", и не вникал в сакральный смысл.
Консоль - это всего лишь интерфейс для скриптов. Насчёт ai2_neutralbehavior - я и сам видел "none", но понятия не имел, как им пользоваться
Только сегодня вот пристал к Нео и всё выяснилось. Оказывается, NEUTы имеют имя, просто оно на вики и OniStuff помечено, как "space for notes".
Поэтому в лабе, например, можно использовать ai2_neutralbehaviour Floor1_Sci_1 "Give VDG Pistol (CivFem)" - и сайентесса станет дарить шокер.
Ну и конечно, таким образом можно включать и выключать безглючный аналог ai2_followme, без скриптовых рекурсий и ASMовых экспериментов. Ура.
Оффлайн
geyser написал(а):
Как chr_wait_animation, что ли? На фига?
Не совсем. Чтобы как раз "проще жилось".
Просто куча функций и флажков - это тридцать/пятьдесят/стопицот функций вида ai2_followmexx и столько же переменных. Для раздельного управления. Если функция не глобальна (или все персонажи не глобальны), то можно было бы написать по одной на персонажа, но это изврат. Если же функции будут просто пронумерованы, то в случае достаточно динамично устроенного уровня (где следование может одеваться/сниматься по триггерам, состояниям здоровья и прочая) будет весьма неприятно выискивать ту функцию, которая свободна, и делать привязки к её переменной.
Более сложный вариант - закинуть всю эту возню в одну главную функцию, которая будет записывать, кому какая функция+переменная присвоены, искать и вызывать свободную. Можно даже сделать переменные привязки собственностью [условно -_-] этой материнской функции, и как раз ей приделать входной флажок вкл/выкл.
Это очень плохой и извращенский выход, но с точки зрения эксплуатации не особо отличится от "нормального" followme.
geyser написал(а):
Всё равно ai2_followme не работает, NEUT - работает, а что касается доводки движка - в твоём случае - флаг в руки утопающим, ты уж извини. Давно пора.
И в мыслях не было, только надежда, вдруг там пару байт достаточно подправить, чтоб оно заработало как надо. +)
geyser написал(а):
Если есть желание и время - присоединяйся к проекту ReOni/Daodan.
Как будут - присоединюсь. Пока что всё это видится очень сложным. о_О
geyser написал(а):
Консоль - это всего лишь интерфейс для скриптов.
Она более рунтаймовая, учитывая, что эта нейтральность делается "одной строкой". )
geyser написал(а):
Ура.
Действительно ура и спасибо, да и куда более интересная штука "обнаружилась"... )
Оффлайн
Это очень плохой и извращенский выход, но с точки зрения эксплуатации не особо отличится от "нормального" followme.
Что-то с интуицией по дизайну кода у тебя дела обстоят не особо лучше, чем в былые времена... конечно, скрипты - это не язык, но "на фига" городить "методы", которые ты сам вынужден называть "очень плохими и извращенскими"? То ты семиэтажно мудришь со спецификой какой-то очень конкретной проблемы, то вдруг ищешь каких-то суперглобальных решений - для ситуаций, которые ещё неизвестно когда и кому... Причём ладно бы - ограничился одной глобальной функцией и одной переменной - я же сказал, что этого достаточно, или нет? Дык ведь нет - "стопицот функций и столько же переменных"... Ну за что???
0) В-нулевых - ai2_followme на самом деле сломан не полностью, хотя функция была предназначена исключительно для дебага. Там что-то вроде слишком длинного интервала между апдейтами положения цели. В принципе, можно пофиксить, но всем реальным участникам процесса - мне, Нео - влом, потому что...
1) Во-первых, NEUT - это и есть "нормальный" ai2_followme. Человек по имени Лузер уже давно поделился идеальным для преследования профилем NEUT. А теперь - открытие века - NEUTы имеют-таки имена и их можно-таки сетить в рантайме. Очень хочется пожелать большего - мне, как специалисту - но, увы, нечего. Так что едем дальше.
2) Для экспериментов или альтернатив бинарному моддингу можно использовать следующий глобальный скрипт:
var int followme; func FollowMe(string you, int tstep) { ai2_comehere(you); sleep(tstep); if(followme) fork FollowMe(you,tstep); }
Контроль из скрипта-клиента осуществляется очень просто:
1) переменная followme сетится в 1
2) чтобы не мучиться с патрулями (если они есть), всем заспоуненным челам делаем ai2_idle(Chel);ai2_setjobstate(Chel);
2) для каждого преследователя делается по вызову, типа: FollowMe(ChelNomerRaz,60), FollowMe(ChelNomerDva,60), ...
3) после этого все они (ChelNomerRaz, ChelNomerDva, ...) бегают за игроком
4) приходит время избавиться от преследования со стороны ChelNomerRaz
5) переменная followme сетится в 0, потом через пару секунд снова в 1
6) делается вызов FollowMe(ChelNomerDva,60)
7) ChelNomerRaz остаётся на месте, а ChelNomerDva по-прежнему бежит за нами
И после этого ты будешь жаловаться на "сложности жизни"?
Да побойся Мукада - если не мета-гнева, то мета-презрения.
"Пока что всё это видится очень сложным."
Ну-ну. Надеюсь ты понял - время подобных заказов прошло. Есть активные энтузиасты ASM, которые вот так вот улучшают движок, чтобы "проще жилось" - или контактируй их напрямую, или сам становись таким же.
"Она более рунтаймовая, учитывая, что"
Как знаешь... с консоли можно вбивать более одной строки одновременно, а скриптовый event - это такой же рантайм, как и консольный ввод. Отличия есть, но минимальные, и не в пользу консоли (у неё бывают глюки с вызовами вилок).
Оффлайн
geyser написал(а):
Что-то с интуицией по дизайну кода у тебя дела обстоят не особо лучше, чем в былые времена... конечно, скрипты - это не язык, но "на фига" городить "методы", которые ты сам вынужден называть "очень плохими и извращенскими"?
Что первое в голову приходит, то и городю. ) Если получается что-то полезное и рабочее, то оно не трогается, пока не сломается или пока не получится слишком длинный скрипт.
Извращение получается, когда мысль слишком постепенная. "как сделать чтобы followme было длительным?" - рекурсия с задержкой и переменной отмены, "а чтобы можно было пятнадцать персов регулировать?" - пятнадцать функций и пятнадцать переменных, "а чтобы можно было свободно назначать их по порядку" - дополнительная функция с контролем остальных, "а теперь раз функция одна почему бы не сделать ей флажок" - засунуть этот флажок с кучей системков. Вот и получается...
geyser написал(а):
Причём ладно бы - ограничился одной глобальной функцией и одной переменной - я же сказал, что этого достаточно, или нет?
Имеется ввиду то, что ниже?
Собственно, для случая с одним телом или двумя-тремя фиксированно заданными я такую же функцию и имел ввиду, когда отвечал дулиту. А тебя спросил про возможность глобализации настолько, что можно переопределить ai2_followme раз и навсегда без потери чего бы то ни было. В упрощённом варианте нету динамичности и возможности отмены следования на конкретное тело. То есть, чтобы отменить следование 1 человека из 16, нужно отменить всё, а затем восстановить 15 следований. Некрасиво. ) А если они заданы не фиксированно, а вызваны какими-то триггерами, и неизвестно, сколько и кого следует? Хранить кучку переменных с именами всех ведомых, или по флажку на каждое тело на уровне?
geyser написал(а):
Как знаешь...
"Более" рунтаймовая - это уже больше практическое и субъективное имхо. Просто вроде как любая функция зовётся или движком по событию, или из другой скриптовой функции, или из консоли. При этом второе сначала само следует из первого либо третьего (ну, сокращая промежуточные обращения). И почему консоль вдруг исключается из способов вызова и обзывается интерфейсом к скриптам (при том, что скриптов может вообще не быть), не совсем понимаю. О_о А то, что почти ни для какого вызова нет разницы, в консоли он записан или в .bsl, тем более говорит пользу её равновесности.
geyser написал(а):
у неё бывают глюки с вызовами вилок
Эээ... Вилка, ответвляемая не от материнской функции, а от самой консоли, что ли? Или в каком смысле?..
Оффлайн
"То есть, чтобы отменить следование 1 человека из 16, нужно отменить всё, а затем восстановить 15 следований. Некрасиво."
Красиво. Написано за секунды, в употреблении тривиально.
"А если они заданы не фиксированно, а вызваны какими-то триггерами, и неизвестно, сколько и кого следует? Хранить кучку переменных с именами всех ведомых, или по флажку на каждое тело на уровне?"
1) Вот тогда и подумаем, но ведь этого не будет никогда.... 2) Да, именно так.
Прикинул я реальные ситуации с парой-тройкой ведомых, и - не поморщился...
Есть простые задачи, для них есть простое решение. Сложности иф эни - потом.
Кроме того, всё это неактуально, так как динамическое задание NEUT- это сила.
"почему консоль вдруг исключается из способов вызова и обзывается интерфейсом к скриптам (при том, что скриптов может вообще не быть), не совсем понимаю."
Способы вызова ЧЕГО? Консоль умеет обращаться только к скриптовым функциям и переменным, специально зарегистрированным движком (или скриптами иф эни). С точки зрения вызовов, присвоений, и даже вывода на ту же консоль - разницы нет: за вычетом определений пользовательских функций и переменных (и глюка с вилкой), скрипты и консоль общаются с движком на совершенно равных правах.
"Вилка, ответвляемая не от материнской функции, а от самой консоли, что ли?"
Ну да. "Контекст" консольного вызова, казалось бы, ничем не хуже main() или любой пользовательнской функции. Поэтому, казалось бы, вызовешь рекурсивную функцию RoundAndRound() с консоли (без fork) - и она начнёт себе крутиться в бэкграунде. Однако иногда этот номер не проходит и вызванная таким образом петля встаёт после первого повтора. Эффект я изучил не досконально (там как-то влияют либо слипы, либо какой-то глюк с парсингом), но помню, что он лечится, если вызывать не просто так, а fork RoundAndRound().
Оффлайн
geyser написал(а):
Способы вызова ЧЕГО?
Функций. Не скриптовых, а функций. ) Если угодно, их можно назвать консольными. Я и сам со времён обнаружения, что команды из стандартного перечисления фокусов "чита thedayismine" работают в скриптах, привык относиться к консоли как к штуке, которая позволяет из игры вызывать "скриптовые команды" (то бишь, любые строки, которые традиционно используются в скриптах). А потом возник вопрос, а почему, собственно, скриптовые, а не консольные, или общие? ) Дискриминация. Да, консоль может обращаться к тем функциям и переменным, которые предварительно объявлены скриптами, и отображает всякие dprint'ы, но называть её за это "всего лишь интерфейсом для скриптов"... >_<
geyser написал(а):
Ну да.
Хм. А это точно проблема консоли? Может, просто в скриптах слишком редко рекурсивные функции вызываются без fork, чтобы это было заметно...
Оффлайн
"почему, собственно, скриптовые, а не консольные, или общие?"
Потому, что эта часть движка называется BFW Scripting Language.
Типично скриптовый синтаксис и парсинг в рантайме, если угодно.
"Хм. А это точно проблема консоли?" По моему впечатлению - да.
Примеры были предельно простые, как полагается. Глюк налицо.
Оффлайн
Привет всем! У меня такой вопрос: как можно одним героем (Барабасом) пройти все туры? Он же не всюду доступен ?
Оффлайн
аниканов, ставь edition, там есть и глобализация персов, и глобализация оружия, много вообщем чего
Оффлайн
ДЛюди!У меня вот что случилось!Удалил я все файлы в папке Airport,вхожу в здание,
и вдруг слышу..."Сюда!"!И закричал мне это цивил!А я ведь до этого в папке Аеропорт всё удалил!Каким образом она там оказалась?
Оффлайн
Ты меня не понял!Откудо она взялась?Я же удалил скрипт с её спавном!!!
Оффлайн
Тоесть заранее?Я удалил все скрипты этого уровня!
Оффлайн
А разве можно ставить спауны в ресурсах????
Добавлено спустя 1 минуту 30 секунд:
И фиг тебе!Не буду я удалять level4_Final.*!Я знаю что там все файлы уровня!!!
Оффлайн
doktordulit написал(а):
А разве можно ставить спауны в ресурсах????
преспавн. в ресурсах можно ставить почти всё.
doktordulit написал(а):
Не буду я удалять level4_Final.*!
если хочешь убрать эту цивилку - или вместо удаления скриптов пиши её удаление, или убивай запись о её преспавне в ресурсах.
Оффлайн
А как называется анимация при нажатии "Контрл"?
Оффлайн
doktordulit написал(а):
при
если под "контролом" подразумевается то, что забиндено на action, игрок играет за Маи и перед ним нет action-подверженных консолей и/или персонажей, то KONCOMtaunt1
или KONCOMtaunt2
.
Оффлайн
Всё!Достало!Люди,помогите,я в скрипте На уровне аеропорт пишу
chr_set_class hidden_striker1 k4_L
А он меня закидывает на крышу здания!!!
Естественно страикер в коноку не превратлся!!!
И тут то самое главное...Скрипт не работает в ЭДИШНЕ!!!
Оффлайн
doktordulit, на будущее: для отладки всего и вся скриптового крайне полезна консоль. в частности, её стоит держать включенной при запуске бажного скрипта и видеть сообщения об ошибках. "закидывает на крышу" в аэропорту - значит отказался дочитывать весь скрипт вообще, наткнувшись на плохую строчку.
на прошлое: chr_set_class очень не любит работать с именами персонажей. зато любит их id.
например, chr_set_class 1 k4_L
, где под цифрой 1 значился этот самый комгай, великолепно работает.
doktordulit написал(а):
И тут то самое главное...Скрипт не работает в ЭДИШНЕ!!!
да, было бы весьма странно, если бы в оригинальных ресурсах игра не ругалась на это "k4_L" прям в аэропорту...
Оффлайн
СПАСИБО!!!
Отредактировал(а) doktordulit (03-02-2009 15:56:04)
Оффлайн
Ну и наверно паследний вопрос...шутка!
А как забрать у чела оружие?
Оффлайн
chr_disarm [char_id:int]
Не уверен, будет ли это работать если вессти не ИД а [char_name:string]
Оффлайн
Если я не ошибаюсь,команда fade_out (time) Отвечает за затемнение экрана?
Если да то подскажите как после этого затемнение..."засветлить" экран?
Оффлайн
doktordulit написал(а):
Если я не ошибаюсь,команда fade_out (time) Отвечает за затемнение экрана?
немного ошибаешься, это команда fade_out (r,g,b,t)
, где rgb - количества красного, зелёного и синего составляющих в цвете "затемнённого" экрана, а t - время во фреймах.
обратно "засветляется" через fade_in (time)
, где задаётся только время.
demos_kratos, аригаты.
Оффлайн
А как называется анимация удара вперед нагой?
(И есле не трудно то дайте ссылку[Если такая есть]на список всех анимаций,иначе я вас задалбаю вопросами типа"А как называется анимация...")
Оффлайн
doktordulit, открывай OUP'ом первый уровень и прочёсывай список TRAM на предмет анимации нужного вида. или аналогичный поиск в том, что вываливает OniSplit.
анимации Маи имеют префикс KON
, относящиеся к бою - COM
, дальше всё примерно очевидно. p
unch, k
ick
, f
orw
ard, b
ack
ward, l
eft
, r
ight
, etc.KONCOMkick_fw
, кажется, в твоём случае.
doktordulit написал(а):
иначе я вас задалбаю вопросами типа"А как называется анимация..."
не задолбаешь, будем-с удалять-с. )
Оффлайн
KONCOMkick_fw
а вообще, лучше смотреть названия анимаций в OUP'е по TRAM файлам с префиксом KONCOM, KONPIS, KONRIF, KONSCR, KONSPR, KONOKO, KONPAN
Оффлайн
Кажется гдето был такой вопрос на всё равно-а как заставить чела идти по другому?
Добавлено спустя 2 минуты 30 секунд:
Помню что командой-
chr_set move??????????
P.S. ?-не помню.
Отредактировал(а) doktordulit (10-02-2009 16:39:09)
Оффлайн
Эмм... Что для тебя есть "идти по другому"? Поменять маршруты патрулей для ботов? Заставить бежать куда либо? Или тупо анимацию сменить?
Отредактировал(а) demos_kratos (10-02-2009 19:17:16)
Оффлайн
Ненене!
Ну,бот он как бот ХОДИТ а мне надо чтобы он БЕГАЛ!
Оффлайн
эмм, в эдишене все боты бегают... причём с ускорением, так что удрать от них не всегда получится.
Оффлайн
Спасибо,а walk_noaim
и run_noaim
Это что?
Оффлайн
Ладно!Понял что отвечать не будут так что новый вопрос!
За что отвечает команда ai2_showpaths=1
?
Оффлайн
Дебаг команда, показывает точку, куда собирается идти бот. От этой точки к боту линия проведена, так что не запутаешься, куда какой бот.
Точно не помню, Миха, поправь если что.
Оффлайн
я вообще не понимаю, к чему вопрос. надо что-то узнать, если вдруг непонятно по названию функции или неясны пояснения dump_docs/wiki - вбил в консоль или main() да проверил, какие проблемы?ai2_showpaths
- дебаговая переменная. при включении отображает очень много всего, что хотят AI и как их хотения выглядят. показывает кучу разноцветных палочек, квадратиков и прочих фигурок - просто пути, цели пути/патруля/нападения/и т.д., области расчёта коллизий...
Оффлайн
Так,появился исчо один вопрос.
Сомневаюсь что ответ мне дадут через dump_docs.
Вот создал я на последнем уровне GrifElit02(Больше никого!)
Вот я убил GrifElit02.
Так что вот вопрос!
Если персонажбыл создан и был убит,и если я хочу создать его исчо раз,то
мне надо дописывать force после ai2_spawn GrifElit02?
Отредактировал(а) doktordulit (21-02-2009 09:06:09)
Оффлайн
ну.. тут по разному можно сделать.
можно и через force,
можно подождать пока сам исчезнет,
можно перед тем, как заново спавнить, предварительно удалить ( chr_delete GrifElit02 ) (самый разумный выход, мне кажется)
Оффлайн
Ладно последний вопрос,а за ним пойдет скрипт!
Вот у меня в скрипте стоит функция-
func puncher(void)
{
dmsg "punch forward if you want play WITHOUT black_ops"
chr_wait_animation 0 KONCOMpunch_fw
dmsg "you want play WITHOUT black_ops"
fork round_1b
}
и
func kicker(void)
{
dmsg "kick forward if you want play WITH black_ops"
chr_wait_animation 0 KONCOMkick_fw
dmsg "you want play WITH black_ops"
fork round_1a
}
Так вот,если сделать всё как надо в первой функции,то будет исходное содержание скрипта БЕЗ ГрифОпсов.
А если сделать всё как надо во второй функции,то будет исходное содержание скрипта С ГрифОпсоами,
НО!Когда идет исходное содержание скрипта после ПЕРВОЙ функции,А МНЕ НАДО СДЕЛАТЬ УДАР НАГОЙ ВПЕРЁД ТО ПОЯВЛЯЮТСЯ ГрифОпсы!
А вопрос мои такой!КАК МОЖНО ОТМЕНИТЬ ФУНКЦИЮ!Всмысле сделать так чтобы она не работала!
Отредактировал(а) doktordulit (02-03-2009 11:56:03)
Оффлайн
doktordulit, сделай флажок.
в начале скрипта пропиши var bool flazhog=1;
а функции перепиши вот так:func puncher(void)
{
dmsg "punch forward if you want play WITHOUT black_ops"
chr_wait_animation 0 KONCOMpunch_fw
if (flazhog)
{
flazhog = 0;
dmsg "you want play WITHOUT black_ops"
fork round_1b
}
}
иfunc kicker(void)
{
dmsg "kick forward if you want play WITH black_ops"
chr_wait_animation 0 KONCOMkick_fw
if (flazhog)
{
flazhog = 0;
dmsg "you want play WITH black_ops"
fork round_1a
}
}
Оффлайн
...Не работает...Мих@...Помоги...
Оффлайн
ВСЁРАВНО НЕ РАБОТАЕТ........
Оффлайн
ошибка - поставь точку с запятой в конце строки var bool flazhog=1;
З. Ы. доктор, на будущее совет(ы).
1. перед и после секции где обозначаются переменные ставь пустые строки. понятнее будет всем, а не только тебе.
2. имена переменным давай более осмысленные чем банальное полуолбанское слово flazhog. Не в обиду михе, но так реально приятнее и понятнее читать код.
(у меня в GUI самая длинная переменная $tx_genmipmaps_check_r - Textures.Generation.of.Mipmaps.Checkbox.Refference (если расшифровать) я мог назвать ее $var_104 или $gmpcr и тогда никто не понял бы о чём речь, хотя некоторые и так могут не понять, но не повторяй моих ошибок)
3. в твой скрипт будут не только играть, но ещй и смотреть его, имей это ввиду.
Отредактировал(а) demos_kratos (02-03-2009 19:28:52)
Оффлайн
ААААА!demos_kratos ты ГЕНИЙ!!!!!!ТЫ ГЕНИЙ!!!!!!!!!!!!!!
ЙЙЙЙЙЙЙЙЙЙЙЙЙЙЕЕЕЕЕЕЕЕЕЕСС!!!!!!!!!
ДАДАДА!!!
З.Ы.-А как мои скрипт можно смотреть?
З.Ы.Ы.-А идея такого скрипта навеяна твоим "мортал-комбат"
З.Ы.Ы.Ы.-Я у тебя кое-что спер,не обижайся...
Отредактировал(а) doktordulit (03-03-2009 18:06:24)
Оффлайн
demos_kratos написал(а):
перед и после секции где обозначаются переменные ставь пустые строки.
да ладно... всякие локальные вещи, например, можно и прямо перед функцией объявлять. заодно яснее станет, какая переменная к чему относится, какое значение имеет непосредственно после объявления (даже в такой простой штуке, если усложнить, можно позабыть, что изначально значение флажка - истина), да и редактировать сподручнее. хотя всё зависит от масштаба, сложности и извращённости работы. +)
demos_kratos написал(а):
имена переменным давай более осмысленные чем банальное полуолбанское слово flazhog.
и вот это тоже... во-первых, существует некоторый лимит на длину скрипта, и чем больше писать, тем раньше случится "многабукаф ниасилил", и всё. а как можно было не поменять название переменной на более осмысленное, но скопипастить одну строчку с ошибкой... +_+
Оффлайн
Мih@ написал(а):
всякие локальные вещи, например, можно и прямо перед функцией объявлять
да, можно, и я этого придерживался, когда кодил на C++, хотя мне больше всего нравятся AutoIt и PHP из-за того, что в них обозначение переменных идёт в момент первого присвоения к ним какого либо значения, и в этих языках можно напрочь забыть, какая переменная какого типа, одна переменная на протяжении программы может быть как строкой, так и булем.
Мih@ написал(а):
существует некоторый лимит на длину скрипта
не уверен, что длинные переменные смогут увеличить скрипт даже до 50 кб (зависит от сложности скрипта конечно)
Оффлайн
demos_kratos написал(а):
обозначение переменных идёт в момент первого присвоения к ним какого либо значения, и в этих языках можно напрочь забыть, какая переменная какого типа, одна переменная на протяжении программы может быть как строкой, так и булем.
не Ъ. )
demos_kratos написал(а):
не уверен, что длинные переменные смогут увеличить скрипт даже до 50 кб (зависит от сложности скрипта конечно)
50 кб (и даже больше) в скрипте можно набрать одними только комментариями. я набирал. ) а когда скрипт близок к абсолютному завершению и к тому самому лимиту, каждая сотня символов может сыграть свою роль.
помню, у меня был недоделанный срипт полного перебинживания оч.многих приёмов на оч.многие варианты развития событий. сотни флажков о том, что именно будет перебинживаться, и где-то 7-9 локальных переменных в функции действия. и там тоже были всякие "sleep(onimate_integer_var1);" (если не длиннее +_+) в каждом ифе. ах да, и в каждом ифе тоже по крайней мере одна переменная. а всего их планировалось около тысячи. итого каждый лишний символ в названии одних только переменных для if, sleep и chr_animate - это около килобайта лишнего кода. даже название функции действия, фигурирующее в дереве wait'ов, уже давало нехилую нагрузку. пример излишне жестокий, конечно, но всё же. )
Оффлайн
Мih@ написал(а):
50 кб (и даже больше) в скрипте можно набрать одними только комментариями. я набирал.
Мih@ написал(а):
ах да, и в каждом ифе тоже по крайней мере одна переменная. а всего их планировалось около тысячи.
... мих, я за тебя боюсь... и за себя теперь боюсь...
Оффлайн
demos_kratos написал(а):
... мих, я за тебя боюсь... и за себя теперь боюсь...
за парсер бы боялся. ) суть в том, что лимит вполне достижим (равно как и лимит на форки, и лимит на вложенные ифы) в жизненных условиях (не говоря уж о корявых красивостях, уж не буду примеры приводить... к чему лишняя отвецтвенность +_+). и почти любой скрипт поскромнее можно модифицировать так, чтобы он эти пределы перебивал. да и писать так короче. ) если переменная используется и дописывается часто, сложно забыть её суть, даже если она будет называться "a" или "b". иное дело - "с". а уж если мысль бежит поперёд письма, то оставление переменных "n1", "n2", "n3" и так далее помогает её догнать, не забивая моск лишними сущностями.
Оффлайн
Как копировать персонажей?
Например, я не знаю(и не поняла 8( ) как на уровнях копировать персов... Типа возмём Коноко: я хочу сделать 10 и более её копий на своей стороне, и 15 и б. на злой стороне... как это вообще сделать??? Я вашим ФАГом пользовалась и "таблицей персонажей" но *** нипонятно((((
Оффлайн
на элементарном уровне можно зафорсить спаун.
ai2_spawn %botname% force
тогда появится ещё один бот - копия бота %botname% на том же месте, где стоял %botname%, но в функциях к ним обращаться можно будет только через б-гомерзкий script_id, который варьируется в процессе игры. если хочешь создавать ботов, к которым можно будет нормально обращаться по имени, надо будет редактировать BINACJBOCharacters соответствующего уровня и добавлять новых ботов.
Оффлайн
Хм, возьмём локацию аэропорт:
if (save_point eq 1) { my_save_point=1; env_show 10 1 env_show 11 1 env_show 12 1 dprint restore1_active particle auto1 start particle auto1fire start particle auto1spark start particle door1spark start particle tctf1 start sound_music_start mus_asian 0.5 music_script_start(); ai2_spawn IntroStriker01 ai2_spawn IntroStriker02 chr_set_class 24 69 chr_set_class 24 69 chr_set_class 24 69 chr_set_class 24 69 chr_set_class 24 69 chr_set_health 0 1500 chr_set_health motoko 1500 restore_game ai2_spawn evilkonoko ai2_spawn evilkonoko force ai2_spawn evilkonoko force ai2_spawn evilkonoko force ai2_spawn evilkonoko force sleep 30 set_target_1 set_objective_1 }
Неполучается вставлять ботов(((
Оффлайн
а ведь нету в аэропорту бота с именем 'evilkonoko'. вся информация о ботах (координаты появления, флаги, класс, поведение и т. д.) хранится в levelXX_Final\BINACJBOCharacters.oni, где XX это номер уровня. следовательно, у каждого уровня свой набор ботов. 'evilkonoko' есть в уровне Dream Lab, но больше нигде этого бота нет. тебе нужно добавить в BINACJBOCharacters.oni в папке аэропорта информацию о боте 'evilkonoko'. тогда этот скрипт, что ты выложила, заработает. подробнее о структуре файла BINACJBOCharacters.oni переведённого в XML можно узнать здесь или здесь.
Оффлайн
demos_kratos написал(а):
а ведь нету в аэропорту бота с именем 'evilkonoko'
Понятно
Отредактировал(а) vit86rus (02-10-2009 09:24:04)
Оффлайн
Лады, Аригато, demos_kratos за твой поучительный урок
Итак, я научилась создавать Коноко, а теперь как их сделать клонами?(армия Конок нападают на меня...)
Оффлайн
Оффлайн
Короче это невозможно если только взять своих, размножить их и поменять классы как менять могу расказать или дать скрипт на вторую главу для обычной они!
Оффлайн
Тоже могу, но зделать это сейчас не смогу так как установил 2 ос и одну заблокировал!
Оффлайн
Размножаешь своих командой force и меняешь класс!
Оффлайн
ищи в скриптах Dream Lab строку "timer_start *** ****" всё, что написано перед ней (в разумных пределах) это описание сего процесса. разбери и используй.
Оффлайн
Нифига не поняла
# BIG HEAD VAR func void bighead_1a_var(string ai_name) { dprint bighead_var bighead_counter = bighead_counter - 1 if (bighead_counter eq 0) { big_head(); } } func void bighead_1b_var(string ai_name) { dprint bighead_var bighead_counter = bighead_counter - 1 if (bighead_counter eq 0) { big_head(); } } func void bighead_1c_var(string ai_name) { dprint bighead_var bighead_counter = bighead_counter - 1 if (bighead_counter eq 0) { big_head(); } } func void bighead_1d_var(string ai_name) { dprint bighead_var bighead_counter = bighead_counter - 1 if (bighead_counter eq 0) { big_head(); } } # BIG HEAD func void big_head(string ai_name) { dprint bighead sleep 200 chr_big_head = 1 timer_start 120 small_head
Что там надо сделать то?
Оффлайн
Короче нужно примить команду big_head на всех игроков, а как самому интиресно!!!!!!
Буду разбираться!!!!!!!!!
Оффлайн
chr_big_head - draws everyone with a big head - *chr_big_head = 1*
т. е. эта команда изначально подразумевает всех с большими головами.
эка память. нихека не помню.
Оффлайн
никак. sad but true.
Оффлайн
Кстати, на Oni Central Forum в скриншотах я увидела скриншот с названием "Chibimode". как этот автор картины сделал чибиков?
Оффлайн
vit86rus написал(а):
как этот автор картины сделал чибиков?
а в чём проблема создания скринабельных 0.25 чибиков? chr_focus
(с учётом нюансов вроде ai2_takecontrol
и существования данного персонажа, бламнуться может) на нужного персонажа, чит minime. смыть, повторить для следующего. можно для пущего счастья ещё chr_mini_me_amount
покрутить.
судя по следующему скрину в том топике, уменьшение таки было поперсонажным, а не глобальным. =)
другое дело - настоящий "chibimode", автоматизированный и независимый от имеющихся в наличие chr_id и читов. сама по себе chr_mini_me
, в отличие от чита, упорно крутит только нулевого чара. на данный момент чистым скриптингом выхода особо не видно.
Оффлайн
vit86rus, сделать персонажей чибиками - легко. говорю же, никаких чудес для повторения того скрина не нужно - chr_focus, minime, профит. "создать" чибиков путём расштабирования всех персонажей в ресурсах - легко. а вот сделать это изящно и желательно на уровне скриптов - хз. так как цель чибимода не указана (для "просто покаваиться, записать скрины/видео" вполне достаточно минимизировать действующие лица вручную, для организации "чиби-мода" в единоличном пользовании в собственных нуждах можно и перекопать ресурсы), я и рассматриваю наиболее приемлемый и проблемный вариант. в нём максимум надежд - что сюда набегут подхватывающие идею моддеры и сделают батник, который по одному клику вывалит (и даже импортирует и уберёт за собой) ворох *_chibi.ONCC, в xml виде которых будет<MinBodySizeFactor>0.25</MinBodySizeFactor>
<MaxBodySizeFactor>0.25</MaxBodySizeFactor>
или как-то так. может, не набегут. вопрос мотивации и цели. -_-
Оффлайн
Мih@ написал(а):
<MinBodySizeFactor>0.25</MinBodySizeFactor>
<MaxBodySizeFactor>0.25</MaxBodySizeFactor>
Это в каком ***.oni?
Оффлайн
во-первых, это в .dat. ".oni" - расширение сугубо искусственное, рука не поднимается объединять под один формат файлы абсолютно разных типов, уже имеющие каноничные расширения (причём и так длинные и местами сборные).
во-вторых, при экспорте происходит регулярное переименование вида *1.*2 >> *2*1.oni, в частности, *.ONCC >> ONCC*.oni. т.е. расширение мы видим в начале названия.
в-третьих, изменения должны затрагивать *.ONCC всех персонажей, подлежащих минимизации. учитываем количество. просто напоминаю. )
в-четвёртых, .oni нас вроде вообще не интересуют, а интересует вид в .xml. просто потому, что мы приличные цивилизованные люди и бинхаком не извращаемся. по секрету могу сказать, что лично я в xml всё ещё ничего не экспортил и даже сейчас, наверное, займусь этим лишь при возникновении более конкретной проблемы, но на то это и секрет... +)
Оффлайн
vit86rus написал(а):
BINACJBOCharacter
ЩИТО?? ONCC же. ONCC ONCC ONCC. ONCCkonoko_generic.xml, ONCCmad_bomber.xml, ONCCmuro_generic.xml, ONCCred_hard_3.xml и т.п.
как бы оффтоп уже. upd: если что, в шестнадцатеричном виде эти размеры - четырёхбитные флоаты по соседним адресам 0xC60 и 0xC64. то бишь, например, для 1/4 размера (пикрелейтид) можно тупо написать всем по адресу 0хC60 "0000803E0000803E
". ибо имхо xml лишь нагляднее, но не удобнее. )
Оффлайн
б**я(сорри) я непонимаю как редактироать ONCC(((
(Может, кто-нибуть сможет сделать видео урок? ИМХО мне так понятнее становится...)
Оффлайн
vit86rus написал(а):
как редактироать ONCC
HOW DO I
1) oniunpacker.exe
2) main > open .dat-file > level0_Character.dat
3) tools > binary .dat editor
4) filter by extension: ONCC
5) выбираем *.ONCC
6) ??????? (по адресу 0хC60 пишем 0000803E0000803E, сохраняем)
7) PROFIT
HOW DO THEY
0) cmd > cd ???\GameDataFolder
1) onisplit -export tmp level0_Character.dat
2) onisplit -extract:xml tmp tmp\ONCC*
.oni
3) редактируем tmp\ONCC*
.xml
3.5) del tmp\ONCC*
.oni
4) onisplit -create tmp tmp\ONCC*
.xml
5) onisplit -import tmp tmp\level0_Character.dat (как-то так)
6) ??????? (mkdir backup && move level0_Character.dat backup && move tmp\level0_Character.dat . && del tmp)
7) PROFIT
2-4 пункты опционально заменяются на непосредственное редактирование .oni шестнадцатеричным редактором.
0-2 и 4-5 пункты опционально заменяются на графическую версию onisplit, там всё наглядненько.
Оффлайн
vit86rus написал(а):
Почему-то программа не видет этот файл...
то есть даже SAE не установлен? ну тогда можно или предварительно его поставить, или заняться тройным мазохизмом, ковыряя ONCC во всех оригинальных level*
_Final.dat с 1 по 19 включительно.
Оффлайн
Мih@ написал(а):
то есть даже SAE не установлен?
Нет, он у меня есть(последний)
Добавлено спустя 1 минуту 18 секунд:
Упс, я случайно не в ту папку случайно залезла, поэтому он и не видел) Извини, всё Ок)
Добавлено спустя 8 минут 52 секунды:
Угу, Всё сработало) АРИГАТО ОГРОМНОЕ!!!
Оффлайн
Вопрос как можно команду chr_mini_me применить ко всем игрокам скажите!
Оффлайн
никак. sad but true.
Оффлайн
в принципе можно но задолбаешься...
Оффлайн
Если можно выкладывай я ведь не опытный буду у вас учиться!
Оффлайн
кроме редактирования ONCC в голову ничего не приходит... Миха выручай.
@витя:
в ONCC по адресам
0xC60 - минимальный показатель размера тела
0xC64 - максимальный показатель размера тела
я не уверен в том, что это такое, но пробуй. или жди ответа михи.
Оффлайн
demos_kratos написал(а):
ONCC
ONCC на самом деле к этой теме вообще не относится, но зачем-то был как раз тут как раз недавно описан. если человек этого настолько в упор не видит, не знаю, чем ему ещё помочь.
demos_kratos написал(а):
Миха выручай.
вот так писать, чтобы некоторые видели, что ли... если chr_focus
использовать осевая религия (и контекст скрипта, но это он должен на тонкости ориентироваться, а не наоборот) позволяет, то смело chr_mini_me=1;
на все char id.
demos_kratos написал(а):
0x
а ещё эти адреса в StructDefs давным-давно имеются, ага.
demos_kratos написал(а):
я не уверен в том, что это такое, но пробуй.
это то, благодаря чему, во-первых, персонажи изначально масштабированы (от дримлабовых страйкеров и Шинатамы до МутантаМуро и едишенских вейдеров: двойное minime (или _amount=1) делает эту мелочь особенно заметной), а во-вторых, имеют расхождения внутри классов (страйкеры же).
даже такое ленивое существо как я может недолениться, вписать кому-нибудь по 0хС60 "0000803E 00008040" (0.25 4) и наспавнфорсить подопытного чара. пикрелатед.
Оффлайн
Мih@ написал(а):
а ещё эти адреса в StructDefs давным-давно имеются, ага.
в этих def'ах всё прописано по буржуйски, а я подозреваю что неведующий не ведает сего языка.
Мih@ написал(а):
если chr_focus использовать осевая религия (и контекст скрипта, но это он должен на тонкости ориентироваться, а не наоборот) позволяет, то смело chr_mini_me=1; на все char id.
на подобные извратительства мой разум не способен, извиняй. приму на заметку что с фокусом можно поперенедовывернуть всех и вся.
Оффлайн
demos_kratos написал(а):
в этих def'ах всё прописано по буржуйски, а я подозреваю что неведующий не ведает сего языка.
если под "сим" подразумевается собственно буржуйский, а не твой, то язык скриптов, xml представление и даже названия программок как раз к нему и его усугублениям и относятся. даже часть цифр. а неведующий и неведомого русского не ведует.
то, что дело идёт на форуме, подразумевает некоторую глобализацию вопросов-ответов на всех интересующихся читателей, а не только применительно к сомнительным интересам спрашивающего. конкретные адреса и значения не выполняют ни функцию научить спрашивающего (который может как угодно истолковать 16 цифробукв), ни указать направление взгляда на проблему масштаба в целом всем остальным (искать адрес в OUP или вики, чтобы узнать "официальное" название явления и потом пытаться, возможно, безрезультатно, отыскать его в .xml - не самое приятное).
demos_kratos написал(а):
на подобные извратительства мой разум не способен, извиняй.
в теме про скрипты заявлять, что chr_focus для предварительной наброски на посторонних персонажей команд, предназначенных только для текущего персонажа игрока - "извратительство"? О_О не прощу же.
Оффлайн
Мih@ написал(а):
в теме про скрипты заявлять, что chr_focus для предварительной наброски на посторонних персонажей команд, предназначенных только для текущего персонажа игрока - "извратительство"? О_О не прощу же.
отсылка была к этому - "Ресурсокопание, скриптоизвратительство и т.п. - делимся знаниями, задаем вопросы" but who cares.mih@:
>chr_focus
>разум
>не способен
полемику кончать.
Отредактировал(а) Мih@ (17-10-2009 16:44:54)
Оффлайн
есть проги, которые вытаскивают анимации из они, и есть проги занимающиеся анимацией вообще. и все это очень муторно
Оффлайн
Это всё можно. НО! анимация, сохранённая в DAE и затем переведённая в TRAM.xml ничего кроме передвижений частей тела иметь не будет, придётся прописывать урон, место удара, передвижение во время удара, связь с другими ударами, делать крепёжь партиклей самому. обуславливается это тем, что программы, редактирующие анимацию вообще не в курсе, для чего мы всё это делаем. Neo (создатель OniSplit'а) обещал много чего автоматизировать (генерация pathfinding grid и т. п) в том числе и ввод данных анимации. каким образом - одному б-гу известно.
Отредактировал(а) demos_kratos (24-10-2009 13:56:14)
Оффлайн
Так люди реальный впрос и прозьба не игнорировать!
Как я говорил я делаю Good vs evil 4 сразуже я столкнулся с проблемой всех моих убивают, а когда убиваешь врагов то поевляется красная вспышка как после смерти, но он встаёт и продолжает драться!
Вопрос как зделать чтоб после смерти он не дрался а лежал мёртвым?
И ещё вопрос как зделать чтоб мои как бораны на новые ворота не стояли а мочились!
http://depositfiles.com/ru/files/aopbspr5c?redirect
Оффлайн
1. Убери атрибут Unkillable с ботов противника.
2. Если ты пытаешься запихнуть бота туда, куда игрок нормально добраться не сможет, то бот будет стоять и ничего не делать, так как в таких местах pathfinding grid'ы не расставлены. и ничего с этим не поделаешь.
3. Не используй Depositfiles, он *woo-hoo* мозги всем. уже стал писать что с моего белого динамического IP уже кто-то качает.
Оффлайн
1 Как убрать Unkillable?
2. Если ты пытаешься запихнуть бота туда, куда игрок нормально добраться не сможет, то бот будет стоять и ничего не делать, так как в таких местах pathfinding grid'ы не расставлены. и ничего с этим не поделаешь.
2Об этом поподробние можно, а лучше вот скрипт можеш исправить эту ошибку плиззззззз!!!
Оффлайн
Оффлайн
1. chr_unkillable XXXXX 0
2. нерешаемо на данный момент.
Оффлайн
demos_kratos написал(а):
1. chr_unkillable XXXXX 0
2. нерешаемо на данный момент.
Помоги с 1 я не врубаюсь!
Тогда вопрос в этом эдшне ресурсы глобализованы, но у мя не получается барабаса создать!
Оффлайн
1. chr_unkillable XXXXX Y
где XXXXX - имя или номер бота, Y - это 1/0 (да/нет)
это смотря каким образом ты пытаешься его создать. См. мою инструкцию по добавлению ботов.
Отредактировал(а) demos_kratos (30-10-2009 18:27:51)
Оффлайн
vitya написал(а):
как зделать чтоб мои как бораны на новые ворота не стояли а мочились!
Пацтолом xD .
Дабы совсем в наглую уже не оффтопить задам вопрос, вероятно даже по теме: есть ли возможность
произвольно выставить камеру, при этом зафиксировав ее относительно игрока? т.е. чтобы камера
следовала за игроком, снимая его с выбранного ракурса?..
Оффлайн
есть. сейчас даже скажу...
cm_orbit speed:float [stopangle:float] - собственно, разворот под углом stopangle. если нужен мгновенный разворот - ставь неимоверную скорость. cm_distance:int - переменная, обозначающая расстояние камеры до персонажа во время игры. по умолчанию = 33 cm_height:int - переменная, обозначающая высоту камеры над полом во время игры. по умолчанию = 15
вроде всё.
Отредактировал(а) demos_kratos (30-10-2009 20:07:18)
Оффлайн
demos_kratos написал(а):
вроде всё.
ну раз cm_orbit
используется, следует добавить ещё переменную cm_canter_unarmed
, по умолчанию 8, задающую, ммм... короче, управляющую вертикальным углом обзора. ) т.е. относительной высотой именно камеры, а не фокусной точки, определяемой cm_height
. так как cm_orbit
насмерть убивает человеческий aim_UD, это тоже нужно. и ещё cm_canter_weapon
рядом для вооружённых персонажей.
Оффлайн
Ладно решите проблемы с созданием играков в других уровнях!
Например я хочю создать барабаса в 5 уровне в эдшне где все ресурсы глобализованы, я прописываю ai2_spawn barabus дальше команду локации, класс барабаса, но его там нет помогите!
Прозьба не игнорировать!
Оффлайн
ты смотрел мою инструкцию по добавлению ботов еа уровень? Если да, то подобный бред, как ai2_spawn barabus, писать не стал Бы до теХ пор, пока не доБавил бы бота с именем barabus в BINACJBOCharacter.oni.
Оффлайн
demos_kratos написал(а):
ты смотрел мою инструкцию по добавлению ботов еа уровень? Если да, то подобный бред, как ai2_spawn barabus, писать не стал Бы до теХ пор, пока не доБавил бы бота с именем barabus в BINACJBOCharacter.oni.
Ясно для меня это трудно, а гденибудь можно раздобыть уже готовые моды для добавления?
Оффлайн
vitya написал(а):
Ясно для меня это трудно, а гденибудь можно раздобыть уже готовые моды для добавления?
перестань разговаривать словами, в значении которых не уверен. Готовые моды для добавления - это как?
И потом, я в своей инструкции всё наглядно показал, не строй из себя идиота. Это вообще не трудно.
Узнал свои координаты, перевёл в XML BINACJBOCharacter.oni, в файле XML продублировал одну запись <Object ...>.....</Object>, в копии этой записи поменял имя класса, имя бота, команду, координаты и всякие другие показатели, о значении которых можно узнать отсюда, перевёл обратно в oni, запихнул в Package и установил. и пишешь ai2_spawn <имя бота> и в том месте, где ты узнавал свои координаты появится бот.
Оффлайн
demos_kratos написал(а):
vitya написал(а):
Ясно для меня это трудно, а гденибудь можно раздобыть уже готовые моды для добавления?
перестань разговаривать словами, в значении которых не уверен. Готовые моды для добавления - это как?
И потом, я в своей инструкции всё наглядно показал, не строй из себя идиота. Это вообще не трудно.
Узнал свои координаты, перевёл в XML BINACJBOCharacter.oni, в файле XML продублировал одну запись <Object ...>.....</Object>, в копии этой записи поменял имя класса, имя бота, команду, координаты и всякие другие показатели, о значении которых можно узнать отсюда, перевёл обратно в oni, запихнул в Package и установил. и пишешь ai2_spawn <имя бота> и в том месте, где ты узнавал свои координаты появится бот.
Спасибо я идеота из себя не строил просто даже по видео мне трудно было понять что и для чего я сейчас ты словами объяснил что там водится теперь мне ещё понятней!!!!!!
Оффлайн