setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("토너먼트", 1);
TurnExecutionHelper::executeAllCommand();
$query = "select no,tournament,con,turntime from general where owner='{$userID}'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$me = MYDB_fetch_array($result);
$admin = $gameStor->getValues(['tournament','phase','tnmt_msg','tnmt_type','develcost','tnmt_trig']);
$con = checkLimit($me['con']);
if ($con >= 2) {
printLimitMsg($me['turntime']);
exit();
}
switch ($admin['tnmt_type']) {
default: throw new \RuntimeException('invalid tnmt_type');
case 0: $tnmt_type = "전력전 "; $tp = "total"; $tp2 = "종합"; $tp3 = "total"; break;
case 1: $tnmt_type = "통솔전 "; $tp = "leadership"; $tp2 = "통솔"; $tp3 = "leadership"; break;
case 2: $tnmt_type = "일기토 "; $tp = "strength"; $tp2 = "무력"; $tp3 = "strength"; break;
case 3: $tnmt_type = "설전 "; $tp = "intel"; $tp2 = "지력"; $tp3 = "intel"; break;
}
?>
userGrade >= 5) {
$sel = [];
echo "
";
} elseif ($me['no'] > 0 && $me['tournament'] == 0 && $admin['tournament'] == 1) {
echo "";
} else {
echo " ";
}
$str1 = getTournament($admin['tournament']);
$str2 = getTournamentTime();
if($str2){
$str2 = ', '.$str2;
}
$str3 = getTournamentTerm();
if($str3){
$str3 = ', '.$str3;
}
?>
운영자 메세지 : =$admin['tnmt_msg']?>
=$tnmt_type?> (=$str1.$str2.$str3?>)
16강 승자전
";
$query = "select npc,name,win from tournament where grp>=60 order by grp, grp_no";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
for ($i=0; $i < 1; $i++) {
$general = MYDB_fetch_array($result) ?? [
'name'=>'',
'npc'=>0,
'win'=>0
];
if ($general['name'] == "") {
$general['name'] = "-";
}
if ($general['npc'] >= 2) {
$general['name'] = "".$general['name']." ";
} elseif ($general['npc'] == 1) {
$general['name'] = "".$general['name']." ";
}
echo "{$general['name']} ";
}
echo "
";
$query = "select npc,name,win from tournament where grp>=50 order by grp, grp_no";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
$cent = [];
for ($i=0; $i < 1; $i++) {
$cent[$i] = "";
}
$line = [];
$gen = [];
for ($i=0; $i < 2; $i++) {
//FIXME: 다시 작성. null인 경우엔 어쩌려고?
$general = MYDB_fetch_array($result) ?? [
'name'=>'',
'npc'=>0,
'win'=>0
];
if ($general['name'] == "") {
$general['name'] = "-";
}
if ($general['npc'] >= 2) {
$general['name'] = "".$general['name']." ";
} elseif ($general['npc'] == 1) {
$general['name'] = "".$general['name']." ";
}
if ($general['win'] > 0) {
$line[$i] = "";
$cent[intdiv($i, 2)] = "";
} else {
$line[$i] = "";
}
$gen[$i] = $general['name'];
}
for ($i=0; $i < 1; $i++) {
$cent[$i] = $cent[$i]."┻"." ";
$line[$i*2] = $line[$i*2]."┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"." ";
$line[$i*2+1] = $line[$i*2+1]."━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"." ";
echo " {$line[$i*2]}{$cent[$i]}{$line[$i*2+1]} ";
}
echo "
";
for ($i=0; $i < 2; $i++) {
echo "{$gen[$i]} ";
}
echo "
";
$query = "select npc,name,win from tournament where grp>=40 order by grp, grp_no";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
for ($i=0; $i < 2; $i++) {
$cent[$i] = "";
}
for ($i=0; $i < 4; $i++) {
$general = MYDB_fetch_array($result) ?? [
'name'=>'',
'npc'=>0,
'win'=>0
];
if ($general['name'] == "") {
$general['name'] = "-";
}
if ($general['npc'] >= 2) {
$general['name'] = "".$general['name']." ";
} elseif ($general['npc'] == 1) {
$general['name'] = "".$general['name']." ";
}
if ($general['win'] > 0) {
$line[$i] = "";
$cent[intdiv($i, 2)] = "";
} else {
$line[$i] = "";
}
$gen[$i] = $general['name'];
}
for ($i=0; $i < 2; $i++) {
$cent[$i] = $cent[$i]."┻"." ";
$line[$i*2] = $line[$i*2]."┏━━━━━━━━━━━━━━━━━━"." ";
$line[$i*2+1] = $line[$i*2+1]."━━━━━━━━━━━━━━━━━━┓"." ";
echo " {$line[$i*2]}{$cent[$i]}{$line[$i*2+1]} ";
}
echo "
";
for ($i=0; $i < 4; $i++) {
echo "{$gen[$i]} ";
}
echo "
";
$query = "select npc,name,win from tournament where grp>=30 order by grp, grp_no";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
for ($i=0; $i < 4; $i++) {
$cent[$i] = "";
}
for ($i=0; $i < 8; $i++) {
$general = MYDB_fetch_array($result) ?? [
'name'=>'',
'npc'=>0,
'win'=>0
];
if ($general['name'] == "") {
$general['name'] = "-";
}
if ($general['npc'] >= 2) {
$general['name'] = "".$general['name']." ";
} elseif ($general['npc'] == 1) {
$general['name'] = "".$general['name']." ";
}
if ($general['win'] > 0) {
$line[$i] = "";
$cent[intdiv($i, 2)] = "";
} else {
$line[$i] = "";
}
$gen[$i] = $general['name'];
}
for ($i=0; $i < 4; $i++) {
$cent[$i] = $cent[$i]."┻"." ";
$line[$i*2] = $line[$i*2]."┏━━━━━━━━━"." ";
$line[$i*2+1] = $line[$i*2+1]."━━━━━━━━━┓"." ";
echo " {$line[$i*2]}{$cent[$i]}{$line[$i*2+1]} ";
}
echo "
";
for ($i=0; $i < 8; $i++) {
echo "{$gen[$i]} ";
}
echo "
";
$query = "select npc,name,win from tournament where grp>=20 order by grp, grp_no";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
for ($i=0; $i < 8; $i++) {
$cent[$i] = "";
}
for ($i=0; $i < 16; $i++) {
$general = MYDB_fetch_array($result) ?? [
'name'=>'',
'npc'=>0,
'win'=>0
];
if ($general['name'] == "") {
$general['name'] = "-";
}
if ($general['npc'] >= 2) {
$general['name'] = "".$general['name']." ";
} elseif ($general['npc'] == 1) {
$general['name'] = "".$general['name']." ";
}
if ($general['win'] > 0) {
$line[$i] = "";
$cent[intdiv($i, 2)] = "";
} else {
$line[$i] = "";
}
$gen[$i] = $general['name'];
}
for ($i=0; $i < 8; $i++) {
$cent[$i] = $cent[$i]."┻"." ";
$line[$i*2] = $line[$i*2]."┏━━━━"." ";
$line[$i*2+1] = $line[$i*2+1]."━━━━┓"." ";
echo " {$line[$i*2]}{$cent[$i]}{$line[$i*2+1]} ";
}
echo "
";
for ($i=0; $i < 16; $i++) {
echo "{$gen[$i]} ";
}
echo"
";
$globalBet = $db->queryFirstList('SELECT * FROM betting WHERE general_id = 0')??[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ];
$globalBet = array_splice($globalBet, -16);
$globalBetTotal = array_sum($globalBet);
$admin = $gameStor->getValues(['tournament', 'phase']);
$bet = [];
for ($i=0; $i < 16; $i++) {
if($globalBet[$i] == 0){
$bet[$i] = '∞';
continue;
}
$bet[$i] = round($globalBetTotal / $globalBet[$i], 2);
}
echo "
";
for ($i=0; $i < 16; $i++) {
echo "{$bet[$i]} ";
}
echo "
배당률이 낮을수록 베팅된 금액이 많고 유저들이 우승후보로 많이 선택한 장수입니다.
";
if ($admin['tournament'] >= 7 || $admin['tournament'] == 0) {
printFighting($admin['tournament'], $admin['phase']);
}
echo "
조별 본선 순위
";
$num = array("一", "二", "三", "四", "五", "六", "七", "八");
for ($i=0; $i < 8; $i++) {
$grp = $i + 10;
echo "
{$num[$i]}조
순 장수 {$tp2} 경 승 무 패 점 득 ";
$query = "select npc,name,leadership,strength,intel,leadership+strength+intel as total,prmt,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$grp' order by gd desc, gl desc, seq";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
for ($k=1; $k <= 4; $k++) {
$general = MYDB_fetch_array($result);
printRow($k, $general['npc'], $general['name'], $general[$tp], $general['game'], $general['win'], $general['draw'], $general['lose'], $general['gd'], $general['gl'], $general['prmt']);
}
echo "
";
}
echo " ";
if ($admin['tournament'] == 4 || $admin['tournament'] == 5) {
printFighting($admin['tournament'], $admin['phase']);
}
echo "
조별 예선 순위
";
for ($i=0; $i < 8; $i++) {
$grp = $i;
echo "
{$num[$i]}조
순 장수 {$tp2} 경 승 무 패 점 득 ";
$query = "select npc,name,leadership,strength,intel,leadership+strength+intel as total,prmt,win+draw+lose as game,win,draw,lose,gl,win*3+draw as gd from tournament where grp='$grp' order by gd desc, gl desc, seq";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
for ($k=1; $k <= 8; $k++) {
$general = MYDB_fetch_array($result);
printRow($k, $general['npc'], $general['name'], $general[$tp], $general['game'], $general['win'], $general['draw'], $general['lose'], $general['gd'], $general['gl'], $general['prmt']);
}
echo "
";
}
if ($admin['tournament'] == 2 || $admin['tournament'] == 3) {
printFighting($admin['tournament'], $admin['phase']);
}
?>
ㆍ예선은 홈&어웨이 풀리그로 진행됩니다. (총 14경기)
ㆍ상위 4명이 본선에 진출하게 되며 조추첨을 통해 조가 배정됩니다.
ㆍ각 조1위가 시드1로 랜덤하게 조에 배정되며, 역시 각 조2위가 시드2로 랜덤하게 조에 배정됩니다.
ㆍ그후 남은 3, 4위는 완전 랜덤하게 모든 조에 랜덤하게 배정됩니다.
ㆍ본선은 개인당 3경기를 치르게 되며 승점(승3, 무1, 패0), 득실, 참가순서(시드)에 따라 순위를 매깁니다.
ㆍ각 조 1, 2위는 16강에 지정된 위치에 배정됩니다.
ㆍ16강부터는 1경기 토너먼트로 진행됩니다.
ㆍ참가비는 금20~140이며, 성적에 따라 금과 약간의 명성이 포상으로 주어집니다.
ㆍ16강자 100, 8강자 300, 4강자 600, 준우승자 1200, 우승자 2000 (220년 기준)
ㆍ즐거운 삼토!