_admin2의 query를 수정.

- 메시지 전송을 새로 만든 구현을 사용함.
- 테이블 두개 (MEMBER, SYSTEM)을 소문자로 변경
This commit is contained in:
2018-04-16 22:31:54 +09:00
parent bc3a8fefd8
commit 4b33461c70
19 changed files with 280 additions and 212 deletions
+236 -191
View File
@@ -26,281 +26,326 @@ $connect=$db->get();
switch($btn) {
case "전체 접속허용":
$query = "update general set con=0";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$db->update('general', [
'con'=>0
], true);
break;
case "전체 접속제한":
$query = "update general set con=1000";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$db->update('general', [
'con'=>1000
], true);
break;
case "블럭 해제":
$db->update('general', [
'block'=>0
], '`no` IN %li', $genlist);
DB::db()->query('update general set block=0 where no IN %li', $genlist);
break;
case "1단계 블럭":
$date = date('Y-m-d H:i:s');
$db = DB::db();
$db->query('update general set block=1,killturn=24 where no IN %li',$genlist);
//FIXME: subquery로 하는게 더 빠를 듯.
$uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist);
RootDB::db()->query('update MEMBER set block_num=block_num+1,block_date=%s where no IN %ls', $date, $uid);
$db->update('general', [
'block'=>1,
'killturn'=>24
], '`no` IN %li', $genlist);
$uid = $db->queryFirstColumn('SELECT `owner` FROM general WHERE `no` IN %li', $genlist);
RootDB::db()->update('member',[
'block_num'=>$db->sqleval('block_num+1'),
'block_date'=>$date
], 'id IN %li', $uid);
break;
case "2단계 블럭":
$date = date('Y-m-d H:i:s');
$db = DB::db();
$db->query('update general set gold=0,rice=0,block=2,killturn=24 where no IN %li',$genlist);
$db->update('general', [
'gold'=>0,
'rice'=>0,
'block'=>2,
'killturn'=>24
], '`no` IN %li', $genlist);
$uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist);
RootDB::db()->query('update MEMBER set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid);
RootDB::db()->update('member',[
'block_num'=>$db->sqleval('block_num+1'),
'block_date'=>$date
], 'id IN %li', $uid);
break;
case "3단계 블럭":
$date = date('Y-m-d H:i:s');
$db = DB::db();
$db->query('update general set gold=0,rice=0,block=3,killturn=24 where no IN %li',$genlist);
$uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist);
RootDB::db()->query('update MEMBER set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid);
$db->update('general', [
'gold'=>0,
'rice'=>0,
'block'=>3,
'killturn'=>24
], '`no` IN %li', $genlist);
$uid = $db->queryFirstColumn('SELECT `owner` from general where no IN %li', $genlist);
RootDB::db()->update('member',[
'block_num'=>$db->sqleval('block_num+1'),
'block_date'=>$date
], 'id IN %li', $uid);
break;
case "무한삭턴":
DB::db()->query('update general set killturn=8000 where no IN %li',$genlist);
$db->update('general', [
'killturn'=>8000
], '`no` IN %li', $genlist);
break;
case "강제 사망":
$date = date('Y-m-d H:i:s');
DB::db()->query('update general set turn0=0,killturn=0,turntime=%s where no IN %li',$date, $genlist);
$db->update('general', [
'turn0'=>0,
'killturn'=>0,
'turntime'=>$date,
], '`no` IN %li', $genlist);
break;
case "특기 부여":
$admin = DB::db()->queryFirstRow('select `year`, `month` from `game` where `no`=1');
list($year, $month) = $db->queryFirstList('select `year`, `month` from `game` where `no`=1');
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
$msg = "특기 부여!";
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
}
for($i=0; $i < count($genlist); $i++) {
$query = "select no,leader,power,intel from general where no='$genlist[$i]'";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$general = MYDB_fetch_array($result);
$src = MessageTarget::buildQuick($session->generalID);
$text = "특기 부여!";
$special2 = getSpecial2($general['leader'], $general['power'], $general['intel']);
foreach($db->query("SELECT `no`,leader,power,intel,dex0,dex10,dex20,dex30,dex40 FROM general WHERE `no` IN %li", $genlist) as $general){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($general['no']), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
$query = "update general set specage2=age,special2='$special2' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log[0] = "<C>●</>특기 【<b><L>".getGenSpecial($special2)."</></b>】(을)를 익혔습니다!";
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:특기 【<b><C>".getGenSpecial($special2)."</></b>】(을)를 습득");
pushGenLog($general, $log);
$specialWar = SpecialityConst::pickSpecialWar($general);
$db->update('general', [
'specage2'=>$db->sqleval('age'),
'special2'=>$specialWar
], 'no=%i', $general['no']);
$specialWarName = SpecialityConst::WAR[$specialWar][0];
pushGeneralHistory($general, "<C>●</>{$year}{$month}월:특기 【<b><C>{$specialWarName}</></b>】(을)를 습득");
pushGenLog($general, ["<C>●</>특기 【<b><L>{$specialWarName}</></b>】(을)를 익혔습니다!"]);
}
break;
case "경험치1000":
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
$msg = $btn." 지급!";
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
}
for($i=0; $i < count($genlist); $i++) {
$query = "update general set experience=experience+1000 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$src = MessageTarget::buildQuick($session->generalID);
$text = $btn." 지급!";
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
$db->update('general',[
'experience'=>$db->sqleval('experience+1000')
], '`no` IN %li', $genlist);
break;
case "공헌치1000":
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
$msg = $btn." 지급!";
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
}
for($i=0; $i < count($genlist); $i++) {
$query = "update general set dedication=dedication+1000 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$src = MessageTarget::buildQuick($session->generalID);
$text = $btn." 지급!";
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
$db->update('general',[
'dedication'=>$db->sqleval('dedication+1000')
], '`no` IN %li', $genlist);
break;
case "보숙10000":
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
$msg = "보병숙련도+10000 지급!";
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
}
for($i=0; $i < count($genlist); $i++) {
$query = "update general set dex0=dex0+10000 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$src = MessageTarget::buildQuick($session->generalID);
$text = "보병숙련도+10000 지급!";
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
$db->update('general',[
'dex0'=>$db->sqleval('dex0+10000')
], '`no` IN %li', $genlist);
break;
case "궁숙10000":
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
$msg = "궁병숙련도+10000 지급!";
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
}
for($i=0; $i < count($genlist); $i++) {
$query = "update general set dex10=dex10+10000 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$src = MessageTarget::buildQuick($session->generalID);
$text = "궁병숙련도+10000 지급!";
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
$db->update('general',[
'dex10'=>$db->sqleval('dex10+10000')
], '`no` IN %li', $genlist);
break;
case "기숙10000":
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
$msg = "기병숙련도+10000 지급!";
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
}
for($i=0; $i < count($genlist); $i++) {
$query = "update general set dex20=dex20+10000 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$src = MessageTarget::buildQuick($session->generalID);
$text = "기병숙련도+10000 지급!";
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
$db->update('general',[
'dex20'=>$db->sqleval('dex20+10000')
], '`no` IN %li', $genlist);
break;
case "귀숙10000":
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
$msg = "귀병숙련도+10000 지급!";
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
}
for($i=0; $i < count($genlist); $i++) {
$query = "update general set dex30=dex30+10000 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$src = MessageTarget::buildQuick($session->generalID);
$text = "귀병숙련도+10000 지급!";
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
$db->update('general',[
'dex30'=>$db->sqleval('dex30+10000')
], '`no` IN %li', $genlist);
break;
case "차숙10000":
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
$msg = "차병숙련도+10000 지급!";
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
}
for($i=0; $i < count($genlist); $i++) {
$query = "update general set dex40=dex40+10000 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$src = MessageTarget::buildQuick($session->generalID);
$text = "차병숙련도+10000 지급!";
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
$db->update('general',[
'dex40'=>$db->sqleval('dex40+10000')
], '`no` IN %li', $genlist);
break;
case "접속 허용":
for($i=0; $i < count($genlist); $i++) {
$query = "update general set con=0 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
$db->update('genera',[
'con'=>0
], '`no` IN %li', $genlist);
break;
case "접속 제한":
for($i=0; $i < count($genlist); $i++) {
$query = "update general set con=1000 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
$db->update('genera',[
'con'=>1000
], '`no` IN %li', $genlist);
break;
case "메세지 전달":
//TODO:새 갠메 시스템으로 변경
$date = date('Y-m-d H:i:s');
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
$text = $msg;
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
break;
case "무기지급":
$date = date('Y-m-d H:i:s');
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
if($weap == 0) { $msg = "무기 회수!"; }
else { $msg = getWeapName($weap)." 지급!"; }
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
if($weap == 0) {
$text = "무기 회수!";
}
for($i=0; $i < count($genlist); $i++) {
if($weap == 0) {
$query = "update general set weap='0' where no='$genlist[$i]'";
} else {
$query = "update general set weap='$weap' where no='$genlist[$i]' and weap<'$weap'";
}
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
else {
$text = getWeapName($weap)." 지급!";
}
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
if($weap == 0){
$db->update('general', [
'weap'=>0
], '`no` IN %li', $genlist);
}
else{
$db->update('general', [
'weap'=>$weap
], '`no` IN %li AND weap < %i', $genlist, $weap);
}
break;
case "책지급":
$date = date('Y-m-d H:i:s');
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
if($weap == 0) { $msg = "서적 회수!"; }
else { $msg = getBookName($weap)." 지급!"; }
// 상대에게 발송
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
if($weap == 0) {
$text = "책 회수!";
}
for($i=0; $i < count($genlist); $i++) {
if($weap == 0) {
$query = "update general set book='0' where no='$genlist[$i]'";
} else {
$query = "update general set book='$weap' where no='$genlist[$i]' and book<'$weap'";
}
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
else {
$text = getBookName($weap)." 지급!";
}
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
if($weap == 0){
$db->update('general', [
'book'=>0
], '`no` IN %li', $genlist);
}
else{
$db->update('general', [
'book'=>$weap
], '`no` IN %li AND book < %i', $genlist, $weap);
}
break;
case "말지급":
$date = date('Y-m-d H:i:s');
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
if($weap == 0) { $msg = "말 회수!"; }
else { $msg = getHorseName($weap)." 지급!"; }
// 상대에게 발송
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
if($weap == 0) {
$text = "말 회수!";
}
for($i=0; $i < count($genlist); $i++) {
if($weap == 0) {
$query = "update general set horse='0' where no='$genlist[$i]'";
} else {
$query = "update general set horse='$weap' where no='$genlist[$i]' and horse<'$weap'";
}
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
else {
$text = getHorseName($weap)." 지급!";
}
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
if($weap == 0){
$db->update('general', [
'horse'=>0
], '`no` IN %li', $genlist);
}
else{
$db->update('general', [
'horse'=>$weap
], '`no` IN %li AND horse < %i', $genlist, $weap);
}
break;
case "도구지급":
$date = date('Y-m-d H:i:s');
for($i=0; $i < count($genlist); $i++) {
$you = DB::db()->queryFirstRow('select `no`, `nation` from `general` where `no` = %i', $genlist[$i]);
if($weap == 0) { $msg = "특수도구 회수!"; }
else { $msg = getItemName($weap)." 지급!"; }
// 상대에게 발송
sendMessage('private', ['id'=>$generalID, 'nation_id'=>0], ['id'=>$you['no'], 'nation_id'=>$you['nation']], $msg);
if($weap == 0) {
$text = "특수도구 회수!";
}
for($i=0; $i < count($genlist); $i++) {
if($weap == 0) {
$query = "update general set item='0' where no='$genlist[$i]'";
} else {
$query = "update general set item='$weap' where no='$genlist[$i]' and item<'$weap'";
}
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
else {
$text = getItemName($weap)." 지급!";
}
foreach($genlist as $generalID){
$msg = new Message(Message::MSGTYPE_PRIVATE, $src, MessageTarget::buildQuick($generalID), $text, new DateTime(), new DateTime('9999-12-31'), []);
$msg->send(true);
}
if($weap == 0){
$db->update('general', [
'item'=>0
], '`no` IN %li', $genlist);
}
else{
$db->update('general', [
'item'=>$weap
], '`no` IN %li AND item < %i', $genlist, $weap);
}
break;
case "NPC해제":
for($i=0; $i < count($genlist); $i++) {
$query = "update general set npc=1 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
$db->update('general', [
'npc'=>1
], '`no` IN %li', $genlist);
break;
case "하야입력":
for($i=0; $i < count($genlist); $i++) {
$query = "update general set turn0='00000000000045' where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
$db->update('general', [
'turn0'=>'00000000000045'
], '`no` IN %li', $genlist);
break;
case "방랑해산":
for($i=0; $i < count($genlist); $i++) {
$query = "update general set turn0='00000000000047',turn1='00000000000056' where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
$db->update('general', [
'turn0'=>'00000000000047',
'turn1'=>'00000000000056'
], '`no` IN %li', $genlist);
break;
case "NPC설정":
for($i=0; $i < count($genlist); $i++) {
$query = "update general set npc=2 where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
}
$db->update('general', [
'npc'=>2
], '`no` IN %li', $genlist);
break;
case "00턴":
$query = "select turnterm from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
$turnterm = $db->queryFirstField('SELECT turnterm FROM game LIMIT 1');
for($i=0; $i < count($genlist); $i++) {
$turntime = getRandTurn($admin['turnterm']);
$cutTurn = cutTurn($turntime, $admin['turnterm']);
$query = "update general set turntime='$cutTurn' where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
foreach($genlist as $generalID){
$turntime = getRandTurn($turnterm);
$cutTurn = cutTurn($turntime, $turnterm);
$db->update('general', [
'turntime'=>$curTurn
], '`no` IN %li', $genlist);
}
break;
case "랜덤턴":
$query = "select turnterm from game limit 1";
$result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$admin = MYDB_fetch_array($result);
for($i=0; $i < count($genlist); $i++) {
$turntime = getRandTurn($admin['turnterm']);
$query = "update general set turntime='$turntime' where no='$genlist[$i]'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
foreach($genlist as $generalID){
$turntime = getRandTurn($turnterm);
$db->update('general', [
'turntime'=>$turntime
], '`no` IN %li', $genlist);
}
break;
}