Current time: 23.03.2024, 16:39 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Вопросы по моддингу
» (обсуждаем моддинг здесь)
Author Message
Heromant Offline

Posts: 348
Post: #706

У кого то скрипт "волшебство 2" работает. Я проверил на нескольких версиях Era + WoG - результат везде один. Описание навыка корректное, а к силе ударной магии по прежнему +5, +10, +15% вместо 10, 20, 30 как заявлено.
20.05.2016 23:17
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2807
Post: #707

Потому что оригинальный скрипт вообще не учитывает "Волшебство II" (v7198=1). Видимо автор скрипта недоглядел.


И да, это не совсем та тема. Лучше такие вопросы задавать в теме по ERM скриптам


game bug fixes extended.dll || My Plugins || My GitHub
21.05.2016 21:36
Visit this user's website Find all posts by this user Quote this message in a reply
Heromant Offline

Posts: 348
Post: #708

(21.05.2016 21:36)igrik Wrote:  Потому что оригинальный скрипт вообще не учитывает "Волшебство II"
Спасибо. А как сделать, чтобы в колдовской книге в походном режиме правильный урон показывался, а не только в битве? Сейчас разный урон отображается - в битве с учётом правки в триггере битвы.
И ещё - специализация героя по вторичному навыку "волшебство" никак не учитывается. То есть, независимо от уровня у такого героя бонус к силе заклинания +10, 20, 30% со включённым скриптом. Этот то момент я поправлю своим умом - с описанием в походной книге урона помощи прошу. И что-то мне подсказывает, что с другими специализациями на вторичных навыках тоже могут быть ошибки и логические несостыковки.

PS: Вообще у меня складывается впечатление, что в этой группе не хватает тестировщиков. Люди пишут скрипты зашкаливающей сложности, а проверить нормально по тесткейсам не хотят. Причем чем проще скрипт - тем хуже он протестирован. Поэтому все в Хоту и играют.
(This post was last modified: 31.05.2016 01:16 by Heromant.)
30.05.2016 13:59
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2807
Post: #709

(30.05.2016 13:59)Heromant Wrote:  с описанием в походной книге урона помощи прошу.
Посмотрю что можно сделать. Только что вы используете WoG или ERA?
(30.05.2016 13:59)Heromant Wrote:  И что-то мне подсказывает, что с другими специализациями на вторичных навыках тоже могут быть ошибки и логические несостыковки.
Вполне может быть. Тестировать нужно под разными призмами.
(30.05.2016 13:59)Heromant Wrote:  PS: Вообще у меня складывается впечатление, что в этой группе не хватает тестировщиков. Люди пишут скрипты зашкаливающей сложности, а проверить нормально по тесткейсам не хотят. Причем чем проще скрипт - тем хуже он протестирован. Поэтому все в Хоту и играют.
Потому что стандартным воговским скриптам уже чуть больше 10 лет. Че их тестировать то уже, хотя недочеты потихонку ещё всплывают.
А тестировать - дело нудное, долгое и неинтересное. Кто ж так делает 148
Как сказал однажды feanor - "Ну и Кибераллах с ними".


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

Posts: 348
Post: #710

(31.05.2016 11:15)igrik Wrote:  Посмотрю что можно сделать. Только что вы используете WoG или ERA?
ERA +WoG, как мод, + LORD, как мод + ещё всякая незначительная мелочёвка - ERM скрипты.
(This post was last modified: 31.05.2016 15:58 by Heromant.)
31.05.2016 15:58
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 118
Post: #711

Кто-нибудь знает как сделать для стрелка стрельбу по площади (как магоги и личи)?

В базе по адресу 0041ED00 находится такая вот вещь, пытался заменить номер монстра в проверке на другой, но эффект удара по площади не приобретается
(This post was last modified: 01.06.2016 16:38 by StasPV.)
01.06.2016 16:37
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #712

Можно изменить тип существа перед атакой, а потом вернуть как было.


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

Posts: 2807
Post: #713

Не там смотришь. Твой адрес видимо для определения ценности выстрела для AI.
А тебе нужно смотреть в функции по адресу 0x0043F620
Например, подменить магога !!UN:C4454190/1/[номер монстра 0...127];


game bug fixes extended.dll || My Plugins || My GitHub
01.06.2016 19:07
Visit this user's website Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 622
Post: #714

Все воговские скрипты надо не тестировать, а тупо переделывать под эру, под её возможности и её принципы. А там где не хватает - допиливать эру.
Вот например кому вообще это Волшебство Два нужно скриптом, когда тот же функционал достигается бинарником в шестнадцать байт?

..но это еще более никому не надо.
(This post was last modified: 01.06.2016 19:32 by feanor.)
01.06.2016 19:32
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 118
Post: #715

gamecreator, igrik спасибо!
01.06.2016 21:18
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2807
Post: #716

(30.05.2016 13:59)Heromant Wrote:  ... с описанием в походной книге урона помощи прошу.
В этом плане согласен с feanor'ом.
Но коль нужно, то держи скрипт.
Для работы нужен "erm_hooker.era", который положишь в папку "EraPlugins"
Кстати, в предпросмотре сообщения не работает тег [erm]


game bug fixes extended.dll || My Plugins || My GitHub
01.06.2016 21:52
Visit this user's website Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 118
Post: #717

Добрый вечер! Вопрос к программистам. Есть функция, которая определяет доход города (скопировано с базы ИДЫ Феанора):

Code:
//----- (005BFA00) --------------------------------------------------------
signed int __thiscall Town_GetGoldIncome(int this, char a2)
{
  signed int result; // eax@1
  int v3; // edi@1
  int v4; // esi@1
  int v5; // edx@9

  v4 = *(_DWORD *)(this + 336);
  v3 = *(_DWORD *)(this + 340);
  result = 500;
  if ( __PAIR__(
         (unsigned int)TownHallMask2 & *(_DWORD *)(this + 340),
         (unsigned int)TownHallMask & *(_DWORD *)(this + 336)) )
    result = 1000;
  if ( CityHallMask2 & v3 | CityHallMask & v4 )
    result = 2000;
  if ( CapitolMask2dword & v3 | CapitolMask & v4 )
    result = 4000;
  if ( a2 )
  {
    if ( ResSiloMask2 & v3 | (unsigned int)ResSiloMask & v4 )
    {
      v5 = *(_BYTE *)(this + 4);
      LOWORD(v5) = LOWORD(TownsResourceSilo[7 * v5 + 6]);
      result += v5;
    }
  }
  if ( __PAIR__((unsigned int)GrailMask2 & *(_DWORD *)(this + 348), (unsigned int)GrailMask & *(_DWORD *)(this + 344)) )
    result += 5000;
  return result;
}
// 66CDF0: using guessed type int TownHallMask;
// 66CDF4: using guessed type int TownHallMask2;
// 66CDF8: using guessed type int CityHallMask;
// 66CDFC: using guessed type int CityHallMask2;
// 66CE00: using guessed type int CapitolMask;
// 66CE04: using guessed type int CapitolMask2dword;
// 66CE6C: using guessed type int GrailMask2;
// 688F04: using guessed type int TownsResourceSilo[63];

Первый вопрос, как правильно понимать данное условие:
Code:
if ( __PAIR__(
         (unsigned int)TownHallMask2 & *(_DWORD *)(this + 340),
         (unsigned int)TownHallMask & *(_DWORD *)(this + 336)) )
, вижу что проверка на построенный таунхолл, но что именно происходит в условии не понимаю.

Второй вопрос, как с помощью длл добавить еще одно условие перед return result: если город Темница, и построен торговец артефактами то доход +100? У меня есть скрипт, который писал на ЕРМ, он просчитывает количество темниц, проверяет постройку здания, а потом прибавляет залото в начале хода, но хочеться научиться писать подобные штуки в Microsoft Visual C++, кроме того есть планы модифицировать под себя еще кое-какие функции, но очень нужен хоть один пример, по аналогии с которым я бы потихоньку начал разбираться дальше
(This post was last modified: 05.06.2016 00:03 by StasPV.)
04.06.2016 23:57
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #718

На место return result; вставить хук и изменить этот самый result. В ERM это через erm hooker делается, а в плагине просто вместо возврата записываешь прыжок на твою функцию, которая __declspec(naked), и там уже изменяешь и возвращаешь результат. Сходу код не могу выдать, это надо с адресами копаться (посмотреть где result, куда вписывать хук и т.п.). Тут же важно ещё и понимать язык ассемблера, одного знания С++ недостаточно.
А что за база Феанора? Можно ссылку?


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

Posts: 118
Post: #719

[b]ссылка с df2 форума на базу Феанора

Quote:Сходу код не могу выдать
сходу не надо, если вдруг время будетAb
05.06.2016 00:49
Find all posts by this user Quote this message in a reply
StasPV Offline

Posts: 118
Post: #720

По той функции дохода из поста выше. Утром набросал ерм скрипт, в котором ставлю хук и изменяю result. Скрипт записывает в result 5000.

Теперь голову ломаю, как считать номер города и флаг здания, чтоб добавить условие... здесь моих знаний пока не хватает

05.06.2016 13:18
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