Wake of Gods Forum | Форум Во Имя Богов

Full Version: Отображение произвольного def`а на поле боя
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Wow nice!

Here is VCMI code for battle stacks order, maybe can help?

CODE
Что значит как передать? Передаёшь туда указатели на один отряд и другой. this - скорей всего менеджер битвы. В чём конкретно проблема?
this - это и есть менеджер битвы.
Проблема в том, что на словах я эту функцию прекрасно понимаю, но я не могу написать ее вызов, потому что не знаю как получить и передать в неё эти указатели. Я пытаюсь объяснить, что мне нужнен тупо наглядный пример, шаблон или т.п.
У тебя же есть получение активного отряда. Подставь туда свои числа вместо активной стороны и номера активного отряда и получишь указатель на любой отряд. Берёшь два таких и передаёшь.
А передаются они обычно:
Code:
BattleStack *s1, *s2;
s1 = ... // получаешь какой-нибудь отряд
s2 = ... // аналогично
if (CompareStackPriority((int)battleManager, s1, s2) == 1)
{
    // твои действия
}
Quote:s1 = ... // получаешь какой-нибудь отряд
Пробовал в таком духе. Не получалось. И поэтому я думал, что передаю не указатель, а занчение по этому адресу.
Code:
NOALIGN struct _BattleStack_ : public _Struct_ // размер 0x548
{
    _byte_ already_attack;    // +0 ?
Значит буду пробовать еще...

И как мне знать, передаю ли я указатель на адрес "X" или значение по этому адресу?
указатели - геморрой, да, сколько я с ними мудохался в десятом классе..

   CALL_3(int, __thiscall, 0x464B30, o_BattleMgr_, o_BattleMgr_->stack[side][stack], o_BattleMgr_->stack[side][stack]); вроде, с работы проверить не могу
впрочем, лучше нормально объявить (через указатель на функцию, макросы, всеж, для нереюзаемого кода), но это из дома, если никто до того не поможет

если чо, могу помочь с плагином)

Upd: упс, на самом деле
CALL_3(int, __thiscall, 0x464B30, o_BattleMgr_, &(o_BattleMgr_->stack[side][stack]), &(o_BattleMgr_->stack[side][stack]) );
feanor Wrote:если чо, могу помочь с плагином)
Да. Было бы очень здорово.

Что я делаю не так? Какой инклуд я не подключил? Пишет "o_BattleMgr_: необъявленный идентификатор"

Используемые инклуды: (Click to View)

И ещё, могу ли я впихнуть в эту функцию номера стеков не с указанием стороны и стека стороны (0 ... 20 / 0 или 1), а в глобальной нумерации стеков (0 ... 41)?
Quote:Да. Было бы очень здорово.
скинь тогда в личку, ближе к ночи посмотрю

Quote:Что я делаю не так? Какой инклуд я не подключил? Пишет "o_BattleMgr_: необъявленный идентификатор"
это я пишу вслепую. o_BattleMgr, без подчеркивания после

Quote:И ещё, могу ли я впихнуть в эту функцию номера стеков не с указанием стороны и стека стороны (0 ... 20 / 0 или 1), а в глобальной нумерации стеков (0 ... 41)?
[0][30] должно сработать
(05.07.2016 14:52)igrik Wrote: [ -> ]И как мне знать, передаю ли я указатель на адрес "X" или значение по этому адресу?
Если у нас есть BattleStack* foo, то:
foo это указатель на экземпляр BattleStack
*foo это экземпляр BattleStack
&foo это указатель на foo, т.е. значение типа BattleStack**.
Pages: 1 2
Reference URL's