PDA

Просмотр полной версии : "ИтемСеттингс". трабл.. не ?


alexteam
20.02.2010, 15:40
сижу, чешу одно место уже около часа.
нада итемсеттингс нарисовать, делать как в волкере однозначно не хочеццо, при чем реализовать так шобы и было удобна и не тормозило. короч дилемма.

пока писал 2 строчки родил идею которая получше всех предыдущих извратов будет..

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

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

геморно канечно, но реализовать можно..
м.б. у кого свои извращеные идеи будут ?

lva
20.02.2010, 15:51
Помоему не надо ничего мудрить с итема сэттингом, мне валкеровского хвататет за глаза вполне удобный чем он тебе не угодил, или у тебя принципиальная не любовь к валкеру? :)

alexteam
20.02.2010, 15:56
не, просто табличка в 16к итемов весит в памяти МНОГА, и перелопачивать ее каждый раз когда шота выпадет на землю мне не охота.

Добавлено через 2 минуты
да.. и такая табличка будет у каждого запущеного бота, имхо жирно, слишком..

peacefully
20.02.2010, 16:21
Сорри, если тупану ща, мб я не совсем понял)

Есть датапак (ну, файлик с описанием итемов же?), есть ботовод, есть предпочтения ботовода в плане че делать с итемами.

Хранить в памяти - дорого, обращаться к файлу - долго. А если комбинированный вариант? По мере попадания на землю итемов бот будет обращаться к файлу, вытаскивать из него нужную строчку и складывать новое табличко, к которому потом уже будет обращаться непосредственно. Для управления без добавления дополнительных полей можно создать еще табличку, в которой будут храниться настройки "че хочу сделать с итемом", типа: what_want(item_id):=[подбирать=тру,удалять=фолс].

Или просто есть дефолтный датапак и есть где-то настройки, в которых записано то, ЧЕМ отличаются ваши настройки от настроек дефолтных.

:confused:

alexteam
20.02.2010, 16:32
на данный момент.
есть датапак (бд, обращение к которой довольно долгое), есть глобальный массив в который по требованию подгружаются данные, и хранятся там постоянно.
т.е. при первом запросе идет поиск по датапаку, и заполнение элемента, в дальнейшем поиск в масиве что происходит очень быстро, в отличии от бд. (к стати, так не только с предметами сделано, но и с скилами, мобами, квестами, системными сообщениями и вообще всем что есть в датапаке)

вот, проблема в том что эта табличка глобальная, а у каждого бота (точнее настроек бота) она должна быть индивидуальная.

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

проста интересно.. более красивое решение есть, или я просто не додумываюсь пока шо. или одно из двух.

destructor
20.02.2010, 16:33
"неподбирать неизвесное", это в любом случае всю табличку сканим.

alexteam
20.02.2010, 16:35
это "неизвестное" если появилось в мире уже есть в глобальном массиве, и для него уже есть дефолтные действия (дефолтное действие для неизвестного - не подбирать) а пользователь уже сам сможет определицца. подбирать или нет, перетащив с списка вещей на полу в настройки и задав "подбирать"

destructor
20.02.2010, 16:40
глобальный массив с названиями айтемов
и на каждого бота по массиву с настройками не_побирать\удалять\выдавать_алерты\...\...
остальное будет тормозить.

вот как организовать интерфейс всей этой херни...

alexteam
20.02.2010, 16:44
ога, интерфейс - жопа.
в настройках конкретного панятно. как то так:
http://i.piccy.info/i4/68/52/648d7b77c113bb8a0c0cc95b414a.jpeg (http://i.piccy.info/i4/09/f3/f08d3e29f92a0c7ab02ac76ba6f4.png)
а вот, с глобальным редактором для дефоултных полный абзац.. если в настройках конкретного конфига у нас исключание и их не много (жрет мало)
то глобальный редактор при 16к обьектов аццкая пичаль.
+ при смене мне надо не токо в датапакет шариццо, но и в подгруженом глобальном списке галочки править.

Acmilan
20.02.2010, 17:12
Сделай по категориям шмот\ресцрсы\куски\хлам + по грейду.
При обращении к итему загружаем нужную категорию.

К примеру если на споте 40+ падают куски кармиан перчей, то грузится категория с С-гр кусками, и большая вероятность, что другие итемы которые там падают попадают в эту категорию + там точно не будет ы, а, нг итемов. Соответственно будет сильная разгрузка итем раздела + не надо держать всю базу в оперативке.

Ну как-то так.. Сильно не бейте

peacefully
20.02.2010, 17:29
В прогу закладывай по умолчанию на все итемы определенные настройки. Если пользователь че-то под себя делает, то в спец. табличку заносятся изменения, можно как-то так сделать:

Настройка - ИД лист
- - - - -
Не подбирать: 1353,4235,2341,3463
Удалять: 8238,155,3252,1723,483
В магаз: 3295,385,124,63
... и т.д.

или наоборот, ИД - настройка
2356: [поднимать,продавать]
632: [удалять]
...

При появлении итема бежать по этой табличке, если не встречается в ней, то делать дефолтные действия.

Список все равно придется подгружать в память, ради тех же названий, не БД же подымать.. Лучше частичный, из появляющихся предметов. Единожды подгрузяцца некоторые итемы, потом не будет нужды на это тратить время и ресурсы.

мм?

alexteam
20.02.2010, 17:32
ога, типо пошел делать )
а категории это идея, для глобального редактора...
а еще лучше.. категория + часть имени..

Acmilan
20.02.2010, 19:46
Плохого не предложу)