Странное поведение оператора IF

Yumza

Client
Регистрация
09.05.2015
Сообщения
24
Благодарностей
8
Баллы
3
В ProjectMaker - е все работает как надо, но вот в Poster-e странная ситуация

Вот скрин части проекта http://c2n.me/3HmHktB

f258a-clip-49kb.png


увеличивается счетчик counterAccsWt и пока он меньше другой переменной, блок паузы должен пропускаться.

Но происходит наоборот, поставил уже везде выводы и вот что показывает лог ZennoPoster-a:

2017-02-10 10:20:58.6702|INFO|ZennoLab.LogLibrary.InternalError|Событие в модуле "ожидпние тек.-1 счет.10"
Сообщение: ""
2017-02-10 10:21:53.7033|INFO|ZennoLab.LogLibrary.InternalError|Событие в модуле "сработало ожидание"


Тоесть выводит что переменные равны 1 и 10
а в следующем блоке сравнивает 1 < 10 выдает ЛОЖНО и переходит в блок с сообщением "сработало ожидание"

Попробовал убрать лишние операции с текущими переменными, думал может ломается чтото при изменений типов в C# блоках, не помогло. Первая переменная используется только в 3-4 местах увеличение на 1, обнуление, сравнение. Вторая только сравнение и вводится из входных настроек. Раньше этот блок работал правильно.

Кто знает что может быть причиной такого странного поведения?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 451
Благодарностей
5 910
Баллы
113
Цифры попадают в IF в строковом типе или в числовом?
 

Yumza

Client
Регистрация
09.05.2015
Сообщения
24
Благодарностей
8
Баллы
3
Какие по умолчанию. Раньше ставил в C#, блок присвоений, писал в виде :
project.Variables["destGroup"].Value = "0";

Но сейчас этот блок убрал, инициализацию вообще не делаю, пусть берет из данных по умолчанию для переменных


Мучаюсь уже очень долго ошибка далеко не очевидная пока нашел что все валится именно в этом месте устал.

Кстати а настройка ZennoPoster -> Другое -> Подробный лог Не меняет выдачу, как в Makere? Устанавливал, убирал логи те же никаких новых данных.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 451
Благодарностей
5 910
Баллы
113
Какие по умолчанию. Раньше ставил в C#, блок присвоений, писал в виде :
project.Variables["destGroup"].Value = "0";

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

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
456
Баллы
63
В блоках сравнения попробуй сделать вот так:
Код:
parseInt("{-Variables.Test1-}") < parseInt("{-Variables.Test2-}")
 

Yumza

Client
Регистрация
09.05.2015
Сообщения
24
Благодарностей
8
Баллы
3
Вроде все как надо



bec14-clip-116kb.png


Абсолютно также ведет себя следующий блок но там логика сложнее поэтому пытаюсь понять баг на примере простого
 

Yumza

Client
Регистрация
09.05.2015
Сообщения
24
Благодарностей
8
Баллы
3
Вырезал этот блок и вставил в пустой проект. Работает нормально. Да и весь проект в Maker-e работает как надо а в Poster-e эти условия прям сильно лажают.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 451
Благодарностей
5 910
Баллы
113
Вроде все как надо



Посмотреть вложение 18495

Абсолютно также ведет себя следующий блок но там логика сложнее поэтому пытаюсь понять баг на примере простого
Может в переменные не попадают значения? Попробуйте все-таки руками прописать.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 451
Благодарностей
5 910
Баллы
113
Вырезал этот блок и вставил в пустой проект. Работает нормально. Да и весь проект в Maker-e работает как надо а в Poster-e эти условия прям сильно лажают.
Ничего там лажать не должно. 100 лет уже все работает.
 

Yumza

Client
Регистрация
09.05.2015
Сообщения
24
Благодарностей
8
Баллы
3
ok. Сейчас попробую инициализировать. Переменные что приходят из настроек тоже вписать четко. Переустановлю встроенный проект, может он както влияет, хотя я уже удалил из него упоминания и передачу между проектами этих переменных
 

Yumza

Client
Регистрация
09.05.2015
Сообщения
24
Благодарностей
8
Баллы
3
Попробовал уже все что можно.
вставил инициализацию прям перед этим блоком, думал может в процессе чтото меняется. Но даже так не срабатывает как надо.

Clip2net_170210212324.png

На "пауза 1-2" вход в блок и должен по идее не делать паузы и проходить через "Блок проверок 1" но лог выводит:

1.png


21:48:51.9099|INFO|ZennoLab.LogLibrary.InternalError|Событие в модуле "ожидпние тек.-1 счет.10"
Сообщение: ""
2017-02-10 21:49:46.9350|INFO|ZennoLab.LogLibrary.InternalError|Событие в модуле "сработало ожидание"
Сообщение: ""
2017-02-10 21:49:46.9350|INFO|ZennoLab.LogLibrary.InternalError|Событие в модуле "акаунты тек.-1 всего -30"
Сообщение: ""
2017-02-10 21:49:46.9430|INFO|ZennoLab.LogLibrary.InternalError|Событие в модуле "на выход"


Уже не знаю даже что пробовать. Есть еще какието мысли в чем может быть беда?
 

Yumza

Client
Регистрация
09.05.2015
Сообщения
24
Благодарностей
8
Баллы
3
Пересоздал проект, перекопировал в неко все инструкции, разбил проект на под проекты получилось 6.

Вроде заработало. Странная ситуация, но зато навел в проекте порядок главное чтобы с таким количество подпроектов не было проблем
 
  • Спасибо
Реакции: VerBin

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)