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; } }
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(); } }