public static function execute(SR_Player $player, array $args) { // $bot = Shadowrap::instance($player); if (count($args) !== 1) { self::reply($player, Shadowhelp::getHelp($player, 'unequip')); return false; } // if ($player->isFighting() && $player->isLocked()) // { // $player->message('You cannot change your equipment in combat when it\'s locked.'); // return false; // } if (false === ($item = $player->getItem($args[0]))) { self::rply($player, '1029'); // $player->message(sprintf('You don`t have that item.')); return false; } if (!$item->isEquipped($player) || $item instanceof SR_Piercing) { self::rply($player, '1067', array($player->lang($item->getItemType()))); // $player->message(sprintf('You don`t have a %s equipped.', $item->getItemName())); return false; } $item->onItemUnequip($player); $player->modify(); $player->healHP(0); $player->healMP(0); return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) !== 1) { $bot->reply(Shadowhelp::getHelp($player, 'kick')); return false; } $p = $player->getParty(); if (false === ($target = $p->getMemberByArg($args[0]))) { self::rply($player, '1089'); // $bot->reply('This player is not in your party.'); return false; } if ($target->getID() === $player->getID()) { self::rply($player, '1090'); // $bot->reply('You can not kick yourself.'); return false; } $p->ntice('5137', array($target->getName())); // $p->notice(sprintf('%s has been kicked off the party.', $target->getName())); if ($p->kickUser($target, false)) { $p->recomputeEnums(); $p->updateMembers(); $np = SR_Party::createParty(); $np->cloneAction($p); $np->clonePreviousAction($p); $np->addUser($target, true); if (!$np->isIdle()) { $np->popAction(true); } } return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) === 0) { return self::showDistances($player); } # err args if (count($args) !== 1 || !is_numeric($args[0])) { $bot->reply(Shadowhelp::getHelp($player, 'set_distance')); return false; } # Out of bounds $d = round(floatval($args[0]), 1); if ($d < 1 || $d > SR_Player::MAX_SD) { $bot->reply(Shadowhelp::getHelp($player, 'set_distance')); return false; } foreach ($player->getParty()->getMembers() as $member) { $member instanceof SR_Player; if ($member->getLangISO() === 'bot') { $member->msg('5278', array($player->getName(), $d)); } } $player->updateField('distance', $d); return self::rply($player, '5122', array($d)); // $player->message(sprintf("Your default combat distance has been set to %.01f meters.", $d)); // return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) !== 1) { $bot->reply(Shadowhelp::getHelp($player, 'gmp')); return false; } if (false === ($target = Shadowrun4::getPlayerByShortName($args[0]))) { $bot->reply(sprintf('The user %s is unknown.', $args[0])); return false; } elseif ($target === -1) { $bot->reply('The player name is ambigious.'); return false; } if (false === $target->isCreated()) { $bot->reply(sprintf('The player %s has not started a game yet.', $args[0])); return false; } $p = $target->getParty(); $a = $p->getAction(); if ($a !== SR_Party::ACTION_INSIDE && $a !== SR_Party::ACTION_OUTSIDE) { $bot->reply('The party with ' . $args[0] . ' is moving.'); return false; } $p->pushAction(SR_Party::ACTION_INSIDE, 'Prison_Block1'); }
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]); }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); # One arg is like examine. if (count($args) === 1) { return Shadowcmd_examine::execute($player, $args); } # Other than 2 args is error => help. if (count($args) !== 2) { $bot->reply(Shadowhelp::getHelp($player, 'show')); return false; } # Try to get target. 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; } # Show to yourself is like examine. if ($target->getID() === $player->getID()) { return Shadowcmd_examine::execute($player, array($args[1])); } # Try to get item. if (false === ($item = $player->getItem($args[1]))) { $player->msg('1029'); // $bot->reply('You don`t have that item.'); return false; } return $target->msg('5062', array($player->displayName(), $item->getItemInfo($target))); // $msg = sprintf('%s shows you: %s', $player->displayName(), $item->getItemInfo($player)); // return $target->message($msg); }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (!$player->getParty()->isIdle()) { $player->msg('1033'); // $player->message('Your party is moving. Try this command when idle.'); return false; } if ($player->isRunner()) { self::rply($player, '5075'); // $bot->reply('You are already playing running mode. Nice!'); } elseif (count($args) === 0) { $bot->reply(Shadowhelp::getHelp($player, 'rm')); self::rply($player, '5076', array('#rm ' . self::WORD)); // $bot->reply('Type "#rm '.self::WORD.' to confirm.'); } elseif (count($args) !== 1 || $args[0] !== self::WORD) { $bot->reply(Shadowhelp::getHelp($player, 'rm')); } elseif ($player->getBase('level') > 2) { self::rply($player, '1034'); // $bot->reply('You cannot switch to running mode when you passed level 2.'); } else { $player->saveOption(SR_Player::RUNNING_MODE, true); self::rply($player, '5077'); self::rply($player, '5078'); // $bot->reply('You are now playing running mode. This means unlimited stats but instant death. Good luck!'); // $bot->reply('It is advised you #enable norl now too, to prevent your char from beeing kidnapped with the #rl command!'); return true; } return false; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); $numArgs = count($args); if ($numArgs < 1 || $numArgs > 2) { $bot->reply(Shadowhelp::getHelp($player, 'compare')); return false; } $item1 = self::getItem($bot, $player, $args[0]); if (!$item1) { self::rply($player, '1020', array($args[0])); // $bot->reply('I don`t know what item "'.$args[0].'" is.'); return false; } if ($numArgs > 1) { $item2 = self::getItem($bot, $player, $args[1]); if (!$item2) { self::rply($player, '1020', array($args[1])); // $bot->reply('I don`t know what item "'.$args[1].'" is.'); return false; } } else { $item2 = $player->getItem($item1->getItemType()); if (!$item2) { self::rply($player, '1021', array($item1->getItemName())); // $bot->reply('You don`t have anything comparable to "'.$item1->getItemName().'" equipped'); return false; } } if ($player->getLangISO() === 'bot') { // return self::replyBotTable(self::getComparisonMatrix($player, $item1, $item2)); } $bot->replyTable(self::getComparisonMatrix($player, $item1, $item2), '5043'); return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) !== 2) { $bot->reply(Shadowhelp::getHelp($player, 'gmloot')); return false; } $target = Shadowrun4::getPlayerByShortName($args[0]); if ($target === -1) { $player->message('The username is ambigious.'); return false; } if ($target === false) { $player->message('The player is not in memory or unknown.'); return false; } if (false === $target->isCreated()) { $bot->reply(sprintf('The player %s has not started a game yet.', $args[0])); return false; } if (Common::isNumeric($args[1])) { $target->giveItems(Shadowfunc::randLoot($target, $args[1]), 'gmloot'); } else { } return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) < 2 || count($args) > 3) { $bot->reply(Shadowhelp::getHelp($player, 'gmi')); return false; } $target = Shadowrun4::getPlayerByShortName($args[0]); if ($target === -1) { $player->message('The username is ambigious.'); return false; } if ($target === false) { $player->message('The player is not in memory or unknown.'); return false; } if (false === $target->isCreated()) { $bot->reply(sprintf('The player %s has not started a game yet.', $args[0])); return false; } if (false === ($item = SR_Item::createByName($args[1]))) { $bot->reply(sprintf('The item %s could not be created.', $args[1])); return false; } if (isset($args[2])) { if (!$item->isItemStackable()) { $bot->reply('No amount for equipment!'); return false; } $item->saveVar('sr4it_amount', intval($args[2])); } $b = chr(2); $target->giveItems(array($item), sprintf("{$b}[GM]_%s{$b}", $player->getName())); return true; }
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, 'givekp')); 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; } $place = $args[1]; $targets = array($target); } else { $place = $args[0]; $targets = $player->getParty()->getMembers(); } if (false === ($tlc = Shadowcmd_goto::getTLCByArgMulticity($player, $place))) { $player->msg('1023'); return false; } return self::giveKnow($player, $targets, 'places', $tlc); }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) !== 0) { $bot->reply(Shadowhelp::getHelp($player, 'part')); return false; } $p = $player->getParty(); if ($p->getMemberCount() === 1) { self::rply($player, '1093'); // $bot->reply('You are not in a party.'); return false; } $p->ntice('5135', array($player->getName())); // $p->notice(sprintf('%s has left the party.', $player->getName())); $p->kickUser($player, true); $np = SR_Party::createParty(); $np->addUser($player, true); $np->cloneAction($p); $np->clonePreviousAction($p); // if ($np->isMoving()) if (!$np->isIdle()) { Shadowcmd_stop::execute($player, $args); } return true; }
public static function execute(SR_Player $player, array $args) { $p = $player->getParty(); if (false === ($location = $p->getLocationClass('outside'))) { return self::rply($player, '1031'); // return $player->message('This command only works when you are outside a location.'); } $bot = Shadowrap::instance($player); $loc = $location->getName(); if (count($args) > 1) { return $bot->reply(Shadowhelp::getHelp($player, 'hijack')); } $victims = array(); foreach (Shadowrun4::getParties() as $pa) { $pa instanceof SR_Party; if (false === ($city = $pa->getCityClass())) { continue; # not even city } # Hax! if ($city->isDungeon() && $city->getCityLocation() === $loc || $pa->getLocation('inside') === $loc) { foreach ($pa->getMembers() as $pl) { $pl instanceof SR_Player; if ($pl->hasEquipment('mount')) { $victims[] = $pl; } } } } if (count($victims) === 0) { self::rply($player, '5128'); return false; // return $player->message('You see no mounts from other players to rob.'); } $format = $player->lang('fmt_sumlist'); if (count($args) === 0) { $out = ''; foreach ($victims as $i => $victim) { $victim instanceof SR_Player; $mount = $victim->getMount(); $out .= sprintf($format, $i + 1, $victim->getName(), $mount->getName()); // $out .= sprintf(", \x02%s\x02-%s(%s)", ($i+1), $victim->getName(), $mount->getName()); } return self::rply($player, '5130', array(ltrim($out, ',; '))); // return $bot->reply(substr($out, 2)); } if (false === ($target = Shadowfunc::getTarget($victims, $args[0], true))) { self::rply($player, '5128'); // $player->message('You see no mounts from other players to rob.'); return false; } $mount = $target->getMount(); if ($mount->getMountWeight() === 0) { self::rply($player, '1037'); // $player->message('This mount cannot store anything.'); return false; } return $mount->initHijackBy($player); }
public static function execute(SR_Player $player, array $args) { if (count($args) === 0) { Shadowrap::instance($player)->reply(Shadowhelp::getHelp($player, 'gmm')); return false; } return self::sendGlobalMessage("[Shadowlamb] " . implode(' ', $args)); }
public static function execute(SR_Player $player, array $args) { if (false === self::checkLeader($player)) { return false; } if (count($args) !== 1) { $player->message(Shadowhelp::getHelp($player, 'goto')); return false; } $party = $player->getParty(); $cityname = $party->getCity(); $cityclass = $party->getCityClass(); $bot = Shadowrap::instance($player); if (false === self::checkMove($party)) { return false; } if (false === ($tlc = self::getTLCByArg($player, $args[0]))) { self::rply($player, '1069'); // $player->message('This location is unknown or ambigious.'); return false; } if (false === ($target = $cityclass->getLocation($tlc))) { self::rply($player, '1070', array($cityname)); // $bot->reply(sprintf('The location %s does not exist in %s.', $tlc, $cityname)); return false; } $tlc = $target->getName(); if (!$player->hasKnowledge('places', $tlc)) { self::rply($player, '1023'); // $bot->reply(sprintf('You don`t know where the %s is.', $tlc)); return false; } if ($party->getLocation('inside') === $tlc) { self::rply($player, '1071', array($tlc)); // $bot->reply(sprintf('You are already in %s.', $tlc)); return false; } if ($party->getLocation('outside') === $tlc) { if ($party->getLocationClass()->isEnterAllowed($player)) { return $target->onEnter($player); } else { self::rply($player, '1118'); return false; } } if ($party->getAction() === SR_Party::ACTION_GOTO && $party->getTarget() === $tlc) { self::rply($player, '5127', array($tlc, $party->displayETA())); // $bot->reply(sprintf('You are already going to %s. ETA: %s.', $tlc, $party->displayETA())); return false; } $cityclass = $party->getCityClass(); $eta = $cityclass->getGotoETA($party); $party->pushAction(SR_Party::ACTION_GOTO, $tlc, $eta); $party->setContactEta(rand(5, 15)); $party->ntice('5127', array($tlc, $party->displayETA())); // $party->notice(sprintf('You are going to %s. ETA: %s.', $tlc, GWF_Time::humanDuration($eta))); return true; }
public function isExitAllowed(SR_Player $player) { if (!SR_Quest::getQuest($player, 'Renraku_I')->isAccepted($player)) { if ($player->isHuman()) { $player->message(Shadowhelp::getHelp($player, 'first_talk')); return false; } } return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) !== 1 || $args[0] !== 'DOIT!') { return $bot->reply(Shadowhelp::getHelp($player, 'Shadowcmd_gmlangfiles')); } if (false === SR_Install::onCreateLangFiles()) { return $bot->reply('An error occured!'); } return $bot->reply('Lang files have been recreated. use .langflush to reload.'); }
public static function execute(SR_Player $player, array $args) { if (count($args) === 0) { Shadowrap::instance($player)->reply(Shadowhelp::getHelp($player, 'gmn')); return false; } $message = "[Shadowlamb] " . implode(' ', $args); foreach (Shadowrun4::getPlayers() as $player) { $player instanceof SR_Player; $player->message($message); } return true; }
public static function execute(SR_Player $player, array $args) { if (count($args) > 1) { self::reply($player, Shadowhelp::getHelp($player, 'party_loot')); return false; } $party = $player->getParty(); # Show mode if (count($args) === 0) { $type = 'unknown'; switch ($party->getLootMode()) { case SR_Party::LOOT_CYCLE: $type = 'cycle'; break; case SR_Party::LOOT_RAND: $type = 'random'; break; case SR_Party::LOOT_KILL: $type = 'killer'; break; } return self::rply($player, '5139', array($player->lang('pl_' . $type))); // return self::reply($player, sprintf("Your party has set it's loot mode to: \X02%s\X02.", $type)); } if (false === $player->isLeader()) { self::rply($player, '1032'); // return self::reply($player, 'Only the leader can change the party loot settings.'); } # Change mode switch ($args[0]) { case 'rand': $bit = SR_Party::LOOT_RAND; break; case 'cycle': $bit = SR_Party::LOOT_CYCLE; break; case 'killer': $bit = SR_Party::LOOT_KILL; break; default: self::reply($player, Shadowhelp::getHelp($player, 'party_loot')); // self::reply($player, 'The loot mode is invalid. '.Shadowhelp::getHelp($player, 'party_loot')); return false; } $type = $args[0]; $party->setLootMode($bit); $party->ntice('5139', array($player->lang('pl_' . $type))); // $party->notice(sprintf("The party's loot mode has been set to: \X02%s\X02.", $args[0])); return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) !== 1) { $bot->reply(Shadowhelp::getHelp($player, 'examine')); return false; } if (false === ($item = $player->getItem($args[0]))) { self::rply($player, '1020', array($args[0])); # don't know item return false; } return self::rply($player, '5049', array($item->getItemInfo($player))); }
public static function execute(SR_Player $player, array $args) { if (count($args) < 1) { self::reply($player, Shadowhelp::getHelp($player, 'use')); return false; } $itemname = array_shift($args); if (false === ($item = $player->getItem($itemname))) { $player->msg('1029'); // self::rply($player, '1029'); // self::reply($player, "You don't have this item."); return false; } return $item->onItemUse($player, $args); }
public static function execute(SR_Player $player, array $args) { if (count($args) === 0) { Shadowrap::instance($player)->reply(Shadowhelp::getHelp($player, 'shout')); return false; } $wait = SR_NoShout::isNoShout($player->getID()); if ($wait > 0) { $player->msg('1044', array(GWF_Time::humanDuration($wait))); // $player->message(sprintf('Please wait %s before you shout again.', GWF_Time::humanDuration($wait))); return false; } Shadowshout::shout($player, implode(' ', $args)); return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) !== 1) { $bot->reply(Shadowhelp::getHelp($player, 'debug')); return true; } $total_amt = 0; foreach ($player->getAllItems() as $item) { $item instanceof SR_Item; $total_amt += $item->getAmount(); printf("%99s: %20s %10s\n", $item->getItemName(), $item->getAmount() . 'x' . $item->getItemWeight(), $item->getItemWeightStacked()); } printf("%99s: %20s %10s\n", 'Total weight according to stats', $total_amt . ' items', $player->get('weight')); }
public static function execute(SR_Player $player, array $args) { if (count($args) === 1) { $arg = $args[0]; if (false === ($spell = $player->getSpell($arg))) { self::rply($player, '1023'); # You don't have this knowledge. return false; } else { return Shadowhelp::getHelp($player, $spell->getName()); } } else { return self::reply($player, Shadowfunc::getSpells($player, '5054')); } return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) < 2 || count($args) > 3) { $bot->reply(Shadowhelp::getHelp($player, 'gml')); return false; } $action = SR_Party::ACTION_OUTSIDE; if (count($args) > 2) { switch ($args[2]) { case SR_Party::ACTION_INSIDE: case SR_Party::ACTION_OUTSIDE: $action = $args[2]; break; default: $bot->reply(Shadowhelp::getHelp($player, 'gml')); return false; } } if (false === ($target = Shadowrun4::getPlayerByShortName($args[0]))) { $bot->reply(sprintf('The user %s is unknown.', $args[0])); return false; } elseif ($target === -1) { $bot->reply('The player name is ambigious.'); return false; } if (false === $target->isCreated()) { $bot->reply(sprintf('The player %s has not started a game yet.', $args[0])); return false; } $p = $target->getParty(); $a = $p->getAction(); if ($a !== SR_Party::ACTION_INSIDE && $a !== SR_Party::ACTION_OUTSIDE) { $bot->reply('The party with ' . $args[0] . ' is moving.'); return false; } if (false === ($location = self::getLocationByAbbrev($p->getCity(), $args[1]))) { $bot->reply('What location?'); return false; } $p->pushAction(SR_Party::ACTION_DELETE); $cl = $location->getName(); $p->pushAction($action, $cl); $bot->reply(sprintf('The party is now %s of %s.', $action, $cl)); $p->giveKnowledge('places', $cl); return true; }
public static function execute(SR_Player $player, array $args) { if (false === self::checkLeader($player)) { return false; } if (false === ($party = $player->getParty())) { $player->message('DB ERROR 1'); return false; } if (!$party->isIdle()) { $player->msg('1033'); // $player->message('Your party has to be idle to re-order party members.'); return false; } if (count($args) !== 2) { $player->message(Shadowhelp::getHelp($player, 'party_order')); return false; } if (false === ($a = $party->getMemberByArg($args[0]))) { $player->msg('1064'); // $player->message('Your first parameter does not adress a party member.'); return false; } if (false === ($b = $party->getMemberByArg($args[1]))) { $player->msg('1064'); // $player->message('Your second parameter does not adress a party member.'); return false; } if ($a->getID() === $b->getID()) { $player->msg('1030'); // $player->message('Nothing swapped, so bailout.'); return false; } if ($a->isLeader() || $b->isLeader()) { $player->msg('1094'); // $player->message('You should not use this command to swap leader position. Please use the #(le)ader command.'); return false; } if (false === $party->swapMembers($a, $b)) { $player->message('DB ERROR 2'); return false; } $party->ntice('5140', array($a->getName(), $b->getName())); // $party->notice(sprintf('%s and %s have swapped their party position.', $a->getName(), $b->getName())); return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) === 0) { return self::rply($player, '5088', array(SR_Bounty::displayBountyPlayer($player))); // return $bot->reply(SR_Bounty::displayBountyPlayer($player)); } if (count($args) > 1) { return $bot->reply(Shadowhelp::getHelp($player, 'bounty')); } if (false === ($target = Shadowrun4::loadPlayerByName($args[0]))) { return self::rply($player, '1017'); // return $bot->reply('This player is unknown. Try playername{serverid}.'); } return self::rply($player, '5089', array(SR_Bounty::displayBountyPlayer($target))); // return $bot->reply(SR_Bounty::displayBountyPlayer($target)); }
public static function execute(SR_Player $player, array $args) { # Syntax if (count($args) !== 2) { self::reply($player, Shadowhelp::getHelp($player, 'gmul')); return false; } # Args if (false === ($target = Shadowrun4::getPlayerByShortName($args[0]))) { self::rply($player, '1017'); return false; } elseif ($target === -1) { self::rply($player, '1018'); return false; } # Valid cost? $field = $args[1]; if (false === ($cost = Shadowcmd_lvlup::getKarmaCostFactor($field))) { self::rply($player, '1024'); return false; } # Gather data if (false !== ($spell = $target->getSpell($field))) { $have_level = $target->getSpellBaseLevel($field); $is_spell = true; } else { $have_level = $target->getBase($field); $is_spell = false; } $karma_back = $cost * $have_level; # Limit if ($have_level <= 0) { self::reply($player, 'Lowered to 0 already!'); return false; } # Apply if ($is_spell === true) { $target->levelupSpell($field, -1); } else { $target->increaseField($field, -1); } $target->increaseField('karma', $karma_back); $target->modify(); # Announce return self::reply($player, sprintf('%s reverted %s back to level %s and got %s karma back.', $target->getName(), $field, $have_level - 1, $karma_back)); }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); if (count($args) !== 1) { $bot->reply(Shadowhelp::getHelp($player, 'join')); return false; } if (false === ($target = Shadowfunc::getFriendlyTarget($player, $args[0], false))) { self::rply($player, '1028', array($args[0])); // $bot->reply(sprintf('%s is not here or you are in his/her party already.', $args[0])); return false; } if ($target->getParty()->getLeader()->isNPC()) { self::rply($player, '1085'); // $bot->reply('You cannot join NPC parties.'); return false; } if ($target->getPartyID() === $player->getPartyID()) { self::rply($player, '1086'); // $bot->reply('You cannot join your own party.'); return false; } $p = $player->getParty(); $ep = $target->getParty(); if ($ep->hasBanned($player)) { self::rply($player, '1087'); // $bot->reply(sprintf('The party does not want you to join.')); return false; } if ($ep->isFull()) { self::rply($player, '1088', array(SR_Party::MAX_MEMBERS)); // $bot->reply('The party has reached the maximum membercount of '.SR_Party::MAX_MEMBERS.'.'); return false; } $p->kickUser($player, true); $ep->addUser($player, true); $p->ntice('5135', array($player->getName())); $ep->ntice('5136', array($player->getName())); // $p->notice(sprintf('%s left the party.', $player->getName())); // $ep->notice(sprintf('%s joined the party.', $player->getName())); if ($p->isTalking() && $p->getMemberCount() === 0) { $p->popAction(true); $ep->popAction(true); } return true; }
public static function execute(SR_Player $player, array $args) { $bot = Shadowrap::instance($player); $p = $player->getParty(); if (count($args) !== 1) { $bot->reply(Shadowhelp::getHelp($player, 'hunt')); return false; } if (false === self::checkLeader($player)) { return false; } if (false === self::checkMove($p)) { return false; } $target = Shadowrun4::getPlayerByShortName($args[0]); if ($target === false) { self::rply($player, '1017'); // $bot->reply('This player is not in memory.'); return false; } elseif ($target === -1) { self::rply($player, '1018'); // $bot->reply('The player name is ambigous. Try the {server} version.'); return false; } $name = $target->getName(); $p = $player->getParty(); $ep = $target->getParty(); if ($p->getID() === $ep->getID()) { self::rply($player, '1083'); // $bot->reply('You cannot hunt own party members.'); return false; } if ($p->getCity() !== $ep->getCity()) { self::rply($player, '1084', array($name, $p->getCity(), $name, $ep->getCity())); // $bot->reply(sprintf('You cannot hunt %s because you are in %s and %s is in %s.', $name, $p->getCity(), $name, $ep->getCity())); return false; } $city = $p->getCityClass(); $eta = round($city->getExploreETA($p) * 1.2); $p->pushAction(SR_Party::ACTION_HUNT, $target->getName() . ' in ' . $city->getName(), $eta); $p->setContactEta(rand(10, 20)); $p->ntice('5134', array($target->getName(), GWF_Time::humanDuration($eta))); // $p->notice(sprintf('You start to hunt %s. ETA: %s.', $target->getName(), GWF_Time::humanDuration($eta))); return true; }