Ядро : PMMP4
Описание: Добавляет на ваш сервер 5 рун с различными эффектами. Нужно зажать для использования. Имеется звук.
Выдача:
Оператором через команду /giverune <игрок> <первая буква эффекта>
Кодом -
RuneAPI::getRuneAPI()->giveRune(Player, RuneTypes);
RuneTypes можно найти в константах
Настройки: Не требуются
MagicalRunes.zip (6.8 КБ)
2 лайка
Daddy
04.Октябрь.2022 18:50:53
5
На самом деле херовая реализация…
Daddy
05.Октябрь.2022 02:07:31
7
Тем, что ты проверяешь имя предмета и делаешь действия
Я тоже так сделал в одном случае…
if ($player->getInventory()->getItemInHand()->getCustomName() == "Дебаг палка 4") {
// Действия
}
А в чём смысл проверять что - то еще если другого айтема с таким же кастом неймом не будет так как там юзается \n для 2 строки, то в наковальне, например, игрок не сможет нужно назвать руну.
Daddy
05.Октябрь.2022 09:21:52
14
if($player->getInventory()->getItemInHand() instanceof DebugPalka){
//действия
Нельзя просто взять и создать свой айтем
Тем более если свой айтем, зачем создавать листинер и проверку на айтем если можно в нем сделать действие
public function onClickAir(){}
qq_BCEM
05.Октябрь.2022 10:26:24
17
if($player->getInventory()->getItemInHand()->getCustomName() == "Руна" && $player->getInventory()->getItemInHand()->getId() == [айди]){
Так куда надёжнее
Daddy
05.Октябрь.2022 11:07:16
18
Ну создай кастом фабрику, создай класс кастом вещи, создай класс нужной кастом вещи, унаследуй класс кастом вещи… В классе нужной кастом вещи создай метод, который будет обрабатывать интеракт. И в PlayerInteractEvent делай проверку item instanceof CustomItem item->handleInteract
Daddy
05.Октябрь.2022 11:07:30
19
И как ты будешь его вызывать…
class DebugStick extends Stick{
public function onInteractBlock(Player $player, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, array &$returnedItems) : ItemUseResult{
$player->sendMessage("Ты кликнул палкой по блоку");
return ItemUseResult::NONE();
}
public function onClickAir(Player $player, Vector3 $directionVector, array &$returnedItems) : ItemUseResult{
$player->sendMessage("Ты кликнул палкой по воздуху");
return ItemUseResult::NONE();
}
}