Если бота атакуют другие игроки > Телепорт

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

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

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
KillJoy
Начинающий
Сообщения: 42
Зарегистрирован: Вс май 20, 2007 7:37 pm

Если бота атакуют другие игроки > Телепорт

Сообщение KillJoy »

Я играю на сервере где PvP mode на всех картах кроме городов. И моего бота часто прибивают на картах. Как зделать чтобы когда на него идет атака (например там Fire bolt или Sonic blow) он использовал телепорт? А также если на него нападает Sage и Sage высасует всю ману и у бота нету маны чтобы он телепортонулься как зделать так чтобы он сьел ухо и зделал autotalk с хелером а потом пошел на lockmap???

Зарание благодорю за помошь!!!
Antarx
Бывалый
Сообщения: 640
Зарегистрирован: Вс янв 07, 2007 5:56 am

Сообщение Antarx »

Превосходство некоторых людей над окружающими одни считают несправедливостью, требующей уравнивания, другие - неполноценностью недовольных.
Выбор взгляда за Вами...
Изображение :)
KillJoy
Начинающий
Сообщения: 42
Зарегистрирован: Вс май 20, 2007 7:37 pm

Сообщение KillJoy »

Там сложновато я почти нечего не понял
KillJoy
Начинающий
Сообщения: 42
Зарегистрирован: Вс май 20, 2007 7:37 pm

Сообщение KillJoy »

Ладно начнем!!!

Вот плагин переделаный под телепорт правильный?
package PKTeleport;

use strict;

use Time::HiRes qw(time);
use Globals;
use Plugins;
use Utils;
use Network::Send;
use Log qw(debug message warning error);

Plugins::register('PKTeleport', 'Teleport from PK', \&onUnload);


my $hooks = Plugins::addHooks(
['is_casting', \&hookAvoidSkill, undef],
['packet_skilluse', \&hookAvoidSkill, undef],
);

sub onUnload {
Plugins::delHooks($hooks);
}

sub hookAvoidSkill {
return if ($char->{lv} < 51);

my $hookName = shift;
my $args = shift;
my $sourceID = $args->{sourceID};
my $targetID = $args->{targetID};
my $skillID = $args->{skillID};
if ($targetID eq $accountID &&
$sourceID ne $accountID &&
!$monsters{$sourceID}) {

my $skill = new Skills(id => $skillID);
if (existsInList($config{pkteleport_onskill},$skill->name)) {
sendSkillUse(\$remote_socket, 26, 1, $accountID);
my $player = $players($ID);
while ($player != ($skillsStatus{5})) {
sendSkillUse(\$remote_socket, 26, 1, $accountID);
)
}
}
}


return 1;
Тока я незнаю что с етой строчкой делать
while ($player != ($skillsStatus{5})) {
В конфиге прописуем
pkteleport_onskill (Skills)
напр. pkteleport_onskill Extremity Fist,Frost Diver,Fire Bolt
Ответить