Перейти к содержанию

F1-2: Тонкости модостроения в old Fallout'е


NukaCola

Рекомендуемые сообщения

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

 

 

2022-08-03-184840162.png

 

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

Собственно, такая проблема была на карте деревни (2 пейота и 1 невидимый пейот ссылающийся на невидимое ружо, которого тоже нет).

-!!- Технический перерыв. Не помогаю. Починяю компухтер!


Fallout 2Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP

Nevada Band: Путеводитель по играм серииFAQ

Fallout Tactics: Путеводитель по модам | FAQ

База Данных: YD\YD\MF

Помогая другим, не забывай о себе =) 

Ссылка на комментарий

короче я нашел в закромах еще два таких же пида с таким же фидом и о чудо у одного из них стоит флаг юзабелности.

 

но вопрос остается открытым. невозможно редактировать скенери. папки dev с подпапками понасоздавал везде где только угодно, и в корне, и в папке мода, и в папке бис'а. без толку. видимо нужно еще крутить что-то с настройками самого маппера.

 

ну и... непонятно как эти флаги если что править кодом.

всякие имена и тд хрен с ним можно обойти script_ovverides и нужными системными процедурами. а вот юзабельность и возможность использовать_предмет_на уже совсем другое.

Ссылка на комментарий

Для bis - надо так:

распаковать master,dat, patch000.dat, patch000.dat из MM, папку data из MM в папку DATA игры и там колдовать с картами и прошками.

Либо

master.dat и patch000 в папку с игрой, а patch000.dat из MM и в папку data MM.

В bis - выбрать вариант - установить для работы с модами.

-!!- Технический перерыв. Не помогаю. Починяю компухтер!


Fallout 2Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP

Nevada Band: Путеводитель по играм серииFAQ

Fallout Tactics: Путеводитель по модам | FAQ

База Данных: YD\YD\MF

Помогая другим, не забывай о себе =) 

Ссылка на комментарий
Vis

Из твоей писанины вообще не понятно, что ты там колдуешь, какие-то фиды и к флагам к ним??? (FID это картинка нет для них никаких флагов), копирования, хренью какой-то занимаешься. ))

Приклыдывай скриншоты к своим действиям.

 

Scenery все редактируется в маппере. настрой его правильно по мануалам.

вон там настроенный валяется https://disk.yandex.ru/d/J1rK6AceqMqFNw

только структуру в корень диска с папками добавь, (папка misc тоже должна лежать в proto а не как у фокса криво скопировано).

добавлено позже

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

нет

Ссылка на комментарий

я пытался натянуть фид скенери на пид контейнера и чет не вышло, хотя такой путь правильнее

нельзя, потому что у предметов и сценери свои картинки.

добавь картинку этого сценери в папку art/items/ зарегай ее в листе и получишь то что хочешь.

добавлено позже

можно ли кодом присвоить скенери Action Flag "Usable=true"?

функции set_object_data() или set_proto_data()

Да.

set_object_data() меняет только для объектов на карте

set_proto_data() для прототипа.

 

set_proto_data - аргумент пида должен быть полный т.е. для сценери 0x0200####

Ссылка на комментарий

set_object_data() меняет только для объектов на карте

 

это мне и интересно. как правильно написать следующее?

 

для объекта такого-то (указатель А) экшн флаг Usable выставить в true.

 

просто в defin'ах нет пояснений и подробностей, и оффсетов нет для Acion Flag'ов

Ссылка на комментарий

это мне и интересно. как правильно написать следующее?

set_object_data()  а не это не пойдет только в прото эти флаги ставятся, (легче в пртотипе флаг поставить чем мозги напрягать)

добавлено позже

просто в defin'ах нет пояснений и подробностей, и оффсетов нет для Acion Flag'ов

не для новичков в таких делах ковыряться

 

PROTO_FLAG_EXT - вот этот оффсет для прототипов, значения для флага(гов) надо в доке по протопипам стотреть. у тебя такой доки точно нет)))

ладно, вот скопировал:

Action Flags (флаги действий):
0x00001000 – Use On Smth (объект можно использовать на что-либо)
0x00002000 – Look (объект можно осмотреть)
0x00004000 – Talk (с объектом можно поговорить)
0x00008000 – PickUp (объект можно поднять)
0x00000800 – Use (объект можно использовать)

Ссылка на комментарий

если шо то такая конструкция

set_proto_data({pid}, PROTO_FLAG_EXT, get_proto_data({pid}, PROTO_FLAG_EXT) bwor {flag});

устанавливать при каждом заходе на карту, то прототипы выгружаются из памяти.

Ссылка на комментарий

бьюсь уже целый день с таким багом.

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

 

в коде я вызываю функцию скрытия кузова только в одном месте. дабы убедится я комментирую в коде этот вызов и баг пропадает. и вход в это место (оно мне нужно по логике квестов и тд) ну ни как не удовлетворяет тем параметрам, которые в сохранении в самом начале загрузки. этот кусок кода в map_enter_p_proc. причем самые ее последние строчки.

 

 

 

if (((global_var(348) == 1) and (cur_map_index != 58)) or global_var(18) == 2) then begin
display_msg("h2");
call Hide_Car();
end

 

 

 

писал и вот так 

 

 

 

   if (((global_var(348) == 1) and (cur_map_index != 58)) or (not(global_var(18) == 1))) then begin
      display_msg("h2");
      call Hide_Car();
   end

 

 

 

начало Hide_Car()

 

procedure Hide_Car begin
   display_msg("hidecar");
   if (tile_contains_pid_obj(Get_Car_Hex(), elevation(dude_obj), 33556384)) then begin
      destroy_object(tile_contains_pid_obj(Get_Car_Hex(), elevation(dude_obj), 33556384));
   end
.......

 

 

2022-08-05-202729052.png

 

 

по скрину видно что изначально идет вход Hide_Car() и только потом у меня начинают дисплеится сообщения из map_enter_p_proc. причем дисплей "h2" и куча других сообщений не показываются, те которые перед вызовом функции Hide_Car(). я понимаю что звучит это как сказка но у меня перед "hidecar" должно высветиться еще полотно с кучей параметров, но его тупо нет.

 

по глобалварам в сохранении

 

18 глобал вар = 1

348 вобще пустой

индекс этой мапы 5

 

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

Ссылка на комментарий

Vis

Попробуй не в map_enter_p_proc, а в procedure start прописать.

 

такой процедуры в этом коде не было.

я ее добавил. пустой.

баг ушел и теперь все работает как надо.

пойду напьюсь....

видимо из-за отсутствия в коде start движок запускал по умолчанию на исполнение ту процедуру которая идет первой. и по коду это и есть эта самая злосчастая процедура Hide_Car()

Ссылка на комментарий

а какой скрипт отвечает за мировую карту? мне нужно:

1. как-то фиксировать выход из города в мир на машине или пешком (машиной - я фиксирую это исполнением процедуры use самого кузова). но вот как фиксировать то что пешком - не понятно

2. как отцентровывать мировую карту по текущему положению игрока, по треугольнику принудительно. дело в том что перелетая на вертиберде я телепортируюсь с локи на локу, и когда выхожу в мир (после перелета-телепорта) то центр на городе из которого я вылетел, а не в том в котором я сейчас

Ссылка на комментарий

upd. первый вопрос решил игрой глобальных варов и жестким контролем входом в город на машине/без нее, но там могут быть глюки с системным телепортом между картами (встреча с Френком Хориганом, телепорт при спасении сестры Сулика и тп.). мож все-таки как-то можно элегантней такое обработать?))

второй вопрос до сих пор открыт

Ссылка на комментарий

а какой скрипт отвечает за мировую карту?

нет такого скрипта, все в движке (контроль через скрипинг sfall)

 

2. как отцентровывать мировую карту по текущему положению игрока, по треугольнику принудительно. дело в том что перелетая на вертиберде я телепортируюсь с локи на локу, и когда выхожу в мир (после перелета-телепорта) то центр на городе из которого я вылетел, а не в том в котором я сейчас

должно само центрироваться. определенно что-то ты там делаешь не правильно в смысле выход на глобал кривой.

добавлено позже

мож все-таки как-то можно элегантней такое обработать?))

эээ, отсоединением машины от партии?.

как-то раньше когда скриптил машину не заморачивался над пешком/на машине. все работало как ты хочешь.

Ссылка на комментарий

эээ, отсоединением машины от партии?. как-то раньше когда скриптил машину не заморачивался над пешком/на машине. все работало как ты хочешь.

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

 

отсоединение машины от группы равно ее потеря. ну да ладно хер с ним, я уже разобрался в принципе как это обойти гварами.

 

с мировой картой, я поясню, перелет на вертиберде - это телепорт и пишется он вот так вот:

      set_global_var(713, 0); // обнуляем диалоговую переменную

      gfade_out(600); // гасим экран чтобы следуюящая строчка выполнялась красиво

      call destroy_vertibird(); // убиваем вертиберд

      set_global_var(712, global_var(712) - fuel_used_to_get_to(global_var(725))); // уменьшаем количества топлива по формуле

      game_time_advance(time_used_to_get_to(global_var(725))); // увеличиваем игровое время на перелет по формуле

      load_map(get_map_index_a(global_var(725)), get_map_index_b(global_var(725)));// вот загрузка мапы куда мы летим

      set_global_var(724, get_map_index_a(global_var(725))); //  фиксируем новое положение вертиберда

      gfade_in(600); // включаем экран

 

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

Ссылка на комментарий

с мировой картой, я поясню, перелет на вертиберде - это телепорт и пишется он вот так вот:

ах да точно, что такой "телепорт" не центрирует потом при выходе.

Там есть функции которые могут переместить вьюпорт по координатам на требуемый город. поширси функции в скрипт редакторе.

добавлено позже

отсоединение машины от группы равно ее потеря.

:blink: ну ты меня прям озадачил.

Ссылка на комментарий

:blink: ну ты меня прям озадачил.

 

видимо я не так выразился))

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

 

но по сути если ее отсоединять то очень много гемороя сразу отпадает. хотя я уже итак весь этот геморой обрабатываю  :smile11:

добавлено позже

Там есть функции которые могут переместить вьюпорт по координатам на требуемый город. поширси функции в скрипт редакторе.

хотя бы приблизительно как оно называется-то?))

 

и еще один нубский вопрос, я бис маппере наконец-то смог редактировать объекты.

- почему он падла удаляет некоторые про файлы

- как сменить раскладку на русскую если хочу поменять имя прото-объекта, никакие раскладки не переключают язык ввода, он всегда английский

Ссылка на комментарий

хотя бы приблизительно как оно называется-то?))

чето не могу найти, такое ощущение что их нет))

но вот сконструировал что-то из того что было

set_world_map_pos(worldmap_xpos, worldmap_ypos);

 

отпиши сработало ли это.

 

- почему он падла удаляет некоторые про файлы

- как сменить раскладку на русскую если хочу поменять имя прото-объекта, никакие раскладки не переключают язык ввода, он всегда английский

хз, не может он удалять. может ты игру запускаешь она удаляет)

 

маппер английский, какая там раскладка. руками в блокнотике писать надо.

Ссылка на комментарий

маппер английский, какая там раскладка. руками в блокнотике писать надо.

ну вставка из буфера тоже не работает (ctrl+v), мож другая команда на вставку?..... как народ называет объекты советскими буковками?

Ссылка на комментарий

а вот нашел то что искал

set_viewport_x({int view_x});
set_viewport_y({int view_y});
 
но чето походу нет функции получения координат текущего города вот это косяк (или я ее не найду)
попробуй по подставлять разные функции для x/y типа таких:
get_world_map_x_pos
get_world_map_y_pos

добавлено позже

ну вставка из буфера тоже не работает (ctrl+v), мож другая команда на вставку?..... как народ называет объекты советскими буковками?

никакая вставка не поможет, только в блокнете++ с кодировкой win1251 или oem-866 (взависимости от шрифтов игры)

епта писать в .msg файлах игры а не через вставку в мапер!!!

Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...