Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Без описания
grBIN
Отправлено: 12 Марта, 2018 - 23:31:44
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 41
Дата рег-ции: Нояб. 2017  
Откуда: Псков
Репутация: 2




Как я понял, код из #include перед компиляцией скрипта тупо копируется в тело основного скрипта.

Если в #include есть goto то выйдет ошибка "Отсутствует метка GOTO" пример:
Код test.txt
CODE:
messagebox("Зашли в инклуд");
goto a;

основной код:
CODE:
a: messagebox("Стартанули");
sleep(500);
#include "C:\test.txt"

Скрин
 
 Top
Kibor
Отправлено: 13 Марта, 2018 - 00:24:30
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 grBIN пишет:
Как я понял, код из #include перед компиляцией скрипта тупо копируется в тело основного скрипта.

Так эта директива везде работает.

По поводу остального та же само как и везде. Цитата из справки Директива #include. Реализована возможность разбить скрипт по разным файлам.
синтаксис
 Цитата:
#include "C:\Program Files (x86)\Kibor\liba.txt"


Вместо этой строки при обработке скрипта вставится содержимое файла C:\Program Files (x86)\Kibor\liba.txt
При этом в основном скрипте станут доступные глобальные переменные (объявленные не в функциях..) этого файла и функции.
Поэтому надо следить что бы глобальные переменные и функции не имели одинаковых названий в разных подключаемых файлах.
На метки переходов goto это не распространяется.
 
 Top
grBIN
Отправлено: 13 Марта, 2018 - 03:17:46
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 41
Дата рег-ции: Нояб. 2017  
Откуда: Псков
Репутация: 2




 Kibor пишет:
На метки переходов goto это не распространяется.

Сколько раз штудировал справку ни разу не обращал на это внимание T_T

Не знаю где это еще может пригодиться, но например у меня таймер, диалоги и некоторый функционал скрипта в отдельных файлах.

1 раз вставил в тело скрипта с помощью #include и потом не нужно его там каждый раз искать, когда решишь что то изменить, а просто открываешь в соседней вкладке-___-
Раскоментил и на месте проверил правильно ли все работает, не запуская весь скрипт.

P.S. Проблему решил с помощью дополнительной переменной.
Допустим таймер в закинут в #include, и нужно при нажатии на кнопку использовать goto start_script;

timer.txt
CODE:
CREATE_TIMER(0, 200)
{

if(flag_button0[0]>0) // флаг нужной кнопки
{
flag_button0[0]=0;
hidedialog(0); // закрываем диалог если нужно
test=1; //вместо goto меняем значение переменной
}

}


тело:
CODE:
#include "C:\dialog_0.txt"
#include "C:\timer.txt"
int test=0; // доп. переменная

enabletimer(0);
loop()
{
if(test>0){test=0; goto start_script;}
sleep(10);
}


messagebox("этого мы никогда не увидим");



start_script: messagebox("Запуск");

(Отредактировано автором: 13 Марта, 2018 - 03:25:42)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by