Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Пытливый

Pages: [1]
1
Странная штука. Если стартовать кликер через сохраненный скрипт, то скрипт практически не работает. Не помогает и повторная загрузка скрипта. Только запуск кликера с нуля помогает все вернуть в штатный режим. А вот интерфейс кликера при таком запуске меня порадовал, он на мой взгляд функциональнее.

2
Странная ситуация, не пойму почему код работает правильно. :)
В общем не получилось с рекурсией, я попробовал сделать это иным способом:
Code: [Select]
ArrPush($AActionName, "Город")
ArrPush($AActionName, "Таверна")
ArrPush($AActionName, 100)
ArrPush($AActionName, 100)
ArrPush($AActionName, "Таверна")
ArrPush($AActionName, "Окорок")
ArrPush($AActionName, 10)
ArrPush($AActionName, 10)

sub(Activate, $ActionName)
EnterToSubActivate:
   print($ActionName)
   $ActionIndex = 0
   $ActionRecognized = 1
   while (($ActionRecognized = 1) & ($ActionIndex < ArrSize($AActionName)/4))
      if ($AActionName[$ActionIndex*4+1] = $ActionName)
         $ActionRecognized = 0
         
         ArrPush($ActivateVar, $ActionName)
         ArrPush($ActivateVar, $ActionIndex)
         ArrPush($ActivateVar, $ActionRecognized)
         $ActionName = $AActionName[$ActionIndex*4]
         Goto(EnterToSubActivate)
ExitFromSubActivate:         
         $ActionRecognized = ArrPop($ActivateVar)
         $ActionIndex = ArrPop($ActivateVar)
         $ActionName = ArrPop($ActivateVar)
         
         Move($AActionName[$ActionIndex*4+2], $AActionName[$ActionIndex*4+3])
         LClick(-1, -1)
      else
         Inc($ActionIndex)
      end_if
   end_cyc
   Goto(ExitFromSubActivate)
end_sub

print("Start")
Activate("Окорок")
print("Finish")
Я не пойму, почему код у меня завершается? 
Инструкция Goto(ExitFromSubActivate) должна в вечный цикл загонять код, но нет, все завершается вполне пристойно. ???
По ошибке внутренней что-ли?

3
Общие вопросы / Рекурсия возможна?
« on: October 07, 2017, 09:26:44 PM »
Не работает такой код. Вроде и стек имитирую, а вот не хочет работать :( Ошибка при вызове функции Pop
Code: [Select]
sub(Recursion, $Var)
 print($Var)
 if ($Var > 0)
ArrPush($AVar, $Var)
Recursion($Var-1)
$Var = ArrPop($AVar)
 end_if
end_sub

Recursion(10)

4
Собственно в этом проблема, не смог найти эту опцию в конфигурации. По идее она должна быть в config.ini, но ничего похожего там не нашел.

5
Общие вопросы / Метки в 4.12 работают?
« on: September 16, 2017, 12:20:03 PM »
Code: [Select]
print("Start")
goto(EndFor)
for($n=0, $n<3)
  print($n)
if ($n=1)
goto(EndFor)
//$n=3
end_if
end_cyc
:EndFor
print("Finish")
Наблюдается полный игнор goto
Возможно конечно что я как-то неправильно с метками работаю. Тогда где я косячу?

6
Версия 4.12.001
Собственно вот такой код:
Code: [Select]
sub (SubTest1, $x, $y)
 $x = 1
 $y = 1
end_sub

sub (SubTest2, $x1, $y1)
 $x1 = 1
 $y1 = 1
end_sub

LogClear
$x = 5
$y = 5
print($x, " ", $y) // Результат 0 0
SubTest1($x, $y)
print($x, " ", $y) // Результат 5 5
$x = 5
$y = 5
SubTest2($x, $y)
print($x, " ", $y)
Как видно, совпадение имени внешней переменной с именем параметра подпрограммы приводит к обнулению внешней переменной, чего не должно быть. А вот если бы она не обнулялась, а сохраняла результат вычисления в подпрограмме это была бы очень полезная фича с передачей параметра по ссылке.

7
Общие вопросы / Что не так в коде?
« on: September 10, 2017, 10:27:27 PM »
Code: [Select]
ArrPush($AItem, "1")
ArrPush($AItem, "2")
ArrPush($AItem, "3")

LogClear
GetScreen
for ($n=0, $n<3)
   if_picture_in(452, 317, 1451, 986, StrConcat("\Pictures\",$AItem[$n],".bmp"))
      ArrPush($AItems, $AItem[$n])
      ArrPush($AItems, $_return1)
      ArrPush($AItems, $_return2)
      print($AItems[$n*3+0]," ",$AItems[$n*3+1]," ",$AItems[$n*3+2])
   end_if
end_cyc   
Пока писал это код, брал размеры для if_picture_in() всего экрана, что подтормаживало, но работало нормально.
Задал меньше координаты и стала вываливаться ошибка интерпретации на print(...)
В чем засада?

8
Например хочу сделать примерно так:
Code: [Select]
fun(GetColorXY, $X, $Y)
 GetScreen()
 $result = Pxl($X, $Y)
end_fun
...
if (GetColorXY(1,1) = 0)
 print("Темно")
else
 print("Светло")
end_if

Pages: [1]