id монстра в макросах / недокументированная игра с блоками
Модератор: 4epT
Правила форума
В форуме макросы "Макросы" разрешено только задавать вопросы по уже существующим макросам и просить помощь по недоработанным своим. При этом таким считается тот макрос который готов не менее чем на 2/3.
Если вы хотите попросить участников сообщества написать вам макрос, это можно сделать в разделе "сервис".
В форуме макросы "Макросы" разрешено только задавать вопросы по уже существующим макросам и просить помощь по недоработанным своим. При этом таким считается тот макрос который готов не менее чем на 2/3.
Если вы хотите попросить участников сообщества написать вам макрос, это можно сделать в разделе "сервис".
-
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
-
- Новичок
- Сообщения: 12
- Зарегистрирован: Пн апр 02, 2007 10:02 pm
помагите пожалуста вот часть конфига хачю чтоб с гео поглошяло сп также подскажите или напишите что надо иправить плиззз помагите.
attackSkillSlot Vigor Absorption {
lvl 1
dist 10
whenStatusActive Blessing
aggressives < 2
inLockOnly 1
notWhileSitting 1
notInTown 1
monsters Geographer
timeout 0
disabled 1
}
а куда вставлять вот эту чясть?
doCommand conf attackSkillSlot_0_disabled 1 {
sp > 90%
timeout 10
}
doCommand conf attackSkillSlot_0_disabled 1 {
sp < 20%
timeout 10
}
срузу после аатак сикил?? пожалуста напишити блин( монк сп несасет а пишеца attackSkillSlot_0_disabled 1 и он сидит
регенит сп( а не сасет с гео((
есче скажите как сделать что написать в конфиге и где=) чтоб он небил географера даже если геограефер его ударил! вот. он их небет но когда гео монка удоряяет он бёт гео
attackSkillSlot Vigor Absorption {
lvl 1
dist 10
whenStatusActive Blessing
aggressives < 2
inLockOnly 1
notWhileSitting 1
notInTown 1
monsters Geographer
timeout 0
disabled 1
}
а куда вставлять вот эту чясть?
doCommand conf attackSkillSlot_0_disabled 1 {
sp > 90%
timeout 10
}
doCommand conf attackSkillSlot_0_disabled 1 {
sp < 20%
timeout 10
}
срузу после аатак сикил?? пожалуста напишити блин( монк сп несасет а пишеца attackSkillSlot_0_disabled 1 и он сидит
регенит сп( а не сасет с гео((
есче скажите как сделать что написать в конфиге и где=) чтоб он небил географера даже если геограефер его ударил! вот. он их небет но когда гео монка удоряяет он бёт гео
-
- Профессионал
- Сообщения: 4776
- Зарегистрирован: Вс ноя 05, 2006 4:32 pm
zatata
Так будет лучше:
Так будет лучше:
attackSkillSlot Vigor Absorption {
label absorb
lvl 1
dist 10
whenStatusActive Blessing
aggressives < 2
inLockOnly 1
notWhileSitting 1
notInTown 1
monsters Geographer
timeout 0
disabled 1
}
doCommand conf absorb.disabled 1 {
sp > 90%
timeout 10
}
doCommand conf absorb.disabled 0 {
sp < 20%
timeout 10
}
-
- Новичок
- Сообщения: 12
- Зарегистрирован: Пн апр 02, 2007 10:02 pm
блн непонимаю воставил в конфиг вот так
attackSkillSlot Vigor Absorption {
label absorb
lvl 1
dist 10
whenStatusActive Blessing
aggressives < 2
inLockOnly 1
notWhileSitting 1
notInTown 1
monsters Geographer
timeout 0
disabled 1
}
doCommand conf absorb.disabled 1 {
sp > 90%
timeout 10
}
doCommand conf absorb.disabled 1 {
sp < 20%
timeout 10
}
но неработает скажите что такое?( он сидит все равно когда сп нет(
когда запусскаеш пишет так
attackSkillSlot Vigor Absorption {
label absorb
lvl 1
dist 10
whenStatusActive Blessing
aggressives < 2
inLockOnly 1
notWhileSitting 1
notInTown 1
monsters Geographer
timeout 0
disabled 1
}
doCommand conf absorb.disabled 1 {
sp > 90%
timeout 10
}
doCommand conf absorb.disabled 1 {
sp < 20%
timeout 10
}
но неработает скажите что такое?( он сидит все равно когда сп нет(
когда запусскаеш пишет так
когда сп нет пишет вот такConfig variable Vigor doesn't exist
вот так я сам когда поглошяю иногда удачно иногда нет.... вот логConfig 'attackSkillSlot_1_disabled' set to 1 (was 1)
Skill Vigor Absorption failed (Requirement)
You are casting Vigor Absorption on monster Geographer (0) (time 774ms)
You use Vigor Absorption on Monster Geographer (0) : Lv 1
You are casting Vigor Absorption on monster Geographer (0) (time 774ms)
Skill Vigor Absorption failed (Requirement)
You are casting Vigor Absorption on monster Geographer (0) (time 774ms)
You use Vigor Absorption on Monster Geographer (0) : Lv 1
You are casting Vigor Absorption on monster Geographer (0) (time 774ms)
Skill Vigor Absorption failed (Requirement)
You are casting Vigor Condensation on yourself (time 387ms)
Последний раз редактировалось zatata Вс май 20, 2007 1:26 pm, всего редактировалось 1 раз.
-
- Новичок
- Сообщения: 12
- Зарегистрирован: Пн апр 02, 2007 10:02 pm
БЛИН ПОСТАВИЛ В КОНФИГ вот так все
НО ВСЕРАВНО НЕПАШЕТ бот пишет
You are sitting.
Config 'attackSkillSlot_1_disabled' set to 0 (was 0)
You are no longer: Increase AGI
Config 'attackSkillSlot_1_disabled' set to 0 (was 0)
Config 'attackSkillSlot_1_disabled' set to 0 (was 0)
когда я в ручную поглошяю в боте пишет так
You are casting Vigor Absorption on monster Geographer (0) (time 640ms)
You use Vigor Absorption on Monster Geographer (0) : Lv 1
1 неудачное поглошени 2 сп поглотилось.... мож это помоге чем!,.
вот так в конфиге
помагите мне пожалуста
attackSkillSlot Vigor Absorption {
label absorb
lvl 1
dist 10
whenStatusActive Blessing
aggressives < 2
inLockOnly 1
notWhileSitting 1
notInTown 1
monsters Geographer
timeout 0
disabled 1
}
doCommand conf absorb.disabled 1 {
sp > 90%
timeout 10
}
doCommand conf absorb.disabled 0 {
sp < 20%
timeout 10
}
НО ВСЕРАВНО НЕПАШЕТ бот пишет
You are sitting.
Config 'attackSkillSlot_1_disabled' set to 0 (was 0)
You are no longer: Increase AGI
Config 'attackSkillSlot_1_disabled' set to 0 (was 0)
Config 'attackSkillSlot_1_disabled' set to 0 (was 0)
когда я в ручную поглошяю в боте пишет так
You are casting Vigor Absorption on monster Geographer (0) (time 640ms)
You use Vigor Absorption on Monster Geographer (0) : Lv 1
1 неудачное поглошени 2 сп поглотилось.... мож это помоге чем!,.
вот так в конфиге
помагите мне пожалуста
attackSkillSlot Vigor Absorption {
label absorb
lvl 1
dist 10
whenStatusActive Blessing
aggressives < 2
inLockOnly 1
notWhileSitting 1
notInTown 1
monsters Geographer
timeout 0
disabled 1
}
doCommand conf absorb.disabled 1 {
sp > 90%
timeout 10
}
doCommand conf absorb.disabled 0 {
sp < 20%
timeout 10
}
-
- Профессионал
- Сообщения: 4776
- Зарегистрирован: Вс ноя 05, 2006 4:32 pm
-
- macro-маньячина
- Сообщения: 2795
- Зарегистрирован: Чт дек 21, 2006 1:23 pm
- Сервер RO:: 4game
- Discord: ya4ept#8494
задача стандартная:
ходим бьём слиперов инвестом, больше никого не трогаем.
а СП качаем проходя мимо географоф
ну естественно ставим "Geographer -1"
если пишем (грубо говоря):
но бот сосёт с гео сп только если гео начнёт атаковать монка, а это происходит если мы проходим прямо мимо гео. Это не есть хорошо, т.к. сосать нужно с дистанции. Рун фром таргет не покатит, т.к. к слиперам нам нужно подходить в плотную.
Роясь в КОРЕ я нашёл "monsterSkill can be used on any monster that we could attackAuto" т.е. этот способ отпадает (мы же не хотим атаковать гео)
подобная лажа у нас получается и с attackSkillSlot
Я подумал сделать макросиком. Пришлось придумать новую команду макроса:
это типо если у нас на экране есть тока гео, то мы их сосём.
Проблема возникла в том, что нам нужно же правельно подойти к мобу. Кто знает как это сделать средствами коры? Подозреваю что тут нужно придумать чудо eval.
ходим бьём слиперов инвестом, больше никого не трогаем.
а СП качаем проходя мимо географоф
ну естественно ставим "Geographer -1"
если пишем (грубо говоря):
Код: Выделить всё
monsterSkill Vigor Absorption {
target Geographer
lvl 1
sp < 90%
}
Роясь в КОРЕ я нашёл "monsterSkill can be used on any monster that we could attackAuto" т.е. этот способ отпадает (мы же не хотим атаковать гео)
подобная лажа у нас получается и с attackSkillSlot
Я подумал сделать макросиком. Пришлось придумать новую команду макроса:
вот сам макрос:@monster (<имя моба>)
Показывает ID <имя моба>, или "-1" если такой моб не найден.
Код: Выделить всё
utomacro absorption {
notMonster Sleeper
monster Geographer
sp < 80%
run-once 1
call {
while (@eval($::char->{sp}) < @eval($::char->{sp_max}*0.90)) as absorp
do sm 262 @monster ($.lastMonster)
end absorp
release absorption
}
}
Проблема возникла в том, что нам нужно же правельно подойти к мобу. Кто знает как это сделать средствами коры? Подозреваю что тут нужно придумать чудо eval.
-
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
-
- macro-маньячина
- Сообщения: 2795
- Зарегистрирован: Чт дек 21, 2006 1:23 pm
- Сервер RO:: 4game
- Discord: ya4ept#8494
я хер его знает как это должно быть.. ну я так думаю ходим мы мочим слиперов, мимо гео пробегаем даже если они нас мочат. Как только у нас СП становится меньше порогового значения у нас срабатывает макрос (а он срабатывает отлично и даже понимает на кого кастить скил) дальше мы должны подойти к мобу (если это требуется) и отсосать у него (я имею в виду сп ) ну и когда СП будет достаточно, то оставить его в покое и идти дальше слиперов шугать
кароче пока писал.. у меня возникла идейка м кажется она работает, щас выложу
Добавлено спустя 1 минуту 18 секунд:
кстате неплохо бы перенести эту темку к макросам (pJ: сделано)
Добавлено спустя 55 минут 2 секунды:
Учим макрос понимать "спецальное ключевое слово" @monster:
файл plugins\Macro\Automacro.pm
незнаю зачем, но тут (20 строчка) добавляем getMonsterID, я добавлял по аналогии с "getPlayerID":
файл plugins\Macro\Data.pm:
файл plugins\Macro\Parser.pm:
файл plugins\Macro\Utilities.pm:
я считаю, что это "спец. ключевое слово" должно было существовать с самого начало создания макро-плагина. И посему нада бы за СВНить А то получается мы можем АМ реагировать на моба, получаем его имя и координаты а дальше ничего с ним сделать не можем (ну если только eval'ом)
далее в файле mon_control.txt пишем: "Geographer -1"
в макросах пишем:
в конфиге пишем:
вроде всё.. теперь мы с гео сосём только СП и ничего более.
-думаю нада как-то ещё учесть агресоров
-пробовал вместо АМ записать докоммандером, нефига не вышло. Тут достоинство АМ в том, что он активируется когда в поле видимости попадает нужный нам моб.
кароче пока писал.. у меня возникла идейка м кажется она работает, щас выложу
Добавлено спустя 1 минуту 18 секунд:
кстате неплохо бы перенести эту темку к макросам (pJ: сделано)
Добавлено спустя 55 минут 2 секунды:
Учим макрос понимать "спецальное ключевое слово" @monster:
файл plugins\Macro\Automacro.pm
незнаю зачем, но тут (20 строчка) добавляем getMonsterID, я добавлял по аналогии с "getPlayerID":
Код: Выделить всё
use Macro::Utilities qw(between cmpr match getArgs refreshGlobal
getPlayerID getMonsterID getSoldOut getInventoryAmount getCartAmount
getShopAmount getStorageAmount callMacro);
Код: Выделить всё
"player" . "|" .
+ "monster" . "|" .
"vender" . "|" .
Код: Выделить всё
use Macro::Utilities qw(refreshGlobal getnpcID getItemIDs getStorageIDs getInventoryIDs
+ getPlayerID getMonsterID getVenderID getRandom getRandomRange getInventoryAmount
getCartAmount getShopAmount getStorageAmount getConfig getWord q4rx);
elsif ($kw eq 'player') {$ret = getPlayerID($arg)}
+ elsif ($kw eq 'monster') {$ret = getMonsterID($arg)}
elsif ($kw eq 'vender') {$ret = getVenderID($arg)}
Код: Выделить всё
our @EXPORT_OK = qw(ai_isIdle q4rx between cmpr match getArgs refreshGlobal getnpcID getPlayerID
+ getMonsterID getVenderID getItemIDs getInventoryIDs getStorageIDs getSoldOut getInventoryAmount
getCartAmount getShopAmount getStorageAmount getRandom getRandomRange getConfig getWord callMacro);
# get player array index
sub getPlayerID {
foreach my $pl (@{$playersList->getItems()}) {
return $pl->{binID} if $pl->name eq $_[0]
}
return -1
}
+# get monster array index
+sub getMonsterID {
+ foreach my $ml (@{$monstersList->getItems()}) {
+ return $ml->{binID} if $ml->name eq $_[0]
+ }
+ return -1
+}
# get vender array index
далее в файле mon_control.txt пишем: "Geographer -1"
в макросах пишем:
Код: Выделить всё
automacro absorption {
notMonster Sleeper
monster Geographer
sp < 80%
run-once 1
call {
do a @monster ($.lastMonster)
release absorption
}
}
automacro absorpstop {
monster Geographer
sp > 79%
timeout 5
call {
do as
release absorption
}
}
Код: Выделить всё
attackSkillSlot Vigor Absorption {
lvl 1
dist 10
sp < 80%
# aggressives < 2
inLockOnly 0
notWhileSitting 1
notInTown 1
monsters Geographer
}
-думаю нада как-то ещё учесть агресоров
-пробовал вместо АМ записать докоммандером, нефига не вышло. Тут достоинство АМ в том, что он активируется когда в поле видимости попадает нужный нам моб.
Последний раз редактировалось 4epT Вс янв 27, 2008 3:31 pm, всего редактировалось 1 раз.
-
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Для начала, ее надо хорошо обкатать. Всесторонне проверить. Ты это уже, или как?
Второе, чо-то вот подумалось, что придет Анарчо, повтыкает на наши изменения, почешет репу, подумает "ну эти фукед русские совсем охренели", и... забьет на доработку макросов. Ну это я шучу.
Третье. Озаботься документацией. Нам нужно толковое английское описание и примеры, как минимум.
Второе, чо-то вот подумалось, что придет Анарчо, повтыкает на наши изменения, почешет репу, подумает "ну эти фукед русские совсем охренели", и... забьет на доработку макросов. Ну это я шучу.
Третье. Озаботься документацией. Нам нужно толковое английское описание и примеры, как минимум.
-
- macro-маньячина
- Сообщения: 2795
- Зарегистрирован: Чт дек 21, 2006 1:23 pm
- Сервер RO:: 4game
- Discord: ya4ept#8494
Всесторонне проверить:
проверил номер показывает правельно, если несколько одинаковых мобов, то определяет с меньшим номером
описание:
Смотри выше. Мы не хотим мочить моба, а нужно применить атакующий скил на него.
проверил номер показывает правельно, если несколько одинаковых мобов, то определяет с меньшим номером
описание:
примеры:@monster (<name>)
looks for a monster and returns ID or -1 if the monster was not found
Смотри выше. Мы не хотим мочить моба, а нужно применить атакующий скил на него.
-
- Начинающий
- Сообщения: 39
- Зарегистрирован: Сб ноя 18, 2006 11:45 pm
Re: id монстра в макросах / недокументированная игра с блоками
Вроде, работает, только есть одна проблема. Если вдруг во время сосания СП с Гео появляется Слипер, бот продолжает пытаться абсорбить, мужественно лечась, пока СП не кончится. Т.е. достигается обратный эффект. Как можно сделать, чтобы при возникновении опасности, отбивалась атака Слипа?