Current time: 29.11.2024, 11:32 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Исследование героев
» туториал(ы)
Author Message
igrik Offline

Posts: 2819
Post: #676

А эта без указания номера героя.


game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 06.02.2016 03:49 by igrik.)
06.02.2016 03:48
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #677

igrik, триггер (и пост-триггер) посещения объекта таким образом срабатывают?


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
06.02.2016 13:01
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #678

(06.02.2016 13:01)Algor Wrote:  igrik, триггер (и пост-триггер) посещения объекта таким образом срабатывают?
Да: и триггер и пост-триггер, и с HD тоже работает.


game bug fixes extended.dll || My Plugins || My GitHub
16.02.2016 17:57
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #679

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


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
17.04.2016 17:23
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 624
Post: #680

Из HD (кстати, по какой причине те сорцы были выпилены?)
Code:
NOALIGN struct _BinTreeItem_ : public _Struct_ // size = 28
{
    _ptr_*    v_table; // + 0
    _char_    name[12]; // + 4
    _dword_    name_end; // + 16
    _dword_    type; // + 20
    _int_    ref_count; // + 24

    void DerefOrDestruct() { CALL_1(void, __thiscall, this->v_table[1], this); }

};


NOALIGN struct _Def_ : public _BinTreeItem_
{
    _DefGroup_**    groups; // + 28
    _Palette16_*    palette16;
    _Palette24_*    palette24;
    _dword_            groups_count;
    _ptr_            active_groups;
    _dword_            width;
    _dword_            height;
};


NOALIGN struct _DefGroup_
{
    _dword_        frames_count;
    _dword_        frames_size;
    _DefFrame_** frames;

};



NOALIGN struct _DefFrame_ : public _BinTreeItem_
{
    _dword_        frm_size; // + 28
    _dword_        buf_size;
    _dword_        compression_type;
    _dword_        def_width;
    _dword_        def_height;
    _dword_        frame_width;
    _dword_        frame_height;
    _dword_        frame_left;
    _dword_        frame_top;
    _dword_        unknown_40;
    _ptr_        buffer;
};
17.04.2016 21:27
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #681

Благодарю. Я и не знал, что сорцы HD выкладывались в открытый доступ.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
18.04.2016 13:59
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #682

Как же труден и неудобен ERM в таких вещах, просто жуть.
Image: JRI49eeCzz4.jpg


game bug fixes extended.dll || My Plugins || My GitHub
17.10.2016 11:35
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #683

Здоровская примочка! Жаль, что вылетает на третьем.
Соглашусь, ЕРМ неудобен для такого кода.
17.10.2016 14:52
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #684

Накопал я довольно таки интересную вещь в сетевом режиме (LAN). Итак, при генерации карты в триггере !?PI, пользуясь функцией удаления объекта (при замене оных) мы получаем гарантированный вылет. Это происходит вследствие того, что в геройской функции удаления объектов есть функция "звукового сопровождения". Если ее занопить на момент генерации карты, то вылета игры не будет. А т.к. на этот момент передача сетевых данных еще не происходит, то мы получаем рабочий код замены объектов, не требующий использования таймеров и других плюх. Плюс при показе карты приключений как на стороне сервера, так и на стороне клиента мы уже имеем замененные объекты. Т.е. 1 часть рассинхрона мы вылечили (остается еще решить рассинхрон в битве. Тут у меня уже тоже есть кое-какие наблюдения и как это лечить).
Код выглядит так (на примере замены двусторонних монолитов на мельницы) (Click to View)
И ещё, я не использовал функцию UN:U [сосчитать все объекты на карте], потому что при передаче хода от клиента серверу происходит непонятный вылет, связанный с библиотекой "kernel32.dll" и не связанный с этим патчем.


game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 21.03.2017 18:19 by igrik.)
21.03.2017 17:45
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #685

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

P.S.
(21.03.2017 17:45)igrik Wrote:  И ещё, я не использовал функцию UN:U [сосчитать все объекты на карте], потому что при передаче хода от клиента серверу происходит непонятный вылет, связанный с библиотекой "kernel32.dll" и не связанный с этим патчем.
а ты не проверял этот момент на разных ОС (Xp, win7+)
вдруг там будут разные "грабли"?
(This post was last modified: 25.03.2017 17:28 by Bes.)
25.03.2017 17:25
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #686

(25.03.2017 17:25)Bes Wrote:  хм, очень интересно.
Т.е. по сути можно уже щас взять оф.скрипты из WoG и "вылечить" их, обозвав это тестингом на стабильность и выложить для массового тестинга людям?
а ты не проверял этот момент на разных ОС (Xp, win7+)
вдруг там будут разные "грабли"?
Проверял на XP и на Win7_x64.
Да, можно. И я бы даже сказал - что нужно. Но у меня совершенно нет желания перелопачивать тонну оф.скриптов. Вообще.


game bug fixes extended.dll || My Plugins || My GitHub
26.03.2017 14:03
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #687

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

буду не спеша, чтобы лишних багов не натворить по невнимательности.
в отдельной теме выкладывать До и ПОСЛЕ файл с описанием что заменял.
дабы была и сторонняя модерация подмены кода.
26.03.2017 16:51
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #688

(26.03.2017 16:51)Bes Wrote:  igrik, могу потихоньку начать... по порядку.
я правильно понял, что эту махинацию надо делать каждый раз при замене объкта на карте в скрипте (или удалении)?
Не совсем. Этот код расчитан только на момент действия триггера !?PI. Вся суть заключается в том, что (для LAN):
1. Хост нажимает кнопку "Начать"
2. Происходит генерация (для случайных) а потом загрузка карты.
2а. Тут вызывается триггер !?PI и в данном случае наша подмена объектов
3. Происходит передача сетевых данных клиенту, в том числе и карты (в нашем случае уже с измененными объектами).
В итоге: у обоих игроков при первом показе карты приключений все объекты идентичны.
Данный скрипт актуален для всех скриптов, которые заменяют объекты только в первый день. Например: замены картографов, улиев, и весь комплекс опций от "Замена объектов во время WoG'ификации.
На счет замены в другие игровые дни не скажу. Да и сейчас для этого нет достаточного запаса времени.
(26.03.2017 16:51)Bes Wrote:  буду не спеша, чтобы лишних багов не натворить по невнимательности.
в отдельной теме выкладывать До и ПОСЛЕ файл с описанием что заменял.
дабы была и сторонняя модерация подмены кода.
Было бы конечно отлично, но спрошу ещё раз: стоит ли игра свечь?


game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 27.03.2017 13:04 by igrik.)
27.03.2017 13:03
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #689

igrik, я на больничный пошёл... могу сидеть смотреть сериалы, порно кино, или же таки открыть скрипты и прогнать всю эту тему по мере возможного.
вроде бы замена wog'ификацией идёт в теле таймера... не?
27.03.2017 13:16
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #690

(27.03.2017 13:16)Bes Wrote:  вроде бы замена wog'ификацией идёт в теле таймера... не?
Так о том и речь. Если замена в начале игры, то перенести её в !?PI.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
27.03.2017 14:57
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group