Автокликер Clickermann :: Форум
Основной раздел => Ошибки => Topic started by: Rudeek on July 03, 2018, 01:50:20 PM
-
if("e"="0")
print("Как это понимать? Почему англ. e равно нулю?")
end_if
В 4.12 всё нормально, а в 4.13 англ. е равняется нулю. Мелочь, но всё равно не приятно.
-
Вот же гадство. Они ещё и точке равны:(
-
http://crapware.aidf.org/forum/index.php?topic=356.msg26603#msg26603
Вот тут почитай, вроде подробно расписано.
Как вариант, попробуй сравнивать хэш строк
Там далее есть еще варианты решения этой проблемы.
http://crapware.aidf.org/forum/index.php?topic=356.msg26605#msg26605
-
В 4.12 всё нормально, а в 4.13 англ. е равняется нулю. Мелочь, но всё равно не приятно.
не знаю что там у тебя за версия.... но просто строка с буквой "е" остается ей. там была проблема с массивами с этой строкой. и вроде в релизной версии все эти проблемы уже пофиксили. максимум что осталось, это запись чисел с этой "Е". типа
print(1E3+2E2+34) // выйдет 1234
halt
так что качай последнюю версию, и проблем не будет http://crapware.aidf.org/page/clickermann
-
Проверено на v4.13.014 условие не срабатывает.
-
Проверено на v4.12.014 условие не срабатывает.
Ага, именно это я и писал. На 4.12 ведёт себя адекватно, т.е. не срабатывает, а на 4.13 - срабатывает.
В общем, я вернулся к 4.12.
Лучшее - враг хорошему.
-
http://crapware.aidf.org/forum/index.php?topic=356.msg26603#msg26603
Вот тут почитай, вроде подробно расписано.
Как вариант, попробуй сравнивать хэш строк
Там далее есть еще варианты решения этой проблемы.
http://crapware.aidf.org/forum/index.php?topic=356.msg26605#msg26605
Вы немного промазали с сылками. Мне нужно было сюда http://crapware.aidf.org/forum/index.php?topic=2111.0
Забавно, что вы, ранее столкнувшись с проблемой, не смогли понять, что я имею ввиду.*) Ну да не суть.
Что получается, 4.13 была еще в 2017 году? Я начал баловаться с кликером в январе 2018, но последняя версия, которую я тогда смог скачать, была 4.12.
Видимо, по этой причине я пропустил "Обновленный A_KEYSTRING, только для CM v4.13".
-
Вы немного промазали с сылками. Мне нужно было сюда http://crapware.aidf.org/forum/index.php?topic=2111.0
да, для 4.12, там были проблемы с некоторыми символами, но с буквами вроде все норм было. а для версии 4.13 ... там еще в той что b3, начало 2017г., я даже хз будет ли он работать на релизной версии :D .
но это не важно, был вопрос по сравнению буквы Е с чем либо. и я сразу вспомнил тот разговор (ссылки выше). где Е с цифрами представленная строкой, в кликере превращалась в цифру. да, прямого сравнения строки с числом или строки со строкой (не переменной или элементом массива) в той теме небыло, тут возможен мой промах :P .
кстати вот версия 4.13 x32 , та что щяс на оффсайте. как видим, работает верно.
(https://i.imgur.com/aKqSa9K.png)
а вот мое начальное понимание твоей проблемы, но компа небыло проверить :-\, версия 4.12
(https://i.imgur.com/EbOHb10.png)
вобщем, и первое и второе у меня в данный момент работает правильно на последней версии 4.13 x32
-
Проверено на v4.12.014 условие не срабатывает.
Ага, именно это я и писал. На 4.12 ведёт себя адекватно, т.е. не срабатывает, а на 4.13 - срабатывает.
В общем, я вернулся к 4.12.
Лучшее - враг хорошему.
Циферкой ошибся ;D все с 4.13 нормально
if("e"="0")
print("Да")
else
print("Нет")
end_if
HALT
Лог:
19:02:10 Нет
-
Дабы не быть голословным, тоже скрин кину. Правда, тут не видно, что это 64-ёх разрядная версия кликера. Сейчас проверю на х32.
(https://i.imgur.com/lgMX2Fe.jpg)
-
И в х32 тоже не всё идеально. Может проблема на моей стороне.
(https://i.imgur.com/JFZUd1m.jpg)
-
насчет точки и нуля, соглашусь, всегда с ними были проблемы. возможно в кааких то бетах исправлялось, не помню.
для этого еще в том А_КЕЙСТРИНГЕ который для версии 4.12 есть вот такой кусочек проверки хэша этих символов.
IF($A_key = 46)
IF(STRMD5($A_l) ! "5058F1AF8388633F609CADB75A75DC9D")
$A_key = 48
END_IF
END_IF
с остальными символами проблем не было. хотя, мож еще с чемто и были неполадки, но эти символы нужны постолькупоскольку.
дабы исключить еще какието непонятки в дальнейшем, в А_КЕЙСТРИНГЕ версии 4.13 переделал полностью на сверение хеша символов.
почему так, это я не понимать.
print("e"="0") //false 0
print("e"=".") //false 0
print("."="0") //true 1
//и даже так
print(char(46) = char(48)) //true 1
halt
-
тему не читал @ сразу отвечал
e видимо интерпретируется мат.модулем как экспонента, точнее константа которая 2.71. надо допиливать напильником.
точка "." так же пытается быть числом (нулем, 0.0). и это уже из Си, где видимо подобное объявление прокатывало (учитывая количество диалектов хрен там что щас отследил бы и сам Страуструп). опять же надо смотреть
но это все растет из математического модуля. и только