Всем привет, может кто подсказать как заспавнить нпс в другом канале? Есть локация в 3 канале, стоит как dummy. Как можно именно в этот канал поставить нпс?
В сборке id канал обычно обозначается как instanceId, в аишке можешь просто после спавна тпшить в нужный канал (handleSpawned), или просто доработай команду spawn, что бы можно было указывать канал
Когда данж создается у него есть InstanceWorldMapId и InstanceMapId. В твоем случае InstanceMapId это твой канал. По умолчанию если он равен нулю - то это будет 1 канал. В спавн движке есть различные варианты спавна - ищи тот где указывается и MapId и WorldMapId
Ну тебе нужно просто единоразово заспавнить моба в канале 3 или на постоянной основе поместить его туда с респавном как у обычных мобов?
Ну создать аи для этого моба, и в методе handleSpawned дописать что-то вроде World.getInstance().setPosition(бла-бла-бла), идея так себе, но проще всего в реализации
Да, instanceId - канал (как в чате пишет - так и вводи, с 0 нумерация начинается только в клиенте, на сервере с 1)
Код: public void setCustomPosition(VisibleObject object, int mapId, float x, float y, float z, byte heading) { int instanceId = 3; if (object.isSpawned()) despawn(object); WorldMapInstance instanceMap = getWorldMap(mapId).getWorldMapInstanceById(instanceId); if (instanceMap == null) { return; } WorldPosition newPosition = World.getInstance().createPosition(mapId, x, y, z, heading, instanceId); object.setPosition(newPosition); MapRegion region = instanceMap.getRegion(object); object.getPosition().setMapRegion(region); } Не проще так?
Да вы велосипед чет изобретаете рил), взял метод - поменял id канала - поменял название метода - валуа - новый метод спавна в определенных каналах)