Current time: 14.07.2020, 11:08 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Ваши вопросы по ERM-скриптам
Author Message
Algor Away
Administrators

Posts: 3782
Post: #5146

Barin, какой-то странный подход, чесслово. Чем первое решение-то не устроило?


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
22.05.2018 18:56
Visit this user's website Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 775
Post: #5147

(22.05.2018 18:56)Algor Wrote:  Barin, какой-то странный подход, чесслово. Чем первое решение-то не устроило?

После того, как враг перебьёт мои войска - этот единственный монстр будет стоять без действий, а его будут долго добивать, т.к у него будет много здоровья - это Эмиссар. В добавок к этому - комп будет воспринимать Эмиссара за тележку - и у него будет меньше желания его атаковать, в отличии от полноценного монстра.

Насколько помню - комп иногда тупит и вместо оставшегося монстра - начинает долбить тележку, но это редко бывает.
(This post was last modified: 22.05.2018 19:46 by Barin.)
22.05.2018 19:40
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 3697
Post: #5148

Barin, так можно любого монстра в бою по сути сделать "Тележкой", дав ему все нужные флаги и даже параметры Fight value и приоритет AI (не помню как называется уже)... реально странный способ реализации с вашей стороны.
Но, да, в вашем случае не нужно было код ЕРМ для этого использовать, тут можно понять логику "так быстрее" Ab



Image: 237506073ac7.gif
22.05.2018 20:43
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3782
Post: #5149

Barin, в !?PI или !# выставляешь монстру ценность 0 и флаг "боевая машина" (не требуется убивать для победы). А чтоб не пытался ходить - в начале раунда (!?BR) перебираешь отряды и добавляешь флаг "уже ходил". Если монстр призывается на поле боя, а не из войск героя берется, то даже перебирать отряды не надо, просто при призыве сохраняешь номер.
Вот, собсно, и всё.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
22.05.2018 20:56
Visit this user's website Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 775
Post: #5150

(22.05.2018 20:56)Algor Wrote:  Barin, в !?PI или !# выставляешь монстру ценность 0 и флаг "боевая машина" (не требуется убивать для победы). А чтоб не пытался ходить - в начале раунда (!?BR) перебираешь отряды и добавляешь флаг "уже ходил". Если монстр призывается на поле боя, а не из войск героя берется, то даже перебирать отряды не надо, просто при призыве сохраняешь номер.
Вот, собсно, и всё.
Хорошо, попробую.
(This post was last modified: 23.05.2018 02:12 by Barin.)
22.05.2018 23:25
Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 775
Post: #5151

Не получается. Почему только в 1-м раунде срабатывает? Потом всё равно ход переходит Эмиссару.

!?BF&v250=5; v250 сюжетное условие
!!BU:S160/1/18/0/-1/0; призвать Эмиссара
!!BU:E18/?v253; записать номер

!?BR&v997>-1/v250=5;
!!BMv253:F67108864; установить - действовал
24.05.2018 16:55
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2200
Post: #5152

Отряд убивать надо чтобы битва закончилась, или нет?


WoG Scripts || WoG Scripts Rus
24.05.2018 19:37
Visit this user's website Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 775
Post: #5153

(24.05.2018 19:37)igrik Wrote:  Отряд убивать надо чтобы битва закончилась, или нет?

Я не понял.

Сюжет такой: герой посетил Эмиссара. Теперь он будет появляться в каждой битве, но бездействовать (польза от него вне битвы). Если его в бою убьют - он больше не появится. Если во время боя он остался последним из живых - мой проигрыш.

Что с моим кодом не то? В 1-ом раунде вроде работает.

!?BR&v997>-1/v250=5; вроде логично, будет работать в каждом раунде
!!BMv253:F67108864; тоже вроде ясно - стеку дать флаг.

Стек уверенно определяется командой !!BU:E18/?v253; Что с флагом-то?
(This post was last modified: 24.05.2018 19:49 by Barin.)
24.05.2018 19:43
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2200
Post: #5154


Но отряд нужно убить для достижения победы...


WoG Scripts || WoG Scripts Rus
24.05.2018 20:53
Visit this user's website Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 775
Post: #5155

1) Отлично, благодарю, всё получилось. Эмиссару дал флаг осадного орудия и приоритет 0.

2) Можно ли в конкретной карте сделать так, чтобы нужный мне класс героя генерировался с двумя стандартными конкретного города.

Поясню пример: город Оплот. В начале игры в таверне как правило появляются его родные герои: друиды и рейнджеры. Мне нужно, чтобы к ним добавился класс Странника (Сопряжение), т.е стал родным для Оплота. Предполагаю, что средствами !!UN:C это можно реализовать.

В Гардарике у меня сейчас так: воеводы (мужчины и женщины) и волхвы. Получается 3 def-а героев на карте. На текущий момент кто-то из них не будет появляться в таверне Оплота в начале игры. Нужно исправить это.
(This post was last modified: 25.05.2018 22:34 by Barin.)
25.05.2018 21:46
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3782
Post: #5156

Barin,
2) Если карту делаешь модом, можно обойтись без ERM - просто модифицируй hctraits.txt - проставь по 33-34% для трех нужных классов в столбце Оплота, и 0 для остальных классов.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
26.05.2018 11:51
Visit this user's website Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 775
Post: #5157

(25.05.2018 21:46)Barin Wrote:  1) Отлично, благодарю, всё получилось. Эмиссару дал флаг осадного орудия и приоритет 0.

Нет, всё-таки не отлично. После битвы "Эмиссар с флагом осадного орудия" - исчезает, а соответственно накопленные его бонусы. Это не хорошо.

Я затеял это для того, чтобы в битве Эмиссар не надоедал. Он же не может атаковать, а постоянно ему тыкать "защита" или "передвигать по карте" бестолковое занятие.
31.05.2018 16:34
Find all posts by this user Quote this message in a reply
XEPOMAHT Online

Posts: 590
Post: #5158

(31.05.2018 16:34)Barin Wrote:  После битвы "Эмиссар с флагом осадного орудия" - исчезает, а соответственно накопленные его бонусы. Это не хорошо.

Перед битвой устанавливаешь флаг, а после битвы (если выжил) перед окном "выигрыш/проигрыш" флаг убираешь.

(31.05.2018 16:34)Barin Wrote:  или "передвигать по карте" бестолковое занятие.

Таким образом отменяешь тактику "мишень": ИИ любит дубасить отряды, которые не отвечают (например те же боевые машины). Удобно послать эмиссара например к вражеским стрелкам, да и вообще подставлять его под удар (как раз он этим и ценен в битве). Так же точно можно закрывать эмиссаром собственных стрелков (что тоже очень полезно).
(This post was last modified: 31.05.2018 17:17 by XEPOMAHT.)
31.05.2018 17:08
Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 775
Post: #5159

(31.05.2018 17:08)XEPOMAHT Wrote:  
(31.05.2018 16:34)Barin Wrote:  После битвы "Эмиссар с флагом осадного орудия" - исчезает, а соответственно накопленные его бонусы. Это не хорошо.

Перед битвой устанавливаешь флаг, а после битвы (если выжил) перед окном "выигрыш/проигрыш" флаг убираешь.

(31.05.2018 16:34)Barin Wrote:  или "передвигать по карте" бестолковое занятие.

Таким образом отменяешь тактику "мишень": ИИ любит дубасить отряды, которые не отвечают (например те же боевые машины). Удобно послать эмиссара например к вражеским стрелкам, да и вообще подставлять его под удар (как раз он этим и ценен в битве). Так же точно можно закрывать эмиссаром собственных стрелков (что тоже очень полезно).

1) Это как? Есть команда !?BA1; после неё отключал флаг - не помогло.

2) Согласен, полезность Эмиссара есть в описанных тобой примерах. Но я специально хочу снизить эту полезность. Здоровье тоже ему надо снизить. Знал бы как снизить бонус - тоже сделал бы. 1-3 первичного параметра в неделю - это много. 1 единицу бы сделал.
31.05.2018 17:52
Find all posts by this user Quote this message in a reply
XEPOMAHT Online

Posts: 590
Post: #5160

(31.05.2018 17:52)Barin Wrote:  1) Это как? Есть команда !?BA1; после неё отключал флаг - не помогло.

Где-то видел этот хук на окно, вылезающее после битвы, но сейчас его найти в свалке не могу.

Если не жалко ресурсов ПК, то можно выставлять нужный тебе флаг в триггере "после передачи контроля" (функция 77006), а в триггере "перед передачей контроля" (функция 77007) снимать флаг, с проверками на тип и ходячесть монстра.

Если же делать по уму, то эмиссара можно перед битвой вообще убирать с поля боя, если он тебе так сильно мешается. Или сразу давать флаг "труп" и ставить на ячейку, на которую не может ступать нога монстра. Для особых извращений можно заменить спрайты эмиссара на пустышку, чтобы его совсем никто не тревожил. 148

(31.05.2018 17:52)Barin Wrote:  Знал бы как снизить бонус - тоже сделал бы. 1-3 первичного параметра в неделю - это много. 1 единицу бы сделал.

Данную функцию бонуса богов можно найти и отредактировать (т.е. чтобы в bv всегда записывалась единица вместо рамдома).

Code:
void DaylyGodsBonus(int Owner)
{
    int     bv,gt,hv;
    _Hero_ *hr;
    STARTNA(__LINE__, 0)
    if((GetCurDate()%7)!=1) RETURNV // не понедельник
    for(int i=0;i<GODMONNUM;i++){
        gt=GodMonInfo[i].SubType;
        if(gt==0) continue;
        hr=GetHeroStr(GodMonInfo[i].HeroInd);
        if(hr->Owner!=Owner) continue;
        bv=Random(1,3);
        hv=hr->PSkill[gt-GODMONTSTRT]+bv;
        if(hv>99){
            hv=99;
            bv=hv-hr->PSkill[gt-GODMONTSTRT];
        }
        hr->PSkill[gt-GODMONTSTRT]+=(char)bv;
        GodMonInfo[i].BonusVal+=bv;
    }
    RETURNV
}
31.05.2018 18:48
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-2020 MyBB Group