| 
              <?php require_once('includes/library/rxdata.php');
 $folder = iconv('utf-8', 'gb2312', 'D:\\RPG\\Magic Towers\\Works\\拐弯の小街\\哀姬・梦魂燕(3)\\哀姬・梦魂燕\\Data\\');
 if (!file_exists($folder)) {
 die('文件夹不存在');
 }
 function get_map($id) {
 global $folder;
 $file = sprintf('%sMap%03d.rxdata', $folder, $id);
 if (!file_exists($file)) {
 return false;
 }
 return rxdata_load($file);
 }
 function show_dialogs($map_id, $additional_info = false) {
 global $maps;
 $map = get_map($map_id);
 if (!$map) {
 echo "该地图不存在\n";
 return;
 }
 
 echo '<h2>' . $maps[$map_id]->name . "</h2>\n";
 if ($additional_info) {
 $mapfile = get_map($map_id);
 printf('<p class="info">(ID: %d,尺寸:%dx%d,事件数:%d)</p>', $map_id, $mapfile->width, $mapfile->height, count($map->events));
 unset($mapfile);
 }
 $output = false;
 foreach ($map->events as $event) {
 foreach ($event->pages as $page) {
 $has_dialogs = false;
 foreach ($page->list as $list) {
 if ($list->code == 101 || $list->code == 401) {
 $has_dialogs = true;
 }
 }
 if (!$has_dialogs) {
 continue;
 }
 $output = true;
 
 $paragraph = '';
 $content_list = array();
 foreach ($page->list as $list) {
 if ($list->code == 101 || $list->code == 401) {
 $line = $list->parameters[0];
 $line = preg_replace('/\\\name\[([^\]]+)\]/', '<b>$1:</b>', $line);
 if (!empty($paragraph) && (substr($line, 0, 3) == '<b>' || $list->code == 101)) {
 array_push($content_list, $paragraph);
 $paragraph = '';
 }
 $line = preg_replace('/\\\p\[\d+\]/', '', $line);
 $paragraph .= $line;
 }
 }
 if (!empty($paragraph)) {
 array_push($content_list, $paragraph);
 }
 foreach ($content_list as $paragraph) {
 echo '<p>' . $paragraph . "</p>\n";
 }
 echo '<br>';
 }
 }
 if (!$output) {
 echo "<p class=\"info\">[该地图无对话内容]</p>\n<br>";
 }
 }
 $maps = rxdata_load($folder . 'MapInfos.rxdata');
 ksort($maps);
 $additional_title = '';
 if (isset($_GET['i'])) {
 $map_id = intval($_GET['i']);
 if (isset($maps[$map_id])) {
 $map_name = $maps[$map_id]->name;
 $additional_title = $map_name . ' - ';
 }
 }
 ?>
 <!doctype html>
 <html>
 <head>
 <meta charset="utf-8">
 <title><?php echo $additional_title; ?>哀姬·梦魂燕</title>
 <link href="styles/main.css" rel="stylesheet" type="text/css">
 <style>
 .info {
 color: grey;
 font-family: '楷体';
 }
 </style>
 </head>
 <body>
 <?php
 if (isset($map_id)):
 show_dialogs($map_id);
 elseif (isset($_GET['all'])):
 foreach ($maps as $id => $map) {
 show_dialogs($id, true);
 }
 else:
 ?>
 <p>[<a href="?all">查看全部对话</a>]</p>
 <table width="500" border="1" cellpadding="4">
 <tbody>
 <tr>
 <th scope="col">地图ID</th>
 <th scope="col">地图名称</th>
 <th scope="col">地图尺寸</th>
 <th scope="col">事件数量</th>
 </tr>
 <?php
 foreach ($maps as $id => $map):
 $mapfile = get_map($id);
 ?>
 <tr align="center">
 <td><?php echo $id; ?></td>
 <td align="left"><a href="?i=<?php echo $id; ?>"><?php echo $map->name; ?></a></td>
 <td><?php printf('%dx%d', $mapfile->width, $mapfile->height); ?></td>
 <td><?php echo count($mapfile->events); ?></td>
 </tr>
 <?php endforeach; ?>
 </tbody>
 </table>
 <?php endif; ?>
 </body>
 </html>
 
 |