Lincerod |
Отправлено: 21 Июля, 2019 - 14:55:12
|
Прохожий
Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2019
Репутация: 0
|
Доброго времени суток. Приношу свои извинения, если данный вопрос имеет ответ, а я не смог его найти.
Использую старый скрипт для игры Eldor. От Kibor
В скрипте в начале имеется кусок кода, в котором задаются переменные.
CODE:win w=window ("KEmulator Lite v0.9.8", "SWT_Window0", -1);
int t;
int ojidat=50000; //Время которое ждем после восрешение
int ojidat1=20000; //Время которое ждем после боя и победы
int X, Y;
int bestisrii[61][9];
int zagryzka[18][18];
int kris[70][25];
int xod[23][11];
int porajenie[67][9];
int xram[30][9];
int pobeda[44][9];
int voskresli[81][9];
int mech[5][5];
int km_skil;
int количество_ударов_в_серии=5;//Из какого количества ударов состоит серия
int skil[5];//Должно быть столько сколько ударов в серии
//Заполнить массив последовательностью ударов. 1-меч вверх, 2-посередине, 3-вниз
skil[0]=1; skil[1]=3; skil[2]=2; skil[3]=3; skil[4]=2;//Добавить если надо больше. Добавлять с количество_ударов_в_серии и int skil[5]
Хотелось бы узнать, как правильно в такое начало скрипты интегрировать интерфейс?
Хочу настроить, чтобы можно было изменять Кол-во ударов в серии, и конечно сами удары.
Если у кого-то есть любые скрипты с интерфейсом, где такое реализовано, можете отправить ту часть где это, чтобы я смог изучить?
С уважением, новый пользователь данного бота, Lincerod |
|
|
Zireael |
Отправлено: 21 Июля, 2019 - 17:11:55
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: чтобы я смог изучить
Изучайте:
code (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define ES_NUMBER 8192
#define EM_SETSEL 177
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "EnableWindow", "EnableWindow", "User32.dll" );
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll" );
external(INT, "SetFocus", "SetFocus", "User32.dll" );
string path="C:\settings111.txt"; // путь к файлу, в который запишется последняя серия
int количество_ударов_в_серии;
int skill[99];
string s="";
char text_edit1[99], symbol;
int button1, static1, edit1, i, flag_button=0;
load_settings(); // загрузка серии из файла, если он существует
createdialog(0);
showdialog(0, "Диалог", 100, 100, 250, 110, 1, 1);
skill_func(); // вызов функции, которая получает текст из edit
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
button1=CreateWindow(0, "BUTTON", "Изменить серию", WS_BORDER | WS_CHILD | WS_VISIBLE, 10, 10, 150, 25, gethwnd(0), 0, 0, 0); // создать кнопку
static1=CreateWindow(0, "STATIC", "Серия", WS_CHILD | WS_VISIBLE, 10, 50, 50, 25, gethwnd(0), 0, 0, 0); // создать статик
edit1=CreateWindow(0, "EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER, 70, 48, 100, 20, gethwnd(0), 0, 0, 0); // создать edit
SetWindowText(edit1, s); // изменить текст edit
EnableWindow(edit1, 0); // отключить окно edit
}
function getmessage(0, WM_COMMAND)
{
if(message.lparam==button1) // если нажата кнопка
{
if(flag_button==0)
{
flag_button=1; // флаг что кнопка была нажата и у неё изменился текст
SetWindowText(button1, "Применить"); // изменить текст edit
EnableWindow(edit1, 1); // включить окно edit
SetFocus(edit1); // установить фокус в edit
sendmessage(EM_SETSEL, 0, -1, formatiw(edit1)); // выделить весь текст
}
else
{
flag_button=0;
SetWindowText(button1, "Изменить серию"); // изменить текст edit
EnableWindow(edit1, 0); // отключить окно edit
skill_func(); // вызов функции, которая получает текст из edit
save_settings();
}
}
}
function skill_func()
{
string temp[99];
if(GetWindowText(edit1, address(#text_edit1[0]), sizearray(text_edit1))) // получить текст edit
{
количество_ударов_в_серии=size(#text_edit1[0]);
resettextout(1);
textbkcolor(0, 255);
textout(0, 10, 10, "Текущая серия", 0);
int count=regexsearch(количество_ударов_в_серии, #temp[0], format(#text_edit1[0]), "\d"); // найти все числа в тексте
for(int i=0; i<количество_ударов_в_серии; i++)
{
skill[i]=formatsn(temp[i]); // записываем новую серию
textbkcolor(255, 65280);
textout(i+1, 10, 30+i*20, format(skill[i]), 0);
}
}
else
{
resettextout(1);
textbkcolor(0, 255);
textout(0, 10, 10, "В edit пусто", 0);
}
}
function load_settings()
{
if(fopen(path, "r"))
{
количество_ударов_в_серии=0;
s="";
while(fread(symbol))
{
количество_ударов_в_серии++;
s=s+symbol; // текст для edit в string
}
fclose();
}
}
function save_settings()
{
if(fopen(path, "w"))
{
for(int i=0; i<количество_ударов_в_серии; i++)fwrite(skill[i]);
fclose();
}
}
В поле edit можно вводить только числа. Последняя введённая серия записывается в файл. Если при старте скрипта файл будет существовать, то серия запишется в поле edit. |
|
|
Lincerod |
Отправлено: 21 Июля, 2019 - 18:29:25
|
Прохожий
Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2019
Репутация: 0
|
Zireael пишет: Цитата: чтобы я смог изучить
Изучайте:
code (Отобразить)CODE:#define WS_VISIBLE 268435456
#define WS_CHILD 1073741824
#define WS_BORDER 8388608
#define ES_NUMBER 8192
#define EM_SETSEL 177
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "EnableWindow", "EnableWindow", "User32.dll" );
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll" );
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll" );
external(INT, "SetFocus", "SetFocus", "User32.dll" );
string path="C:\settings111.txt"; // путь к файлу, в который запишется последняя серия
int количество_ударов_в_серии;
int skill[99];
string s="";
char text_edit1[99], symbol;
int button1, static1, edit1, i, flag_button=0;
load_settings(); // загрузка серии из файла, если он существует
createdialog(0);
showdialog(0, "Диалог", 100, 100, 250, 110, 1, 1);
skill_func(); // вызов функции, которая получает текст из edit
loop()sleep(10);
function getmessage(0, WM_CREATE)
{
button1=CreateWindow(0, "BUTTON", "Изменить серию", WS_BORDER | WS_CHILD | WS_VISIBLE, 10, 10, 150, 25, gethwnd(0), 0, 0, 0); // создать кнопку
static1=CreateWindow(0, "STATIC", "Серия", WS_CHILD | WS_VISIBLE, 10, 50, 50, 25, gethwnd(0), 0, 0, 0); // создать статик
edit1=CreateWindow(0, "EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER, 70, 48, 100, 20, gethwnd(0), 0, 0, 0); // создать edit
SetWindowText(edit1, s); // изменить текст edit
EnableWindow(edit1, 0); // отключить окно edit
}
function getmessage(0, WM_COMMAND)
{
if(message.lparam==button1) // если нажата кнопка
{
if(flag_button==0)
{
flag_button=1; // флаг что кнопка была нажата и у неё изменился текст
SetWindowText(button1, "Применить"); // изменить текст edit
EnableWindow(edit1, 1); // включить окно edit
SetFocus(edit1); // установить фокус в edit
sendmessage(EM_SETSEL, 0, -1, formatiw(edit1)); // выделить весь текст
}
else
{
flag_button=0;
SetWindowText(button1, "Изменить серию"); // изменить текст edit
EnableWindow(edit1, 0); // отключить окно edit
skill_func(); // вызов функции, которая получает текст из edit
save_settings();
}
}
}
function skill_func()
{
string temp[99];
if(GetWindowText(edit1, address(#text_edit1[0]), sizearray(text_edit1))) // получить текст edit
{
количество_ударов_в_серии=size(#text_edit1[0]);
resettextout(1);
textbkcolor(0, 255);
textout(0, 10, 10, "Текущая серия", 0);
int count=regexsearch(количество_ударов_в_серии, #temp[0], format(#text_edit1[0]), "\d"); // найти все числа в тексте
for(int i=0; i<количество_ударов_в_серии; i++)
{
skill[i]=formatsn(temp[i]); // записываем новую серию
textbkcolor(255, 65280);
textout(i+1, 10, 30+i*20, format(skill[i]), 0);
}
}
else
{
resettextout(1);
textbkcolor(0, 255);
textout(0, 10, 10, "В edit пусто", 0);
}
}
function load_settings()
{
if(fopen(path, "r"))
{
количество_ударов_в_серии=0;
s="";
while(fread(symbol))
{
количество_ударов_в_серии++;
s=s+symbol; // текст для edit в string
}
fclose();
}
}
function save_settings()
{
if(fopen(path, "w"))
{
for(int i=0; i<количество_ударов_в_серии; i++)fwrite(skill[i]);
fclose();
}
}
В поле edit можно вводить только числа. Последняя введённая серия записывается в файл. Если при старте скрипта файл будет существовать, то серия запишется в поле edit.
Благодарю. Приступлю к изучению |
|
|
|