示例#1
0
/**
 * Wrapper and actualiser to add a realm. Does not return.
 *
 * @param  ?MEMBER	The member performing the action (NULL: no member)
 * @param  string		Name for the realm
 * @param  string		Name of the realm's troll
 * @param  string		Name of the jail room
 * @param  string		Text for the jail room
 * @param  URLPATH	The picture for the jail room
 * @param  string		Name of the jail house room
 * @param  string		Text for the jail house room
 * @param  URLPATH	The picture for the jail house room
 * @param  string		Name of the lobby room
 * @param  string		Text for the lobby room
 * @param  URLPATH	The picture for the lobby room
 * @param  array		List of maps (holding 'q' and 'a') for the trolls questions and answers. Must consist of indices 1 to 30. Blank entries mean 'not set'.
 * @param  BINARY		Whether the realm is private
 * @param  boolean	Whether to redirect after
 */
function add_realm_wrap($member_id, $name, $troll_name, $jail_name, $jail_text, $jail_pic_url, $jail_house_name, $jail_house_text, $jail_house_pic_url, $lobby_name, $lobby_text, $lobby_pic_url, $qa, $private, $redirect = true)
{
    if ($private != 1) {
        $private = 0;
    }
    if ($name == '') {
        ocw_refresh_with_message(do_lang_tempcode('W_MISSING_NAME'), 'warn');
    }
    if ($troll_name == '') {
        ocw_refresh_with_message(do_lang_tempcode('W_MISSING_TROLL_NAME'), 'warn');
    }
    if ($jail_house_name == '') {
        ocw_refresh_with_message(do_lang_tempcode('W_MISSING_SPECIAL_ROOM_NAME'), 'warn');
    }
    if ($lobby_name == '') {
        ocw_refresh_with_message(do_lang_tempcode('W_MISSING_SPECIAL_ROOM_NAME'), 'warn');
    }
    if ($jail_name == '') {
        ocw_refresh_with_message(do_lang_tempcode('W_MISSING_SPECIAL_ROOM_NAME'), 'warn');
    }
    // Charge them
    if (!is_null($member_id) && !has_specific_permission($member_id, 'administer_ocworld')) {
        // Have they been a member long enough for a new realm?
        $fortnights = (time() - $GLOBALS['FORUM_DRIVER']->get_member_join_timestamp($member_id)) / (60 * 60 * 24 * 7 * 2);
        $made = $GLOBALS['SITE_DB']->query_value('w_realms', 'COUNT(*)', array('owner' => $member_id));
        if ($fortnights < $made) {
            ocw_refresh_with_message(do_lang_tempcode('W_MEMBER_NOT_LONG_ENOUGH'), 'warn');
        }
        $price = get_price('mud_realm');
        if (available_points($member_id) < $price) {
            ocw_refresh_with_message(do_lang_tempcode('W_EXPENSIVE', integer_format($price)), 'warn');
        }
        require_code('points2');
        charge_member($member_id, $price, do_lang('W_MADE_REALM_OCWORLD', $name));
    }
    // Find the next available $realm
    $temp = $GLOBALS['SITE_DB']->query_value_null_ok('w_realms', 'id');
    if (is_null($temp)) {
        $realm = 0;
        // Our first realm
    } else {
        $temp = $GLOBALS['SITE_DB']->query_value('w_realms', 'MAX(id)');
        $realm = $temp + 1;
    }
    add_realm($realm, $name, $troll_name, $qa, $member_id, $private);
    // Add realms default rooms
    add_room($jail_name, $realm, 0, 2, $jail_text, '', '', '', '', 0, 1, 1, 1, $jail_pic_url, $member_id, 1);
    // Add jail
    add_room($jail_house_name, $realm, 0, 1, $jail_house_text, do_lang('W_DEFAULT_JAIL_TEXT'), 'yes', do_lang('W_DEFAULT_CANCEL'), 'BRIBE', 0, 0, 1, 1, $jail_house_pic_url, $member_id, 0);
    // Add jailhouse
    add_room($lobby_name, $realm, 0, 0, $lobby_text, '', '', '', '', 0, 0, 0, 0, $lobby_pic_url, $member_id, 1);
    // Add lobby
    // Add troll
    $troll_id = -$realm - 1;
    $GLOBALS['SITE_DB']->query_insert('w_members', array('id' => $troll_id, 'location_realm' => $realm, 'location_x' => 0, 'location_y' => 0, 'banned' => 0, 'health' => 1000, 'trolled' => 0, 'lastactive' => time()));
    if ($redirect) {
        ocw_refresh_with_message(do_lang_tempcode('W_REALM_CREATED', escape_html($name), strval($realm)));
    }
}
示例#2
0
     $choice = filter_input(INPUT_POST, "choice");
     $rm_nbr = filter_input(INPUT_POST, "rm_nbr");
     $rm_cap = filter_input(INPUT_POST, "rm_cap");
     if ($choice == "Add") {
         $error_msg = "";
         if (empty($rm_nbr)) {
             $error_msg .= "A room number is required. <BR>";
         }
         if (empty($rm_cap)) {
             $error_msg .= "A capacity for the room is required. <BR>";
         }
         if ($error_msg != "") {
             include "add_room.php";
             exit;
         } else {
             add_room($rm_nbr, $rm_cap);
         }
     }
 } else {
     if ($action == "delete") {
         $id = filter_input(INPUT_GET, "id");
         delete_room($id);
     } else {
         if ($action == "edit") {
             $rm = get_room(filter_input(INPUT_GET, "id"));
             include "edit_room.php";
             exit;
         } else {
             if ($action == "edit_room") {
                 $choice = filter_input(INPUT_POST, "choice");
                 $rm_nbr = filter_input(INPUT_POST, "rm_nbr");
示例#3
0
function dbase_parse($cmd, $message)
{
    global $pisql, $dbhost, $dbuser, $dbpass, $dbname;
    global $log;
    // Used by daemon
    global $apperr, $appmsg;
    // For ajax usage
    if (!$pisql || !$pisql->ping()) {
        $log->lwrite("dbase_parse:: Ping failed, making new pisql connection to server", 1);
        $pisql = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
    }
    // If there is an error
    if ($pisql->connect_errno) {
        $log->lwrite("dbase_parse:: Failed to connect to MySQL: (" . $pisql->connect_errno . ") " . $pisql->connect_error, 1);
        return -1;
    }
    // For logging only
    if (is_array($message)) {
        $str = "";
        foreach ($message as $key => $val) {
            $str .= " {" . $key . ":" . $val . "},";
        }
        $log->lwrite("dbase_parse:: " . $cmd . ": " . $str, 1);
    } else {
        $log->lwrite("dbase_parse:: message: " . $cmd . ": " . $message, 1);
    }
    //
    // Depending on $cmd execute database function
    switch ($cmd) {
        // Database
        case "load_database":
            $ret = load_database();
            break;
            // Device
        // Device
        case "load_devices":
            $ret = load_devices();
            break;
        case "add_device":
            $ret = add_device($message);
            break;
        case "delete_device":
            $ret = delete_device($message);
            break;
        case "store_device":
            $ret = store_device($message);
            break;
            // Room
        // Room
        case "add_room":
            $ret = add_room($message);
            break;
        case "delete_room":
            $ret = delete_room($message);
            break;
            // Scene
        // Scene
        case "read_scene":
            $ret = load_scene($message);
            break;
        case "load_scenes":
            $ret = load_scenes();
            break;
        case "add_scene":
            $ret = add_scene($message);
            break;
        case "delete_scene":
            $ret = delete_scene($message);
            break;
        case "upd_scene":
            $ret = upd_scene($message);
            break;
        case "store_scene":
            $ret = store_scene($message);
            break;
            // Timer
        // Timer
        case "add_timer":
            $ret = add_timer($message);
            break;
        case "delete_timer":
            $ret = delete_timer($message);
            break;
        case "store_timer":
            $ret = store_timer($message);
            break;
            // Handset
        // Handset
        case "add_handset":
            $ret = add_handset($message);
            break;
        case "delete_handset":
            $ret = delete_handset($message);
            break;
        case "store_handset":
            $ret = store_handset($message);
            break;
            // Weather
        // Weather
        case "add_weather":
            $ret = add_weather($message);
            break;
        case "delete_weather":
            $ret = delete_weather($message);
            break;
            // Setting
        // Setting
        case "store_setting":
            $ret = store_setting($message);
            break;
        default:
    }
    if ($ret >= 0) {
        // Prepare structure to send back to the calling ajax client (in stdout)
        $send = array('tcnt' => $ret, 'appmsg' => $appmsg, 'status' => 'OK', 'apperr' => $apperr);
        $output = json_encode($send);
    } else {
        //	Functions need to fill apperr themselves!
        $send = array('tcnt' => $ret, 'appmsg' => $appmsg, 'status' => 'ERR', 'apperr' => $apperr);
        $output = json_encode($send);
    }
    return $output;
}
    }
    $autojoin = $_POST['autojoinvalue'];
    $roomname = $_POST['roomname'];
    if (empty($roomname)) {
        echo "failed, room name can not be blank";
        exit;
    }
    $roomdescr = $_POST['roomdescription'];
    if (empty($roomdescr)) {
        echo "failed, room description can not be blank";
        exit;
    }
    $roommessage = $_POST['welcomemessage'];
    if (empty($roommessage)) {
        echo "failed, room message can not be blank";
        exit;
    }
    $results = add_room($idserver, $roomname, $roomdescr, $autojoin, $roommessage);
    if (strpos(strtolower($results), "fail") !== false) {
        echo $results;
        exit;
    }
    echo "Server room created successfully";
}
?>
				</td>
			</tr>
		</table>
	</body>
</html>
示例#5
0
     include 'room_list.php';
     break;
 case 'show_add_room':
     $error_msg = '';
     $room_id = '';
     $room_nbr = '';
     include 'room_add.php';
     break;
 case 'add_room':
     $choice = filter_input(INPUT_POST, 'choice');
     $room_nbr = filter_input(INPUT_POST, 'room_nbr');
     // The user either pressed Add or Cancel.
     // If Add, then add the room.
     // Otherwise, just skip down to the list redraw.
     if ($choice == 'Add') {
         add_room($room_nbr);
     }
     $roomList = get_room_list();
     include 'room_list.php';
     break;
 case 'show_modify_room':
     $room_id = filter_input(INPUT_GET, 'room_id');
     $room = get_room($room_id);
     $room_nbr = $room['rm_nbr'];
     include 'room_modify.php';
     exit;
     break;
 case 'modify_room':
     $choice = filter_input(INPUT_POST, 'choice');
     $room_nbr = filter_input(INPUT_POST, 'room_nbr');
     $room_id = filter_input(INPUT_POST, 'room_id');
示例#6
0
function dbase_parse($cmd, $message)
{
    //
    switch ($cmd) {
        case "add_device":
            $ret = add_device($message);
            break;
        case "delete_device":
            $ret = delete_device($message);
            break;
        case "add_room":
            $ret = add_room($message);
            break;
        case "delete_room":
            $ret = delete_room($message);
            break;
        case "add_scene":
            break;
        case "delete_scene":
            break;
        case "upd_scene":
            break;
        case "add_timer":
            break;
        case "delete_timer":
            break;
        case "store_timer":
            break;
        case "add_handset":
            break;
        case "delete_handset":
            break;
        case "store_handset":
            break;
        case "add_weather":
            break;
        case "delete_weather":
            break;
        case "store_setting":
            break;
        default:
    }
    if ($ret >= 0) {
        // Prepare structure to send back to the calling ajax client (in stdout)
        $send = array('tcnt' => $ret, 'appmsg' => $appmsg, 'status' => 'OK', 'apperr' => $apperr);
        $output = json_encode($send);
    } else {
        //	Functions need to fill apperr themselves!
        $send = array('tcnt' => $ret, 'appmsg' => $appmsg, 'status' => 'ERR', 'apperr' => $apperr);
        $output = json_encode($send);
    }
    return $output;
}