Полноценный билд Рога-Лутера. Сделай себе миллиарды :)

Вопросы, которые касаются Рагнарок онлайн, но не касаются OpenKore.

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

Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

Kaiser
ЫЫ. Не думал пока, руки не дошли. Но в любом случае прийдётся прописывать всех мобов туда, что значительно влияет на производительность.
Kaiser
Начинающий
Сообщения: 47
Зарегистрирован: Пн ноя 13, 2006 12:09 pm

Сообщение Kaiser »

kLabMouse
items_control.txt, pickupitems.txt, mon_control.txt полностью загружаются в память?
читаю мануал тру весчь...
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

Kaiser
Дык. Там все файлеки загружаются в память, потому так много жрёт.
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Kaiser писал(а):kLabMouse
есть такая команда conf можно ли сделать monconf, pickconf и тд :)
большой плюс для коры
Уже сделана загрузка выбранных файлов (items, pickup,monsters),
а так же изменение на лету.

См тут: viewtopic.php?t=1099
items_control.txt, pickupitems.txt, mon_control.txt полностью загружаются в память?
Да. Каждый - в свою переменную.
По ссылке есть пример как обращатся к этой переменной.
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

DInvalid
Дык. Вообще-то нужно посмотреть как ситает переменные со структуры в пямяти для тех или иных файлов кроме конфига. Думаю что если он тупо при запуске будет туда дописывать что ему нужно будет весьма нормально. А что касается триггеров в макро, ну прийдётся извращатся.
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

kLabMouse писал(а):DInvalid
Дык. Вообще-то нужно посмотреть как ситает переменные со структуры в пямяти для тех или иных файлов кроме конфига. Думаю что если он тупо при запуске будет туда дописывать что ему нужно будет весьма нормально. А что касается триггеров в макро, ну прийдётся извращатся.
Что то я не понял фразы...

Он не дописывает, от полностью грузит файл в переменную - это стандартный парсер.
Если надо именно догружать, то можно модифицировать плагин просто что бы он сохранял знаечение переменнойи потом их объединял.
Только надо решить как объединять, я думаю что приоритет будет у вновь загружаемых значений, т.е. если уже такое есть то надо заменить на новое, а если нет - то оставить...
например сделать команды load - просто загрузка и merge - загрузка с добалением...
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

DInvalid
Дык. Зачем???? делаем так:
1) При загрузке срабатывает макрос или плаг.
2) Дописывается в переменные в памяти ОК.
3) продолжаем пахать, если нужно что поменять или дописать, дописываем и меняем.

Результат не сохраняется, он нам незачем. Нам только нужно чтоб для данной конфигурации были определённые данные туда прописаны, вот и всё.
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

kLabMouse писал(а):DInvalid
Дык. Зачем???? делаем так:
1) При загрузке срабатывает макрос или плаг.
2) Дописывается в переменные в памяти ОК.
3) продолжаем пахать, если нужно что поменять или дописать, дописываем и меняем.

Результат не сохраняется, он нам незачем. Нам только нужно чтоб для данной конфигурации были определённые данные туда прописаны, вот и всё.
Затем, что
1) если изменяемых данных много, то проще их считать из файла (в эту же самую переменную в памяти), чем менять напрямую в переменной, ксатаи в том топике чуть дальше есть плагин, добавляющий команду pickup, позволяющуюю менять данные о поднимаемых айтемах именно в памяти напрямую
2) а если кора отрубится?
Тогда при новом запуске надо вызывать опять тот макрос или плаг что бы он внес изменения в память.
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

DInvalid
Всё таки проще чем парсить всё опять и к стати там-же есть и коменты... учти, что парсер не сохраняет в памяти, и чтоб зделать фулл супорт нужно многое пределать, вплоть до плагтнов. потому ИМХО так лучше.
dvdc
Бывалый
Сообщения: 556
Зарегистрирован: Вс ноя 05, 2006 1:43 pm
Контактная информация:

Сообщение dvdc »

я понял глубину мысли, зачем мне хранить переменные во внешнем файле. эта проблема становится реальной и решающей.
во-первых, жалко что кора не может менять свои конфиги в режиме реального времени, я имею ввиду монконтрол и айтемконтрол.
дело в том, что инет может быть нестабильным, собственно всё что угодно может работать нестабильно, а бот должен быть подстрахован на любые случаи жизни: как то, он пашет по сценарию, в определённый момент перебой на линии связи, возобновление соездинния - и что мы видим? бот не может продолжить макрос. идеально, если бы мои переменные в контрольных точках писались в файле внешнем, а отработка шла бы через автомакрос.
например

automacro something {
location $.map
extvar get $ext $int
var $int==1
}

и еще одна деталь, очень печальная... я не могу никак заставить понимать бота, кто он по профессии...
почему бы не сделать:

automacro something {
prof Swordsman
call sworsomth
}

??
dvdc
Бывалый
Сообщения: 556
Зарегистрирован: Вс ноя 05, 2006 1:43 pm
Контактная информация:

Сообщение dvdc »

я тупой )
чётко написано:
automacro name { class <класс персонажа> }
Макрос вызывается когда ваша класс совпадает с <класс персонажа>.

приеду домой - переделаю автомакросы )) кстати с грибами тоже вроде разобрался, просто там два условия подряд заданы (в две строчки), а надо в одну строчку.
плюс уберу как минимум 20% ненужного кода, всё оказывается можно еще и оптимизировать.

остаётся только работа с внешними переменными...
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

dvdc писал(а):во-первых, жалко что кора не может менять свои конфиги в режиме реального времени, я имею ввиду монконтрол и айтемконтрол.
....
и еще одна деталь, очень печальная... я не могу никак заставить понимать бота, кто он по профессии...
почему бы не сделать:

automacro something {
prof Swordsman
call sworsomth
}

??
Мле, я уже не могу - я говорю об одном, а КМ как будто не слышит и говорит совершенно о другом!!!
Вы ввобше читаете что я пишу а?

жалко что кора не может менять свои конфиги в режиме реального времени, я имею ввиду монконтрол и айтемконтрол.
Вот пример как менять в реальном времени pickupitems:

eval ($pickupitems{'meat'}=1)
Вот плагин который добавляе команду pickup

pickup Something 0;Bunch of shit 1;Another shit [1] 2

viewtopic.php?t=1099&postdays=0&postorder=asc&start=27
и еще одна деталь, очень печальная... я не могу никак заставить понимать бота, кто он по профессии...
http://openkore.sourceforge.net/macro/
class <job>
triggers when your jobclass is <job>
dvdc
Бывалый
Сообщения: 556
Зарегистрирован: Вс ноя 05, 2006 1:43 pm
Контактная информация:

Сообщение dvdc »

Новости с фронта

Сегодня понял одну интересную вещь - работа над написанием макроса делится по времени на такие составляющие:
20% - написание нового кода
30% - оптимизация всего кода (даже в основном старого)
50% - тестирование и отладка всего кода.

За сегодня доделал полностью автоматическое создание вора с продажей всего нуб-лута, заточкой ножика до +7, прохождением квеста в кулверт и сохранение у кулверта.
Сам код получился не очень большой, но на тестирование ушло огромное количество времени. Почему я так долго ковыряюсь с этим, вместо того чтобы идти дальше? Просто я хочу чтобы автобот работал идеально, даже если вдруг ему придётся пересоединяться с сервером, он всё равно начнёт работу там где закончил. Сейчас я собой очень доволен, и с гордостью пойду спать, покурю только еще одну победную сигаретку :)

Впереди два дня на обработку квеста на рога, и автоматического доведения вора 15+ до рога 55+ :) Что в принципе не должно занять много времени. Основное время воришка будет качаться и еще раз качаться, выбивая порой замечательные вещи.

Ах! прелесть! :)
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

dvdc
На щёт сохранения некоторых значений.
Вполне реально их сохранять в блоке в конфиг файлике. Он единый который сохраняется корой правильно. Всё другое, ТЕ пикапитемс мон_контрол реально не аохраняются.

Потому предлаю при старте просто тупо прописывать в переменные внутри памяти коры. Что касается внутренних значений, используемых для всяких других нужд, возможно писать и читать с конфига. Воть так.
dvdc
Бывалый
Сообщения: 556
Зарегистрирован: Вс ноя 05, 2006 1:43 pm
Контактная информация:

Сообщение dvdc »

хм, в принципе можно и так :) неплохая мысль.
вот только придётся как-то макросами контролировать монстров тогда... ну типа игнорировать крими, например на первых левелах..
еще одну штуку вчера вечером заметил - есть небольшая разница в вопросах/ответах npc в нубзоне.
где-то их больше, где-то меньше.
например у нас на оффе на один вопрос сокращён диалог с Item Instructor. а если бот отсылает пакеты продолжения диалога без самого диалога - очень палимся и вылетаем :)
правда макрос доводится под любой сервер вообще за секунды )

p.s. работает всё ) сейчас переменные мучить пойду
Ответить