$user_id = isset($_GET['num']) && is_numeric($_GET['num']) ? (int) $_GET['num'] : false; // Collect user info based on the ID if available $user_fields = rpg_user::get_fields(true); if (!empty($user_id)) { $user_info = $db->get_array("SELECT {$user_fields} FROM mmrpg_users WHERE user_id = {$user_id};"); } elseif ($user_id === 0) { $user_info = $db->get_array("SELECT {$user_fields} FROM mmrpg_users WHERE user_name_clean = 'guest';"); } else { $user_info = array(); } // Parse the user info if it was collected if (!empty($user_info)) { $user_info = rpg_user::parse_info($user_info); } // Collect the type index for display and looping $type_index = rpg_type::get_index(true); // Generate form select options for the type index $type_tokens = array_keys($type_index); $type_index_options = ''; $type_index_options .= '<option value="">Neutral</option>' . PHP_EOL; // Manually add 'none' up top foreach ($type_tokens as $type_token) { if ($type_token == 'none') { continue; } // We already added 'none' above $type_info = $type_index[$type_token]; $type_index_options .= '<option value="' . $type_token . '">' . $type_info['type_name'] . '</option>' . PHP_EOL; } // Require actions file for form processing require_once MMRPG_CONFIG_ROOTDIR . 'pages/admin_users_actions.php';
public static function print_database_markup($ability_info, $print_options = array()) { // Define the global variables global $mmrpg_index, $this_current_uri, $this_current_url; global $mmrpg_database_abilities, $mmrpg_database_abilities, $mmrpg_database_types; global $db; // Collect global indexes for easier search $mmrpg_types = rpg_type::get_index(); // Define the markup variable $this_markup = ''; // Define the print style defaults if (!isset($print_options['layout_style'])) { $print_options['layout_style'] = 'website'; } if ($print_options['layout_style'] == 'website') { if (!isset($print_options['show_basics'])) { $print_options['show_basics'] = true; } if (!isset($print_options['show_icon'])) { $print_options['show_icon'] = true; } if (!isset($print_options['show_sprites'])) { $print_options['show_sprites'] = true; } if (!isset($print_options['show_robots'])) { $print_options['show_robots'] = true; } if (!isset($print_options['show_records'])) { $print_options['show_records'] = true; } if (!isset($print_options['show_footer'])) { $print_options['show_footer'] = true; } if (!isset($print_options['show_key'])) { $print_options['show_key'] = false; } } elseif ($print_options['layout_style'] == 'website_compact') { if (!isset($print_options['show_basics'])) { $print_options['show_basics'] = true; } if (!isset($print_options['show_icon'])) { $print_options['show_icon'] = true; } if (!isset($print_options['show_sprites'])) { $print_options['show_sprites'] = false; } if (!isset($print_options['show_robots'])) { $print_options['show_robots'] = false; } if (!isset($print_options['show_records'])) { $print_options['show_records'] = false; } if (!isset($print_options['show_footer'])) { $print_options['show_footer'] = true; } if (!isset($print_options['show_key'])) { $print_options['show_key'] = false; } } elseif ($print_options['layout_style'] == 'event') { if (!isset($print_options['show_basics'])) { $print_options['show_basics'] = true; } if (!isset($print_options['show_icon'])) { $print_options['show_icon'] = false; } if (!isset($print_options['show_sprites'])) { $print_options['show_sprites'] = false; } if (!isset($print_options['show_robots'])) { $print_options['show_robots'] = false; } if (!isset($print_options['show_records'])) { $print_options['show_records'] = false; } if (!isset($print_options['show_footer'])) { $print_options['show_footer'] = false; } if (!isset($print_options['show_key'])) { $print_options['show_key'] = false; } } // Collect the ability sprite dimensions $ability_image_size = !empty($ability_info['ability_image_size']) ? $ability_info['ability_image_size'] : 40; $ability_image_size_text = $ability_image_size . 'x' . $ability_image_size; $ability_image_token = !empty($ability_info['ability_image']) ? $ability_info['ability_image'] : $ability_info['ability_token']; // Collect the ability's type for background display $ability_type_class = !empty($ability_info['ability_type']) ? $ability_info['ability_type'] : 'none'; if ($ability_type_class != 'none' && !empty($ability_info['ability_type2'])) { $ability_type_class .= '_' . $ability_info['ability_type2']; } elseif ($ability_type_class == 'none' && !empty($ability_info['ability_type2'])) { $ability_type_class = $ability_info['ability_type2']; } $ability_header_types = 'ability_type_' . $ability_type_class . ' '; // If this is a special category of item, it's a special type if (preg_match('/^item-score-ball-(red|blue|green|purple)$/i', $ability_info['ability_token'])) { $ability_info['ability_type_special'] = 'bonus'; } elseif (preg_match('/^item-super-(pellet|capsule)$/i', $ability_info['ability_token'])) { $ability_info['ability_type_special'] = 'multi'; } // Define the sprite sheet alt and title text $ability_sprite_size = $ability_image_size * 2; $ability_sprite_size_text = $ability_sprite_size . 'x' . $ability_sprite_size; $ability_sprite_title = $ability_info['ability_name']; //$ability_sprite_title = $ability_info['ability_number'].' '.$ability_info['ability_name']; //$ability_sprite_title .= ' Sprite Sheet | Robot Database | Mega Man RPG World'; // Define the sprite frame index for robot images $ability_sprite_frames = array('frame_01', 'frame_02', 'frame_03', 'frame_04', 'frame_05', 'frame_06', 'frame_07', 'frame_08', 'frame_09', 'frame_10'); // Limit any damage or recovery percents to 100% if (!empty($ability_info['ability_damage_percent']) && $ability_info['ability_damage'] > 100) { $ability_info['ability_damage'] = 100; } if (!empty($ability_info['ability_damage2_percent']) && $ability_info['ability_damage2'] > 100) { $ability_info['ability_damage2'] = 100; } if (!empty($ability_info['ability_recovery_percent']) && $ability_info['ability_recovery'] > 100) { $ability_info['ability_recovery'] = 100; } if (!empty($ability_info['ability_recovery2_percent']) && $ability_info['ability_recovery2'] > 100) { $ability_info['ability_recovery2'] = 100; } // Start the output buffer ob_start(); ?> <div class="database_container database_<?php echo $ability_info['ability_class'] == 'item' ? 'item' : 'ability'; ?> _container" data-token="<?php echo $ability_info['ability_token']; ?> " style="<?php echo $print_options['layout_style'] == 'website_compact' ? 'margin-bottom: 2px !important;' : ''; ?> "> <?php if ($print_options['layout_style'] == 'website' || $print_options['layout_style'] == 'website_compact') { ?> <a class="anchor" id="<?php echo $ability_info['ability_token']; ?> "> </a> <?php } ?> <div class="subbody event event_triple event_visible" data-token="<?php echo $ability_info['ability_token']; ?> " style="<?php echo ($print_options['layout_style'] == 'event' ? 'margin: 0 !important; ' : '') . ($print_options['layout_style'] == 'website_compact' ? 'margin-bottom: 2px !important; ' : ''); ?> "> <?php if ($print_options['show_icon']) { ?> <div class="this_sprite sprite_left" style="height: 40px;"> <?php if ($print_options['show_icon']) { ?> <?php if ($print_options['show_key'] !== false) { ?> <div class="icon ability_type <?php echo $ability_header_types; ?> " style="font-size: 9px; line-height: 11px; text-align: center; margin-bottom: 2px; padding: 0 0 1px !important;"><?php echo 'No.' . $ability_info['ability_key']; ?> </div> <?php } ?> <?php if ($ability_image_token != 'ability') { ?> <div class="icon ability_type <?php echo $ability_header_types; ?> "><div style="background-image: url(i/a/<?php echo $ability_image_token; ?> /ir<?php echo $ability_image_size; ?> .png?<?php echo MMRPG_CONFIG_CACHE_DATE; ?> ); background-color: #000000; background-color: rgba(0, 0, 0, 0.6); box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); " class="sprite sprite_ability sprite_40x40 sprite_40x40_icon sprite_size_<?php echo $ability_image_size_text; ?> sprite_size_<?php echo $ability_image_size_text; ?> _icon"><?php echo $ability_info['ability_name']; ?> 's Mugshot</div></div> <?php } else { ?> <div class="icon ability_type <?php echo $ability_header_types; ?> "><div style="background-image: none; background-color: #000000; background-color: rgba(0, 0, 0, 0.6); box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); " class="sprite sprite_ability sprite_40x40 sprite_40x40_icon sprite_size_<?php echo $ability_image_size_text; ?> sprite_size_<?php echo $ability_image_size_text; ?> _icon">No Image</div></div> <?php } ?> <?php } ?> </div> <?php } ?> <?php if ($print_options['show_basics']) { ?> <h2 class="header header_left <?php echo $ability_header_types; ?> <?php echo !$print_options['show_icon'] ? 'noicon' : ''; ?> "> <?php if ($print_options['layout_style'] == 'website_compact') { ?> <a href="<?php echo preg_match('/^item-/', $ability_info['ability_token']) ? 'database/items/' . preg_replace('/^item-/i', '', $ability_info['ability_token']) . '/' : 'database/abilities/' . $ability_info['ability_token'] . '/'; ?> "><?php echo $ability_info['ability_name']; ?> </a> <?php } else { ?> <?php echo $ability_info['ability_name']; ?> 's Data <?php } ?> <?php if (!empty($ability_info['ability_type_special'])) { ?> <div class="header_core ability_type"><?php echo ucfirst($ability_info['ability_type_special']); ?> Type</div> <?php } elseif (!empty($ability_info['ability_type']) && !empty($ability_info['ability_type2'])) { ?> <div class="header_core ability_type"><?php echo ucfirst($ability_info['ability_type']) . ' / ' . ucfirst($ability_info['ability_type2']); ?> Type</div> <?php } elseif (!empty($ability_info['ability_type'])) { ?> <div class="header_core ability_type"><?php echo ucfirst($ability_info['ability_type']); ?> Type</div> <?php } else { ?> <div class="header_core ability_type">Neutral Type</div> <?php } ?> </h2> <div class="body body_left" style="margin-right: 0; margin-bottom: 5px; padding: 2px 0; min-height: 10px; <?php echo !$print_options['show_icon'] ? 'margin-left: 0; ' : ''; echo $print_options['layout_style'] == 'event' ? 'font-size: 10px; min-height: 150px; ' : ''; ?> "> <table class="full" style="margin: 5px auto 10px;"> <colgroup> <col width="48%" /> <col width="1%" /> <col width="48%" /> </colgroup> <tbody> <tr> <td class="right"> <label style="display: block; float: left;">Name :</label> <span class="ability_type ability_type_"><?php echo $ability_info['ability_name']; ?> </span> </td> <td class="center"> </td> <td class="right"> <label style="display: block; float: left;">Type :</label> <?php if ($print_options['layout_style'] != 'event') { ?> <?php if (!empty($ability_info['ability_type_special'])) { echo '<a href="' . ((preg_match('/^item-/', $ability_info['ability_token']) ? 'database/items/' : 'database/abilities/') . $ability_info['ability_type_special'] . '/') . '" class="ability_type ' . $ability_header_types . '">' . ucfirst($ability_info['ability_type_special']) . '</a>'; } elseif (!empty($ability_info['ability_type'])) { $temp_string = array(); $ability_type = !empty($ability_info['ability_type']) ? $ability_info['ability_type'] : 'none'; $temp_string[] = '<a href="' . ((preg_match('/^item-/', $ability_info['ability_token']) ? 'database/items/' : 'database/abilities/') . $ability_type . '/') . '" class="ability_type ability_type_' . $ability_type . '">' . $mmrpg_types[$ability_type]['type_name'] . '</a>'; if (!empty($ability_info['ability_type2'])) { $ability_type2 = !empty($ability_info['ability_type2']) ? $ability_info['ability_type2'] : 'none'; $temp_string[] = '<a href="' . ((preg_match('/^item-/', $ability_info['ability_token']) ? 'database/items/' : 'database/abilities/') . $ability_type2 . '/') . '" class="ability_type ability_type_' . $ability_type2 . '">' . $mmrpg_types[$ability_type2]['type_name'] . '</a>'; } echo implode(' ', $temp_string); } else { echo '<a href="' . ((preg_match('/^item-/', $ability_info['ability_token']) ? 'database/items/' : 'database/abilities/') . 'none/') . '" class="ability_type ability_type_none">Neutral</a>'; } ?> <?php } else { ?> <?php if (!empty($ability_info['ability_type_special'])) { echo '<span class="ability_type ' . $ability_header_types . '">' . ucfirst($ability_info['ability_type_special']) . '</span>'; } elseif (!empty($ability_info['ability_type'])) { $temp_string = array(); $ability_type = !empty($ability_info['ability_type']) ? $ability_info['ability_type'] : 'none'; $temp_string[] = '<span class="ability_type ability_type_' . $ability_type . '">' . $mmrpg_types[$ability_type]['type_name'] . '</span>'; if (!empty($ability_info['ability_type2'])) { $ability_type2 = !empty($ability_info['ability_type2']) ? $ability_info['ability_type2'] : 'none'; $temp_string[] = '<span class="ability_type ability_type_' . $ability_type2 . '">' . $mmrpg_types[$ability_type2]['type_name'] . '</span>'; } echo implode(' ', $temp_string); } else { echo '<span class="ability_type ability_type_none">Neutral</span>'; } ?> <?php } ?> </td> </tr> <?php if ($ability_info['ability_class'] != 'item') { ?> <?php if ($ability_image_token != 'ability') { ?> <tr> <td class="right"> <label style="display: block; float: left;">Power :</label> <?php if (!empty($ability_info['ability_damage']) || !empty($ability_info['ability_recovery'])) { ?> <?php if (!empty($ability_info['ability_damage'])) { ?> <span class="ability_stat"><?php echo $ability_info['ability_damage'] . (!empty($ability_info['ability_damage_percent']) ? '%' : ''); ?> Damage</span><?php } ?> <?php if (!empty($ability_info['ability_recovery'])) { ?> <span class="ability_stat"><?php echo $ability_info['ability_recovery'] . (!empty($ability_info['ability_recovery_percent']) ? '%' : ''); ?> Recovery</span><?php } ?> <?php } else { ?> <span class="ability_stat">-</span> <?php } ?> </td> <td class="center"> </td> <td class="right"> <label style="display: block; float: left;">Accuracy :</label> <span class="ability_stat"><?php echo $ability_info['ability_accuracy'] . '%'; ?> </span> </td> </tr> <tr> <td class="right"> <label style="display: block; float: left;">Energy :</label> <span class="ability_stat"><?php echo (!empty($ability_info['ability_energy']) ? $ability_info['ability_energy'] : '-') . (!empty($ability_info['ability_energy_percent']) ? '%' : ''); ?> </span> </td> <td class="center"> </td> <td class="right"> <label style="display: block; float: left;">Speed :</label> <span class="ability_stat"><?php echo !empty($ability_info['ability_speed']) ? $ability_info['ability_speed'] : '1'; ?> </span> </td> </tr> <?php } else { ?> <tr> <td class="right"> <label style="display: block; float: left;">Power :</label> <span class="ability_stat">-</span> </td> <td class="center"> </td> <td class="right"> <label style="display: block; float: left;">Accuracy :</label> <span class="ability_stat">-</span> </td> </tr> <tr> <td class="right"> <label style="display: block; float: left;">Energy :</label> <span class="ability_stat">-</span> </td> <td class="center"> </td> <td class="right"> <label style="display: block; float: left;">Speed :</label> <span class="ability_stat">-</span> </td> </tr> <?php } ?> <?php } ?> </tbody> </table> <table class="full" style="margin: 5px auto 10px;"> <colgroup> <col width="100%" /> </colgroup> <tbody> <tr> <td class="right"> <?php if ($print_options['layout_style'] != 'event') { ?> <label style="display: block; float: left;">Description :</label> <?php } ?> <div class="description_container" style="white-space: normal; text-align: left; <?php echo $print_options['layout_style'] == 'event' ? 'font-size: 12px; ' : ''; ?> "><?php // Define the search/replace pairs for the description $temp_find = array('{DAMAGE}', '{RECOVERY}', '{DAMAGE2}', '{RECOVERY2}', '{}'); $temp_replace = array(!empty($ability_info['ability_damage']) ? $ability_info['ability_damage'] : 0, !empty($ability_info['ability_recovery']) ? $ability_info['ability_recovery'] : 0, !empty($ability_info['ability_damage2']) ? $ability_info['ability_damage2'] : 0, !empty($ability_info['ability_recovery2']) ? $ability_info['ability_recovery2'] : 0, ''); $temp_description = !empty($ability_info['ability_description']) ? $ability_info['ability_description'] : ''; if (!empty($ability_info['ability_description2'])) { $temp_description .= ' ' . $ability_info['ability_description2']; } echo !empty($temp_description) ? str_replace($temp_find, $temp_replace, $temp_description) : '…'; ?> </div> </td> </tr> </tbody> </table> </div> <?php } ?> <?php if ($print_options['show_sprites'] && (!isset($ability_info['ability_image_sheets']) || $ability_info['ability_image_sheets'] !== 0) && $ability_image_token != 'ability') { ?> <?php // Start the output buffer and prepare to collect sprites ob_start(); // Define the alts we'll be looping through for this ability $temp_alts_array = array(); $temp_alts_array[] = array('token' => '', 'name' => $ability_info['ability_name'], 'summons' => 0); // Append predefined alts automatically, based on the ability image alt array if (!empty($ability_info['ability_image_alts'])) { $temp_alts_array = array_merge($temp_alts_array, $ability_info['ability_image_alts']); } elseif ($ability_info['ability_type'] == 'copy' && preg_match('/^(mega-man|proto-man|bass)$/i', $ability_info['ability_token'])) { foreach ($mmrpg_database_types as $type_token => $type_info) { if (empty($type_token) || $type_token == 'none' || $type_token == 'copy') { continue; } $temp_alts_array[] = array('token' => $type_token, 'name' => $ability_info['ability_name'] . ' (' . ucfirst($type_token) . ' Core)', 'summons' => 0); } } elseif (!empty($ability_info['ability_image_sheets'])) { for ($i = 2; $i <= $ability_info['ability_image_sheets']; $i++) { $temp_alts_array[] = array('sheet' => $i, 'name' => $ability_info['ability_name'] . ' (Sheet #' . $i . ')', 'summons' => 0); } } // Loop through the alts and display images for them (yay!) foreach ($temp_alts_array as $alt_key => $alt_info) { // Define the current image token with alt in mind $temp_ability_image_token = $ability_image_token; $temp_ability_image_token .= !empty($alt_info['token']) ? '_' . $alt_info['token'] : ''; $temp_ability_image_token .= !empty($alt_info['sheet']) ? '-' . $alt_info['sheet'] : ''; $temp_ability_image_name = $alt_info['name']; // Update the alt array with this info $temp_alts_array[$alt_key]['image'] = $temp_ability_image_token; // Collect the number of sheets $temp_sheet_number = !empty($ability_info['ability_image_sheets']) ? $ability_info['ability_image_sheets'] : 1; // Loop through the different frames and print out the sprite sheets foreach (array('right', 'left') as $temp_direction) { $temp_direction2 = substr($temp_direction, 0, 1); $temp_embed = '[ability:' . $temp_direction . ']{' . $temp_ability_image_token . '}'; $temp_title = $temp_ability_image_name . ' | Icon Sprite ' . ucfirst($temp_direction); $temp_title .= '<div style="margin-top: 4px; letting-spacing: 1px; font-size: 90%; font-family: Courier New; color: rgb(159, 150, 172);">' . $temp_embed . '</div>'; $temp_title = htmlentities($temp_title, ENT_QUOTES, 'UTF-8', true); $temp_label = 'Icon ' . ucfirst(substr($temp_direction, 0, 1)); echo '<div class="frame_container" data-clickcopy="' . $temp_embed . '" data-direction="' . $temp_direction . '" data-image="' . $temp_ability_image_token . '" data-frame="icon" style="padding-top: 20px; float: left; position: relative; margin: 0; box-shadow: inset 1px 1px 5px rgba(0, 0, 0, 0.75); width: ' . $ability_sprite_size . 'px; height: ' . $ability_sprite_size . 'px; overflow: hidden;">'; echo '<img style="margin-left: 0;" data-tooltip="' . $temp_title . '" src="i/a/' . $temp_ability_image_token . '/i' . $temp_direction2 . $ability_sprite_size . '.png?' . MMRPG_CONFIG_CACHE_DATE . '" />'; echo '<label style="position: absolute; left: 5px; top: 0; color: #EFEFEF; font-size: 10px; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);">' . $temp_label . '</label>'; echo '</div>'; } // Loop through the different frames and print out the sprite sheets foreach ($ability_sprite_frames as $this_key => $this_frame) { $margin_left = ceil((0 - $this_key) * $ability_sprite_size); $frame_relative = $this_frame; //if ($temp_sheet > 1){ $frame_relative = 'frame_'.str_pad((($temp_sheet - 1) * count($ability_sprite_frames) + $this_key + 1), 2, '0', STR_PAD_LEFT); } $frame_relative_text = ucfirst(str_replace('_', ' ', $frame_relative)); foreach (array('right', 'left') as $temp_direction) { $temp_direction2 = substr($temp_direction, 0, 1); $temp_embed = '[ability:' . $temp_direction . ':' . $frame_relative . ']{' . $temp_ability_image_token . '}'; $temp_title = $temp_ability_image_name . ' | ' . $frame_relative_text . ' Sprite ' . ucfirst($temp_direction); $temp_title .= '<div style="margin-top: 4px; letting-spacing: 1px; font-size: 90%; font-family: Courier New; color: rgb(159, 150, 172);">' . $temp_embed . '</div>'; $temp_title = htmlentities($temp_title, ENT_QUOTES, 'UTF-8', true); $temp_label = $frame_relative_text . ' ' . ucfirst(substr($temp_direction, 0, 1)); //$image_token = !empty($ability_info['ability_image']) ? $ability_info['ability_image'] : $ability_info['ability_token']; //if ($temp_sheet > 1){ $temp_ability_image_token .= '-'.$temp_sheet; } echo '<div class="frame_container" data-clickcopy="' . $temp_embed . '" data-direction="' . $temp_direction . '" data-image="' . $temp_ability_image_token . '" data-frame="' . $frame_relative . '" style="padding-top: 20px; float: left; position: relative; margin: 0; box-shadow: inset 1px 1px 5px rgba(0, 0, 0, 0.75); width: ' . $ability_sprite_size . 'px; height: ' . $ability_sprite_size . 'px; overflow: hidden;">'; echo '<img style="margin-left: ' . $margin_left . 'px;" title="' . $temp_title . '" alt="' . $temp_title . '" src="i/a/' . $temp_ability_image_token . '/s' . $temp_direction2 . $ability_sprite_size . '.png?' . MMRPG_CONFIG_CACHE_DATE . '" />'; echo '<label style="position: absolute; left: 5px; top: 0; color: #EFEFEF; font-size: 10px; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);">' . $temp_label . '</label>'; echo '</div>'; } } } // Collect the sprite markup from the output buffer for later $this_sprite_markup = ob_get_clean(); ?> <h2 id="sprites" class="header header_full <?php echo $ability_header_types; ?> " style="margin: 10px 0 0; text-align: left;"> <?php echo $ability_info['ability_name']; ?> 's Sprites <span class="header_links image_link_container"> <span class="images" style="<?php echo count($temp_alts_array) == 1 ? 'visibility: hidden;' : ''; ?> "><?php // Loop though and print links for the alts foreach ($temp_alts_array as $alt_key => $alt_info) { $alt_type = ''; $alt_style = ''; $alt_title = $alt_info['name']; if (preg_match('/^(?:[-_a-z0-9\\s]+)\\s\\(([a-z0-9]+)\\sCore\\)$/i', $alt_info['name'])) { $alt_type = strtolower(preg_replace('/^(?:[-_a-z0-9\\s]+)\\s\\(([a-z0-9]+)\\sCore\\)$/i', '$1', $alt_info['name'])); $alt_name = '•'; //ucfirst($alt_type); //substr(ucfirst($alt_type), 0, 2); $alt_type = 'ability_type ability_type_' . $alt_type . ' core_type '; $alt_style = 'border-color: rgba(0, 0, 0, 0.2) !important; '; } else { $alt_name = $alt_key + 1; //$alt_key == 0 ? $ability_info['ability_name'] : 'Alt'.($alt_key > 1 ? ' '.$alt_key : ''); //$alt_key == 0 ? $ability_info['ability_name'] : $ability_info['ability_name'].' Alt'.($alt_key > 1 ? ' '.$alt_key : ''); $alt_type = 'ability_type ability_type_empty '; $alt_style = 'border-color: rgba(0, 0, 0, 0.2) !important; background-color: rgba(0, 0, 0, 0.2) !important; '; //if ($ability_info['ability_type'] == 'copy' && $alt_key == 0){ $alt_type = 'ability_type ability_type_empty '; } } echo '<a href="#" data-tooltip="' . $alt_title . '" class="link link_image ' . ($alt_key == 0 ? 'link_active ' : '') . '" data-image="' . $alt_info['image'] . '">'; echo '<span class="' . $alt_type . '" style="' . $alt_style . '">' . $alt_name . '</span>'; echo '</a>'; } ?> </span> <span class="pipe" style="<?php echo count($temp_alts_array) == 1 ? 'visibility: hidden;' : ''; ?> ">|</span> <span class="directions"><?php // Loop though and print links for the alts foreach (array('right', 'left') as $temp_key => $temp_direction) { echo '<a href="#" data-tooltip="' . ucfirst($temp_direction) . ' Facing Sprites" class="link link_direction ' . ($temp_key == 0 ? 'link_active' : '') . '" data-direction="' . $temp_direction . '">'; echo '<span class="ability_type ability_type_empty" style="border-color: rgba(0, 0, 0, 0.2) !important; background-color: rgba(0, 0, 0, 0.2) !important; ">' . ucfirst($temp_direction) . '</span>'; echo '</a>'; } ?> </span> </span> </h2> <div id="sprites_body" class="body body_full" style="margin: 0; padding: 10px; min-height: auto;"> <div style="border: 1px solid rgba(0, 0, 0, 0.20); border-radius: 0.5em; -moz-border-radius: 0.5em; -webkit-border-radius: 0.5em; background: #4d4d4d url(images/assets/sprite-grid.gif) scroll repeat -10px -30px; overflow: hidden; padding: 10px 30px;"> <?php echo $this_sprite_markup; ?> </div> <? // Collect the sprite contributor index for display $user_fields = rpg_user::get_fields(true, 'user'); $user_role_fields = rpg_user_role::get_fields(true, 'role'); $contributor_index = $db->get_array_list("SELECT {$user_fields}, {$user_role_fields}, (CASE WHEN user.user_name_public <> '' THEN user.user_name_public ELSE user.user_name END) AS user_name_current FROM mmrpg_users AS user LEFT JOIN mmrpg_roles AS role ON role.role_id = user.role_id WHERE role.role_token IN ('developer', 'administrator', 'contributor', 'moderator') ORDER BY user_name_current ASC; ", 'user_id'); // Define the editor title based on ID $temp_editor_title = 'Undefined'; $temp_final_divider = '<span style="color: #565656;"> | </span>'; $temp_editor_ids = array(); // Check if an image editor ID has been defined if (!empty($ability_info['ability_image_editor']) && isset($contributor_index[$ability_info['ability_image_editor']])){ $temp_editor_ids[] = $ability_info['ability_image_editor']; } // Check if a second image editor ID has been defined if (!empty($ability_info['ability_image_editor2']) && isset($contributor_index[$ability_info['ability_image_editor2']])){ $temp_editor_ids[] = $ability_info['ability_image_editor2']; } // If not empty, loop through and add image editors to the string if (!empty($temp_editor_ids)){ $temp_editor_title = array(); foreach ($temp_editor_ids AS $editor_id){ $temp_editor = $contributor_index[$editor_id]; $temp_name_public = !empty($temp_editor['user_name_public']) ? $temp_editor['user_name_public'] : $temp_editor['user_name']; $temp_name_real = !empty($temp_editor['user_name']) ? $temp_editor['user_name'] : $temp_editor['user_name_clean']; $temp_name_public_clean = preg_replace('/[^a-z0-9]+/i', '', strtolower($temp_name_public)); $temp_name_real_clean = preg_replace('/[^a-z0-9]+/i', '', strtolower($temp_name_real)); if ($temp_name_public_clean != $temp_name_real_clean){ $temp_editor_title[] = '<strong>'.$temp_name_public.' / '.$temp_name_real.'</strong>'; } else { $temp_editor_title[] = '<strong>'.$temp_name_public.'</strong>'; } } if (count($temp_editor_title) > 1){ $temp_final_divider = '<br />'; } $temp_editor_title = implode(' and ', $temp_editor_title); } // Print out the final credits footer based on if special case or Capcom original if ($ability_info['ability_game'] == 'MMRPG'){ echo '<p class="text text_editor" style="text-align: center; color: #868686; font-size: 10px; line-height: 13px; margin-top: 6px;">Sprite Editing by '.$temp_editor_title.' '.$temp_final_divider.' Original Artwork by <strong>Mega Man RPG Prototype</strong></p>'."\n"; } elseif ($ability_info['ability_game'] == 'MMRPG2'){ echo '<p class="text text_editor" style="text-align: center; color: #868686; font-size: 10px; line-height: 13px; margin-top: 6px;">Sprite Editing by '.$temp_editor_title.' '.$temp_final_divider.' Original Artwork by <strong>Mega Man RPG World</strong></p>'."\n"; } else { echo '<p class="text text_editor" style="text-align: center; color: #868686; font-size: 10px; line-height: 13px; margin-top: 6px;">Sprite Editing by '.$temp_editor_title.' '.$temp_final_divider.' Original Artwork by <strong>Capcom</strong></p>'."\n"; } ?> </div> <?php } ?> <?php if ($print_options['show_robots'] && $ability_info['ability_class'] != 'item') { ?> <h2 class="header header_full <?php echo $ability_header_types; ?> " style="margin: 10px 0 0; text-align: left;"> <?php echo $ability_info['ability_name']; ?> 's Robots </h2> <div class="body body_full" style="margin: 0; padding: 2px 3px;"> <table class="full" style="margin: 5px auto 10px;"> <colgroup> <col width="100%" /> </colgroup> <tbody> <tr> <td class="right"> <div class="robot_container"> <?php // Collect the full robot index to loop through $ability_type_one = !empty($ability_info['ability_type']) ? $ability_info['ability_type'] : false; $ability_type_two = !empty($ability_info['ability_type2']) ? $ability_info['ability_type2'] : false; $ability_robot_rewards = array(); $ability_robot_rewards_level = array(); $ability_robot_rewards_core = array(); $ability_robot_rewards_player = array(); // Collect a FULL list of abilities for display $temp_required = array(); if (!empty($ability_info['ability_master'])) { $temp_required[] = $ability_info['ability_master']; } $temp_robots_index = rpg_robot::get_index(false, false, 'master', $temp_required); // Loop through and remove any robots that do not learn the ability foreach ($temp_robots_index as $robot_token => $robot_info) { // Define the match flah to prevent doubling up $temp_match_flag = false; // Loop through this robot's ability rewards one by one foreach ($robot_info['robot_rewards']['abilities'] as $temp_info) { // If the temp info's type token matches this ability if ($temp_info['token'] == $ability_info['ability_token']) { // Add this ability to the rewards list $ability_robot_rewards_level[] = array_merge($robot_info, array('token' => $robot_info['robot_token'], 'level' => $temp_info['level'])); $temp_match_flag = true; break; } } // If a type match was found, continue if ($temp_match_flag) { continue; } // If this ability's type matches the robot's first if (!empty($robot_info['robot_core']) && ($robot_info['robot_core'] == $ability_type_one || $robot_info['robot_core'] == $ability_type_two)) { // Add this ability to the rewards list $ability_robot_rewards_core[] = array_merge($robot_info, array('token' => $robot_info['robot_token'], 'level' => 'core')); continue; } // If this ability's type matches the robot's second if (!empty($robot_info['robot_core2']) && ($robot_info['robot_core2'] == $ability_type_one || $robot_info['robot_core2'] == $ability_type_two)) { // Add this ability to the rewards list $ability_robot_rewards_core[] = array_merge($robot_info, array('token' => $robot_info['robot_token'], 'level' => 'core')); continue; } // If a type match was found, continue if ($temp_match_flag) { continue; } // If this ability's in the robot's list of player-only abilities if (!empty($robot_info['robot_abilities']) && in_array($ability_info['ability_token'], $robot_info['robot_abilities']) || !empty($robot_info['robot_core']) && $robot_info['robot_core'] == 'copy' || !empty($robot_info['robot_core2']) && $robot_info['robot_core2'] == 'copy') { // Add this ability to the rewards list $ability_robot_rewards_player[] = array_merge($robot_info, array('token' => $robot_info['robot_token'], 'level' => 'player')); continue; } // If a type match was found, continue if ($temp_match_flag) { continue; } } // Combine the arrays together into one $ability_robot_rewards = array_merge($ability_robot_rewards_level, $ability_robot_rewards_core, $ability_robot_rewards_player); // Loop through the collected robots if there are any if (!empty($ability_robot_rewards)) { $temp_string = array(); $robot_key = 0; $robot_method_key = 0; $robot_method = ''; $temp_global_abilities = self::get_global_abilities(); foreach ($ability_robot_rewards as $this_info) { $this_level = $this_info['level']; $this_robot = $temp_robots_index[$this_info['token']]; $this_robot_token = $this_robot['robot_token']; $this_robot_name = $this_robot['robot_name']; $this_robot_image = !empty($this_robot['robot_image']) ? $this_robot['robot_image'] : $this_robot['robot_token']; $this_robot_energy = !empty($this_robot['robot_energy']) ? $this_robot['robot_energy'] : 0; $this_robot_attack = !empty($this_robot['robot_attack']) ? $this_robot['robot_attack'] : 0; $this_robot_defense = !empty($this_robot['robot_defense']) ? $this_robot['robot_defense'] : 0; $this_robot_speed = !empty($this_robot['robot_speed']) ? $this_robot['robot_speed'] : 0; $this_robot_method = 'level'; $this_robot_method_text = 'Level Up'; $this_robot_title_html = '<strong class="name">' . $this_robot_name . '</strong>'; if (is_numeric($this_level)) { if ($this_level > 1) { $this_robot_title_html .= '<span class="level">Lv ' . str_pad($this_level, 2, '0', STR_PAD_LEFT) . '</span>'; } else { $this_robot_title_html .= '<span class="level">Start</span>'; } } else { if ($this_level == 'core') { $this_robot_method = 'core'; $this_robot_method_text = 'Core Match'; } elseif ($this_level == 'player') { $this_robot_method = 'player'; $this_robot_method_text = 'Player Only'; } $this_robot_title_html .= '<span class="level"> </span>'; } $this_stat_base_total = $this_robot_energy + $this_robot_attack + $this_robot_defense + $this_robot_speed; $this_stat_width_total = 84; if (!empty($this_robot['robot_core'])) { $this_robot_title_html .= '<span class="robot_core type_' . $this_robot['robot_core'] . '">' . ucwords($this_robot['robot_core'] . (!empty($this_robot['robot_core2']) ? ' / ' . $this_robot['robot_core2'] : '')) . ' Core</span>'; } else { $this_robot_title_html .= '<span class="robot_core type_none">Neutral Core</span>'; } $this_robot_title_html .= '<span class="class">' . (!empty($this_robot['robot_description']) ? $this_robot['robot_description'] : '…') . '</span>'; if (!empty($this_robot_speed)) { $temp_speed_width = floor($this_stat_width_total * ($this_robot_speed / $this_stat_base_total)); } if (!empty($this_robot_defense)) { $temp_defense_width = floor($this_stat_width_total * ($this_robot_defense / $this_stat_base_total)); } if (!empty($this_robot_attack)) { $temp_attack_width = floor($this_stat_width_total * ($this_robot_attack / $this_stat_base_total)); } if (!empty($this_robot_energy)) { $temp_energy_width = $this_stat_width_total - ($temp_speed_width + $temp_defense_width + $temp_attack_width); } if (!empty($this_robot_energy)) { $this_robot_title_html .= '<span class="energy robot_type robot_type_energy" style="width: ' . $temp_energy_width . '%;" title="' . $this_robot_energy . ' Energy">' . $this_robot_energy . '</span>'; } if (!empty($this_robot_attack)) { $this_robot_title_html .= '<span class="attack robot_type robot_type_attack" style="width: ' . $temp_attack_width . '%;" title="' . $this_robot_attack . ' Attack">' . $this_robot_attack . '</span>'; } if (!empty($this_robot_defense)) { $this_robot_title_html .= '<span class="defense robot_type robot_type_defense" style="width: ' . $temp_defense_width . '%;" title="' . $this_robot_defense . ' Defense">' . $this_robot_defense . '</span>'; } if (!empty($this_robot_speed)) { $this_robot_title_html .= '<span class="speed robot_type robot_type_speed" style="width: ' . $temp_speed_width . '%;" title="' . $this_robot_speed . ' Speed">' . $this_robot_speed . '</span>'; } $this_robot_sprite_size = !empty($this_robot['robot_image_size']) ? $this_robot['robot_image_size'] : 40; $this_robot_sprite_path = 'images/sprites/robots/' . $this_robot_image . '/mug_left_' . $this_robot_sprite_size . 'x' . $this_robot_sprite_size . '.png'; if (!file_exists(MMRPG_CONFIG_ROOTDIR . $this_robot_sprite_path)) { $this_robot_image = 'robot'; $this_robot_sprite_path = 'i/r/robot/ml40.png'; } else { $this_robot_sprite_path = 'i/r/' . $this_robot_image . '/ml' . $this_robot_sprite_size . '.png'; } if ($this_robot_image != 'robot') { $this_robot_sprite_html = '<span class="mug"><img class="size_' . $this_robot_sprite_size . 'x' . $this_robot_sprite_size . '" src="' . $this_robot_sprite_path . '?' . MMRPG_CONFIG_CACHE_DATE . '" alt="' . $this_robot_name . ' Mug" /></span>'; } else { $this_robot_sprite_html = '<span class="mug"></span>'; } $this_robot_title_html = '<span class="label">' . $this_robot_title_html . '</span>'; //$this_robot_title_html = (is_numeric($this_level) && $this_level > 1 ? 'Lv '.str_pad($this_level, 2, '0', STR_PAD_LEFT).' : ' : $this_level.' : ').$this_robot_title_html; if ($robot_method != $this_robot_method) { if ($this_robot_method == 'level' && $ability_info['ability_token'] == 'buster-shot') { continue; } $temp_separator = '<div class="robot_separator">' . $this_robot_method_text . '</div>'; $temp_string[] = $temp_separator; $robot_method = $this_robot_method; $robot_method_key++; // Print out the disclaimer if a global ability if (in_array($ability_info['ability_token'], $temp_global_abilities)) { $temp_string[] = '<div class="" style="margin: 10px auto; text-align: center; color: #767676; font-size: 11px;">' . $ability_info['ability_name'] . ' can be equipped by <em>any</em> robot master!</div>'; } } // If this is a global ability, don't bother showing EVERY compatible robot if ($this_robot_method == 'level' && $ability_info['ability_token'] == 'buster-shot' || $this_robot_method != 'level' && in_array($ability_info['ability_token'], $temp_global_abilities)) { continue; } if ($this_level >= 0) { //title="'.$this_robot_title_plain.'" $temp_markup = '<a href="' . MMRPG_CONFIG_ROOTURL . 'database/robots/' . $this_robot['robot_token'] . '/" class="robot_name robot_type robot_type_' . (!empty($this_robot['robot_core']) ? $this_robot['robot_core'] . (!empty($this_robot['robot_core2']) ? '_' . $this_robot['robot_core2'] : '') : 'none') . '" style="' . ($this_robot_image == 'robot' ? 'opacity: 0.3; ' : '') . '">'; $temp_markup .= '<span class="chrome">' . $this_robot_sprite_html . $this_robot_title_html . '</span>'; $temp_markup .= '</a>'; $temp_string[] = $temp_markup; $robot_key++; continue; } } echo implode(' ', $temp_string); } else { echo '<span class="robot_ability robot_type_none"><span class="chrome">Neutral</span></span>'; } ?> </div> </td> </tr> </tbody> </table> </div> <?php } ?> <?php if ($print_options['show_footer'] && $print_options['layout_style'] == 'website') { ?> <a class="link link_top" data-href="#top" rel="nofollow">^ Top</a> <a class="link link_permalink permalink" href="<?php echo preg_match('/^item-/', $ability_info['ability_token']) ? 'database/items/' . preg_replace('/^item-/i', '', $ability_info['ability_token']) . '/' : 'database/abilities/' . $ability_info['ability_token'] . '/'; ?> " rel="permalink">+ Permalink</a> <?php } elseif ($print_options['show_footer'] && $print_options['layout_style'] == 'website_compact') { ?> <a class="link link_top" data-href="#top" rel="nofollow">^ Top</a> <a class="link link_permalink permalink" href="<?php echo preg_match('/^item-/', $ability_info['ability_token']) ? 'database/items/' . preg_replace('/^item-/i', '', $ability_info['ability_token']) . '/' : 'database/abilities/' . $ability_info['ability_token'] . '/'; ?> " rel="permalink">+ View More</a> <?php } ?> </div> </div> <?php // Collect the outbut buffer contents $this_markup = trim(ob_get_clean()); // Return the generated markup return $this_markup; }
public static function formatting_decode($string) { // Define the static formatting array variable static $mmrpg_formatting_array = array(); static $mmrpg_types_array_string = ''; // If the formatting array has not been populated, do so if (empty($mmrpg_formatting_array)) { // Pull in global variables global $db; $mmrpg_types = rpg_type::get_index(); // Collect the types array from the index $mmrpg_types_array = array_keys($mmrpg_types); $mmrpg_types_array_string = implode('|', $mmrpg_types_array); $mmrpg_types_array_string .= '|neutral'; //die($mmrpg_types_array_string); // Collect the robot and ability index from the database $temp_robots_index = $db->get_array_list("SELECT * FROM mmrpg_index_robots WHERE robot_flag_complete = 1;", 'robot_token'); $temp_abilities_index = $db->get_array_list("SELECT * FROM mmrpg_index_abilities WHERE ability_flag_complete = 1;", 'ability_token'); // Define the array to hold the images of larger size than default $mmrpg_large_robot_images = array(); $mmrpg_large_ability_images = array(); // Loop through robots and abilities and collect tokens of large ones if (!empty($temp_robots_index)) { foreach ($temp_robots_index as $token => $info) { if ($info['robot_image_size'] == 80) { $mmrpg_large_robot_images[] = $info['robot_token']; } } } if (!empty($temp_abilities_index)) { foreach ($temp_abilities_index as $token => $info) { if ($info['ability_image_size'] == 80) { $mmrpg_large_ability_images[] = $info['ability_token']; } } } // Create strings for the large robot and ability patterns by imploding the arrays $mmrpg_large_robot_images_string = implode('|', $mmrpg_large_robot_images); $mmrpg_large_ability_images_string = implode('|', $mmrpg_large_ability_images); // Pull in the global index formatting variables $mmrpg_formatting_array = array(); $mmrpg_formatting_array += array('/\\[code\\]\\s?(.*?)\\s?\\[\\/code\\]/is' => '$1'); $mmrpg_formatting_array += array('/\\[tab\\]/i' => ' ', '/\\s{2,}[-]{5,}\\s{2,}/i' => '<hr class="line_divider line_divider_bigger" />', '/\\s?[-]{5,}\\s?/i' => '<hr class="line_divider" />', '/\\s\\|\\s/i' => ' <span class="pipe">|</span> '); $mmrpg_formatting_array += array('/\\[image\\]\\((.*?).(jpg|jpeg|gif|png|bmp)\\)/i' => '<span class="link_image_inline"><img src="$1.$2" /></span>'); $mmrpg_formatting_array += array('/\\[player\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/players/$1/mug_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$1" /></span>', '/\\[player:(left|right)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/players/$2/mug_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$2" /></span>', '/\\[player:(left|right):([a-z0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$2"><span><img src="images/sprites/players/$3/sprite_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[player:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/players/$5/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[player:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/players/$5/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[player:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px;"><span><img src="images/sprites/players/$4/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[player:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px;"><span><img src="images/sprites/players/$4/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[player:left:([a-z0-9]+):(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px;"><span><img src="images/sprites/players/$3/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[player:right:([a-z0-9]+):(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px;"><span><img src="images/sprites/players/$3/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>'); $mmrpg_formatting_array += array('/\\[robot\\]\\{(' . $mmrpg_large_robot_images_string . ')_([-_a-z0-9]+)\\}/i' => '<span data-test="1" class="sprite_image sprite_image_80x80"><img src="images/sprites/robots/$1_$2/mug_left_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$1" /></span>', '/\\[robot:(left|right)\\]\\{(' . $mmrpg_large_robot_images_string . ')_([-_a-z0-9]+)\\}/i' => '<span data-test="2" class="sprite_image sprite_image_80x80"><img src="images/sprites/robots/$2_$3/mug_$1_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$2" /></span>', '/\\[robot:(left|right):([a-z0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')_([-_a-z0-9]+)\\}/i' => '<span data-test="3" class="sprite_image sprite_image_80x80 sprite_image_80x80_$2"><span><img src="images/sprites/robots/$3_$4/sprite_$1_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="right: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5_$6/sprite_left_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="left: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5_$6/sprite_right_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="right: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4_$5/sprite_left_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="left: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4_$5/sprite_right_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="right: $2px;"><span><img src="images/sprites/robots/$3_$4/sprite_left_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="left: $2px;"><span><img src="images/sprites/robots/$3_$4/sprite_right_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot\\]\\{([-a-z0-9]+)_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/robots/$1_$2/mug_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$1" /></span>', '/\\[robot:(left|right)\\]\\{([-a-z0-9]+)_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/robots/$2_$3/mug_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$2" /></span>', '/\\[robot:(left|right):([a-z0-9]+)\\]\\{([-a-z0-9]+)_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$2"><span><img src="images/sprites/robots/$3_$4/sprite_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{([-a-z0-9]+)_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5_$6/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{([-a-z0-9]+)_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5_$6/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{([-a-z0-9]+)_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4_$5/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{([-a-z0-9]+)_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4_$5/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+)\\]\\{([-a-z0-9]+)_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px;"><span><img src="images/sprites/robots/$3_$4/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+)\\]\\{([-a-z0-9]+)_([-_a-z0-9]+)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px;"><span><img src="images/sprites/robots/$3_$4/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot\\]\\{(' . $mmrpg_large_robot_images_string . ')\\}/i' => '<span class="sprite_image sprite_image_80x80"><img src="images/sprites/robots/$1/mug_left_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$1" /></span>', '/\\[robot:(left|right)\\]\\{(' . $mmrpg_large_robot_images_string . ')\\}/i' => '<span class="sprite_image sprite_image_80x80"><img src="images/sprites/robots/$2/mug_$1_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$2" /></span>', '/\\[robot:(left|right):([a-z0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$2"><span><img src="images/sprites/robots/$3/sprite_$1_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="right: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5/sprite_left_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="left: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5/sprite_right_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="right: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4/sprite_left_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="left: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4/sprite_right_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="right: $2px;"><span><img src="images/sprites/robots/$3/sprite_left_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+)\\]\\{(' . $mmrpg_large_robot_images_string . ')\\}/i' => '<span class="sprite_image sprite_image_80x80 sprite_image_80x80_$1" style="left: $2px;"><span><img src="images/sprites/robots/$3/sprite_right_80x80.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/robots/$1/mug_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$1" /></span>', '/\\[robot:(left|right)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/robots/$2/mug_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$2" /></span>', '/\\[robot:(left|right):([a-z0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$2"><span><img src="images/sprites/robots/$3/sprite_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot:(left|right):([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$2" style="left: $3px; bottom: $4px; z-index: $5; transform: rotate($6deg);"><span><img src="images/sprites/robots/$7/sprite_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$7" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[robot:left:([a-z0-9]+):(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px;"><span><img src="images/sprites/robots/$3/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[robot:right:([a-z0-9]+):(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px;"><span><img src="images/sprites/robots/$3/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>'); $mmrpg_formatting_array += array('/\\[mecha\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/robots/$1/mug_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$1" /></span>', '/\\[mecha:(left|right)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/robots/$2/mug_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$2" /></span>', '/\\[mecha:(left|right):([a-z0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$2"><span><img src="images/sprites/robots/$3/sprite_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[mecha:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[mecha:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[mecha:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[mecha:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[mecha:left:([a-z0-9]+):(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px;"><span><img src="images/sprites/robots/$3/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[mecha:right:([a-z0-9]+):(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px;"><span><img src="images/sprites/robots/$3/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>'); $mmrpg_formatting_array += array('/\\[boss\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/robots/$1/mug_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$1" /></span>', '/\\[boss:(left|right)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/robots/$2/mug_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$2" /></span>', '/\\[boss:(left|right):([a-z0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$2"><span><img src="images/sprites/robots/$3/sprite_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[boss:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[boss:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/robots/$5/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[boss:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[boss:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px;"><span><img src="images/sprites/robots/$4/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[boss:left:([a-z0-9]+):(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px;"><span><img src="images/sprites/robots/$3/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[boss:right:([a-z0-9]+):(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px;"><span><img src="images/sprites/robots/$3/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>'); $mmrpg_formatting_array += array('/\\[ability\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/abilities/$1/mug_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$1" /></span>', '/\\[ability:(left|right)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/abilities/$2/mug_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$2" /></span>', '/\\[ability:(left|right):([a-z0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$2"><span><img src="images/sprites/abilities/$3/sprite_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[ability:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/abilities/$5/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[ability:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px; z-index: $4;"><span><img src="images/sprites/abilities/$5/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$5" /></span></span>', '/\\[ability:left:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px; bottom: $3px;"><span><img src="images/sprites/abilities/$4/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[ability:right:([a-z0-9]+):(-?[0-9]+),(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px; bottom: $3px;"><span><img src="images/sprites/abilities/$4/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$4" /></span></span>', '/\\[ability:left:([a-z0-9]+):(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="right: $2px;"><span><img src="images/sprites/abilities/$3/sprite_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>', '/\\[ability:right:([a-z0-9]+):(-?[0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$1" style="left: $2px;"><span><img src="images/sprites/abilities/$3/sprite_right_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>'); $mmrpg_formatting_array += array('/\\[item\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/abilities/item-$1/icon_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$1" /></span>', '/\\[item:(left|right)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/abilities/item-$2/icon_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$2" /></span>', '/\\[item:(left|right):([a-z0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$2"><span><img src="images/sprites/abilities/item-$3/sprite_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>'); $mmrpg_formatting_array += array('/\\[shop\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/shops/$1/icon_left_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$1" /></span>', '/\\[shop:(left|right)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40"><img src="images/sprites/shops/$2/icon_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$2" /></span>', '/\\[shop:(left|right):([a-z0-9]+)\\]\\{(.*?)\\}/i' => '<span class="sprite_image sprite_image_40x40 sprite_image_40x40_$2"><span><img src="images/sprites/shops/$3/sprite_$1_40x40.png?' . MMRPG_CONFIG_CACHE_DATE . '" alt="$3" /></span></span>'); $mmrpg_formatting_array += array('/\\[sprite\\]/i' => '<span class="sprite_image sprite_image_40x40"></span>'); $mmrpg_formatting_array += array('/\\[([^\\[\\]]+)\\]\\((.*?).(jpg|jpeg|gif|png|bmp)\\:text\\)/i' => '<a class="link_inline" href="$2.$3" target="_blank">$1</a>', '/\\[([^\\[\\]]+)\\]\\((.*?).(jpg|jpeg|gif|png|bmp)\\:image\\)/i' => '<a class="link_image_inline" href="$2.$3" target="_blank"><img src="$2.$3" alt="$1" title="$1" /></a>'); } //die('<pre>$mmrpg_formatting_array = '.print_r($mmrpg_formatting_array, true).'</pre>'); // -- REPLACE CODE BLOCKS -- // // Define the newline string $nl = "\n"; // Strip any illegal HTML from the string $string = strip_tags($string); $string = preg_replace('/\\[\\/code\\]\\[\\/code\\]/i', '[/code][/code]', $string); //$string = preg_replace('/\s+/', ' ', $string); // Loop through each find, and replace with the appropriate replacement $code_matches = array(); $has_code = preg_match_all('/\\[code\\]\\s?(.*?)\\s?\\[\\/code\\]/is', $string, $code_matches); //if ($has_code){ echo('<pre style="background-color: white; clear: both; width: 100%; white-space: normal; color: #000000; margin: 0 auto 20px;">$code_matches = '.print_r($code_matches[0], true).'</pre>'); } if ($has_code) { foreach ($code_matches[0] as $key => $match) { $string = str_replace($match, '##CODE' . $key . '##', $string); } } //if ($has_code){ echo('<pre style="background-color: white; clear: both; width: 100%; white-space: normal; color: #000000; margin: 0 auto 20px;">$string = '.print_r($string, true).'</pre>'); } // -- REPLACE STANDARD FORMATTING -- // // Replace all the other, inline formatting with its markup foreach ($mmrpg_formatting_array as $find_pattern => $replace_pattern) { $string = preg_replace($find_pattern, $replace_pattern, $string); } // Start off the count variable for later $count = 0; // Replace special types of line breaks with one single type //$string = str_replace("\r\n", "\n", $string); $string = str_replace("\r\n", "\n", $string); // -- REPLACE IMAGES -- // // Recusively replace all the size spans with their span markup do { $string = preg_replace('/\\[([^\\[\\]]+)\\]\\((.*?).(jpg|jpeg|gif|png|bmp)\\)/i', '<a class="link_image_inline" href="$2.$3" target="_blank"><img src="$2.$3" alt="$1" title="$1" /></a>', $string, -1, $count); } while ($count > 0); // -- REPLACE LINKS -- // // Recusively replace all the standard text links with their markup do { $string = preg_replace('/\\[([^\\[\\]]+)\\]\\((.*?)\\)/i', '<a class="link_inline" href="$2" target="_blank">$1</a>', $string, -1, $count); } while ($count > 0); // -- REPLACE BBCODE BLOCKS/SPANS -- // // Recusively replace all the BOLD blocks with their div markup do { $string = preg_replace('/\\[b\\](.*?)\\[\\/b\\]/is', '<strong class="bold">$1</strong>', $string, -1, $count); } while ($count > 0); // Recusively replace all the ITALIC blocks with their div markup do { $string = preg_replace('/\\[i\\](.*?)\\[\\/i\\]/is', '<em class="italic">$1</em>', $string, -1, $count); } while ($count > 0); // Recusively replace all the UNDERLINE blocks with their div markup do { $string = preg_replace('/\\[u\\](.*?)\\[\\/u\\]/is', '<span class="underline">$1</span>', $string, -1, $count); } while ($count > 0); // Recusively replace all the STRIKE blocks with their div markup do { $string = preg_replace('/\\[s\\](.*?)\\[\\/s\\]/is', '<span class="strike">$1</span>', $string, -1, $count); } while ($count > 0); // -- REPLACE TYPE/COLOR/SIZE SPANS -- // // Recusively replace all the dual type spans with their span markup do { $string = preg_replace('/\\[([^\\[\\]]+)\\]\\{(' . $mmrpg_types_array_string . ')_(' . $mmrpg_types_array_string . ')\\}/i', '<span class="type type_span type_$2_$3">$1</span>', $string, -1, $count); } while ($count > 0); // Recusively replace all the single type spans with their span markup do { $string = preg_replace('/\\[([^\\[\\]]+)\\]\\{(' . $mmrpg_types_array_string . ')\\}/i', '<span class="type type_span type_$2">$1</span>', $string, -1, $count); } while ($count > 0); // Recusively replace all the size spans with their span markup do { $string = preg_replace('/\\[([^\\[\\]]+)\\]\\{(small|medium|large)\\}/i', '<span class="size_$2">$1</span>', $string, -1, $count); } while ($count > 0); // Recusively replace all the colour(hex) spans with their span markup do { $string = preg_replace('/\\[([^\\[\\]]+)\\]\\{(#[a-f0-9]{6}|[a-z]+|rgb\\([0-9]+,[0-9]+,[0-9]+\\)|rgba\\([0-9]+,[0-9]+,[0-9]+,[.0-9]+\\)|[a-z]+)\\}/i', '<span class="colour_inline" style="color: $2;">$1</span>', $string, -1, $count); } while ($count > 0); // -- REPLACE BACKGROUND BLOCKS -- // // Replace background blocks code with relavant markup [background-name:posx,posy:width,height][/background] do { $string = preg_replace('/\\s?\\[background(?:-|=|\\:)([-_a-z0-9]+)(?:-|=|\\:)(left|right|center|[0-9]+%|[0-9]+px),(top|bottom|center|[0-9]+%|[0-9]+px)(?:-|=|\\:)([0-9]+%|[0-9]+px),([0-9]+%|[0-9]+px)\\](.*?)\\[\\/background(?:-\\1)?(?:-\\2)\\]\\s?/is', '<div class="field field_panel field_panel_background" style="background-position: $2 $3; width: $4; height: $5; background-image: url(images/sprites/fields/$1/battle-field_background_base.gif?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$6</div></div>', $string, -1, $count); } while ($count > 0); // Replace background blocks code with relavant markup [background-name:posx,posy:width][/background] do { $string = preg_replace('/\\s?\\[background(?:-|=|\\:)([-_a-z0-9]+)(?:-|=|\\:)(left|right|center|[0-9]+%|[0-9]+px),(top|bottom|center|[0-9]+%|[0-9]+px)(?:-|=|\\:)([0-9]+%|[0-9]+px)\\](.*?)\\[\\/background(?:-\\1)?(?:-\\2)\\]\\s?/is', '<div class="field field_panel field_panel_background" style="background-position: $2 $3; width: $4; background-image: url(images/sprites/fields/$1/battle-field_background_base.gif?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$5</div></div>', $string, -1, $count); } while ($count > 0); // Replace background blocks code with relavant markup [background-name:posx,posy][/background] do { $string = preg_replace('/\\s?\\[background(?:-|=|\\:)([-_a-z0-9]+)(?:-|=|\\:)(left|right|center|[0-9]+%|[0-9]+px),(top|bottom|center|[0-9]+%|[0-9]+px)\\](.*?)\\[\\/background(?:-\\1)?(?:-\\2)?\\]\\s?/is', '<div class="field field_panel field_panel_background" style="background-position: $2 $3; background-image: url(images/sprites/fields/$1/battle-field_background_base.gif?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$4</div></div>', $string, -1, $count); } while ($count > 0); // Replace background blocks code with relavant markup [background-name:posy][/background] do { $string = preg_replace('/\\s?\\[background(?:-|=|\\:)([-_a-z0-9]+)(?:-|=|\\:)(top|bottom)\\](.*?)\\[\\/background(?:-\\1)(?:-\\2)?\\]\\s?/is', '<div class="field field_panel field_panel_background" style="background-position: center $2; background-image: url(images/sprites/fields/$1/battle-field_background_base.gif?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$3</div></div>', $string, -1, $count); } while ($count > 0); // Replace background blocks code with relavant markup [background-name:posx][/background] do { $string = preg_replace('/\\s?\\[background(?:-|=|\\:)([-_a-z0-9]+)(?:-|=|\\:)(left|right|center|[0-9]+%|[0-9]+px)\\](.*?)\\[\\/background(?:-\\1)?(?:-\\2)?\\]\\s?/is', '<div class="field field_panel field_panel_background" style="background-position: $2 center; background-image: url(images/sprites/fields/$1/battle-field_background_base.gif?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$3</div></div>', $string, -1, $count); } while ($count > 0); // Replace background blocks code with relavant markup [background-name][/background] do { $string = preg_replace('/\\s?\\[background(?:-|=|\\:)([-_a-z0-9]+)\\](.*?)\\[\\/background(?:-\\1)?(?:-\\2)?\\]\\s?/is', '<div class="field field_panel field_panel_background" style="background-image: url(images/sprites/fields/$1/battle-field_background_base.gif?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$2</div></div>', $string, -1, $count); } while ($count > 0); // Replace background blocks code with relavant markup [background][/background] do { $string = preg_replace('/\\s?\\[background\\](.*?)\\[\\/background\\]\\s?/is', '<div class="field field_panel field_panel_background"><div class="wrap">$1</div></div>', $string, -1, $count); } while ($count > 0); // -- REPLACE FOREGROUND BLOCKS -- // // Replace foreground blocks code with relavant markup [foreground-name:posx,posy:width,height][/foreground] do { $string = preg_replace('/\\s?\\[foreground(?:-|=|\\:)([-_a-z0-9]+)(?:-|=|\\:)(left|right|center|[0-9]+%|[0-9]+px),(top|bottom|center|[0-9]+%|[0-9]+px)(?:-|=|\\:)([0-9]+%|[0-9]+px),([0-9]+%|[0-9]+px)\\](.*?)\\[\\/foreground(?:-\\1)?(?:-\\2)?\\]\\s?/is', '<div class="field field_panel field_panel_foreground" style="background-position: $2 $3; width: $4; height: $5; background-image: url(images/sprites/fields/$1/battle-field_foreground_base.png?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$6</div></div>', $string, -1, $count); } while ($count > 0); // Replace foreground blocks code with relavant markup [foreground-name:posx,posy:width][/foreground] do { $string = preg_replace('/\\s?\\[foreground(?:-|=|\\:)([-_a-z0-9]+)(?:-|=|\\:)(left|right|center|[0-9]+%|[0-9]+px),(top|bottom|center|[0-9]+%|[0-9]+px)(?:-|=|\\:)([0-9]+%|[0-9]+px)\\](.*?)\\[\\/foreground(?:-\\1)?(?:-\\2)?\\]\\s?/is', '<div class="field field_panel field_panel_foreground" style="background-position: $2 $3; width: $4; background-image: url(images/sprites/fields/$1/battle-field_foreground_base.png?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$5</div></div>', $string, -1, $count); } while ($count > 0); // Replace foreground blocks code with relavant markup [foreground-name:posx,posy][/foreground] do { $string = preg_replace('/\\s?\\[foreground(?:-|=|\\:)([-_a-z0-9]+)(?:-|=|\\:)(left|right|center|[0-9]+%|[0-9]+px),(top|bottom|center|[0-9]+%|[0-9]+px)\\](.*?)\\[\\/foreground(?:-\\1)?(?:-\\2)?\\]\\s?/is', '<div class="field field_panel field_panel_foreground" style="background-position: $2 $3; background-image: url(images/sprites/fields/$1/battle-field_foreground_base.png?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$4</div></div>', $string, -1, $count); } while ($count > 0); // Replace foreground blocks code with relavant markup [foreground-name:posy][/foreground] do { $string = preg_replace('/\\s?\\[foreground(?:-|=|\\:)([-_a-z0-9]+)(?:-|=|\\:)(top|bottom)\\](.*?)\\[\\/foreground(?:-\\1)?(?:-\\2)?\\]\\s?/is', '<div class="field field_panel field_panel_foreground" style="background-position: center $2; background-image: url(images/sprites/fields/$1/battle-field_foreground_base.png?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$3</div></div>', $string, -1, $count); } while ($count > 0); // Replace foreground blocks code with relavant markup [foreground-name:posx][/foreground] do { $string = preg_replace('/\\s?\\[foreground(?:-|=|\\:)([-_a-z0-9]+)(?:-|=|\\:)(left|right|center|[0-9]+%|[0-9]+px)\\](.*?)\\[\\/foreground(?:-\\1)?(?:-\\2)?\\]\\s?/is', '<div class="field field_panel field_panel_foreground" style="background-position: $2 center; background-image: url(images/sprites/fields/$1/battle-field_foreground_base.png?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$3</div></div>', $string, -1, $count); } while ($count > 0); // Replace foreground blocks code with relavant markup [foreground-name][/foreground] do { $string = preg_replace('/\\s?\\[foreground(?:-|=|\\:)([-_a-z0-9]+)\\](.*?)\\[\\/foreground(?:-\\1)?(?:-\\2)?\\]\\s?/is', '<div class="field field_panel field_panel_foreground" style="background-image: url(images/sprites/fields/$1/battle-field_foreground_base.png?' . MMRPG_CONFIG_CACHE_DATE . ');"><div class="wrap">$2</div></div>', $string, -1, $count); } while ($count > 0); // Replace foreground blocks code with relavant markup [foreground][/foreground] do { $string = preg_replace('/\\s?\\[foreground\\](.*?)\\[\\/foreground\\]\\s?/is', '<div class="field field_panel field_panel_foreground"><div class="wrap">$1</div></div>', $string, -1, $count); } while ($count > 0); // Replace float blocks code with relavant markup [layer][/layer] //do { $string = preg_replace('/\s?\[layer\](.*?)\[\/layer\]\s?/is', '<div class="layer">$1</div>', $string, -1, $count); } //while ($count > 0); // -- REPLACE LAYER WRAPPERS -- // // Replace layer wrappers code with relavant markup [layer][/layer] do { $string = preg_replace('/\\s?\\[layer(?:-|=|\\:)([0-9]+)%\\](.*?)\\[\\/layer\\]\\s?/is', '<div class="layer" style="opacity: 0.$1;">$2</div>', $string, -1, $count); } while ($count > 0); // Replace layer wrappers code with relavant markup [layer][/layer] do { $string = preg_replace('/\\s?\\[layer\\](.*?)\\[\\/layer\\]\\s?/is', '<div class="layer">$1</div>', $string, -1, $count); } while ($count > 0); // -- REPLACE TYPE BLOCKS -- // // Replace type blocks code with relavant markup [type-name:width,height][/type] do { $string = preg_replace('/\\s?\\[type(?:-|=|\\:)([_a-z]+)(?:-|=|\\:)([0-9]+%|[0-9]+px),([0-9]+%|[0-9]+px)\\](.*?)\\[\\/type(?:-\\1)?\\]\\s?/is', '<div class="type type_panel type_$1" style="width: $2; height: $3;">$4</div>', $string, -1, $count); } while ($count > 0); // Replace type blocks code with relavant markup [type-name:width][/type] do { $string = preg_replace('/\\s?\\[type(?:-|=|\\:)([_a-z]+)(?:-|=|\\:)([0-9]+%|[0-9]+px)\\](.*?)\\[\\/type(?:-\\1)?\\]\\s?/is', '<div class="type type_panel type_$1" style="width: $2;">$3</div>', $string, -1, $count); } while ($count > 0); // Replace type blocks code with relavant markup [type-name][/type] do { $string = preg_replace('/\\s?\\[type(?:-|=|\\:)([_a-z]+)\\](.*?)\\[\\/type(?:-\\1)?\\]\\s?/is', '<div class="type type_panel type_$1">$2</div>', $string, -1, $count); } while ($count > 0); // Replace type blocks code with relavant markup [type][/type] do { $string = preg_replace('/\\s?\\[type\\](.*?)\\[\\/type\\]\\s?/is', '<div class="type type_panel type_none">$1</div>', $string, -1, $count); } while ($count > 0); // -- REPLACE COLOUR BLOCKS/SPANS -- // // Replace colour blocks code with relavant markup [color-value:width,height][/color] do { $string = preg_replace('/\\s?\\[color(?:-|=|\\:)(#[a-f0-9]{6}|[a-z]+|rgb\\([0-9]+,[0-9]+,[0-9]+\\)|rgba\\([0-9]+,[0-9]+,[0-9]+,[.0-9]+\\)|[a-z]+)(?:-|=|\\:)([0-9]+%|[0-9]+px),([0-9]+%|[0-9]+px)\\](.*?)\\[\\/color(?:-\\1)?\\]\\s?/is', '<div class="colour_panel" style="color: $1; width: $2; height: $3;">$4</div>', $string, -1, $count); } while ($count > 0); // Replace colour blocks code with relavant markup [color-value:width][/color] do { $string = preg_replace('/\\s?\\[color(?:-|=|\\:)(#[a-f0-9]{6}|[a-z]+|rgb\\([0-9]+,[0-9]+,[0-9]+\\)|rgba\\([0-9]+,[0-9]+,[0-9]+,[.0-9]+\\)|[a-z]+)(?:-|=|\\:)([0-9]+%|[0-9]+px)\\](.*?)\\[\\/color(?:-\\1)?\\]\\s?/is', '<div class="colour_panel" style="color: $1; width: $2;">$3</div>', $string, -1, $count); } while ($count > 0); // Replace colour blocks code with relavant markup [color-value][/color] do { $string = preg_replace('/\\s?\\[color(?:-|=|\\:)(#[a-f0-9]{6}|[a-z]+|rgb\\([0-9]+,[0-9]+,[0-9]+\\)|rgba\\([0-9]+,[0-9]+,[0-9]+,[.0-9]+\\)|[a-z]+)\\](.*?)\\[\\/color(?:-\\1)?\\]\\s?/is', '<div class="colour_panel" style="color: $1;">$2</div>', $string, -1, $count); } while ($count > 0); // Replace colour blocks code with relavant markup [color][/color] do { $string = preg_replace('/\\s?\\[color\\](.*?)\\[\\/color\\]\\s?/is', '<div class="colour_panel" style="color: #FFFFFF;">$1</div>', $string, -1, $count); } while ($count > 0); // -- REPLACE SIZE BLOCKS -- // // Replace size blocks code with relavant markup [size-keyword:width,height][/size] do { $string = preg_replace('/\\s?\\[size(?:-|=|\\:)(small|medium|large)(?:-|=|\\:)([0-9]+%|[0-9]+px),([0-9]+%|[0-9]+px)\\](.*?)\\[\\/size(?:-\\1)?\\]\\s?/is', '<div class="size_$1" style="width: $2; height: $3;">$4</div>', $string, -1, $count); } while ($count > 0); // Replace size blocks code with relavant markup [size-keyword:width][/size] do { $string = preg_replace('/\\s?\\[size(?:-|=|\\:)(small|medium|large)(?:-|=|\\:)([0-9]+%|[0-9]+px)\\](.*?)\\[\\/size(?:-\\1)?\\]\\s?/is', '<div class="size_$1" style="width: $2;">$3</div>', $string, -1, $count); } while ($count > 0); // Replace size blocks code with relavant markup [size-keyword][/size] do { $string = preg_replace('/\\s?\\[size(?:-|=|\\:)(small|medium|large)\\](.*?)\\[\\/size(?:-\\1)?\\]\\s?/is', '<div class="size_$1">$2</div>', $string, -1, $count); } while ($count > 0); // Replace size blocks code with relavant markup [size][/size] do { $string = preg_replace('/\\s?\\[size\\](.*?)\\[\\/size\\]\\s?/is', '<div class="size_medium">$1</div>', $string, -1, $count); } while ($count > 0); // -- REPLACE ALIGN BLOCKS -- // // Replace align blocks code with relavant markup [align-direction:width,height][/align] do { $string = preg_replace('/\\s?\\[align(?:-|=)(left|right|center)(?:-|=|\\:)([0-9]+%|[0-9]+px),([0-9]+%|[0-9]+px)\\](.*?)\\[\\/align(?:-\\1)?\\]\\s?/is', '<div class="align_$1" style="width: $2; height: $3;">$4</div>', $string, -1, $count); } while ($count > 0); // Replace align blocks code with relavant markup [align-direction:width][/align] do { $string = preg_replace('/\\s?\\[align(?:-|=)(left|right|center)(?:-|=|\\:)([0-9]+%|[0-9]+px)\\](.*?)\\[\\/align(?:-\\1)?\\]\\s?/is', '<div class="align_$1" style="width: $2;">$3</div>', $string, -1, $count); } while ($count > 0); // Replace align blocks code with relavant markup [align-direction][/align] do { $string = preg_replace('/\\s?\\[align(?:-|=)(left|right|center)\\](.*?)\\[\\/align(?:-\\1)?\\]\\s?/is', '<div class="align_$1">$2</div>', $string, -1, $count); } while ($count > 0); // Replace align blocks code with relavant markup [align][/align] do { $string = preg_replace('/\\s?\\[align\\](.*?)\\[\\/align\\]\\s?/is', '<div class="align_left">$1</div>', $string, -1, $count); } while ($count > 0); // -- REPLACE FLOAT BLOCKS -- // // Replace float blocks code with relavant markup [float-direction:width,height][/float] do { $string = preg_replace('/\\s?\\[float(?:-|=|\\:)(left|right|none)(?:-|=|\\:)([0-9]+%|[0-9]+px),([0-9]+%|[0-9]+px)\\](.*?)\\[\\/float(?:-\\1)?\\]\\s?/is', '<div class="float_$1" style="width: $2; height: $3;">$4</div>', $string, -1, $count); } while ($count > 0); // Replace float blocks code with relavant markup [float-direction:width][/float] do { $string = preg_replace('/\\s?\\[float(?:-|=|\\:)(left|right|none)(?:-|=|\\:)([0-9]+%|[0-9]+px)\\](.*?)\\[\\/float(?:-\\1)?\\]\\s?/is', '<div class="float_$1" style="width: $2;">$3</div>', $string, -1, $count); } while ($count > 0); // Replace float blocks code with relavant markup [float-direction][/float] do { $string = preg_replace('/\\s?\\[float(?:-|=|\\:)(left|right|none)\\](.*?)\\[\\/float(?:-\\1)?\\]\\s?/is', '<div class="float_$1">$2</div>', $string, -1, $count); } while ($count > 0); // Replace float blocks code with relavant markup [float][/float] do { $string = preg_replace('/\\s?\\[float\\](.*?)\\[\\/float\\]\\s?/is', '<div class="float_left">$1</div>', $string, -1, $count); } while ($count > 0); // -- RE-INSERT CODE BLOCKS -- // // Loop through any code blocks and replace their contents with the original markup if ($has_code) { foreach ($code_matches[1] as $key => $match) { $string = str_replace('##CODE' . $key . '##', '<span class="code">' . $match . '</span>', $string); } } // -- REPLACE LINE BREAKS -- // // Change line breaks to actual breaks by grouping into paragraphs $string = str_replace("\n", '<br />', $string); $string = preg_replace('/<div( class="[^"]+")?( style="[^"]+")?><br \\/>/is', '<div$1$2>', $string); $string = preg_replace('/<br \\/><\\/div>/is', '</div>', $string); //$string = preg_replace('<br /><', '<', $string); $string = '<div>' . $string . '</div>'; // Return the decoded string return $string; }
/** * Get a formatted quote from this player object, optionally providing search and replace values * @return string */ public function print_quote($quote_type, $this_search = array(), $this_replace = array()) { $mmrpg_types = rpg_type::get_index(); // Define the quote text variable $quote_text = ''; // If the player is visible and has the requested quote text if ($this->get_token() != 'player' && $this->has_quote($quote_type)) { // Collect the quote text with any search/replace modifications $this_quote_text = $this->get_quote($quote_type); $this_quote_text = str_replace($this_search, $this_replace, $this_quote_text); // Collect the text colour for this player $this_type_token = str_replace('dr-', '', $this->player_token); $this_text_colour = !empty($mmrpg_types[$this_type_token]) ? $mmrpg_types[$this_type_token]['type_colour_light'] : array(200, 200, 200); foreach ($this_text_colour as $key => $val) { $this_text_colour[$key] += 20; } // Generate the quote text markup with the appropriate RGB values $quote_text = '<span style="color: rgb(' . implode(',', $this_text_colour) . ');">"<em>' . $this_quote_text . '</em>"</span>'; } return $quote_text; }
<?php // TYPES DATABASE // Define the index of types for the game $mmrpg_database_types = rpg_type::get_index(); uasort($mmrpg_database_types, function ($t1, $t2) { if ($t1['type_order'] > $t2['type_order']) { return 1; } elseif ($t1['type_order'] < $t2['type_order']) { return -1; } else { return 0; } }); $mmrpg_database_types_count = count($mmrpg_database_types); $mmrpg_database_types_count_added = 1; $mmrpg_database_types_count_actual = count($mmrpg_database_types);
'limit' => $this_search_limit ); // Sanitize the search string to prevent exploitation if (!empty($this_search_text)){ $this_search_text = trim($this_search_text); if (!is_numeric($this_search_text)){ $this_search_text = strtolower($this_search_text); $this_search_text = preg_replace('/[^-a-z0-9*@]+/i', ' ', $this_search_text); $this_search_text = trim($this_search_text); $this_search_text = preg_replace('/(\*|\s)+/', '%', $this_search_text); } } // Collect an array of elemental types $mmrpg_types = rpg_type::get_index(true); $mmrpg_types_tokens = array_keys($mmrpg_types); $mmrpg_types_tokens[] = 'neutral'; // Define different search actions for different types switch ($this_search_type){ // If this was a USER search request case 'users': { // Define a search query for finding users $this_search_query = "SELECT user_id AS id, user_name AS name, user_name_public AS name2, user_name_clean AS name3,
public static function print_database_markup($item_info, $print_options = array()) { // Define the global variables global $mmrpg_index, $this_current_uri, $this_current_url; global $mmrpg_database_items, $mmrpg_database_robots, $mmrpg_database_items, $mmrpg_database_types; global $db; // Collect global indexes for easier search $mmrpg_types = rpg_type::get_index(true); // Define the markup variable $this_markup = ''; // Define the print style defaults if (!isset($print_options['layout_style'])) { $print_options['layout_style'] = 'website'; } if ($print_options['layout_style'] == 'website') { if (!isset($print_options['show_basics'])) { $print_options['show_basics'] = true; } if (!isset($print_options['show_icon'])) { $print_options['show_icon'] = true; } if (!isset($print_options['show_sprites'])) { $print_options['show_sprites'] = true; } if (!isset($print_options['show_robots'])) { $print_options['show_robots'] = true; } if (!isset($print_options['show_records'])) { $print_options['show_records'] = true; } if (!isset($print_options['show_footer'])) { $print_options['show_footer'] = true; } if (!isset($print_options['show_key'])) { $print_options['show_key'] = false; } } elseif ($print_options['layout_style'] == 'website_compact') { if (!isset($print_options['show_basics'])) { $print_options['show_basics'] = true; } if (!isset($print_options['show_icon'])) { $print_options['show_icon'] = true; } if (!isset($print_options['show_sprites'])) { $print_options['show_sprites'] = false; } if (!isset($print_options['show_robots'])) { $print_options['show_robots'] = false; } if (!isset($print_options['show_records'])) { $print_options['show_records'] = false; } if (!isset($print_options['show_footer'])) { $print_options['show_footer'] = true; } if (!isset($print_options['show_key'])) { $print_options['show_key'] = false; } } elseif ($print_options['layout_style'] == 'event') { if (!isset($print_options['show_basics'])) { $print_options['show_basics'] = true; } if (!isset($print_options['show_icon'])) { $print_options['show_icon'] = false; } if (!isset($print_options['show_sprites'])) { $print_options['show_sprites'] = false; } if (!isset($print_options['show_robots'])) { $print_options['show_robots'] = false; } if (!isset($print_options['show_records'])) { $print_options['show_records'] = false; } if (!isset($print_options['show_footer'])) { $print_options['show_footer'] = false; } if (!isset($print_options['show_key'])) { $print_options['show_key'] = false; } } // Collect the item sprite dimensions $item_image_size = !empty($item_info['item_image_size']) ? $item_info['item_image_size'] : 40; $item_image_size_text = $item_image_size . 'x' . $item_image_size; $item_image_token = !empty($item_info['item_image']) ? $item_info['item_image'] : $item_info['item_token']; // Collect the item's type for background display $item_type_class = !empty($item_info['item_type']) ? $item_info['item_type'] : 'none'; if ($item_type_class != 'none' && !empty($item_info['item_type2'])) { $item_type_class .= '_' . $item_info['item_type2']; } elseif ($item_type_class == 'none' && !empty($item_info['item_type2'])) { $item_type_class = $item_info['item_type2']; } $item_header_types = 'item_type_' . $item_type_class . ' '; // If this is a special category of item, it's a special type if (preg_match('/^(red|blue|green|purple)-score-ball$/i', $item_info['item_token'])) { $item_info['item_type_special'] = 'bonus'; } elseif (preg_match('/^super-(pellet|capsule)$/i', $item_info['item_token'])) { $item_info['item_type_special'] = 'multi'; } // Define the sprite sheet alt and title text $item_sprite_size = $item_image_size * 2; $item_sprite_size_text = $item_sprite_size . 'x' . $item_sprite_size; $item_sprite_title = $item_info['item_name']; //$item_sprite_title = $item_info['item_number'].' '.$item_info['item_name']; //$item_sprite_title .= ' Sprite Sheet | Robot Database | Mega Man RPG World'; // Define the sprite frame index for robot images $item_sprite_frames = array('frame_01', 'frame_02', 'frame_03', 'frame_04', 'frame_05', 'frame_06', 'frame_07', 'frame_08', 'frame_09', 'frame_10'); // Limit any damage or recovery percents to 100% if (!empty($item_info['item_damage_percent']) && $item_info['item_damage'] > 100) { $item_info['item_damage'] = 100; } if (!empty($item_info['item_damage2_percent']) && $item_info['item_damage2'] > 100) { $item_info['item_damage2'] = 100; } if (!empty($item_info['item_recovery_percent']) && $item_info['item_recovery'] > 100) { $item_info['item_recovery'] = 100; } if (!empty($item_info['item_recovery2_percent']) && $item_info['item_recovery2'] > 100) { $item_info['item_recovery2'] = 100; } // Start the output buffer ob_start(); ?> <div class="database_container database_<?php echo $item_info['item_class'] == 'item' ? 'item' : 'item'; ?> _container" data-token="<?php echo $item_info['item_token']; ?> " style="<?php echo $print_options['layout_style'] == 'website_compact' ? 'margin-bottom: 2px !important;' : ''; ?> "> <?php if ($print_options['layout_style'] == 'website' || $print_options['layout_style'] == 'website_compact') { ?> <a class="anchor" id="<?php echo $item_info['item_token']; ?> "> </a> <?php } ?> <div class="subbody event event_triple event_visible" data-token="<?php echo $item_info['item_token']; ?> " style="<?php echo ($print_options['layout_style'] == 'event' ? 'margin: 0 !important; ' : '') . ($print_options['layout_style'] == 'website_compact' ? 'margin-bottom: 2px !important; ' : ''); ?> "> <?php if ($print_options['show_icon']) { ?> <div class="this_sprite sprite_left" style="height: 40px;"> <?php if ($print_options['show_icon']) { ?> <?php if ($print_options['show_key'] !== false) { ?> <div class="icon item_type <?php echo $item_header_types; ?> " style="font-size: 9px; line-height: 11px; text-align: center; margin-bottom: 2px; padding: 0 0 1px !important;"><?php echo 'No.' . $item_info['item_key']; ?> </div> <?php } ?> <?php if ($item_image_token != 'item') { ?> <div class="icon item_type <?php echo $item_header_types; ?> "><div style="background-image: url(i/i/<?php echo $item_image_token; ?> /ir<?php echo $item_image_size; ?> .png?<?php echo MMRPG_CONFIG_CACHE_DATE; ?> ); background-color: #000000; background-color: rgba(0, 0, 0, 0.6); box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); " class="sprite sprite_item sprite_40x40 sprite_40x40_icon sprite_size_<?php echo $item_image_size_text; ?> sprite_size_<?php echo $item_image_size_text; ?> _icon"><?php echo $item_info['item_name']; ?> 's Mugshot</div></div> <?php } else { ?> <div class="icon item_type <?php echo $item_header_types; ?> "><div style="background-image: none; background-color: #000000; background-color: rgba(0, 0, 0, 0.6); box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); " class="sprite sprite_item sprite_40x40 sprite_40x40_icon sprite_size_<?php echo $item_image_size_text; ?> sprite_size_<?php echo $item_image_size_text; ?> _icon">No Image</div></div> <?php } ?> <?php } ?> </div> <?php } ?> <?php if ($print_options['show_basics']) { ?> <h2 class="header header_left <?php echo $item_header_types; ?> <?php echo !$print_options['show_icon'] ? 'noicon' : ''; ?> "> <?php if ($print_options['layout_style'] == 'website_compact') { ?> <a href="<?php echo preg_match('/^item-/', $item_info['item_token']) ? 'database/items/' . preg_replace('/^item-/i', '', $item_info['item_token']) . '/' : 'database/items/' . $item_info['item_token'] . '/'; ?> "><?php echo $item_info['item_name']; ?> </a> <?php } else { ?> <?php echo $item_info['item_name']; ?> 's Data <?php } ?> <?php if (!empty($item_info['item_type_special'])) { ?> <div class="header_core item_type"><?php echo ucfirst($item_info['item_type_special']); ?> Type</div> <?php } elseif (!empty($item_info['item_type']) && !empty($item_info['item_type2'])) { ?> <div class="header_core item_type"><?php echo ucfirst($item_info['item_type']) . ' / ' . ucfirst($item_info['item_type2']); ?> Type</div> <?php } elseif (!empty($item_info['item_type'])) { ?> <div class="header_core item_type"><?php echo ucfirst($item_info['item_type']); ?> Type</div> <?php } else { ?> <div class="header_core item_type">Neutral Type</div> <?php } ?> </h2> <div class="body body_left" style="margin-right: 0; margin-bottom: 5px; padding: 2px 0; min-height: 10px; <?php echo !$print_options['show_icon'] ? 'margin-left: 0; ' : ''; echo $print_options['layout_style'] == 'event' ? 'font-size: 10px; min-height: 150px; ' : ''; ?> "> <table class="full" style="margin: 5px auto 10px;"> <colgroup> <col width="48%" /> <col width="1%" /> <col width="48%" /> </colgroup> <tbody> <tr> <td class="right"> <label style="display: block; float: left;">Name :</label> <span class="item_type item_type_"><?php echo $item_info['item_name']; ?> </span> </td> <td class="center"> </td> <td class="right"> <label style="display: block; float: left;">Type :</label> <?php if ($print_options['layout_style'] != 'event') { ?> <?php if (!empty($item_info['item_type_special'])) { echo '<a href="database/items/' . $item_info['item_type_special'] . '/" class="item_type ' . $item_header_types . '">' . ucfirst($item_info['item_type_special']) . '</a>'; } elseif (!empty($item_info['item_type'])) { $temp_string = array(); $item_type = !empty($item_info['item_type']) ? $item_info['item_type'] : 'none'; $temp_string[] = '<a href="database/items/' . $item_type . '/" class="item_type item_type_' . $item_type . '">' . $mmrpg_types[$item_type]['type_name'] . '</a>'; if (!empty($item_info['item_type2'])) { $item_type2 = !empty($item_info['item_type2']) ? $item_info['item_type2'] : 'none'; $temp_string[] = '<a href="database/items/' . $item_type2 . '/" class="item_type item_type_' . $item_type2 . '">' . $mmrpg_types[$item_type2]['type_name'] . '</a>'; } echo implode(' ', $temp_string); } else { echo '<a href="database/items/none/" class="item_type item_type_none">Neutral</a>'; } ?> <?php } else { ?> <?php if (!empty($item_info['item_type_special'])) { echo '<span class="item_type ' . $item_header_types . '">' . ucfirst($item_info['item_type_special']) . '</span>'; } elseif (!empty($item_info['item_type'])) { $temp_string = array(); $item_type = !empty($item_info['item_type']) ? $item_info['item_type'] : 'none'; $temp_string[] = '<span class="item_type item_type_' . $item_type . '">' . $mmrpg_types[$item_type]['type_name'] . '</span>'; if (!empty($item_info['item_type2'])) { $item_type2 = !empty($item_info['item_type2']) ? $item_info['item_type2'] : 'none'; $temp_string[] = '<span class="item_type item_type_' . $item_type2 . '">' . $mmrpg_types[$item_type2]['type_name'] . '</span>'; } echo implode(' ', $temp_string); } else { echo '<span class="item_type item_type_none">Neutral</span>'; } ?> <?php } ?> </td> </tr> <tr> <td class="right"> <label style="display: block; float: left;">Power :</label> <?php if (!empty($item_info['item_damage']) || !empty($item_info['item_recovery'])) { ?> <?php if (!empty($item_info['item_damage'])) { ?> <span class="item_stat"><?php echo number_format($item_info['item_damage'], 0, '.', ',') . (!empty($item_info['item_damage_percent']) ? '%' : ''); ?> Damage</span><?php } ?> <?php if (!empty($item_info['item_recovery'])) { ?> <span class="item_stat"><?php echo number_format($item_info['item_recovery'], 0, '.', ',') . (!empty($item_info['item_recovery_percent']) ? '%' : ''); ?> Recovery</span><?php } ?> <?php } elseif (!empty($item_info['item_damage2']) || !empty($item_info['item_recovery2'])) { ?> <?php if (!empty($item_info['item_damage2'])) { ?> <span class="item_stat"><?php echo number_format($item_info['item_damage2'], 0, '.', ',') . (!empty($item_info['item_damage2_percent']) ? '%' : ''); ?> </span><?php } ?> <?php if (!empty($item_info['item_recovery2'])) { ?> <span class="item_stat"><?php echo number_format($item_info['item_recovery2'], 0, '.', ',') . (!empty($item_info['item_recovery2_percent']) ? '%' : ''); ?> </span><?php } ?> <?php } else { ?> <span class="item_stat">-</span> <?php } ?> </td> <td class="center"> </td> <td class="right"> <label style="display: block; float: left;">Value :</label> <?php if (!empty($item_info['item_price'])) { ?> <span class="item_stat"><?php echo number_format($item_info['item_price'], 0, '.', ',') . 'z'; ?> </span> <?php } else { ?> <span class="item_stat">-</span> <?php } ?> </td> </tr> </tbody> </table> <table class="full" style="margin: 5px auto 10px;"> <colgroup> <col width="100%" /> </colgroup> <tbody> <tr> <td class="right"> <?php if ($print_options['layout_style'] != 'event') { ?> <label style="display: block; float: left;">Description :</label> <?php } ?> <div class="description_container" style="white-space: normal; text-align: left; <?php echo $print_options['layout_style'] == 'event' ? 'font-size: 12px; ' : ''; ?> "><?php // Define the search/replace pairs for the description $temp_find = array('{DAMAGE}', '{RECOVERY}', '{DAMAGE2}', '{RECOVERY2}', '{}'); $temp_replace = array(!empty($item_info['item_damage']) ? number_format($item_info['item_damage'], 0, '.', ',') : 0, !empty($item_info['item_recovery']) ? number_format($item_info['item_recovery'], 0, '.', ',') : 0, !empty($item_info['item_damage2']) ? number_format($item_info['item_damage2'], 0, '.', ',') : 0, !empty($item_info['item_recovery2']) ? number_format($item_info['item_recovery2'], 0, '.', ',') : 0, ''); echo !empty($item_info['item_description']) ? str_replace($temp_find, $temp_replace, $item_info['item_description']) : '…'; ?> </div> </td> </tr> </tbody> </table> </div> <?php } ?> <?php if ($print_options['show_sprites'] && (!isset($item_info['item_image_sheets']) || $item_info['item_image_sheets'] !== 0) && $item_image_token != 'item') { ?> <?php // Start the output buffer and prepare to collect sprites ob_start(); // Define the alts we'll be looping through for this item $temp_alts_array = array(); $temp_alts_array[] = array('token' => '', 'name' => $item_info['item_name'], 'summons' => 0); // Append predefined alts automatically, based on the item image alt array if (!empty($item_info['item_image_alts'])) { $temp_alts_array = array_merge($temp_alts_array, $item_info['item_image_alts']); } elseif ($item_info['item_type'] == 'copy' && preg_match('/^(mega-man|proto-man|bass)$/i', $item_info['item_token'])) { foreach ($mmrpg_database_types as $type_token => $type_info) { if (empty($type_token) || $type_token == 'none' || $type_token == 'copy') { continue; } $temp_alts_array[] = array('token' => $type_token, 'name' => $item_info['item_name'] . ' (' . ucfirst($type_token) . ' Core)', 'summons' => 0); } } elseif (!empty($item_info['item_image_sheets'])) { for ($i = 2; $i <= $item_info['item_image_sheets']; $i++) { $temp_alts_array[] = array('sheet' => $i, 'name' => $item_info['item_name'] . ' (Sheet #' . $i . ')', 'summons' => 0); } } // Loop through the alts and display images for them (yay!) foreach ($temp_alts_array as $alt_key => $alt_info) { // Define the current image token with alt in mind $temp_item_image_token = $item_image_token; $temp_item_image_token .= !empty($alt_info['token']) ? '_' . $alt_info['token'] : ''; $temp_item_image_token .= !empty($alt_info['sheet']) ? '-' . $alt_info['sheet'] : ''; $temp_item_image_name = $alt_info['name']; // Update the alt array with this info $temp_alts_array[$alt_key]['image'] = $temp_item_image_token; // Collect the number of sheets $temp_sheet_number = !empty($item_info['item_image_sheets']) ? $item_info['item_image_sheets'] : 1; // Loop through the different frames and print out the sprite sheets foreach (array('right', 'left') as $temp_direction) { $temp_direction2 = substr($temp_direction, 0, 1); $temp_embed = '[item:' . $temp_direction . ']{' . $temp_item_image_token . '}'; $temp_title = $temp_item_image_name . ' | Icon Sprite ' . ucfirst($temp_direction); $temp_title .= '<div style="margin-top: 4px; letting-spacing: 1px; font-size: 90%; font-family: Courier New; color: rgb(159, 150, 172);">' . $temp_embed . '</div>'; $temp_title = htmlentities($temp_title, ENT_QUOTES, 'UTF-8', true); $temp_label = 'Icon ' . ucfirst(substr($temp_direction, 0, 1)); echo '<div class="frame_container" data-clickcopy="' . $temp_embed . '" data-direction="' . $temp_direction . '" data-image="' . $temp_item_image_token . '" data-frame="icon" style="padding-top: 20px; float: left; position: relative; margin: 0; box-shadow: inset 1px 1px 5px rgba(0, 0, 0, 0.75); width: ' . $item_sprite_size . 'px; height: ' . $item_sprite_size . 'px; overflow: hidden;">'; echo '<img style="margin-left: 0;" data-tooltip="' . $temp_title . '" src="i/i/' . $temp_item_image_token . '/i' . $temp_direction2 . $item_sprite_size . '.png?' . MMRPG_CONFIG_CACHE_DATE . '" />'; echo '<label style="position: absolute; left: 5px; top: 0; color: #EFEFEF; font-size: 10px; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);">' . $temp_label . '</label>'; echo '</div>'; } // Loop through the different frames and print out the sprite sheets foreach ($item_sprite_frames as $this_key => $this_frame) { $margin_left = ceil((0 - $this_key) * $item_sprite_size); $frame_relative = $this_frame; //if ($temp_sheet > 1){ $frame_relative = 'frame_'.str_pad((($temp_sheet - 1) * count($item_sprite_frames) + $this_key + 1), 2, '0', STR_PAD_LEFT); } $frame_relative_text = ucfirst(str_replace('_', ' ', $frame_relative)); foreach (array('right', 'left') as $temp_direction) { $temp_direction2 = substr($temp_direction, 0, 1); $temp_embed = '[item:' . $temp_direction . ':' . $frame_relative . ']{' . $temp_item_image_token . '}'; $temp_title = $temp_item_image_name . ' | ' . $frame_relative_text . ' Sprite ' . ucfirst($temp_direction); $temp_title .= '<div style="margin-top: 4px; letting-spacing: 1px; font-size: 90%; font-family: Courier New; color: rgb(159, 150, 172);">' . $temp_embed . '</div>'; $temp_title = htmlentities($temp_title, ENT_QUOTES, 'UTF-8', true); $temp_label = $frame_relative_text . ' ' . ucfirst(substr($temp_direction, 0, 1)); //$image_token = !empty($item_info['item_image']) ? $item_info['item_image'] : $item_info['item_token']; //if ($temp_sheet > 1){ $temp_item_image_token .= '-'.$temp_sheet; } echo '<div class="frame_container" data-clickcopy="' . $temp_embed . '" data-direction="' . $temp_direction . '" data-image="' . $temp_item_image_token . '" data-frame="' . $frame_relative . '" style="padding-top: 20px; float: left; position: relative; margin: 0; box-shadow: inset 1px 1px 5px rgba(0, 0, 0, 0.75); width: ' . $item_sprite_size . 'px; height: ' . $item_sprite_size . 'px; overflow: hidden;">'; echo '<img style="margin-left: ' . $margin_left . 'px;" title="' . $temp_title . '" alt="' . $temp_title . '" src="i/i/' . $temp_item_image_token . '/s' . $temp_direction2 . $item_sprite_size . '.png?' . MMRPG_CONFIG_CACHE_DATE . '" />'; echo '<label style="position: absolute; left: 5px; top: 0; color: #EFEFEF; font-size: 10px; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);">' . $temp_label . '</label>'; echo '</div>'; } } } // Collect the sprite markup from the output buffer for later $this_sprite_markup = ob_get_clean(); ?> <h2 id="sprites" class="header header_full <?php echo $item_header_types; ?> " style="margin: 10px 0 0; text-align: left;"> <?php echo $item_info['item_name']; ?> 's Sprites <span class="header_links image_link_container"> <span class="images" style="<?php echo count($temp_alts_array) == 1 ? 'visibility: hidden;' : ''; ?> "><?php // Loop though and print links for the alts foreach ($temp_alts_array as $alt_key => $alt_info) { $alt_type = ''; $alt_style = ''; $alt_title = $alt_info['name']; if (preg_match('/^(?:[-_a-z0-9\\s]+)\\s\\(([a-z0-9]+)\\sCore\\)$/i', $alt_info['name'])) { $alt_type = strtolower(preg_replace('/^(?:[-_a-z0-9\\s]+)\\s\\(([a-z0-9]+)\\sCore\\)$/i', '$1', $alt_info['name'])); $alt_name = '•'; //ucfirst($alt_type); //substr(ucfirst($alt_type), 0, 2); $alt_type = 'item_type item_type_' . $alt_type . ' core_type '; $alt_style = 'border-color: rgba(0, 0, 0, 0.2) !important; '; } else { $alt_name = $alt_key + 1; //$alt_key == 0 ? $item_info['item_name'] : 'Alt'.($alt_key > 1 ? ' '.$alt_key : ''); //$alt_key == 0 ? $item_info['item_name'] : $item_info['item_name'].' Alt'.($alt_key > 1 ? ' '.$alt_key : ''); $alt_type = 'item_type item_type_empty '; $alt_style = 'border-color: rgba(0, 0, 0, 0.2) !important; background-color: rgba(0, 0, 0, 0.2) !important; '; //if ($item_info['item_type'] == 'copy' && $alt_key == 0){ $alt_type = 'item_type item_type_empty '; } } echo '<a href="#" data-tooltip="' . $alt_title . '" class="link link_image ' . ($alt_key == 0 ? 'link_active ' : '') . '" data-image="' . $alt_info['image'] . '">'; echo '<span class="' . $alt_type . '" style="' . $alt_style . '">' . $alt_name . '</span>'; echo '</a>'; } ?> </span> <span class="pipe" style="<?php echo count($temp_alts_array) == 1 ? 'visibility: hidden;' : ''; ?> ">|</span> <span class="directions"><?php // Loop though and print links for the alts foreach (array('right', 'left') as $temp_key => $temp_direction) { echo '<a href="#" data-tooltip="' . ucfirst($temp_direction) . ' Facing Sprites" class="link link_direction ' . ($temp_key == 0 ? 'link_active' : '') . '" data-direction="' . $temp_direction . '">'; echo '<span class="item_type item_type_empty" style="border-color: rgba(0, 0, 0, 0.2) !important; background-color: rgba(0, 0, 0, 0.2) !important; ">' . ucfirst($temp_direction) . '</span>'; echo '</a>'; } ?> </span> </span> </h2> <div id="sprites_body" class="body body_full" style="margin: 0; padding: 10px; min-height: auto;"> <div style="border: 1px solid rgba(0, 0, 0, 0.20); border-radius: 0.5em; -moz-border-radius: 0.5em; -webkit-border-radius: 0.5em; background: #4d4d4d url(images/assets/sprite-grid.gif) scroll repeat -10px -30px; overflow: hidden; padding: 10px 30px;"> <?php echo $this_sprite_markup; ?> </div> <?php // Define the editor title based on ID $temp_editor_title = 'Undefined'; if (!empty($item_info['item_image_editor'])) { if ($item_info['item_image_editor'] == 412) { $temp_editor_title = 'Adrian Marceau / Ageman20XX'; } elseif ($item_info['item_image_editor'] == 110) { $temp_editor_title = 'MetalMarioX100 / EliteP1'; } elseif ($item_info['item_image_editor'] == 18) { $temp_editor_title = 'Sean Adamson / MetalMan'; } } elseif ($item_image_token != 'item') { $temp_editor_title = 'Adrian Marceau / Ageman20XX'; } ?> <p class="text text_editor" style="text-align: center; color: #868686; font-size: 10px; line-height: 10px; margin-top: 6px;">Sprite Editing by <strong><?php echo $temp_editor_title; ?> </strong> <span style="color: #565656;"> | </span> Original Artwork by <strong>Capcom</strong></p> </div> <?php } ?> <?php if ($print_options['show_footer'] && $print_options['layout_style'] == 'website') { ?> <a class="link link_top" data-href="#top" rel="nofollow">^ Top</a> <a class="link link_permalink permalink" href="<?php echo 'database/items/' . $item_info['item_token'] . '/'; ?> " rel="permalink">+ Permalink</a> <?php } elseif ($print_options['show_footer'] && $print_options['layout_style'] == 'website_compact') { ?> <a class="link link_top" data-href="#top" rel="nofollow">^ Top</a> <a class="link link_permalink permalink" href="<?php echo 'database/items/' . $item_info['item_token'] . '/'; ?> " rel="permalink">+ View More</a> <?php } ?> </div> </div> <?php // Collect the outbut buffer contents $this_markup = trim(ob_get_clean()); // Return the generated markup return $this_markup; }
/** * Get the formatted editor title markup for this field object given field info * @param array $field_info * @return string */ public static function print_editor_title_markup($field_info) { // Collect references to global objects $db = cms_database::get_database(); // Collect references to global indexes $mmrpg_types = rpg_type::get_index(); $mmrpg_players = rpg_player::get_index(); $mmrpg_robots = rpg_robot::get_index(); // Expand the field index info $field_token = $field_info['field_token']; $field_info = rpg_field::get_index_info($field_token); if (empty($field_info) || empty($field_info)) { return false; } // Collect the field type info and expand master/mecha data $temp_field_type = !empty($field_info['field_type']) ? $mmrpg_types[$field_info['field_type']] : false; $temp_field_type2 = !empty($field_info['field_type2']) ? $mmrpg_types[$field_info['field_type2']] : false; $temp_field_master = !empty($field_info['field_master']) ? rpg_robot::parse_index_info($mmrpg_robots[$field_info['field_master']]) : false; $temp_field_mechas = !empty($field_info['field_mechas']) ? $field_info['field_mechas'] : array(); foreach ($temp_field_mechas as $key => $token) { $temp_mecha = rpg_robot::parse_index_info($mmrpg_robots[$token]); if (!empty($temp_mecha)) { $temp_field_mechas[$key] = $temp_mecha['robot_name']; } else { unset($temp_field_mechas[$key]); } } // Generate the field title markup $temp_field_title = $field_info['field_name']; if (!empty($temp_field_type)) { $temp_field_title .= ' (' . $temp_field_type['type_name'] . ' Type)'; } if (!empty($temp_field_type2)) { $temp_field_title = str_replace('Type', '/ ' . $temp_field_type2['type_name'] . ' Type', $temp_field_title); } $temp_field_title .= ' // '; if (!empty($temp_field_master)) { $temp_field_title .= 'Robot : ' . $temp_field_master['robot_name'] . ' // '; } if (!empty($temp_field_mechas)) { $temp_field_title .= 'Mecha : ' . implode(', ', array_unique($temp_field_mechas)) . ' // '; } // Return the generated markup return $temp_field_title; }