Как сделать так чтобы когда игрок упал в лаву он переходил в гм 3 сразу не поджигаясь и не получая урон кому не сложно помогите прошу) Ядро Prismarine api 3.0.0. Я пробовал с PlayerInteractEvent но не сработало(
ядро?
Ой, прости пожалуйста Prismarine api: 3.0.0
Хз, может подойдет
// Импорт необходимых компонентов API
const { eventHandler, playerState, gameMode } = require(‘prismarine-api’);
// Создание обработчика событий для взаимодействия с лавой
eventHandler.on(‘playerInteractWithLava’, (event) => {
// Получение информации о состоянии игрока
const player = event.player;
const isInLava = playerState.checkIfInLava(player);
// Проверка условия нахождения в лаве
if (isInLava) {
// Изменение режима игры на режим наблюдателя
gameMode.setPlayerMode(player, ‘spectator’);
// Предотвращение урона от лавы
event.preventDefault();
}
});
Ничего не понятно
Парни, кто ему объяснит?
что?
![]()
добавь use:
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\event\entity\EntityDamageByEntityEvent;
сам code<>:
public function onEntityDamage(EntityDamageEvent $event) {
$entity = $event->getEntity();
if($entity instanceof Player && $event instanceof EntityDamageByEntityEvent) {
if($event->getCause() === EntityDamageEvent::CAUSE_LAVA) {
$player = $entity;
$player->setGamemode(Player::SPECTATOR);
return;
}
}
}
зачем?
отмена события не вариант?
это для prismarine
И что? в prismarine нету отмена события?
хаха чат гпт обожает писать $player = $entity
пхпхпхпхппхпх
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\event\Listener;
use pocketmine\level\GameMode;
use pocketmine\event\entity\EntityDamageByEntityEvent;
class main implements Listener {
public function onEntityDamage(EntityDamageEvent $event) {
$entity = $event->getEntity();
if ($entity instanceof Player && $event->getCause() === EntityDamageEvent::CAUSE_LAVA) {
$entity->setGamemode(3);
$event->setCancelled(true);
}
}
}