diff --git a/hwe/func_npc.php b/hwe/func_npc.php
index 246dec6f..539360fc 100644
--- a/hwe/func_npc.php
+++ b/hwe/func_npc.php
@@ -51,6 +51,8 @@ class AIAllowedAction{
case 'warp':
$this->warp = true;
break;
+ case 'recruit_high':
+ $this->recruit_high = true;
case 'recruit':
$this->recruit = true;
$this->changeWarCondition = true;
@@ -147,7 +149,7 @@ function SetDevelop($genType, $no, $city, $tech) {
return;
}
-function SetCrew($no, $nationID, $personal, $gold, $leader, $genType, $tech, $dex0, $dex10, $dex20, $dex30, $dex40) {
+function SetCrew($no, $nationID, $personal, $gold, $leader, $genType, $tech, $dex0, $dex10, $dex20, $dex30, $dex40, $currentCrewType, AIAllowedAction $allowedAction) {
$db = DB::db();
$connect=$db->get();
@@ -224,7 +226,13 @@ function SetCrew($no, $nationID, $personal, $gold, $leader, $genType, $tech, $de
}
if($types){
- $type = Util::choiceRandom($types);
+ if(!$allowedAction->randomRecruit && in_array($currentCrewType, $types)){
+ $type = $currentCrewType;
+ }
+ else{
+ $type = Util::choiceRandom($types);
+ }
+
}
else{
$type = GameUnitConst::DEFAULT_CREWTYPE;
@@ -239,7 +247,13 @@ function SetCrew($no, $nationID, $personal, $gold, $leader, $genType, $tech, $de
$crew = intdiv($gold, $cost);
if($leader < $crew) { $crew = $leader; }
- $command = EncodeCommand(0, $type, $crew, 11);
+
+ if($allowedAction->recruit_high && $crew * $cost * 8 < $gold){
+ $command = EncodeCommand(0, $type, $crew, 12);
+ }
+ else{
+ $command = EncodeCommand(0, $type, $crew, 11);
+ }
$query = "update general set turn0='$command' where no='$no'";
MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),"");
@@ -994,7 +1008,7 @@ function processAI($no) {
return;
case EncodeCommand(0, 0, 0, 11): //징병
if ($allowedAction->recruit) {
- SetCrew($general['no'], $general['nation'], $general['personal'], $general['gold'], $general['leader'], $genType, $nation['tech'], $general['dex0'], $general['dex10'], $general['dex20'], $general['dex30'], $general['dex40']);
+ SetCrew($general['no'], $general['nation'], $general['personal'], $general['gold'], $general['leader'], $genType, $nation['tech'], $general['dex0'], $general['dex10'], $general['dex20'], $general['dex30'], $general['dex40'], $general['crewtype'], $allowedAction);
}
else{
$db->update('general', [
diff --git a/hwe/install.php b/hwe/install.php
index c1982754..0c5003e8 100644
--- a/hwe/install.php
+++ b/hwe/install.php
@@ -166,6 +166,9 @@ if($session->userGrade < 5 && !$allowReset){
+
diff --git a/hwe/j_server_basic_info.php b/hwe/j_server_basic_info.php
index 185be478..3ff20da1 100644
--- a/hwe/j_server_basic_info.php
+++ b/hwe/j_server_basic_info.php
@@ -43,13 +43,14 @@ if(file_exists(__dir__.'/.htaccess')){
foreach($options['autorun_user']['option'] as $auto_option => $value){
assert($value);
switch($auto_option){
- case 'develop': $auto_info[] = '내정'; break;
- case 'warp': $auto_info[] = '순간이동'; break;
- case 'recruit': $auto_info[] = '징훈사'; break;
- case 'battle': $auto_info[] = '출병'; break;
+ case 'develop': $auto_info['내정'] = '내정'; break;
+ case 'warp': $auto_info['순간이동'] = '순간이동'; break;
+ case 'recruit': $auto_info['징훈사'] = $auto_info['징훈사']??'징훈사'; break;
+ case 'recruit_high': $auto_info['징훈사'] = '모훈사'; break;
+ case 'battle': $auto_info['출병'] = '출병'; break;
}
}
- $auto_info = join(',', $auto_info);
+ $auto_info = join(', ', array_values($auto_info));
$otherTextInfo[] = "자동행동({$auto_info})";
}
@@ -115,13 +116,14 @@ if($admin['autorun_user']['limit_minutes']??false){
foreach($admin['autorun_user']['option'] as $auto_option => $value){
assert($value);
switch($auto_option){
- case 'develop': $auto_info[] = '내정'; break;
- case 'warp': $auto_info[] = '순간이동'; break;
- case 'recruit': $auto_info[] = '징훈사'; break;
- case 'battle': $auto_info[] = '출병'; break;
+ case 'develop': $auto_info['내정'] = '내정'; break;
+ case 'warp': $auto_info['순간이동'] = '순간이동'; break;
+ case 'recruit': $auto_info['징훈사'] = $auto_info['징훈사']??'징훈사'; break;
+ case 'recruit_high': $auto_info['징훈사'] = '모훈사'; break;
+ case 'battle': $auto_info['출병'] = '출병'; break;
}
}
- $auto_info = join(', ', $auto_info);
+ $auto_info = join(', ', array_values($auto_info));
$otherTextInfo[] = "자동행동({$auto_info})";
}