유니크 무기, 유니크 서적 삭제. 명마와 아이템만 남음. 10말까지 구입 가능.

This commit is contained in:
2019-05-03 02:40:54 +09:00
parent ac1f6e1441
commit 772b520b13
7 changed files with 111 additions and 201 deletions
+1 -3
View File
@@ -223,9 +223,7 @@ foreach($types as $idx=>[$typeName, $typeValue, $typeFunc]){
<?php
//유니크 아이템 소유자
$itemTypes = [
["명 마", 'horse', function($v){return getHorseName($v);}, 7, 26, []],
["명 검", 'weap', function($v){return getWeapName($v);}, 7, 26, []],
["명 서", 'book', function($v){return getBookName($v);}, 7, 26, []],
["명 마", 'horse', function($v){return getHorseName($v);}, 11, 40, []],
["도 구", 'item', function($v){return displayItemInfo($v);}, 7, 26, []],
];
+3 -3
View File
@@ -286,7 +286,7 @@ $startYear = $gameStor->getValue('startyear');
<span class="input-group-text">명마</span>
</div>
<select class="custom-select form_general_horse">
<?php foreach(range(0, 26) as $horseID): ?>
<?php foreach(range(0, 40) as $horseID): ?>
<option value="<?=$horseID?>"><?=getHorseName($horseID)?></option>
<?php endforeach; ?>
</select>
@@ -294,7 +294,7 @@ $startYear = $gameStor->getValue('startyear');
<span class="input-group-text">무기</span>
</div>
<select class="custom-select form_general_weap">
<?php foreach(range(0, 26) as $weapID): ?>
<?php foreach(range(0, 6) as $weapID): ?>
<option value="<?=$weapID?>"><?=getWeapName($weapID)?></option>
<?php endforeach; ?>
</select>
@@ -302,7 +302,7 @@ $startYear = $gameStor->getValue('startyear');
<span class="input-group-text">서적</span>
</div>
<select class="custom-select form_general_book">
<?php foreach(range(0, 26) as $bookID): ?>
<?php foreach(range(0, 6) as $bookID): ?>
<option value="<?=$bookID?>"><?=getBookName($bookID)?></option>
<?php endforeach; ?>
</select>
+27 -56
View File
@@ -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[] = "<C>●</><C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:<C>".getWeapName($it)."</>{$josaUl} 습득");
if($vote == 0) {
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
} elseif($vote == 1) {
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
} elseif($vote == 2) {
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
} elseif($vote == 3) {
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getWeapName($it)."</>{$josaUl} 습득했습니다!";
}
break;
case 1:
$josaUl = JosaUtil::pick(getBookName($it), '을');
$josaYi = JosaUtil::pick($general['name'], '이');
$log[] = "<C>●</><C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
$alllog[0] = "<C>●</>{$admin['month']}월:<Y>{$general['name']}</>{$josaYi} <C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
pushGeneralHistory($general, "<C>●</>{$admin['year']}{$admin['month']}월:<C>".getBookName($it)."</>{$josaUl} 습득");
if($vote == 0) {
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【아이템】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
} elseif($vote == 1) {
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【설문상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
} elseif($vote == 2) {
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【랜덤임관상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
} elseif($vote == 3) {
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getBookName($it)."</>{$josaUl} 습득했습니다!";
}
break;
case 2:
switch($type) {
case 'horse':
$josaUl = JosaUtil::pick(getHorseName($it), '을');
$josaYi = JosaUtil::pick($general['name'], '이');
$log[] = "<C>●</><C>".getHorseName($it)."</>{$josaUl} 습득했습니다!";
@@ -2332,7 +2303,7 @@ function uniqueItem($general, $log, $vote=0) {
$history[] = "<C>●</>{$admin['year']}{$admin['month']}월:<C><b>【건국상품】</b></><D><b>{$nation['name']}</b></>의 <Y>{$general['name']}</>{$josaYi} <C>".getHorseName($it)."</>{$josaUl} 습득했습니다!";
}
break;
case 3:
case 'item':
$josaUl = JosaUtil::pick(getItemName($it), '을');
$josaYi = JosaUtil::pick($general['name'], '이');
$log[] = "<C>●</><C>".getItemName($it)."</>{$josaUl} 습득했습니다!";
+71 -134
View File
@@ -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);
}
}
+1 -1
View File
@@ -2235,7 +2235,7 @@ function process_48(&$general) {
$log[] = "<C>●</>{$admin['month']}월:도시에 상인이 없습니다. 장비매매 실패. <1>$date</>";
} elseif($city['secu']/1000 < $type) {
$log[] = "<C>●</>{$admin['month']}월:이 도시에서는 구할 수 없었습니다. 구입 실패. <1>$date</>";
} elseif($type > 6 || $type < 0) {
} elseif(($isweap == 2 && $type > 10) || ($isweap != 2 && $type > 6) || $type < 0) {
$log[] = "<C>●</>{$admin['month']}월:구입할 수 있는 물건이 아닙니다. 구입 실패. <1>$date</>";
} elseif($general['gold'] < $cost && $type != 0) {
$log[] = "<C>●</>{$admin['month']}월:자금이 모자랍니다. 구입 실패. <1>$date</>";
+3 -3
View File
@@ -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]],
+5 -1
View File
@@ -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) {
<option value=204 style=color:$color[4]>".getHorseName(4)."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;가격: ".getItemCost(4)."</option>
<option value=205 style=color:$color[5]>".getHorseName(5)."&nbsp;&nbsp;&nbsp;&nbsp;가격: ".getItemCost(5)."</option>
<option value=206 style=color:$color[6]>".getHorseName(6)."&nbsp;&nbsp;&nbsp;&nbsp;가격: ".getItemCost(6)."</option>
<option value=207 style=color:$color[7]>".getHorseName(7)."&nbsp;&nbsp;&nbsp;&nbsp;가격: ".getItemCost(7)."</option>
<option value=208 style=color:$color[8]>".getHorseName(8)."&nbsp;&nbsp;&nbsp;&nbsp;가격: ".getItemCost(8)."</option>
<option value=209 style=color:$color[9]>".getHorseName(9)."&nbsp;&nbsp;&nbsp;&nbsp;가격: ".getItemCost(9)."</option>
<option value=210 style=color:$color[10]>".getHorseName(10)."&nbsp;&nbsp;&nbsp;&nbsp;가격: ".getItemCost(10)."</option>
<option value=300 style=color:skyblue>_____도구매각(반값)____</option>
<option value=301 style=color:$color[1]>".getItemName(1)."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;가격: ".getItemCost2(1)."</option>
<option value=302 style=color:$color[2]>".getItemName(2)."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;가격: ".getItemCost2(2)."</option>