Commit 92e32fa0 authored by Nemo Ma's avatar Nemo Ma Committed by GitHub

Merge pull request #225 from amarillonmc/codex/add-game-resource-management-section-61tygb

fix(admin): correctly parse resource files and load starting-item `itmpara`
parents 0ef64d70 3cb5f5c7
...@@ -196,7 +196,11 @@ function resourcemng_read_data($res_type, $file){ ...@@ -196,7 +196,11 @@ function resourcemng_read_data($res_type, $file){
foreach($lines as $line) { foreach($lines as $line) {
$trim = trim($line); $trim = trim($line);
if($trim === '') continue; if($trim === '') continue;
if(strpos($trim, '<?') === 0) { $in_guard = true; $header .= $line."\n"; continue; } if(strpos($trim, '<?') === 0) {
$header .= $line."\n";
$in_guard = (strpos($trim, '?>') === false);
continue;
}
if($in_guard) { if($in_guard) {
$header .= $line."\n"; $header .= $line."\n";
if(strpos($trim, '?>') !== false) $in_guard = false; if(strpos($trim, '?>') !== false) $in_guard = false;
...@@ -206,8 +210,15 @@ function resourcemng_read_data($res_type, $file){ ...@@ -206,8 +210,15 @@ function resourcemng_read_data($res_type, $file){
$data_lines[] = $line; $data_lines[] = $line;
} }
$records = array(); $records = array();
$expected = count(resourcemng_columns($res_type));
foreach($data_lines as $line) { foreach($data_lines as $line) {
$records[] = array_map('trim', explode(',', $line)); $line = trim($line);
// 配置行统一以逗号结尾,先去掉末尾分隔符,保留中间 JSON/文本中的逗号
$line = preg_replace('/,\s*$/', '', $line);
$row = explode(',', $line, $expected);
$row = array_map('trim', $row);
if(count($row) < $expected) $row = array_pad($row, $expected, '');
$records[] = $row;
} }
$columns = resourcemng_columns($res_type); $columns = resourcemng_columns($res_type);
return array('header' => $header, 'records' => $records, 'columns' => $columns, 'type' => 'csv'); return array('header' => $header, 'records' => $records, 'columns' => $columns, 'type' => 'csv');
......
...@@ -117,7 +117,8 @@ if($mode == 'enter') { ...@@ -117,7 +117,8 @@ if($mode == 'enter') {
$arhe = $arae = $arfe = $arte = 0; $arhe = $arae = $arfe = $arte = 0;
$arhs = $aras = $arfs = $arts = 0; $arhs = $aras = $arfs = $arts = 0;
for ($i=0; $i<=6; $i++){$itm[$i] = $itmk[$i] = $itmsk[$i] = ''; $itme[$i] = $itms[$i] = 0;} for ($i=0; $i<=6; $i++){$itm[$i] = $itmk[$i] = $itmsk[$i] = $itmpara[$i] = ''; $itme[$i] = $itms[$i] = 0;}
$weppara = '';
$itm[1] = '面包'; $itmk[1] = 'HH'; $itme[1] = 120; $itms[1] = 15; $itm[1] = '面包'; $itmk[1] = 'HH'; $itme[1] = 120; $itms[1] = 15;
$itm[2] = '矿泉水'; $itmk[2] = 'HS'; $itme[2] = 140; $itms[2] = 15; $itm[2] = '矿泉水'; $itmk[2] = 'HS'; $itme[2] = 140; $itms[2] = 15;
//$itm[6] = '银白盒子'; $itmk[6] = 'p'; $itme[6] = 1; $itms[6] = 1; $itmsk[6] = 'ps'; //$itm[6] = '银白盒子'; $itmk[6] = 'p'; $itme[6] = 1; $itms[6] = 1; $itmsk[6] = 'ps';
...@@ -139,7 +140,9 @@ if($mode == 'enter') { ...@@ -139,7 +140,9 @@ if($mode == 'enter') {
$weplist = openfile(config('stwep',$gamecfg)); $weplist = openfile(config('stwep',$gamecfg));
do { do {
$index = rand(1,count($weplist)-1); $index = rand(1,count($weplist)-1);
list($wep,$wepk,$wepe,$weps,$wepsk) = explode(",",$weplist[$index]); $wline = rtrim($weplist[$index]);
$wline = preg_replace('/,\s*$/', '', $wline);
list($wep,$wepk,$wepe,$weps,$wepsk,$weppara) = array_pad(explode(",", $wline, 6), 6, '');
} while(!$wepk); } while(!$wepk);
$stitemlist = openfile(config('stitem',$gamecfg)); $stitemlist = openfile(config('stitem',$gamecfg));
...@@ -149,7 +152,9 @@ if($mode == 'enter') { ...@@ -149,7 +152,9 @@ if($mode == 'enter') {
} while(!$itmk[3]);*/ } while(!$itmk[3]);*/
do { do {
$index = rand(1,count($stitemlist)-1); $index = rand(1,count($stitemlist)-1);
list($itm[4],$itmk[4],$itme[4],$itms[4],$itmsk[4]) = explode(",",$stitemlist[$index]); $iline = rtrim($stitemlist[$index]);
$iline = preg_replace('/,\s*$/', '', $iline);
list($itm[4],$itmk[4],$itme[4],$itms[4],$itmsk[4],$itmpara[4]) = array_pad(explode(",", $iline, 6), 6, '');
} while(!$itmk[4] || ($itmk[3] == $itmk[4])); } while(!$itmk[4] || ($itmk[3] == $itmk[4]));
if ($name == 'Amarillo_NMC') { if ($name == 'Amarillo_NMC') {
...@@ -185,6 +190,7 @@ if($mode == 'enter') { ...@@ -185,6 +190,7 @@ if($mode == 'enter') {
{ {
${'itm'.$i} = $value; ${'itmk'.$i} = $itmk[$i]; ${'itme'.$i} = $itme[$i]; ${'itms'.$i} = $itms[$i]; ${'itm'.$i} = $value; ${'itmk'.$i} = $itmk[$i]; ${'itme'.$i} = $itme[$i]; ${'itms'.$i} = $itms[$i];
if(isset($itmsk[$i])) ${'itmsk'.$i} = $itmsk[$i]; if(isset($itmsk[$i])) ${'itmsk'.$i} = $itmsk[$i];
if(isset($itmpara[$i])) ${'itmpara'.$i} = $itmpara[$i];
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment