Автокликер Clickermann :: Форум
Основной раздел => Ошибки => Архив => Topic started by: zromaz on March 02, 2014, 12:47:20 AM
-
LOGCLEAR
//SWITCH для ресурсов
$LVLRES=inputbox("какие ресурсы собирать?",60,999)
print($LVLRES)
switch($LVLRES)
case(0)
print("0")
$COLORRES1=0
$COLORRES2=0
$COLORRES3=0
$COLORRES4=0
$COLORRES5=0
LOGWRITE($COLORRES1,$COLORRES2,$COLORRES3,$COLORRES4,$COLORRES5)
case(30)
print("30")
$COLORRES1=0
$COLORRES2=0
$COLORRES3=0
$COLORRES4=0
$COLORRES5=0
LOGWRITE($COLORRES1,$COLORRES2,$COLORRES3,$COLORRES4,$COLORRES5)
case(60)
print("60")
$COLORRES1=4480676
$COLORRES2=6739939
$COLORRES3=5638832
$COLORRES4=1383280
$COLORRES5=1507450
$COLORRES6=8221204
$COLORRES7=6721792
LOGWRITE($COLORRES1,$COLORRES2,$COLORRES3,$COLORRES4,$COLORRES5)
GOTO(BOOT)
case(90)
print("90")
$COLORRES1=0
$COLORRES2=0
$COLORRES3=0
$COLORRES4=0
$COLORRES5=0
LOGWRITE($COLORRES1,$COLORRES2,$COLORRES3,$COLORRES4,$COLORRES5)
case(120)
print("120")
$COLORRES1=0
$COLORRES2=0
$COLORRES3=0
$COLORRES4=0
$COLORRES5=0
LOGWRITE($COLORRES1,$COLORRES2,$COLORRES3,$COLORRES4,$COLORRES5)
default
PRINT("НЕ ВВЕДЕНО ЗНАЧЕНИЕ")
$LVLRES=90
end_switch
BOOT:
Еще одна проблема вылезла со свитчом, когда вставляю этот кусок кода отдельно, в другом файле, то все нормально переход происходит именно к тому что написал, 30 к 30, 60 к 60, но как только вставляю в код бота, все идет на перекосяк: ввожу 60, он сделает все операции с 0 потом 30 потом 60 и т.д. Именно поэтому я поставил там goto, чтобы хоть на этом вышел.Но почему он так некорректно работает внутри другого кода, непонятно.
-
У тебя всего 1 GETSCREEN в скрипте. Конечно если анализ идет друг за другом без задержек то можно и не писать GETSCREEN но у тебя например
for($var, $var < 5, 1)
wait(13,4)
IF_PIXEL_IN(405,203,428,221, 1386092) // что тут через 13 сек анализируется??? Снимок сделанный в начале скрипта?!!!
#include "WARINBOT.cms"
END_IF
end_cyc
Про твою ошибку, нужно заключить INPUTBOX в INT чтобы возвращалось именно число а не строка.
$LVLRES=INT(inputbox("какие ресурсы собирать?",60,999))
-
Насчет getscreen'ов-Весь бот работал без них всегда и все хорошо, только менял любую цифру в первом if_pixel_in'е в коде.
Но сейчас другая байда, не запускается бот когда открыто окно редактора, как только его закрою то все работает.Добавил int но ничего не изменилось, как проходит через все до нужного в свитче, так и осталось.Извините, может и вопросы тупы, но как только начал добавлять что-то новое типа свитча, так все перестало работать.
-
У тебя там кот в мешке в виде инклуда. обычно все что в инклуде заключают в подпрограмму а сам инклуд помещают в начале. В нужном месте вызывают эту подпрограмму. Если не работает то есть ошибка.
Не важно что все работает с одним гетскрином, вероятно скрипт проходит кучу лишних циклов пока не обновится снимок.
Версия у тебя 4.9.005 ?
-
Да, последняя, всегда беру с оф сайта. Проставил getscreen везде сейчас. Ошибка со свитчом остается. А вот инклуд я думал эта функция берет код из файла и вставляет его в этот файл, просто сокращая место. Вообще как ни странно в таком виде все работает, бой по пикселю нашелся и код из инклуда работает.
-
ну и где этот инклуд то?
-
вот)
-
Наверное могу поставить тебе диагноз: острое заболевание GOTO. Ты там прыгаешь во всех немыслимых направлениях. Инклуд находится в цикле FOR, в этом инклуде есть прыжки за цикл, а это запрещено. Как оно у тебя вообще может работать с единственным гетскрином?? В записи в лог нужно ставить кавычки. LOGWRITE("НАЧАЛСЯ_БОЙ"). Сам по себе скрипт написан почти синтаксически верно (прыжок за цикл), но дикое количество GOTO не позволяет увидеть хоть какую то логику.
-
Понимаю, знаю свой косяк,но без переходов я не вижу возможности реализации.