Перейти к содержимому


Фотография

(sfall) дополнения


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 1246

#681 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 26 октября 2016 - 20:03

По мапперу.
Я все пропатчил, все работает, ну кроме всяких функций по редактированию карты — оно и не надо.
Но остались вопросы в функции obj_preload_art_cache_
в fallout.exe такой код
CODE

lea     edx, [esp+1020h+buf]    ; lock
в нех: 8D 94 24 00 10 00 00

mov     eax, [esp+1020h+buf]    ; art_ptr
в нех: 8B 84 24 00 10 00 00

В маппер2.exe так
CODE

lea     edx, [esp+1020h+var_10]
в нех: 8D 94 24 10 10 00 00

mov     eax, [esp+1020h+var_10]
в нех: 8B 84 24 10 10 00 00

ничего что в нех отличается код от игрового на 10h, в чем вообще разница? -не пойму. (в игре получается ограничение на 16384, а в мапппере 16400)

и как мне поступить с art_id_ и art_get_name_ ?
может сделать call в неиспользуемую область типа таблицы перков и там код написать? или так нельзя делать)

Это сообщение отредактировано Fakeman - 26 октября 2016 | 20:13


#682 Crafty

Crafty

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 423 сообщений

Отправлено 26 октября 2016 - 23:58

QUOTE
У башки реакция хранится в нулевой локальной переменной её скрипта, и настроение вычисляется с помощью local_var(0) из скрипта цели:
Описаны в MODREACT.H:
CODE
// LOCAL VARS WHICH WILL BE SAVED FOR EACH CRITTER

#define LVAR_reaction                   (0)             // Holds reaction number value.
#define LVAR_reaction_level             (1)             // Holds reaction level: BAD, NEUTRAL, GOOD.
#define LVAR_got_reaction               (2)             // Makes sure to modify reaction only once.
#define LVAR_base_reaction              (3)

QUOTE (Phobos)
А что ты думаешь по поводу универсального опкода?
Так я не против.

QUOTE (Fakeman)
Я все пропатчил, все работает
Не спеши, я уже сделал базовую версию (кодовое название sfallM, keke).

QUOTE (Fakeman)
ну кроме всяких функций по редактированию карты — оно и не надо.
Почему не надо? Ты в маппере играешь?


#683 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 27 октября 2016 - 00:49

QUOTE
Почему не надо? Ты в маппере играешь?
В смысле играю) карты там делаю, скрипты не-сфаловские тестю, я имел виду что новые тайлы можно в маппере димса тыкать, я же его поправил для этого дела.

QUOTE
Не спеши, я уже сделал базовую версию (кодовое название sfallM, keke).
ну раз такое дело то поправь еще процедуры типа tile_place и tile_place_at чтоб "новые" тайлы можно было размещать.
я их правил но чтот не заработало как всегда)

CODE
#define LVAR_reaction                   (0)             // Holds reaction number value.

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

Это сообщение отредактировано Fakeman - 27 октября 2016 | 01:08


#684 Crafty

Crafty

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 423 сообщений

Отправлено 30 октября 2016 - 21:11

QUOTE (Fakeman)
ну кроме всяких функций по редактированию карты — оно и не надо.
QUOTE (Crafty)
Почему не надо? Ты в маппере играешь?
QUOTE (Fakeman)
ну раз такое дело то поправь еще процедуры типа tile_place и tile_place_at чтоб "новые" тайлы можно было размещать.
О том и разговор — изменений из F2-версии недостаточно.
Ссылка в первом посте, а здесь патчик для простенькой проверки. BIS'овский маппер по-другому обрабатывает список доступных тайлов — использует proto\tiles\tiles.lst и в отличии от маппера димса фокус с art\tiles\tiles.lst не прокатывает. Поэтому я взял из чистого F2 содержимое art\tiles и proto\tiles, добавил в art\tiles новые файлы из RP, потом из Невады и добил Олимпом. С добавлением в art\tiles\tiles.lst новых файлов. Создал в proto\tiles недостающие *.pro и добавил их в proto\tiles\tiles.lst.
Патчик распаковать в master_patches или скопировать его в каталог F2/маппера (в ddraw.ini проверить отсутствие PatchFile, отсутствие master_patches\art\tiles\tiles.lst и master_patches\proto\tiles\tiles.lst), в ddraw.ini добавить MoreTiles=1 (нужно бы какое-то описание придумать). Загружать artemple.map (в F2 Ctrl-R или новая игра, а в маппере Alt-O).

QUOTE (Fakeman)
эта всегда сбрасывается в -3 когда криттер походил(поучаствовал) в бою.
Движково ГГ должен обижать криттера, каждая обида -3.


#685 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 30 октября 2016 - 22:36

Ну проверил вроде работает.
CODE
+ Добавлены переменные PatchFile, SingleCore, ExtraSaveSlots, BoostScriptDialogLimit и DebugMode.

Круто DebugMode прямо в маппере.
Надо было еще и ProsessorIdle перенести а то маппер проц грузит как современная игра)


#686 Crafty

Crafty

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 423 сообщений

Отправлено 31 октября 2016 - 04:41

QUOTE (Fakeman)
Круто DebugMode прямо в маппере.
Ну ради 3 режима оставил, так-то он в маппере есть, и, возможно не все знают, для переменной mode из mapper2.cfg кроме значения environment (настройка режима вывода через DEBUGACTIVE) можно использовать gnw (окошко Debug), log (создание debug.log), screen и mono. Последние два не шибко юзабельны в современных реалиях.

QUOTE (Fakeman)
Надо было еще и ProsessorIdle перенести а то маппер проц грузит как современная игра)
У меня 50%, но добавил.


#687 Phobos

Phobos

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 49 сообщений

Отправлено 31 октября 2016 - 09:47

@Crafty:

Может вместо Sfall2 использовать буквенное обозначение вашего форка? Например SfallC (Crafty) или SfallA (Alternative). Дабы избежать путаницы (ведь у Sfall уже была версия 2.0).

Велись ли какие-либо работы для реализации (либо уже реализовано) следующих фич:

- Изменения логики ИИ во время боя (давно хотел сделать несколько хук скриптов чтобы кастомизировать поведение скриптами).
- Вывод типа/количества патронов в магазине прямо поверх иконки оружия в инвентаре.
- Опция для подсветки криттеров по аналогии с подсветкой контейнеров и предметов.
- Автоматическое открывание незапертых дверей (прокладывание маршрутов через такие двери) игроком.
- Еще есть такой репорт от Sduibek, что якобы во время загрузки локации "пролетает" время.. (что-то я такого не замечал правда).

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

Это сообщение отредактировано Phobos - 31 октября 2016 | 13:23


#688 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 31 октября 2016 - 14:36

Crafty У меня 50%, но добавил.
ну да всегда 50 при простое.
Для маппера не работает похоже эта фишка.

QUOTE
Ну ради 3 режима оставил, так-то он в маппере есть, и, возможно не все знают,

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

Phobos
У дверей есть для этого специальный флаг walk...что-то там.

Трупы уже подсвечиваются. Надо еще что бы трупак можно было подхватить если он валяется за каким либо объектом.

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

Я тут думал над твоим луа, мне кажется что он сложнее в освоении чем ssl
Все равно чел. придется читать мануал по функциям движка, остальное основа програмирования if then else / while do / переменные и работа сними вычитание/сложение/присвоение, этих без базовых знаний в программировании чел не сможет написать скрипт как в луа, так и в ссл.
Поповоду не нужно будет компилировать — ну не знаю не испытываю проблем с компиляцией нажал кнопочку скрипт ушел на компиляцию и в папочку скрипт.
Не нужено будет делать декомпиляцию — ну тут да плюс, но тогда придется хранить и всякие свои левые include файлы.
А как же всякие препроцессорные фигни с указанием ключей аля release/debug — тоже классная штука.

Это сообщение отредактировано Fakeman - 31 октября 2016 | 17:34


#689 Phobos

Phobos

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 49 сообщений

Отправлено 31 октября 2016 - 18:43

QUOTE
Я тут думал над твоим луа, мне кажется что он сложнее в освоении чем ssl
Все равно чел. придется читать мануал по функциям движка, остальное основа програмирования if then else / while do / переменные и работа сними вычитание/сложение/присвоение, этих без базовых знаний в программировании чел не сможет написать скрипт как в луа, так и в ссл.
Поповоду не нужно будет компилировать — ну не знаю не испытываю проблем с компиляцией нажал кнопочку скрипт ушел на компиляцию и в папочку скрипт.
Не нужено будет делать декомпиляцию — ну тут да плюс, но тогда придется хранить и всякие свои левые include файлы.
А как же всякие препроцессорные фигни с указанием ключей аля release/debug — тоже классная штука.


Просто на дворе 2016 год и сейчас никто не компилирует скрипты руками))) Кроме нас, олдфагов. Как минимум есть JIT-компиляция, которую я кстати подумывал тоже реализовать. Достаточно слинковать compile.dll с sfall также как это сделано в редакторе скриптов и вызывать в нужные моменты компиляцию.. Но тут появляется большая проблема работы с файлами.. В игре используется плоская структура — все скрипты в одной папке-помойке. А в исходниках по другому, т.е. игра должна знать в какой папке искать исходники... В общем дофига гемора.

А насчет того что сложнее в освоении — хз. Для не-программиста может SSL покажется в чем-то проще (потому-что он нихрена не может и сложного кода на нем нет), а вот для программеров однозначно лучше Lua.

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


#690 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 01 ноября 2016 - 15:40

ООП в скриптах да нафиг оно надо... — Займись лучше новым двигом)

Это сообщение отредактировано Fakeman - 1 ноября 2016 | 15:40


#691 Phobos

Phobos

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 49 сообщений

Отправлено 02 ноября 2016 - 10:38

Нужно мнение всех тех кто пишет скрипты: http://www.nma-fallo...30#post-4195783.

Суть — набор опкодов, где ты передаешь имя скриптовой функции строкой и следом все аргументы. Т.е. для добавления новых функций достаточно только пересобрать sfall. Кроме того не потребуется писать ни строчки ASM если только сама функция не работает с движком игры.

Может есть предложения, пожелания по этому решению.

Это сообщение отредактировано Phobos - 2 ноября 2016 | 11:43


#692 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 03 ноября 2016 - 04:31

Пожеланий пока нет, ну а так нужная фигня) может кому и пригодится.


#693 Phobos

Phobos

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 49 сообщений

Отправлено 03 ноября 2016 - 20:53

Так что там насчет поделиться последней версией базы Иды с народом? :)


#694 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 03 ноября 2016 - 22:03

Так это)
QUOTE (Crafty)
А свою базу (или idc) конечно покажи ;)


#695 Phobos

Phobos

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 49 сообщений

Отправлено 03 ноября 2016 - 22:26

QUOTE
QUOTE (Crafty)
А свою базу (или idc) конечно покажи ;)


Это в каком контексте сообщение? Если речь про мою базу, то там мало что интересного. Она в подметки не годится той что я когда-то давно скачал от Crafty — там размечены реальные названия ВСЕХ функций. Я до сих пор не понимаю как ему это удалось :)

Сделал скриптовую функцию аналог critter_inven_obj но без проблемы с неактивным слотом. По новой технологии, вот как раз пример добавления новый скриптовых функций.

Проще некуда :)

Это сообщение отредактировано Phobos - 4 ноября 2016 | 13:26


#696 Crafty

Crafty

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 423 сообщений

Отправлено 05 ноября 2016 - 18:15

QUOTE (Phobos)
- Изменения логики ИИ во время боя (давно хотел сделать несколько хук скриптов чтобы кастомизировать поведение скриптами).
Разглядывал, пока ничего не сделал.

QUOTE (Phobos)
- Вывод типа/количества патронов в магазине прямо поверх иконки оружия в инвентаре.
Нет, и это, кстати, можно будет отнести к зашитому сложному моду, меняющему интерфейс игры :-p

QUOTE (Phobos)
- Опция для подсветки криттеров по аналогии с подсветкой контейнеров и предметов.
Комбат, не.

QUOTE (Phobos)
- Автоматическое открывание незапертых дверей (прокладывание маршрутов через такие двери) игроком.
Не вижу смысла, а то так дойдёт и до автоматических диалогов и боёв.

QUOTE (Fakeman)
Для маппера не работает похоже эта фишка.
Ни для чего не работала (наследие оригинала). Исправил.

QUOTE (Phobos)
Так что там насчет поделиться последней версией базы Иды с народом? :)
Пока только та, что в начале темы.


#697 Phobos

Phobos

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 49 сообщений

Отправлено 06 ноября 2016 - 13:45

Доработал решение с новыми опкодами sfall_funcX (остановился на таком названии). Теперь одну и туже функцию можно использовать как для полноценных опкодов (если они определены с помощью макроса _WRAP_OPCODE), так и для sfall_func.

Еще можно прописывать функции табличку и тогда их параметры будут автоматом валидироваться (выводится сообщения об ошибках в debug.log):
https://github.com/p...tender.cpp#L361

Новые скриптовые функции:
https://github.com/p...ruleOp.hpp#L105

Думаю при желании будет не трудно смерджить эти изменения в "ваш" sfall. Ветка 3.8-maintenance должна быть относительно совместимой...


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

В идеале хотелось бы видеть в качестве основы sfall набор структур, констант и оболочек функций таким образом чтобы можно было работать с движком игры как будто есть исходники...

Это сообщение отредактировано Phobos - 6 ноября 2016 | 20:15


#698 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 14 ноября 2016 - 17:19

Верните пожалуйста расчет СRC какой и был! sfall configurator не понимает ваш ассемблеровсккий способ расчета.
К тому же это создает большое неудобство при смене длл на оригинал с постоянным переписыванием значения крк.
Ладно претензия снимается, вспомнил что в строчку можно несколько прописать.
Но в чем вообще нужда смена расчета? -непонятно.

И это зачем закомментил, или это по дефолту так выключено?
я тут 32 поставил так звуки не прерываются если их одновременно много проигрывается
CODE
;Sets the number of allowed simultaneous sound effects (valid range: 1..127; Default is 4)
;NumSoundBuffers=4


Это сообщение отредактировано Fakeman - 26 ноября 2016 | 19:41


#699 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 17 ноября 2016 - 21:18

Все забывал тебе написать про еще один неприятный баг связанный с multihex криттерами, во время боя такие криттеры вплотную подходят к игроку, т.е к своему центральному гексу, и гг как бы оказывается внутри моба :)
кстати и моб тратит при подходе на одно очко AP больше.


#700 Pomah

Pomah

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 36 сообщений

Отправлено 22 ноября 2016 - 09:13

Этот мод можно ставить на любой фол? Гуглешь говорит что только на оригинальный, то есть на русский нельзя?




Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных

Рейтинг@Mail.ru