| 
            
            
             
              <?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>              
                       |