• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.431
Благодарности
4.771
Баллы
625
  • Первое сообщение
  • #1
1767600363729.png

RU EN

 

Вложения

  • Union_Primary_Universal 12.02.2022.zip
    44 MB · Просмотры: 28.432
  • Union 1.0m 26.06.2022.zip
    11,8 MB · Просмотры: 977
  • Union 1.0m 26.06.2022 v2.zip
    11,8 MB · Просмотры: 627
  • Union 1.0m 26.06.2022 v3.zip
    11,8 MB · Просмотры: 30.731

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.431
Благодарности
4.771
Баллы
625

lovedollybae

Участник форума
Регистрация
10 Дек 2019
Сообщения
74
Благодарности
23
Баллы
165
Уважаемые модостроители, вопрос касательно "zHumansRemaster", очень прекрасный плагин, но вот с ним есть беда в CoM: Archolos, при взятии в руки арбалет и наведении моба персонаж уже не имеет возможности двигаться, то есть обязательно надо снять лок с моба, чтоб например, подбежать или наоборот отойти, работают только стрейф влево/вправо, так это и должно работать? Спасибо заранее. Очень уж нравится как оно работает вкупе с "zDanglingWeapons", но играть за дальника с таким багом нереально просто.
 

N1kX

Участник форума
Регистрация
13 Ноя 2009
Сообщения
6.590
Благодарности
6.199
Баллы
940
Уважаемые модостроители, вопрос касательно "zHumansRemaster", очень прекрасный плагин, но вот с ним есть беда в CoM: Archolos, при взятии в руки арбалет и наведении моба персонаж уже не имеет возможности двигаться, то есть обязательно надо снять лок с моба, чтоб например, подбежать или наоборот отойти, работают только стрейф влево/вправо, так это и должно работать? Спасибо заранее. Очень уж нравится как оно работает вкупе с "zDanglingWeapons", но играть за дальника с таким багом нереально просто.
Свободное передвижение при наведение только со свободным прицеливанием доступно, в моде он не будет работать (патч).
 

lovedollybae

Участник форума
Регистрация
10 Дек 2019
Сообщения
74
Благодарности
23
Баллы
165
Свободное передвижение при наведение только со свободным прицеливанием доступно, в моде он не будет работать (патч).
понял, спасибо большое за ответ, буду просто с трясущимся оружием бегать тогда.
 

DARTH CYPHER

Участник форума
Регистрация
18 Ноя 2021
Сообщения
56
Благодарности
16
Баллы
125
Объясните пожалуйста, как его обновлять надо на Архолос? Так же как но вторую готику?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.431
Благодарности
4.771
Баллы
625
Чистая игра это или мод - значения не имеет. Установка/обновление производится по одному алгоритму.
 

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.671
Баллы
305
Приветствую. Есть ли плагин добавляющий возможность редактировать расчет урона, что-то вроде OnDamage?
В Лего такая есть, но хотелось бы найти аналог на Юнион.
Код:
func int DMG_OnDmg (var int victimPtr, var int attackerPtr, var int dmg) 
{
    var C_NPC slf; slf = _^(victimPtr);
    var C_NPC oth; oth = _^(attackerptr);

    ...

};
func void _DMG_OnDmg ()
{
    EDI = DMG_OnDmg(EBP, MEM_ReadInt(MEM_ReadInt(ESP+644)+8), EDI);
};

func void InitDamage ()
{
    const int dmg = 0;
    if (dmg)
    {
        return;
    };
    HookEngineF(6736583/*0x66CAC7*/, 5, _DMG_OnDmg);
    dmg = 1;
};
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.431
Благодарности
4.771
Баллы
625
Orc Hunter, именно с выходом формулы в скрипт?
 

lds_101

Участник форума
Регистрация
29 Авг 2021
Сообщения
26
Благодарности
0
Баллы
60
Приветствую. Есть ли плагин добавляющий возможность редактировать расчет урона, что-то вроде OnDamage?
В Лего такая есть, но хотелось бы найти аналог на Юнион.
Код:
func int DMG_OnDmg (var int victimPtr, var int attackerPtr, var int dmg)
{
    var C_NPC slf; slf = _^(victimPtr);
    var C_NPC oth; oth = _^(attackerptr);

    ...

};
func void _DMG_OnDmg ()
{
    EDI = DMG_OnDmg(EBP, MEM_ReadInt(MEM_ReadInt(ESP+644)+8), EDI);
};

func void InitDamage ()
{
    const int dmg = 0;
    if (dmg)
    {
        return;
    };
    HookEngineF(6736583/*0x66CAC7*/, 5, _DMG_OnDmg);
    dmg = 1;
};
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.431
Благодарности
4.771
Баллы
625
Orc Hunter, ну если чего-то сложного не надо, то вот скриптовый модификатор урона. Попробуй.
В скриптах необходимо определить функцию func int OnDamage_Hit(var int damageTotal)
Плагин автоматически вызовет скриптовую функцию и установит следующие значения:
self - атакующий
victim - атакуемый
item - орудие убийства (может быть null)

Параметры функции:
damageTotal - рассчитанное количество урона, которое предполагается снять с victim

Возвращаемое значение:
Новое значение урона, которое будет снято с victim

Примечание:
Скриптовый модификатор урона не будет вызван, если victim неуязвим.

Пример:

Daedalus:
func int OnDamage_Hit(var int damageTotal)
{
    if (Npc_IsPlayer(self) && Hlp_GetInstanceID(DJG_713_Biff_DI) == Hlp_GetInstanceID(victim))
    {
        return 10000;
    };
  
    return damageTotal;
};
 

Вложения

  • oDamageHelper.7z
    143,2 KB · Просмотры: 116

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.671
Баллы
305
Orc Hunter, ну если чего-то сложного не надо, то вот скриптовый модификатор урона. Попробуй.
В скриптах необходимо определить функцию func int OnDamage_Hit(var int damageTotal)
Плагин автоматически вызовет скриптовую функцию и установит следующие значения:
self - атакующий
victim - атакуемый
item - орудие убийства (может быть null)

Параметры функции:
damageTotal - рассчитанное количество урона, которое предполагается снять с victim

Возвращаемое значение:
Новое значение урона, которое будет снято с victim

Примечание:
Скриптовый модификатор урона не будет вызван, если victim неуязвим.

Пример:

Daedalus:
func int OnDamage_Hit(var int damageTotal)
{
    if (Npc_IsPlayer(self) && Hlp_GetInstanceID(DJG_713_Biff_DI) == Hlp_GetInstanceID(victim))
    {
        return 10000;
    };
 
    return damageTotal;
};
Спасибо большое, именно то что мне было нужно!

p.s. Переписал свой скрипт под плагин - все работает как часы. Что показывает item в случае с магией?
 
Последнее редактирование:

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.431
Благодарности
4.771
Баллы
625
Orc Hunter, там будет Null.
Расширил инфу о дамаге. Определи в скрипте структуру C_DamageInfo и производную от нее инстанцию damageinfo.
В инстанцию будет писаться дополнительная инфа:
Daedalus:
class C_DamageInfo
{
    var int ItemID;
    var int IsSpellDamage;
    var int SpellID;
    var int SpellLevel;
};

instance damageinfo(C_DamageInfo) { };

- ItemID - номер инстанции предмета, которым нанесен урон. Если предмета нет или это был спелл, то номер будет равен -1.
- IsSpellDamage - значение, определяющее, нанесен ли урон спелом.
- SpellID - идентификатор спела, например SPL_FIREBALL.
- SpellLevel - уровень спела, например при касте огненной бури.
 

Вложения

  • oDamageHelper.7z
    143,4 KB · Просмотры: 156

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.147
Благодарности
2.021
Баллы
320
Хукопатч не может перехватить этот вызов:
Код:
.text:006218F2 C7 86 54 02 00 00 00 00 00 00                 mov     dword ptr [esi+254h], 0
.text:006218FC 74 42                                         jz      short loc_621940
.text:006218FE E8 6D 46 16 00                                call    zCEventManager::DoFrameActivity(void)

В тестовой версии FixBink всё ещё задаётся как булева опция. И, как я понимаю, FixBink = false не даёт ожидаемого эффекта.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.431
Благодарности
4.771
Баллы
625
Slavemaster дебаггер и консоль показывают, что перехват работает отлично. Может я что-то не понял?
1640181138752.png


1640181179742.png

В тестовой версии FixBink всё ещё задаётся как булева опция. И, как я понимаю, FixBink = false не даёт ожидаемого эффекта.
Аа, поправлю. Там нет как такового инструментария для чтения инишек.
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.147
Благодарности
2.021
Баллы
320
@Slavemaster дебаггер и консоль показывают, что перехват работает отлично. Может я что-то не понял?
Мой косяк. Из-за патча нового не работает.
Union:
#engine [G2A]
    #patch [zNoEventsOnPause]
        #assembler [0x006218FE]
            mov ecx, dword ptr [0x00AB0884] ; ogame
            cmp ecx, 0
            je 0x00621903
            cmp dword ptr [ecx+0x11C], 0 ; singleStep
            jne 0x00621903
            orgcode
        #/assembler [0x00621903]
    #/patch
#/engine

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

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.431
Благодарности
4.771
Баллы
625
Ну патч на то и патч, его приоритет выше хуков. Начет асм вставок - могу также их анализировать вместе с .text сегментом. Мысль хорошая.
 

neocromicon

Участник форума
Регистрация
15 Апр 2020
Сообщения
21
Благодарности
6
Баллы
155
Hi Guys! First a Happy New Year :)

It is possible to deactive the key combination altgr + q (@ key) ? I'm often on Twitch and this combination shutdown my Gothic and Spacer.Net and its not so good if i workin in the Spacer and haven't saved :D (In Twitch with @ i can chat directly to a User)
 
Сверху Снизу