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;
Это звуки на стороне клиента на сколько я знаю
тут нету звука где скелет получает дамаг
Значит это от клиента. Либо попробуй сдампить 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 но название его неизвестно…