숙련전환 커맨드 추가

This commit is contained in:
2019-06-16 04:42:43 +09:00
parent 2a61813b67
commit 7365ca7a64
5 changed files with 126 additions and 1 deletions
+2
View File
@@ -659,8 +659,10 @@ function commandTable() {
commandGroup("======= 개 인 ========");
if($me['level'] >= 1) {
addCommand("단련(자금$develcost, 군량$develcost)", 41);
addCommand("숙련전환(통솔경험, 자금$develcost, 군량$develcost)", 58);
} else {
addCommand("단련(자금$develcost, 군량$develcost)", 41, 0);
addCommand("숙련전환(통솔경험, 자금$develcost, 군량$develcost)", 58, 0);
}
addCommand("견문(자금?, 군량?, 경험치?)", 42);
if($city['trade'] > 0 || $me['special'] == 30) {
+5 -1
View File
@@ -251,7 +251,9 @@ function getTurn(array $general, $type, $font=1) {
case 57: //모반 시도
$str[$i] = "모반 시도";
break;
case 58: //숙련 전환
$str[$i] = "숙련 전환";
break;
default:
$str[$i] = "????";
break;
@@ -623,6 +625,8 @@ function processCommand($no) {
case 55: process_55($general); break; //거병
case 56: process_56($general); break; //해산
case 57: process_57($general); break; //모반 시도
case 58: process_58($general); break; //숙련 전환
}
}
}
+67
View File
@@ -2528,6 +2528,73 @@ function process_50(&$general) {
pushGenLog($general, $log);
}
function process_58(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
$log = [];
$alllog = [];
$history = [];
$date = substr($general['turntime'],11,5);
$admin = $gameStor->getValues(['year', 'month', 'develcost']);
$command = DecodeCommand($general['turn0']);
$fromDexIdx = $command[1];
$toDexIdx = $command[2];
if($general['nation'] == 0) {
$log[] = "<C>●</>{$admin['month']}월:재야입니다. 숙련 전환 실패. <1>$date</>";
} elseif($general['gold'] < $admin['develcost']) {
$log[] = "<C>●</>{$admin['month']}월:자금이 모자랍니다. 숙련 전환 실패. <1>$date</>";
} elseif($general['rice'] < $admin['develcost']) {
$log[] = "<C>●</>{$admin['month']}월:군량이 모자랍니다. 숙련 전환 실패. <1>$date</>";
} elseif($fromDexIdx < 0 || $fromDexIdx > 4 || $toDexIdx < 0 || $toDexIdx > 4){
$log[] = "<C>●</>{$admin['month']}월:올바르지 않은 병종 코드입니다. 숙련 전환 실패. <1>$date</>";
} elseif($general['dex'.($fromDexIdx*10)] == 0) {
$log[] = "<C>●</>{$admin['month']}월:전환할 병종 숙련이 없습니다. 숙련 전환 실패. <1>$date</>";
} else {
$fromOrigDex = $general['dex'.($fromDexIdx*10)];
$toOrigDex = $general['dex'.($toDexIdx*10)];
$cutDex = Util::toInt($fromOrigDex * 0.3);
$fromNewDex = $fromOrigDex - $cutDex;
$addDex = Util::toInt($cutDex * 2 / 3);
$toNewDex = $toOrigDex + $addDex;
$exp = 10;
$exp = CharExperience($exp, $general['personal']);
$fromCrewStr = GameUnitConst::allType()[$fromDexIdx];
$toCrewStr = GameUnitConst::allType()[$toDexIdx];
$josaUl = JosaUtil::pick($cutDex, '을');
$josaRo = JosaUtil::pick($addDex, '로');
$log[] = "<C>●</>{$admin['month']}월:$fromCrewStr 숙련 {$cutDex}{$josaUl} $toCrewStr 숙련 {$addDex}{$josaRo} 전환했습니다. <1>$date</>";
$general['leader2'] += 2;
$db->update('general', [
'resturn'=>'SUCCESS',
'gold'=>$db->sqleval('gold-%i', $admin['develcost']),
'rice'=>$db->sqleval('rice-%i', $admin['develcost']),
'experience'=>$db->sqleval('experience+%i',$exp),
'leader2'=>$general['leader2'],
'dex'.($fromDexIdx*10)=>$fromNewDex,
'dex'.($toDexIdx*10)=>$toNewDex,
], 'no=%i', $general['no']);
}
pushGenLog($general, $log);
}
function process_99(&$general) {
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
+1
View File
@@ -98,6 +98,7 @@ switch($commandtype) {
case 55: command_Single($turn, 55); break; //거병
case 56: command_Single($turn, 56); break; //해산
case 57: command_Single($turn, 57); break; //모반 시도
// case 58: command_Single($turn, 58); break; //숙련 전환
// case 61: command_61($turn, 61); break; //불가침
// case 62: command_62($turn, 62); break; //선포
+51
View File
@@ -95,6 +95,7 @@ switch($commandtype) {
case 55: command_Single($turn, 55); break; //거병
case 56: command_Single($turn, 56); break; //해산
case 57: command_Single($turn, 57); break; //모반 시도
case 58: command_58( $turn, 58); break; //숙련 전환
case 61: command_61($turn, 61); break; //불가침
case 62: command_62($turn, 62); break; //선포
@@ -1724,6 +1725,56 @@ function command_54($turn, $command) {
ender();
}
function command_58($turn, $command) {
$db = DB::db();
$connect=$db->get();
$userID = Session::getUserID();
starter("숙련 전환");
$dexVals = $db->queryFirstList('SELECT dex0, dex10, dex20, dex30, dex40 FROM general WHERE owner = %i', $userID);
$dexTexts = [];
foreach($dexVals as $idx => $val){
$prevDexLevel = getDexCall($val);
$newDexLevel = getDexCall(Util::toInt($val * 0.7));
$addDex = Util::toInt(($val - $val * 0.7) * 0.5);
$dexTexts[$idx] = "$prevDexLevel ⇒ $newDexLevel, {$addDex} 전환";
}
echo "
본인의 특정 병종 숙련을 30% 줄이고, 줄어든 숙련 중 2/3(20%p)를 다른 병종 숙련으로 전환합니다.<br>
<form name=form1 action=c_double.php method=post>
<select name=double size=1 style=color:white;background-color:black>
<option value=0>보병 ({$dexTexts[0]})</option>
<option value=1>궁병 ({$dexTexts[1]})</option>
<option value=2>기병 ({$dexTexts[2]})</option>
<option value=3>귀병 ({$dexTexts[3]})</option>
<option value=4>차병 ({$dexTexts[4]})</option>
</select>
숙련을
<select name=third size=1 style=color:white;background-color:black>
<option value=0>보병 ({$dexVals[0]})</option>
<option value=1>궁병 ({$dexVals[1]})</option>
<option value=2>기병 ({$dexVals[2]})</option>
<option value=3>귀병 ({$dexVals[3]})</option>
<option value=4>차병 ({$dexVals[4]})</option>
</select>
으로
<input type=submit value=전환>
<input type=hidden name=command value=$command>";
for($i=0; $i < count($turn); $i++) {
echo "
<input type=hidden name=turn[] value=$turn[$i]>";
}
echo "
</form>
";
ender();
}
function command_61($turn, $command) {
$db = DB::db();
$connect=$db->get();