示例#1
0
文件: givekw.php 项目: sinfocol/gwf3
 public static function execute(SR_Player $player, array $args)
 {
     if ($player->isFighting()) {
         $player->msg('1036');
         // 			$player->message('This does not work in combat');
         return false;
     }
     $argc = count($args);
     if ($argc < 1 || $argc > 2) {
         $player->message(Shadowhelp::getHelp($player, 'givekw'));
         return false;
     }
     if ($argc === 2) {
         if (false === ($target = Shadowfunc::getFriendlyTarget($player, $args[0]))) {
             $player->msg('1028', array($args[0]));
             #$player->message(sprintf('%s is not here or the name is ambigous.', $args[0]));
             return false;
         }
         $word = $args[1];
         $targets = array($target);
     } else {
         $word = $args[0];
         $targets = $player->getParty()->getMembers();
     }
     if (false === $player->hasKnowledge('words', $word)) {
         $player->msg('1023');
         # You don`t have this knowledge.
         return false;
     }
     return self::giveKnow($player, $targets, 'words', $args[1]);
 }
示例#2
0
 public function onNPCTalk(SR_Player $player, $word, array $args)
 {
     // 		$b = chr(2);
     switch ($word) {
         case 'magic':
             return $this->rply($word);
             // 				return $this->reply('Yeah, I even sell some magic potions and elixirs.');
         // 				return $this->reply('Yeah, I even sell some magic potions and elixirs.');
         case 'chemistry':
             $this->rply($word);
             // 				$this->reply("You can buy similar things here for chemistry or even {$b}magic{$b} potions.");
             $player->giveKnowledge('words', 'Magic');
             return true;
         case 'hello':
             return $this->rply($word, array($this->getName()));
             // 				return $this->reply("Hello, my name is ".$this->getName()." and I sell items for {$b}chemistry{$b} and similar stuff.");
         // 				return $this->reply("Hello, my name is ".$this->getName()." and I sell items for {$b}chemistry{$b} and similar stuff.");
         case 'gizmore':
         case 'somerandomnick':
             return $this->rply('brother', array($word));
             // 				return $this->reply(sprintf('Oh you mean my brother %s in Amerindian.', $word));
         // 				return $this->reply(sprintf('Oh you mean my brother %s in Amerindian.', $word));
         default:
             return $this->rply('default', array($word));
             // 				return $this->reply("What do you mean with $word?");
     }
 }
示例#3
0
 public function getStoreItems(SR_Player $player)
 {
     $back = array();
     $rep = $player->get('reputation');
     $back[] = array('Headcomputer');
     $back[] = array('SmartGoggles');
     $back[] = array('Sporn');
     $back[] = array('Cybermuscles');
     $back[] = array('CybermusclesV2');
     $back[] = array('CybermusclesV3');
     $back[] = array('DermalPlates');
     if ($rep >= 1) {
         $back[] = array('DermalPlatesV2');
     }
     if ($rep >= 2) {
         $back[] = array('DermalPlatesV3');
     }
     $back[] = array('WiredReflexes');
     if ($rep >= 2) {
         $back[] = array('WiredReflexesV2');
     }
     if ($rep >= 3) {
         $back[] = array('WiredReflexesV3');
     }
     return $back;
 }
示例#4
0
 public function onSolveCrypto(SR_Player $player, $word, array $args)
 {
     if (count($args) !== 1) {
         $this->rply('crypto1');
         // 			$this->reply('I wrote down some message and cannot decipher it myself again -.- Please tell me the password with #talk crypto <password>.');
         $this->rply('crypto2');
         // 			$this->reply('eht swordsap ot ym fase si ont xenophi tub gimmuhnbrid.');
         $cry = $player->get('crypto');
         if ($cry >= 1) {
             $player->message($this->langNPC('skills1'));
             // 				$player->message('With your awesome crypto skills you can easily read the message: "the password to my safe is not phoenix but hummingbird."');
         } elseif ($cry >= 0) {
             $player->message($this->langNPC('skills2'));
             // 				$player->message('With your awesome crypto skills you immediately recognize it\'s a simple anagram for each word.');
         }
         return true;
     }
     $answer = $args[0];
     switch ($answer) {
         case 'hummingbird':
             return $this->onQuestSolved($player, $word, $args);
         case 'phoenix':
             return $this->rply('almost');
             // 				return $this->reply('Yeah this rings a bell ... Let me try ... Darn wrong!');
         // 				return $this->reply('Yeah this rings a bell ... Let me try ... Darn wrong!');
         default:
             return $this->rply('wrong');
             // 				return $this->reply('Sweet let me try it on my safe ... Darn wrong.');
     }
 }
示例#5
0
 private function calcNegPrice(SR_Player $player)
 {
     $price = 10000;
     $try = $player->getTemp(self::TEMP_WORDN);
     $price -= $try * 1000;
     return $price;
 }
示例#6
0
文件: giveny.php 项目: sinfocol/gwf3
 public static function giveNuyen(SR_Player $player, SR_Player $target, $what, $amt)
 {
     if ($amt <= 0) {
         $player->msg('1062');
         // 			$player->message(sprintf('You can only give away a positive amount of %s.', $what));
         return false;
     }
     $have = $player->getBase($what);
     if ($amt > $have) {
         $player->msg('1063', array(Shadowfunc::displayNuyen($amt), Shadowfunc::displayNuyen($have)));
         // 			$player->message(sprintf('You only have %s %s.', $have, $what));
         return false;
     }
     # Thx jjk
     //		if (($have - $amt) <= SR_Player::START_NUYEN)
     //		{
     //			$player->message(sprintf('You can\'t give all your money away, you need at least %s', Shadowfunc::displayNuyen(SR_Player::START_NUYEN)));
     //			$player->message(sprintf('Maximum you can give is %s', Shadowfunc::displayNuyen($have-SR_Player::START_NUYEN)));
     //			return false;
     //		}
     if (false === $target->alterField($what, $amt)) {
         $player->message('Database error in giveNyKa()... 1');
         return false;
     }
     if (false === $player->alterField($what, -$amt)) {
         $player->message('Database error II in giveNyKa()... 2');
         return false;
     }
     $target->msg('5118', array(Shadowfunc::displayNuyen($amt), $player->getName()));
     $player->msg('5119', array(Shadowfunc::displayNuyen($amt), $target->getName()));
     // 		$target->message(sprintf('You received %s %s from %s.', $amt, $what, $player->getName()));
     // 		$player->message(sprintf('You gave %s %s %s.', $target->getName(), $amt, $what));
     return true;
 }
示例#7
0
文件: Pockets.php 项目: sinfocol/gwf3
 public function getPocketsTuneup(SR_Player $player)
 {
     $bo = $player->get('body') * 0.02;
     $st = $player->get('strength') * 0.03;
     $qu = $player->get('quickness') * 0.05;
     return $bo + $st + $qu;
 }
示例#8
0
文件: parties.php 项目: sinfocol/gwf3
 public static function execute(SR_Player $player, array $args)
 {
     $pp = Shadowrun4::getParties();
     foreach ($pp as $i => $p) {
         $p instanceof SR_Party;
         if (!$p->isHuman()) {
             unset($pp[$i]);
         }
     }
     $page = isset($args[0]) ? intval($args[0]) : 1;
     $nItems = count($pp);
     $nPages = GWF_PageMenu::getPagecount(self::PPP, $nItems);
     $page = Common::clamp($page, 1, $nPages);
     $from = GWF_PageMenu::getFrom($page, self::PPP);
     $slice = array_slice($pp, $from, self::PPP);
     $out = '';
     $format = $player->lang('fmt_list');
     foreach ($slice as $p) {
         $p instanceof SR_Party;
         $leader = $p->getLeader()->displayName();
         $l = $p->getSum('level', true);
         $ll = $p->getSum('level', false);
         $mc = $p->getMemberCount();
         $item = sprintf('%s(L%s(%s))(M%s)', $leader, $l, $ll, $mc);
         $out .= sprintf($format, $item);
         // 			$out .= sprintf(', %s(L%s(%s))(M%s)', $leader, $l, $ll, $mc);
     }
     return self::rply($player, '5248', array($page, $nPages, ltrim($out, ',; ')));
     // 		$bot = Shadowrap::instance($player);
     // 		$bot->reply(sprintf('Parties page %s from %s: %s.', $page, $nPages, substr($out, 2)));
 }
示例#9
0
文件: Seattle.php 项目: sinfocol/gwf3
 public function getRespawnLocation(SR_Player $player)
 {
     if ($player->getNuyen() > 100 && $player->hasKnowledge('places', 'Seattle_Hotel')) {
         return 'Seattle_Hotel';
     }
     return parent::getRespawnLocation($player);
 }
示例#10
0
 public function checkQuest(SR_NPC $npc, SR_Player $player)
 {
     $have = $this->getAmount();
     $need = $this->getNeededAmount();
     $give = 0;
     foreach ($player->getInventory() as $item) {
         if ($item instanceof SR_Rune) {
             $player->deleteFromInventory($item);
             $have++;
             $give++;
             if ($have >= $need) {
                 break;
             }
         }
     }
     if ($give > 0) {
         $this->increase('sr4qu_amount', $give);
         $player->message($this->lang('gave', array($give, $npc->getName())));
         // 			$player->message(sprintf('You gave %s %s to %s.', $give, 'Runes', $npc->getName()));
     }
     if ($have >= $need) {
         $npc->reply($this->lang('thanks1'));
         // 			$npc->reply('Thank you very much my friend. Now I can also craft some equipment again.');
         $this->onSolve($player);
         $npc->reply($this->lang('thanks2', array(self::REWARD_RUNES)));
         // 			$npc->reply('As a reward I let you create '.self::REWARD_RUNES.' new runes via #reward.');
         $player->increaseConst(Seattle_Blacksmith::REWARD_RUNES, self::REWARD_RUNES);
     } else {
         $npc->reply($this->lang('more', array($have, $need)));
         // 			$npc->reply(sprintf('You gave me %s of %s Runes... Give me a few more and I will reward you greatly :)', $have, $need));
     }
 }
示例#11
0
 public function onNPCQuestTalkB(SR_TalkingNPC $npc, SR_Player $player, $word, array $args = NULL)
 {
     $need = $this->getNeededAmount();
     $dp = $this->displayRewardNuyen();
     switch ($word) {
         case 'shadowrun':
             $npc->reply("Haha ... you want to be a runner ... kill 20 bums and i reward your with {$dp}.");
             break;
         case 'confirm':
             $npc->reply("So?");
             break;
         case 'yes':
             $npc->reply('I was just kidding!');
             break;
         case 'no':
             $npc->reply('Hehe yeah, i was just kidding.');
             if (count($args) === 0 || $args[0] !== 'SURE') {
                 $player->message("Use #talk no SURE to decline this quest forever.");
             } else {
                 $this->decline($player);
             }
             break;
     }
     return true;
 }
示例#12
0
 public function onThrow(SR_Player $player, SR_Player $target)
 {
     $firearms = $player->get('firearms');
     $atk = 20 + $firearms;
     $mindmg = 1;
     $maxdmg = 6;
     $out_dmg = '';
     $out_dmgep = '';
     $out_eff = '';
     $inaccuracy = rand(2, 4) - ($firearms ? 1 : 0);
     $targets = $this->computeDistances($target, $inaccuracy);
     foreach ($targets as $data) {
         list($t, $d) = $data;
         $t instanceof SR_Player;
         $a = $atk - $d + rand(-1, 2);
         $a = Common::clamp($a, 0, $atk);
         $def = $t->get('defense');
         $arm = $t->get('marm');
         $hits = Shadowfunc::diceHits($mindmg, $arm, $atk, $def, $player, $t);
         $hits -= $arm;
         $hits = Common::clamp($hits, 0);
         if ($hits == 0) {
             continue;
         }
         $dmg = round($mindmg + $hits / 10, 2);
         if ($dmg <= 0) {
             continue;
         }
     }
 }
示例#13
0
文件: Hideout.php 项目: sinfocol/gwf3
 public function onEnter(SR_Player $player)
 {
     $party = $player->getParty();
     $dice = rand(0, 6);
     if ($dice < 2) {
         $this->partyMessage($player, 'lucky');
         // 			$party->notice('You silently search the door and windows for an entrance. You were lucky and sneak in...');
         $this->teleportInside($player, 'Hideout_Exit');
     } else {
         if ($dice < 4) {
             $this->partyMessage($player, 'noluck');
             // 			$party->notice('You silently search the door and windows for an entrance. You have no luck, everything\'s closed.');
         } else {
             if ($dice < 6) {
                 $this->partyMessage($player, 'fight2');
                 // 			$party->notice('You silently search the door and windows for an entrance. Two punks notice you and attack!');
                 SR_NPC::createEnemyParty('Redmond_Cyberpunk', 'Redmond_Cyberpunk')->fight($party, true);
             } else {
                 $this->partyMessage($player, 'fight4');
                 // 			$party->notice('You take a look through the doors keyhole. A party of four punks opens the door and surprises you.');
                 SR_NPC::createEnemyParty('Redmond_Cyberpunk', 'Redmond_Cyberpunk', 'Redmond_Pinkhead', 'Redmond_Lamer')->fight($party, true);
             }
         }
     }
 }
示例#14
0
 public function getHelpText(SR_Player $player)
 {
     return $player->lang('hlp_hotel', array($this->displaySleepPrice($player)));
     // 		$price = $this->calcPrice($player);
     // 		$c = Shadowrun4::SR_SHORTCUT;
     // 		return sprintf('You can pay %s to %ssleep here and restore your party`s HP/MP.', $price, $c);
 }
示例#15
0
文件: mounts.php 项目: sinfocol/gwf3
 public static function execute(SR_Player $player, array $args)
 {
     $p = $player->getParty();
     if (false !== ($city = $p->getCityClass())) {
         if ($city->isDungeon()) {
             self::rply($player, '1035');
             return false;
             // 				Shadowrap::instance($player)->reply('In dungeons you don\'t have mounts.');
         }
     }
     //		$i = 1;
     $format = $player->lang('fmt_sumlist');
     $out = '';
     $total = 0.0;
     $total_max = 0.0;
     foreach ($p->getMembers() as $member) {
         $member instanceof SR_Player;
         $mount = $member->getMount();
         $we = $mount->calcMountWeight();
         $max = $mount->getMountWeightB();
         $total += $we;
         $total_max += $max;
         if ('' !== ($weight = $mount->displayWeight())) {
             // 				$weight = "({$weight})";
         }
         $out .= sprintf($format, $member->getEnum(), $mount->getName(), $weight);
         // 			$out .= sprintf(", \x02%s\x02-%s%s", $member->getEnum(), $mount->getName(), $weight);
     }
     return self::rply($player, '5083', array(Shadowfunc::displayWeight($total), Shadowfunc::displayWeight($total_max), ltrim($out, ',; ')));
     // 		$message = sprintf('Party Mounts(%s/%s): %s.', Shadowfunc::displayWeight($total), Shadowfunc::displayWeight($total_max), substr($out, 2));
     return Shadowrap::instance($player)->reply($message);
 }
示例#16
0
文件: Doctor.php 项目: sinfocol/gwf3
 public function onNPCTalk(SR_Player $player, $word, array $args)
 {
     // 		$c = Shadowrun4::SR_SHORTCUT;
     // 		$b = chr(2);
     switch ($word) {
         case 'malois':
             // 				return $this->reply('I do not talk about customers.');
         // 				return $this->reply('I do not talk about customers.');
         case 'heal':
             return $this->rply($word);
             // 				return $this->reply("We can heal you for some nuyen. Just use {$c}heal here.");
         // 				return $this->reply("We can heal you for some nuyen. Just use {$c}heal here.");
         case 'yes':
         case 'no':
         case 'cyberware':
             return $this->rply('cyber');
             // 				return $this->reply("We have the best Renraku Cyberware available. Use {$c}view, {$c}implant and {$c}unplant to manage your accessoires.");
         // 				return $this->reply("We have the best Renraku Cyberware available. Use {$c}view, {$c}implant and {$c}unplant to manage your accessoires.");
         case 'hello':
         default:
             $this->rply('default');
             // 				$this->reply("Hello chummer, need some {$b}heal{$b} or {$b}cyberware{$b}?");
             $player->giveKnowledge('words', 'Cyberware', 'Yes', 'No');
             return true;
     }
 }
示例#17
0
文件: Ship1.php 项目: sinfocol/gwf3
 public function onEnter(SR_Player $player)
 {
     $party = $player->getParty();
     $player->message($this->lang($player, 'no_enter'));
     // 		$player->message('You cannot find any open entrance to the ship ... Yet.');
     return false;
 }
示例#18
0
文件: Cell5.php 项目: sinfocol/gwf3
 private function isMaloisHere(SR_Player $player)
 {
     if (false === ($party = $player->getParty())) {
         return false;
     }
     return $party->hasNPCNamed('Malois') || $party->hasConst('RESCUED_MALOIS') ? false : true;
 }
示例#19
0
文件: Store.php 项目: sinfocol/gwf3
 public function getNPCS(SR_Player $player)
 {
     if ($player->hasConst('RESCUED_MALOIS')) {
         return array('talk' => 'Chicago_StoreMalois');
     }
     return array();
 }
示例#20
0
文件: say.php 项目: sinfocol/gwf3
 public static function execute(SR_Player $player, array $args)
 {
     if ('' === ($message = trim(implode(' ', $args)))) {
         return false;
     }
     $p = $player->getParty();
     $ep = $p->getEnemyParty();
     $pname = $player->getName();
     if ($p->isTalking() && $ep !== false) {
         $p->ntice('5085', array($pname, $message));
         $ep->ntice('5085', array($pname, $message));
         $p->setContactEta(60);
         $el = $ep->getLeader();
         if ($el->isNPC()) {
             $ep->setContactEta(60);
             $el->onNPCTalkA($player, isset($args[0]) ? $args[0] : 'hello', $args);
         }
     } elseif ($p->isAtLocation()) {
         Shadowshout::onLocationGlobalMessage($player, '5085', array($pname, $message));
     } elseif ($p->isFighting()) {
         $p->ntice('5085', array($pname, $message));
         $ep->ntice('5085', array($pname, $message));
     } else {
         $p->ntice('5085', array($pname, $message));
     }
     return true;
 }
示例#21
0
 private function onTrollReward(SR_NPC $npc, SR_Player $player)
 {
     $max = $player->isRunner() ? Shadowcmd_lvlup::MAX_VAL_ATTRIBUTE_RUNNER : Shadowcmd_lvlup::MAX_VAL_ATTRIBUTE;
     $base = $player->getBase('magic');
     if ($base >= $max) {
         $ny = 5000;
         $player->giveNuyen($ny);
         return $player->message($this->lang('reward_ny', array($ny)));
         // 			return $player->message('Larry hands you another 5000 nuyen!');
     }
     $player->message($this->lang('reward1'));
     // 		$player->message('Larry leads you to a shamane: "This is our shamane, Srando, he can help you."');
     $race = $player->getRace();
     if ($race === 'Ork' || $race === 'Troll') {
         $player->message($this->lang('reward2', array($race)));
         // 			$player->message('The shamane says: "You are a strong '.$race.'. You just need to calm down sometime."');
         $player->message($this->lang('reward3'));
         // 			$player->message('You are starting to argue, but the shamane continues: "If you calm you have more time to strengthen yourself. Focus yourself, and the path is clear."');
         $player->message($this->lang('reward4'));
         // 			$player->message('The shamane touches your head: "Your mind is now clear from anything. You can focus yourself from now on."');
         $player->message($this->lang('reward5'));
         // 			$player->message('Your character is now allowed to learn magic and spells.');
     } else {
         $player->message($this->lang('reward5'));
         // 			$player->message('The shamane mumbles some magic spells and raises your base value for magic by 1.');
     }
     $player->alterField('magic', 1);
     $player->modify();
     return true;
 }
示例#22
0
 public function cast(SR_Player $player, SR_Player $target, $level, $hits, SR_Player $potion_player)
 {
     // 		echo "Casting Firewall with level $level and $hits hits.\n";
     # Firebolt ads 0.20 per level
     $firebolt = $potion_player->getSpell('firebolt');
     $firebolt = $firebolt === false ? 0 : $firebolt->getLevel($potion_player);
     $firebolt = round($firebolt / 5, 1);
     $level += $firebolt;
     # Fireball ads 0.25 per level
     $fireball = $potion_player->getSpell('fireball');
     $fireball = $fireball === false ? 0 : $fireball->getLevel($potion_player);
     $fireball = round($fireball / 4, 1);
     $level += $fireball;
     $line = $target->getY();
     $damage = array();
     $ep = $target->getParty();
     foreach ($ep->getMembers() as $t) {
         $t instanceof SR_Player;
         $d = abs($line - $t->getY());
         // 			echo "Distance to target is $d\n";
         $l = $level - $d;
         if ($l >= 0) {
             $hits = $this->dice($potion_player, $t, $l);
             $damage[$t->getID()] = $this->calcFirewallDamage($player, $t, $level, $hits);
         }
     }
     $this->announceADV($player, $target, $level);
     Shadowfunc::multiDamage($player, $damage);
     return true;
 }
示例#23
0
文件: Vegas.php 项目: sinfocol/gwf3
 public function getRespawnLocation(SR_Player $player)
 {
     if ($player->getNuyen() > 200 && $player->hasKnowledge('places', 'Vegas_Hotel')) {
         return 'Vegas_Hotel';
     }
     return Shadowrun4::getCity('Chicago')->getRespawnLocation($player);
 }
示例#24
0
 public function onNPCQuestTalkB(SR_TalkingNPC $npc, SR_Player $player, $word, array $args = NULL)
 {
     echo "HERE\n";
     $temp = 'QT_LILLY';
     switch ($word) {
         default:
             $t = $player->getTemp($temp, 0);
             $player->setTemp($temp, $t + 1);
             echo "HERE {$t}\n";
             switch ($t) {
                 case 0:
                     $npc->reply($this->lang('sr1'));
                     $npc->reply($this->lang('sr2'));
                     return false;
                 case 1:
                     $npc->reply($this->lang('sr3'));
                     $npc->reply($this->lang('sr4'));
                     return false;
                 case 2:
                     $npc->reply($this->lang('sr5'));
                     $npc->reply($this->lang('sr6'));
                 default:
                     return $npc->reply($this->lang('confirm'));
             }
         case 'confirm':
             return $npc->reply($this->lang('confirm'));
         case 'yes':
             return $npc->reply($this->lang('yes'));
         case 'no':
             return $npc->reply($this->lang('no'));
     }
 }
示例#25
0
文件: Guard.php 项目: sinfocol/gwf3
 private function checkIDCards(SR_Player $player)
 {
     $p = $player->getParty();
     $names = array();
     foreach ($p->getMembers() as $member) {
         $member instanceof SR_Player;
         if (!$member->getInvItemByName('IDCard')) {
             $names[] = $member->getName();
         }
     }
     if (count($names) > 0) {
         $this->rply('no_card', array(implode(', ', $names)));
         // 			$p->notice(sprintf("It seems like %s is/are missing an IDCard.", GWF_Array::implodeHuman($names)));
         $this->rply('everyone');
         // 			$this->reply('Every person needs an own ID card. Move along.');
         return;
     }
     $this->rply('revoke');
     // 		$this->reply('These ID cards need to be revoked and you have to get a new one. I will also have to keep them for investigation. I may let you pass as your security level is below 2.');
     $this->rply('hand');
     // 		$p->notice("Each member hands an IDCard to the guards and you enter the Renraku tower.");
     foreach ($p->getMembers() as $member) {
         $member instanceof SR_Player;
         $card = $member->getInvItemByName('IDCard');
         $card->useAmount($member, 1);
     }
     // Delete guards
     $this->getParty()->popAction(true);
     $p->popAction(false);
     $renraku = $player->getParty()->getLocationClass();
     $renraku instanceof Seattle_Renraku;
     $renraku->beam($player, 'Renraku_Exit', SR_Party::ACTION_INSIDE);
 }
示例#26
0
 public function onEnter(SR_Player $player)
 {
     $p = $player->getParty();
     if ($p->getMin('level', true) < 1) {
         $this->partyMessage($player, 'afraid', array(1));
         // 			$p->notice('You are too afraid to go in there. (Each party member needs a minimum level of 1)');
         return true;
     }
     foreach ($p->getMembers() as $member) {
         $member instanceof SR_Player;
         if ($member->isHuman()) {
             $quest = SR_Quest::getQuest($member, 'Renraku_I');
             $quest instanceof Quest_Renraku_I;
             if (false === $quest->checkOrk($player)) {
                 $this->partyMessage($player, 'angryork');
                 // 					$p->notice('A big angry Ork shouts to you: "You not welcome here!" - The Ork attacks you with a tbs-pocket-knife.');
                 SR_NPC::createEnemyParty('Redmond_Ork')->fight($p, true);
                 return true;
             }
         }
     }
     parent::onEnter($player);
     // 		$p->pushAction(SR_Party::ACTION_INSIDE);
     $b = chr(2);
     $c = Shadowrun4::SR_SHORTCUT;
     $this->partyMessage($player, 'enter1');
     $this->partyMessage($player, 'enter2');
     // 		$p->notice('The guys in there stare quiet at their drinks when you enter the Trolls\' Inn.');
     // 		$p->notice('You see a barkeeper, a suspicious person in a dark corner, a soldier and some guests, mostly orks and trolls. One of the guests greets and beckons you.');
     $this->partyHelpMessage($player, 'help');
     // 		$p->help("Use {$b}{$c}ttb{$b}(arkeeper), {$b}{$c}ttg{$b}(uest), {$b}{$c}ttj{$b}(ohnson) and {$b}{$c}tts{$b}(oldier) to talk to the persons.");
     return true;
 }
示例#27
0
 public static function onFight(SR_Player $player, SR_Party $ep)
 {
     $p = $player->getParty();
     $l1 = $player->get('level');
     $add = 0.0;
     foreach ($ep->getMembers() as $e) {
         $e instanceof SR_Player;
         if (!$e->isHuman()) {
             $add += 0.05;
             continue;
         }
         $badkarma = $e->getBase('bad_karma');
         if ($badkarma > 0) {
             continue;
         }
         //			$bounty = $e->getBase('sr4pl_bounty');
         $l2 = $e->get('level');
         $diff = $l1 - $l2;
         if ($diff < 0) {
             continue;
         }
         $add += round($diff / 100, 2);
     }
     self::addBadKarma($player, $add);
 }
示例#28
0
 public function onNPCQuestTalkB(SR_TalkingNPC $npc, SR_Player $player, $word, array $args = NULL)
 {
     $need = $this->getNeededAmount();
     $ny = $this->getRewardNuyen();
     $dny = Shadowfunc::displayNuyen($ny);
     switch ($word) {
         case 'shadowrun':
             $npc->reply("Heh ... well ... lol ... well ...");
             $npc->reply("You can indeed do a job for me ^^");
             $player->message('The salesman whispers: "I messed up the yearly inventory" ... ');
             $npc->reply("I am going into own business and purchase Scanners and Credsticks.");
             $player->message('The salesman whispers: "I will compensate you ..." ');
             break;
         case 'confirm':
             $npc->reply("Thank you for your help in advance.");
             break;
         case 'yes':
             $npc->reply('Thank you chummer.');
             break;
         case 'no':
             $npc->reply('Laters chummer.');
             break;
     }
     return true;
 }
示例#29
0
 public function onNPCQuestTalkB(SR_TalkingNPC $npc, SR_Player $player, $word, array $args = NULL)
 {
     $need = $this->getNeededAmount();
     switch ($word) {
         case 'shadowrun':
             $npc->reply($this->lang('run1'));
             $npc->reply($this->lang('run2', array($need)));
             $player->giveKnowledge('words', 'Temple');
             // 				$npc->reply("We could need help in getting more customers here.");
             // 				$npc->reply("If you could \X02#say temple\X02 to {$need} citizens i will reward you very well, ok?");
             break;
         case 'confirm':
             $npc->reply($this->lang('confirm'));
             // 				$npc->reply("What do you think?");
             break;
         case 'yes':
             $npc->reply($this->lang('yes'));
             // 				$npc->reply('Perfect!');
             break;
         case 'no':
             $npc->reply($this->lang('no'));
             // 				$npc->reply('Ok');
             break;
     }
     return true;
 }
示例#30
0
文件: hp.php 项目: sinfocol/gwf3
 protected static function onHPMP(SR_Player $player, $what, $key)
 {
     //		$i = 1;
     $b = chr(2);
     // 		$bot = Shadowrap::instance($player);
     $party = $player->getParty();
     $members = $party->getMembers();
     $format = $player->lang('fmt_hp_mp');
     $back = '';
     foreach ($members as $member) {
         $member instanceof SR_Player;
         $hpmp = $member->getBase($what);
         $hpmmpm = $member->get('max_' . $what);
         $b2 = '';
         $b1 = 0;
         if ($what === 'hp') {
             if ($member->needsHeal()) {
                 $b2 = $b;
                 $b1 = 1;
             }
         } elseif ($what === 'mp') {
             if ($member->getBase('magic') >= 0) {
                 if ($member->needsEther()) {
                     $b2 = $b;
                     $b1 = 1;
                 }
             }
         }
         $back .= sprintf($format, $member->getEnum(), $member->getName(), $hpmp, $hpmmpm, $b2, $b1);
         // 			$back .= sprintf(", %s-%s%s(%s/%s)%s", $b.($member->getEnum()).$b, $b2, $member->getName(), $hpmp, $hpmmpm, $b2);
     }
     return self::rply($player, $key, array(ltrim($back, ',; ')));
     // 		$bot->reply(sprintf('Your parties %s: %s.', $text, substr($back, 2)));
     // 		return true;
 }