本文整理汇总了PHP中pocketmine\event\entity\EntityShootBowEvent::getBow方法的典型用法代码示例。如果您正苦于以下问题:PHP EntityShootBowEvent::getBow方法的具体用法?PHP EntityShootBowEvent::getBow怎么用?PHP EntityShootBowEvent::getBow使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pocketmine\event\entity\EntityShootBowEvent
的用法示例。
在下文中一共展示了EntityShootBowEvent::getBow方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: onShoot
public function onShoot(EntityShootBowEvent $e)
{
if ($e->isCancelled()) {
return;
}
$p = $e->getEntity();
if (!$p instanceof Player) {
return;
}
$n = $p->getName();
if (isset($this->dumdums[$n])) {
if ($this->misfire($e->getBow())) {
$e->setCancelled();
// Bow broke!
$p->sendMessage("Dumdum failure!");
$this->getServer()->getPluginManager()->callEvent($cc = new ExplosionPrimeEvent($p, 4));
if ($cc->isCancelled()) {
return;
}
$explosion = new Explosion($p, $this->dumdums[$n][0]);
if (!$this->dumdums[$n][1]) {
$explosion->explodeA();
}
$explosion->explodeB();
return;
}
$arrow = $e->getProjectile();
$arrow->namedtag->setName("dumdum:" . implode(":", $this->dumdums[$n]));
return;
}
if (!isset($this->shooters[$n])) {
return;
}
if (!isset($this->shooters[$n])) {
return;
}
$e->setCancelled();
// Disable it and replace it with our own
if (!$p->isCreative()) {
if (!$this->checkAmmo($p, true)) {
$p->sendMessage("You are out of grenades");
$p->sendMessage("RPG disarmed");
unset($this->shoters[$n]);
return;
}
if ($this->misfire($e->getBow())) {
$p->sendMessage("RPG misfired!");
$this->fire($p, mt_rand(1, $this->shooters[$n][0]), 0.01);
return;
}
// Since we are cancelling the event, we change the damage later
$this->getServer()->getScheduler()->scheduleDelayedTask(new PluginCallbackTask($this, [$this, "breakBow"], [$n]), 5);
}
//echo "FORCE: ". $e->getForce()."\n"; //## DEBUG
$this->fire($p, $this->shooters[$n][0], $this->shooters[$n][1]);
}