Author Topic: _Blood and soul_  (Read 15778 times)

0 Members and 2 Guests are viewing this topic.

DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
_Blood and soul_
« on: March 22, 2013, 10:11:26 AM »
ДОбрый день.Хотелось создать  тему именно на эту игру так как с неё и начал играть в онлайн игры да и пользоваться Кликерменом (Clickermann), но как я не крутил рунет так вообщем и не нашел нармальных примеров по BS-ке связанные с Clickermann.
« Last Edit: March 22, 2013, 10:30:09 AM by DRYIDid »

DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: _Blood and soul_
« Reply #1 on: March 22, 2013, 10:28:43 AM »
Например мне надо  10 картинок открыть последовательно или от большего к   меньшему в цикле.
Как  сделать чтоб  в
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
добавлялись разные картинки из папки в ЦИКЛЕ  например 10 раз и не повторялось с предыдущей картинкой. Никак не додумал .мозг разрываеться))
Конечно я знаю как это сделать без цикла  10 раз писать
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile1.bmp")
END_IF
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile2.bmp")
END_IF
........................................................................
 но это грамадина получится.Есть более рациональный метод?

DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: _Blood and soul_
« Reply #2 on: March 22, 2013, 10:52:00 AM »
Ещё один наболевший вопрос).Как я понел 
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
ищет первую попавшуюся картинку и устанавливает коодинату в первый пиксель этой картики.Вопрос как определить конец (х,у)  этой картинки?
Кажись я понел как это сделать посчитать самостоятельно  растояние между  точками :D ;D.
К примеру руда .В каждой стопке руды 100 шт.Этих стопок может быть больше 1.
Как найти последнюю стопку и если возможно посчитать общее количество стопок?

DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: _Blood and soul_
« Reply #3 on: March 22, 2013, 11:03:02 AM »
Всё про тот  ;Dже  IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
Если я сделал картинку под экран 1024х768,
то на другом компе ( ) при другом разрешении  экана  используеться
эта  же картинка  сделанная при разрешении 1024х768.
какие будут последствия?
Или придёться делать картинки для каждого разрешения или
всё будет и так сидеть  работать и определять  картинку сделанную  один раз
 и использовать при разных разрешениях или  будут различия и не определит координаты? ???
« Last Edit: March 22, 2013, 11:11:16 AM by DRYIDid »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: _Blood and soul_
« Reply #4 on: March 22, 2013, 11:32:12 AM »
Всё про тот  ;Dже  IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
Если я сделал картинку под экран 1024х768,
то на другом компе ( ) при другом разрешении  экана  используеться
эта  же картинка  сделанная при разрешении 1024х768.
какие будут последствия?
Или придёться делать картинки для каждого разрешения или
всё будет и так сидеть  работать и определять  картинку сделанную  один раз
 и использовать при разных разрешениях или  будут различия и не определит координаты? ???
Картинка будет находится, ведь она определённого размера в пикселах. А пиксел он и в Африке пиксел. Количество пикселов на экране и их размер не повлияют.
От другого разрешения может поменяться положение картинки.

Например мне надо  10 картинок открыть последовательно или от большего к   меньшему в цикле.
Как  сделать чтоб  в
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile.bmp")
добавлялись разные картинки из папки в ЦИКЛЕ  например 10 раз и не повторялось с предыдущей картинкой. Никак не додумал .мозг разрываеться))
Конечно я знаю как это сделать без цикла  10 раз писать
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile1.bmp")
END_IF
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "somefile2.bmp")
END_IF
........................................................................
 но это грамадина получится.Есть более рациональный метод?
только подставив вместо "somefile1.bmp" переменную. Значение переменной текстовая строка формируемая из частей. Если имена создаёшь сам то примерно так:
Code: (clickermann) [Select]
$i=0
FOR ($i, $i<10)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("somefile",$i,".bmp"))
     // обработка
   END_IF
END_CYC



DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: _Blood and soul_
« Reply #5 on: March 22, 2013, 12:10:01 PM »
Quote
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("somefile",$i,".bmp"))

"somefile" - что лучше в файл текстовый с  названиями картинок  прописать
или просто прописать переменные в коде и не  париться?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: _Blood and soul_
« Reply #6 on: March 22, 2013, 12:22:24 PM »
Если имена уникальные, можно в текстовый прописать. Но тогда при добавлении нужно следить.
Второй вариант это переименовать файлы, задать им одно имя+числовой идинтификатор. Так можно на лету в скрипте имена перебирать, как указано в примере.
По мне второй проще, не нужно возиться с текстовиком. Хотя использую оба варианта.


DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: _Blood and soul_
« Reply #7 on: March 22, 2013, 12:39:32 PM »
Да   второй пример попроще.И всё на полочках как положено.
Единственно это не запутаться какая картинка  somefile1,
а какая  somefile10.Но в принципе я не лентяй не запутаюсь
и каментариями поясню.Спасибо. ;D

DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: _Blood and soul_
« Reply #8 on: March 23, 2013, 08:42:37 PM »
Как преостановить этот цикл?
например  Вкладка1.bmp ищем  руду в заданном диапазоне не находим идём дальше
Вкладка2.bmp нашли в заданном диапазоне Руду и остановили цикл .
А то у меня получаеться он нашел руду  и пошел дальше по вкладкам)0гггг
до конца вкладка5.bmp
Пытался цикл в условие запихнуть .
Если нет руды для создания миф железа то прыгаем по вкладкам
и ищем руду,но чтот не врублюсь как  будет проверяться в   цикле?
т.е. один раз проверился,а во время цикла игнорируеться.
Знаю про Брейк ,  но  он требует  моего согласия  продолжить или нет.
ниже  в  коде, тот случай который я здесь расписал))
« Last Edit: March 23, 2013, 09:51:50 PM by DRYIDid »

DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: _Blood and soul_
« Reply #9 on: March 23, 2013, 09:17:19 PM »

getscreen
GOSUB(Записываем рабочее место Инвенторя)
GOSUB(Читаем рабочее место Инвенторя)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Нет руды для стали.bmp")
 $maxx=5
 $i=0
FOR ($i, $i<$maxx)
//  I...V  Вкладка     инвентаря
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("Вкладка",$i,".bmp"))
MOVE($_return1, $_return2) //наводим на верхний координату вкладки инвенторя
waitms(500)
MOVE($_return1+45, $_return2+17)/наводим на нижнию координату вкладки инвенторя
waitms(500)
dbLCLICK($_return1+23, $_return2+6)// нажимаем  в середину вкладки инвенторя
waitms(500)
GOSUB (Найти кристалы)
GOsUB (Найти Руду)
//если нашли кристалы в какой-то вкладке то остановить цикл
END_IF
END_CYC
END_IF

DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: _Blood and soul_
« Reply #10 on: March 23, 2013, 09:40:17 PM »
Quote
//если нашли кристалы в какой-то вкладке то остановить цикл
Имеено в этом месте я и запутался как выйти из цикла.
Вот конкретная картинка для наглядности .
Руда по 100 шт- в двух последних строчках.
Кристалы 1430 в третьей строке.
Сверху вкладки римскими цифрами (I,II,III,IV,V) которые мне над нажимать .
Спасибо заранее.
« Last Edit: March 23, 2013, 10:14:13 PM by DRYIDid »

yaSanya

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Re: _Blood and soul_
« Reply #11 on: March 23, 2013, 10:44:27 PM »
Quote
//если нашли кристалы в какой-то вкладке то остановить цикл
Имеено в этом месте я и запутался как выйти из цикла.
Вот конкретная картинка для наглядности .
Руда по 100 шт- в двух последних строчках.
Кристалы 1430 в третьей строке.
Сверху вкладки римскими цифрами (I,II,III,IV,V) которые мне над нажимать .
Спасибо заранее.
  задай флаг, если что-то нашёл, то
$flag=1 //это в сабах
 выйти из цикла:
 //если нашли кристалы в какой-то вкладке то остановить цикл
IF ($flag=1)
   $i=$maxx
END_IF

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: _Blood and soul_
« Reply #12 on: March 24, 2013, 02:58:26 PM »

getscreen
GOSUB(Записываем рабочее место Инвенторя)
GOSUB(Читаем рабочее место Инвенторя)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Нет руды для стали.bmp")
 $maxx=5
 $i=0
FOR ($i, $i<$maxx)
//  I...V  Вкладка     инвентаря
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("Вкладка",$i,".bmp"))
MOVE($_return1, $_return2) //наводим на верхний координату вкладки инвенторя
waitms(500)
MOVE($_return1+45, $_return2+17)/наводим на нижнию координату вкладки инвенторя
waitms(500)
dbLCLICK($_return1+23, $_return2+6)// нажимаем  в середину вкладки инвенторя
waitms(500)
GOSUB (Найти кристалы)
GOsUB (Найти Руду)
//если нашли кристалы в какой-то вкладке то остановить цикл
END_IF
END_CYC
END_IF

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

getscreen
GOSUB(Записываем рабочее место Инвенторя)
GOSUB(Читаем рабочее место Инвенторя)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Нет руды для стали.bmp")
 $maxx=5
 $i=0
FOR ($i, $i<$maxx)
//  I...V  Вкладка     инвентаря
IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("Вкладка",$i,".bmp"))
MOVE($_return1, $_return2) //наводим на верхний координату вкладки инвенторя
waitms(500)
MOVE($_return1+45, $_return2+17)/наводим на нижнию координату вкладки инвенторя
waitms(500)
dbLCLICK($_return1+23, $_return2+6)// нажимаем  в середину вкладки инвенторя
waitms(500)
GOSUB (Найти кристалы)
GOsUB (Найти Руду)
//если нашли кристалы в какой-то вкладке то остановить цикл
$i=$maxx
 END_IF
END_CYC
END_IF


DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: _Blood and soul_
« Reply #13 on: March 24, 2013, 08:00:27 PM »
Дело в том что мне надо остановить когда он найдёт  Кристалы,
а затем чтоб поновой начал искать с первой вкладки,
но уже другое(руду) и тоже чтоб остановился найдя необходимое
именно в таком порядке,потому что руда всегда впереди будет,
а кристалы позади и возможно что даже в разных вкладках.
Пробывал  всё в одном цикле прописать получилось что находит
руду и останавливаеться))),а дело до кристалов не доходит и наоборот).
Подумал что наверно придёться делать
 
1.цикл - поиска кристалов по вкладкам в сабы и
2.цикл -поиска руды  по вкладкам  в сабы.
-------------------------------------------------------------------------
« Last Edit: March 24, 2013, 08:09:42 PM by DRYIDid »

DRYIDid

  • Зашел в гости
  • *
  • Posts: 17
    • View Profile
Re: _Blood and soul_
« Reply #14 on: March 27, 2013, 12:40:36 PM »
 :)Помучившись с эксперементами  в итоге сделал то что хотел!
Вот рабочий Бот по переработке  руды в сталь 1 уровня))оцените и если возможно упросить то помогите осуществить)Спасибо зарание.