示例#1
0
 public function checkQuest(SR_NPC $npc, SR_Player $player)
 {
     if (!$this->isInQuest($player)) {
         return false;
     }
     if ($this->getAmount() >= $this->getNeededAmount()) {
         $npc->reply($this->lang('thanks'));
         // 			$npc->reply('Thank you very much!');
         $player->message($this->lang('reward'));
         // 			$player->message(sprintf('The elve cheers and hands out a glowing dark bow.'));
         $bow = SR_Item::createByName('DarkBow');
         $mod1 = SR_Rune::randModifier($player, 10);
         $mod2 = SR_Rune::randModifier($player, 10);
         $modifiers = SR_Rune::mergeModifiers($mod1, $mod2);
         $bow->addModifiers($modifiers);
         $player->giveItems(array($bow), $npc->getName());
         $this->onSolve($player);
         return true;
     } else {
         $npc->reply($this->lang('more', array($this->getAmount(), $this->getNeededAmount())));
         // 			$npc->reply(sprintf('I see you have punished %s of %s Angry Elves.', $this->getAmount(), $this->getNeededAmount()));
         return false;
     }
 }
示例#2
0
 private static function randLootStatItem(SR_Player $player, $level, SR_Item $item, array $chance)
 {
     for ($i = 0; $i < count($chance); $i++) {
         if (!self::dicePercent($chance[$i])) {
             break;
         }
         if (false === ($modifiers = SR_Rune::randModifier($player, $level))) {
             break;
         }
         $item->addModifiers($modifiers, false);
     }
     if ($i > 0) {
         $item->updateModifiers();
     }
 }