as239 писал(а):
Можешь помочь с этим вопросом?
Как передать значение флага от хоста, остальным игрокам?
Опиши детально что ты хочешь отослать и в какой момент.
Объявления | ||
---|---|---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаas239 писал(а): Можешь помочь с этим вопросом? Как передать значение флага от хоста, остальным игрокам? Опиши детально что ты хочешь отослать и в какой момент. |
Re: Как создать плагин для HD модаЦитата: 1. Создаем сетевую игру в лобби 2. Подключаемся вторым игроком, выбираем любой шаблон, например Jebus Cross. 3. Хост нажимает "Начать", выскакивает следующее окно: Здесь все ОК, с помощью RoseKavalier, добавлен мой флаг "Gameplay changes", который включает/отключает нужные изменения - в коде уже все сделано. Взводим флаг "Gameplay changes" и нажимаем галочку. 4. У второго игрока выскакивает этот же диалог: Но, как видно, флаг "Gameplay changes" не взведен. А нужно чтобы его значение пришло от хоста, как остальные настроечные флаги на этой форме. Ну и естественно, не должно быть возможности его редактировать. |
|
Re: Как создать плагин для HD модаHmm, there needs to be another condition for creating the button, I was not aware there was more than one dialog in lobby (:
Easiest would be to check dialog's dimensions, if width greater than (example) 200 then add the button, you just need to figure out the dimensions of the second dialog. Safer way is to check for the ID of an existing H3DlgItem that is on the first but not second dialog. Save / load I don't have one handy right now and the H3SaverLoader structure is a bit bare to show it, I'll update later with it. |
Re: Как создать плагин для HD модаas239 писал(а): А нужно чтобы его значение пришло от хоста, как остальные настроечные флаги на этой форме. Ну и естественно, не должно быть возможности его редактировать. Этот код будет работать только в главном меню (при выборе сценария) Я не знаю, будет ли он работать в окне с настройками HW Если не будет, то нужно ставить хук в процессе диалога HW и парсить данные там
|
Re: Как создать плагин для HD модаСпасибо!
Никак не могу найти адрес, на который нужно поставить отправку данных. Сделал отправку в момент установки флага, не совсем верно конечно, но работает. Остался вопрос как отличить хоста, от остальных игроков, чтобы сделать недоступным для них флаг. |
|
Re: Как создать плагин для HD модаH3API updated, now H3Stream has Save() and Load() functions. Values should be passed by reference! e.g.
I would recommend that you save more than just this flag and go over future-proof method like this:
Now, two issues remain: 1- suitable hook locations 2- detecting if a saved game has freshmod. If it does, your save/load hooks should activate. It not, then they should simply return EXEC_DEFAULT; For (2) I would suggest that you modify the save game header. For example, you have "H3SVG" being used for regular games, "H3SVC" for campaign games and so on. Therefore, loading a map that reads "H3FRESH" would show it uses your plugin [7 chars + '\0' of room for 8 total]. This may have some hidden implications, you'll see and can tell me H3SVG is used at 0x4BC041 (? 0x4BE111 ? 0x4BC2AA) to save games and when loading games it's at (...0x4BC51A but HDmod has a hook at 0x4BC515, so head to...) 0x4BC526 and read c->esi for the save text. For (1), HW_rulez uses the very end of the file so it's not a good candidate, try right after map header, try these for !!SoD only!! (not AB or RoE) Loading 0x4BCC8A:
Saving 0x4BE1B4:
Host vs non-host Don't know, check Players various fields ? Последний раз редактировалось RoseKavalier 11 июл 2019, 18:43, всего редактировалось 1 раз.
|
Re: Как создать плагин для HD модаIt was a typo. Obviously it's (H3Stream*)c->ecx; that he meant.
* * * Самым простым (но не элегантным) решением было бы сохранять дополнительные поля в отдельный файл с тем же именем, что и у сейва, но с другим расширением: например, 111.fmd Если файл отсутствует, значит, сейв не фрешмодовский. Оригинальный формат сейвов я бы не трогал. Можно даже отдельный подкаталог сделать для таких "довесков" к сохранению. Плюс в том, что формат этого файла будет такой, каким его пожелает сделать автор, а ещё проблем с новыми версиями сохранений мода не будет. |
Re: Как создать плагин для HD модаЦитата: Так и есть. Цитата: Есть, конечно, свои плюсы в этом, но есть и минусы, со стороны целостности данных - доп. файлики иногда случайно удаляются или переименовываются, при передаче сейва 3-му лицу надо будет не забывать их и т.д. Со стороны своего мода я уверен на 99%, что больше изменений формата сейвов не будет. Единственное, не знаю что будет если такие изменения произойдут со стороны HD мода. |
Сейчас этот форум просматривают: Bing [Bot] и гости: 1