Получение звуков

pm4, а как получить звуки скелета а точнее звук удара скелета

в pocketmine\world\sound; я ничего не нашëл поэтому полез в пакеты pocketmine\network\mcpe\protocol\types\LevelEvent; но и тут я тоже не нашел ничего…

я так же ничего не нашёл

Все звуки находится по пути pocketmine/world/sound

ага

не все

LevelEvent

public const SOUND_CLICK = 1000;
	public const SOUND_CLICK_FAIL = 1001;
	public const SOUND_SHOOT = 1002;
	public const SOUND_DOOR = 1003;
	public const SOUND_FIZZ = 1004;
	public const SOUND_IGNITE = 1005;
	public const SOUND_PLAY_RECORDING = 1006;
	public const SOUND_GHAST = 1007;
	public const SOUND_GHAST_SHOOT = 1008;
	public const SOUND_BLAZE_SHOOT = 1009;
	public const SOUND_DOOR_BUMP = 1010;

	public const SOUND_DOOR_CRASH = 1012;

	public const SOUND_ZOMBIE_INFECTED = 1016;
	public const SOUND_ZOMBIE_CONVERT = 1017;
	public const SOUND_ENDERMAN_TELEPORT = 1018;

	public const SOUND_ANVIL_BREAK = 1020;
	public const SOUND_ANVIL_USE = 1021;
	public const SOUND_ANVIL_FALL = 1022;

	public const SOUND_POP = 1030;

	public const SOUND_PORTAL = 1032;

	public const SOUND_ITEMFRAME_ADD_ITEM = 1040;
	public const SOUND_ITEMFRAME_REMOVE = 1041;
	public const SOUND_ITEMFRAME_PLACE = 1042;
	public const SOUND_ITEMFRAME_REMOVE_ITEM = 1043;
	public const SOUND_ITEMFRAME_ROTATE_ITEM = 1044;

	public const SOUND_CAMERA = 1050;
	public const SOUND_ORB = 1051;
	public const SOUND_TOTEM = 1052;

	public const SOUND_ARMOR_STAND_BREAK = 1060;
	public const SOUND_ARMOR_STAND_HIT = 1061;
	public const SOUND_ARMOR_STAND_FALL = 1062;
	public const SOUND_ARMOR_STAND_PLACE = 1063;
	public const SOUND_POINTED_DRIPSTONE_FALL = 1064;
	public const SOUND_DYE_USED = 1065;
	public const SOUND_INK_SAC_USED = 1066;

Это звуки на стороне клиента на сколько я знаю

тут нету звука где скелет получает дамаг

1 лайк

Значит это от клиента. Либо попробуй сдампить LevelEventPacket

так лол, если я не тупой, то вот подсказка в любом из файлов:

public function encode(Vector3 $pos) : array{
    return [LevelEventPacket::create(LevelEvent::SOUND_ANVIL_FALL, 0, $pos)];
}

тоесть по сути тебе нужно делать так:

use pocketmine\math\Vector3;
use pocketmine\network\mcpe\protocol\LevelEventPacket;
use pocketmine\network\mcpe\protocol\types\LevelEvent;

вставляешь это функцию в свой код:

public function create_sound(Vector3 $position, int $sound): void
{
    LevelEventPacket::create($sound, 0, $pos);
}

и потом просто вызываете метод, когда надо:

$this->create_sound(new Vector3($x, $y, $z), LevelEvent::SOUND_ZOMBIE_INFECTED);

но всё таки я не уверен

да не в этом дело

звука нету который мне нужен

Это клиентское, скорее всего. Попробуй продампить LevelEventPacket при ударе скелета ( ну ты понял)

смотри, в файле LevelSoundEvent есть ещё звуки, поищи здесь. Если будет, то короче делаешь вот так:

use pocketmine\network\mcpe\protocol\types\LevelSoundEvent;
$this->create_sound(new Vector3($x, $y, $z), LevelSoundEvent::DEATH);

хотя подожди, там нужно будет использовать LevelSoundEventPacket, вообщем разберёшься я думаю

видимо только вручную прописывать в ядре…

так как я вижу пробелы между 1010 1012 нету 1011 но название его неизвестно…