//************************************************************
//************************************************************
//************************************************************
//************************************************************
mapHtml = new Array(10);
mapHtml[0] = "mitsu";
mapHtml[1] = "saba";
mapHtml[2] = "numa";
mapHtml[3] = "yuki";
mapHtml[4] = "kaza";
mapHtml[5] = "mori";
mapHtml[6] = "tou1";
mapHtml[7] = "tou2";
mapHtml[8] = "sent";
mapHtml[9] = "tori";
mapName = new Array(10);
mapName[0] = "密林";
mapName[1] = "砂漠";
mapName[2] = "沼地";
mapName[3] = "雪山";
mapName[4] = "火山";
mapName[5] = "森丘";
mapName[6] = "塔(1)";
mapName[7] = "塔(2)";
mapName[8] = "战斗街";
mapName[9] = "砦";
monsName = new Array(74);
monsName[1] = "雌火龙";
monsName[2] = "黑龍";
monsName[3] = "精灵鹿";
monsName[4] = "苔猪";
monsName[5] = "大野猪";
monsName[6] = "大怪鸟";
monsName[7] = "老山龍";
monsName[8] = "砂龙王";
monsName[9] = "白猫";
monsName[10] = "山菜爷";
monsName[11] = "雄火龙";
monsName[12] = "食草龙";
monsName[13] = "黄速龙";
monsName[14] = "角龙";
monsName[15] = "电龙";
monsName[16] = "蓝速龙";
monsName[17] = "铠龙";
monsName[18] = "推车";
monsName[19] = "巨蜂";
monsName[20] = "毒怪鸟";
monsName[21] = "水龙";
monsName[22] = "岩龙";
monsName[23] = "黑猫";
monsName[24] = "爬虫";
monsName[25] = "背甲龙";
monsName[26] = "一角龙";
monsName[27] = "蓝速龙王";
monsName[28] = "黄速龙王";
monsName[29] = "岩石";
monsName[30] = "红速龙";
monsName[31] = "红速龙王";
monsName[32] = "小猪";
monsName[33] = "麒麟";
monsName[34] = "砂龙";
monsName[35] = "白速龙";
monsName[36] = "红黑龍";
monsName[37] = "雌火龙【亚种】";
monsName[38] = "大怪鸟【亚种】";
monsName[39] = "毒怪鸟【亚种】";
monsName[40] = "黑狼鸟";
monsName[41] = "雄火龙【稀少种】";
monsName[42] = "雌火龙【稀少种】";
monsName[43] = "角龙【亚种】";
monsName[44] = "一角龙【亚种】";
monsName[45] = "电龙【亚种】";
monsName[46] = "水龙【亚种】";
monsName[47] = "铠龙【亚种】";
monsName[48] = "大名盾蟹";
monsName[49] = "雄火龙【亚种】";
monsName[50] = "岩山龍";
monsName[51] = "雪狮子王";
monsName[52] = "桃毛兽王";
monsName[53] = "金狮子";
monsName[54] = "钢龍";
monsName[55] = "砦蟹";
monsName[56] = "大雷光虫";
monsName[57] = "奇面族";
monsName[58] = "浮岳龍";
monsName[59] = "霞龍";
monsName[60] = "锈钢龍";
monsName[61] = "雪狮子";
monsName[62] = "桃毛兽";
monsName[63] = "蛇龙";
monsName[64] = "炎妃龍";
monsName[65] = "炎王龍";
monsName[66] = "盾蟹";
monsName[67] = "将军镰蟹";
monsName[68] = "大野猪王";
monsName[69] = "雪山鹿";
monsName[70] = "波波";
monsName[71] = "祖龍";
monsName[72] = "浮岳龍";
monsName[73] = "镰蟹";
hoshuName = new Array(6);
hoshuName[0] = "確定報酬";
hoshuName[1] = "基本報酬";
hoshuName[2] = "捕獲追加報酬";
hoshuName[3] = "捕獲追加報酬";
hoshuName[4] = "サブA達成報酬";
hoshuName[5] = "サブB達成報酬";
shopName = new Array(16);
shopName[0] = "ジャンボ村の雑貨屋";
shopName[1] = "ジャンボ村の調合屋";
shopName[2] = "ジャンボ村に来る行商ばあさん(1)";
shopName[3] = "ジャンボ村に来る行商ばあさん(2)";
shopName[4] = "ジャンボ村の工房";
shopName[5] = "ジャンボ村の食材屋";
shopName[6] = "ジャンボ村の道具屋";
shopName[7] = "ココット村の行商の青年";
shopName[8] = "ココット村の雑貨屋";
shopName[9] = "街門の気ままな雑貨商";
shopName[10] = "街の雑貨屋";
shopName[11] = "街の食材屋";
shopName[12] = "街の調合屋";
shopName[13] = "街の道具屋";
shopName[14] = "街のアリーナの雑貨屋";
shopName[15] = "街の大老殿の雑貨屋";
//******************************************************
bukiName = new Array(11);
bukiName[0] = "大剣";
bukiName[1] = "ヘビィボウガン";
bukiName[2] = "ハンマー";
bukiName[3] = "ランス";
bukiName[4] = "片手剣";
bukiName[5] = "ライトボウガン";
bukiName[6] = "双剣";
bukiName[7] = "太刀";
bukiName[8] = "狩猟笛";
bukiName[9] = "ガンランス";
bukiName[10] = "弓";
bukiHtml = new Array(11);
bukiHtml[0] = "sword.html";
bukiHtml[1] = "heavy.html";
bukiHtml[2] = "hammer.html";
bukiHtml[3] = "lance.html";
bukiHtml[4] = "blade.html";
bukiHtml[5] = "light.html";
bukiHtml[6] = "twin.html";
bukiHtml[7] = "tachi.html";
bukiHtml[8] = "shuryou.html";
bukiHtml[9] = "gunlance.html";
bukiHtml[10] = "yumi.html";
// 防具の場合,防具の種類 2:頭 3:胴 4:腕 5:腰 0:脚
boguName = new Array(6);
boguName[0] = "脚装備";
boguName[2] = "頭装備";
boguName[3] = "胴装備";
boguName[4] = "腕装備";
boguName[5] = "腰装備";
boguHtml = new Array(6);
boguHtml[0] = "foot.html";
boguHtml[2] = "head.html";
boguHtml[3] = "armor.html";
boguHtml[4] = "arm.html";
boguHtml[5] = "waist.html";
//****************************************************************
function ShowItemDetail()
{
icode = document.location.search.substring(1);
//アイテムコード
if (icode == "") return;
no = Number("0x"+icode);
if (no < 0x0001 || no > 0x0398) return;
html = "";
if (no == 0x0001) {
html += "<";
} else {
html += "<";
}
html += icode.toUpperCase();
if (no == 0x0398) {
html += ">";
} else {
html += ">";
}
hitemcode.innerHTML = html;
//アイテム名
hitemname.innerHTML = itemname[no];
//個数,レア,買値,売値
data = itemspec[no];
if (data.substring(0,3) == 255) {
hitemkosu.innerHTML = "∞";
} else {
hitemkosu.innerHTML = Number(data.substring(0,3));
}
hitemrare.innerHTML = data.substring(3,4);
if (Number(data.substring(4,9)) >= 0) {
hitemkaiz.innerHTML = Number(data.substring(4,9)) + "z";
}
hitemuriz.innerHTML = Number(data.substring(9,14)) + "z";
//説明文
hitemdesc.innerHTML = itemdesc[no];
if (no > 0x031d) return;
//****************************************************************
//采取
hitemsaishu0.innerHTML = FormatSaishu(itemsaishu0[no], 0);
hitemsaishu1.innerHTML = FormatSaishu(itemsaishu1[no], 0);
hitemsaishu2.innerHTML = FormatSaishu(itemsaishu2[no], 0);
hitemsaishu3.innerHTML = FormatSaishu(itemsaishu3[no], 1);
hitemsaishu4.innerHTML = FormatSaishu(itemsaishu4[no], 1);
hitemsaishu5.innerHTML = FormatSaishu(itemsaishu5[no], 1);
//****************************************************************
//剥取
hitemhagi0.innerHTML = FormatHagi(itemhagi0[no]);
hitemhagi1.innerHTML = FormatHagi(itemhagi1[no]);
//****************************************************************
//報酬
hitemhoshu0.innerHTML = FormatHoushu(itemhoshu0[no]);
hitemhoshu1.innerHTML = FormatHoushu(itemhoshu1[no]);
//****************************************************************
//調合・その他
// 0-0: 識別子 M:2種調合 X:3種調合
// J:爺さん K:マカ壷
// S:ただの文字列 1-3:文字列の長さ 4-:文字列
// G:(ドス)贪吃金枪鱼食べた結果出現するか
data = itemchogo[no];
html = "";
ic = 0;
while (ic < data.length) {
if (ic > 0) html += "
";
yflag = data.substring(ic,ic+1);
if (yflag == "M") {
html += FormatItemName(data.substring(ic+1,ic+4)) + " と ";
html += FormatItemName(data.substring(ic+4,ic+7)) + " を2種調合";
html += " (成功率" + Number(data.substring(ic+7,ic+10)) + "%)";
if (data.substring(ic+10,ic+11) == 1) html += " 【錬金】";
ic = ic + 11;
} else if (yflag == "X") {
html += FormatItemName(data.substring(ic+1,ic+4)) + " と ";
html += FormatItemName(data.substring(ic+4,ic+7)) + " と ";
html += FormatItemName(data.substring(ic+7,ic+10)) + " を3種調合";
html += " (成功率" + Number(data.substring(ic+10,ic+13)) + "%)";
if (data.substring(ic+13,ic+14) == 1) html += " 【錬金】";
ic = ic + 14;
} else if (yflag == "J") {
kind = data.substring(ic+1,ic+2); //爺さんの場所
if (kind == 9) {
html += "どこの爺さんでも ";
html += FormatItemName(data.substring(ic+2,ic+5));
numb = data.substring(ic+5,ic+7);
if (numb > 1) html += "×" + numb;
html += " を渡すと貰える";
} else {
html += mapName[kind] + "の爺さんに ";
html += FormatItemName(data.substring(ic+2,ic+5));
html += " を渡すと貰えることがある";
}
ic = ic + 7;
} else if (yflag == "K") {
html += FormatItemName(data.substring(ic+1,ic+4));
html += " を";
html += "";
html += "一定時間埋めておくと入手";
ic = ic + 6;
} else if (yflag == "S") {
numb = Number(data.substring(ic+1,ic+4)); //文字列の長さ
html += data.substring(ic+4, ic+4+numb);
ic = ic + 4 + numb;
} else if (yflag == "G") {
html += FormatItemName(data.substring(ic+1,ic+4));
html += " を食べて体力が回复しなかった場合、";
html += Number(data.substring(ic+4,ic+7)) + "%の確率で入手";
ic = ic + 7;
} else {
alert("Illegal identification code");
break;
}
}
hitemchogo.innerHTML = html;
//****************************************************************
//購入
// 0-1: 購入場所番号
//
data = itemkonyu[no];
html = "";
for (ic=0; ic 0) html += "
";
html += shopName[shopNo] + " から購入";
}
hitemkonyu.innerHTML = html;
//****************************************************************
//武具への用途
// 0-0:フラグ W:武器 B:防具 S:装飾品
// 1-1:武器の場合,武器の種類 0:大剣 2:ハンマー 3:ランス 4:片手件 6:双剣 7:太刀 8:狩猟笛 9:ガンランス
// 1:ヘヴィボウガン 5:ライトボウガン A:弓
// 防具の場合,防具の種類 2:頭 3:胴 4:腕 5:腰 0:脚
// 装飾品の場合未使用
// 2-4:武器/防具/装飾品No.
// 5-5:用途フラグ 0:生産 1:強化 2-7:レベルアップ
// 6-7:必要個数
//以後は強化の場合のみで強化元データ
// 8-8:武器の種類/防具の種類
// 9-11:武器/防具No.
//****************************************************************
data = itemyoto0[no];
html = "";
ic = 0;
while (ic < data.length) {
yflag = data.substring(ic+5,ic+6); //用途フラグ
//武器の場合
if (data.substring(ic,ic+1) == "W") {
if (yflag == 1) {
html += FormatBukiName(data.substring(ic+8,ic+12));
html += " から ";
}
html += FormatBukiName(data.substring(ic+1,ic+5));
if (yflag == 0) {
html += " の生産に必要";
} else if (yflag == 1) {
html += " への強化に必要";
}
html += " (" + Number(data.substring(ic+6,ic+8)) + "個)
";
//防具の場合
} else if (data.substring(ic,ic+1) == "B") {
kind = Number(data.substring(ic+1,ic+2));
html += boguName[kind] + " ";
if (yflag == 1) {
html += FormatBoguName(data.substring(ic+8,ic+12));
html += " から ";
}
html += FormatBoguName(data.substring(ic+1,ic+5));
if (yflag == 0) {
html += " の生産に必要";
} else if (yflag == 1) {
html += " への強化に必要";
} else if (yflag >= 2) {
html += " 等级" + yflag + " 的升级所必要";
}
html += " (" + Number(data.substring(ic+6,ic+8)) + "個)
";
//装飾品の場合
} else if (data.substring(ic,ic+1) == "S") {
html += FormatSoshName(data.substring(ic+1,ic+5));
html += " の生産に必要";
html += " (" + Number(data.substring(ic+6,ic+8)) + "個)
";
}
//次のデータ
if (yflag == 1) {
ic = ic + 12;
} else {
ic = ic + 8;
}
}
hitemyoto0.innerHTML = html;
//****************************************************************
//その他の用途
// 0-0: 識別子 M:2種調合 X:3種調合
// J:爺さん
// S:ただの文字列 1-3:文字列の長さ 4-:文字列
// G:(ドス)贪吃金枪鱼食べた結果出現するアイテム
data = itemyoto1[no];
html = "";
ic = 0;
while (ic < data.length) {
if (ic > 0) html += "
";
yflag = data.substring(ic,ic+1); //識別子
if (yflag == "J") {
kind = data.substring(ic+1,ic+2); //爺さんの場所
if (kind == 9) {
html += "どこの爺さんでも、";
numb = Number(data.substring(ic+2,ic+4));
if (numb > 1) html += numb + "個";
html += "渡すと ";
html += FormatItemName(data.substring(ic+4,ic+7));
html += " が貰える";
} else {
html += mapName[kind] + "の爺さんに渡すと ";
html += FormatItemName(data.substring(ic+4,ic+7));
numb = data.substring(ic+7,ic+10);
if (numb > 0) html += " か " + FormatItemName(numb);
numb = data.substring(ic+10,ic+13);
if (numb > 0) html += " か " + FormatItemName(numb);
numb = data.substring(ic+13,ic+16);
if (numb > 0) html += " か " + FormatItemName(numb);
html += " が貰える";
}
ic = ic + 16;
} else if (yflag == "M") { //2種調合に使える
html += FormatItemName(data.substring(ic+8,ic+11));
html += " と2種調合すれば ";
html += FormatItemName(data.substring(ic+1,ic+4));
html += " が作れる (成功率";
html += Number(data.substring(ic+4,ic+7)) + "%)";
if (data.substring(ic+7,ic+8) == 1) html += " 【錬金】";
ic = ic + 11;
} else if (yflag == "X") { //3種調合に使える
html += FormatItemName(data.substring(ic+8,ic+11));
html += " と ";
html += FormatItemName(data.substring(ic+11,ic+14));
html += " とで3種調合すれば ";
html += FormatItemName(data.substring(ic+1,ic+4));
html += " が作れる (成功率";
html += Number(data.substring(ic+4,ic+7)) + "%)";
if (data.substring(ic+7,ic+8) == 1) html += " 【錬金】";
ic = ic + 14;
} else if (yflag == "K") { //塊系が何になるか
html += "武具屋で生産すると、";
html += Number(data.substring(ic+5,ic+7)) + "%の確率で ";
html += FormatBukiName(data.substring(ic+1,ic+5));
html += " になる";
ic = ic + 7;
} else if (yflag == "G") { //(ドス)贪吃金枪鱼食べた結果出現するアイテム
html += "食べて体力が回复しなかった場合、";
html += Number(data.substring(ic+1,ic+4)) + "%の確率で ";
html += FormatItemName(data.substring(ic+4,ic+7));
html += " が出現";
ic = ic + 7;
} else if (yflag == "S") {
numb = Number(data.substring(ic+1,ic+4)); //文字列の長さ
html += data.substring(ic+4, ic+4+numb);
ic = ic + 4 + numb;
}
}
hitemyoto1.innerHTML = html;
}
//---------------------------------
function FormatItemName(tdata)
{
thtml = "";
tbno = Number(tdata);
if (tbno == 0) {
thtml += "何かアイテム";
} else {
thtml += "";
thtml += itemname[tbno] + "";
}
return thtml;
}
//---------------------------------
function FormatBukiName(tdata)
{
thtml = "";
tkind = Number("0x"+tdata.substring(0,1));
thtml += bukiName[tkind] + " ";
tbno = Number(tdata.substring(1,4));
thtml += "";
if (tkind == 1 || tkind == 5 || tkind == 10) {
thtml += gunname[tbno] + "";
} else {
thtml += kenname[tbno] + "";
}
return thtml;
}
//---------------------------------
function FormatBoguName(tdata)
{
thtml = "";
tkind = Number("0x"+tdata.substring(0,1));
tbno = Number(tdata.substring(1,4));
thtml += "";
if (tkind == 0) {
thtml += footname[tbno];
} else if (tkind == 2) {
thtml += headname[tbno];
} else if (tkind == 3) {
thtml += armorname[tbno];
} else if (tkind == 4) {
thtml += armname[tbno];
} else if (tkind == 5) {
thtml += waistname[tbno];
}
thtml += "";
return thtml;
}
//---------------------------------
function FormatSoshName(tdata)
{
thtml = "";
thtml += "装飾品 ";
tbno = Number(tdata.substring(1,4));
thtml += "";
thtml += soshname[tbno] + "";
return thtml;
}
//****************************************************************
// 采取発掘用のhtml構文生成
// 0-1: マップ番号
// 2-3: エリア番号 (00:BC 15:隠し)
// 4-5: ポイント番号
// 6-8: 昼の確率
// 9-11: 夜の確率
//****************************************************************
function FormatSaishu(tdata, tcla)
{
thtml = "";
for (ic=0; ic 0) thtml += "
";
thtml += "";
thtml += mapName[mapNo];
if (areaNo == 0) {
thtml += " キャンプ地-" + ptsNo;
} else if (areaNo == 15) {
thtml += " 隠しエリア-" + ptsNo;
} else {
thtml += " エリア " + areaNo + "-" + ptsNo;
}
thtml += "";
if (prob1 > 0) thtml += " 昼 " + prob1 + "%";
if (prob2 > 0) thtml += " 夜 " + prob2 + "%";
}
return thtml;
}
//****************************************************************
// 剥取用のhtml構文生成
// 0-1: 怪物コード
// 2-2: 種類(0:本体 1:尻尾 2:落し物 3:背中 4:(キング) 5:落し物 1 6:落し物 2 7:落し物 3)
// 3-5: 確率
//****************************************************************
function FormatHagi(tdata)
{
thtml = "";
for (ic=0; ic 0) thtml += "
";
thtml += "";
thtml += monsName[monsNo] + "";
if (kind == 0) {
thtml += " から剥取";
} else if (kind == 1) {
thtml += " の尻尾から剥取";
} else if (kind == 2) {
thtml += " の落し物を采取";
} else if (kind == 3) {
thtml += " の背中から剥取";
} else if (kind == 4) {
thtml += "(キング) から剥取";
} else if (kind == 5) {
thtml += " の落し物1を采取";
} else if (kind == 6) {
thtml += " の落し物2を采取";
} else if (kind == 7) {
thtml += " の落し物3を采取";
}
thtml += " (" + prob + "%)";
}
return thtml;
}
//****************************************************************
// クエスト報酬用のhtml構文生成
// 0-2:クエ一連番号
// 3-5:確率
// 6-8:報酬名文字列長さ
// 9- :報酬名
//****************************************************************
function FormatHoushu(tdata)
{
thtml = "";
ic = 0;
while (ic < tdata.length) {
if (ic > 0) thtml += "
";
tqno = Number(tdata.substring(ic,ic+3));
prob = Number(tdata.substring(ic+3,ic+6));
seas = Number(tdata.substring(ic+6,ic+7)); //季節
numb = Number(tdata.substring(ic+7,ic+10)); //文字長さ
if (tqno < 500) { //通常のクエスト
tqnm = quename[tqno];
if (tqnm.charAt(0) == 0) {
thtml += "离线☆";
} else {
thtml += "线上★";
}
thtml += tqnm.charAt(1) + " ";
thtml += "" + " ";
thtml += "";
thtml += tqnm.substring(6) + "" + " の ";
if (numb >= 900) {
thtml += hoshuName[numb-900];
numb = 0;
} else {
thtml += tdata.substring(ic+10,ic+10+numb);
}
thtml += " (" + prob + "%)";
} else {
tqnm = vquename[tqno-500];
thtml += "活动任务 ";
thtml += "";
thtml += tqnm + "" + " の ";
if (numb >= 900) {
thtml += hoshuName[numb-900];
numb = 0;
} else {
thtml += tdata.substring(ic+10,ic+10+numb);
}
thtml += " (" + prob + "%)";
}
ic = ic + 10 + numb;
}
return thtml;
}
//****************************************************************
// %0?d で書式化
//****************************************************************
function FixData(numb, nc)
{
ttmp = "00000000" + numb;
tk = ttmp.length;
ttmp = ttmp.substring(tk-nc,tk);
return ttmp;
}
//****************************************************************
// %0?x で書式化
//****************************************************************
function Fix16Data(numb, nc)
{
ttmp = "00000000"+numb.toString(16);
tk = ttmp.length;
ttmp = ttmp.substring(tk-nc, tk);
return ttmp;
}
function AddHexNumber(numb)
{
ttmp = "0000"+(numb+1).toString(16);
tk = ttmp.length;
return ttmp.substring(tk-4,tk);
}
function SubHexNumber(numb)
{
ttmp = "0000"+(numb-1).toString(16);
tk = ttmp.length;
return ttmp.substring(tk-4,tk);
}