Плагин, получающий имя вещи из слота экипировки?

Дополнения к OpenKore, расширяющиее её функциональность, называются плагинами.

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

barmagloth
Энтузиаст
Сообщения: 71
Зарегистрирован: Сб ноя 03, 2007 9:55 am

Плагин, получающий имя вещи из слота экипировки?

Сообщение barmagloth »

Существует ли плагин, позволяющий получать (и/или присваивать переменной) имя вещи из конкретного слота экипировки?

macro.pl в чистом виде, как и консольная команда i eq этого делать не могут, а жаль.

Предположим, что такой плагин где-то есть и добавляет функцию get_equip(<slot>). Смотрите, как хорошо получилось бы:

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

macro set_weapon {
$rh = get_equip(rightHand)
$lh = get_equip(leftHand)
conf autoSwitch_default_rightHand $rh
autoSwitch_default_leftHand $lh
}
И вызывать этот макрос каждый раз как заточил оружие или вставил карту в ручном режиме под Xkore1 - вместо того чтобы править всё ручками. 8)

Ещё есть у меня наполовину реализованная идея самонастройки config.txt автомакросами, срабатывающими на класс персонажа, каким заходишь в игру - в ней тоже не хватает такой фишки - для записи специальных переменных, содержащих основное оружие для каждого персонажа.
Маньяк-мультовод с Raggame/Loki
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Ну отчего же, есть спецательная команда, eq, и возможность разгрести ее результат макросом.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
barmagloth
Энтузиаст
Сообщения: 71
Зарегистрирован: Сб ноя 03, 2007 9:55 am

Сообщение barmagloth »

Угу, только не eq, a i eq. Команда eq одевает вещи, а команда i eq показывает всё, что одето. Однако... есть идеи, как именно разгребать? Я ведь в регулярных выражениях того... не силён... :oops:

Есть ещё один шикарный вариант с регулярными выражениями. При экипировке "none" в правую руку чара, бот выдаёт в консоль название снятого оружия (и щита). Вот как бы их выдрать в переменные? Тогда можно будет автоматически прописывать последнее экипированное оружие в "дефолтное" и бот не будет бегать голым после добывания грыбочков - даже если изначально конфу прописать неверно... 8)

Добавлено спустя 11 минут 20 секунд:

В ту же кучу вопрос.

Правильная настройка дуплета для лучника выглядит например так:
attackSkillSlot Double Strafe {
sp >= 12
whenEquipped +4 Cross Bow [2]
notMonsters Poring,Lunatic,Fabre
}
Почему whenEquipped ? А потому, что если в руках у бота ничего нет (грыбочки перед дракой собирал), то он виснет, спамя во всю консоль "скилл не пашет". Ещё б ему пахать без лука в руках... Так вот как бы так написать, чтобы оно работало для ВСЕХ луков?

Предполагается, что "whenNotEquipped none" не сработает, т.к. нельзя указать, какой именно из слотов экипировки "не пустой".
Маньяк-мультовод с Raggame/Loki
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Флуд:
Проблемы синтаксиса Коры... таких "тупиков" в ней увы, много. :(
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

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

а нука попробуйте:

macro eq {
log @eval(exists $::char->{equipment}{topHead} ? $::char->{equipment}{topHead} : 'NONE')
log @eval(exists $::char->{equipment}{midHead} ? $::char->{equipment}{midHead} : 'NONE')
log @eval(exists $::char->{equipment}{lowHead} ? $::char->{equipment}{lowHead} : 'NONE')
log @eval(exists $::char->{equipment}{leftHand} ? $::char->{equipment}{leftHand} : 'NONE')
log @eval(exists $::char->{equipment}{rightHand} ? $::char->{equipment}{rightHand} : 'NONE')
log @eval(exists $::char->{equipment}{robe} ? $::char->{equipment}{robe} : 'NONE')
log @eval(exists $::char->{equipment}{armor} ? $::char->{equipment}{armor} : 'NONE')
log @eval(exists $::char->{equipment}{shoes} ? $::char->{equipment}{shoes} : 'NONE')
log @eval(exists $::char->{equipment}{leftAccessory} ? $::char->{equipment}{leftAccessory} : 'NONE')
log @eval(exists $::char->{equipment}{rightAccessory} ? $::char->{equipment}{rightAccessory} : 'NONE')
log @eval(exists $::char->{equipment}{arrow} ? $::char->{equipment}{arrow} : 'NONE')
}

Единственное, лажовенько, что шмотка выдирается как "Dragon Killer (36)"

вот " (36)" тут явно лишнее..
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
barmagloth
Энтузиаст
Сообщения: 71
Зарегистрирован: Сб ноя 03, 2007 9:55 am

Сообщение barmagloth »

4epT, ты гений! :Bravo: Действительно выдирается. :Yahoo!:
И даже в виде

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

$rh = @eval(exists $::char->{equipment}{rightHand} ? $::char->{equipment}{rightHand} : 'NONE')
работает.

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

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

а чего же ему не работать в таком виде.. вот дойти до такого вида было сложно.. т.к были проблемы:
когда пишешь: @eval(exists $::char->{equipment}{rightHand}) а в правой руке нефига не было, то вылетала ошибка вместе с корой :(

слух, а ты попробуй в конфиге прописать:

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

autoSwitch_default_rightHand Dragon Killer (36)
ну или своё любое оружее, мне кажется что эти скобки ему будут пофигу, по краейне мере в некоторых командах мусор отсекается
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Ответить