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


Фотография

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


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

#741 Fakeman

Fakeman

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

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

Отправлено 13 февраля 2017 - 20:19

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

или может есть двиг код который бы закрывал ее) — аля клик мышью.


QUOTE
Последний sFall от NevaRain, еле ссылку нашел.

На NMA в теме сфала есть ссылка на sourceforge.net там обычно и качают.
чего ты вообще поперся на гитхаб)

Это сообщение отредактировано Fakeman - 13 февраля 2017 | 20:22


#742 Crafty

Crafty

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

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

Отправлено 13 февраля 2017 - 21:08

QUOTE (Fakeman)
как узнать что манипуляция в инвентаре происходит с(в) открытой сумкой(контейнером), ты же там что-то мутил с сумками должен вроде знать как это определить.
hs_inventorymove с arg1 равным 5, не?

QUOTE (Fakeman)
а то на открытие сумки не один из hооkов не реагирует.
Так навскидку можно проверять содержимое _curr_stack (0x59E96C) и _target_curr_stack (0x59E948) — для main backpack равно 0, для container равно 1-9 (уровень вложений).

QUOTE (Fakeman)
или может есть двиг код который бы закрывал ее) — аля клик мышью.
Есть container_exit_ (0x476394) с двумя параметрами: первый равен 2500 для _curr_stack или 2501 для _target_curr_stack, второй указывает режим — 0 (INVENTORY), 1 (INTFACEUSE), 2 (INTFACELOOT) и 3 (BARTER).


#743 Fakeman

Fakeman

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

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

Отправлено 13 февраля 2017 - 22:31

QUOTE
hs_inventorymove с arg1 равным 5, не?

не не то, а чего за 5, про такого не написано.
arg1 — Target slot (0 — main backpack, 1 — left hand, 2 — right hand, 3 — armor slot, 4 — weapon, when reloading it by dropping ammo)
ну да ладно, оно все рано не срабатывает когда открываешь сумку, только когда предмет перемещаешь.

QUOTE
container_exit_ (0x476394)

ух ты замечательно закрывает) а с проверкой вложености _curr_stack наверное можно в цикле все разом закрыть.
я выбрал проверку на вложенность.

Отправлено: 13 фев 17 23:02
и еще можно ли через двиг выводить текст во время бартера в окно торговли где текст нпс печатается?

Это сообщение отредактировано Fakeman - 13 февраля 2017 | 23:02


#744 Crafty

Crafty

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

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

Отправлено 13 февраля 2017 - 23:51

QUOTE (Fakeman)
а чего за 5, про такого не написано.
Та ладно
QUOTE
* Подправлен hs_inventorymove и добавлена обработка события при перетаскивании предмета во вложенную сумку.
И в hookscripts.txt это отражено.

QUOTE (Fakeman)
ух ты замечательно закрывает) а с проверкой вложености _curr_stack наверное можно в цикле все разом закрыть.
Или можно сделать _curr_stack = 1 и закрыть один раз. Я так здесь сделал:
QUOTE
! Исправлено несколько недоработок связанных с кнопками "Взять всё"/"Положить всё" (и вложенными сумками).

QUOTE (Fakeman)
и еще можно ли через двиг выводить текст во время бартера в окно торговли где текст нпс печатается?
gdialogDisplayMsg_ (0x445448) с одним параметром указывающим на строку.


#745 Fakeman

Fakeman

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

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

Отправлено 14 февраля 2017 - 16:54

QUOTE
gdialogDisplayMsg_ (0x445448) с одним параметром указывающим на строку.

указатель на строку текста, понятно...
а как указать откуда брать эту строку?
или это берется только из файла msg диалога нпс?

а такой нет, чтобы сразу принимал текст.

Это сообщение отредактировано Fakeman - 14 февраля 2017 | 22:29


#746 Crafty

Crafty

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

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

Отправлено 14 февраля 2017 - 19:13

QUOTE (Fakeman)
а как указать откуда брать эту строку?
Тогда опаньки, call_offset_v* принимает только int параметры и если указать что-то вроде:
CODE
variable testStr := "Test";
call_offset_v1(0x445448, testStr);
то второй параметр будет скомпилирован как строка и в обработчике будет признан как illegalarg.

QUOTE (Fakeman)
а такой нет, чтобы сразу принимал принимал текст.
Не, попроси Фобоса чтобы через новую sfall_funcX добавил.


#747 Fakeman

Fakeman

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

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

Отправлено 14 февраля 2017 - 22:28

CODE
variable testStr := "Test";
call_offset_v1(0x445448, testStr);

Это типа в теории) — а на практике это не работает.
а любое инт число вываливает игру.

QUOTE
Не, попроси Фобоса чтобы через новую sfall_funcX добавил.

Ты кстати в свой эту sfall_funcX переносить будешь?

Это сообщение отредактировано Fakeman - 14 февраля 2017 | 22:59


#748 Crafty

Crafty

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

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

Отправлено 14 февраля 2017 - 23:25

QUOTE (Fakeman)
Это типа в теории) — а на практике это не работает.
Вот потому на практике и не срабатывает, что обработчик call_offset_v* понимает только int параметры. Но его можно научить дополнительно понимать и string (просто в вызываемую функцию он будет передавать указатель на неё). Конечно эта "учёба" актуальна если у компилятора скриптов нет жёстких ограничений (он может компилировать такой код).

QUOTE (Fakeman)
Ты кстати в свой эту sfall_funcX переносить будешь?
Да, но пока заморозка же :-p


#749 Fakeman

Fakeman

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

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

Отправлено 14 февраля 2017 - 23:29

CODE
item_c_curr_size_

чего это возвращает — текущий размер заполнения контейнера?

Это сообщение отредактировано Fakeman - 14 февраля 2017 | 23:29


#750 Crafty

Crafty

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

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

Отправлено 15 февраля 2017 - 00:55

QUOTE (Fakeman)
текущий размер заполнения контейнера?
Да.


#751 Foxx

Foxx

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

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

Отправлено 16 февраля 2017 - 19:33

Crafty у тебя по умолчанию CanSeeAndHearFix=1 включена.
Заметил, что с ней в Неваде наблюдается проседание fps в некоторых локациях. Могут с ней еще какие-нибудь проблемы выскочить или это не опасно))

Вот сохранка и если зайти в стриптиз-бар Мамаши, то сразу видно.
https://yadi.sk/d/M0fvuK9H3EAjQv

Это сообщение отредактировано Foxx - 16 февраля 2017 | 20:46


#752 Crafty

Crafty

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

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

Отправлено 17 февраля 2017 - 02:44

QUOTE (Foxx)
Заметил, что с ней в Неваде наблюдается проседание fps в некоторых локациях.
Есть такая пичалька, причина пока непонятна :(

QUOTE (Foxx)
Могут с ней еще какие-нибудь проблемы выскочить или это не опасно))
Пара-другая баксов из кармана может периодически пропадать :-p


#753 Paptimus

Paptimus

    Новичок

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

Отправлено 22 февраля 2017 - 20:06

А встречался, кто с багом в нью-рино после принятия в семью не обновляется ассортимент магазинов? Например, в оружейном магазине спал несколько месяцев и ничего.


#754 Phobos

Phobos

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

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

Отправлено 02 марта 2017 - 20:24

@Crafty:
QUOTE
Вот потому на практике и не срабатывает, что обработчик call_offset_v* понимает только int параметры. Но его можно научить дополнительно понимать и string (просто в вызываемую функцию он будет передавать указатель на неё). Конечно эта "учёба" актуальна если у компилятора скриптов нет жёстких ограничений (он может компилировать такой код).

С компиляцией не должно быть проблем. Компилятор знает лишь 2 вещи про каждый опкод — сколько значений взять из стека (число аргументов) и сколько положить (1 или 0). Тип ему по парабану — это дело обработчика. Я бы рекомендовал взять из текущей develop ветки моей класс OpcodeContext и связанный с ним код. Но тогда придется использовать непонятный С++ :D
Можно просто посмотреть как реализована в текущей 3.8 ветке функция SetArray, например (она там на милом сердцу ASM). Второй и третий параметр — любого типа.

Особенность со строками — в обработчик (после вызова interpretGetString) попадет указатель на строку (по сути const char*). Использовать этот указатель можно только внутри обработчика, т.к. вскоре эта строка из памяти может исчезнуть. Если нужно её хранить, рекомендуется делать копию...

Это сообщение отредактировано Phobos - 2 марта 2017 | 20:24


#755 Wozrogdenec

Wozrogdenec

    Defendor of the Wastes

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

Отправлено 03 марта 2017 - 01:27

QUOTE
А встречался, кто с багом в нью-рино после принятия в семью не обновляется ассортимент магазинов? Например, в оружейном магазине спал несколько месяцев и ничего.
Насколько помню — даже в обычной версии важно находиться в другой локации, чтобы обновлялся ассортимент магазинов.
Разве нет?


#756 Crafty

Crafty

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

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

Отправлено 06 марта 2017 - 04:10

QUOTE (Novarain)
BTW, I saw you changed some names of engine functions/constants in the last couple of sfall2 updates. Did you also change them in IDA pro databases? If yes, could you update the files in the database download?

QUOTE (Phobos)
Не мог бы ты все-таки скинуть описания структур которые используешь в своей базе IDA Pro?

Знаю, что самой базой делиться не собираешься, но может хотя-бы с этим поможешь. Попытка не пытка :)
Перезалил, хз что ожидаете там увидеть — отличие от старой заключается в требовании иды 6.8 и добавленной пятёрки-другой частичных структур. Не помню менял ли имена.


#757 Phobos

Phobos

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

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

Отправлено 07 марта 2017 - 21:33

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

Спасибо. Ожидаем увидеть высшую точку в реверсе движка игры :) Точнее, собранное все в одном месте. Если собрать коллективные знания всех кто когда-либо реверсил движок, наверное там уже не осталось белых пятен)))
Такие вещи надо держать в доступе, чтобы в случае чего ничего не пропало безвозвратно)


#758 Foxx

Foxx

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

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

Отправлено 08 марта 2017 - 04:05

Crafty, тебе и передохнуть не дают;)

Это сообщение отредактировано Foxx - 10 марта 2017 | 17:47


#759 Fakeman

Fakeman

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

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

Отправлено 24 апреля 2017 - 14:46

QUOTE
- Из секции [Input] удалена переменная DebugEditorKey.

Зачем удалили обработку вызова внешнего отладчика? Верните!
в ini можно eё не вносить, если вам так мешают лишние записи в конфиге.

Исходников больше не будет?

Это сообщение отредактировано Fakeman - 24 апреля 2017 | 14:46


#760 Crafty

Crafty

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

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

Отправлено 25 апреля 2017 - 14:48

QUOTE (Fakeman)
Зачем удалили обработку вызова внешнего отладчика? Верните!
в ini можно eё не вносить, если вам так мешают лишние записи в конфиге.
Хлопотно было делать, функционал же убогонький...

QUOTE (Fakeman)
Исходников больше не будет?
Зачем тебе исходники на ассемблере?




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

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


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

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

Рейтинг@Mail.ru