Current time: 10.04.2025, 12:56 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA II
» WoG Era 2: Русская и Английская версии
Author Message
Berserker Offline
Administrators

Posts: 16733
Post: #3451

Эра 2.9.0. Пример реализация мода на альтернативные существа. В Цитадели можно нанимать вместо орков троллей в соотношении 3.333 орка к троллю.
Все значения обновляются в реальном времени. 8 орков можно нанять как 2 тролля + 1 орк или 1 тролль и 4 орка, например.
Image: atm.png
  1. ; Alternative Trolls Mod
  2. ; Mod allows to hire trolls instead of orcs using 3:10 rate (1 troll = 3.333 orcs)
  3. !?FU(atm.UpdateSlots);
  4. !!SN:F^recruit_dlg^/0/?y99/?y1/?y99/0; y1 - original number of orcs
  5. !!SN:F^recruit_dlg.mem^/^rate_x^/?y2; y2 - number of trolls for
  6. !!SN:F^recruit_dlg.mem^/^rate_y^/?y3; y3 - appropriate number of orcs
  7. !!SN:F^recruit_dlg.mem^/^percentage_left^/?e1; e1 - amount of monsters available in percents
  8. !!VRe9:S1:1000; e9 - epsilon (possible rounding error)
  9. !!VRe2:Sy1 *y2 :y3 *e1 +e9; e2 - number of trolls left
  10. !!VRy4:Se2; y4 - number of trolls left
  11. !!SN:F^recruit_dlg^/2/?y99/y4; update trolls quantity
  12. !!VRe3:Sy1 *e1 +e9; e3 - number of orcs left
  13. !!VRy5:Se3; y5 - number of orcs left
  14. !!SN:F^recruit_dlg^/0/?y99/y5; update orcs quantity
  15. !?FU(OnOpenRecruitDlg);
  16. !!SN:F^recruit_dlg.info^/?y1/?y2/?y3;
  17. ; y1 - dialog ID
  18. ; y2 - town ID
  19. ; y3 - dwelling ID
  20. !!FU|y2=-1/y3=-1:E; exit if not town dwelling
  21. !!FU&y3<>2/y3<>9:E; exit if not 3-d level dwelling (upgraded or not)
  22. !!CA0/y2:T?y4; y4 - town type
  23. !!FU&y4<>6:E; exit if not stronghold
  24. !!SN:X?y99/0; don't close dialog on buy
  25. !!SN:F^recruit_dlg.mem^/^is_unequal_alt^/1; mark dialog as ours
  26. !!VRe1:S1; e1 - number alternative creatures available (1 = 100%)
  27. !!SN:F^recruit_dlg.mem^/^percentage_left^/e1; save number of available monsters in percents
  28. ; remember orcs/trolls rate
  29. !!SN:F^recruit_dlg.mem^/^rate_x^/3; 3 trolls
  30. !!SN:F^recruit_dlg.mem^/^rate_y^/10; vs 10 orcs
  31. !!SN:F^recruit_dlg^/2/144/0/10000; setup trolls slot
  32. !!FU(atm.UpdateSlots):P;
  33. !?FU(OnRecruitDlgAction);
  34. !!SN:F^recruit_dlg.mem^/^is_unequal_alt^/?y1; y1 - 1 if it's atm dialog
  35. !!FU&y1<>1:E;
  36. !!SN:X?y2; y2 - number of recruited monsters
  37. !!SN:F^recruit_dlg.info^/?y99/?y99/?y99/?y3; y3 - active slot
  38. !!SN:F^recruit_dlg.mem^/^rate_x^/?y4; y4/y5 = trolls/orcs rate
  39. !!SN:F^recruit_dlg.mem^/^rate_y^/?y5;
  40. !!SN:F^recruit_dlg^/0/?y99/?y6/?y99/0; y6 - original number of orcs
  41. !!SN:F^recruit_dlg.mem^/^percentage_left^/?e1; e1 - amount of monsters available in percents
  42. !!if&y3=2:;
  43. !!VRe2:Sy2 *y5 :y4 :y6; e2 - recruited percentage
  44. !!el:;
  45. !!VRe2:Sy2 :y6; e2 - recruited percentage
  46. !!en:;
  47. !!VRe1:-e2;
  48. !!SN:F^recruit_dlg.mem^/^percentage_left^/e1; update percentage left
  49. !!FU(atm.UpdateSlots):P;


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
08.09.2019 01:36
Find all posts by this user Quote this message in a reply
Reinc Offline

Posts: 145
Post: #3452

А разница в уровнях существ не слишком большая, чтобы позволять нанимать троллей из здания для орков?
08.09.2019 20:07
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16733
Post: #3453

Reinc, так ведь найм идёт по принципу либо малое число одних, либо большое других.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
08.09.2019 21:04
Find all posts by this user Quote this message in a reply
wessonsm Offline

Posts: 815
Post: #3454

Berserker,
!?FU(OnRecruitDlgAction) и !?FU(OnOpenRecruitDlg) - новые события?
И !!SN:F - новая команда?
09.09.2019 20:28
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16733
Post: #3455

wessonsm, да, уже убрал !!SN:F, теперь новаый ресивер !!RD (Recruiting Dialog).
  1. ; Alternative Trolls Mod
  2. !?FU(atm.UpdateSlots);
  3. !!RD:C0/?y99/?y1/?y99/0; y1 - original number of orcs
  4. !!RD:M^rate_x^/?y2; y2 - number of trolls for
  5. !!RD:M^rate_y^/?y3; y3 - appropriate number of orcs
  6. !!RD:M^percentage_left^/?e1; e1 - amount of monsters available in percents
  7. !!VRe9:S1:100; e9 - epsilon (possible rounding error)
  8. !!VRe2:Sy1 *y2 :y3 *e1 +e9; e2 - number of trolls left
  9. !!VRy4:Se2; y4 - number of trolls left
  10. !!RD:C2/?y99/y4; update trolls quantity
  11. !!VRe3:Sy1 *e1 +e9; e3 - number of orcs left
  12. !!VRy5:Se3; y5 - number of orcs left
  13. !!RD:C0/?y99/y5; update orcs quantity
  14. !?FU(OnOpenRecruitDlg);
  15. !!RD:I?y1/?y2/?y3;
  16. ; y1 - dialog ID
  17. ; y2 - town ID
  18. ; y3 - dwelling ID
  19. !!FU|y2=-1/y3=-1:E; exit if not town dwelling
  20. !!FU&y3<>2/y3<>9:E; exit if not 3-d level dwelling (upgraded or not)
  21. !!CA0/y2:T?y4; y4 - town type
  22. !!FU&y4<>6:E; exit if not stronghold
  23. !!SN:X?y99/0; don't close dialog on buy
  24. !!RD:M^is_unequal_alt^/1; mark dialog as ours
  25. !!VRe1:S1; e1 - number alternative creatures available (1 = 100%)
  26. !!RD:M^percentage_left^/e1; save number of available monsters in percents
  27. ; remember orcs/trolls rate
  28. !!RD:M^rate_x^/3; 3 trolls
  29. !!RD:M^rate_y^/10; vs 10 orcs
  30. !!RD:C2/144/0/10000; setup trolls slot
  31. !!FU(atm.UpdateSlots):P;
  32. !?FU(OnRecruitDlgAction);
  33. !!RD:M^is_unequal_alt^/?y1; y1 - 1 if it's atm dialog
  34. !!FU&y1<>1:E;
  35. !!SN:X?y2; y2 - number of recruited monsters
  36. !!RD:I?y99/?y99/?y99/?y3; y3 - active slot
  37. !!RD:M^rate_x^/?y4; y4/y5 = trolls/orcs rate
  38. !!RD:M^rate_y^/?y5;
  39. !!RD:C0/?y99/?y6/?y99/0; y6 - original number of orcs
  40. !!RD:M^percentage_left^/?e1; e1 - amount of monsters available in percents
  41. !!if&y3=2:;
  42. !!VRe2:Sy2 *y5 :y4 :y6; e2 - recruited percentage
  43. !!el:;
  44. !!VRe2:Sy2 :y6; e2 - recruited percentage
  45. !!en:;
  46. !!VRe1:-e2;
  47. !!RD:M^percentage_left^/e1; update percentage left
  48. !!FU(atm.UpdateSlots):P;


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
09.09.2019 21:30
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 325
Post: #3456

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


The dreams you kill will break your heart
09.09.2019 23:19
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16733
Post: #3457

ElfbI, в вопрос явно закралась ошибка. Отвечу просто: y1..y100 всегда локальны (относятся к местной копии) тому триггеру, в котором используются.

Эра 2.9 в активной разработке. Интерполяция произвольных строк по запросу (дано "%Z3 has %Y5 shooters", получаем "Orrin has 700 shooters"), масштабное АПИ для управления диалогом найма существ, оптимизация скорости исполнения ЕРМ и др.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.09.2019 00:43
Find all posts by this user Quote this message in a reply
Grossmaster Offline
Moderators

Posts: 606
Post: #3458

А в будущих патчах Эры будет редактор карт Unleashed с поддержкой модов?


Ремейк графики WoG
10.09.2019 16:32
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16733
Post: #3459

Grossmaster, а что за редактор? Пока никаких изменений в этой области не планируется.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.09.2019 19:32
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4356
Post: #3460

Berserker, я так понимаю, он имел ввиду Этот (ссылка на Heroes Community)


Image: widget.png?style=banner2

Новейший Heroes Launcher
10.09.2019 20:05
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16733
Post: #3461

daemon_n, спасибо!


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.09.2019 22:09
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16733
Post: #3462

  1. !!RD:O0/8/1/0/0;
Открыть диалог существ. Источник — улучшенное строение 2-го уровня города №0. Назначение — армия героя №0 (Оррин). Не закрывать диалог по нажатию кнопки покупки.
Результат — нанимаем существ из своего города в армию чужого героя Ab


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.09.2019 00:05
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4356
Post: #3463

Berserker, ура - вот как можно бесконечно растить опыт за деньги! Ab


Image: widget.png?style=banner2

Новейший Heroes Launcher
11.09.2019 00:14
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16733
Post: #3464

daemon_n, можно )


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.09.2019 00:49
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16733
Post: #3465

Надоело загружать библиотеки, получать адреса функций, вызывать функции с нужным соглашением о вызове?
Скажем, нужно сделать резервную копию файла настроек игры. Пишем:
  1. !!SN:L^kernel32.dll^/?y1 Ay1/^CopyFileA^/?y2 Ey2/1/^heroes3.ini^/^heroes3.ini.bak^/0;
Но так долго писать и не очень быстро выполнять. А если так?
  1. !!SN:F^CopyFileA^/^heroes3.ini^/^heroes3.ini.bak^/0;
Совсем другое дело! Эра сама поймёт, откуда функция, из era.dll или kernel32.dll, закэширует её адрес по имени и будет всегда использовать stdcall-соглашение о вызове.

Что делать, если не загружен плагин era_hooker, а он нужен? Предупредить!
  1. !!SN:F^PluginExists^/^era_hooker^;
  2. !!IF&v1=0:M^Отсутствует важный плагин. FUN.erm не будет работать^;


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
14.09.2019 01:23
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-2025 MyBB Group