Новости Большое интервью с HotA Crew - часть 2
  • 161
  • 0
HotA Crew о Кронверке и будущих обновлениях (часть 2) Какие герои будут вести армии Кронверка? Герои-воины зовутся Вожди, маги — Старейшины. Их параметры и способности подчеркнут сильные стороны...
Новости Большое интервью с HotA Crew - часть 1
  • 184
  • 0
HotA Crew о Кронверке и будущих обновлениях Важно: весь контент по Кронверку и системе событий находится в разработке, и может ещё поменяться. Итак, следующим городом будет Кронверк. Почему...
С Новым 2025 годом!
  • 1.668
  • 18
Вот и завершается этот год - местами странный, местами крутой, но точно запоминающийся, полный неожиданностей и ярких моментов. Мы благодарны вам за то, что вы были рядом, за все наши совместные...
Новости В Heroes of Might and Magic 3 теперь можно поиграть в веб-браузере
  • 812
  • 3
Совсем недавно энтузиасты из России смогли портировать игру HoMM3 в браузер. Причем веб-версия позволяет пройти все сюжетные компании и даже поиграть по сети. Чтобы сыграть в классику необходимо...
Иконка ресурса

Дополнительный лут неписям и в сундуки 2.9

Нет прав доступа на загрузку
Позволяет выдавать неписям и сундукам дополнительный лут.

Plasquar

Житель города
Участник форума
Регистрация
20 Июн 2021
Сообщения
100
Реакции
108
Баллы
48
Лучшие ответы
3
Хорошо, спасибо. Извините, я не нашел описание.
 

Vismyt P.

Житель города
Участник форума
Регистрация
1 Фев 2019
Сообщения
208
Реакции
24
Баллы
40
Лучшие ответы
1
Здравствуйте. Обнаружил ещё один, думаю, недочёт. С духов волков (тотем призыва у шамана) есть дроп. Я так понимаю с них дропа не должно быть по идее, т.к. волков бесконечно можно призывать.
 

bobyk23

Новичок
Участник форума
Регистрация
18 Сен 2014
Сообщения
22
Реакции
5
Баллы
23
Лучшие ответы
0
Можно ли как-то выставить настройки, чтобы при добавлении лута мобам, у них росло только ХП, но не урон.
 

tilil2670

Рыцарь
Участник форума
Регистрация
25 Авг 2022
Сообщения
2.086
Реакции
527
Баллы
171
Лучшие ответы
4
Можно ли как-то выставить настройки, чтобы при добавлении лута мобам, у них росло только ХП, но не урон.
Переведи настройки ини настроек опционалки на Ру язык, вроде можно. Они конечно зря что на инглише.
 

Csor

Труженик
Участник форума
Регистрация
11 Ноя 2018
Сообщения
338
Реакции
129
Баллы
66
Лучшие ответы
2
@punkkk, да на здоровье. Выпиливать не собираемся.

Остальное там таймеры. Запуск зачастую из скриптов.
C++:
void RarePotion::CheckRarePotions( int index, int value ) {
        zSTRING inst = "";
        int isActive = 0;
        // магическое зелье
        if ( index == 1 && value == 0 ) {
            player->attribute[ NPC_ATR_MANAMAX ] -= 200;
            player->attribute[ NPC_ATR_MANA ] -= 200;
            if ( player->attribute[ NPC_ATR_MANA ] < 0 ) {
                player->attribute[ NPC_ATR_MANA ] = 0;
            }
        }
        // зелье неутомимости
        else if ( index == 4 && value > 0 ) {
            if ( *gameVars.staminaPtr < *gameVars.staminaMaxPtr * 10 ) {
                *gameVars.staminaPtr += 15;
                if ( *gameVars.staminaPtr > *gameVars.staminaMaxPtr * 10 ) {
                    *gameVars.staminaPtr = *gameVars.staminaMaxPtr * 10;
                }
            }
        }
        // зелье бесконечной маны
        else if ( index == 5 && value > 0 ) {
            if ( player->attribute[ NPC_ATR_MANA ] < player->attribute[ NPC_ATR_MANAMAX ] ) {
                player->attribute[ NPC_ATR_MANA ] += 50;
                if ( player->attribute[ NPC_ATR_MANA ] > player->attribute[ NPC_ATR_MANAMAX ] ) {
                    player->attribute[ NPC_ATR_MANA ] = player->attribute[ NPC_ATR_MANAMAX ];
                }
            }
        }
        // зелье регенерации
        else if ( index == 7 && value > 0 ) {
            if ( player->attribute[ NPC_ATR_HITPOINTS ] < player->attribute[ NPC_ATR_HITPOINTSMAX ] && !player->IsDead() ) {
                player->attribute[ NPC_ATR_HITPOINTS ] += ( player->attribute[ NPC_ATR_HITPOINTSMAX ] * 0.03f );
                if ( player->attribute[ NPC_ATR_HITPOINTS ] > player->attribute[ NPC_ATR_HITPOINTSMAX ] ) {
                    player->attribute[ NPC_ATR_HITPOINTS ] = player->attribute[ NPC_ATR_HITPOINTSMAX ];
                }
            }
        }
        // зелье скорости
        else if ( index == 8 && value == 0 ) {
            if ( additionalAcceleration ) {
                *additionalAcceleration = *additionalAcceleration - 50;
            }
        }
        // зелье магической мощи
        else if ( index == 10 && value == 0 ) {
            if ( CountLearnSpell ) {
                *CountLearnSpell = *CountLearnSpell - 50;
            }
        }

        for ( int i = 1; i <= 12; i++ ) {
            if ( i < 10 ) {
                inst = "rarePotion_0" + zSTRING( i ) + "_numOfSec";
            } else {
                inst = "rarePotion_" + zSTRING( i ) + "_numOfSec";
            }

            int value = parser->GetScriptInt( inst );

            if ( value >= 1 ) {
                isActive++;
            }
        }

        if ( !isActive ) {
            *rarePotion_isActive = FALSE;
        }
    }
void RarePotion::Loop() {

        //printWin("RefreshLocations loop");

        if ( !init ) {
            init = TRUE;
            Init();
        }

        // таймеры редких зелий
        if ( *rarePotion_isActive == TRUE ) {
            if ( !( player->GetInstanceName() == "PC_HERO" ) ) {
                return;
            }

            zSTRING inst = "";
            for ( int i = 1; i <= 12; i++ ) {
                if ( i < 10 ) {
                    inst = "rarePotion_0" + zSTRING( i ) + "_numOfSec";
                } else {
                    inst = "rarePotion_" + zSTRING( i ) + "_numOfSec";
                }

                int value = parser->GetScriptInt( inst );
                int tickValue = 1000;
                if ( gameVars.accelerationActive ) {
                    tickValue /= settings.worldTime_AccelerationRatio;
                }

                if ( value && MainTimer[ AST_TIMER_RarePotions + ( i - 1 ) ].Await( tickValue ) ) {
                    parser->SetScriptInt( inst, --value );
                    CheckRarePotions( i, value );
                }
            }
        }
    }
Хотел ослабить редкие зелья в НБ, а то не использовал их когда падали с помощью плагина на доп. лут. Скопировал твой код и создал .d файл в Autorun, но игра ошибку void выдает.
 

Haart

Герой
Команда форума
Редактор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
3 Дек 2012
Сообщения
6.393
Реакции
3.532
Баллы
741
Лучшие ответы
398
@Csor, покажи код.
 

Csor

Труженик
Участник форума
Регистрация
11 Ноя 2018
Сообщения
338
Реакции
129
Баллы
66
Лучшие ответы
2
@Haart, такой же код, который ты скидывал в сообщении #142 этой темы. Я скопировал всё, ничего не меняя и создал .d файл.
 
Последнее редактирование:

Haart

Герой
Команда форума
Редактор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
3 Дек 2012
Сообщения
6.393
Реакции
3.532
Баллы
741
Лучшие ответы
398
@Csor, а, так это код для c++) Его не перепишешь через скрипты. Это надо исходники иметь.
 

Cnupm

Наемник
Участник форума
Регистрация
27 Сен 2023
Сообщения
586
Реакции
171
Баллы
68
Лучшие ответы
0
Кто может исправить мод, что бы работали добавленные зелья манны +10 и рудная бижа на стойкость?
При использовании данных предметов ничего не происходит.

Вручную по инструкции лут-таблица не меняется (точнее мод ее не обнаруживает).
 

ToXaL1

Рыцарь
Участник форума
Регистрация
8 Окт 2017
Сообщения
2.599
Реакции
533
Баллы
230
Лучшие ответы
29
@Cnupm, оно не работает потому что было удалено
 
Сверху Снизу