Страница 1 из 2
Как ботом попросить приста-бота сделать скил
Добавлено: Чт ноя 23, 2006 11:34 pm
Grodeco
Не понимаю почему, но прист иногда тупит не не лечит
partySkill Heal {
lvl 10
notInTown 1
target_hp < 80%
}
Идет массированная атака, а прист как бы зазевался на неск. секунд.
Это не постоянно, поэтому предполагаю, что до приста не доходит вовремя инфа от сервера.
В связи с этим как попросить приста скастовать Heal или другие касты желательно по номеру скила.
Надо кастовать скил, когда у бота не приста мало СП и вокруг не более 1 агрессора.
Догадывають, что через приват чат... но как хз:)
ПАСИБА!
Добавлено: Пт ноя 24, 2006 12:31 am
мираж
А ты уверен что присту не мешают кастовать атакующие его самого мобы?
Добавлено: Пт ноя 24, 2006 12:32 am
piroJOKE
(Может прист начинает атаковать мобов, а не лечит?)
Добавлено: Пт ноя 24, 2006 12:45 am
Grodeco
1. Клипа с феном.
2. Атака кого либо отключина.
Есть 3 возможности "тормозить"
1. Задержка после каста
2. Недоступность (стоит за преградой или мобы не дают подойти)
3. Лаг сервера? (до приста не дошло состояние ХП цели)
В любом случае есть необходимость кастовать скил "I'll sacrifice myself for you" при СП менее определенного значения у бота-не-приста.
Добавлено: Пт ноя 24, 2006 3:57 am
kLabMouse
Grodeco
Ну. Ет просто. Лезем в ChatQueue.pm и добавляем команды нашему бравому присту.
Добавлено: Пт ноя 24, 2006 10:03 am
piroJOKE
ЭЭэээ, да вы чего, есть куча макро на эту тему! Но у мну пад руками их ща нет.
Добавлено: Пт ноя 24, 2006 1:33 pm
kLabMouse
piroJOKE
Выставь. Пусть нубы учатся... А мне всегда легче чё-нить дописать на перле.
Добавлено: Пт ноя 24, 2006 4:03 pm
Grodeco
Хотяб пример, плиз.
Добавлено: Пт ноя 24, 2006 4:07 pm
piroJOKE
Это черт знает когда было. Я давно их не использовал... Хм... Поищу, но не прямо щас.
Добавлено: Пт ноя 24, 2006 4:08 pm
kLabMouse
Вот стандартный... Аги
Код: Выделить всё
# Support Skills
} elsif ($switch eq "agi"){
my $targetID = getIDFromChat(\%players, $user, $after);
if ($targetID eq "") {
sendMessage($net, $type, getResponse("healF1"), $user) if $config{verbose};
} elsif ($char->{skills}{AL_INCAGI}{lv} > 0) {
my $failed = 1;
for (my $i = $char->{skills}{AL_INCAGI}{lv}; $i >=1; $i--) {
if ($char->{sp} >= $skillsSP_lut{AL_INCAGI}{$i}) {
main::ai_skillUse('AL_INCAGI', $i, 0, 0, $targetID);
$failed = 0;
last;
}
}
if (!$failed) {
sendMessage($net, $type, getResponse("healS"), $user) if $config{verbose};
}else{
sendMessage($net, $type, getResponse("healF2"), $user) if $config{verbose};
}
} else {
sendMessage($net, $type, getResponse("healF3"), $user) if $config{'verbose'};
}
$timeout{ai_thanks_set}{time} = time;
А просиш дукомандом.
типа так.
doCommand pm Prist agi {
WhenStatusInactive Incerase Agility
timeout 5
}
Ну... ето для примера.
Добавлено: Пт ноя 24, 2006 4:16 pm
piroJOKE
ЭЭэ, погоди, а какие настройки у приста под это? Или... ничего даже включать не надо?
Добавлено: Пт ноя 24, 2006 4:56 pm
kLabMouse
piroJOKE
Не нуно. Есть скилл.. кастует максимальній. Нету даёт что нету.
Вот
Код: Выделить всё
elsif ($char->{skills}{AL_INCAGI}{lv} > 0) {
Если скилл Аги есть.
Все другие скилы моно делать по аналогии. только менять ключи и Идентификаторы скилов.
Добавлено: Пт ноя 24, 2006 4:59 pm
piroJOKE
(Имхо не очень хорошее решение. Попросит злодей аги, и получит его мгновенно. --> Паливо.)
Добавлено: Пт ноя 24, 2006 5:01 pm
kLabMouse
Ты забыл что оно пашет только когда тот кто просит прописан в overallAuth.txt с 1.
Те. Ето удалённая команда боту. Посмотри ChatQueue.pm оно там.
Добавлено: Пт ноя 24, 2006 5:03 pm
piroJOKE
>__<
А, вот каг.... Хм... Не, все равно без практики - не совсем врубаюсь, что как. Посмотрю как это пашет, позже.
ЗЫ: В любом случае мне это не очень нравится. Помнишь древний разговор про общение ботов через IRC? Сие было бы куда прогрессивней.