Выцепить № поломоной шмотки после Weapon Repair

Общие вопросы по OpenKore обсуждаются здесь. Можно сказать, что это - основной раздел форума.
Возник вопрос? Вам сюда.

Модератор: 4epT

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Zellos
Начинающий
Сообщения: 29
Зарегистрирован: Чт сен 20, 2007 1:28 am

Выцепить № поломоной шмотки после Weapon Repair

Сообщение Zellos »

В общем после того как БС заюзал Weapon Repair в консоли появляется следующая запись:

Код: Выделить всё

-------Repair List-------
№ шмотка
-------------------------
Так вот помогите выцепить № перед шмоткой для дальнейшего подставления в команду "repair".
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

АМ чиним {
консоль /(\d+) шмотка/
калл {
лог чиним шмотку с номером: $.lastMatch1
}
}
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Zellos
Начинающий
Сообщения: 29
Зарегистрирован: Чт сен 20, 2007 1:28 am

Сообщение Zellos »

Это то я понял. Но у меня получается так выцепить если меняется только 1 состовляющая строки. Например на скачках
console /В этом забеге победил Монстр-(\d)!/

Но тут каждый раз меняется вся строка.
у одного будет
10 Main Gauch
а у другого
9 Mink Coat

Если я напишу например
console /(\d+) Silk Robe/
то срабатывать это будет только если у перса есть поломанная силка.
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

Нужно использовать регулярные выражения
vit
Бывалый
Сообщения: 624
Зарегистрирован: Вс мар 25, 2007 9:18 pm
Сервер RO:: localhost
Откуда: Санкт-Петербург

Сообщение vit »

Ну, как я предполагаю, номера всегда начинаются с нуля, так что если сломана всего одна шмотка, то номер её будет 0. Если две, то соответственно 0 и 1, и т. д.
Можно всегда брать 0 и запускать макрос несколько раз, если чинить надо несколько вещей.
Zellos
Начинающий
Сообщения: 29
Зарегистрирован: Чт сен 20, 2007 1:28 am

Сообщение Zellos »

Не так всё просто. Номер шмотки, это её номер в инвентаре у перса, а не в очереди на починку. То есть одна и таже шмотка каждый раз может быть под дургим номерами.
Нужно использовать регулярные выражения
Можно поподробней?
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

Выложи лог починки вручную из консоли
Zellos
Начинающий
Сообщения: 29
Зарегистрирован: Чт сен 20, 2007 1:28 am

Сообщение Zellos »

Вот я вручную починил 4 шмотки.

Код: Выделить всё

sp 108 0
You are casting Weapon Repair on player asdsad (0) (time 2000ms)
--------Repair List--------
7 Silk Robe
8 Silk Robe
9 Mink Coat
10 Silver Robe
---------------------------
repair 9
You use Weapon Repair on Player asdsad (0) : Lv 1
Inventory Item Removed: Steel (0) x 1
Successfully repaired Mink Coat.
sp 108 0
You are casting Weapon Repair on player asdsad (0) (time 2000ms)
--------Repair List--------
7 Silk Robe
8 Silk Robe
10 Silver Robe
---------------------------
repair 8
You use Weapon Repair on Player asdsad (0) : Lv 1
Inventory Item Removed: Steel (0) x 1
Successfully repaired Silk Robe.
sp 108 0
You are casting Weapon Repair on player asdsad (0) (time 2000ms)
--------Repair List--------
7 Silk Robe
10 Silver Robe
---------------------------
repair 10
You use Weapon Repair on Player asdsad (0) : Lv 1
Inventory Item Removed: Steel (0) x 1
Successfully repaired Silver Robe.
sp 108 0
You are casting Weapon Repair on player asdsad (0) (time 2000ms)
--------Repair List--------
7 Silk Robe
---------------------------
repair 7
You use Weapon Repair on Player asdsad (0) : Lv 1
Inventory Item Removed: Steel (0) x 1
Successfully repaired Silk Robe.
И вот какие номера у этих шмоток, если смотреть инвентарь того перса которому чинили.

Код: Выделить всё

i
-----------Inventory-----------
-- Equipment (Equipped) --
1    Guard [Khalitzburg] [1] -- Shield (32)               
2    Shoes [Sohee] [1] -- Foot Wear (64)                  
3    +4 Glove [Zerom] [1] -- Right Accessory (8)          
4    +6 Muffler [Raydric] [1] -- Cape (4)                 
5    +7 Survivor's Rod [Drops] [1] -- One-Handed Weapon (2) 
6    Glove [Creamy] [1] -- Left Accessory (128)           
-- Equipment (Not Equipped) --
7    Silk Robe [Pupa] [1] (Weapon)                        
8    Silk Robe (Weapon)                                   
9    Mink Coat [1] (Weapon)                               
10   Silver Robe (Weapon)                                 
11   +7 Lord's Clothes [Baby Desertwolf] [1] (Weapon)     
-- Non-Usable --
-- Usable --
0    White Potion x 10                                    
-------------------------------
То есть как я говорил выше. Номер шмотки- это её порядковый номер в инвентаре у того кому чинят.
Ra3iel_
Начинающий
Сообщения: 46
Зарегистрирован: Пн ноя 20, 2006 1:58 am

Сообщение Ra3iel_ »

у нас нету случаем символа перехода на новую строку?
что-ндь типа
automacro repair1 {
console /--------Repair List-------- (\n) (\d+) /
run-once 1
call {
do reapir $.lastmatch1
release repair1
}
}

Ну это так ток догадки. синтаксис вообще может быть ниачем ))

Вобщем суть в том чтобы в консоле поймать не меняющуюся часть (в нашем случае репаир лист) после чего сделать переход на новую строку и там поймать число
Святой ангел смерти...
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

Блина парни :)
Мы забыли про repairAuto
Вот тут описание: http://www.openkore.com/wiki/index.php?title=RepairAuto
Zellos
Начинающий
Сообщения: 29
Зарегистрирован: Чт сен 20, 2007 1:28 am

Сообщение Zellos »

В каком файле это править?

Спасибо за помощь. =)
Ra3iel_
Начинающий
Сообщения: 46
Зарегистрирован: Пн ноя 20, 2006 1:58 am

Сообщение Ra3iel_ »

Zellos
попробуй мой вариант, мне прост интересно сработает или нет
Святой ангел смерти...
Zellos
Начинающий
Сообщения: 29
Зарегистрирован: Чт сен 20, 2007 1:28 am

Сообщение Zellos »

Вот что получается

Код: Выделить всё

(From: asdsad) : remont
[macro] automacro repair triggered.
You are standing.
Calculating route to: Alberta(alberta): 55, 57
You are casting Weapon Repair on player asdsad (0) (time 2000ms)
--------Repair List--------
7 Silk Robe
---------------------------
[macro] tempMacro8 error: error in 7: syntax error
You are sitting.
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

Zellos
Добавил repairAuto 1 в control/config.txt ?
Ra3iel_
Начинающий
Сообщения: 46
Зарегистрирован: Пн ноя 20, 2006 1:58 am

Сообщение Ra3iel_ »

console /--------Repair List-------- (\n) (\d+) /
попробуй изменить на
console /--------Repair List-------- (\n) (\d+) (.+\n)/

или и то и другое но без скобок
Святой ангел смерти...
Ответить