DOC_tr

База данных карт и обитания монстров.

37 сообщений в этой теме

От нечего делать, а от безделья как всем известно тупеешь, решил набросать плагин для FluxCP.

Он добавляет к простым базам - базу карт с монстрами на них обитающими, и к монстрам добавляет список на каких картах они обитают (а-ля ratemyserver)

Вы спросите - зачем это? Есть же другие базы данных. Это очень удобно, если вы любитель добавлять новых монстров, менять их локации, менять их время респа, итд итп

Скрин для затравки возьму пользователя rathena.org (который уже умудрился поставить его себе), а то они у меня не слишком получились (но их вы обязательно увидите ниже).

43391438195852.png

GitHub - https://github.com/F...l/monster_spawn

Собственно в папке maps_spawn лежит сам аддон - класть в addons (addons/maps_spawn) а в папкеdata изображения всех карт - совместить с вашей папкой data

Все, плагин установлен и готов к использованию.

Перейдем к настройке.

В админ меню появляется пункт "Map Database Edit" (http://your.site/?module=admin_spawn)

Все на английском, но не думаю что это будет большой проблемой.

После создания таблицы приступаем к ее заполнению - а вот тут можно расписать подробнее.

Карты генерируются из файла *Athena/db/(re|pre-re)/map_cache.dat (форма справа снизу). Если вы туда добавили кастомную карту, то она тоже попадет в базу.

Монстры генерируются из файлов с монстрами - для успешной загрузки всех их нужно собрать в один архив (ТОЛЬКО ZIP!!!) и залить - например архивируем папку *Athena/npc/re/mobs, добавляем туда файлы в которых у вас прописаны кастомные монстры, и заливаем.

Конечно можно было бы архивировать всю папку npc, но это плохая идея, так как есть куча монстров в неподключенных файлах (например в кастомных эвентах) и они очень мешают работать.

Все - теперь можно наслаждаться базой данных со всеми вашими монстрами.

Тестировалось все на последней версии Flux (на 29.07), и на Linux - как поведет себя на винде не могу точно сказать.

И, напоследок, еще парочка скринов всего этого дела.

73ad1438195958.png

5fde1438195958.png

d91f1438195958.png

Изменено пользователем DOC_tr
10

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

О, как раз то, чего не хватало)

с меня плюсик, ток попозже поставлю. С мобильной версии не ставится((( Поставила

Изменено пользователем Elmiria
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дядя, вовремя ты запилил штуковину) Как раз думал нечто подобное уже делать. Плюсик лови, спасибо (:

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

UPD.

Распарсил наконец бинарник с кэшем карт (я в шоке от того что php умеет это делать О_О), и теперь на равне с названиями карт доступны еще и их размеры, а это позволяет указывать места спавна монстров (если они конечно заданы).

Вместо map_index.txt теперь грузим map_cahe.dat для генерации карт.

GitHub обновлен.

И вот что получилось - (проверил сходство с ratemyserver - разница в несколько пикселей и то из-за верстки. )

994c1438263400.png

PS.

НПС с варпами добавлять ннннннада?

Изменено пользователем DOC_tr
3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

PS.

НПС с варпами добавлять ннннннада?

А чего только с варпами, давай всех уж, коль предложил ;3

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я имел ввиду НПС И варпы, но уже мой альтруизм поиссяк - но интерес еще не остыл. Думаю последнее что я сделаю это отрисовка локаций которых нету в базе (по точкам по которым можно ходить - карты будут как в подземельях) и отображение тех же координат по которым ходить можно, а по которым нет.

Ну и думаю, переведу все это дело на что нибудь побыстрее типа canvasa, а то сейчас рисует ну очень долго ;)

Изменено пользователем DOC_tr
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сгенерировал все изображения для всех стандартных карт. Так как рисовалось все автоматически и по клеткам можно ходить/нельзя они получились однообразными типа

2015_07_31_12_15_31.png2015_07_31_12_16_34.png

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

2015_07_31_12_15_23.png

Все это разумеется уже валяется на гитхабе, также сделал pull-reauest разрабам, так что возможно, в скором времени (а может и не в скором - последний пул реквест был одобрен 2 месяца назад), карты появятся в офицальнйо версии FluxCP. :D

P.S.

Для тех у кого есть кастомные карты - выкачивайте код не из ветки master а из ветки test.

Там правда нету сгенеренных карт (их можно взять из мастера), но там есть код, который генерирует карту (512х512) и маленькое изображение для базы монстров и списка карт (100х100) если не может найти изображение данной карты.

Это будет полезно тем, у кого много кастомных карт. Если кастомных карт только парочка то проще руками создать файлы MAP_NAME.png (Именно PNG а не BMP которые хранятся в клиенте 512х512 и 100х100) и положить ее в папки data/maps/map/ и data/maps/map_sm/ соответственно.

Изменено пользователем DOC_tr
4

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще можно воду отмечать(проходимые + вода)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это либо отмечено градациями серого, либо никак не фиксируется в кэше. Вода - это просто текстура карты на клиенте, и, поидее, у нее нет отдельного статуса (циферк)

А вообще я глянул на примере каты SWORD_3-1, то цветом #393939 отмечена вода, а цветом #696969 отмечен песок. (на глаз между ними практически не видно разницы, да и не думаю что ктото будет настолько докапываться)

На изображении - нижний лабиринт - вода, верхняя горизонтальная полоса - песок

2015_07_31_23_24_46.png

Остальные цвета - если хотите сами тестите ;)

UPD

Дизайнер и подборщик цветов из меня так себе ;)

2015_07_31_23_39_01.png

Изменено пользователем DOC_tr
2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Браво

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вернулся из отпуска, и решил допилить аддон, в связи с чем вопрос -

c_tower2.gif

Что за зеленые варпы, и где они прописаны, и варпы ли это вообще?

На ratemyserver они не обозначены как точки перемещения.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вроде как в клоктауре есть рандомные телепорты(к в хайден лабиринт)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как я уже писал - вернулся из отпуска, и решил допилить скрипт.

  • Добавлены варпы
  • Добавлены НПС
  • Добавлены магазины
  • Оптимизирована загрузка монстров

Теперь нужно загружать заархивированную папку (e|r)athena/npc

Я сделал парсинг основного конфигурационного файла - (e|r)athena/npc/(re|pre-re)/scripts_main.conf, из которого подтягиваются все остальные файлы, в следствии чего в базе мы получаем точную копию НПС, варпов и мобов сервера. Ни один скрипт не останется не замеченным ;)

Выгружать re или pre-re определяем на основе конфига сайта.

ba951440147175.png

87631440147175.png

79251440147175.png

Варпы на карте - ссылки, перейдя по которым вы попадете туда, куда они ведут.

Есть конечно небольшие косяки которые исправить можно только руками (но яж програмист - мне лень делать чтото руками) - например на карте prontera рисунок немного не соответствует координатам, или на картах c_tower* зеленые точки на рисунках карты - это НПС со спрайтом варпа.

Потыкать в живую это все можно здесь

Все это по прежнему валяется в виде аддона здесь

Изменено пользователем DOC_tr
2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После загрузки папки npc (в .zip) ничего не происходит. Просто идет перезагрузка страницы. Есть идеи?

+ после загрузки mapcache.dat пишет что добавлено 0 мап.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Права на запись и создание файлов проверить. apache/nginx должен иметь право на создание папок.

PHP >= 5.2.0 с классом ZipArchive

Проверить размер файла. Не смотря на то что я сделал проверку могут быть небольшие косяки.

По поводу map_cache - слабо представляю в чем может быть проблема - кода там достаточно мало и он относительно простой, чтобы в нем были ошибки.

Единственная идея - если ревизия не слишком новая, то могла измениться формат данных в map_cache. Если хотите - можете скинуть мне ваш map_cache (по идее он не содержат никаких приватных данных) - я все проверю.

Можете потестить все это здесь - http://test.phpbl.ru...le=admin_spawn.

Логин/Пароль - 1234/1234

UPD

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

Изменено пользователем DOC_tr
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Через твой сайт все ок. Мапкеш залился. Total maps - 1144

Может быть проблема из-за того, что флюкса стоит у меня на компе? Все делаю через vertrigo + на диске С

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Тестировалось все на последней версии Flux (на 29.07), и на Linux - как поведет себя на винде не могу точно сказать.

2 из 2х. Бинго :D

Для начала попробуйте самую последнюю версию - https://github.com/rathena/FluxCP

Но из за flux - навряд ли. Если пишет что "загружено хоть сколько карт (в вашем случае 0)", то файл получает и обрабатывает. Если в корне сайта НЕ создается папка upload_npc, то косяк скорее всего в старой версии php или отсутствии класса ZipArchive. Если создается, то тут я уже слабо представляю почему может не работать.

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

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

Изменено пользователем DOC_tr
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Флюкса только скачанная, свежая :)

Окей, тоже ещё пороюсь, посмотрю.

update:

поставил на впске, все ок. только мапы не ищет :<

ну и в mob database(new) не прогружаются скиллы мобов (в стандартной ок)

http://kubix-service.ru/?module=map

и http://kubix-service.ru/?module=monster_new&action=view&id=1012 < monster NEW

и http://kubix-service.ru/?module=monster&action=view&id=1012 < monster standart

Изменено пользователем ocelote
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Благодаря вашему сайту проблема сразуже и выявилась.

http://kubix-service...ap=06guild_03�� - ссыка на одну из карт.

Как выяснилось винда плохо работает с бинарниками (в нашем случае map_cache) и создает куеву тучу артефактов в виде не раскодированных символов которые мы можем наблюдать в ссылке, но, к счастью, это все достаточно просто фиксится.

Также исправил баг с загрузкой варпов, нпс и магазинов, и фикс уже валяется на гитхабе.

А по поводу monster_new - это не панацея. В modules/monster_new/view.php и themes/default/monster_new/view.php есть блоки (достаточно маленькие)


/* MOB SPAWN */

и


<!-- MOB SPAWN -->

соответственно. Они и отвечают за отображение карт обитания монстров. Эти блоки кода переставляем в стандартный модуль monster и все работает ;)

Изменено пользователем DOC_tr
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да теперь все ок. Спасибо.

На винде не проверял.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Последняя версия скрипта готова

  • Произведен рефакторинг кода
  • Код отформатировал максимально приближенным стилем к Flux
  • Добавлено более подробное логирование - теперь на практически каждое действие выскакивает сообщение. Такого что вроде все ок, но нихрена не работает поидее быть не должно.
  • Добавлена защита от атаки с помощью файловой загрузки (хотя доступ поидее только у админа - а ему оно надо? Но на всякий случай сделал, да и для приличия)
  • Добавлены список НПС
  • У вещей добавлено у кого их можно купить.
  • При просмотре карт у магазинов можно сразуже посмотреть что они продают.

Ну и вообще теперь это больше похоже на готовый продукт нежели раньше.

Потыркать можно здесь - http://test.phpbl.ru/?module=npcs

Протестировано на линухе и на винде (vertrigo)

И напоследок скрины -

9b131440420061.png

a3d11440420062.png

4d541440420062.png

Всем спасибо за внимание.

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

При включенном дебаге есть жалобы на переменные)

https://gyazo.com/f2...e78538daaf2d289

Вот кусок :


25 > if ($monsters && count($monsters) === 1 && $authorized && Flux::config('SingleMatchRedirectMobs')) {
26 > $this->redirect($this->url('npcs', 'view', array('id' => $monsters[0]->monster_id)));
27> }

Изменено пользователем ocelote
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эмммм... ну и что?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эмммм... ну и что?

Да ничего О.о

Просто сообщил -)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Этот кусок кода вообще можно удалить - данное условие, находящееся в npc/index.php все равно никогда не будет исполнено.

Видимо забыл удалить ;)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас