Compare commits

...
12 Commits
15 changed files with 416 additions and 274 deletions
File diff suppressed because one or more lines are too long
+46 -10
View File
@@ -81,6 +81,42 @@ uasort($troops, function($lhs, $rhs){
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<?=WebUtil::printCSS('css/troops.css')?>
<script>
jQuery(function($){
$('#form1').submit(function(){
return false;
});
$('.submitBtn').click(function(){
var $this=$(this);
$.post({
url:'j_troop.php',
dataType:'json',
data:{
action:$this.val().replace(/\s/g, ''),
troop:$('input.troopId:checked').val(),
name:$('#troopName').val(),
gen:$('#genNo').val()
}
}).then(function(data){
console.log(data);
if(!data.result){
alert(data.reason);
location.reload();
}
location.reload();
}, function(){
alert('알 수 없는 에러가 발생했습니다.');
});
return false;
});
});
</script>
</head>
<body>
@@ -88,7 +124,7 @@ uasort($troops, function($lhs, $rhs){
<table width=1000 class='tb_layout bg0'>
<tr><td>부 대 편 성<br><?=backButton()?></td></tr>
</table>
<form name=form1 method=post action=c_troop.php>
<form id=form1 name=form1 method=post>
<table id="troop_list" class='tb_layout bg0'>
<thead>
<tr>
@@ -102,9 +138,9 @@ uasort($troops, function($lhs, $rhs){
<tfoot><tr><td colspan='5'>
<?php if(!$troops): ?>
<?php elseif($me['troop'] == 0): ?>
<input type=submit name=btn value='부 대 가 입'>
<input type=submit class='submitBtn' value='부 대 가 입'>
<?php else: ?>
<input type=submit name=btn value='부 대 탈 퇴' onclick='return confirm("정말 부대를 탈퇴하시겠습니까?")'>
<input type=submit class='submitBtn' value='부 대 탈 퇴' onclick='return confirm("정말 부대를 탈퇴하시겠습니까?")'>
<?php endif;?>
</td></tr></tfoot>
<tbody>
@@ -133,7 +169,7 @@ foreach ($troops as $troopNo=>$troop) {
<?php if ($me['troop'] == 0): ?>
<tr>
<td align=center rowspan=2><input type='radio' name='troop' value='<?=$troop['troop']?>'></td>
<td align=center rowspan=2><input type='radio' class='troopId' name='troop' value='<?=$troop['troop']?>'></td>
<td align=center><?=$troop['name']?><br>【 <?=$cityText?> 】</td>
<td height=64 class='generalIcon' style='background:no-repeat center url("<?=$troopLeader['pictureFullPath']?>");background-size:64px;'>&nbsp;</td>
<td rowspan=2 width=62><?=$genlistText?></td>
@@ -152,15 +188,15 @@ foreach ($troops as $troopNo=>$troop) {
<td rowspan=2 width=62><?=$genlistText?></td>
<td rowspan=2>
<?php if ($me['no'] == $troopLeader['no']): ?>
<select name=gen size=3 style=color:white;background-color:black;font-size:13px;width:128px;>";
<select id='genNo' name=gen size=3 style=color:white;background-color:black;font-size:13px;width:128px;>";
<?php foreach ($troop['users'] as $troopUser): ?>
<?php if ($troopUser['no'] == $me['no']) {
continue;
} ?>
<option value='<?=$troopUser['no']?>'><?=$troopUser['name']?></option>
<option value='<?=$troopUser['no']?>'><?=$troopUser['name']?></option>
<?php endforeach; ?>
</select><br>
<input type=submit name=btn value='부 대 추 방' style=width:130px;height:25px;>
<input type=submit class='submitBtn' value='부 대 추 방' style=width:130px;height:25px;>
<?php else: ?>
<?=$troopLeader['turnText']?>
<?php endif; ?>
@@ -181,11 +217,11 @@ foreach ($troops as $troopNo=>$troop) {
<table width=1000 class='tb_layout bg0'>
<tr>
<td width=80 id=bg1>부 대 명</td>
<td width=130><input type=text style=color:white;background-color:black; size=18 maxlength=9 name=name></td>
<td width=130><input id='troopName' type=text style=color:white;background-color:black; size=18 maxlength=9 name=name></td>
<?php if($me['troop'] == 0): ?>
<td><input type=submit name=btn value='부 대 창 설'></td>
<td><input type=submit class='submitBtn' value='부 대 창 설'></td>
<?php else: ?>
<td><input type=submit name=btn value='부 대 변 경'></td>
<td><input type=submit class='submitBtn' value='부 대 변 경'></td>
<?php endif; ?>
</tr>
</table>
-66
View File
@@ -1,66 +0,0 @@
<?php
namespace sammo;
include "lib.php";
include "func.php";
// $btn, $name, $troop
$btn = Util::getReq('btn');
$name = Util::getReq('name');
$gen = Util::getReq('gen', 'int');
$troop = Util::getReq('troop', 'int');
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
$userID = $session::getUserID();
$db = DB::db();
$me = $db->queryFirstRow('SELECT `no`, nation, troop FROM general WHERE `owner`=%i', $userID);
$name = trim($name);
if($btn == "부 대 창 설" && $name != "" && $me['troop'] == 0) {
$db->insert('troop',[
'name'=>$name,
'nation'=>$me['nation'],
'no'=>$me['no']
]);
$troopID = $db->insertId();
$db->update('general', [
'troop'=>$troopID
], 'no=%i',$me['no']);
} elseif($btn == "부 대 변 경" && $name != "") {
$db->update('troop', [
'name'=>$name
], 'no=%i',$me['no']);
} elseif($btn == "부 대 추 방" && $gen != 0) {
$db->update('general', [
'troop'=>0
], 'no=%i AND troop=(SELECT troop FROM troop WHERE no = %i)', $gen, $me['no']);
} elseif($btn == "부 대 가 입" && $troop != 0) {
$troopLeader = $db->queryFirstField('SELECT `no` FROM troop WHERE troop=%i', $troop);
$troopLeaderNation = $db->queryFirstField('SELECT `nation` FROM `general` WHERE `no`=%i AND `nation`=%i', $troopLeader, $me['nation']);
if($troopLeaderNation){
$db->update('general', [
'troop'=>$troop
], 'no=%i', $me['no']);
}
} elseif($btn == "부 대 탈 퇴") {
$troopLeader = $db->queryFirstField('SELECT `no` FROM troop WHERE troop=%i', $me['troop']);
//부대장일 경우
if($troopLeader == $me['no']) {
// 모두 탈퇴
$db->update('general', [
'troop'=>0
], 'troop=%i',$me['troop']);
// 부대 삭제
$db->delete('troop', 'troop=%i', $me['troop']);
} else {
$db->update('general', [
'troop'=>0
], 'no=%i', $me['no']);
}
}
header('Location:b_troop.php', true, 303);
+5 -66
View File
@@ -8,66 +8,10 @@ $session = Session::getInstance()->setReadOnly();
$db = DB::db();
?>
<!DOCTYPE html>
<html>
<head>
<title>커맨드리스트</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" />
<?=WebUtil::printJS('../e_lib/jquery-3.3.1.min.js')?>
<?=WebUtil::printJS('../e_lib/bootstrap.bundle.min.js')?>
<?=WebUtil::printJS('js/common.js')?>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
<?=WebUtil::printCSS('../d_shared/common.css')?>
<?=WebUtil::printCSS('css/common.css')?>
<script type="text/javascript">
<?php
if(!$session->isGameLoggedIn()){
echo 'window.parent.location.href = "../";';
if (!$session->isGameLoggedIn()) {
die('<script>window.location.href = "../"</script>');
}
?>
function myclock() {
lastday = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
date = document.clock.clock.value;
year = parseInt(date.substr(0, 4), 10);
month = parseInt(date.substr(5,2), 10);
day = parseInt(date.substr(8, 2), 10);
hour = parseInt(date.substr(11, 2), 10);
min = parseInt(date.substr(14, 2), 10);
sec = parseInt(date.substr(17, 2), 10);
//윤년계산
if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) { lastday[1] = 29; }
else { lastday[1] = 28; }
// if(term > 0) term--;
sec++;
if(sec >= 60) { sec = 0; min++; }
if(min >= 60) { min = 0; hour++; }
if(hour >= 24) { hour = 0; day++; }
if(day > lastday[month-1]) { month++; day = 1; }
if(month >= 13) { year++; month = 1; }
if(month < 10) { month = '0' + month; }
if(day < 10) { day = '0' + day; }
if(hour < 10) { hour = '0' + hour; }
if(min < 10) { min = '0' + min; }
if(sec < 10) { sec = '0' + sec; }
date = '' + year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + sec;
document.clock.clock.value = date;
window.setTimeout("myclock();", 1000);
}
</script>
</head>
<body OnLoad='myclock()'>
<?php
myCommandList();
function myCommandList() {
@@ -76,6 +20,7 @@ function myCommandList() {
$userID = Session::getUserID();
$date = date('Y-m-d H:i:s');
$date_precise = (new \DateTime())->format("Y-m-d H:i:s.u");
// 명령 목록
$admin = $gameStor->getValues(['year','month','turnterm','turntime','opentime']);
@@ -88,9 +33,8 @@ function myCommandList() {
$turn = getTurn($me, 2);
echo "<table width=300 height=700 class='tb_layout bg2'>
<form name=clock>
<tr>
<td colspan=4 align=center id=bg0><b>- 명령 목록 - <input value='$date' type=text name=clock size=19 style=background-color:black;color:white;border-style:none;></b></td>
<td colspan=4 align=center id=bg0><b>- 명령 목록 - <input value='$date' type=text id=clock size=19 style=background-color:black;color:white;border-style:none; data-server-time='{$date_precise}'></b></td>
</tr>";
$year = $admin['year'];
@@ -120,11 +64,6 @@ function myCommandList() {
}
echo "
</form>
</table>
";
}
?>
</body>
</html>
}
+4 -1
View File
@@ -1283,8 +1283,9 @@ function increaseRefresh($type="", $cnt=1) {
$gameStor = KVStorage::getStorage($db, 'game_env');
$gameStor->refresh = $gameStor->refresh+$cnt; //TODO: +로 증가하는 값은 별도로 분리
$isunited = $gameStor->isunited;
$opentime = $gameStor->opentime;
if($isunited != 2 && $generalID && $userGrade < 6) {
if($isunited != 2 && $generalID && $userGrade < 6 && $opentime <= TimeUtil::DatetimeNow()) {
$db->update('general', [
'lastrefresh'=>$date,
'con'=>$db->sqleval('con + %i', $cnt),
@@ -2350,6 +2351,7 @@ function uniqueItem($general, $log, $vote=0) {
if($vote == 1) { $prob = Util::round($genCnt * 0.7 / 3); } // 투표율 70%, 투표 한번에 2~3개 등장
elseif($vote == 2) { $prob = Util::round($genCnt / 10 / 2); } // 랜임시 2개(10%) 등장(200명중 20명 랜임시도?)
elseif($vote == 3) { $prob = Util::round($genCnt / 10 / 4); } // 건국시 4개(20%) 등장(200명시 20국 정도 됨)
if($prob < 3) { $prob = 3; }
//아이템 습득 상황
@@ -2380,6 +2382,7 @@ function uniqueItem($general, $log, $vote=0) {
switch($vote){
case 1: $voteTypeText = '설문상품'; break;
case 2: $voteTypeText = '랜덤임관상품'; break;
case 3: $voteTypeText = '건국상품'; break;
default: $voteTypeText = '아이템'; break;
}
+23 -31
View File
@@ -720,8 +720,11 @@ where nation='{$general['nation']}'
function command_Single($turn, $command) {
if(!$turn){
header('location:commandlist.php', true, 303);
return;
Json::die([
'result'=>true,
'nextPage'=>null,
'reason'=>'invalid turn'
]);
}
$db = DB::db();
@@ -735,7 +738,11 @@ function command_Single($turn, $command) {
}
$db->update('general', $setValues, 'owner=%i',$userID);
header('location:commandlist.php', true, 303);
Json::die([
'result'=>true,
'nextPage'=>null,
'reason'=>'success'
]);
}
function command_Chief($turn, $command) {
@@ -762,37 +769,22 @@ function command_Chief($turn, $command) {
}
function command_Other($turn, $commandtype) {
$target = "processing.php?commandtype={$commandtype}";
foreach($turn as $turnItem){
$target.="&turn[]={$turnItem}";
if(!$turn){
Json::die([
'result'=>true,
'nextPage'=>null,
'reason'=>'invalid turn'
]);
}
$target.="&".mt_rand();
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=1024" />
<script>
parent.moveProcessing(<?=$commandtype?>, <?=Json::encode($turn)?>);
</script>
</head>
<body style="background-color:black;">
</body>
</html>
<?php
$unixNow = time();
$turnArg = join('&turn[]=', $turn);
/*
<form name='form1' action='processing.php' method='post' target=_parent>
<?php foreach($turn as $turnItem): ?>
<input type='hidden' name='turn[]' value='<?=$turnItem?>'>
<?php endforeach; ?>
<input type=hidden name=commandtype value=<?=$commandtype?>>
</form>&nbsp;
<script>*/
Json::die([
'result'=>true,
'nextPage'=>"processing.php?commandtype={$commandtype}&turn[]={$turnArg}&t={$unixNow}",
'reason'=>'success'
]);
}
+26 -18
View File
@@ -1005,8 +1005,10 @@ function updateNationState() {
}
if($nationlevel > $nation['level']) {
$levelDiff = $nationlevel - $nation['level'];
$oldLevel = $nation['level'];
$nation['level'] = $nationlevel;
switch($nationlevel) {
case 7:
@@ -1030,27 +1032,33 @@ function updateNationState() {
break;
}
//유니크 아이템 하나 돌리자
$nationGenList = $db->query('SELECT no, level, belong, horse, weap, book, item FROM general WHERE nation = %i AND killturn >= %i AND npc < 2', $nation['nation'], $admin['killturn']);
$uniqueLotteryWeightList = [];
foreach(range(1, $levelDiff) as $idx){
//유니크 아이템 하나 돌리자
$targetKillTurn = $admin['killturn'];
$targetKillTurn -= 24 * 60 / $admin['turnterm'];
$nationGenList = $db->query('SELECT no, level, belong, horse, weap, book, item FROM general WHERE nation = %i AND killturn >= %i AND npc < 2', $nation['nation'], $targetKillTurn);
$uniqueLotteryWeightList = [];
foreach($nationGenList as $nationGen){
if($nationGen['horse'] > 6 || $nationGen['weap'] > 6 || $nationGen['book'] > 6 || $nationGen['item'] > 6){
continue;
foreach($nationGenList as $nationGen){
if($nationGen['horse'] > 6 || $nationGen['weap'] > 6 || $nationGen['book'] > 6 || $nationGen['item'] > 6){
continue;
}
$score = $nationGen['belong'] + 5; //임관 년도 + 5
if($nationGen['level'] == 12){
$score += 200; //NOTE: 꼬우면 군주하세요.
}
else if($nationGen['level'] == 11){
$score += 70;
}
else if($nationGen['level'] > 4){
$score += 35;
}
$uniqueLotteryWeightList[$nationGen['no']] = $score;
}
$score = $nationGen['belong'] + 5; //임관 년도 + 5
if($nationGen['level'] == 12){
$score += 200; //NOTE: 꼬우면 군주하세요.
}
else if($nationGen['level'] == 11){
$score += 100;
}
else if($nationGen['level'] > 4){
$score += 50;
}
$uniqueLotteryWeightList[$nationGen['no']] = $score;
guaranteedUniqueItemLottery($uniqueLotteryWeightList, '작위보상');
}
guaranteedUniqueItemLottery($uniqueLotteryWeightList, '작위보상');
$lastAssemblerID = $gameStor->assembler_id??0;
+2 -2
View File
@@ -46,12 +46,12 @@ function SetDevelop($genType, $no, $city, $tech) {
case 3: //지내정장
if($prob < 40) {
if($city['ag'] < 99) { $command = EncodeCommand(0, 0, 0, 1); } //농업
elseif($tech < 10000) { $command = EncodeCommand(0, 0, 0, 3); } //기술
elseif(!TechLimit($startyear, $year, $tech)) { $command = EncodeCommand(0, 0, 0, 3); } //기술
elseif($city['po'] < 99) { $command = EncodeCommand(0, 0, 0, 7); } //정장
else { $command = EncodeCommand(0, 0, 0, 9); } //조달
} elseif($prob < 80) {
if($city['co'] < 99) { $command = EncodeCommand(0, 0, 0, 2); } //상업
elseif($tech < 10000) { $command = EncodeCommand(0, 0, 0, 3); } //기술
elseif(!TechLimit($startyear, $year, $tech)) { $command = EncodeCommand(0, 0, 0, 3); } //기술
elseif($city['po'] < 99) { $command = EncodeCommand(0, 0, 0, 7); } //정장
else { $command = EncodeCommand(0, 0, 0, 9); } //조달
} elseif($prob < 90) {
+1 -1
View File
@@ -770,7 +770,7 @@ function process_46(&$general) {
$query = "update general set resturn='SUCCESS',dedication=dedication+'$ded', experience=experience+'$exp' where no='{$general['no']}'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
$log = uniqueItem($general, $log);
$log = uniqueItem($general, $log, 3);
}
pushWorldHistory($history, $admin['year'], $admin['month']);
+4 -2
View File
@@ -111,6 +111,8 @@ $(function(){
setInterval(function(){
refreshMsg();
}, 5000);
reloadCommandList();
});
</script>
<?=WebUtil::printCSS('../e_lib/bootstrap.min.css')?>
@@ -241,9 +243,9 @@ else if($session->userGrade == 4){
<td style='width:700px;height:520px;' colspan=2>
<?=getMapHtml($mapTheme)?>
</td>
<td style='width:300px;' rowspan=4><iframe seamless="seamless" name=commandlist src='commandlist.php' style='width:300px;height:700px;' frameborder=0 marginwidth=0 marginheight=0 topmargin=0 scrolling=no></iframe></td>
<td style='width:300px;' rowspan=4 id='commandlist'></td>
</tr>
<form name=form2 action=preprocessing.php method=post target=commandlist>
<form id='form2' name=form2>
<tr>
<td rowspan=3 width=50 valign=top><?=turnTable()?></td>
<td style="width:650px;border:none;text-align:center;"><?php cityInfo(); ?></td>
@@ -4,7 +4,7 @@ namespace sammo;
include "lib.php";
include "func.php";
//로그인 검사
$session = Session::requireGameLogin()->setReadOnly();
$session = Session::requireGameLogin([])->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
@@ -17,8 +17,10 @@ $commandtype = Util::getReq('commandtype', 'int');
increaseRefresh("턴입력", 1);
if(!$turn || $commandtype === null || $sel === null){
header('location:commandlist.php', true, 303);
die();
Json::die([
'result'=>true,
'reason'=>'empty command'
]);
}
$count = count($turn);
+165
View File
@@ -0,0 +1,165 @@
<?php
namespace sammo;
include "lib.php";
include "func.php";
// $btn, $name, $troop
$action = Util::getReq('action');
$name = Util::getReq('name');
$gen = Util::getReq('gen', 'int');
$troop = Util::getReq('troop', 'int');
//로그인 검사
$session = Session::requireGameLogin([])->setReadOnly();
$userID = $session::getUserID();
$db = DB::db();
$me = $db->queryFirstRow('SELECT `no`, name, nation, troop FROM general WHERE `owner`=%i', $userID);
if($action == '부대창설'){
$name = trim($name);
if(!$name){
Json::die([
'result'=>false,
'reason'=>'부대 이름이 없습니다.'
]);
}
if($me['troop'] != 0){
Json::die([
'result'=>false,
'reason'=>'이미 부대에 가입해있습니다.'
]);
}
$db->insert('troop',[
'name'=>$name,
'nation'=>$me['nation'],
'no'=>$me['no']
]);
$troopID = $db->insertId();
$db->update('general', [
'troop'=>$troopID
], 'no=%i',$me['no']);
Json::die([
'result'=>true,
'reason'=>'success'
]);
}
if($action == '부대변경'){
$name = trim($name);
if(!$name){
Json::die([
'result'=>false,
'reason'=>'부대 이름이 없습니다.'
]);
}
$db->update('troop', [
'name'=>$name
], 'no=%i',$me['no']);
if($db->affectedRows() == 0){
Json::die([
'result'=>false,
'reason'=>'부대장이 아닙니다.'
]);
}
Json::die([
'result'=>true,
'reason'=>'success'
]);
}
if($action == '부대추방'){
if (!$gen){
Json::die([
'result'=>false,
'reason'=>'장수를 지정해야 합니다.'
]);
}
$db->update('general', [
'troop'=>0
], 'no=%i AND troop=(SELECT troop FROM troop WHERE no = %i)', $gen, $me['no']);
if($db->affectedRows() == 0){
Json::die([
'result'=>false,
'reason'=>'부대장이 아니거나, 장수를 잘못 지정했습니다.'
]);
}
Json::die([
'result'=>true,
'reason'=>'success'
]);
}
if ($action == '부대가입') {
if(!$troop){
Json::die([
'result'=>false,
'reason'=>'부대를 지정해야 합니다.'
]);
}
$troopLeader = $db->queryFirstField('SELECT `no` FROM troop WHERE troop=%i', $troop)?:0;
$troopLeaderNation = $db->queryFirstField('SELECT `nation` FROM `general` WHERE `no`=%i AND `nation`=%i', $troopLeader, $me['nation']);
if (!$troopLeaderNation) {
Json::die([
'result'=>false,
'reason'=>'올바른 부대장이 아닙니다.'
]);
}
$db->update('general', [
'troop'=>$troop
], 'no=%i', $me['no']);
Json::die([
'result'=>true,
'reason'=>'success'
]);
}
if($action == "부대탈퇴") {
if($me['troop'] == 0){
Json::die([
'result'=>false,
'reason'=>'부대에 속해있지 않습니다.'
]);
}
$troopLeader = $db->queryFirstField('SELECT `no` FROM troop WHERE troop=%i', $me['troop']);
//부대장일 경우
if($troopLeader == $me['no']) {
// 모두 탈퇴
$db->update('general', [
'troop'=>0
], 'troop=%i',$me['troop']);
// 부대 삭제
$db->delete('troop', 'troop=%i', $me['troop']);
} else {
$db->update('general', [
'troop'=>0
], 'no=%i', $me['no']);
}
Json::die([
'result'=>true,
'reason'=>'success'
]);
}
Json::die([
'result'=>false,
'reason'=>'올바르지 않은 명령입니다.'
]);
+63 -1
View File
@@ -6,4 +6,66 @@ include "func.php";
$session = Session::requireGameLogin([])->setReadOnly();
$session = Session::requireGameLogin([])->setReadOnly();
$type = Util::getReq('type', 'int', 0);
$sel = Util::getReq('sel', 'int', 1);
if($sel <= 0 || $sel > 12){
$sel = 1;
}
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("턴반복", 1);
$myActionCnt = $db->queryFirstField('SELECT con FROM general WHERE `owner`=%i', $userID);
$con = checkLimit($myActionCnt);
if($con >= 2) {
Json::die([
'result'=>false,
'result'=>'접속 제한입니다.'
]);
}
switch($type) {
case 0://반복
$valueMap = [];
foreach(range($sel, GameConst::$maxTurn - 1) as $idx){
$src = $idx % $sel;
$valueMap['turn'.$idx] = $db->sqleval('%b', 'turn'.$src);
}
$db->update('general', $valueMap, 'owner=%i', $userID);
break;
case 1:
$valueMap = [];
foreach(range(GameConst::$maxTurn -1, $sel, -1) as $idx){
$src = $idx - $sel;
$valueMap['turn'.$idx] = $db->sqleval('%b', 'turn'.$src);
}
foreach(range($sel -1, 0, -1) as $idx){
$valueMap['turn'.$idx] = EncodeCommand(0, 0, 0, 0);
}
$db->update('general', $valueMap, 'owner=%i', $userID);
break;
case 2:
$valueMap = [];
foreach(range(0, GameConst::$maxTurn - $sel - 1) as $idx){
$src = $idx + $sel;
$valueMap['turn'.$idx] = $db->sqleval('%b', 'turn'.$src);
}
foreach(range(GameConst::$maxTurn - $sel, GameConst::$maxTurn - 1) as $idx){
$valueMap['turn'.$idx] = EncodeCommand(0, 0, 0, 0);
}
$db->update('general', $valueMap, 'owner=%i', $userID);
break;
}
Json::die([
'result'=>true,
'result'=>'success'
]);
+71 -8
View File
@@ -28,7 +28,7 @@ function refreshing(obj, arg1, arg2) {
switch(arg1) {
case 0: document.location.reload(); break;
case 2: turn(arg2); break;
case 3: arg2.submit(); break;
case 3: $(arg2).submit(); break;
case 4:
arg2.submit();
message.msg.value = "";
@@ -39,14 +39,48 @@ function refreshing(obj, arg1, arg2) {
return false;
}
function moveProcessing(commandtype, turn){
console.log(commandtype, turn);
$.redirect("processing.php",{ commandtype: commandtype, turn: turn}, 'post');
function turn(type) {
$.post({
url:'j_turn.php',
dataType:'json',
data:{
type:type,
sel:form2.sel.value
}
}).then(function(data){
if(!data.result){
alert(data.reason);
}
reloadCommandList();
});
}
function turn(type) {
num = form2.sel.value;
commandlist.location.replace('turn.php?type=' + type + '&sel=' + num);
function reloadCommandList(){
$.get({
url:'commandlist.php',
cache: false,
}).then(function(rdata){
$('#commandlist').html(rdata);
});
}
function myclock() {
var $clock = $('#clock');
var now_clock = moment();
if(!$clock.attr('data-time-diff')){
var base_clock = moment($clock.attr('data-server-time'));
$clock.attr('data-time-diff', base_clock.diff(now_clock));
}
var game_clock = now_clock.add(parseInt($clock.attr('data-time-diff')), 'milliseconds');
$('#clock').val(game_clock.format('YYYY-MM-DD HH:mm:ss'));
window.setTimeout(function(){
myclock();
}, 500);
}
jQuery(function($){
@@ -54,11 +88,40 @@ jQuery(function($){
var $this = $(this);
var target = $('[name="genlist"]').val();
var msg = $('#msg').val();
console.log(target, msg);
return false;
});
$('#mainBtnSubmit').click(function(){
});
$('#form2').submit(function(){
var values = $(this).serializeArray();
console.log(values);
$.post({
url:'j_preprocessing.php',
dataType:'json',
data:values
}).then(function(data){
if(!data.result){
alert(data.reason);
reloadCommandList();
return;
}
if(!data.nextPage){
reloadCommandList();
return;
}
document.location = data.nextPage;
return;
}, function(){
alert('알 수 없는 에러');
location.reload();
});
return false;
});
myclock();
});
-65
View File
@@ -1,65 +0,0 @@
<?php
namespace sammo;
include "lib.php";
include "func.php";
//로그인 검사
$type = Util::getReq('type', 'int', 0);
$sel = Util::getReq('sel', 'int', 1);
if($sel <= 0 || $sel > 12){
$sel = 1;
}
$session = Session::requireGameLogin()->setReadOnly();
$userID = Session::getUserID();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$connect=$db->get();
increaseRefresh("턴반복", 1);
$myActionCnt = $db->queryFirstField('SELECT con FROM general WHERE `owner`=%i', $userID);
$con = checkLimit($myActionCnt);
if($con >= 2) {
header('location:commandlist.php', true, 303);
exit();
}
switch($type) {
case 0://반복
$valueMap = [];
foreach(range($sel, GameConst::$maxTurn - 1) as $idx){
$src = $idx % $sel;
$valueMap['turn'.$idx] = $db->sqleval('%b', 'turn'.$src);
}
$db->update('general', $valueMap, 'owner=%i', $userID);
break;
case 1:
$valueMap = [];
foreach(range(GameConst::$maxTurn -1, $sel, -1) as $idx){
$src = $idx - $sel;
$valueMap['turn'.$idx] = $db->sqleval('%b', 'turn'.$src);
}
foreach(range($sel -1, 0, -1) as $idx){
$valueMap['turn'.$idx] = EncodeCommand(0, 0, 0, 0);
}
$db->update('general', $valueMap, 'owner=%i', $userID);
break;
case 2:
$valueMap = [];
foreach(range(0, GameConst::$maxTurn - $sel - 1) as $idx){
$src = $idx + $sel;
$valueMap['turn'.$idx] = $db->sqleval('%b', 'turn'.$src);
}
foreach(range(GameConst::$maxTurn - $sel, GameConst::$maxTurn - 1) as $idx){
$valueMap['turn'.$idx] = EncodeCommand(0, 0, 0, 0);
}
$db->update('general', $valueMap, 'owner=%i', $userID);
break;
}
header('location:commandlist.php', true, 303);