Я уже исправил все
все работает
public function onEntityDeath(EntityDeathEvent $event){
$entity = $event->getEntity();
$cause = $entity->getLastDamageCause();
$mon = mt_rand(1, 10);
$killer = $cause->getDamager();
$p = $killer->getPlayer();
$n = $p->getName();
if(!$entity instanceof Player and $killer instanceof Player){
$this->eco->addMoney(strtolower($n), $mon);
}
}
}
?>
если моб умрет не от рук игрока, то будет краш ![]()
понятно
как испрвить,_,
к примеру от падения?
не пиши если не знаешь, в $cause храниться номер причины смерти… Этот код никогда не заработает
а так?
public function onEntityDeath(EntityDeathEvent $event){
$entity = $event->getEntity();
$cause = $entity->getLastDamageCause();
$mon = mt_rand(1, 10);
$killer = $cause->getDamager();
$p = $killer->getPlayer();
$n = $p->getName();
if(!$entity instanceof Player and $killer instanceof Player){
$this->eco->addMoney(strtolower($n), $mon);
}
}
}
?>
это я добавил свое
Нет
но оно работает
твое вообще не работало хоть и ошибки не выдавало
Если у тя дамагер и так плеер, зач ты из него получаешь игрока
Я не помню щас что именно возвращает getLastDamageCause, вроде это число но это не точно. Делай лучше через EntityDamageEvent
Ты гей, ты записал гс
Даааа, проверять здоровье ентити, убивать его вручную
господи я ниче не понял, но понял что у меня гкод, но он рабочий)
когда заходишь и выходишь с сервера такое :
“Невозможно обработать событие ‘pocketmine\event\entity\EntityDeathEvent’ в ‘CashByMobs v1.0.0’: Call to a member function getDamager() on null в CashByMobs\MOBS”
2022-07-07 [15:39:59] [Server thread/CRITICAL]: Error: “Call to a member function getDamager() on null” (EXCEPTION) in “plugins/cashbymobs/src/CashByMobs/MOBS” at line 23
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #0 pmsrc/src/pocketmine/plugin/MethodEventExecutor(45): CashByMobs\MOBS->onEntityDeath(object pocketmine\event\entity\EntityDeathEvent)
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #1 pmsrc/src/pocketmine/plugin/RegisteredListener(96): pocketmine\plugin\MethodEventExecutor->execute(object CashByMobs\MOBS, object pocketmine\event\entity\EntityDeathEvent)
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #2 pmsrc/src/pocketmine/plugin/PluginManager(741): pocketmine\plugin\RegisteredListener->callEvent(object pocketmine\event\entity\EntityDeathEvent)
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #3 pmsrc/src/pocketmine/entity/Living(220): pocketmine\plugin\PluginManager->callEvent(object pocketmine\event\entity\EntityDeathEvent)
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #4 pmsrc/src/pocketmine/entity/Living(216): pocketmine\entity\Living->callDeathEvent()
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #5 pmsrc/src/pocketmine/entity/Lightning(60): pocketmine\entity\Living->kill()
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #6 pmsrc/src/pocketmine/level/Level(918): pocketmine\entity\Lightning->onUpdate(integer 760)
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #7 pmsrc/src/pocketmine/level/Level(850): pocketmine\level\Level->actuallyDoTick(integer 760)
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #8 pmsrc/src/pocketmine/Server(2716): pocketmine\level\Level->doTick(integer 760)
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #9 pmsrc/src/pocketmine/Server(2888): pocketmine\Server->checkTickUpdates(integer 760, double 1657197599.069694995880126953125)
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #10 pmsrc/src/pocketmine/Server(2616): pocketmine\Server->tick()
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #11 pmsrc/src/pocketmine/Server(2462): pocketmine\Server->tickProcessor()
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #12 pmsrc/src/pocketmine/Server(2025): pocketmine\Server->start()
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #13 pmsrc/src/pocketmine/PocketMine(320): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[16] /home/container/, string[24] /home/container/plugins/)
2022-07-07 [15:39:59] [Server thread/CRITICAL]: #14 pmsrc(1): require(string[71] phar:///home/container/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
Хорошо, но ты вообще пытался сделать проверку $cause instanceof Player
