<?php class Character extends GameObject { private $room; // Room EID function __construct($eid, $name, $desc, $type=GO_TYPE_CHAR) { parent::__construct($eid, $name, $desc, $type); global $rooms; $this->room = $rooms[0][0]->getEID(); $this->getRoom()->addCharacter($this); $this->loadToCache(); } function loadToCache() { setCharMem($this); } function setRoom($room) { $this->room = $room->getEID(); } function getRoom() { return getRoomMem($this->room); } function getX() { return $this->getRoom()->getX(); } function getY() { return $this->getRoom()->getY(); } function setOffline() { $this->getRoom()->removeCharacter($this); $this->getRoom()->send("{$this->getName()} has departed the land of Phud, to be seen again soon. Or not.", "sysmessage"); if (is_object($this->getConnection())) $this->getConnection()->close(); } // ****** Communication Features ****** // // Retrieve the socket connection for a logged in player // function getConnection() { global $game; if (is_object($game) && $game->isRunning()) { $cConn = $game->getConnection($this->getEID()); if (is_object($cConn)) return $cConn; } return false; } // Send a message to the player (via socket connection) // function send($message, $mType="notify") { $cConn = $this->getConnection(); if (is_object($cConn)) { // +++++++++++ Format the message ++++++++++++ // $message = formatMessage($message, $mType, $cConn->getClientType()); $message = stripSysCalls($message, $this, $cConn->getClientType()); $cConn->send($message); } } function sendDirect($message) { $cConn = $this->getConnection(); if (is_object($cConn)) { $cConn->send($message); } } } ?>