Author Topic: Сценарий для ролла вещей в Path of Exile  (Read 2994 times)

0 Members and 1 Guest are viewing this topic.

vizaritm

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Сценарий для ролла вещей в Path of Exile
« on: October 16, 2019, 04:50:40 PM »
Path of Exule поддерживает копипаст вещей в текст  свойств вещей в буфер обмена получает что то в таком виде:
Rarity: Rare
Ghoul Goad
Titan Greaves
--------
Armour: 465 (augmented)
--------
Requirements:
Level: 68
Str: 120
--------
Sockets: R-B
--------
Item Level: 85
--------
93% increased Armour
8% increased Rarity of Items found
+32% to Fire Resistance
+48% to Cold Resistance
+45% to Lightning Resistance
17% increased Stun and Block Recovery

Надо заставит сверяться с большим списком(массивом) последнии абзацы.

Модификации можно менять сферами в сундуке, обычно все начинается со сферы превращения которая добавляет 1-2 мода, если не устравает сфера перемен которая изменяет вещь на 1-2 мода, если все устраивает делается еще шаг на 3 мод сферой царей. Если не устраивает, чистится и по новой, дальше лучше процесс делать ручками, но до этого момента может занять очень много времени. Особенно обидно если не впопыхах не уследишь и уничтожишь вожделенный рол.
Цифры разбросаны в диапозонах "tier", который и надо ловить. Также бывает мод в две строки 41% increased Armour и 17% increased Stun and Block Recovery, отдельный 52% increased Armour намного больше.

Что то мне подсказывает что обработка результатов не задача автокликера или все же есть какая-то возможность?
Тогда идея засунуть данные в эксел, и сделать проверку по совпадению из массива и количества этих совпадений. В итоге какая то ячейка будет менять цвет в зависимости от условий.
Так то мне процесс понятен, кроме одного, я не знаю как работать с числами в диапазоне с текстом. Походу стоит как то вытаскивать из одной ячейки цифры и текст.
« Last Edit: October 16, 2019, 05:04:28 PM by vizaritm »

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: Сценарий для ролла вещей в Path of Exile
« Reply #1 on: October 16, 2019, 07:06:58 PM »
Опиши задачу отдельно от игры и игровых терминов. Тебе нужно сравнить 1 текст с другим и вывести несоответствия?
« Last Edit: October 16, 2019, 07:10:15 PM by Космич »
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

vizaritm

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Сценарий для ролла вещей в Path of Exile
« Reply #2 on: October 17, 2019, 02:05:34 AM »
В общих чертах наверное да.
Шаг 1. Автокликер кликает мышкой, копирует тект в буфер обмена сверяется с базой.
Если есть 2 совпадение (допустим нашло +48% to Cold Resistance и +45% to Lightning Resistance) переход к шагу 3
        если нет ищет 1 совпадение (допустим +48% to Cold Resistance) переход к шагу 2
               если нет преход к шагу 1
Шаг 2. Кликаем мышкой, сверяемся с базой
Если есть 2 совпадение (допустим нашло +48% to Cold Resistance и +45% to Lightning Resistance) переход к шагу 3
        если нет преход к шагу 1
Шаг 3. Кликаем мышкой, сверяемся с базой
Если есть 3 совпадения остановка (допустим нашло +45% to Cold Resistance и +45% to Lightning Resistance и 15% increased Rarity of Items found)
        если нет переход к шагу 1

Фишка в том что меня устроят значения выше +45% to Cold Resistance и +45% to Lightning Resistance и 15% increased Rarity of Items found, но не ниже. То есть в диапазоне 45-50 и 15-20 соответственно.
Различных модификатор довольно много, пример для ботинок

Дополнительная сложность, если присмотреться к картинке есть позиция "52% increased Armour" и "41% increased Armour 17% increased Stun and Block Recovery" - в буфер обмена сохранилось как "93% increased Armour", т.е.
В шаге 1
если появляется "17% increased Stun and Block Recovery" и "93% increased Armour" от 41 до 60 щаг 2
        если "100% increased Armour" переход к 3 шагу.

Так же хотелось бы ролл на желаемые модификаторы до шага 3.
Я думаю логику отдать exel, в нем результаты отобразить в цвете, от туда уже подхватывать шаги.
Пока застрял на проверки истины, не как не пойму рядом считает цифры, а в таблице полученные значения не хочет. Отсоединить значения от текста получилось макросом.
« Last Edit: October 17, 2019, 02:15:36 AM by vizaritm »

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: Сценарий для ролла вещей в Path of Exile
« Reply #3 on: October 17, 2019, 11:26:30 AM »
Не очень, но на твоём примере работает

Code: (clickermann) [Select]
#DEFINE #A_LOW: 97
#DEFINE #A_UP:  65

#DEFINE #Z_LOW: 122
#DEFINE #Z_UP:  90

#DEFINE #PLUS: 43
#DEFINE #PERCENT: 37

#DEFINE SEP: "--------"
#DEFINE SEP_LEN: 8


//Тут твои клики

$str = STRCONCAT(FROMCLIP(), "$")
$start = STRPOS($str, SEP, STRPOS($str, SEP, STRPOS($str, SEP, STRPOS($str, SEP,  STRPOS($str, SEP) + SEP_LEN) + SEP_LEN) + SEP_LEN) + SEP_LEN) + SEP_LEN
$end = STRPOS($str, "$", $start)

PRINT($str, CHAR(13), CHAR(10))

$toColdResistance = 0
$toLightningResistance = 0
$increasedRarityofItemsfound = 0
$increasedArmour = 0

FOR($i = $start, $i < $end)
   $code = CODE(STRCUT($str, $i, 1))
   $number = 0
   $string = ""
   $size = 0
   FOR($i = $i, (($code >= #0) and ($code <= #9)) or ($code = #PLUS) or ($code = #PERCENT) )
      IF($code > #PLUS)
         $number = $number * 10 + CHAR($code)
      END_IF
      $code = CODE(STRCUT($str, $i + 1, 1))
   END_CYC
   FOR($i = $i, ((($size >= 0) and ($size <= 31)) and (($code >= #A_LOW) and ($code <= #Z_LOW)) or (($code >= #A_UP) and ($code <= #Z_UP)) or ($code = #SPACE)) )
      $string = STRFILTER(STRCONCAT($string, CHAR($code)), " ", 0)
      IF(($string = "toColdResistance") or ($string = "toLightningResistance")  or ($string = "increasedRarityofItemsfound") or ($string = "increasedArmour"))
         SETVAR(STRCONCAT("$", $string), $number)
      END_IF
      $code = CODE(STRCUT($str, $i + 1, 1))
      $size = $size + 1
   END_CYC
END_CYC


// Дальше твои услови
PRINT("$toColdResistance = ", $toColdResistance)
PRINT("$toLightningResistance = ",$toLightningResistance)
PRINT("$increasedRarityofItemsfound = ", $increasedRarityofItemsfound)
PRINT("$increasedArmour = ", $increasedArmour)

HALT

Code: () [Select]
11:21:15 Path of Exule поддерживает копипаст вещей в текст  свойств вещей в буфер обмена получает что то в таком виде:
Rarity: Rare
Ghoul Goad
Titan Greaves
--------
Armour: 465 (augmented)
--------
Requirements:
Level: 68
Str: 120
--------
Sockets: R-B
--------
Item Level: 85
--------
93% increased Armour
8% increased Rarity of Items found
+32% to Fire Resistance
+48% to Cold Resistance
+45% to Lightning Resistance
17% increased Stun and Block Recovery$

11:21:15 $toColdResistance = 48
11:21:15 $toLightningResistance = 45
11:21:15 $increasedRarityofItemsfound = 8
11:21:15 $increasedArmour = 93
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»