• SiteAnalyzer, технический и SEO-анализ сайтов

Спавн

nokiafan1111

Ефрейтор
Всем привет, может кто подсказать как заспавнить нпс в другом канале?
Есть локация в 3 канале, стоит как dummy. Как можно именно в этот канал поставить нпс?
 
в аишке как указать канал при спавне? я просто не догоняю немного с этими каналами.
 
в аишке как указать канал при спавне? я просто не догоняю немного с этими каналами.
В сборке id канал обычно обозначается как instanceId, в аишке можешь просто после спавна тпшить в нужный канал (handleSpawned), или просто доработай команду spawn, что бы можно было указывать канал
 
В сборке id канал обычно обозначается как instanceId, в аишке можешь просто после спавна тпшить в нужный канал (handleSpawned), или просто доработай команду spawn, что бы можно было указывать канал
примитивный пример подкинуть можешь? чето я не понял именно с handleSpawned часть
 
Когда данж создается у него есть InstanceWorldMapId и InstanceMapId.
В твоем случае InstanceMapId это твой канал. По умолчанию если он равен нулю - то это будет 1 канал.
В спавн движке есть различные варианты спавна - ищи тот где указывается и MapId и WorldMapId
 
примитивный пример подкинуть можешь? чето я не понял именно с handleSpawned часть
Ну тебе нужно просто единоразово заспавнить моба в канале 3 или на постоянной основе поместить его туда с респавном как у обычных мобов?
 
примитивный пример подкинуть можешь? чето я не понял именно с handleSpawned часть
Ну создать аи для этого моба, и в методе handleSpawned дописать что-то вроде World.getInstance().setPosition(бла-бла-бла), идея так себе, но проще всего в реализации
 
Код:
	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);
	}
Не проще так?
 
Назад
Сверху