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

Full Version: Программирование ВОГ
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9
всем привет.
Сейчас занимаюсь перемещением стеков существ в окне обмена м-ду героями.
добавляю 17 кнопок: кнопку обмена армиями, 2 кнопки передачи армиий от одного героя другому, и под каждым слотом кнопка передачи отряда другому герою.

В связи с этим вопросы: Как узнать уровень существа (не вог-опыта, а существа) зная его тип. Как узнать, грейд/не грейд? Как передать из стека в стек вог-опыт? И по какому принципу вычислять вог-опыт при разделении отрядов и их слиянии?
По адресу 6747B0 находится указатель на структуру монстров. Структура описана в первом посте инженерного анализа на дф2. Оттуда узнаешь грейд/не грейд и уровень существа. А передачу монстров лучше наверное делать через функцию героев, она автоматом все сама посчитает. ИМХО
спасибо большое!

Quote:
Code:
Town: int;
   Level: int;
   SoundName: PChar; // 4 буквы, с которых начинаются звуки монстра
   DefName: PChar;
   Flags: int;
   Name: PChar;
   PluralName: PChar;
   Features: PChar; // (описание способностей)
   CostWood: int;
   CostMercury: int;
   CostOre: int;
   CostSulfor: int;
   CostCrystal: int;
   CostGems: int;
   CostGold: int;
   FightValue: int;
   AIValue: int;
   Growth: int;
   HordeGrowth: int;
   HitPoints: int;
   Speed: int;
   Attack: int;
   Defence: int;
   DamageLow: int;
   DamageHigh: int;
   Shots: int;
   Spells: int;
   AdvLow: int;  // ?
   AdvHigh: int; // ?
так и не понял как узнать грейд или не грейд монстра...

Quote:А передачу монстров лучше наверное делать через функцию героев, она автоматом все сама посчитает.ИМХО
я реализую умную передачу - то есть монстры передаются по убыванию уровня, если у принимающего уже есть стек с таким типом монстра, то передаваемые добавляются в этот стек, если нет - кидаются в пустой стек. Поэтому мне удобнее непосредственно со стеками работать, а не через функции.
(26.07.2010 13:12)baratorch Wrote: [ -> ]так и не понял как узнать грейд или не грейд монстра...
предполагаю что нет понятия грейд/не грейд. Ручками определяется по номеру монстра.
(26.07.2010 13:12)baratorch Wrote: [ -> ]я реализую умную передачу
ты посмотрел как эти функции работают в ТЕ/WT? там идеально
Должна быть таблица, где описано кто чей грейд.
Есть таблица, Бараторч, инфу скоро вышлю в ЛС.
Berserker, cпасибо большое!

...

никто не скажет чтоли как(где) опыт существ передается и распределяется при разделении/слиянии.
А то я уже всё реализовал, но в вог/эре существа у меня перемещаются, а опыт остается привязанным к слоту.
Так же некорректно с опытом работает реализованное мной перемещение последнего стека героя.

(26.07.2010 13:35)SAG Wrote: [ -> ]
(26.07.2010 13:12)baratorch Wrote: [ -> ]я реализую умную передачу
ты посмотрел как эти функции работают в ТЕ/WT? там идеально
какие функции? я опять что-то упускаю? В те/вт можно передать армию от одного героя другому (не обменять, а в одностороннем порядке передать)? как?
baratorch, опыт просто. (КолВоСуществ1 * Опыт1 + КолВоСуществ2 * Опыт2) / (КолВоСуществ1 + КолВоСуществ2). Только нужно юзать двойные int-ы, чтобы переполнения не было.
(26.04.2010 00:31)etoprostoya Wrote: [ -> ]Интересно, значит ли это, что файлы в лоде могут иметь имя длиной до 15 символов (с точкой и расширением), вместо 12 стандартных?
Лучше их не использовать. У меня такие файлы читались, но нет полной уверенности.
(27.07.2010 00:59)baratorch Wrote: [ -> ]какие функции? я опять что-то упускаю? В те/вт можно передать армию от одного героя другому (не обменять, а в одностороннем порядке передать)? как?
для удобства, в ТЕ/WT часть операций с армиями не делали кнопками а повесили на клавиши (левые) CTRL, SHIFT , ALT
например:
- для передачи стека целиком от одного героя другому - CTRL+ALT+клик на стек.
CTRL+ALT+SHIFT+клик на стек - разделяет этот стек пропорционально по пустым стекам текущего героя
CTRL+SHIFT+клик на стек - отделяет от стека 1 существо в один пустой стек (единички постоянно требуются в боях для снятия ответного удара)
CTRL+клик на стек - отделяет от стека 1 существо во все пустые стеки
ALT+клик на стек - собирает в кликнутый стек все армии этого типа со всех стеков текущего героя
Нету ТЕ под рукой и проверить не могу, но есть уверенность что все эти возможности на ЕРМ реализованы, а не в экзешнике...
Да так и есть.
(28.07.2010 11:31)SAG Wrote: [ -> ]для удобства,
Никогда не понимал, что такого удобного в использовании двух рук вместо одной + требовании держать в голове или бумажке такие извращенские комбинации.
Quote:для удобства, в ТЕ/WT часть операций с армиями не делали кнопками а повесили на клавиши (левые) CTRL, SHIFT , ALT
а вот и не для удобства, а потому что это было самым простым решением.

Quote:(единички постоянно требуются в боях для снятия ответного удара)
Я, между прочим, 9 лет играл в героев, прежде чем начать их модить.

Quote:CTRL+клик на стек - отделяет от стека 1 существо во все пустые стеки
ALT+клик на стек - собирает в кликнутый стек все армии этого типа со всех стеков текущего героя
про эти сочетания я знал, и оценил. Собирался сделать то же самое для сод.

Почему я вообще взялся за управление стеками? Просто я только что, после большого перерыва, поиграл в героев (в СоД есс-но, в другое я не играю) и непосредствеенно почувствовал чего мне не хватает.

Сколько пушей/кликов нужно в те, чтобы передать недельный прирост города от второстепенного героя главному? У меня - 1 клик на кнопку.
Есть техническая возможность избавиться от неудобных LOD'ов, заменив их другими архивами, ZIP'ом, например, или свободным gzip?
Было бы просто замечательно! Sm
(29.07.2010 09:54)etoprostoya Wrote: [ -> ]Есть техническая возможность избавиться от неудобных LOD'ов, заменив их другими архивами, ZIP'ом, например, или свободным gzip?
Было бы просто замечательно! Sm
напиши на форуме VCMI.
впрочем, думаю что-то в этом духе у них уже в проекте есть, должно быть по логике...
Pages: 1 2 3 4 5 6 7 8 9
Reference URL's