PDA

Просмотр полной версии : как зделать чтоб бот не подходил к мобу


SASHASOLO
13.06.2007, 19:32
Двадцать минут я рылся на форуме, но так нечего и не нашел на эту тему. Хотя я точно помню что пару месяцев назад я видел описание подобной ситуацыии здесь. Но найти не удалось. Так что вопрос к тебе
Уважаемый.
Я торгую мерчем на Голд Ро. и мне надо дешевые Blue Potions. Дешевле чем у конкурента. намного дешевле. Я нашел способ. Есть карта на которой растет Blue Plant из которых собственно и делается Blue Potions.
Но на этой же карте есть Флоры(Flora), и Географы(Geographer).
Как всем известно они начинают бить как только ты к ним подходиш.

Можно ли зделать так что бы бот ходил по карте и бил только Blue Plant
но при этом не подходил к Flora, и Geographer ближе чем на 5 клеток
даже если под Geographer или Flora будет расти Blue Plant? Что б он обходил етих агресивных монстров десятой, так сказать, дорогой.

Gans
13.06.2007, 20:37
это всему прогрессивному человечеству, дружище, интересно.

FRITS
13.06.2007, 22:06
попробуй скачать эту прогу для настройни бота (http://www.zilomania.narod.ru/ok-conf_beta0.8.3.zip)
http://evil-ogame.clan.su/_ph/1/242049676.gif
выбери 1 и 2, а 3 попробуй сам какое лутше!!

P.S. сам незнаю сроботает ли, непробывал

Gans
13.06.2007, 22:13
это ничем не поможет.

FRITS
13.06.2007, 22:21
нужно в ok-conf прописать бить всех, и убегать от цели и атаковать из укрытия(а то он и от плантов бегать будет), а в mon_control прописать не бить Флор(Flora), и Географеров(Geographer) даже есле они тебя бьют(кажись это -1)

4epT
13.06.2007, 22:38
если бот - контактник, и поставить runFromTarget, то бот будет бегать туда сюда.
FRITS, "атаковать из укрытия" - это ты про что?
ok-conf - это чёт-типо wx интерфейсины, или чо? слышал про неё, но не видел, можно скринчек (маленький)?

Gans
13.06.2007, 22:48
ok-conf - устаревшая версия RVK

SASHASOLO
13.06.2007, 22:52
слушайте. мне просто надо что б чар не подходил к мобу. моб то сам за ним не бегает! что бы когда(если уже нельзя по другому) когда этот географер появится на екране он бежал от него. именно от этого конкретного моба. в конце-концов. даже калькулятор написан с переменной которая отвечает за определенное событие...

4epT
13.06.2007, 23:31
SASHASOLO, ну ка дайка калькуль позырить

SASHASOLO
14.06.2007, 01:36
SASHASOLO, ну ка дайка калькуль позырить
:D Стандартный! В Windows встроен.
Событе: нажал на кнопку "=". Калькулятор вывел результат операцыи среагировав на нажатие кнопки.
Всем известно что поверхность в играх делится на клетки, сектора, сетку... как ее не назови все одно будет.
Событие - в клетке №x находится монстер Flora.
Если игрок находится до клетки №х ближе чем на 4 клетки,
то дальше к центру воображаемого пространства которое образуют клетки вокруг клетки №х игрок зайти не может,
а если всетаки вступает на клетку которая является третей от центра которым есть клетка №х, то автоматически возвращяется в клетку которая отдалена от клетки №х на 4 клетки.
И ненадо из меня непонятно что делать.
Event - не о чем не говорит? Тогда загляни в справочник.

Надеюсь я понятно изложыл мое представление о том что я сказал выше, и некто не будет глупо коверкать мои слава бессмысленными обрывками цытат скомбинорваных каким либо образом.
:) Всем спасибо! :)

4epT
14.06.2007, 02:50
Ну так если ты дружен с калькуляторм, то додумай идею до конца.
Если варганить макросом, то вот что может помочь:

у автомакроса есть условие:
monster <имя монстра> [, ...]
АМ запустится, когда <имя монстра> находится поблизости (в пределах видимости). Когда макрос вызван устанавливаются специальные переменные $.lastMonster и $.lastMonsterPos.
Отделённые запятыми аргументы определяются как условие OR (или).
Несколько строк (от двух и более) определяются как условие AND (и).

это уже их переменных макроса:
$.lastMonster - имя монстра, который запустил последний автомакрос условием "monster"
$.lastMonsterPos - последняя известная позиция этого монстра ("123 234 prontera")

Итак видим моба, срабатывает автомакрос, из него мы вытягиваем клетку №х ($.lastMonsterPos). Дальше анализируя свои координаты ($.pos ) и координаты клетку №х - определяем в какую сторону шарохаться боту.

Если блюха растёт с тварью, то пригодится команда as (http://openkore.sourceforge.net/manual/view.php?p=Console%20Commands#as) (не помню, но помоему после неё бот болжен переключиться на друую цель)

ЗЫ: наводку надеюсь дал

FRITS
16.06.2007, 09:12
4epT хех!! ну незнаю, там есть такая функцыя в ok-conf, а скрин я уже кидал(3 пост в этой теме)...

SpLaTt
16.06.2007, 12:23
ок конфиг опасная тема почитай про неё на рофане и вы поймёте за чем он придуман сорь еси тема такая уже была

Aostro1
18.06.2007, 16:08
rктонить почеловечески напишет как все это сделать в опенкоре 1.9.0
без филосовских вставок ,четко и ясно как куда и скока вписывать.

vitt
18.06.2007, 18:21
...как все это сделать в опенкоре...
Пока никак. Это еще не реализовано.

4epT
18.06.2007, 19:16
4epT хех!! ну незнаю, там есть такая функцыя в ok-conf, а скрин я уже кидал(3 пост в этой теме)...
Всё что делает твой конфигуратор:
в конфиг пишет значения (в последовательности как у тебя подчёркнуто):
attackAuto 0
runFromTarget 1
itemsTakeAuto 2 (или 1)

зачем для этих действий он нужен? Тут проще блокнот.

morph
14.06.2008, 15:43
Отделённые запятыми аргументы определяются как условие OR (или).
Несколько строк (от двух и более) определяются как условие AND (и).
Итак видим моба, срабатывает автомакрос, из него мы вытягиваем клетку №х ($.lastMonsterPos). Дальше анализируя свои координаты ($.pos ) и координаты клетку №х - определяем в какую сторону шарохаться боту.

Здесь все понятно (я уже давно к этому пришел), но вот как анализировать переменную $.lastMonsterPos (123 167 prontera) как тут вытянуть x, y?

Добавлено через 21 час 28 минут 23 секунды
Собственно вот что получилось, но отходить не собирается даже:
automacro GeoAttck {
console /Monster Geographer.*attacks you/
monster Geographer
call GeoMove
}

macro GeoMove {
$geox = @arg ("$.lastMonsterPos", 1)
$geoy = @arg ("$.lastMonsterPos", 2)
$posx = @arg ("$.pos", 1)
$posy = @arg ("$.pos", 2)
$difx = @eval ($geox - $posx)
$dify = @eval ($geoy - $posy)
$gox = 0
$goy = 0
if ($difx < 5) goto gox1
goto endx
:gox1
if ($difx < 0) goto gox3
$gox = @eval ($geox + 5)
goto endx
:gox3
if ($difx > -5) goto gox2
goto endx
:gox2
$gox = @eval ($geox - 5)
:endx
if ($dify < 5) goto goy1
goto endy
:goy1
if ($dify < 0) goto goy3
$goy = @eval ($geoy + 5)
goto endy
:goy3
if ($dify > -5) goto goy2
goto endy
:goy2
$goy = @eval ($geoy - 5)
:endy
do move $gox $goy
}

Добавлено через 3 минуты 6 секунд
Но в идеале бы реагировать просто на каждого моба, который появляется в поле зрения, но тогда он выводит постоянное сообщение, что автомакрос сработал и весь лог засирается (по-моему, бот вообще при этом ничего не делает)

Добавлено через 2 минуты 7 секунд
к томуже, если в данной ситуации бот появился прямо за спиной, а гео стоит перед нами, то убегая от появившегося мы пойдем прямо к нашему, а от него обратно и так до смерти. поэтому как учесть положения всех мобов (географеров)?

4epT
15.06.2008, 08:25
макросами не как, это слишком сложная для них задача

morph
16.06.2008, 09:33
а плагин как писать? где инструкцию найти по ним?

vitt
16.06.2008, 16:45
morph, учить язык perl и смотреть примеры плагинов.