Как зделать в атомакросе чтоб он вызывался на определенной (локации (например pay_dun05) и когда рядом находится другой игрок\игроки)?
На локации это понятно что location pay_dun05, а вот с проверкой на наличие других игроков проблема...
+
Можно ли через макрос использовать скиллы? (например шторм гаст на себя... 1раз)
Помогите пожалуйста!
Вот нашел такую команду - ss(<skill #>)[<level>]
<skill #> номер скилла из списка скиллов, который можно получить вызвав команду skills.
<level> уровень скилла.
Использует скилл на себе.
или
sl(<skill #> <x> <y>)[<level>]
<skill #> номер скилла из списка скиллов, который можно получить вызвав команду skills.
<x> x-координата.
<y> y-координата.
<level> уровень скилла.
Использует скилл на локации.
Если вместо х и у - написать $.pos будет ли так работать?
проверка на наличие чужих игроков / doCommandPlMod / etc
Модератор: 4epT
проверка на наличие чужих игроков / doCommandPlMod / etc
Последний раз редактировалось ovanur Вт янв 08, 2008 12:24 pm, всего редактировалось 2 раза.
- piroJOKE
- Модератор
- Сообщения: 8205
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Со вторым пунктом делу помочь можно. А вот извини насчет "локации" и "применения скиллов" - изволь найти информацию сам.
Добавлено спустя 1 час 51 минуту 59 секунд:
PS: А вот модифицированный doCommand, как раз для такого случая.
К нему добавлен блок из CoreLogic'а, срабатывающий когда рядом находится "чужой" игрок (чужой - не из своей пати).
doCommandPlMod.pl:
пример использования
Добавлено спустя 4 минуты 24 секунды:
NB: Модификация как следует не испытана!
Добавлено спустя 1 час 51 минуту 59 секунд:
PS: А вот модифицированный doCommand, как раз для такого случая.
К нему добавлен блок из CoreLogic'а, срабатывающий когда рядом находится "чужой" игрок (чужой - не из своей пати).
doCommandPlMod.pl:
Код: Выделить всё
package doCommand;
use strict;
use Plugins;
use Globals;
use Log qw(message warning error);
use Misc;
use Utils;
use Commands;
use Time::HiRes qw(time);
Plugins::register('doCommand', 'do a command on certain conditions', \&Unload);
my $hook = Plugins::addHook('AI_post', \&doCommand);
sub Unload {
Plugins::delHook('AI_post', $hook);
}
my $time;
sub doCommand {
my $prefix = "doCommand_";
for (my $i =0; (exists $config{$prefix.$i}); $i++) {
if ((main::checkSelfCondition($prefix.$i)) && main::timeOut($time, $config{$prefix.$i."_timeout"})) {
my $todo = 1;
if ($config{$prefix.$i."_onlyWhenUnSafe"}) {
$todo = 0;
foreach (@playersID) {
if ($_ && !$char->{party}{users}{$_}) {
$todo = 1;
last;
}
}
}
if ($todo) {
Commands::run($config{$prefix.$i});
$time = time;
}
}
}
}
return 1;
Код: Выделить всё
doCommand pl {
onlyWhenUnSafe 1
timeout 3
}
NB: Модификация как следует не испытана!
- piroJOKE
- Модератор
- Сообщения: 8205
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
перенесено в "плагины".
Добавлено спустя 2 минуты 49 секунд:
Если я правильно помню, то у ОК довольно грамотно сделан блок скиллов. И не смотря на то, что тебе, афтар, нужен "граундСкилл", ты можешь писать ss ## - он скастует его под себя.
Ну, и inMap опция в блоках проверки селфКондишена тоже есть.
Так что... задачка решена.
Добавлено спустя 6 минут 11 секунд:
Правда, обошлись без макроса. Ну, что поделаешь, иногда без него легче, чем с ним.
Добавлено спустя 2 минуты 49 секунд:
Если я правильно помню, то у ОК довольно грамотно сделан блок скиллов. И не смотря на то, что тебе, афтар, нужен "граундСкилл", ты можешь писать ss ## - он скастует его под себя.
Ну, и inMap опция в блоках проверки селфКондишена тоже есть.
Так что... задачка решена.
Добавлено спустя 6 минут 11 секунд:
Правда, обошлись без макроса. Ну, что поделаешь, иногда без него легче, чем с ним.
(удалено за ...)
Последний раз редактировалось ovanur Вт янв 08, 2008 8:55 pm, всего редактировалось 1 раз.