當前位置: 首頁>>代碼示例>>PHP>>正文


PHP EntityShootBowEvent::isCancelled方法代碼示例

本文整理匯總了PHP中pocketmine\event\entity\EntityShootBowEvent::isCancelled方法的典型用法代碼示例。如果您正苦於以下問題:PHP EntityShootBowEvent::isCancelled方法的具體用法?PHP EntityShootBowEvent::isCancelled怎麽用?PHP EntityShootBowEvent::isCancelled使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在pocketmine\event\entity\EntityShootBowEvent的用法示例。


在下文中一共展示了EntityShootBowEvent::isCancelled方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: onEntityShootBow

 public function onEntityShootBow(EntityShootBowEvent $event)
 {
     if (!$event->isCancelled()) {
         $arrow = $event->getProjectile();
         $set = [$arrow->chunk, $arrow->nametag, $p];
         $newArrow = new AbilityArrow(...$set);
         $p = $event->getEntity();
         if ($p instanceof Player) {
             if (!$p->isCreative()) {
                 $list = [1 => FireArrow::class, 5 => TeleportArrow::class, 7 => SpiderArrow::class, 9 => HealArrow::class, 12 => PowerArrow::class];
                 $inv = $p->getInventory();
                 foreach ($inv->getContents() as $k => $i) {
                     $d = $i->getDamage();
                     if ($i->getID() == 351 && isset($list[$d])) {
                         $i->setCount($i->getCount() - 1);
                         $inv->setItem($k, $i);
                         $p->sendMessage([1 => "FireArrow", 5 => "TeleportArrow", 7 => "SpiderArrow", 9 => "HealArrow", 12 => "PowerArrow"][$d]);
                         $newArrow = new $list[$d](...$set);
                         break;
                     }
                 }
             }
         }
         $event->setProjectile($newArrow);
     }
 }
開發者ID:stoastye85,項目名稱:Plugins,代碼行數:26,代碼來源:ArrowAbility.php

示例2: 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]);
 }
開發者ID:DWWf,項目名稱:pocketmine-plugins,代碼行數:56,代碼來源:Main.php


注:本文中的pocketmine\event\entity\EntityShootBowEvent::isCancelled方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。