1
Использование / Re: Библиотеки пользовательских подпрограмм
« on: August 30, 2021, 02:03:47 PM »
Спасибо! <3
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Версия 2.5Здрастуйте, а можно как то уменьшить растояние между вариантами? А то много вариантов не помещаются в монитор
Добавлен Window_checkbox_flags
Передаём в массиве $items строки или в строке с разделителем $text (как обычно).
В массиве $itemsflags - значения чекбоксов 0 - выкл, 1 -вкл
Возврат:
$return_r = -1 отмена или время вышло
$return_r = 1 выбрали пункты
В массиве $itemsflags получаем значения пунктов (0 - выкл, 1 -вкл)
Пример вызова:Code: (clickermann) [Select]UNDEFINE($items)
UNDEFINE($itemsflags)
ARRPUSH($items, "- Означает что-то там. Это 1-я тестовая строка")
ARRPUSH($items, "- Означает что-то там. Это 2-я тестовая строка")
ARRPUSH($items, "- Означает что-то там. Это 3-я тестовая строка")
ARRPUSH($items, "- Означает что-то там. Это 4-я тестовая строка")
ARRPUSH($items, "- Второй раздел, тоже не маленький/ Выбери, ну выбери этот пункт...")
ARRPUSH($items, "- Последняя коротенькая запись,\nно двухстрочная. Тоже хочет чтоб её выбрали")
STRSEPARATE("0,1,0,1,1,0", ",", $itemsflags)
Window_checkbox_flags(101, "Выбор пунктов чекбоксом и предустановками", 10)
Window_v2.5 исправленная.7z
$input_file = "\vibor\Buildings.txt" // Исходные данные - большой список
$output_file = "\vibor\Buildings_selected.txt" // Результат - список выбранных
TFREADARR($input_file, $items_all)
TFREADARR("\vibor\item_flags_all.txt", $itemsflags_all)
IF(ARRSIZE($itemsflags_all) < ARRSIZE($items_all))
FOR($i = ARRSIZE($itemsflags_all) , $i < ARRSIZE($items_all))
ARRPUSH($itemsflags_all, 0)
END_CYC
END_IF
//##############################################################################
//Вывод текста на экран по 10 строк с чекбоксами
FOR($a, $a < INT ((ARRSIZE($items_all) / 22)+1))
$n = $check * 22
FOR($i = $n, (($i < $n+22) AND ($i < ARRSIZE($items_all))))
ARRPUSH($items, $items_all[$i])
ARRPUSH($itemsflags, $itemsflags_all[$i])
END_CYC
Window_checkbox_flags(101, "Выберите пункты :", 3000)
// Window_checkbox_flags(110, "Выберите пункты :", 35) //жирным шрифтом текст не помещается ?
STRSEPARATE ($flags, ",", $item_flags)
STRSEPARATE($text, "|", $selecteditems)
$flags = $item_flags[0]
FOR($i=0, $i < ARRSIZE($item_flags))
$flags = STRCONCAT($flags, ",", $item_flags[$i])
IF($item_flags[$i] = 1) // Запись выбранных в массив
ARRPUSH($Selected, $selecteditems[$i])
END_IF
END_CYC
//==============================================================================
// Подговка ответа
IF(ARRSIZE($Selected) > 0)
$otv = $Selected[0]
FOR($i=1, $i < ARRSIZE($Selected))
$otv = STRCONCAT($otv, "\n", $Selected[$i])
END_CYC
$text = STRCONCAT("Выбраны пункты:\n\n", $otv)
IF($return = -1)
$hint = "Состояние чекбоксов не изменено"
HINTPOPUP($hint, "ВНИМАНИЕ")
END_IF
ELSE
$text = "Вы ничего не выбрали"
END_IF
//==============================================================================
TFWRITEARR ($output_file, $Selected) // Запись списка выбранных
UNDEFINE($items)
UNDEFINE($itemsflags)
UNDEFINE($Selected)
INC($check) // следующие 10 строк
END_CYC
Все работает, огромное спасибо.Здравствуйте, прошу подсказать как сделать запись информации о результате матча в блокнот.
Вставь в начале скрипта, файл появится рядом со скриптом.Code: (clickermann) [Select]#logfile "Log.txt"
Поставь в скрипте после появления экрана с победа или поражение, создай снимок надписи "победа" и положи рядом со скриптомCode: (clickermann) [Select]GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "pobeda.bmp", -1, 95)
LOGWRITE ("Победа")
WAITMS(100)
ELSE
LOGWRITE ("Поражение")
END_IF
Спасибо, всё оказалось так просто. Когда попробую отпишусь.Здравствуйте, прошу подсказать как сделать запись информации о результате матча в блокнот.
Вставь в начале скрипта, файл появится рядом со скриптом.Code: (clickermann) [Select]#logfile "Log.txt"
Поставь в скрипте после появления экрана с победа или поражение, создай снимок надписи "победа" и положи рядом со скриптомCode: (clickermann) [Select]GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "pobeda.bmp", -1, 95)
LOGWRITE ("Победа")
WAITMS(100)
ELSE
LOGWRITE ("Поражение")
END_IF
#name "PlayV2"
WNDPOS(459372,0,0)
GETSCREEN //Проверка
IF_PICTURE_IN (5,93, 40,133, "back.bmp", -1, 80)
LCLICK($_return1, $_return2)
LCLICK($_return1, $_return2)
WAITMS(1000)
ELSE
KEYPRESS(#W)
WAITMS(250)
END_IF
GETSCREEN //Играть
IF_PICTURE_IN (47,187, 128,222, "igr.bmp", -1, 55)
LCLICK($_return1, $_return2)
WAITMS(500)
END_IF
WAITMS(1000)
GETSCREEN //Обучен.
IF_PICTURE_IN (400,121, 438,151, "Obuch.bmp", -1, 90)
LCLICK($_return1, $_return2)
WAITMS(500)
ESLE
KEYPRESS(#W)
WAITMS(500)
END_IF
WAITMS(1000)
GETSCREEN //Тим дезматч
IF_PICTURE_IN (61,230, 176,326, "TDM.bmp", -1, 70)
LCLICK($_return1, $_return2)
WAITMS(500)
END_IF
WAIT(20)
GETSCREEN //Перс
IF_PICTURE_IN (163,242, 676,421, "drej.bmp", -1, 50)
LCLICK($_return1, $_return2)
WAITMS(2000)
ELSE
GETSCREEN //Перс2
IF_PICTURE_IN (163,242, 676,421, "Vivian.bmp", -1, 55)
LCLICK($_return1, $_return2)
WAITMS(1500)
ELSE
GETSCREEN //Перс3
IF_PICTURE_IN (163,242, 676,421, "Kessi.bmp", -1, 55)
LCLICK($_return1, $_return2)
WAITMS(1500)
END_IF
END_IF
END_IF
GETSCREEN //Выбрать
IF_PICTURE_IN (327,428, 509,480, "accept.bmp", -1, 50)
WAITMS(500)
LCLICK($_return1, $_return2)
END_IF
WAIT(15)
$check = 0
WHILE($check = 0)
GETSCREEN //Награда
IF_PICTURE_IN (330,455, 550,492, "Blueclose.bmp", -1, 40)
$check = 1
LCLICK($_return1, $_return2)
WAITMS(500)
ELSE //Награда вариант 2
$check = 1
IF_PICTURE_IN (430,399, 535,444, "RedClose.bmp", -1, 60)
LCLICK($_return1, $_return2)
LCLICK($_return1, $_return2)
WAITMS(300)
ELSE //Награда вариант 3
$check = 1
IF_PICTURE_IN (430,399, 535,444, "Okk.bmp", -1, 65)
LCLICK($_return1, $_return2)
LCLICK($_return1, $_return2)
WAITMS(2500)
ELSE
KEYDOWN(#W)
WAITMS(1500)
KEYUP(#W)
WAITMS(500)
KEYPRESS(#F)
WAITMS(500)
KEYDOWN(#D)
WAITMS(1500)
KEYUP(#D)
WAITMS(500)
KEYDOWN(#W)
WAITMS(1500)
KEYUP(#W)
WAITMS(500)
KEYDOWN(#A)
WAITMS(1500)
KEYUP(#A)
WAITMS(500)
KEYPRESS(#Q)
WAITMS(500)
KEYDOWN(#W)
WAITMS(1500)
KEYUP(#W)
WAITMS(500)
KEYDOWN(#D)
WAITMS(1500)
KEYUP(#D)
WAITMS(1500)
END_IF
END_IF
END_IF
END_CYC
// Тут должна находится запись в лог
// Тут должна находится запись в лог
GETSCREEN //Проверка
IF_PICTURE_IN (5,93, 40,133, "back.bmp", -1, 80)
LCLICK($_return1, $_return2)
LCLICK($_return1, $_return2)
WAITMS(1000)
ELSE
KEYPRESS(#W)
WAITMS(250)
END_IF
KEYPRESS(#F)
WAIT(3)
$cw=1
while($cw=1)
getscreen
if_pixel_in(1832, 245, 1832, 250, 3390003)
$cw=1
else
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
IF(pxlcount(1832, 245, 1832, 250, 3390003) = 1)
KEYPRESS(#F)
waitms(1)
END_IF
waitms(50)
end_if
end_cyc