public function buy(Player $buyer)
 {
     $rpg = ToAruPG::getInstance()->getRPGPlayerByName($buyer);
     $skill = SkillManager::getSkill($this->skillId);
     $rpg->acquireSkill($skill);
     EconomyAPI::getInstance()->reduceMoney($buyer, $this->cost, true, "To Aru Shop");
     $buyer->sendMessage(TextFormat::AQUA . ToAruPG::getTranslation("BOUGHT"));
 }
Exemple #2
0
 public function buy(Player $buyer)
 {
     $rpg = ToAruPG::getInstance()->getRPGPlayerByName($buyer);
     $job = JobManager::getJob($this->jobId);
     $rpg->changeJob($job);
     foreach ($job->getSkills() as $skill) {
         $skill = SkillManager::getSkill($skill);
         if (!$skill->canBeAcquired($rpg)) {
             $buyer->sendMessage(TextFormat::RED . ToAruPG::getTranslation("SKILL_COULD_NOT_ACQUIRE", ToAruPG::getTranslation($skill->getName())));
             continue;
         }
         if ($rpg->hasSkill($skill->getId())) {
             $buyer->sendMessage(TextFormat::RED . ToAruPG::getTranslation("ALREADY_HAS_SKILL", ToAruPG::getTranslation($skill->getName())));
             continue;
         }
         $rpg->acquireSkill($skill);
     }
     EconomyAPI::getInstance()->reduceMoney($buyer, $this->cost, true, "To Aru Shop");
     $buyer->sendMessage(TextFormat::AQUA . ToAruPG::getTranslation("BOUGHT"));
 }
 public function onRun($currentTick)
 {
     ToAruPG::getInstance()->saveAll();
     ToAruPG::getInstance()->getLogger()->info(TextFormat::AQUA . "Auto-saved!");
 }
Exemple #4
0
 public function setArmorStatus(Status $status)
 {
     Server::getInstance()->getPluginManager()->callEvent(new ArmorChangeEvent(ToAruPG::getInstance(), $this, $this->armorStatus, $status));
     $this->armorStatus = $status;
 }
Exemple #5
0
 public function onRun($currentTick)
 {
     ToAruPG::getInstance()->heal();
 }
 public function onRun($currentTick)
 {
     if (!ToAruPG::getInstance()->isValidPlayer($this->player->getPlayer())) {
         return;
     }
     $pos = $this->player->getPlayer()->getPosition();
     for ($i = 0; $i < self::SPLIT_SHOT_COUNT; $i++) {
         $arrow = Archery::createEffectArrow($this->player->getPlayer(), $pos, new Vector3(mt_rand(-5, 5) / 5, -1, mt_rand(-5, 5) / 5), 0, -90, 255, 0, 120, false);
         $arrow->namedtag["ArcheryDamage"] = new Double("ArcheryDamage", $this->player->getCurrentJob()->getFinalDamage($this->player) * (2 + $this->level / 10));
         $arrow->namedtag["Custom"] = new Int("Custom", 1);
         $this->player->getPlayer()->getLevel()->addEntity($arrow);
         $arrow->spawnToAll();
     }
 }
 public function handle(ProjectileHitEvent $event)
 {
     $shootingEntity = $event->getEntity()->shootingEntity;
     if (!$shootingEntity instanceof Player) {
         return;
     }
     $rpgPlayer = ToAruPG::getInstance()->getRPGPlayerByName($shootingEntity->getName());
     if ($rpgPlayer === null) {
         return;
     }
     $skill = $rpgPlayer->getSkillById(SkillLightningShot::getId());
     if (!$skill instanceof SkillLightningShot) {
         return;
     }
     $pos = $event->getEntity();
     $aedPk = new AddEntityPacket();
     $aedPk->eid = Entity::$entityCount++;
     $aedPk->type = 93;
     $aedPk->x = $pos->getX();
     $aedPk->y = $pos->getY();
     $aedPk->z = $pos->getZ();
     $aedPk->speedX = 0;
     $aedPk->speedY = 0;
     $aedPk->speedZ = 0;
     $aedPk->yaw = 0;
     $aedPk->pitch = 0;
     $aedPk->metadata = [];
     $expPk = new ExplodePacket();
     $expPk->x = $pos->getX();
     $expPk->y = $pos->getY();
     $expPk->z = $pos->getZ();
     $expPk->radius = self::EXPLOSION_SIZE;
     $pos->getLevel()->addChunkPacket($pos->chunk->getX(), $pos->chunk->getZ(), $aedPk);
     $pos->getLevel()->addChunkPacket($pos->chunk->getX(), $pos->chunk->getZ(), $expPk);
     $aabb = new AxisAlignedBB($pos->getX() - self::EXPLOSION_SIZE - 1, $pos->getY() - self::EXPLOSION_SIZE - 1, $pos->getZ() - self::EXPLOSION_SIZE - 1, $pos->getX() + self::EXPLOSION_SIZE + 1, $pos->getY() + self::EXPLOSION_SIZE + 1, $pos->getZ() + self::EXPLOSION_SIZE + 1);
     foreach ($pos->getLevel()->getNearbyEntities($aabb, $shootingEntity) as $e) {
         if ($e instanceof Player && !ToAruPG::$pvpEnabled) {
             continue;
         }
         $event = new EntityDamageByEntityEvent($shootingEntity, $e, EntityDamageByEntityEvent::CAUSE_CUSTOM, $skill->getDamage());
         Server::getInstance()->getPluginManager()->callEvent($event);
         if (!$event->isCancelled()) {
             $e->attack($skill->getDamage(), $event);
             $thread = new SafeBurnThread($e, $shootingEntity, $skill->getFireTick());
             $thread->setHandler(Server::getInstance()->getScheduler()->scheduleRepeatingTask($thread, 40));
         }
     }
 }
 public function setXp($xp)
 {
     Server::getInstance()->getPluginManager()->callEvent(new XPChangeEvent(ToAruPG::getInstance(), $this->owner, $this->xp, $xp));
     $this->xp = $xp;
 }
Exemple #9
0
 public function buy(Player $buyer)
 {
     ToAruPG::getInstance()->getRPGPlayerByName($buyer)->changeJob(JobManager::getJob($this->jobId));
     EconomyAPI::getInstance()->reduceMoney($buyer, $this->cost, true, "To Aru Shop");
     $buyer->sendMessage(TextFormat::AQUA . ToAruPG::getTranslation("BOUGHT"));
 }