Author Topic: Можно ли в сценарий вставить вызов окна с вводом чисел, чтоб кликер понимал их?  (Read 7721 times)

0 Members and 1 Guest are viewing this topic.

Olegreus

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Шикарная идея!!!
Меня смутило что в справке написано что - inputbox строковая функция. Думал она будет ошибку выдавать воспринимая введенную цифру как текст. Этим думаю можно обойти. Спасибо! Попробую завтра и отпишусь!

Olegreus

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
while(ISKEYDOWN (48)!1)
   if(ISKEYDOWN ($keys)=1)
      SWITCH($keys)
      CASE(49)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 1-ого слота
      CASE(50)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 2-ого слота
      CASE(51)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 3-ого слота
      CASE(52)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 4-ого слота
      CASE(53)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 5-ого слота
      CASE(54)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 6-ого слота
      CASE(55)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 7-ого слота
      CASE(56)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 8-ого слота
      CASE(57)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 9-ого слота
      DEFAULT
         WAITMS(10)
      END_SWITCH
   END_IF
END_CYC

Такой скрипт подойдет чтоб без ввода в окно обойтись?
И будет ли основной скрипт бота принимать в себя значения присвоенных координат отсюда если запустить этот кусочек дочерним потоком?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Функция ISKEYDOWN только и всего делает что проверяет зажата указанная клавиша или нет. У тебя там какая то не рабочая ерунда.

И будет ли основной скрипт бота принимать в себя значения присвоенных координат отсюда если запустить этот кусочек дочерним потоком?
Переменные в потоках пока не изолированы. Поэтому конечно будет.

Вот верный рабочий скрипт

Code: (clickermann) [Select]
THREAD(keys, 1)
   IF(iskeydown(#1)=1)
      //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 1-ого слота
   ELSE
      IF(iskeydown(#2)=1)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 2-ого слота
      ELSE
         IF(iskeydown(#3)=1)
            //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 3-ого слота
         ELSE
            IF(iskeydown(#4)=1)
               //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 4-ого слота
            ELSE
               IF(iskeydown(#5)=1)
                  //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 5-ого слота
               ELSE
                  IF(iskeydown(#6)=1)
                     //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 6-ого слота
                  ELSE
                     IF(iskeydown(#7)=1)
                        //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 7-ого слота
                     ELSE
                        IF(iskeydown(#8)=1)
                           //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 8-ого слота
                        ELSE
                           IF(iskeydown(#9)=1)
                              //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 9-ого слота
                           ELSE
                              WAITMS(20)
                           END_IF
                        END_IF
                     END_IF
                  END_IF
               END_IF
            END_IF
         END_IF
      END_IF
   END_IF
END_THREAD

// здесь основной скрипт


Loorik

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
в кликере все переменные глобальные и доступны в любом месте скрипта - ответ "принимать в себя значения присвоенных координат" - будет.
Oraven написал все верно (один из вариантов)
если хочешь понять почему твой не работает то:
while(ISKEYDOWN (48)!1) - обязательным условием для завершения цикла является нажатие цифры "0"
if(ISKEYDOWN ($keys)=1) - $keys если ей не присвоить значение оно будет =0
SWITCH($keys) - $keys=0
      CASE(49)  - $keys не равно 49 следовательно условие не верно и выполняться не будет
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 1-ого слота
      CASE(50) - $keys не равно 50 следовательно условие не верно и выполняться не будет
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 2-ого слота
      CASE(51) - $keys не равно 51 следовательно условие не верно и выполняться не будет
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 3-ого слота
      CASE(52) - $keys не равно 52 следовательно условие не верно и выполняться не будет
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 4-ого слота
      CASE(53) - $keys не равно 53 следовательно условие не верно и выполняться не будет
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 5-ого слота
      CASE(54) - $keys не равно 54 следовательно условие не верно и выполняться не будет
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 6-ого слота
      CASE(55) - $keys не равно 55 следовательно условие не верно и выполняться не будет
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 7-ого слота
      CASE(56) - $keys не равно 56 следовательно условие не верно и выполняться не будет
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 8-ого слота
      CASE(57) - $keys не равно 57 следовательно условие не верно и выполняться не будет
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 9-ого слота
      DEFAULT
         WAITMS(10)
      END_SWITCH
   END_IF
END_CYC
в итоге этот скрипт можно только остановить нажав - "0"

чего не хватает:
1) $keys должна принимать значения от 49 по 57, удобно использовать последовательное увеличение на 1 (inc($keys)) эквивалентна записи $keys+1. Т.к значения от 0 до 47 нам не нужны  $keys=48.
2) после того как значение переменной станет $keys= 58 нужно его вернуть $keys=49, иначе оно будет дальше увеличиваться.
итог:
Code: (clickermann) [Select]
$keys=48
while(ISKEYDOWN (48)!1)
   if($keys=58)
      $keys=49
   end_if
   if(ISKEYDOWN ($keys)=1)
      SWITCH($keys)
      CASE(49)
         print(1)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 1-ого слота
      CASE(50)
         print(2)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 2-ого слота
      CASE(51)
         print(3)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 3-ого слота
      CASE(52)
         print(4)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 4-ого слота
      CASE(53)
         print(5)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 5-ого слота
      CASE(54)
         print(6)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 6-ого слота
      CASE(55)
         print(7)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 7-ого слота
      CASE(56)
         print(8)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 8-ого слота
      CASE(57)
         print(9)
         //прописываем значения координат x1=,x2=,x3=,x4=,y1=,y2=,y3=,y4= для кача пета из 9-ого слота
      DEFAULT
         WAITMS(10)
      END_SWITCH
   else
      inc($keys)
   END_IF
END_CYC
halt



Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Loorik Зачем такие навороты? Твой скрипт сложнее для понимания, особенно нуба. Серия условий с ISKEYDOWN делает тоже самое, но выглядит гораздо проще. Эта часть кода может бесконечно крутиться в отдельном потоке и в любой момент можно нажать соответствующую цифру чтобы изменить координаты.

Loorik

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Loorik Зачем такие навороты?
Oraven Ты абсолютно прав.
Quote from: Loorik
3) после ввода цифры (1...9) или через switch или через IF() изменить переменные координат на нужные - соответствующие введенной цифре
это просто пример на switch

Olegreus

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Loorik Зачем такие навороты?
Oraven Ты абсолютно прав.
Quote from: Loorik
3) после ввода цифры (1...9) или через switch или через IF() изменить переменные координат на нужные - соответствующие введенной цифре
это просто пример на switch
Все очень понятно в обоих примерах. Спасибо за помощь. Осталось только научить бота доходить по карте самостоятельно до заданного координатами моба и бот готов. К сожалению в этом мои познания почти нулевые. Есть поле 23х12 клеток, каждая по 37х37 пикселей. как можно научить бота идти к мобу кратчайшим путем обходя елки и прочие препятствия? ( карта полностью статична, персонаж имеет 4 отображения:вид спереди,сзади,слева,справа. Мобы анимированы, но стоят в своих клетках и не двигаются по карте)