コード例 #1
0
ファイル: Shadowcron.php プロジェクト: sinfocol/gwf3
 private static function cleanupPlayers()
 {
     echo __METHOD__ . PHP_EOL;
     $players = GDO::table('SR_Player');
     $before = $players->countRows();
     if (false === ($result = $players->select('sr4pl_id, sr4pl_partyid'))) {
         echo GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
         return;
     }
     $sr_time = Shadowrun4::getTime();
     while (false !== ($row = $players->fetch($result, GDO::ARRAY_N))) {
         if (false !== ($player = SR_Player::getByID($row[0]))) {
             if (false === SR_Party::getByID($player->getPartyID())) {
                 if ($player->isHuman()) {
                     printf("WARNING: %s has not party!!\n", $player->getName());
                 } else {
                     $player->delete();
                 }
             }
         }
     }
     $players->free($result);
     $after = $players->countRows();
     printf("I removed %s players from the database and %s are left.\n", $before - $after, $after);
 }
コード例 #2
0
ファイル: SR_ClanRequests.php プロジェクト: sinfocol/gwf3
 /**
  * Get the player for a join request.
  * @param SR_Player $leader
  * @param SR_Clan $clan
  * @param string $pname
  * @return SR_Player
  */
 public static function getRequest(SR_Player $leader, SR_Clan $clan, $pname)
 {
     $ename = GDO::escape($pname);
     if (false === ($pid = self::table(__CLASS__)->selectVar('sr4cr_pid', "sr4cr_pname='{$ename}'"))) {
         return false;
     }
     if (false === ($player = Shadowrun4::getPlayerByPID($pid))) {
         if (false === ($player = SR_Player::getByID($pid))) {
             return false;
         }
     }
     return $player;
 }
コード例 #3
0
ファイル: Shadowcleanup.php プロジェクト: sinfocol/gwf3
 private static function cleanupItemsForPlayer($player_id)
 {
     if (false === ($player = SR_Player::getByID($player_id))) {
         echo GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
         return false;
     }
     $items = GDO::table('SR_Item');
     if (false === ($itemIDs = $items->selectColumn('sr4it_id', "sr4it_uid={$player_id}"))) {
         echo GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
         return false;
     }
     foreach ($itemIDs as $itemID) {
         if (!self::hasItem($player, $itemID)) {
             printf("Deleted lonely item %d for player %s.\n", $itemID, $player->getName());
             $items->deleteWhere("sr4it_id={$itemID}");
         }
     }
 }
コード例 #4
0
ファイル: Shadowrun4.php プロジェクト: sinfocol/gwf3
 /**
  * Get or load a player.
  * @param int $playerid
  * @return SR_Player
  */
 public static function getPlayerByPID($playerid)
 {
     $playerid = (int) $playerid;
     # Cached
     if (true === isset(self::$players[$playerid])) {
         return self::$players[$playerid];
     }
     # Load?
     if (false === ($player = SR_Player::getByID($playerid))) {
         return false;
     }
     # Cache (if real player, not NPC)
     if (true === $player->isHuman()) {
         self::addPlayer($player);
     }
     return $player;
 }
コード例 #5
0
ファイル: SR_Clan.php プロジェクト: sinfocol/gwf3
 /**
  * Get the leader of this clan.
  * @return SR_Player
  */
 public function getLeader()
 {
     $lead_id = $this->getLeaderID();
     if (false === ($leader = Shadowrun4::getPlayerByPID($lead_id))) {
         if (false === ($leader = SR_Player::getByID($lead_id))) {
             return false;
         }
     }
     return $leader;
 }