Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

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

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Get Instance Zone by ID?


BhaaL

Рекомендуемые сообщения

I'm currently working on an interactive version of easyAstral which takes zone info directly from the game, using sysZoneNames and zoneIds. This works for Astral Isles like "AstralIsland01", but not for instance maps such as Lab 13, Oreshek or Plague Castle; since all of them return Zone ID 228 which is "Unknown Zone".

And other than GetCurrentZone, I can't seem to get the same info from any of the known API funcs.

Does anyone know any way of

- identifying and

- retrieving data of instance maps?

I'd at least want to someObject.DoMagic(someZoneId) and get "Lab 13"; but preferably also do someObject.DoInstanceMagic(currentZoneId) and get a "true"/1 for such maps.

Anyone knows anything that could help here?

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

Yeh, I've been working on mapping out instances for my FullMap add-on. Here's how you get the names.

Code:
local allod = userMods.FromWString(cartographer.GetCurrentZone().allod)

local zone = cartographer.GetCurrentZone().sysZoneName

The allod is not a system string, so it will be different in each languaged client of the game. However places like the Gipat dungeon do not have a sysZoneName in certain versions of the game.

The zone is going to be a system string and will remain the same throughout clients so long as it is used. This will give you things like Inst_Empire1End or other things. You'll have to note simple distinct differences in these names. Like Laguna Boil is ZomeEmpire3 note the m instead of n; don't ask me why that's the case, it just is. Sadly, in certain versions of the game Oreshek and Darkblood Citadel share the same sysName, so the only difference is the non-standard allod name and the dynamic mapId.

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

Yeah, I noticed zone.allod is different for all of them (I think, haven't been to some of them yet). But since thats a localized string, I'll probably have a hard time coding that into some sort of table which in turn tells me the sectors its in - different language clients wont match.

The mapId, not so much, its always been "ZonesMapUnknown" for me.

For now, I'm mapping those by hand with keys I picked myself (like "TT2", "Oreshek" or "Lab13") with a corresponding localization table - except that it leaves me no way of detecting them automatically for times when my resource table is not complete enough.

Too bad theres no other way...

Any other ideas?

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

You can get the local zone = cartographer.GetCurrentZone().sysZoneName for all of the allods you want and then plug them into local zonesMapId = cartographer.GetZonesMapId(zone) to get their dynamic Id numbers for that client run supposing that they only change once a client load.

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

Whine @ gPotato and hope they'll ask Astrum Nival to extend game API?

IMO we have enough human resources to collect needed data...

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования