Vic7im
Участник форума
- Регистрация
- 15 Мар 2016
- Сообщения
- 49
- Благодарности
- 18
- Баллы
- 175
Both zStumbling and zParadeWindow work as intended, many many thanks Slavemaster!!Stuff
Both zStumbling and zParadeWindow work as intended, many many thanks Slavemaster!!Stuff
Поясни, пожалуйста, как настроить этот плагин, чтобы у отскока просто НЕ было "фреймов неуязвимости"?Czudak, original CanParade function must return true to plugin take in place. So, no invincibility for strafe is possible.
Нужно к каждой анимации отскока добавить вышеупомянутый тэг с числами 0 2 1. Анимации отскока есть в \_work\data\anims\humans.mds, а также в подпапке mds_overlay 4 файла (для бойца и мастера ближнего боя). Затем нужно удалить одноимённые .msb файлы из тома anims.vdf, а также из подпапки _compiled (если есть).Поясни, пожалуйста, как настроить этот плагин, чтобы у отскока просто НЕ было "фреймов неуязвимости"?
Yes, but without new animations it doesn't make sense. In gothic it doesn't make sense. Tried once, it's stupid. In the original, when there is a threat, the torch falls to the ground, it is more interesting and immediately illuminates the area (when it is dark).Hey everyone!
Would it be possible to NOT drop the torch when going into combat stance, maybe saving its position on the hand of the hero/npc until deselected/expires?
I believe the shield animations found everywhere could be of use here, don't you think? I always liked the "UH OH DANGER" move the hero does, dropping the torch to the ground adds dramacity and all, but I was using 2H weapons2 24/7 so it made sense. if you have a one handed weapon, the most obvious thing to do is to reach for it without dropping the torch lol.Yes, but without new animations it doesn't make sense. In gothic it doesn't make sense. Tried once, it's stupid. In the original, when there is a threat, the torch falls to the ground, it is more interesting and immediately illuminates the area (when it is dark).
Привет! Удосужился опробовать этот плагин. Не прошло и года.Есть демо. Задумка такая:
- Вместо того чтобы резко встать из-за сломанной отмычки, персонаж будет вставать плавно
- Если персонаж встаёт из-за сломанной отмычки не в состоянии подкрадывания, то он пинает сундук, а тот трясётся
- При отпирании сундука проигрываются соответствующие анимации замка и персонажа
Если персонаж закрывает сундук от которого у него есть ключ, то он запирает сундук с проигрыванием соответствующих анимаций- При загрузке мира для всех незапертых сундуков мгновенно проигрывается анимация отпирания замка
Останется в таком же виде - исходники утеряны.Привет! Удосужился опробовать этот плагин. Не прошло и года.
Был ли он допилен или остался в таком же виде? Если был допилен, то можно ли получить новый вариант на тест?
К сожалению, в текущем виде демка, а именно так этот плагин позиционировался год назад, не пригодна для практического применения в игре (в Г1, во всяком случае). Причина - то, что пинание сундука происходит после КАЖДОЙ сломанной отмычки. В то время как, по задумке разрабов, это должно происходить, если сломана ПОСЛЕДНЯЯ отмычка в инвентаре. Отмычек за игру ломается немало, и прикольная, вроде бы, анимация пинка будет просто раздражать игрока. Увы.Останется в таком же виде
Проверил, как плагин работает на движке Г2НВ. Там пинок сундука после поломки отмычки происходит в случае, если эта отмычка последняя. Можно сделать вывод, что неправильная работа в Г1 связана с прерыванием взаимодействия.Возможно, поэтому и пинок сундука происходит каждый раз, когда ломается отмычка.
Именно так. Наверное, лучше будет убрать прерывание взаимодействия пока отмычки не кончилисьПроверил, как плагин работает на движке Г2НВ. Там пинок сундука после поломки отмычки происходит в случае, если эта отмычка последняя. Можно сделать вывод, что неправильная работа в Г1 связана с прерыванием взаимодействия.
#engine [G1]
#patch [zContiniousLockpicking]
// engine specific
INT text_oCMobLockable_Interact_call_StopInteraction = 0x006824BF
INT text_oCMobLockable_Interact_call_StopInteraction_end = 0x006824CA
INT offset_parser = ZenDef(0x008DCE08, 0x00925048, 0x00984C08, 0x00AB40C0)
INT str_lockpick = CreateMemString("ITKELOCKPICK")
INT func_oCNpc_IsInInv = ZenDef(0x006A4E80, 0x006D7930, 0x006EA700, 0x007491E0)
INT func_zCParser_GetIndex = ZenDef(0x006EA0C0, 0x00723120, 0x00733A30, 0x00793470)
INT vfunc_oCMobLockable_StopInteraction = 0xD0
// end of engine specific
#assembler [text_oCMobLockable_Interact_call_StopInteraction]
push $str_lockpick
mov ecx, $offset_parser
call $func_zCParser_GetIndex
test eax, eax
jle stop_interaction
push 1
push eax
mov ecx, ebp
call $func_oCNpc_IsInInv
test eax, eax
jnz return
stop_interaction:
mov eax, [esi]
push ebp
mov ecx, esi
jmp 0x006824C4
return:
#/assembler [text_oCMobLockable_Interact_call_StopInteraction_end]
#/patch
#/engine
Это хорошо. Но что мне с этим кодом делать? В данной области моего опыта недостаточно.
Можно просто в System, Аutorun тут необязателен. Также можно запаковать в виртуальный том (тоже в подпапку System внутри тома).Patch файл копируем в gothic 1\System\Autorun
Проверь этот вариант:Теперь бы ещё поправить вызов функции G_PickLock с правильными аргументами при открытии замка.
#engine [G1]
#patch [zSuccessLockpickingCallback]
// engine specific
INT text_oCMobLockable_Interact_or_eax_1 = 0x00682285
INT offset_parser = ZenDef(0x008DCE08, 0x00925048, 0x00984C08, 0x00AB40C0)
INT str_SELF = CreateMemString("SELF")
INT func_zCParser_CallFunc = 0x006E9690
INT func_zCParser_SetInstance = ZenDef(0x006EB3C0, 0x00724640, 0x00734E30, 0x00794870)
// end of engine specific
#assembler [text_oCMobLockable_Interact_or_eax_1]
orgcode
push esi
push $str_SELF
mov ecx, $offset_parser
call $func_zCParser_SetInstance
push 1
push 1
push dword ptr [esp+0x1C]
push $offset_parser
call $func_zCParser_CallFunc
add esp, 16
#/assembler
#/patch
#/engine