Помогите доработать скрипт для ловли скинов на 0.03 в Standoff 2 на Modified Lua (на базе Perfect Click).
//создано
// координаты для кнопки "только мои запросы"
int refreshBtnX = 591;
int refreshBtnY = 307;
// координаты для кнопки ввода цены
int inputPriceBtnX = 1500;
int inputPriceBtnY = 400;
// координаты для кнопок покупки
int buyBtnX = 1432;
int buyBtnY = 395;
// координаты для кнопки подтверждения
int confirmBtnX = 795;
int confirmBtnY = 605;
// координаты для кнопки отмены
int cancelBtnX = 209;
int cancelBtnY = 817;
// переменная для хранения предыдущей цены запроса = -
float previousPrice = 0.00;
// координаты области для анализа лота
int lotAreaTopLeftX = 1000;
int lotAreaTopLeftY = 300;
int lotAreaBottomRightX = 1100;
int lotAreaBottomRightY = 350;
// функция для анализа цены лота
float analyzeLotPrice() {
// Суть: получение среднего цвета и преобразование его в цену
float lotPrice = getColor(lotAreaTopLeftX, lotAreaTopLeftY); // заменить на подходящий вам метод
return lotPrice;
}
// функция для анализа статуса лота
bool isLotSold() {
// Суть: проверка статуса лота (купить/продано) по цвету
int statusColor = getColor(lotAreaTopLeftX, lotAreaTopLeftY);
return statusColor == /*цвет, который означает "продано"*/;
}
// основной цикл
while(!EXIT){
// захват текущей цены запроса
float currentPrice = getColor(priceAreaTopLeftX, priceAreaTopLeftY); // заменить на подходящий вам метод
// проверка на повышение цены
if(currentPrice > previousPrice + 0.01){
previousPrice = currentPrice;
// выставление новой цены покупки
float newPrice = currentPrice + 0.02;
// обновление лотов (двойное нажатие на "только мои запросы")
click(refreshBtnX, refreshBtnY);
sleep(500);
click(refreshBtnX, refreshBtnY);
sleep(200);
// ввод новой цены
click(inputPriceBtnX, inputPriceBtnY);
sleep(100);
typePrice(newPrice); // заменить на метод ввода цены
sleep(100);
// подтверждение
click(confirmBtnX, confirmBtnY);
sleep(5000);
// нажимаем кнопку отмены
click(cancelBtnX, cancelBtnY);
sleep(500);
// анализ цены лота
float cheapestLotPrice = analyzeLotPrice();
// анализ статуса лота
bool lotSold = isLotSold();
// если лот продан, обновляем лоты
if (lotSold) {
click(refreshBtnX, refreshBtnY);
sleep(500);
click(refreshBtnX, refreshBtnY);
sleep(200);
}
// проверка цены лота
if (cheapestLotPrice > currentPrice + 0.02) {
// ставим новый запрос
click(inputPriceBtnX, inputPriceBtnY);
sleep(100);
typePrice(newPrice); // заменить на метод ввода цены
sleep(100);
click(confirmBtnX, confirmBtnY);
sleep(5000);
click(cancelBtnX, cancelBtnY);
sleep(500);
}
}
sleep(1000);
}
```
Для доработки скрипта ловли скинов на 0.03 в Standoff 2 на Modified Lua, можно внести следующие улучшения и дополнения:
Улучшенная логика обновления цен:
Добавить проверку на минимальную цену.
Добавить паузу перед повторным обновлением цены.
Обработка ошибок:
Добавить обработку ошибок при неудачных операциях.
Оптимизация кликов:
Использовать более точные координаты для кликов.
Дополнительные функции анализа:
Добавить анализ статуса лота и проверку на его продажу.
Логирование:
Добавить логирование важных событий для отслеживания работы скрипта.
Вот доработанный скрипт:
// Создано
// Координаты для кнопок
int refreshBtnX = 591;
int refreshBtnY = 307;
int inputPriceBtnX = 1500;
int inputPriceBtnY = 400;
int buyBtnX = 1432;
int buyBtnY = 395;
int confirmBtnX = 795;
int confirmBtnY = 605;
int cancelBtnX = 209;
int cancelBtnY = 817;
// Переменные
float previousPrice = 0.00;
float minPrice = 0.00;
// Координаты для анализа лота
int lotAreaTopLeftX = 1000;
int lotAreaTopLeftY = 300;
int lotAreaBottomRightX = 1100;
int lotAreaBottomRightY = 350;
// Функции
float analyzeLotPrice()
{
float lotPrice = getColor(lotAreaTopLeftX, lotAreaTopLeftY);
return lotPrice;
}
bool isLotSold()
{
int statusColor = getColor(lotAreaTopLeftX, lotAreaTopLeftY);
return statusColor == /*цвет, который означает "продано"*/;
}
// Основной цикл
while (!EXIT)
{
// Захват текущей цены запроса
float currentPrice = getColor(priceAreaTopLeftX, priceAreaTopLeftY);
// Проверка на повышение цены
if (currentPrice > previousPrice + 0.01)
{
previousPrice = currentPrice;
// Выставление новой цены покупки
float newPrice = currentPrice + 0.02;
// Обновление лотов (двойное нажатие на "только мои запросы")
click(refreshBtnX, refreshBtnY);
sleep(500);
click(refreshBtnX, refreshBtnY);
sleep(200);
// Ввод новой цены
click(inputPriceBtnX, inputPriceBtnY);
sleep(100);
typePrice(newPrice);
sleep(100);
// Подтверждение
click(confirmBtnX, confirmBtnY);
sleep(5000);
// Отмена
click(cancelBtnX, cancelBtnY);
sleep(500);
// Анализ цены лота
float cheapestLotPrice = analyzeLotPrice();
// Анализ статуса лота
bool lotSold = isLotSold();
// Если лот продан, обновляем лоты
if (lotSold)
{
click(refreshBtnX, refreshBtnY);
sleep(500);
click(refreshBtnX, refreshBtnY);
sleep(200);
}
// Проверка цены лота
if (cheapestLotPrice > currentPrice + 0.02)
{
// Ставим новый запрос
click(inputPriceBtnX, inputPriceBtnY);
sleep(100);
typePrice(newPrice);
sleep(100);
click(confirmBtnX, confirmBtnY);
sleep(5000);
click(cancelBtnX, cancelBtnY);
sleep(500);
}
}
// Проверка на минимальную цену
if (currentPrice < minPrice)
{
minPrice = currentPrice;
// Логирование
log("Минимальная цена: " .. minPrice);
}
sleep(1000);
}
Этот скрипт включает в себя улучшенные проверки и обработку данных, а также более точные механизмы работы с ценами и лотами.