Новости В Of Ash and Steel начался закрытый плейтест
  • 543
  • 0
Разработчики "Русской Готики" объявили о старте закрытого плейтеста. Если вы оставляли заявку на участие, не забудьте проверить электронную почту или посмотреть свою библиотеку - возможно игра уже...
С Днём России!
  • 3.098
  • 6
Дорогие друзья! Поздравляю вас с Днём России! Этот праздник напоминает нам о богатой истории и культуре нашей страны, о её величии и непоколебимом духе народа! Желаю вам крепкого здоровья...
Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 1.261
  • 1
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...

В процессе Потенциальная ошибка в условиях регена одного из братьев троллей.

Blackmail01

Гвардеец
Команда форума
Редактор раздела
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.100
Реакции
1.137
Баллы
251
Лучшие ответы
67
#1
Решил посмотреть при каких условиях братья тролли Утрог, Уздог и Уброг восстанавливают себе здоровье.
На скриптах от 18.07.2025 условия выглядят так:
Код:
    if (hlp_getinstanceid(self) == hlp_getinstanceid(troll_rug)) {
        if (troll_rugreg == true) {
            troll_rug.attribute[atr_hitpoints]  += 1000;
            if (troll_rug.attribute[atr_hitpoints]  >= troll_rug.attribute[atr_hitpoints_max] ) {
                troll_rug.attribute[atr_hitpoints]  = troll_rug.attribute[atr_hitpoints_max] ;
                troll_rugreg = false;
            };
        };
        if (troll_rug.attribute[atr_hitpoints]  <= 500) {
            if (troll_rug.attribute[atr_hitpoints]  < troll_trag.attribute[atr_hitpoints] ) {
                tmp_rugcount_01 = troll_trag.attribute[atr_hitpoints]  - troll_rug.attribute[atr_hitpoints] ;
                if (tmp_rugcount_01 > 1500) {
                    troll_rugreg = true;
                };
            };
            if (troll_rug.attribute[atr_hitpoints]  < troll_brog.attribute[atr_hitpoints] ) {
                tmp_rugcount_02 = troll_brog.attribute[atr_hitpoints]  - troll_rug.attribute[atr_hitpoints] ;
                if (tmp_rugcount_02 > 1500) {
                    troll_rugreg = true;
                };
            };
        };
    };
    if (hlp_getinstanceid(self) == hlp_getinstanceid(troll_trag)) {
        if (troll_tragreg == true) {
            troll_trag.attribute[atr_hitpoints]  += 1000;
            if (troll_trag.attribute[atr_hitpoints]  >= troll_trag.attribute[atr_hitpoints_max] ) {
                troll_trag.attribute[atr_hitpoints]  = troll_trag.attribute[atr_hitpoints_max] ;
                troll_tragreg = false;
            };
        };
        if (troll_trag.attribute[atr_hitpoints]  <= 500) {
            if (troll_trag.attribute[atr_hitpoints]  < troll_rug.attribute[atr_hitpoints] ) {
                tmp_tragcount_01 = troll_rug.attribute[atr_hitpoints]  - troll_trag.attribute[atr_hitpoints] ;
                if (tmp_tragcount_01 > 1500) {
                    troll_tragreg = true;
                };
            };
            if (troll_trag.attribute[atr_hitpoints]  < troll_brog.attribute[atr_hitpoints] ) {
                tmp_tragcount_02 = troll_brog.attribute[atr_hitpoints]  - troll_trag.attribute[atr_hitpoints] ;
                if (tmp_tragcount_02 > 1500) {
                    troll_tragreg = true;
                };
            };
        };
    };
    if (hlp_getinstanceid(self) == hlp_getinstanceid(troll_brog)) {
        if (troll_brogreg == true) {
            troll_brog.attribute[atr_hitpoints]  += 1000;
            if (troll_brog.attribute[atr_hitpoints]  >= troll_brog.attribute[atr_hitpoints_max] ) {
                troll_brog.attribute[atr_hitpoints]  = troll_brog.attribute[atr_hitpoints_max] ;
                troll_brogreg = false;
            };
        };
        if (troll_brog.attribute[atr_hitpoints]  <= 500) {
            if (troll_brog.attribute[atr_hitpoints]  < troll_trag.attribute[atr_hitpoints] ) {
                tmp_brogcount_01 = troll_trag.attribute[atr_hitpoints]  - troll_brog.attribute[atr_hitpoints] ;
                if (tmp_brogcount_01 > 1500) {
                    troll_brogreg = true;
                };
            };
            if (troll_rug.attribute[atr_hitpoints]  < troll_rug.attribute[atr_hitpoints] ) {
                tmp_brogcount_02 = troll_rug.attribute[atr_hitpoints]  - troll_brog.attribute[atr_hitpoints] ;
                if (tmp_brogcount_01 > 1500) {
                    troll_brogreg = true;
                };
            };
        };
    };
В последней проверке по логике должно быть if (tmp_brogcount_02 > 1500), а сейчас стоит if (tmp_brogcount_01 > 1500), что не имеет смысла.
 

MonisQ

Наемник
Участник форума
Регистрация
4 Мар 2023
Сообщения
587
Реакции
275
Баллы
103
Лучшие ответы
13
#2
ИИ говорит, что тут ещё пару ошибок:

1. В блоке для troll_brog в условии:

if (troll_rug.attribute[atr_hitpoints] < troll_rug.attribute[atr_hitpoints] )

Это условие всегда ложно, потому что сравнивается одно и то же значение.

Должно быть:

if (troll_brog.attribute[atr_hitpoints] < troll_rug.attribute[atr_hitpoints] )


2. В том же блоке troll_brog, внутри второго условия (которое неправильное) используется переменная tmp_brogcount_01, но затем проверяется условие:

if (tmp_brogcount_01 > 1500)

Однако в предыдущей строке мы присваиваем tmp_brogcount_02:

tmp_brogcount_02 = troll_rug.attribute[atr_hitpoints] - troll_brog.attribute[atr_hitpoints] ;

И потом проверяем tmp_brogcount_01, которая не была изменена в этом условии. Это ошибка.


Вероятно, должно быть:

if (tmp_brogcount_02 > 1500)


3. Также обрати внимание, что в блоке для troll_brog во втором условии (которое сейчас неправильное) используется сравнение с troll_rug, но в коде написано:

if (troll_rug.attribute[atr_hitpoints] < troll_rug.attribute[atr_hitpoints] )

Это явная опечатка, должно быть сравнение troll_brog с troll_rug.


4. Есть ли другие ошибки?

- В первом блоке (для troll_rug) и втором (для troll_trag) код написан правильно (сравнивают текущего тролля с двумя другими).

- Но в третьем блоке (troll_brog) в первом условии сравнивается с troll_trag, а во втором условии должно быть с troll_rug, но там ошибка.
 

Chad

Гвардеец
Пользователь VIP
Участник форума
Регистрация
29 Июл 2020
Сообщения
1.496
Реакции
555
Баллы
191
Лучшие ответы
3
#3
@Blackmail01, я конечно ничерта не понимаю в коде, но не проще ли просто давать реген как на гб х3 тому, у кого хп ниже на 2к чем у его брата типа у одного 7к, у другого 10к и первый до 8к регенит по 400-500 в сек и все типа и баланс и красота и ваще сладко
 
Автор
Автор
Blackmail01

Blackmail01

Гвардеец
Команда форума
Редактор раздела
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.100
Реакции
1.137
Баллы
251
Лучшие ответы
67
#4
@Chad, по условиям прописать вряд ли проще, но и не сильно сложнее того что уже есть.
Всё равно я здесь ничего не решаю. Могу разве что опциональный плагин какой-нибудь запилить. И то не все из них проходят цензуру.
 

MonisQ

Наемник
Участник форума
Регистрация
4 Мар 2023
Сообщения
587
Реакции
275
Баллы
103
Лучшие ответы
13
#5
@Blackmail01, я конечно ничерта не понимаю в коде, но не проще ли просто давать реген как на гб х3 тому, у кого хп ниже на 2к чем у его брата типа у одного 7к, у другого 10к и первый до 8к регенит по 400-500 в сек и все типа и баланс и красота и ваще сладко
Ну я думаю, что в игре это будет выглядить лучше, чем фулл реген как есть сейчас
 

Chad

Гвардеец
Пользователь VIP
Участник форума
Регистрация
29 Июл 2020
Сообщения
1.496
Реакции
555
Баллы
191
Лучшие ответы
3
#6
@MonisQ, собственно, поэтому и написюкал - ну может что бы было прямо ТЯЖЕЛО УХ ДА пусть регенят на 2к хп больше самого нижнего из имеющихся значений типа вот у еденицы 6000 хп, у двойки 9000 хп у тройки 10000 хп и вот ты нанес удар который оставил 6000 хп у еденицы и он регенит до 11000 хп что на 2к больше чем у двойки, это тяжелее, чем то, что я предлагал ранее, существенно - но тем не менее не придется ходить на них после нового данжа что бы перебить смешную механику :'(

и да, без твоего удара переменная не должна работать ато будут регенится бесконечно :P
ну или разорвать дистанцию до 3000 хп для подключения регена или уменьшить овер-реген до 1000 выше прошлого
 
Сверху Снизу