forked from devsam/core
버그 수정
This commit is contained in:
@@ -307,7 +307,7 @@ foreach(GameConst::$allItems as $itemType=>$itemList){
|
||||
'nationName'=>$general['nationName'],
|
||||
'name'=>$general['name'],
|
||||
'bgColor'=>$general['bgColor'],
|
||||
'fgColor'=>$general['dfColor'],
|
||||
'fgColor'=>$general['fgColor'],
|
||||
];
|
||||
$itemRanker[] = $card;
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ else{
|
||||
</select>
|
||||
</td></tr>
|
||||
</table>
|
||||
<div style="margin:auto;width=1100px;">
|
||||
<div style="margin:auto;width:1100px;">
|
||||
<?php
|
||||
$types = [
|
||||
["명 성", 'int'],
|
||||
|
||||
@@ -784,9 +784,9 @@ function setGift($tnmt_type, $tnmt, $phase) {
|
||||
$rewardRate = round($globalBetTotal / max($globalBet[$winnerSlot], 1), 2);
|
||||
|
||||
$betKey = "bet{$winnerSlot}";
|
||||
$gambleResult = Util::convertArrayToDict($db->query('SELECT no, %b as bet FROM betting WHERE %b > 0', $betKey, $betKey), 'no');
|
||||
$gambleResult = Util::convertArrayToDict($db->query('SELECT general_id, %b as bet FROM betting WHERE %b > 0', $betKey, $betKey), 'general_id');
|
||||
|
||||
foreach(General::createGeneralObjListFromDB(Util::squeezeFromArray($gambleResult, 'no'), ['gold'], 1) as $gambler){
|
||||
foreach(General::createGeneralObjListFromDB(Util::squeezeFromArray($gambleResult, 'general_id'), ['gold'], 1) as $gambler){
|
||||
$reward = Util::round($gambleResult[$gambler->getID()]['bet'] * $rewardRate);
|
||||
$gambler->increaseVar('gold', $reward);
|
||||
$gambler->increaseRankVar('betwingold', $reward);
|
||||
|
||||
@@ -119,8 +119,10 @@ class AutorunNationPolicy {
|
||||
public $DevelopForce = [
|
||||
//123=>true
|
||||
];
|
||||
public $reqHumanWarGold = [10000, 30000];
|
||||
public $reqHumanWarRice = [10000, 30000];
|
||||
public $reqHumanWarUrgentGold = 10000;
|
||||
public $reqHumanWarUrgentRice = 10000;
|
||||
public $reqHumanWarRecommandGold = 30000;
|
||||
public $reqHumanWarRecommandRice = 30000;
|
||||
public $reqHumanDevelGold = 10000;
|
||||
public $reqHumanDevelRice = 10000;
|
||||
public $reqNPCWarGold = 5000;
|
||||
|
||||
@@ -1002,11 +1002,11 @@ class GeneralAI
|
||||
$remainResource = [
|
||||
'gold' => [
|
||||
$nation['gold'],
|
||||
$this->nationPolicy->reqHumanWarGold
|
||||
$this->nationPolicy->reqHumanWarUrgentGold
|
||||
],
|
||||
'rice' => [
|
||||
$nation['rice'],
|
||||
$this->nationPolicy->reqHumanWarRice
|
||||
$this->nationPolicy->reqHumanWarUrgentRice
|
||||
]
|
||||
];
|
||||
|
||||
@@ -1077,12 +1077,12 @@ class GeneralAI
|
||||
$remainResource = [
|
||||
'gold' => [
|
||||
$nation['gold'],
|
||||
$this->nationPolicy->reqHumanWarGold,
|
||||
$this->nationPolicy->reqHumanWarRecommandGold,
|
||||
$this->nationPolicy->reqHumanDevelGold,
|
||||
],
|
||||
'rice' => [
|
||||
$nation['rice'],
|
||||
$this->nationPolicy->reqHumanWarRice,
|
||||
$this->nationPolicy->reqHumanWarRecommandRice,
|
||||
$this->nationPolicy->reqHumanDevelRice
|
||||
]
|
||||
];
|
||||
@@ -1304,10 +1304,6 @@ class GeneralAI
|
||||
}
|
||||
|
||||
$enoughMoney = $reqNPCMinDevelRes * 1.5;
|
||||
|
||||
if ($targetNPCGeneral->getVar($resName) >= $reqMoney) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$payAmount = $enoughMoney - $targetNPCGeneral->getVar($resName);
|
||||
$payAmount = Util::valueFit($payAmount, 100, GameConst::$maxResourceActionAmount);
|
||||
@@ -2946,7 +2942,7 @@ class GeneralAI
|
||||
/** @var ?NationCommand */
|
||||
$result = $this->{'do'.$actionName}($lastTurn);
|
||||
if($result !== null){
|
||||
$reservedCommand->reason = 'do'.$actionName;
|
||||
$result->reason = 'do'.$actionName;
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,55 +10,55 @@ class DyingMessage{
|
||||
private $realName;
|
||||
private $npc;
|
||||
|
||||
static protected $defaultMessage = '<Y>:name:</>:이: <R>사망</>했습니다.';
|
||||
static protected $defaultMessage = '<Y>;name;</>;이; <R>사망</>했습니다.';
|
||||
static protected $messages = null;
|
||||
static protected $scenarioNPCMessages = null;
|
||||
static protected $utilNPCMessages = null;
|
||||
|
||||
protected static function getMessageList():array{
|
||||
return [
|
||||
'<Y>:name:</>:이: 역병에 걸려 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: <R>요절</>하고 말았습니다.',
|
||||
'<Y>:name:</>:이: 거리에서 갑자기 <R>객사</>하고 말았습니다.',
|
||||
'<Y>:name:</>:이: 안타깝게도 번개에 맞아 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 고리대금에 시달리다가 <R>자살</>하고 말았습니다.',
|
||||
'<Y>:name:</>:이: 일확천금에 놀라 심장마비로 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 산속에서 호랑이에게 물려 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 산책중 곰에게 할퀴어 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 수영을 하다 <R>익사</>하고 말았습니다.',
|
||||
'<Y>:name:</>:이: 황제를 모독하다가 <R>처형</>당하고 말았습니다.',
|
||||
'<Y>:name:</>:이: 이튿날 침실에서 <R>죽은채로</>발견되었습니다.',
|
||||
'<Y>:name:</>:이: 색에 빠져 기력이 쇠진해 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 미녀를 보고 심장마비로 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 우울증에 걸려 <R>자살</>하고 말았습니다.',
|
||||
'<Y>:name:</>:이: 천하 정세를 비관하며 <R>분신</>하고 말았습니다.',
|
||||
'<Y>:name:</>:이: 어떤 관심도 못받고 쓸쓸히 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 유산 상속 문제로 다투다가 <R>살해</>당했습니다.',
|
||||
'<Y>:name:</>:이: 누군가의 사주로 자객에게 <R>암살</>당했습니다.',
|
||||
'<Y>:name:</>:이: 바람난 배우자에게 <R>독살</>당하고 말았습니다.',
|
||||
'<Y>:name:</>:이: 농약을 술인줄 알고 마셔 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 아무 이유 없이 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 전재산을 잃고 화병으로 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 단식운동을 하다가 굶어 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 귀신에게 홀려 시름 앓다가 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 사람들에게 집단으로 맞아서 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 갑자기 성벽에서 뛰어내려 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 농사중 호미에 머리를 맞아 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 저세상이 궁금하다며 <R>자살</>하고 말았습니다.',
|
||||
'운좋기로 소문난 <Y>:name:</>:이: 불운하게도 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 무리하게 단련을 하다가 <R>죽고</>말았습니다.',
|
||||
'<Y>:name:</>:이: 생활고를 비관하며 <R>자살</>하고 말았습니다.',
|
||||
'<Y>:name:</>:이: 평생 결혼도 못해보고 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 과식하다 배가 터져 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 웃다가 숨이 넘어가 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 추녀를 보고 놀라서 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 물에 빠진 사람을 구하려다 같이 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 독살을 준비하다 독에 걸려 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 뒷간에서 너무 힘을 주다가 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 돌팔이 의사에게 치료받다가 <R>죽고</> 말았습니다.',
|
||||
'<Y>:name:</>:이: 남의 보약을 훔쳐먹다 부작용으로 <R>죽고</> 말았습니다.',
|
||||
'희대의 사기꾼 <Y>:name:</>:이: <R>사망</>했습니다.',
|
||||
'희대의 호색한 <Y>:name:</>:이: <R>사망</>했습니다.',
|
||||
'<Y>;name;</>;이; 역병에 걸려 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; <R>요절</>하고 말았습니다.',
|
||||
'<Y>;name;</>;이; 거리에서 갑자기 <R>객사</>하고 말았습니다.',
|
||||
'<Y>;name;</>;이; 안타깝게도 번개에 맞아 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 고리대금에 시달리다가 <R>자살</>하고 말았습니다.',
|
||||
'<Y>;name;</>;이; 일확천금에 놀라 심장마비로 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 산속에서 호랑이에게 물려 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 산책중 곰에게 할퀴어 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 수영을 하다 <R>익사</>하고 말았습니다.',
|
||||
'<Y>;name;</>;이; 황제를 모독하다가 <R>처형</>당하고 말았습니다.',
|
||||
'<Y>;name;</>;이; 이튿날 침실에서 <R>죽은채로</>발견되었습니다.',
|
||||
'<Y>;name;</>;이; 색에 빠져 기력이 쇠진해 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 미녀를 보고 심장마비로 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 우울증에 걸려 <R>자살</>하고 말았습니다.',
|
||||
'<Y>;name;</>;이; 천하 정세를 비관하며 <R>분신</>하고 말았습니다.',
|
||||
'<Y>;name;</>;이; 어떤 관심도 못받고 쓸쓸히 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 유산 상속 문제로 다투다가 <R>살해</>당했습니다.',
|
||||
'<Y>;name;</>;이; 누군가의 사주로 자객에게 <R>암살</>당했습니다.',
|
||||
'<Y>;name;</>;이; 바람난 배우자에게 <R>독살</>당하고 말았습니다.',
|
||||
'<Y>;name;</>;이; 농약을 술인줄 알고 마셔 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 아무 이유 없이 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 전재산을 잃고 화병으로 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 단식운동을 하다가 굶어 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 귀신에게 홀려 시름 앓다가 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 사람들에게 집단으로 맞아서 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 갑자기 성벽에서 뛰어내려 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 농사중 호미에 머리를 맞아 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 저세상이 궁금하다며 <R>자살</>하고 말았습니다.',
|
||||
'운좋기로 소문난 <Y>;name;</>;이; 불운하게도 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 무리하게 단련을 하다가 <R>죽고</>말았습니다.',
|
||||
'<Y>;name;</>;이; 생활고를 비관하며 <R>자살</>하고 말았습니다.',
|
||||
'<Y>;name;</>;이; 평생 결혼도 못해보고 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 과식하다 배가 터져 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 웃다가 숨이 넘어가 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 추녀를 보고 놀라서 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 물에 빠진 사람을 구하려다 같이 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 독살을 준비하다 독에 걸려 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 뒷간에서 너무 힘을 주다가 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 돌팔이 의사에게 치료받다가 <R>죽고</> 말았습니다.',
|
||||
'<Y>;name;</>;이; 남의 보약을 훔쳐먹다 부작용으로 <R>죽고</> 말았습니다.',
|
||||
'희대의 사기꾼 <Y>;name;</>;이; <R>사망</>했습니다.',
|
||||
'희대의 호색한 <Y>;name;</>;이; <R>사망</>했습니다.',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -70,16 +70,16 @@ class DyingMessage{
|
||||
|
||||
protected static function getUtilNPCMessageList():array{
|
||||
return [
|
||||
'<Y>:name:</>:이: 푸대접에 실망하여 떠났습니다.',
|
||||
'<Y>:name:</>:이: 갑자기 화를 내며 떠났습니다.',
|
||||
'<Y>:name:</>:이: 의견차이를 좁히지 못하고 떠났습니다.',
|
||||
'<Y>:name:</>:이: 판단 착오였다며 떠났습니다.',
|
||||
'<Y>:name:</>:이: 생활고가 나아지지 않는다며 떠났습니다.',
|
||||
'<Y>:name:</>:이: 기대가 너무 컸다며 떠났습니다.',
|
||||
'<Y>:name:</>:이: 아무 이유 없이 떠났습니다.',
|
||||
'<Y>:name:</>:이: 자기 목적은 달성했다며 떠났습니다.',
|
||||
'<Y>:name:</>:이: 자기가 없어도 될것 같다며 떠났습니다.',
|
||||
'<Y>:name:</>:이: 처자식이 그립다며 떠났습니다.',
|
||||
'<Y>;name;</>;이; 푸대접에 실망하여 떠났습니다.',
|
||||
'<Y>;name;</>;이; 갑자기 화를 내며 떠났습니다.',
|
||||
'<Y>;name;</>;이; 의견차이를 좁히지 못하고 떠났습니다.',
|
||||
'<Y>;name;</>;이; 판단 착오였다며 떠났습니다.',
|
||||
'<Y>;name;</>;이; 생활고가 나아지지 않는다며 떠났습니다.',
|
||||
'<Y>;name;</>;이; 기대가 너무 컸다며 떠났습니다.',
|
||||
'<Y>;name;</>;이; 아무 이유 없이 떠났습니다.',
|
||||
'<Y>;name;</>;이; 자기 목적은 달성했다며 떠났습니다.',
|
||||
'<Y>;name;</>;이; 자기가 없어도 될것 같다며 떠났습니다.',
|
||||
'<Y>;name;</>;이; 처자식이 그립다며 떠났습니다.',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -120,13 +120,13 @@ class DyingMessage{
|
||||
}
|
||||
|
||||
if($this->realName){
|
||||
$text = str_replace(':name:', $name."({$this->realName})", $text);
|
||||
$text = str_replace(';name;', ";{$name};({$this->realName})", $text);
|
||||
}
|
||||
else{
|
||||
$text = str_replace(':name:', $name, $text);
|
||||
$text = str_replace(';name;', ";{$name};", $text);
|
||||
}
|
||||
|
||||
JosaUtil::batch($text, $name);
|
||||
return $text;
|
||||
|
||||
return JosaUtil::batch($text, $name);
|
||||
}
|
||||
}
|
||||
+48
-13
@@ -604,23 +604,58 @@ class JosaUtil{
|
||||
};
|
||||
}
|
||||
|
||||
public static function batch(string $text, string $key, array $decorator =[':',':']){
|
||||
public static function batch(string $text, string $decorator = ';'){
|
||||
JosaUtil::init();
|
||||
|
||||
$search = [];
|
||||
$replace = [];
|
||||
if($decorator === ';'){
|
||||
preg_match_all('/;([^;]+);/', $text, $matches, PREG_OFFSET_CAPTURE);
|
||||
}
|
||||
else{
|
||||
$decorator = preg_quote($decorator);
|
||||
$pattern = "/{$decorator}([^{$decorator}]+){$decorator}/";
|
||||
preg_match_all($pattern, $text, $matches, PREG_OFFSET_CAPTURE);
|
||||
}
|
||||
|
||||
|
||||
$prefix = ':';
|
||||
$postfix = ':';
|
||||
|
||||
foreach(static::DEFAULT_POSTPOSITION as $wJong => $woJong){
|
||||
$value = JosaUtil::pick($key, $wJong);
|
||||
$search[] = "{$prefix}{$wJong}{$postfix}";
|
||||
$replace[] = $value;
|
||||
$search[] = "{$prefix}{$woJong}{$postfix}";
|
||||
$replace[] = $value;
|
||||
$matchCnt = count($matches[0]);
|
||||
if($matchCnt & 1){
|
||||
$matchCnt -= 1;
|
||||
}
|
||||
|
||||
return str_replace($search, $replace, $text);
|
||||
if(!$matchCnt){
|
||||
return $text;
|
||||
}
|
||||
|
||||
$result = [];
|
||||
$prePos = 0;
|
||||
foreach(Util::range(0, $matchCnt, 2) as $matchIdx){
|
||||
$bodyRawText = $matches[0][$matchIdx][0];
|
||||
$bodyText = $matches[1][$matchIdx][0];
|
||||
$bodyRawPos = $matches[0][$matchIdx][1];
|
||||
if($bodyRawPos > $prePos){
|
||||
$result[] = substr($text, $prePos, $bodyRawPos - $prePos);
|
||||
}
|
||||
$prePos = $bodyRawPos + strlen($bodyRawText);
|
||||
|
||||
$result[] = $bodyText;
|
||||
|
||||
$josaRawText = $matches[0][$matchIdx+1][0];
|
||||
$josaText = $matches[1][$matchIdx+1][0];
|
||||
$josaRawPos = $matches[0][$matchIdx+1][1];
|
||||
|
||||
if($josaRawPos > $prePos){
|
||||
$result[] = substr($text, $prePos, $josaRawPos - $prePos);
|
||||
}
|
||||
$prePos = $josaRawPos + strlen($josaRawText);
|
||||
|
||||
$pickedJosa = JosaUtil::pick($bodyText, $josaText);
|
||||
$result[] = $pickedJosa;
|
||||
}
|
||||
$textLen = strlen($text);
|
||||
if($prePos < $textLen){
|
||||
$result[] = substr($text, $prePos, $textLen - $prePos);
|
||||
}
|
||||
|
||||
return join('', $result);
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -776,13 +776,13 @@ class Util extends \utilphp\util
|
||||
if($step > 0){
|
||||
while($from < $to){
|
||||
yield $from;
|
||||
$from += 1;
|
||||
$from += $step;
|
||||
}
|
||||
}
|
||||
else{
|
||||
while($from > $to){
|
||||
yield $from;
|
||||
$from -= 1;
|
||||
$from -= $step;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user