Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 04.06.2019, 00:52   #76
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Обновление инструмента обучения базы.
Добавлена галка позволяющая пропускать все корректно распознанные символы.
Значительно повысилось удобство обучения базы.

Улучшилось визуальное восприятие корректности распознавания символов при обучение.

Как правильно использовать эту функцию показано на видео

[Ссылки могут видеть только зарегистрированные пользователи. ]

[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 05.08.2019, 13:34   #77
 Разведчик
Аватар для Bocharas
 
Bocharas никому не известный тип
Регистрация: 10.10.2016
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Крутяс кто уже опробовал?
  Ответить с цитированием
Старый 09.06.2020, 15:18   #78
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Много разных обновлений было.

Одно из них, это парсер JSON формата:

Код:
/*
{
"clientKey":"dce6bcbb1a728ea8d563de6d169a2057",
"task":
{
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!",
"phrase":false,
"case":false,
"numeric":0,
"math":false,
"minLength":0,
"maxLength":0
}
}
*/

string Json="{^"clientKey^":^"" + "dce6bcbb1a728ea8d563de6d169a2057^"," +
"^"task^":" +
"{^"type^":^"ImageToTextTask^"," +
"^"body^":^"BASE64_BODY_HERE!^"," +
"^"phrase^":false," +
"^"case^":false," +
"^"numeric^":0," +
"^"math^":false," +
"^"minLength^":0," +
"^"maxLength^":0}}";

messagebox (Json);

parserjson(Rez_Json, Json);//Создаем объект JSON с символьным именем Rez_Json и Парсим запись JSON с Json

messagebox (Rez_Json.task.case);//Выводим значение объекта JSON

Узнать все name и value массива stats

Файл C:\json.txt
Код:
{
"playerstats": {
"steamID": "76561198050187807",
"gameName": "ValveTestApp260",
"stats": [
{
"name": "total_kills",
"value": 35179
},
{
"name": "total_deaths",
"value": 30241
},
{
"name": "total_time_played",
"value": 2444377
}
]
}
}
Скрипт
Код:
string исходник="";
string Tt;

if (fopen ("C:\json.txt", "r")!=0)//открываем файл для чтения "r"
{
while (freadline(Tt))исходник=исходник+Tt;
fclose();
}



parserjson(Rez_Json, исходник);

int n=0;
while (Rez_Json.playerstats.stats[n].name!="ERROR_SEARCH_JSON")
{
messagebox (Rez_Json.playerstats.stats[n].name+" = "+Rez_Json.playerstats.stats[n].value);
n++;
}
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 08.07.2020, 03:55   #79
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

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

В случае нахождения рабочего прокси выдает страницу [Ссылки могут видеть только зарегистрированные пользователи. ] на которую скрипт заходит через это прокси и выдает IP и порт для дальнейшего использования бесплатного прокси по назначению.

Код:
int pos_size_edit0[1][4];
string text_edit0[1];

pos_size_edit0[0][0]=10; pos_size_edit0[0][1]=9; pos_size_edit0[0][2]=221; pos_size_edit0[0][3]=20;
text_edit0[0]="Парсинг прокси...";

createdialog(0, EDIT, #pos_size_edit0[0][0], #text_edit0[0]);
showdialog(0, "Поиск прокси", 200, 200, 250, 70, 1, 1);
//////////



find_proxi();



function find_proxi()
{
int pade=1;
string T;
S:;
if (sendgetweb(#T, "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0", "GET", "http:/^/foxtools.ru", "Proxy?page="+format(pade)))
{
text_edit0[0]="Парсинг прокси...";
//messagebox ("Proxy?page="+format(pade));
/*
if (fopen ("c:\5.txt", "w")!=0)
{//если открылся
fwrite(T);
fclose();//закрываем файл
}
start("c:\5.txt");
*/

string P[100];
string R="(?<=input type=^"checkbox^" class=^"ch^" value=^")[\d]+(\.)[\d]+(\.)[\d]+(\.)[\d]+(:)[\d]+(?=^" onclick=^"SelectProxy\(this\)^")";
int k=regexsearch(100, #P[0], T, R);
if (k==0)
{
messagebox ("Прокси нет");
return;
}
for (int n=0; n<k; n++)
{
//messagebox (P[n]);
text_edit0[0]=P[n];

if (sendgetweb(P[n], #T, "", "GET", "https:/^/kibor-bot.com", "forum"))
{
if (T!="")
{
//messagebox (IP[n]+":"+PORT[n]);
messagebox (P[n]+" - "+T);
if (fopen ("c:\5.txt", "w")!=0)
{//если открылся
fwrite("Рабочий прокси "+P[n]+"^r^n"+T);
fclose();//закрываем файл
}
start("c:\5.txt");
return;
}
}

}
}
pade++;
goto S;
}
  Ответить с цитированием
Старый 31.07.2020, 01:21   #80
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Выполнение скриптов Python в Кибор

[Ссылки могут видеть только зарегистрированные пользователи. ]

Необходим интерпретатор Питона. Его можно установить самому или скачать нужные файлы [Ссылки могут видеть только зарегистрированные пользователи. ] В архиве 2 фала. python.exe и python38.dll и папки DLLs и Lib. Их надо поместить в папку с программой Кибор.

Этот скрипт показывает выполнение отдельных команд с выводом результата. Так же само можно выполнять полный скрипт с файла, без промежуточного вывода.

Код:
#define STARTF_USESHOWWINDOW 1
#define STARTF_USESTDHANDLES 256
#define SW_HIDE 0
#define INFINITE -1
external(INT, "CreatePipe", "CreatePipe", "kernel32.dll");
external(VOID, "ZeroMemory", "RtlZeroMemory", "kernel32.dll");
external(VOID, "GetStartupInfo", "GetStartupInfoA", "kernel32.dll");
external(INT, "CreateProcess", "CreateProcessA", "kernel32.dll");
external(INT, "ReadFile", "ReadFile", "kernel32.dll");
external(INT, "WriteFile", "WriteFile", "kernel32.dll");
external(INT, "TerminateProcess", "TerminateProcess", "kernel32.dll");
external(INT, "WaitForSingleObject", "WaitForSingleObject", "kernel32.dll");
external(INT, "CloseHandle", "CloseHandle", "kernel32.dll");

string path_python=pathfolder()+"python.exe -i";//Можно писать полный путь к интерпретатору Python если он не в папке с Кибор
int hReadPipe1, hWritePipe1, hReadPipe2, hWritePipe2;
char pi[16];
char W_buff[1000000];
string Rez;



if (StartPython())//Запустить интерпретатор python и наладить с ним связь PIPE
{
ReadPython();

WritePython("print(5+25)");// Выполнить в питоне "print(5+25)"
sleep(10);
Rez=ReadPython();// Получить ответ
messagebox (Rez);// Показать ответ

WritePython("print(2+5)");// Выполнить в питоне "print(2+5)"
sleep(10);
Rez=ReadPython();// Получить ответ
messagebox (Rez);// Показать ответ

WritePython("import webbrowser");// Выполнить в питоне "import webbrowser"
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("webbrowser.open(^'https:/^/google.com^', new=2)");// Выполнить в питоне "webbrowser.open('https://google.com', new=2)"
sleep(10);
Rez=ReadPython();// Получить ответ
messagebox (Rez);// Показать ответ

ClosePython();//Завершить работу с каналом и интерпретатором
}





function StartPython()
{
int ret;

//SECURITY_ATTRIBUTES
char sa[12];
initialarray(#sa[0], 0);
writeaddress(sizearray(sa), address(#sa[0]));
writeaddress(0, address(#sa[4]));
writeaddress(1, address(#sa[8]));

ret=CreatePipe(address(#hReadPipe1),address(#hWritePipe1),address(#sa[0]),0);
if (ret==0)return 0;
ret=CreatePipe(address(#hReadPipe2),address(#hWritePipe2),address(#sa[0]),0);
if (ret==0)return 0;

//STARTUPINFO
char si[68];
initialarray(#si[0], 0);
ZeroMemory(address(#si[0]),sizearray(si));
GetStartupInfo(address(#si[0]));
writeaddress(sizearray(si), address(#si[0]));
writeaddress(STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES, address(#si[44]));
writeaddress(SW_HIDE, address(#si[48]));
writeaddress(hReadPipe2, address(#si[56]));
writeaddress(hWritePipe1, address(#si[60]));
writeaddress(hWritePipe1, address(#si[64]));

//PROCESS_INFORMATION
initialarray(#pi[0], 0);
ret=CreateProcess(0,path_python,0,0,1,0,0,0,address(#si[0]),address(#pi[0]));
if (ret==0)return 0;

return 1;
}

function WritePython(string COMMAND)
{
int lBytesWrite;
WriteFile(hWritePipe2,COMMAND+"^n", size(COMMAND+"^n"), address(#lBytesWrite), 0);
}

function ReadPython()
{
int readed;
int W_Ta=0;
  while(ReadFile(hReadPipe1, address(#W_buff[W_Ta]), 1024 , address(#readed), 0)==1)
  {
  W_Ta=W_Ta+readed;
  if (W_Ta>3){if (W_buff[W_Ta-2]=='>' && W_buff[W_Ta-3]=='>' && W_buff[W_Ta-4]=='>') {W_Ta=W_Ta-4; break;}}
  if(readed!=1024) break;
  }
W_buff[W_Ta]=0;
return format(#W_buff[0]);
}

function ClosePython()
{
TerminateProcess(addressi(address(#pi[0])), 0);
WaitForSingleObject(addressi(address(#pi[0])), INFINITE );
CloseHandle(addressi(address(#pi[0])));
CloseHandle(addressi(address(#pi[4])));
CloseHandle(hReadPipe1);
CloseHandle(hWritePipe1);
CloseHandle(hReadPipe2);
CloseHandle(hWritePipe2);
}

Последний раз редактировалось Stratego; 31.07.2020 в 18:05.
  Ответить с цитированием
Старый 01.08.2020, 03:11   #81
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Пример как использовать Selenium для автоматизации действий в браузере.
Используется Python. В дальнейшем планируется его интегрировать в Кибор.
Для работы необходимо разместить в папке с Кибор файлы с [Ссылки могут видеть только зарегистрированные пользователи. ]. Это Python с Selenium.

[Ссылки могут видеть только зарегистрированные пользователи. ]

[Ссылки могут видеть только зарегистрированные пользователи. ]

Скрипт запускает браузер Firefox
После запуска браузера переходит на поисковую систему Гугл
Находит по ID элемент поля ввода запроса
Вводит туда запрос "Kibor"
Нажимает Enter
В результатах поиска находит ссылку с частичным текстом kibor-bot.com
Переходит по ней на сайт [Ссылки могут видеть только зарегистрированные пользователи. ]

Код:
#define STARTF_USESHOWWINDOW 1
#define STARTF_USESTDHANDLES 256
#define SW_HIDE 0
#define INFINITE -1
external(INT, "CreatePipe", "CreatePipe", "kernel32.dll");
external(VOID, "ZeroMemory", "RtlZeroMemory", "kernel32.dll");
external(VOID, "GetStartupInfo", "GetStartupInfoA", "kernel32.dll");
external(INT, "CreateProcess", "CreateProcessA", "kernel32.dll");
external(INT, "ReadFile", "ReadFile", "kernel32.dll");
external(INT, "WriteFile", "WriteFile", "kernel32.dll");
external(INT, "TerminateProcess", "TerminateProcess", "kernel32.dll");
external(INT, "WaitForSingleObject", "WaitForSingleObject", "kernel32.dll");
external(INT, "CloseHandle", "CloseHandle", "kernel32.dll");

string path_python=pathfolder()+"python.exe -i";//Можно писать полный путь к интерпретатору Python если он не в папке с Кибор
string path_browser="C:\Program Files (x86)\Mozilla Firefox\firefox.exe";//Путь к браузеру Firefox

int hReadPipe1, hWritePipe1, hReadPipe2, hWritePipe2;
char pi[16];
char W_buff[1000000];
string Rez;

/*
Скрипт Python
Работает через Selenium драйвер браузера
Скрипт запускает браузер Firefox
После запуска браузера переходит на поисковую систему Гугл
Находит по ID элемент поля ввода запроса
Вводит туда запрос "Kibor"
Нажимает Enter
В результатах поиска находит ссылку с частичным текстом kibor-bot.com
Переходит по ней на сайт [Ссылки могут видеть только зарегистрированные пользователи. ]
*/

/*
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
web = webdriver.Firefox(executable_path=r'C:\Program Files (x86)\Kibor\webdriver\geckodriver.exe', firefox_binary=r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe')
web.get('https://www.google.com')
time.sleep(1);
element = web.find_element_by_name('q')
element.send_keys("Kibor")
time.sleep(1);
element.send_keys(Keys.ENTER)
time.sleep(3);
web.find_element_by_partial_link_text("kibor-bot.com").click()
*/


if (StartPython())//Запустить интерпретатор python и наладить с ним связь PIPE
{
ReadPython();

WritePython("import time");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("from selenium import webdriver");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("from selenium.webdriver.common.keys import Keys");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("web = webdriver.Firefox(executable_path=r^'"+pathfolder()+"\webdriver\geckodriver.exe^', firefox_binary=r^'"+path_browser+"^')");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("web.get(^'https:/^/www.google.com^')");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("time.sleep(1)");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("element = web.find_element_by_name(^'q^')");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("element.send_keys(^"Kibor^")");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("time.sleep(1)");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("element.send_keys(Keys.ENTER)");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("time.sleep(3)");
sleep(10);
Rez=ReadPython();// Получить ответ

WritePython("web.find_element_by_partial_link_text(^"kibor-bot.com^").click()");
sleep(10);
Rez=ReadPython();// Получить ответ

ClosePython();//Завершить работу с каналом и интерпретатором
}





function StartPython()
{
int ret;

//SECURITY_ATTRIBUTES
char sa[12];
initialarray(#sa[0], 0);
writeaddress(sizearray(sa), address(#sa[0]));
writeaddress(0, address(#sa[4]));
writeaddress(1, address(#sa[8]));

ret=CreatePipe(address(#hReadPipe1),address(#hWritePipe1),address(#sa[0]),0);
if (ret==0)return 0;
ret=CreatePipe(address(#hReadPipe2),address(#hWritePipe2),address(#sa[0]),0);
if (ret==0)return 0;

//STARTUPINFO
char si[68];
initialarray(#si[0], 0);
ZeroMemory(address(#si[0]),sizearray(si));
GetStartupInfo(address(#si[0]));
writeaddress(sizearray(si), address(#si[0]));
writeaddress(STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES, address(#si[44]));
writeaddress(SW_HIDE, address(#si[48]));
writeaddress(hReadPipe2, address(#si[56]));
writeaddress(hWritePipe1, address(#si[60]));
writeaddress(hWritePipe1, address(#si[64]));

//PROCESS_INFORMATION
initialarray(#pi[0], 0);
ret=CreateProcess(0,path_python,0,0,1,0,0,0,address(#si[0]),address(#pi[0]));
if (ret==0)return 0;

return 1;
}

function WritePython(string COMMAND)
{
int lBytesWrite;
WriteFile(hWritePipe2,COMMAND+"^n", size(COMMAND+"^n"), address(#lBytesWrite), 0);
}

function ReadPython()
{
int readed;
int W_Ta=0;
while(ReadFile(hReadPipe1, address(#W_buff[W_Ta]), 1024 , address(#readed), 0)==1)
{
W_Ta=W_Ta+readed;
if (W_Ta>3){if (W_buff[W_Ta-2]=='>' && W_buff[W_Ta-3]=='>' && W_buff[W_Ta-4]=='>') {W_Ta=W_Ta-4; break;}}
if(readed!=1024) break;
}
W_buff[W_Ta]=0;
return format(#W_buff[0]);
}

function ClosePython()
{
TerminateProcess(addressi(address(#pi[0])), 0);
WaitForSingleObject(addressi(address(#pi[0])), INFINITE );
CloseHandle(addressi(address(#pi[0])));
CloseHandle(addressi(address(#pi[4])));
CloseHandle(hReadPipe1);
CloseHandle(hWritePipe1);
CloseHandle(hReadPipe2);
CloseHandle(hWritePipe2);
}
  Ответить с цитированием
Старый 03.08.2020, 14:56   #82
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

[Ссылки могут видеть только зарегистрированные пользователи. ]

Возможно выполнение скрипта с файла, вызов функций Питона с файлов.
Так же возможно выполнение отдельных команд Питона в коде Кибор и взаимный обмен данными.
Скрипт Питона можно запускать синхронно и асинхронно с выполнением скрипта Кибор.

Описание новых функций:
Цитата:
runpython()

Запускает интерпретатор Питон.
Возвращает 1 при удачном запуске
0 при неудаче.

Цитата:
closepython()

Завершает работу с интерпретатором.
Возвращает 1 если завершил работу.
0 если интерпретатор не был запущен.

Цитата:
wpython("print(^'yes^')");

Отправляет Питону команду print('yes') и нажимает Ентер. Не синхронная. Не ждет окончания команды.
Возвращает 1 при удаче.

Цитата:
rpython()

Считывает последний ответ с Питона.
Возвращает string.
То есть если перед этим мы отправили print('yes'), то прочитаем yes
Данная функция может считать ответ только один раз. При повторных попытках считывания или если Питон не готов выдать ответ (выполняет какую то задачу) эта функция вернет ERROR_READ_PYTHON

Цитата:
wrpython("print(^'yes^')");

Посылает Питону print('yes') и сразу же получает ответ. Возвращает string. В данном случае yes.. Синхронная. После отправки ждет отработки кода и получения ответа.
Синхронность работы не распространяется на вызов Питон функций.

Цитата:
fpython("C:\Program Files (x86)\Kibor\script.txt")

Считывает скрипт Питона с файла и выполняет его. Ответ, если есть необходимость надо получать так же как и в случае wpython функцией rpython
В файле допускаются функции и их вызов.
Перевод срока в файле является Ентером.

[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 08.08.2020, 18:49   #83
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Добавил директивы [Ссылки могут видеть только зарегистрированные пользователи. ]
Они позволяют указывать блоки скриптов Питон в редакторе Кибор.
Скрипты Питона и Кибор можно выполнять одновременно обмениваясь данными.

Пример использования функции Питон в Кибор
Код:
if (runpython()==0){messagebox ("Не удалось запустить Python"); goto er;}
load_fen_python();//Загружаем все функции Питона

sleep(100);

//Вызываем когда понадобится с параметрами
messagebox (sendgetpython("similarity('мыло', 'мало')"));//0.75

closepython();

er:;


//Загружаем все функции Питона
function load_fen_python()
{
__python
import difflib

def similarity(s1, s2):
(отступ) normalized1 = s1.lower()
(отступ) normalized2 = s2.lower()
(отступ) matcher = difflib.SequenceMatcher(None, normalized1, normalized2)
(отступ) return matcher.ratio()

__end_python
}
------------------------

Сделал возможность в Кибор собрать единый [Ссылки могут видеть только зарегистрированные пользователи. ] который будет выполнять скрипт Кибор и Питона на компьютере где Питон не установлен.

Добавлено через 14 часов 50 минут
[Ссылки могут видеть только зарегистрированные пользователи. ]
Скрипт запускает браузер, в Гугде вводит поисковый запрос и ищет нужный сайт и переходит на него.
Показано как совмещать Python скрипт с скриптом Кибор

[Ссылки могут видеть только зарегистрированные пользователи. ]


Код:
string find="Распознать текст OCR";//Запрос
string path_webdriver=pathfolder()+"python\webdriver\geckodriver.exe"; // Путь к webdriver. C:\Program Files (x86)\Kibor\python\webdriver\geckodriver.exe
string path_browser="C:\Program Files (x86)\Mozilla Firefox\Firefox.exe"; // Путь к браузеру Мозила

if (runpython()==0){messagebox ("Не удалось запустить Python"); goto er;}//Запускаем интерпретатор Python

//Подготовка
import();

//Запуск браузера и переход на https://www.google.com
start_browser();

//Находим на поисковой странице Гугла поле для ввода в поиск и вводим туда запрос
find_google();

//Искать на странице открывшегося поиска ссылку которая ведет на kibor-bot.com и кликнуть по ней
F: if (find_site("kibor-bot.com")==0)//Если этой станице ссылки на kibor-bot.com нет
{//Надо перейти на следующую станицу поиска
if (find_site("Следующая")==0) goto exits;//Если на этой странице нет кнопки Следующая завершить программу
pause(5000);//Если кликнули по кнопке Следующая пауза 5 секунд и повторяем поиск ссылки на kibor-bot.com
goto F;
}

exits:;
closepython();//Завершаем работу с интерпретатором
er:;


function find_site(string find_link)//Искать на странице открывшегося поиска ссылку которая ведет на указанный линк
{
string rez;
sendpython("web.find_element_by_partial_link_text(^'"+find_link+"^').click()");//Отправляем Питону команду найти ссылку содержащую kibor-bot.com и по ней кликнуть
sendpython("print(^'yes^')");//Сразу же не ожидая окончания первой команды Отправить print('yes')

loop()//Замкнутый цикл в котором ждем ответ
{
rez=getpython();//Пытаемся считать ответ Если ссылка не была найдена, то в ответе кроме yes будет еще описание ошибки.
if (rez!="ERROR_READ_PYTHON")//Если Питон нам что то ответил..
{
//messagebox (rez+);//Посмотреть что приходит когда нашли ссыку и когда не нашли
if (rez=="yes")return 1;//Если в ответе только слово yes, значит мы нашли ссылку и описания ошибки нет.
return 0;//Иначе в ответе не только слово yes. Значит мы не нашли ссылку
}
}
}

function find_google()//Находим на поисковой странице Гугла поле для ввода в поиск и вводим туда значение переменной find
{
//Вначале инициализируем переменную finds в Pythen нашей переменной find синхронной функцией
sendgetpython("finds=^'"+find+"^'"); // finds=find
__python
element = web.find_element_by_name('q')
element.send_keys(finds)
time.sleep(1);
element.send_keys(Keys.ENTER)
time.sleep(3);
print('yes')
__end_python
while (getpython()!="yes")sleep(100);// Ждем в цикле ответ "yes". Оно будет когжа скрипт Pythen отработает
}

function start_browser()//Запуск браузера
{
//Вначале инициализируем переменные в Pythen нашими значениями синхронными функциями.
sendgetpython("p_web=^'"+path_webdriver+"^'");// p_web=path_webdriver
sendgetpython("p_br=^'"+path_browser+"^'"); // p_br=path_browser
__python
web = webdriver.Firefox(executable_path=p_web, firefox_binary=p_br) # Тут мы используе переменные p_web и p_br
web.get('https://www.google.com')
time.sleep(1);
print('yes')
__end_python
while (getpython()!="yes")sleep(100);// Ждем в цикле ответ "yes". Оно будет когжа скрипт Pythen отработает
}


function import()//Подготовка
{
__python
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
print('yes')
__end_python
while (getpython()!="yes")sleep(100);// Ждем в цикле ответ "yes". Оно будет когжа скрипт Pythen отработает
}

Последний раз редактировалось Stratego; 09.08.2020 в 09:40. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 11.08.2020, 22:49   #84
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Добавил настройку цвета синтаксиса.
Настраиваются все элементы, простые и выделенные по отдельности.
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 10.02.2021, 15:39   #85
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Видео урок по созданию бота в реальном времени
  Ответить с цитированием
Старый 25.04.2021, 11:10   #86
 Разведчик
Аватар для Prаetоrian
 
Prаetоrian никому не известный тип
Регистрация: 25.04.2021
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Я зарегистрировался ради того, чтобы сказать автору программы СПАСИБО) Прекрасная программа, хочу в ней ̶н̶а̶п̶и̶с̶а̶т̶ь̶ создать бота для блица)) щас пока что придумываю, как бы реализовать движение и объезд препятствий, ну и чтоб союзникам не мешал, не подпирал не врезался и тд
  Ответить с цитированием
Старый 27.04.2021, 18:50   #87
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

В разработке новый Визуальный редактор кода.

Его главное отличие от других, это то, что он не заточен под какую либо задачу или язык.
Все используемые в нем блоки создаются отдельно и находятся в папке с программой.
При запуске программы она считывает эти файлы и создает кнопки на панели для использования.
Это просто движок, который может создавать любой код, описанный в шаблонах в папке с программой.

При программирование блока можно описать диалоговое окно, которое будет появляться при выборе свойств блока пользователем и полностью настроить работу кода, который он должен генерировать.
Программировать можно готовые функции, вызов Api, глобальный код, переменные, код который должен выполниться один раз при использование данного типа блока при запуске программы и тд.
Все указанные данные генерируются без дублирования и тл.

Если условия требуют, то для отдельных случаев генерируются новые переменные.
Пример - загрузка нескольких изображений с файлов в массивы для дальнейшей работы с ними и тд.
Для каждого изображения выделяется своя память. Это пример..

При этом для какого языка будет создаваться код не важно. Это альфа версия. Тест в разработке. Кое что надо будет поправить для какого то конкретного языка, но это больше связано если будут использоваться глобальные переменные и код.

На данный момент редактор позволяет создавать свои шаблоны и с помощью их использования генерировать код.

Подробнее о шаблонах [Ссылки могут видеть только зарегистрированные пользователи. ]

Шаблон блока имеет текстовый формат такого плана:
Код:
[ESCAPE_CHAR]
^
[END]

[INTERFACE]
DIALOG, "Поиск изображения", 499, 139;
BUTTON_OK, "Принять", 284, 88, 100, 20;
BUTTON_CANCEL, "Закрыть", 388, 88, 100, 20;
STATIC, "Путь к файлу", 8, 8, 100, 20;
EDIT, 116, 8, 276, 20, string Path;
BUTTON_FILE, "Путь к файлу", 396, 8, 92, 20, Path;
STATIC, "Сколько искать", 8, 32, 100, 20;
EDIT, 116, 32, 52, 20, int Kol;
COMBO, "Мышь клик" "Мышь нажать" "Мышь отпустить", 172, 32, 220, 80, int M;
STATIC, "Количество", 8, 56, 100, 20;
EDIT, 116, 56, 52, 20, int K;
STATIC, "X", 176, 56, 24, 20;
STATIC, "Y", 288, 56, 24, 20;
EDIT, 208, 56, 72, 20, int X;
EDIT, 320, 56, 72, 20, int Y;
[END]


[ASSOC_NUMBER]
Path
[END]

[ASSOC_VAR]
Path="C:\Image_0.bmp";
Kol = 1;
X = #X_Kib;
Y = #Y_kib;
K = #K_kib;
M = 0;
Image = #Image~*~;
[END]

[GLOBAL_VAR]
int K_kib, X_Kib[1000], Y_kib[1000];  
int Image~*~[~GET(imagewidth(~Path~))~][~GET(imageheight(~Path~))~]; 
[END]


[GLOBAL_SINGLE_CODE]
#define WM_COMMAND 0x111      
#include"C:\Program Files (x86)\Kibor\liba.txt" //Это для демонстрации (Будет ошибка, так как нет файла) ЗАКОММЕНТИРОВАТЬ в полученном коде     
external(INT, "MessageBoxA", "MessageBoxA", "UseR32.dlL");
messagebox   ("Будет использоваться FindImage");
beep (1000, 100);      
[END]

[GLOBAL_REPEAT_CODE]
loadimage(#Image~*~[0][0], ~Path~);
[END]

[FUNCTION_BODY]
function (int #image, int kol, int #mK, int #mX, int #mY, int Mouse)
{
mK=findimage(kol, #image[0][0], -1, #mX[0], #mY[0], 0, 0, 1024, 768, -1);
if (mK<0)MessageBoxA(0, "Ошибка", "Окно", 0);
if (Mouse==0)mouse(LEFT, mX[0], mY[0]);
if (Mouse==1)mousedown(LEFT, mX[0], mY[0]);
if (Mouse==2)mouseup(LEFT, mX[0], mY[0]);
return mK;
}
[END]

[FUNCTION_CALL]
(Image[0][0], Kol, K, X[0], Y[0], M)
[END]

[FUNCTION_LOGIC]
>0
[END]

Для создания диалоговых окон в шаблонах есть визуальный редактор диалогов




Последний раз редактировалось Stratego; 27.04.2021 в 19:04.
  Ответить с цитированием
Старый 13.05.2021, 18:42   #88
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

В разработке новый Визуальный редактор кода.
В принципе он практически готов.
От старого отличается практически всем.
Во первых - данная программа является просто движком. От нее не зависит язык, код на котором будет генерироваться.
Весь функционал, правила создания кода и даже диалоговые окна для настройки Блоков создаются в отдельных файлах, которые лежат в папке с программой. Программа при запуске считывает эти файлы и на панели появляются соответствующие кнопки.
Пример такого файла реализующий блок поиска изображения в Кибор:

Код:
[ESCAPE_CHAR]
^
[END]

[APPEARANCE]
COLOR = 0, 0, 100;
SIZE_X = 10;
SIZE_Y =6;
[END]

[INTERFACE]DIALOG, "Поиск изображения", 631, 158;
STATIC, "Путь к файлу", 8, 8, 100, 20;
EDIT, 116, 8, 404, 20, string Path;
BUTTON_FILE, "Путь к файлу", 528, 8, 92, 20, Path;
STATIC, "Сколько искать", 8, 32, 100, 20;
EDIT, 116, 32, 52, 20, int Kol;
STATIC, "Зона поиска старт", 8, 56, 100, 20;
EDIT, 116, 56, 52, 20, int eX1;
EDIT, 172, 56, 52, 20, int eY1;
STATIC, "Зон поиска финиш", 236, 56, 100, 20;
EDIT, 344, 56, 52, 20, int eX2;
EDIT, 400, 56, 52, 20, int eY2;
STATIC, "Количество", 8, 80, 100, 20;
EDIT, 116, 80, 52, 20, int K;
STATIC, "X", 180, 80, 24, 20;
EDIT, 208, 80, 72, 20, int X;
STATIC, "Y", 288, 80, 24, 20;
EDIT, 320, 80, 72, 20, int Y;
STATIC, "Заполнять массив с индекса", 400, 80, 156, 20;
EDIT, 560, 80, 60, 20, int I;
BUTTON_OK, "Принять", 412, 108, 100, 20;
BUTTON_CANCEL, "Закрыть", 520, 108, 100, 20;
[END]


[ASSOC_NUMBER]
Path
[END]

[ASSOC_VAR]
Path="C:\Image_0.bmp";
I=0;
Kol = 1;
eX1=0;
eY1=0;
eX2=1024;
eY2=768;
X = X_Kib;
Y = Y_kib;
K = K_kib;
X_V = #~X~[~I~];
Y_V = #~Y~[~I~];
K_V = #~K~;
Image = #Image~*~;
[END]

[GLOBAL_VAR]
int ~K~, ~X~[1000], ~Y~[1000];  
int Image~*~[~GET(imagewidth(~Path~))~][~GET(imageheight(~Path~))~]; 
[END]

[GLOBAL_REPEAT_CODE]
loadimage(#Image~*~[0][0], ~Path~);
[END]

[FUNCTION_BODY]
function (int #image, int kol, int #mK, int #mX, int #mY, int ex1, int ey1, int ex2, int ey2)
{
mK=findimage(kol, #image[0][0], -1, #mX[0], #mY[0], ex1, ey1, ex2, ey2, -1);
return mK;
}
[END]

[CALL]
(Image[0][0], Kol, K_V, X_V, Y_V, eX1, eY1, eX2, eY2)
[END]


[FUNCTION_LOGIC]  
>0
[END]
Пример блока цикла for

Код:
[INTERFACE]
DIALOG, "for", 619, 109;
STATIC, "Имя переменной", 8, 4, 92, 20;
EDIT, 108, 4, 100, 20, int Var;
STATIC, "Начальное значение", 8, 28, 108, 20;
EDIT, 120, 28, 72, 20, int Init;
STATIC, "Условие", 200, 28, 44, 20;
EDIT, 248, 28, 232, 20, int Cond;
STATIC, "Счетчик", 488, 28, 44, 20;
EDIT, 536, 28, 72, 20, int Counter;
BUTTON_OK, "Принять", 400, 56, 100, 20;
BUTTON_CANCEL, "Закрыть", 508, 56, 100, 20;
[END]

[APPEARANCE]
COLOR = 0, 0, 0;
SIZE_X = 48;
SIZE_Y =28;
[END]

[ASSOC_VAR]
Var = N;
Init = 0;
Cond = N<5;
Counter = N++;

cInit = ~Var~=~Init~;
[END]

[GLOBAL_VAR]
int ~Var~;  
[END]

[CALL]
(cInit; Cond; Counter)
[END]

[GROUP_BLOCK]
START = { 
END = }
ENTER_EXIT =1
CONNECTION=1
[END]
Такие шаблоны можно создавать отдельно, не модифицируя программу.

Такой код получается с такой схемы. (все блоки расставлены хаотично и созданы не по порядку)
Гото не так много. В блоках {} код сортируется вполне прилично.





Добавлено через 7 часов 56 минут
Ознакомительное видео о новом редакторе.
[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось Stratego; 14.05.2021 в 02:38. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 25.05.2021, 12:06   #89
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Создание бота для рыбалки в новом редакторе.
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 02.06.2021, 11:33   #90
 Старший сержант
Аватар для Stratego
 
Stratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака НоррисаStratego троюродный дядя Чака Норриса
Регистрация: 25.03.2013
Сообщений: 175
Популярность: 7326
Сказал(а) спасибо: 8
Поблагодарили 36 раз(а) в 18 сообщениях
 
По умолчанию Re: Интегрированная среда разработки ботов

Развитие Визуального редактора продолжается.
В принципе он готов к использованию.
Его функционал зависит от созданных шаблонов.

Добавил несколько шаблонов и получился мини ZennoPoster

Данные шаблоны используют вставки кода Python и Selenium

Весь код создается в визуальном редакторе и запускается одной кнопкой без программирования и установки чего либо кроме Кибор.
На видео показан процесс авторизации на сайте и создания новой темы.
Процесс настройки такой автоматизации довольно простой. Работа возможна как в видимом режиме (мышь свободна), так и в фоновом.
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Пользователь сказал cпасибо:
Тигрь (06.06.2021)
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Среда разработки для HTML верстальщика Mr.Alexander Вопросы и ответы, обсуждения 1 13.01.2013 23:40
Цикл разработки Майнкрафта joker_fist Общение на темы MineCraft 1 13.11.2012 21:08
[Файл] Программа для разработки макросов Drakus Скрипты и прочий софт для Point Blank 0 21.03.2011 18:21
СС (судная среда) Corsar2232 Общение и обсуждение, архив Point Blank 12 18.05.2010 17:02

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 12:58.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net