whenStatusActive список статусов

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

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

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
david
Начинающий
Сообщения: 48
Зарегистрирован: Ср янв 30, 2008 9:21 pm

whenStatusActive список статусов

Сообщение david »

Есть такой блог:
doCommand ss 228 10;;craft 7136 {
whenStatusActive Marionette Control,Gloria,Blessing
timeout 0.4
sp > 50
}

Но срабатывает он если хотя бы один из статусов висит на персонаже. Как сделать чтоб срабатывал тогда и только тогда, когда висеть будут все три статуса?
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Re: whenStatusActive список статусов

Сообщение Kissa2k »

Можно попробовать так

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

doCommand ss 228 10;;craft 7136 {
	whenStatusActive Marionette Control
	whenStatusActive Gloria
	whenStatusActive Blessing
	timeout 0.4
	sp > 50
}
Аватара пользователя
Сагпоименидурак
Грамотный
Сообщения: 284
Зарегистрирован: Сб дек 20, 2008 2:30 pm
Сервер RO:: Chaos

Re: whenStatusActive список статусов

Сообщение Сагпоименидурак »

david, отпишись пжл, хавает ли докоманд 3 статуса.
А ботоводство вообще само по себе является хобби для физиков-математиков-программистов (c) dvdc
NB! В личку не стучать - никому помогать не буду, ждите месяц, блджад!
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: whenStatusActive список статусов

Сообщение EternalHarvest »

Сагпоименидурак писал(а):david, отпишись пжл, хавает ли докоманд 3 статуса.
doCommand тут не при чём, это Self Conditions
david
Начинающий
Сообщения: 48
Зарегистрирован: Ср янв 30, 2008 9:21 pm

Re: whenStatusActive список статусов

Сообщение david »

Kissa2k писал(а):Можно попробовать так

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

doCommand ss 228 10;;craft 7136 {
	whenStatusActive Marionette Control
	whenStatusActive Gloria
	whenStatusActive Blessing
	timeout 0.4
	sp > 50
}
Было бы все настолько просто, я бы сделал именно так. Но в блоках с фигурными скобками нельзя дважды повторять одну и ту же опцию, не сработает. Тестил.

Стоял вот такой изврат, для решения конкретно это проблемы, только жуть какая то.

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

doCommand conf varim.disabled 1 {
	whenStatusInactive Gloria
	timeout 2
}
doCommand conf varim.disabled 1 {
	whenStatusInactive Blessing
	timeout 2
}
doCommand conf varim.disabled 1 {
	whenStatusInactive Marionette Control
	timeout 2
}
doCommand conf varim.disabled 0 {
	whenStatusActive Gloria
	timeout 4
}
#7175 Fire Bottle
#7176 Acid Bottle
doCommand ss 228 10;;craft 7136 {
	label varim
	whenStatusActive Marionette Control
	timeout 0.4
	sp > 50
	disabled 1
}
Можно попроще? посоветуйте пожалуйста.

Добавлено спустя 1 час 39 минут 26 секунд:
И сразу.
Разъясните мне дураку, как это работает в ДуКоманде:

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

whenFlag 
whenNotFlag
david
Начинающий
Сообщения: 48
Зарегистрирован: Ср янв 30, 2008 9:21 pm

Re: whenStatusActive список статусов

Сообщение david »

А вот ещё один вопрос.
Допустим хочу чтобы блок ДоКомманда выполнялся тогда и только тогда, когда в конфиге стоит от балды придуманная команда:
link
0 или 1

А в самом блоке ДоКоманда
inLink 1
или
inLink 0

Какую менно строку нужно добавить в файл Миск.пм?
Получилось что то типа этого, только не работает.

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

if ($config{$prefix . "_inLink"} > 0) { return 0 unless ($flags{$config{$prefix . "_link"}} != 1); }
И вообще может я туплю, разъясните экстрасенсы o_0
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Re: whenStatusActive список статусов

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

david, так ты используй уже имеющуюся опцию "disable 0|1"
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
david
Начинающий
Сообщения: 48
Зарегистрирован: Ср янв 30, 2008 9:21 pm

Re: whenStatusActive список статусов

Сообщение david »

Вообщем один бот обкастовывающий, остальные бегают за кастами.
Через !include в "бегающих" есть одинаковые куски конфига, и мне нужно ввести новый параметр в конфиг.

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

Re: whenStatusActive список статусов

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

один параметр который будет только у одного из бегающих?? или чё? не понимаю..
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
david
Начинающий
Сообщения: 48
Зарегистрирован: Ср янв 30, 2008 9:21 pm

Re: whenStatusActive список статусов

Сообщение david »

ну вот допустим стоит в конфиге всех ботов такая фигня:
!include D:BotRO...doCommand.txt

в "doCommand.txt" стоит:

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

###usr usr гык гык

doCommand c @warp 1 {
	timeout 3
	hp < 30%
	inLockOnly 1
}

doCommand c @warp 1 {
	timeout 3
	sp < 34
	inLockOnly 1
}

doCommand is Fly Wing {
	timeout 2
	hp < 50%
	aggressives > 3
	inLockOnly 1
}


doCommand c @warp 6;;ai manual {
	timeout 2
	whenStatusInactive Spirit
}

doCommand ai on;;c @warp 1 {
	inMap morocc
	timeout 2
	whenStatusActive Spirit
	manualAI 1	
}

doCommand is str5 {
	inInventory str5 > 0
	timeout 10
	whenStatusInactive Steamed Tongue
}


###---High Priest---###

doCommand is Fly Wing {
	timeout 3
	hp < 10%
	inLockOnly 1
	isJob High Priest
}

doCommand ss 361 5 {
	whenStatusInactive Assumptio
	timeout 3
	inLockOnly 1
	isJob High Priest
	disabled 1
}

###---Нифель запинка---###

doCommand move 19 151 {
	timeout 10
	inMap niflheim
}
Как правило запускаю сразу ботов 5.
и допустим я хочу чтобы блок:
doCommand c @warp 6;;ai manual {
timeout 2
whenStatusInactive Spirit
}
Выполнялся только у тех ботов, которых в конфиге будет стоять новый параметр "link 1".
А в блок Докоманда добавить inLink 1

А как не знаю.

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

if ($config{$prefix . "_inLink"} > 0) { return 0 unless ($flags{$config{$prefix . "_link"}} != 1); }
Добавлено спустя 4 часа 33 минуты 3 секунды:
Вот так вроде бы все работает именно так как мне надо:)

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

	if ($config{$prefix . "_inLink"} > 0) { return 0 unless ($config{link}); }

Может все же кто нибудь знает как сделать:
Есть такой блог:
doCommand ss 228 10;;craft 7136 {
whenStatusActive Marionette Control,Gloria,Blessing
timeout 0.4
sp > 50
}

Но срабатывает он если хотя бы один из статусов висит на персонаже. Как сделать чтоб срабатывал тогда и только тогда, когда висеть будут все три статуса?
david
Начинающий
Сообщения: 48
Зарегистрирован: Ср янв 30, 2008 9:21 pm

Re: whenStatusActive список статусов

Сообщение david »

Есть такой блог:
doCommand ss 228 10;;craft 7136 {
whenStatusActive Marionette Control,Gloria,Blessing
timeout 0.4
sp > 50
}

Но срабатывает он если хотя бы один из статусов висит на персонаже. Как сделать чтоб срабатывал тогда и только тогда, когда висеть будут все три статуса?
Сделал так:
Открыл файл Misc.pm

нашел строчку:

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

	if ($config{$prefix . "_whenStatusActive"}) { return 0 unless (whenStatusActive($config{$prefix . "_whenStatusActive"})); }
добавил после неё ещё

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

	if ($config{$prefix . "_whenStatusActive2"}) { return 0 unless (whenStatusActive($config{$prefix . "_whenStatusActive2"})); }
	if ($config{$prefix . "_whenStatusActive3"}) { return 0 unless (whenStatusActive($config{$prefix . "_whenStatusActive3"})); }
	if ($config{$prefix . "_whenStatusActive4"}) { return 0 unless (whenStatusActive($config{$prefix . "_whenStatusActive4"})); }
	if ($config{$prefix . "_whenStatusActive5"}) { return 0 unless (whenStatusActive($config{$prefix . "_whenStatusActive5"})); }
Максимум на что хватило сейчас мозгов, но все работает именно так как надо:)
Ответить