Автокликер 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). и это уже из Си, где видимо подобное объявление прокатывало (учитывая количество диалектов хрен там что щас отследил бы и сам Страуструп). опять же надо смотреть
но это все растет из математического модуля. и только