forked from devsam/core
사망, 천통시 장수를 ng_old_generals에 보관
This commit is contained in:
+4
-1
@@ -1917,6 +1917,9 @@ function updateTurntime($no) {
|
||||
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name2']}</>{$josaYi} <Y>{$general['name']}</>의 육체에서 <S>유체이탈</>합니다!";
|
||||
pushGeneralPublicRecord($alllog, $admin['year'], $admin['month']);
|
||||
} else {
|
||||
|
||||
storeOldGeneral($general['no'], $admin['year'], $admin['month']);
|
||||
|
||||
// 군주였으면 유지 이음
|
||||
if($general['level'] == 12) {
|
||||
nextRuler($general);
|
||||
@@ -2444,7 +2447,7 @@ function deleteNation($general) {
|
||||
$history[] = "<C>●</>{$admin['year']}년 {$admin['month']}월:<R><b>【멸망】</b></><D><b>{$nation['name']}</b></>{$josaUn} <R>멸망</>했습니다.";
|
||||
|
||||
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $general['nation']);
|
||||
$oldNationGenerals = $db->query('SELECT * FROM general WHERE nation=%i', $general['nation']);
|
||||
$oldNationGenerals = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $general['nation']);
|
||||
$oldNation['generals'] = $oldNationGenerals;
|
||||
|
||||
// 전 장수 재야로 // 전 장수 소속 무소속으로
|
||||
|
||||
+47
-5
@@ -688,7 +688,7 @@ function checkMerge() {
|
||||
|
||||
// 국가 백업
|
||||
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $me['nation']);
|
||||
$oldNationGenerals = $db->query('SELECT * FROM general WHERE nation=%i', $me['nation']);
|
||||
$oldNationGenerals = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $me['nation']);
|
||||
$oldNation['generals'] = $oldNationGenerals;
|
||||
|
||||
// 자금 통합, 외교제한 5년, 기술유지
|
||||
@@ -700,7 +700,7 @@ function checkMerge() {
|
||||
'nation'=>$me['nation'],
|
||||
'data'=>Json::encode($oldNation)
|
||||
]);
|
||||
|
||||
|
||||
$query = "delete from nation where nation='{$me['nation']}'";
|
||||
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
|
||||
// 아국 모든 도시들 상대국 소속으로
|
||||
@@ -818,7 +818,7 @@ function checkSurrender() {
|
||||
|
||||
// 국가 백업
|
||||
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $me['nation']);
|
||||
$oldNationGenerals = $db->query('SELECT * FROM general WHERE nation=%i', $me['nation']);
|
||||
$oldNationGenerals = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $me['nation']);
|
||||
$oldNation['generals'] = $oldNationGenerals;
|
||||
|
||||
$newGenCount = $gencount + $gencount2;
|
||||
@@ -1143,6 +1143,45 @@ function checkStatistic() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
function convForOldGeneral(array $general, int $year, int $month){
|
||||
return [
|
||||
'server_id'=>UniqueConst::$serverID,
|
||||
'general_no'=>$general['no'],
|
||||
'owner'=>$general['owner'],
|
||||
'name'=>$general['name'],
|
||||
'last_yearmonth'=>$year*100+$month,
|
||||
'turntime'=>$general['turntime'],
|
||||
'data'=>Json::encode($general)
|
||||
];
|
||||
}
|
||||
|
||||
function storeOldGeneral(int $no, int $year, int $month){
|
||||
$db = DB::db();
|
||||
$general = $db->queryFirstRow('SELECT * FROM general WHERE `no` = %i', $no);
|
||||
if(!$general){
|
||||
return;
|
||||
}
|
||||
$data = convForOldGeneral($general, $year, $month);
|
||||
$db->insertUpdate(
|
||||
'ng_old_generals',
|
||||
$data,
|
||||
$data
|
||||
);
|
||||
}
|
||||
|
||||
function storeOldGenerals(int $nation, int $year, int $month){
|
||||
$db = DB::db();
|
||||
foreach($db->query('SELECT * FROM general WHERE nation = %i',$nation) as $general){
|
||||
$data = convForOldGeneral($general, $year, $month);
|
||||
$db->insertUpdate(
|
||||
'ng_old_generals',
|
||||
$data,
|
||||
$data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function checkEmperior() {
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
@@ -1229,7 +1268,7 @@ function checkEmperior() {
|
||||
$level5 = MYDB_fetch_array($genresult);
|
||||
|
||||
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $nation['nation']);
|
||||
$oldNationGenerals = $db->query('SELECT * FROM general WHERE nation=%i', $nation['nation']);
|
||||
$oldNationGenerals = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=%i', $nation['nation']);
|
||||
$oldNation['generals'] = $oldNationGenerals;
|
||||
|
||||
$query = "select name,picture,killnum from general where nation='{$nation['nation']}' order by killnum desc limit 5"; // 오호장군
|
||||
@@ -1291,13 +1330,16 @@ function checkEmperior() {
|
||||
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $nation['nation']);
|
||||
$oldNation['generals'] = $db->query('SELECT * FROM general WHERE nation=%i', $nation['nation']);
|
||||
|
||||
storeOldGenerals(0, $admin['year'], $admin['month']);
|
||||
storeOldGenerals($nation['nation'], $admin['year'], $admin['month']);
|
||||
|
||||
$db->insert('ng_old_nations', [
|
||||
'server_id'=>UniqueConst::$serverID,
|
||||
'nation'=>$nation['nation'],
|
||||
'data'=>Json::encode($oldNation)
|
||||
]);
|
||||
|
||||
$noNationGeneral = $db->query('SELECT * FROM general WHERE nation=0');
|
||||
$noNationGeneral = $db->queryFirstColumn('SELECT `no` FROM general WHERE nation=0');
|
||||
$db->insert('ng_old_nations', [
|
||||
'server_id'=>UniqueConst::$serverID,
|
||||
'nation'=>0,
|
||||
|
||||
+4
-1
@@ -1812,7 +1812,10 @@ function ConquerCity($admin, $general, $city, $nation, $destnation) {
|
||||
// 국가 백업
|
||||
$oldNation = $db->queryFirstRow('SELECT * FROM nation WHERE nation=%i', $city['nation']);
|
||||
$oldNationGenerals = $db->query('SELECT * FROM general WHERE nation=%i', $city['nation']);
|
||||
$oldNation['generals'] = $oldNationGenerals;
|
||||
$oldNation['generals'] = array_map(function($gen){
|
||||
//다른 코드와는 다르게 공용으로 쓰므로 남겨둠
|
||||
return $gen['no'];
|
||||
}, $oldNationGenerals);
|
||||
|
||||
foreach($oldNationGenerals as $gen){
|
||||
|
||||
|
||||
@@ -410,6 +410,22 @@ CREATE TABLE IF NOT EXISTS `ng_old_nations` (
|
||||
)
|
||||
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPRESSED;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ng_old_generals` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`server_id` CHAR(20) NOT NULL,
|
||||
`general_no` INT(11) NOT NULL,
|
||||
`owner` INT(11) NULL DEFAULT NULL,
|
||||
`name` VARCHAR(32) NOT NULL,
|
||||
`last_yearmonth` INT(11) NOT NULL,
|
||||
`turntime` DATETIME NOT NULL,
|
||||
`data` MEDIUMTEXT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `by_no` (`server_id`, `general_no`),
|
||||
INDEX `by_name` (`server_id`, `name`),
|
||||
INDEX `owner` (`owner`, `server_id`)
|
||||
)
|
||||
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPRESSED;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `emperior` (
|
||||
`no` INT(6) NOT NULL AUTO_INCREMENT,
|
||||
`server_id` CHAR(20) NULL DEFAULT '',
|
||||
|
||||
Reference in New Issue
Block a user