From 772b520b13ae550971f5ccdc26ac329011bb4b34 Mon Sep 17 00:00:00 2001 From: hide_d Date: Fri, 3 May 2019 02:40:54 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9C=A0=EB=8B=88=ED=81=AC=20=EB=AC=B4?= =?UTF-8?q?=EA=B8=B0,=20=EC=9C=A0=EB=8B=88=ED=81=AC=20=EC=84=9C=EC=A0=81?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C.=20=EB=AA=85=EB=A7=88=EC=99=80=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=ED=85=9C=EB=A7=8C=20=EB=82=A8=EC=9D=8C.=2010?= =?UTF-8?q?=EB=A7=90=EA=B9=8C=EC=A7=80=20=EA=B5=AC=EC=9E=85=20=EA=B0=80?= =?UTF-8?q?=EB=8A=A5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/a_bestGeneral.php | 4 +- hwe/battle_simulator.php | 6 +- hwe/func.php | 83 +++++---------- hwe/func_converter.php | 205 +++++++++++++------------------------- hwe/func_process.php | 2 +- hwe/j_simulate_battle.php | 6 +- hwe/processing.php | 6 +- 7 files changed, 111 insertions(+), 201 deletions(-) diff --git a/hwe/a_bestGeneral.php b/hwe/a_bestGeneral.php index 095bcd0f..47d42319 100644 --- a/hwe/a_bestGeneral.php +++ b/hwe/a_bestGeneral.php @@ -223,9 +223,7 @@ foreach($types as $idx=>[$typeName, $typeValue, $typeFunc]){ getValue('startyear'); 명마 @@ -294,7 +294,7 @@ $startYear = $gameStor->getValue('startyear'); 무기 @@ -302,7 +302,7 @@ $startYear = $gameStor->getValue('startyear'); 서적 diff --git a/hwe/func.php b/hwe/func.php index b8c74338..77647266 100644 --- a/hwe/func.php +++ b/hwe/func.php @@ -2251,72 +2251,43 @@ function uniqueItem($general, $log, $vote=0) { if(rand() % $prob == 0) { //셋중 선택 $selGroup = [ - 20 - $db->queryFirstField('SELECT count(*) from general where weap > 6'), - 20 - $db->queryFirstField('SELECT count(*) from general where book > 6'), - 20 - $db->queryFirstField('SELECT count(*) from general where horse > 6'), - 20 - $db->queryFirstField('SELECT count(*) from general where item > 6') + 'horse'=>30 - $db->queryFirstField('SELECT count(*) from general where horse > 10'), + 'item'=>20 - $db->queryFirstField('SELECT count(*) from general where item > 6') ]; - $sel = Util::choiceRandomUsingWeight($selGroup); - switch($sel) { - case 0: $type = "weap"; break; - case 1: $type = "book"; break; - case 2: $type = "horse"; break; - case 3: $type = "item"; break; - } - $query = "select no,{$type} from general where {$type}>6"; - $result = MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); - $count = MYDB_num_rows($result); - if($count < 20) { - for($i=0; $i < $count; $i++) { - $gen = MYDB_fetch_array($result); - $occupied[$gen[$type]] = 1; + $type = Util::choiceRandomUsingWeight($selGroup); + + if($type == 'horse'){ + foreach($db->queryFirstColumn('SELECT horse FROM general WHERE horse > 10') as $horse){ + $occupied[$horse] = 1; } - for($i=7; $i <= 26; $i++) { + for($i = 11; $i <= 40; $i++){ if(!Util::array_get($occupied[$i])) { - $item[] = $i; + $remainItems[] = $i; } } - $it = $item[rand() % count($item)]??0; + } + else{ + foreach($db->queryFirstColumn('SELECT item FROM general WHERE item > 6') as $item){ + $occupied[$item] = 1; + } + for($i = 7; $i <= 26; $i++){ + if(!Util::array_get($occupied[$i])) { + $remainItems[] = $i; + } + } + } + + if($remainItems) { + + $it = Util::choiceRandom($remainItems); $query = "update general set {$type}='$it' where no='{$general['no']}'"; MYDB_query($query, $connect) or Error(__LINE__.MYDB_error($connect),""); $nation = getNationStaticInfo($general['nation']); - switch($sel) { - case 0: - $josaUl = JosaUtil::pick(getWeapName($it), '을'); - $josaYi = JosaUtil::pick($general['name'], '이'); - $log[] = "".getWeapName($it)."{$josaUl} 습득했습니다!"; - $alllog[0] = "●{$admin['month']}월:{$general['name']}{$josaYi} ".getWeapName($it)."{$josaUl} 습득했습니다!"; - pushGeneralHistory($general, "●{$admin['year']}년 {$admin['month']}월:".getWeapName($it)."{$josaUl} 습득"); - if($vote == 0) { - $history[] = "●{$admin['year']}년 {$admin['month']}월:【아이템】{$nation['name']}{$general['name']}{$josaYi} ".getWeapName($it)."{$josaUl} 습득했습니다!"; - } elseif($vote == 1) { - $history[] = "●{$admin['year']}년 {$admin['month']}월:【설문상품】{$nation['name']}{$general['name']}{$josaYi} ".getWeapName($it)."{$josaUl} 습득했습니다!"; - } elseif($vote == 2) { - $history[] = "●{$admin['year']}년 {$admin['month']}월:【랜덤임관상품】{$nation['name']}{$general['name']}{$josaYi} ".getWeapName($it)."{$josaUl} 습득했습니다!"; - } elseif($vote == 3) { - $history[] = "●{$admin['year']}년 {$admin['month']}월:【건국상품】{$nation['name']}{$general['name']}{$josaYi} ".getWeapName($it)."{$josaUl} 습득했습니다!"; - } - break; - case 1: - $josaUl = JosaUtil::pick(getBookName($it), '을'); - $josaYi = JosaUtil::pick($general['name'], '이'); - $log[] = "".getBookName($it)."{$josaUl} 습득했습니다!"; - $alllog[0] = "●{$admin['month']}월:{$general['name']}{$josaYi} ".getBookName($it)."{$josaUl} 습득했습니다!"; - pushGeneralHistory($general, "●{$admin['year']}년 {$admin['month']}월:".getBookName($it)."{$josaUl} 습득"); - if($vote == 0) { - $history[] = "●{$admin['year']}년 {$admin['month']}월:【아이템】{$nation['name']}{$general['name']}{$josaYi} ".getBookName($it)."{$josaUl} 습득했습니다!"; - } elseif($vote == 1) { - $history[] = "●{$admin['year']}년 {$admin['month']}월:【설문상품】{$nation['name']}{$general['name']}{$josaYi} ".getBookName($it)."{$josaUl} 습득했습니다!"; - } elseif($vote == 2) { - $history[] = "●{$admin['year']}년 {$admin['month']}월:【랜덤임관상품】{$nation['name']}{$general['name']}{$josaYi} ".getBookName($it)."{$josaUl} 습득했습니다!"; - } elseif($vote == 3) { - $history[] = "●{$admin['year']}년 {$admin['month']}월:【건국상품】{$nation['name']}{$general['name']}{$josaYi} ".getBookName($it)."{$josaUl} 습득했습니다!"; - } - break; - case 2: + switch($type) { + case 'horse': $josaUl = JosaUtil::pick(getHorseName($it), '을'); $josaYi = JosaUtil::pick($general['name'], '이'); $log[] = "".getHorseName($it)."{$josaUl} 습득했습니다!"; @@ -2332,7 +2303,7 @@ function uniqueItem($general, $log, $vote=0) { $history[] = "●{$admin['year']}년 {$admin['month']}월:【건국상품】{$nation['name']}{$general['name']}{$josaYi} ".getHorseName($it)."{$josaUl} 습득했습니다!"; } break; - case 3: + case 'item': $josaUl = JosaUtil::pick(getItemName($it), '을'); $josaYi = JosaUtil::pick($general['name'], '이'); $log[] = "".getItemName($it)."{$josaUl} 습득했습니다!"; diff --git a/hwe/func_converter.php b/hwe/func_converter.php index f780cd9a..9a7a29eb 100644 --- a/hwe/func_converter.php +++ b/hwe/func_converter.php @@ -530,60 +530,16 @@ function getWeapName($weap) : ?string { case 4: $weapname = '목검(+4)'; break; case 5: $weapname = '죽창(+5)'; break; case 6: $weapname = '소부(+6)'; break; - - case 7: $weapname = '동추(+7)'; break; - case 8: $weapname = '철편(+7)'; break; - case 9: $weapname = '철쇄(+7)'; break; - case 10: $weapname = '맥궁(+7)'; break; - case 11: $weapname = '유성추(+8)'; break; - case 12: $weapname = '철질여골(+8)'; break; - case 13: $weapname = '쌍철극(+9)'; break; - case 14: $weapname = '동호비궁(+9)'; break; - case 15: $weapname = '삼첨도(+10)'; break; - case 16: $weapname = '대부(+10)'; break; - case 17: $weapname = '고정도(+11)'; break; - case 18: $weapname = '이광궁(+11)'; break; - case 19: $weapname = '철척사모(+12)'; break; - case 20: $weapname = '칠성검(+12)'; break; - case 21: $weapname = '사모(+13)'; break; - case 22: $weapname = '양유기궁(+13)'; break; - case 23: $weapname = '언월도(+14)'; break; - case 24: $weapname = '방천화극(+14)'; break; - case 25: $weapname = '청홍검(+15)'; break; - case 26: $weapname = '의천검(+15)'; break; } return $weapname; } function getWeapEff($weap) : ?int{ - switch($weap) { - case 7: $weap = 7; break; - case 8: $weap = 7; break; - case 9: $weap = 7; break; - case 10: $weap = 7; break; - case 11: $weap = 8; break; - case 12: $weap = 8; break; - case 13: $weap = 9; break; - case 14: $weap = 9; break; - case 15: $weap = 10; break; - case 16: $weap = 10; break; - case 17: $weap = 11; break; - case 18: $weap = 11; break; - case 19: $weap = 12; break; - case 20: $weap = 12; break; - case 21: $weap = 13; break; - case 22: $weap = 13; break; - case 23: $weap = 14; break; - case 24: $weap = 14; break; - case 25: $weap = 15; break; - case 26: $weap = 15; break; - default: break; - } return $weap; } function getBookName($book) : ?string { - switch($book) { + switch ($book) { case 0: $bookname = '-'; break; case 1: $bookname = '효경전(+1)'; break; case 2: $bookname = '회남자(+2)'; break; @@ -591,55 +547,11 @@ function getBookName($book) : ?string { case 4: $bookname = '건상역주(+4)'; break; case 5: $bookname = '여씨춘추(+5)'; break; case 6: $bookname = '사민월령(+6)'; break; - - case 7: $bookname = '위료자(+7)'; break; - case 8: $bookname = '사마법(+7)'; break; - case 9: $bookname = '한서(+7)'; break; - case 10: $bookname = '논어(+7)'; break; - case 11: $bookname = '전론(+8)'; break; - case 12: $bookname = '사기(+8)'; break; - case 13: $bookname = '장자(+9)'; break; - case 14: $bookname = '역경(+9)'; break; - case 15: $bookname = '시경(+10)'; break; - case 16: $bookname = '구국론(+10)'; break; - case 17: $bookname = '상군서(+11)'; break; - case 18: $bookname = '춘추전(+11)'; break; - case 19: $bookname = '산해경(+12)'; break; - case 20: $bookname = '맹덕신서(+12)'; break; - case 21: $bookname = '관자(+13)'; break; - case 22: $bookname = '병법24편(+13)'; break; - case 23: $bookname = '한비자(+14)'; break; - case 24: $bookname = '오자병법(+14)'; break; - case 25: $bookname = '노자(+15)'; break; - case 26: $bookname = '손자병법(+15)'; break; } return $bookname; } function getBookEff($book) : ?int { - switch($book) { - case 7: $book = 7; break; - case 8: $book = 7; break; - case 9: $book = 7; break; - case 10: $book = 7; break; - case 11: $book = 8; break; - case 12: $book = 8; break; - case 13: $book = 9; break; - case 14: $book = 9; break; - case 15: $book = 10; break; - case 16: $book = 10; break; - case 17: $book = 11; break; - case 18: $book = 11; break; - case 19: $book = 12; break; - case 20: $book = 12; break; - case 21: $book = 13; break; - case 22: $book = 13; break; - case 23: $book = 14; break; - case 24: $book = 14; break; - case 25: $book = 15; break; - case 26: $book = 15; break; - default: break; - } return $book; } @@ -652,56 +564,77 @@ function getHorseName($horse) : ?string { case 4: $horsename = '나귀(+4)'; break; case 5: $horsename = '갈색마(+5)'; break; case 6: $horsename = '흑색마(+6)'; break; - case 7: $horsename = '백마(+7)'; break; - case 8: $horsename = '백마(+7)'; break; - case 9: $horsename = '기주마(+7)'; break; - case 10: $horsename = '기주마(+7)'; break; - case 11: $horsename = '양주마(+8)'; break; - case 12: $horsename = '양주마(+8)'; break; - case 13: $horsename = '과하마(+9)'; break; - case 14: $horsename = '과하마(+9)'; break; - case 15: $horsename = '대완마(+10)'; break; - case 16: $horsename = '대완마(+10)'; break; - case 17: $horsename = '서량마(+11)'; break; - case 18: $horsename = '서량마(+11)'; break; - case 19: $horsename = '사륜거(+12)'; break; - case 20: $horsename = '사륜거(+12)'; break; - case 21: $horsename = '절영(+13)'; break; - case 22: $horsename = '적로(+13)'; break; - case 23: $horsename = '적란마(+14)'; break; - case 24: $horsename = '조황비전(+14)'; break; - case 25: $horsename = '한혈마(+15)'; break; - case 26: $horsename = '적토마(+15)'; break; + case 8: $horsename = '기주마(+8)'; break; + case 9: $horsename = '양주마(+9)'; break; + case 10: $horsename = '과하마(+10)'; break; + case 11: $horsename = '대완마(+11)'; break; + case 12: $horsename = '대완마(+11)'; break; + case 13: $horsename = '대완마(+11)'; break; + case 14: $horsename = '서량마(+12)'; break; + case 15: $horsename = '서량마(+12)'; break; + case 16: $horsename = '서량마(+12)'; break; + case 17: $horsename = '화종마(+13)'; break; + case 18: $horsename = '화종마(+13)'; break; + case 19: $horsename = '화종마(+13)'; break; + case 20: $horsename = '옥룡마(+14)'; break; + case 21: $horsename = '옥룡마(+14)'; break; + case 22: $horsename = '옥룡마(+14)'; break; + case 23: $horsename = '사륜거(+15)'; break; + case 24: $horsename = '사륜거(+15)'; break; + case 25: $horsename = '사륜거(+15)'; break; + case 26: $horsename = '적로(+16)'; break; + case 27: $horsename = '적로(+16)'; break; + case 28: $horsename = '적로(+16)'; break; + case 29: $horsename = '적란마(+17)'; break; + case 30: $horsename = '적란마(+17)'; break; + case 31: $horsename = '적란마(+17)'; break; + case 32: $horsename = '조황비전(+18)'; break; + case 33: $horsename = '조황비전(+18)'; break; + case 34: $horsename = '조황비전(+18)'; break; + case 35: $horsename = '한혈마(+19)'; break; + case 36: $horsename = '한혈마(+19)'; break; + case 37: $horsename = '한혈마(+19)'; break; + case 38: $horsename = '적토마(+20)'; break; + case 39: $horsename = '적토마(+20)'; break; + case 40: $horsename = '적토마(+20)'; break; } return $horsename; } function getHorseEff($horse) : ?int { - switch($horse) { - case 7: $horse = 7; break; - case 8: $horse = 7; break; - case 9: $horse = 7; break; - case 10: $horse = 7; break; - case 11: $horse = 8; break; - case 12: $horse = 8; break; - case 13: $horse = 9; break; - case 14: $horse = 9; break; - case 15: $horse = 10; break; - case 16: $horse = 10; break; - case 17: $horse = 11; break; - case 18: $horse = 11; break; - case 19: $horse = 12; break; - case 20: $horse = 12; break; - case 21: $horse = 13; break; - case 22: $horse = 13; break; - case 23: $horse = 14; break; - case 24: $horse = 14; break; - case 25: $horse = 15; break; - case 26: $horse = 15; break; - default: break; - } - return $horse; + return [ + 11=>11, + 12=>11, + 13=>11, + 14=>12, + 15=>12, + 16=>12, + 17=>13, + 18=>13, + 19=>13, + 20=>14, + 21=>14, + 22=>14, + 23=>15, + 24=>15, + 25=>15, + 26=>16, + 27=>16, + 28=>16, + 29=>17, + 30=>17, + 31=>17, + 32=>18, + 33=>18, + 34=>18, + 35=>19, + 36=>19, + 37=>19, + 38=>20, + 39=>20, + 40=>20, + ][$horse]??$horse; } function getItemName($item) : ?string { @@ -796,6 +729,10 @@ function getItemCost($weap) : int { case 4: $weapcost = 10000; break; case 5: $weapcost = 15000; break; case 6: $weapcost = 21000; break; + case 7: $weapcost = 28000; break; + case 8: $weapcost = 36000; break; + case 9: $weapcost = 45000; break; + case 10: $weapcost = 55000; break; default: $weapcost = 200; break; } return $weapcost; @@ -876,4 +813,4 @@ function newColor($color) : string { function backColor($color) : string { return newColor($color); -} +} \ No newline at end of file diff --git a/hwe/func_process.php b/hwe/func_process.php index 4b5c6be1..8f773efd 100644 --- a/hwe/func_process.php +++ b/hwe/func_process.php @@ -2235,7 +2235,7 @@ function process_48(&$general) { $log[] = "●{$admin['month']}월:도시에 상인이 없습니다. 장비매매 실패. <1>$date"; } elseif($city['secu']/1000 < $type) { $log[] = "●{$admin['month']}월:이 도시에서는 구할 수 없었습니다. 구입 실패. <1>$date"; - } elseif($type > 6 || $type < 0) { + } elseif(($isweap == 2 && $type > 10) || ($isweap != 2 && $type > 6) || $type < 0) { $log[] = "●{$admin['month']}월:구입할 수 있는 물건이 아닙니다. 구입 실패. <1>$date"; } elseif($general['gold'] < $cost && $type != 0) { $log[] = "●{$admin['month']}월:자금이 모자랍니다. 구입 실패. <1>$date"; diff --git a/hwe/j_simulate_battle.php b/hwe/j_simulate_battle.php index 059130d3..174f70fe 100644 --- a/hwe/j_simulate_battle.php +++ b/hwe/j_simulate_battle.php @@ -111,9 +111,9 @@ $generalCheck = [ 'between'=>[ ['train', [40, GameConst::$maxTrainByWar]], ['atmos', [40, GameConst::$maxAtmosByWar]], - ['book', [0, 26]], - ['weap', [0, 26]], - ['horse', [0, 26]], + ['book', [0, 6]], + ['weap', [0, 6]], + ['horse', [0, 40]], ['item', [0, 26]], ['explevel', [0, 300]], ['injury', [0, 80]], diff --git a/hwe/processing.php b/hwe/processing.php index 7cdf0468..3c7d257d 100644 --- a/hwe/processing.php +++ b/hwe/processing.php @@ -1367,7 +1367,7 @@ function command_48($turn, $command) { $color = []; - for($i=1; $i <= 6; $i++) { + for($i=1; $i <= 10; $i++) { if($city['secu'] >= $i*1000) { $color[$i] = "white"; } else { @@ -1402,6 +1402,10 @@ function command_48($turn, $command) { + + + +