Merge commit 'f6eae2274f6d56403c0644829042ce4d72b80ec9' into ng_turn
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
namespace sammo;
|
||||||
|
|
||||||
|
include "lib.php";
|
||||||
|
include "func.php";
|
||||||
|
//로그인 검사
|
||||||
|
$session = Session::requireGameLogin()->setReadOnly();
|
||||||
|
|
||||||
|
if($session->userGrade < 5) {
|
||||||
|
die('권한 부족');
|
||||||
|
}
|
||||||
|
|
||||||
|
$db = DB::db();
|
||||||
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
|
||||||
|
if(!$gameStor->isunited){
|
||||||
|
die('아직 천통하지 않았습니다');
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($db->queryFirstColumn(
|
||||||
|
'SELECT no FROM general WHERE npc != 0 and age >= %i',
|
||||||
|
GameConst::$retirementYear
|
||||||
|
) as $generalNo){
|
||||||
|
CheckHall($generalNo);
|
||||||
|
}
|
||||||
+34
-22
@@ -30,6 +30,13 @@ if ($type <= 0 || $type > 15) {
|
|||||||
$type = 9;
|
$type = 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$ownerNameList = [];
|
||||||
|
if($gameStor->isunited){
|
||||||
|
foreach(RootDB::db()->queryAllLists('SELECT no, name FROM member') as [$ownerID, $ownerName]){
|
||||||
|
$ownerNameList[$ownerID] = $ownerName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
@@ -82,26 +89,26 @@ foreach (getAllNationStaticInfo() as $nation) {
|
|||||||
$nationlevel[$nation['nation']] = $nation['level'];
|
$nationlevel[$nation['nation']] = $nation['level'];
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($type) { //FIXME: $query 처리 조심.
|
|
||||||
case 1: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by nation"; break;
|
[$orderKey, $orderDesc] = [
|
||||||
case 2: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by leader desc"; break;
|
1=>['nation', false],
|
||||||
case 3: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by power desc"; break;
|
2=>['leader', true],
|
||||||
case 4: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by intel desc"; break;
|
3=>['power', true],
|
||||||
case 5: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by experience desc"; break;
|
4=>['intel', true],
|
||||||
case 6: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by dedication desc"; break;
|
5=>['experience', true],
|
||||||
case 7: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by level desc"; break;
|
6=>['dedication', true],
|
||||||
case 8: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by killturn"; break;
|
7=>['level', true],
|
||||||
default:
|
8=>['killturn', false],
|
||||||
case 9: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by connect desc"; break;
|
9=>['connect', true],
|
||||||
case 10: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by experience desc"; break;
|
10=>['experience', true],
|
||||||
case 11: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by personal"; break;
|
11=>['personal', true],
|
||||||
case 12: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by special desc"; break;
|
12=>['special', true],
|
||||||
case 13: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by special2 desc"; break;
|
13=>['special2', true],
|
||||||
case 14: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by age desc"; break;
|
14=>['age', true],
|
||||||
case 15: $query = "select no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by npc desc"; break;
|
15=>['npc', true],
|
||||||
}
|
][$type];
|
||||||
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect), "");
|
|
||||||
$gencount = MYDB_num_rows($genresult);
|
$generalList = $db->query('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect from general order by %b %l', $orderKey, $orderDesc?'desc':'');
|
||||||
|
|
||||||
echo"
|
echo"
|
||||||
<table align=center width=1000 class='tb_layout bg0'>
|
<table align=center width=1000 class='tb_layout bg0'>
|
||||||
@@ -122,8 +129,7 @@ echo"
|
|||||||
<td width=45 align=center id=bg1>삭턴</td>
|
<td width=45 align=center id=bg1>삭턴</td>
|
||||||
<td width=70 align=center id=bg1>벌점</td>
|
<td width=70 align=center id=bg1>벌점</td>
|
||||||
</tr>";
|
</tr>";
|
||||||
for ($j=0; $j < $gencount; $j++) {
|
foreach($generalList as $general){
|
||||||
$general = MYDB_fetch_array($genresult);
|
|
||||||
$nation = $nationname[$general['nation']];
|
$nation = $nationname[$general['nation']];
|
||||||
|
|
||||||
if ($general['level'] == 12) {
|
if ($general['level'] == 12) {
|
||||||
@@ -152,6 +158,8 @@ for ($j=0; $j < $gencount; $j++) {
|
|||||||
$intel = "{$general['intel']}";
|
$intel = "{$general['intel']}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ($general['npc'] >= 2) {
|
if ($general['npc'] >= 2) {
|
||||||
$name = "<font color=cyan>{$general['name']}</font>";
|
$name = "<font color=cyan>{$general['name']}</font>";
|
||||||
} elseif ($general['npc'] == 1) {
|
} elseif ($general['npc'] == 1) {
|
||||||
@@ -160,6 +168,10 @@ for ($j=0; $j < $gencount; $j++) {
|
|||||||
$name = "{$general['name']}";
|
$name = "{$general['name']}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(key_exists($general['owner'], $ownerNameList)){
|
||||||
|
$name = $name.'<br><small>('.$ownerNameList[$general['owner']].')</small>';
|
||||||
|
}
|
||||||
|
|
||||||
$general['connect'] = Util::round($general['connect'] / 10) * 10;
|
$general['connect'] = Util::round($general['connect'] / 10) * 10;
|
||||||
|
|
||||||
$imageTemp = GetImageURL($general['imgsvr']);
|
$imageTemp = GetImageURL($general['imgsvr']);
|
||||||
|
|||||||
+34
-44
@@ -14,6 +14,7 @@ $session = Session::requireGameLogin()->setReadOnly();
|
|||||||
$userID = Session::getUserID();
|
$userID = Session::getUserID();
|
||||||
|
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
$connect=$db->get();
|
$connect=$db->get();
|
||||||
|
|
||||||
increaseRefresh("세력장수", 1);
|
increaseRefresh("세력장수", 1);
|
||||||
@@ -29,6 +30,14 @@ if($me['level'] == 0) {
|
|||||||
|
|
||||||
$sel = [$type => "selected"];
|
$sel = [$type => "selected"];
|
||||||
|
|
||||||
|
$ownerNameList = [];
|
||||||
|
if($gameStor->isunited){
|
||||||
|
foreach(RootDB::db()->queryAllLists('SELECT no, name FROM member') as [$ownerID, $ownerName]){
|
||||||
|
$ownerNameList[$ownerID] = $ownerName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
@@ -74,48 +83,26 @@ $sel = [$type => "selected"];
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
$nationLevel = DB::db()->queryFirstField('select level from nation where nation = %i', $me['nation']);
|
$nationLevel = DB::db()->queryFirstField('select level from nation where nation = %i', $me['nation']);
|
||||||
$orderByText = '';//FIXME: 쿼리 재작성
|
|
||||||
switch($type) {
|
[$orderKey, $orderDesc] = [
|
||||||
case 1: $orderByText = " order by level desc"; break;
|
1=>['level', true],
|
||||||
case 2: $orderByText = " order by dedication desc"; break;
|
2=>['dedication', true],
|
||||||
case 3: $orderByText = " order by experience desc"; break;
|
3=>['experience', true],
|
||||||
case 4: $orderByText = " order by leader desc"; break;
|
4=>['leader', true],
|
||||||
case 5: $orderByText = " order by power desc"; break;
|
5=>['power', true],
|
||||||
case 6: $orderByText = " order by intel desc"; break;
|
6=>['intel', true],
|
||||||
case 7: $orderByText = " order by gold desc"; break;
|
7=>['gold', true],
|
||||||
case 8: $orderByText = " order by rice desc"; break;
|
8=>['rice', true],
|
||||||
case 9: $orderByText = " order by crew desc"; break;
|
9=>['crew', true],
|
||||||
case 10: $orderByText = " order by connect desc"; break;
|
10=>['connect', true],
|
||||||
case 11: $orderByText = " order by personal"; break;
|
11=>['personal', true],
|
||||||
case 12: $orderByText = " order by special desc"; break;
|
12=>['special', true],
|
||||||
case 13: $orderByText = " order by special2 desc"; break;
|
13=>['special2', true],
|
||||||
case 14: $orderByText = " order by belong desc"; break;
|
14=>['belong', true],
|
||||||
case 15: $orderByText = " order by npc desc"; break;
|
15=>['npc', true],
|
||||||
}
|
][$type];
|
||||||
$query =
|
|
||||||
"select
|
$generalList = $db->query('SELECT owner,no,picture,imgsvr,npc,age,nation,special,special2,personal,name,injury,leader,power,intel,experience,dedication,level,killturn,connect,gold,rice,crew,belong from general where nation = %i order by %b %l', $me['nation'], $orderKey, $orderDesc?'desc':'');
|
||||||
npc,
|
|
||||||
special,
|
|
||||||
special2,
|
|
||||||
personal,
|
|
||||||
picture,
|
|
||||||
imgsvr,
|
|
||||||
name,
|
|
||||||
level,
|
|
||||||
dedication,
|
|
||||||
experience,
|
|
||||||
injury,
|
|
||||||
leader,
|
|
||||||
power,
|
|
||||||
intel,
|
|
||||||
gold,
|
|
||||||
rice,
|
|
||||||
belong,
|
|
||||||
connect,
|
|
||||||
killturn
|
|
||||||
from general where nation='{$me['nation']}' ".$orderByText;
|
|
||||||
$genresult = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
|
||||||
$gencount = MYDB_num_rows($genresult);
|
|
||||||
|
|
||||||
echo"
|
echo"
|
||||||
<table align=center class='tb_layout bg0'>
|
<table align=center class='tb_layout bg0'>
|
||||||
@@ -136,8 +123,7 @@ echo"
|
|||||||
<td width=48 align=center id=bg1>사 관</td>
|
<td width=48 align=center id=bg1>사 관</td>
|
||||||
<td width=70 align=center id=bg1>벌점</td>
|
<td width=70 align=center id=bg1>벌점</td>
|
||||||
</tr>";
|
</tr>";
|
||||||
for($j=0; $j < $gencount; $j++) {
|
foreach($generalList as $general){
|
||||||
$general = MYDB_fetch_array($genresult);
|
|
||||||
|
|
||||||
if($general['level'] == 12) {
|
if($general['level'] == 12) {
|
||||||
$lbonus = $nationLevel * 2;
|
$lbonus = $nationLevel * 2;
|
||||||
@@ -169,6 +155,10 @@ for($j=0; $j < $gencount; $j++) {
|
|||||||
elseif($general['npc'] == 1) { $name = "<font color=skyblue>{$general['name']}</font>"; }
|
elseif($general['npc'] == 1) { $name = "<font color=skyblue>{$general['name']}</font>"; }
|
||||||
else { $name = "{$general['name']}"; }
|
else { $name = "{$general['name']}"; }
|
||||||
|
|
||||||
|
if(key_exists($general['owner'], $ownerNameList)){
|
||||||
|
$name = $name.'<br><small>('.$ownerNameList[$general['owner']].')</small>';
|
||||||
|
}
|
||||||
|
|
||||||
$imageTemp = GetImageURL($general['imgsvr']);
|
$imageTemp = GetImageURL($general['imgsvr']);
|
||||||
echo "
|
echo "
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
+1
-1
@@ -1495,7 +1495,7 @@ function CheckHall($no) {
|
|||||||
'value'=>$general[$typeName]??0,
|
'value'=>$general[$typeName]??0,
|
||||||
'aux'=>$jsonAux
|
'aux'=>$jsonAux
|
||||||
],
|
],
|
||||||
'server_id = %s AND scenario = %i AND general_no = %i AND type = %i AND value < %?',
|
'server_id = %s AND scenario = %i AND general_no = %i AND type = %i AND value < %d',
|
||||||
UniqueConst::$serverID,
|
UniqueConst::$serverID,
|
||||||
$scenarioIdx,
|
$scenarioIdx,
|
||||||
$no,
|
$no,
|
||||||
|
|||||||
@@ -309,9 +309,13 @@ function process_29(&$general) {
|
|||||||
$gen_cnt = $db->queryFirstField('SELECT count(`no`) FROM general WHERE npc <= 2 AND nation = %i', $general['nation']);
|
$gen_cnt = $db->queryFirstField('SELECT count(`no`) FROM general WHERE npc <= 2 AND nation = %i', $general['nation']);
|
||||||
$npc_cnt = $db->queryFirstField('SELECT count(`no`) FROM general WHERE 3 <= npc AND npc <= 4 AND nation = %i', $general['nation']);
|
$npc_cnt = $db->queryFirstField('SELECT count(`no`) FROM general WHERE 3 <= npc AND npc <= 4 AND nation = %i', $general['nation']);
|
||||||
|
|
||||||
|
$nation_cnt = $db->queryFirstField('SELECT count(`nation`) FROM nation WHERE `level` > 0');
|
||||||
|
|
||||||
$curr_cnt = Util::toInt($total_gen_cnt + $total_npc_cnt / 2);
|
$curr_cnt = Util::toInt($total_gen_cnt + $total_npc_cnt / 2);
|
||||||
$remain_slot = $max_gen_cnt - $curr_cnt;
|
$remain_slot = $max_gen_cnt - $curr_cnt;
|
||||||
|
|
||||||
|
$avg_cnt = $curr_cnt / $nation_cnt;
|
||||||
|
|
||||||
$found_prop_main = pow($remain_slot / $max_gen_cnt, 6);
|
$found_prop_main = pow($remain_slot / $max_gen_cnt, 6);
|
||||||
$found_prop_small = 1 / ($total_npc_cnt / 3 + 1);
|
$found_prop_small = 1 / ($total_npc_cnt / 3 + 1);
|
||||||
$found_prop_big = 1 / $max_gen_cnt;
|
$found_prop_big = 1 / $max_gen_cnt;
|
||||||
@@ -355,7 +359,7 @@ function process_29(&$general) {
|
|||||||
$name = "{$name}{$count}";
|
$name = "{$name}{$count}";
|
||||||
}
|
}
|
||||||
|
|
||||||
$join_prop = 0.3 + 0.7 * (($gen_cnt + $npc_cnt / 2) / $curr_cnt);
|
$join_prop = 0.55 * $avg_cnt / ($gen_cnt + $npc_cnt / 2);
|
||||||
|
|
||||||
if($nation['scout'] != 0 || !Util::randBool($join_prop)) {
|
if($nation['scout'] != 0 || !Util::randBool($join_prop)) {
|
||||||
$scoutType = "발견";
|
$scoutType = "발견";
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ define('STEP_LOG', true);
|
|||||||
define('PROCESS_LOG', true);
|
define('PROCESS_LOG', true);
|
||||||
|
|
||||||
ob_start();
|
ob_start();
|
||||||
session_cache_limiter('nocache');//NOTE: 캐시가 가능하도록 설정해야 할 수도 있음. 주의!
|
|
||||||
//FIXME: 이곳에서 설정하면 안될 듯 하다. 옮기자.
|
|
||||||
|
|
||||||
// 에러 메세지 출력
|
// 에러 메세지 출력
|
||||||
function Error($message='', $url="")
|
function Error($message='', $url="")
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ class WebUtil
|
|||||||
{
|
{
|
||||||
if (!headers_sent()) {
|
if (!headers_sent()) {
|
||||||
header('Expires: Wed, 01 Jan 2014 00:00:00 GMT');
|
header('Expires: Wed, 01 Jan 2014 00:00:00 GMT');
|
||||||
|
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
|
||||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||||
header('Pragma: no-cache');
|
header('Pragma: no-cache');
|
||||||
|
|||||||
Reference in New Issue
Block a user