Current time: 24.11.2024, 20:15 Hello There, Guest! (LoginRegister)
Language: english | russian  

Thread Closed 
Threaded Mode | Linear Mode
Быстрые клавиши колдовства в бою
Author Message
Bes Offline

Posts: 5422
Post: #1

Quote:требуется: реализация быстрых клавиш заклинаний в бою... Конкретно код, активирующий ЛЮБОЕ заклинание (баз/продв/эксп) с действием как при нажатии из книги

сможем из этого сделать универсальную ф-цию, вызывающую в ЕРМ при нажатии на любую из 0..9 клавиш в бою назначенное заклинание?
20.03.2014 13:41
Visit this user's website Find all posts by this user
Berserker Online
Administrators

Posts: 16657
Post: #2

Эм, я не активен, Бес, а сделать можно и проще.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
20.03.2014 22:47
Find all posts by this user
Bes Offline

Posts: 5422
Post: #3

Berserker, я не говорю "Давай!".. я спрашиваю, чего с ходу не вижу. А там буду смотреть ужеUnsure
20.03.2014 22:59
Visit this user's website Find all posts by this user
Berserker Online
Administrators

Posts: 16657
Post: #4

Code:
TCaster = (CASTER_HERO, CASTER_MON, CASTER_ART);

PROCEDURE CastSpell (Caster: TCaster; Spell, Power, Pos1, Pos2: INTEGER);
VAR
  HeroPower:  INTEGER;
  MonPower:   INTEGER;
  CasterId:   INTEGER;
  
BEGIN
  IF Caster <> CASTER_MON THEN BEGIN
    HeroPower :=  Power;
    MonPower  :=  -1;
  END // .IF
  ELSE BEGIN
    HeroPower :=  -1;
    MonPower  :=  Power;
  END; // .ELSE
  
  CasterId  :=  ORD(Caster);
  
  ASM
    MOV ECX, [COMBAT_MAN]
    PUSH HeroPower
    PUSH MonPower
    PUSH Pos2
    PUSH CasterId
    PUSH Pos1
    PUSH Spell
    MOV EAX, $5A0140
    CALL EAX
  END; // .ASM
END; // .PROCEDURE CastSpell

Оставлю на будущее. Процедура позволяет колдовать любое заклинание. Ну а обработка клавиш в Эре есть.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
21.03.2014 05:05
Find all posts by this user
Bes Offline

Posts: 5422
Post: #5

есть желающие таки сделать такой ERM-код/плагин для добавления в некую популярную сборку ERA?
К Berserker'у уже не буду приставать, хоть он и делал задел для реализации...
22.08.2020 05:27
Visit this user's website Find all posts by this user
Bes Offline

Posts: 5422
Post: #6

V_Maiko Wrote:  Bes, A Chinese modder named Xericsin helped me with this issue when I had creatures that were range and spellcaster at the same time, the code is this, it works like this

V_Maiko, я не совсем про это...
да, на ЕРМ можно повторить (эмулировать) действие того или иного заклинания, что есть у героя.
Но, не всегда это полностью удаётся, не исключает ошибки из-за несовместимости с другими скриптами/модами и пр. пр.

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

Когда-то в Феникс-моде были реализованы быстрые клавиши заклинаний, но то была не идеальная имитация срабатывания заклинаний.
Вот, кстати, шапка той реализации (с хранением в ini настроек по клавишам)
содержимое Settings.ini (Click to View)
22.08.2020 05:50
Visit this user's website Find all posts by this user
daemon_n Offline
Administrators

Posts: 4343
Post: #7

Bes, а ещё есть такое в SoD_SP плагине, так что намекаю на его автора, чтобы он продолжил портировать экран бояRolleyes


Image: widget.png?style=banner2

Новейший Heroes Launcher
22.08.2020 09:46
Visit this user's website Find all posts by this user
MOP Offline
Moderators

Posts: 1468
Post: #8

(21.03.2014 05:05)Berserker Wrote:  
Code:
TCaster = (CASTER_HERO, CASTER_MON, CASTER_ART);

PROCEDURE CastSpell (Caster: TCaster; Spell, Power, Pos1, Pos2: INTEGER);
VAR
  HeroPower:  INTEGER;
  MonPower:   INTEGER;
  CasterId:   INTEGER;
  
BEGIN
  IF Caster <> CASTER_MON THEN BEGIN
    HeroPower :=  Power;
    MonPower  :=  -1;
  END // .IF
  ELSE BEGIN
    HeroPower :=  -1;
    MonPower  :=  Power;
  END; // .ELSE
  
  CasterId  :=  ORD(Caster);
  
  ASM
    MOV ECX, [COMBAT_MAN]
    PUSH HeroPower
    PUSH MonPower
    PUSH Pos2
    PUSH CasterId
    PUSH Pos1
    PUSH Spell
    MOV EAX, $5A0140
    CALL EAX
  END; // .ASM
END; // .PROCEDURE CastSpell

Оставлю на будущее. Процедура позволяет колдовать любое заклинание. Ну а обработка клавиш в Эре есть.
Было бы прекрасно, если бы это было всё, что требуется... Но это просто оригинал !!BM:C и !!BH:C.
Код, приведённый Бесом из моих исходников, такой странный потому, что не все условия колдовства учитываются данной функцией.
Это так, по памяти. Конкретные проблемы забыл, но мучительные поиски решения - всё ещё помню.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
22.08.2020 14:57
Find all posts by this user
Berserker Online
Administrators

Posts: 16657
Post: #9

MOP, имеешь в виду, что проверки на артефакты/почву к моменту вызова Cast уже сработали?


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
22.08.2020 15:25
Find all posts by this user
MOP Offline
Moderators

Posts: 1468
Post: #10

Вроде того. Могут быть ещё проверки на иммунитеты.
Вообще, во многих местах кода, где вроде бы можно было сделать универсальную функцию, её вызов сопровождается одними и теми же проверками (проверки на диапазоны существ/артефактов/заклинаний ещё самые очевидные). Ещё есть действия, половина которых осуществляется вызовом процедуры, а другая половина - вставкой тела этой же процедуры.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
(This post was last modified: 22.08.2020 15:54 by MOP.)
22.08.2020 15:51
Find all posts by this user
Bes Offline

Posts: 5422
Post: #11

Berserker, некоторые проверки (которые по идее никак не вызовут некие коллизии с другими модами) можно сделать через ЕРМ, типа проверки уровня навыка героя, наличие закла в книге и пр.
дабы не отвлекаться на них
22.08.2020 16:06
Visit this user's website Find all posts by this user
Berserker Online
Administrators

Posts: 16657
Post: #12

MOP, код, явно нуждающийся в рефакторинге, в общем.



moderator Wrote:На данный момент существует отдельный плагин для быстрых клавиш в бою.
Все подробности вы можете увидеть ЗДЕСЬ
4


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
22.08.2020 16:24
Find all posts by this user
« Next Oldest | Next Newest »
Thread Closed 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group