Snowballは二つあります。
×Src→Pocketmine→Item→Snowball
○Src→Pocketmine→Entity→Snowball
Src→Pocketmine→Item→Snowball
ではなく
Src→Pocketmine→Entity→Snowball
から開いてください!
追加前
<?php /* * * ____ _ _ __ __ _ __ __ ____ * | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \ * | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) | * | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/ * |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_| * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * @author PocketMine Team * @link http://www.pocketmine.net/ * * */ namespace pocketmine\entity; use pocketmine\level\format\FullChunk; use pocketmine\nbt\tag\Compound; use pocketmine\network\protocol\AddEntityPacket; use pocketmine\Player; class Snowball extends Projectile{ const NETWORK_ID = 81; public $width = 0.1; public $length = 0.1; public $height = 0.1; protected $gravity = 0.07; protected $drag = 0.2; public function __construct(FullChunk $chunk, Compound $nbt, Entity $shootingEntity = null){ $this->shootingEntity = $shootingEntity; parent::__construct($chunk, $nbt); } public function onUpdate($currentTick){ if($this->closed){ return false; } $this->timings->startTiming(); $hasUpdate = parent::onUpdate($currentTick); if($this->age > 1200 or $this->isCollided){ $this->kill(); $hasUpdate = true; } $this->timings->stopTiming(); return $hasUpdate; } public function spawnTo(Player $player){ $pk = new AddEntityPacket(); $pk->type = Snowball::NETWORK_ID; $pk->eid = $this->getId(); $pk->x = $this->x; $pk->y = $this->y; $pk->z = $this->z; $pk->did = 0; //TODO: send motion here $player->dataPacket($pk); $player->addEntityMotion($this->getId(), $this->motionX, $this->motionY, $this->motionZ); parent::spawnTo($player); } }このコードを追加するだけです
protected $damage = 200;
200の部分はダメージで
0にするとダメージ0になります
追加後
<?php /* * * ____ _ _ __ __ _ __ __ ____ * | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \ * | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) | * | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/ * |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_| * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * @author PocketMine Team * @link http://www.pocketmine.net/ * * */ namespace pocketmine\entity; use pocketmine\level\format\FullChunk; use pocketmine\nbt\tag\Compound; use pocketmine\network\protocol\AddEntityPacket; use pocketmine\Player; class Snowball extends Projectile{ const NETWORK_ID = 81; public $width = 0.1; public $length = 0.1; public $height = 0.1; protected $gravity = 0.07; protected $drag = 0.2; protected $damage = 200; public function __construct(FullChunk $chunk, Compound $nbt, Entity $shootingEntity = null){ $this->shootingEntity = $shootingEntity; parent::__construct($chunk, $nbt); } public function onUpdate($currentTick){ if($this->closed){ return false; } $this->timings->startTiming(); $hasUpdate = parent::onUpdate($currentTick); if($this->age > 1200 or $this->isCollided){ $this->kill(); $hasUpdate = true; } $this->timings->stopTiming(); return $hasUpdate; } public function spawnTo(Player $player){ $pk = new AddEntityPacket(); $pk->type = Snowball::NETWORK_ID; $pk->eid = $this->getId(); $pk->x = $this->x; $pk->y = $this->y; $pk->z = $this->z; $pk->did = 0; //TODO: send motion here $player->dataPacket($pk); $player->addEntityMotion($this->getId(), $this->motionX, $this->motionY, $this->motionZ); parent::spawnTo($player); } }
Pocketmine-MP ver 1.6 での動作は確認できていません
最新コメント