проверка на наличие чужих игроков / doCommandPlMod / etc

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

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

ovanur
Новичок
Сообщения: 2
Зарегистрирован: Пн янв 07, 2008 3:57 pm

проверка на наличие чужих игроков / doCommandPlMod / etc

Сообщение ovanur »

Как зделать в атомакросе чтоб он вызывался на определенной (локации (например pay_dun05) и когда рядом находится другой игрок\игроки)?
На локации это понятно что location pay_dun05, а вот с проверкой на наличие других игроков проблема... :(
+
Можно ли через макрос использовать скиллы? (например шторм гаст на себя... 1раз)

Помогите пожалуйста! :roll:

Вот нашел такую команду - ss(<skill #>)[<level>]
<skill #> номер скилла из списка скиллов, который можно получить вызвав команду skills.
<level> уровень скилла.
Использует скилл на себе.
или
sl(<skill #> <x> <y>)[<level>]
<skill #> номер скилла из списка скиллов, который можно получить вызвав команду skills.
<x> x-координата.
<y> y-координата.
<level> уровень скилла.
Использует скилл на локации.
Если вместо х и у - написать $.pos будет ли так работать?
Последний раз редактировалось ovanur Вт янв 08, 2008 12:24 pm, всего редактировалось 2 раза.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Со вторым пунктом делу помочь можно. А вот извини насчет "локации" и "применения скиллов" - изволь найти информацию сам.

Добавлено спустя 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
}
Добавлено спустя 4 минуты 24 секунды:

NB: Модификация как следует не испытана!
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

перенесено в "плагины".

Добавлено спустя 2 минуты 49 секунд:

Если я правильно помню, то у ОК довольно грамотно сделан блок скиллов. И не смотря на то, что тебе, афтар, нужен "граундСкилл", ты можешь писать ss ## - он скастует его под себя.
Ну, и inMap опция в блоках проверки селфКондишена тоже есть.

Так что... задачка решена. ;)

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

Правда, обошлись без макроса. Ну, что поделаешь, иногда без него легче, чем с ним. :cry:
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
ovanur
Новичок
Сообщения: 2
Зарегистрирован: Пн янв 07, 2008 3:57 pm

Сообщение ovanur »

(удалено за ...)
Последний раз редактировалось ovanur Вт янв 08, 2008 8:55 pm, всего редактировалось 1 раз.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

ovanur писал(а):чтоб на определенной карте когда появится другой игрок, чар винганулся
Хрена тебе лысого. Ты про "винганулся" впервые заикнулся (под это в config.txt есть особая опция, читай доку), а до этого что-то морозил про сторм-гаст. Читай доку. :evil:
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Ответить