ivantu |
Отправлено: 14 Ноября, 2018 - 07:40:31
|
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
|
Диалог минимальный,
CODE:
int pos_size_static0[1][4];
string text_static0[1];
pos_size_static0[0][0]=20; pos_size_static0[0][1]=21; pos_size_static0[0][2]=200; pos_size_static0[0][3]=336;
text_static0[0]="";
//////////
createdialog(1, STATIC, #pos_size_static0[0][0], #text_static0[0]);
//////////
showdialog(0, "Последние действия", 526, 218, 250, 400, 0, 1);
//////////
чтоб отключить вывод в диалог, я так понял нужно закомментировать просто эту часть кода? Если так, то вылетов не наблюдается.
CODE:
//LOGS
/*
function add_string(string temp)
{
log_z++; s=s+temp+rn;
if(log_z>max_string) // если достигнут максимум строк в логе
{
regexsearch(1, #s, s, "(?<=\r\n).*", SINGLELINE);
}
return s;
}
*/
(Отредактировано автором: 14 Ноября, 2018 - 07:42:46) |
|
|
Zireael |
Отправлено: 14 Ноября, 2018 - 11:05:29
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: я так понял нужно закомментировать просто эту часть кода?
Вообще-то надо было закомментировать строки, в которых вызывается функция.
Цитата: createdialog(1
showdialog(0
Тогда уж showdialog(1
Цитата: Если так, то вылетов не наблюдается.
В чём проблема может быть не знаю. Сама функция работает, дело не в ней.
code (Отобразить)CODE:int log_z=0;
int max_string=15;
string s="", rn=formatic(13)+formatic(10);
int pos_size_static0[1][4];
string text_static0[1];
pos_size_static0[0][0]=20; pos_size_static0[0][1]=21; pos_size_static0[0][2]=200; pos_size_static0[0][3]=336;
text_static0[0]="";
createdialog(1, STATIC, #pos_size_static0[0][0], #text_static0[0]);
showdialog(1, "Последние действия", 526, 218, 250, 400, 0, 1);
//////////
int slep=100;
loop()
{
text_static0[0]=add_string("Нажали В бой"); sleep(slep);
text_static0[0]=add_string("Включили Автобой"); sleep(slep);
text_static0[0]=add_string("Нажали повтор боя"); sleep(slep);
text_static0[0]=add_string("Победа нажали в центр"); sleep(slep);
text_static0[0]=add_string("Победа открыли сундук"); sleep(slep);
text_static0[0]=add_string("Найдено окно дропа"); sleep(slep);
text_static0[0]=add_string("Выпал хлам"); sleep(slep);
text_static0[0]=add_string("Выпала руна"); sleep(slep);
text_static0[0]=add_string("Нажали продать :) "); sleep(slep);
}
/*LOGS*/
function add_string(string temp)
{
s=s+temp+rn;
if(log_z>max_string) // если достигнут максимум строк в логе
{
regexsearch(1, #s, s, "(?<=\r\n).*", SINGLELINE);
}
else log_z++;
return s;
} |
|
|
Zireael |
Отправлено: 14 Ноября, 2018 - 13:47:57
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: подскажите пожалуйста, а есть ли возможность перед тем как выводить надпись в лог проверять не совподает ли она с последней записью, если да то не добавлять, а то иногда пишет в лог по два три раза одно и тоже... была бы полезная фишка.
code (Отобразить)CODE:int log_z=0;
int max_string=15;
string s="", rn=formatic(13)+formatic(10);
int pos_size_static0[1][4];
string text_static0[1];
pos_size_static0[0][0]=20; pos_size_static0[0][1]=21; pos_size_static0[0][2]=200; pos_size_static0[0][3]=336;
text_static0[0]="";
createdialog(1, STATIC, #pos_size_static0[0][0], #text_static0[0]);
showdialog(1, "Последние действия", 526, 218, 250, 400, 0, 0);
//////////
int slep=200;
loop()
{
text_static0[0]=add_string("Нажали В бой"); sleep(slep);
text_static0[0]=add_string("Включили Автобой"); sleep(slep);
text_static0[0]=add_string("Включили Автобой"); sleep(slep); // повтор предыдущей строки
text_static0[0]=add_string("Включили Автобой"); sleep(slep); // повтор предыдущей строки
text_static0[0]=add_string("Нажали повтор боя"); sleep(slep);
text_static0[0]=add_string("Нажали повтор боя"); sleep(slep); // повтор предыдущей строки
text_static0[0]=add_string(""); sleep(slep);
}
/*LOGS*/
function add_string(string temp)
{
string ss[2];
s=s+temp+rn;
if(regexsearch(2, #ss[0], s, "(?<=\r\n).+?(?=\r\n)", SINGLELINE | RIGHTTOLEFT)>1); // получаем последние 2 строки
{
if(ss[0] == ss[1]){regexsearch(1, #s, s, ".*\r\n(?=.*?\r\n)", SINGLELINE); return s;} // если они совпадают, обрезаем последнюю
if(log_z>max_string) // если достигнут максимум строк в логе
{
regexsearch(1, #s, s, "(?<=\r\n).*", SINGLELINE);
}
else log_z++;
}
return s;
} |
|
|
|