Author Topic: Подскажите  (Read 5556 times)

0 Members and 1 Guest are viewing this topic.

Dgo

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Подскажите
« on: July 21, 2013, 07:26:09 PM »
как вставить содержание *.ТХТ файла в тело скрипта. Дело в том что у меня длинный скрипт состоящий из повторяющихся частей такого типа:
Code: (clickermann) [Select]
KEYPRESS(#m)
WAIT(1)
GETSCREEN // находим карту
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "m.bmp")
END_IF
$x=$_return1
$y=$_return2

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Подскажите
« Reply #1 on: July 21, 2013, 08:14:00 PM »
Даже глядя на этот кусочек чувствую что у тебя еще тот скрипт...
Почему
Code: (clickermann) [Select]
$x=$_return1
$y=$_return2
не в теле условия
Code: (clickermann) [Select]
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "m.bmp")
END_IF
???

если картинка не найдена то в переменные все равно запишутся координаты, потому что системные переменные не обнуляются даже при остановке сценария!

В общем хотелось бы увидеть весь скрипт.

Dgo

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Подскажите
« Reply #2 on: July 22, 2013, 04:19:55 PM »
Весь скрит очень длинный это бот для онлайн игры и непросто бот автокачя,  а бот для похода в простые данжи и выполнения ежедневных кв.
смысл таков: нужно открыть карту >> найти ее (т. к. она открывается в отдельном окне и может перемещаться) >> найти нипа на  карте >> подбежать к нему,  щелкнуть мышкой по нему >> найти окно диолога  >> выбрать кв >> добежать до входа в данж и войти >> найти и убить боса >> забрать подарки >> выйти из данжа и прибежать обратно к нипу >>сдать кв и с грать в лотерейку привсём при этом надо незабывать бафатся каждые 5 мин и пополнять ОЗ и ОМ орентируясь по соответствующим индикаторам и всё это надо выполнить n-ое кол-во раз, а потом перейти к ежедневным кв (которых немало) например доставка груза от одного торговца к другому груз находится на осле который постоянно отстает.
этот скрипт запускается на разных персах у которых скорость передвижения разные поэтому все действия начинаются с проверки местопложения персонажа по карте.
Как видно по описанию весь скрипт большой, но в нем много повторяющихся частей так вот мне нужен опиратор который работает наподобие подпрограммы:
Code: (clickermann) [Select]
GOSUB(sub_name)

SUB (sub_name)
  // body
END_SUB
, но в отличии от подпрограммы вставляет куски скрипта в сценарий из отдельных файлов

Dgo

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Подскажите
« Reply #3 on: July 22, 2013, 04:28:05 PM »
Даже глядя на этот кусочек чувствую что у тебя еще тот скрипт...
Почему
Code: (clickermann) [Select]
$x=$_return1
$y=$_return2
не в теле условия
Code: (clickermann) [Select]
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "m.bmp")
END_IF
???

если картинка не найдена то в переменные все равно запишутся координаты, потому что системные переменные не обнуляются даже при остановке сценария!

В общем хотелось бы увидеть весь скрипт.

не в теле условия потому что как мне показалось если их поставить в условие переменные $x и $y сохроняются только в нутри условия

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Подскажите
« Reply #4 on: July 22, 2013, 05:40:55 PM »
не в теле условия потому что как мне показалось если их поставить в условие переменные $x и $y сохроняются только в нутри условия
Тебе показалось.

Есть include. Только непонятно, зачем тебе это. Чем подпрограммы не устраивают?
« Last Edit: July 22, 2013, 05:44:42 PM by Vint »


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Подскажите
« Reply #5 on: July 22, 2013, 09:43:21 PM »
Действительно суб программа здесь к месту.

Делается так

Code: (clickermann) [Select]
$key = 77 // M
$imag = "m.bmp"
GOSUB(действие1)

$key = 78 // N
$imag = "n.bmp"
GOSUB(действие1)
// и тд



SUB (действие1)
   KEYPRESS($key)
   WAIT(1)
   GETSCREEN // находим карту
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, $imag)
      $x=$_return1
      $y=$_return2
   END_IF
END_SUB