Как такое сделать скажите пожалуйста

Как сделать так чтобы когда игрок упал в лаву он переходил в гм 3 сразу не поджигаясь и не получая урон кому не сложно помогите прошу) Ядро Prismarine api 3.0.0. Я пробовал с PlayerInteractEvent но не сработало(

1 лайк

ядро?

3 лайка

Ой, прости пожалуйста Prismarine api: 3.0.0

2 лайка

Хз, может подойдет

// Импорт необходимых компонентов 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();

}
});

Ничего не понятно

Парни, кто ему объяснит?

1 лайк

что?

:skull_and_crossbones:

1 лайк
добавь 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;
            }
        }
    }
2 лайка

зачем?

отмена события не вариант?

это для 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);
    }
}

}