hxp
2025-06-09 6c3f6335c70859ded94a1ad8d218acb0ac34239c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
var gt = new Gettext({ 'domain': 'gmtjs' });
var Def_MaxItemCnt = 5; // 最大可添加的物品数
var itemNum = 0; // 物品html编号
var itemNumArray = new Array(); // 最终提交的编号数值
 
function CheckSubmit() {
    if (!document.getElementById("EndDate").value) {
        alert(gt.gettext("请选择结束时间"));
        return false;
    }
 
    if (!document.getElementById("Title").value) {
        alert(gt.gettext("邮件标题不能为空"));
        document.getElementById("Title").focus();
        return false;
    }
 
    if (!document.getElementById("Text").value) {
        alert(gt.gettext("邮件内容不能为空"));
        document.getElementById("Text").focus();
        return false;
    }
 
    if (document.getElementById("playerList") && !document.getElementById("playerList").value) {
        alert(gt.gettext("收件人不能为空"));
        document.getElementById("playerList").focus();
        return false;
    }
 
    haveBindItem = false;
    havaUnknownItemName = false;
    for (var i = 0; i < itemNumArray.length; i++) {
        itemID = document.getElementById("ItemID" + itemNumArray[i]).value;
        if (!itemID || itemID.indexOf("0") == 0) {
            alert(gt.gettext("物品ID为空或输入错误"));
            document.getElementById("ItemID" + itemNumArray[i]).focus();
            return false;
        }
 
        itemCnt = document.getElementById("ItemCnt" + itemNumArray[i]).value;
        if (!itemCnt || itemCnt.indexOf("0") == 0) {
            alert(gt.gettext("个数为空或输入错误"));
            document.getElementById("ItemCnt" + itemNumArray[i]).focus();
            return false;
        }
 
        isBind = document.getElementById("IsBind" + itemNumArray[i]).value;
        if (isBind == 1) {
            haveBindItem = true;
        }
 
        itemNameInnerHtml = document.getElementById("ItemName" + itemNumArray[i]).innerHTML;
        if (itemNameInnerHtml.indexOf(gt.gettext("未知物品ID")) >= 0) {
            havaUnknownItemName = true;
        }
    }
 
    if (document.getElementById("key").type != "hidden" && !document.getElementById("key").value) {
        alert(gt.gettext("请输入授权码!"));
        document.getElementById("key").focus();
        return false;
    }
 
    if (document.getElementById("MultiServer") && !checkHaveServerSelected()) {
        return false;
    }
 
    if (haveBindItem && !confirm(gt.gettext("邮件物品【包含拍品】,是否确认发送") + "?")) {
        return false;
    }
 
    if (havaUnknownItemName && !confirm(gt.gettext("邮件物品存在【未知的物品ID】,是否确认发送") + "?")) {
        return false;
    }
 
    if (!itemNumArray.length) {
        if (!window.confirm(gt.gettext("该邮件没有物品,确定发送?"))) {
            return false;
        }
    } else {
        if (!window.confirm(gt.gettext("确定发送?"))) {
            return false;
        }
    }
    return true;
 
}
 
// 获取邮件信息
function getMailInfo() {
    var itemList = [];
    for (var i = 0; i < itemNumArray.length; i++) {
        itemID = document.getElementById("ItemID" + itemNumArray[i]).value;
        if (!itemID || itemID.indexOf("0") == 0) {
            continue;
        }
 
        itemCnt = document.getElementById("ItemCnt" + itemNumArray[i]).value;
        if (!itemCnt || itemCnt.indexOf("0") == 0) {
            continue;
        }
 
        isBind = document.getElementById("IsBind" + itemNumArray[i]).value;
 
        itemList.push([Number.parseInt(itemID), Number.parseInt(itemCnt), Number.parseInt(isBind)]);
    }
    var mailInfo = {
        "Title": document.getElementById("Title").value,
        "Text": document.getElementById("Text").value,
        "Gold": Number.parseInt(document.getElementById("Gold").value),
        "GoldPaper": Number.parseInt(document.getElementById("GoldPaper").value),
        "Silver": Number.parseInt(document.getElementById("Silver").value),
        "ItemList": itemList,
    };
    return mailInfo
}
 
// 更新职业限制
function UpdatePlayerJob(count) {
    PlayerJob = 0;
    for (var i = 1; i <= count; i++) {
        if (!document.getElementById("Job" + i).checked)
            continue
        PlayerJob = PlayerJob | Math.pow(2, i);
    }
    document.getElementById("PlayerJob").value = PlayerJob;
}
 
// 职业全选/全不选
function SelectAllJob(isChecked, count) {
    for (var i = 1; i <= count; i++) {
        document.getElementById("Job" + i).checked = isChecked;
    }
    UpdatePlayerJob(count);
}
 
// 添加补偿物品html
function AddItemHtml() {
    if (itemNumArray.length >= Def_MaxItemCnt) {
        alert(gt.gettext("最多可添加物品数") + ": " + Def_MaxItemCnt);
        return false;
    }
 
    var itemDiv = "<div id=\"item" + itemNum + "\">"
        + "ID: <input type=\"number\" name=\"ItemID" + itemNum + "\" id=\"ItemID" + itemNum + "\" value=\"\" min=\"1\" oninput=\"onItemIDChange(" + itemNum + ",this.value)\"/>"
        + "<label id='ItemName" + itemNum + "'></label>&nbsp;&nbsp;"
        + gt.gettext("个数") + ": <input type=\"number\" name=\"ItemCnt" + itemNum + "\" id=\"ItemCnt" + itemNum + "\" value=\"1\" min=\"1\" />"
        + gt.gettext("拍品") + ": <select name=\"IsBind" + itemNum + "\" id=\"IsBind" + itemNum + "\">"
        + "<option value=\"0\">" + gt.gettext("否") + "</option><option value=\"1\">" + gt.gettext("是") + "</option></select>"
        + "&nbsp;&nbsp;"
        + gt.gettext("定制") + ": <input type=\"number\" name=\"AppointID" + itemNum + "\" id=\"AppointID" + itemNum + "\" min=\"1\" />"
        + "&nbsp;&nbsp;<a href=\"javascript:DelItemHtml(" + itemNum + ")\">" + gt.gettext("删除") + "</a>"
        // + "<a href=\"javascript:AddItemEquipHtml(" + itemNum + ");\" id=\"addItemEquip" + itemNum + "\">|添加装备信息</a>"
        + "</div>";
 
    document.getElementById("itemContent").insertAdjacentHTML("beforeEnd", itemDiv);
 
    UpdateItemNum(itemNum, 1);
 
}
 
// 删除补偿物品html
function DelItemHtml(delNum) {
    document.getElementById("itemContent").removeChild(document.getElementById("item" + delNum));
    UpdateItemNum(delNum, 0);
}
 
// 添加补偿物品装备属性信息html
function AddItemEquipHtml(num) {
    var equipDiv = "<a href=\"javascript:DelItemEquipHtml(" + num + ")\" id=\"delItemEquip" + num + "\">删除装备信息</a>"
        + "<div id=\"equipInfo" + num + "\">"
        + "<table><tr><td width=\"70\"/><td><hr>"
        + "是否套装: <select name=\"IsSuite" + num + "\"><option value=\"0\">否</option><option value=\"1\">是</option></select>"
        + "套装等级: <input type=\"text\" name=\"SuiteLV" + num + "\" id=\"SuiteLV" + num + "\" value=\"\" size=\"10\" maxlength=\"3\" onkeypress=\"return IsNum(event)\"/>"
        + "五行: <select name=\"ItemProperty" + num + "\">"
        + "<option value=\"0\">无</option><option value=\"1\">金</option><option value=\"2\">木</option>"
        + "<option value=\"3\">水</option><option value=\"4\">火</option><option value=\"5\">土</option>"
        + "</select>"
        + "认主: <select name=\"IsRenZhu" + num + "\"><option value=\"0\">否</option><option value=\"1\">是</option></select>"
        + "<br/>"
        + "装备星级: <input type=\"text\" name=\"StarLV" + num + "\" id=\"StarLV" + num + "\" value=\"\" size=\"10\" maxlength=\"3\" onkeypress=\"return IsNum(event)\"/>"
        + "契合等级: <input type=\"text\" name=\"FitLV" + num + "\" id=\"FitLV" + num + "\" value=\"\" size=\"10\" maxlength=\"3\" onkeypress=\"return IsNum(event)\"/>"
        + "最大附魔次数: <input type=\"text\" name=\"MaxAddSkillCnt" + num + "\" id=\"MaxAddSkillCnt" + num + "\" value=\"\" size=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "<br/>"
        + "当前耐久: <input type=\"text\" name=\"CurDurg" + num + "\" id=\"CurDurg" + num + "\" value=\"\" size=\"10\" maxlength=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "最大耐久: <input type=\"text\" name=\"MaxDurg" + num + "\" id=\"MaxDurg" + num + "\" value=\"\" size=\"10\" maxlength=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "灵魂属性属性: <input type=\"text\" name=\"SoulProperty" + num + "\" id=\"SoulProperty" + num + "\" value=\"\" size=\"10\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "<br/>"
        + "<br/>"
        + "镶嵌凹槽: <select name=\"CanPlaceStoneCount" + num + "\">"
        + "<option value=\"0\">无</option><option value=\"1\">1</option><option value=\"2\">2</option><option value=\"3\">3</option>"
        + "<option value=\"4\">4</option><option value=\"5\">5</option><option value=\"6\">6</option>"
        + "<option value=\"7\">7</option><option value=\"8\">8</option><option value=\"9\">9</option>"
        + "</select><br/>"
        + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
        + "宝石1:<input type=\"text\" name=\"Stone" + num + "_1\" id=\"Stone1_" + num + "\" value=\"\" size=\"6\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "宝石2:<input type=\"text\" name=\"Stone" + num + "_2\" id=\"Stone2_" + num + "\" value=\"\" size=\"6\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "宝石3:<input type=\"text\" name=\"Stone" + num + "_3\" id=\"Stone3_" + num + "\" value=\"\" size=\"6\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/><br/>"
        + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
        + "宝石4:<input type=\"text\" name=\"Stone" + num + "_4\" id=\"Stone4_" + num + "\" value=\"\" size=\"6\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "宝石5:<input type=\"text\" name=\"Stone" + num + "_5\" id=\"Stone5_" + num + "\" value=\"\" size=\"6\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "宝石6:<input type=\"text\" name=\"Stone" + num + "_6\" id=\"Stone6_" + num + "\" value=\"\" size=\"6\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/><br/>"
        + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
        + "宝石7:<input type=\"text\" name=\"Stone" + num + "_7\" id=\"Stone7_" + num + "\" value=\"\" size=\"6\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "宝石8:<input type=\"text\" name=\"Stone" + num + "_8\" id=\"Stone8_" + num + "\" value=\"\" size=\"6\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "宝石9:<input type=\"text\" name=\"Stone" + num + "_9\" id=\"Stone9_" + num + "\" value=\"\" size=\"6\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/><br/><br/>"
        + "剩余小时: <input type=\"text\" name=\"RemainHour" + num + "\" id=\"RemainHour" + num + "\" value=\"\" size=\"10\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "熟练度: <input type=\"text\" name=\"Proficiency" + num + "\" id=\"Proficiency" + num + "\" value=\"\" size=\"10\" maxlength=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "<br/> "
        + "最小物攻: <input type=\"text\" name=\"EquipMinAtkValue" + num + "\" id=\"EquipMinAtkValue" + num + "\" value=\"\" size=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "最大物攻: <input type=\"text\" name=\"EquipMaxAtkValue" + num + "\" id=\"EquipMaxAtkValue" + num + "\" value=\"\" size=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "物里防御: <input type=\"text\" name=\"EquipDefenseValue" + num + "\" id=\"EquipDefenseValue" + num + "\" value=\"\" size=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "<br/>"
        + "最小魔攻: <input type=\"text\" name=\"EquipMinMagicAtkValue" + num + "\" id=\"EquipMinMagicAtkValue" + num + "\" value=\"\" size=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "最大魔攻: <input type=\"text\" name=\"EquipMaxMagicAtkValue" + num + "\" id=\"EquipMaxMagicAtkValue" + num + "\" value=\"\" size=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "魔法防御: <input type=\"text\" name=\"EquipMagicDefValue" + num + "\" id=\"EquipMagicDefValue" + num + "\" value=\"\" size=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "<br/>"
        + "HP基础值: <input type=\"text\" name=\"BaseHP" + num + "\" id=\"BaseHP" + num + "\" value=\"\" size=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "魔防基础值: <input type=\"text\" name=\"BaseMagicDef" + num + "\" id=\"BaseMagicDef" + num + "\" value=\"\" size=\"10\" onkeypress=\"return IsNum(event)\"/>"
        + "<br/>"
        + "<hr>"
        + "<!-- UserData相关 -->"
        + "是否幸运: <select name=\"IsLucky" + num + "\"><option value=\"0\">否</option><option value=\"1\">是</option></select>"
        + "物品取消使用等级限制:<select name=\"IsCancelUseLV" + num + "\"><option value=\"0\">否</option><option value=\"1\">是</option></select>"
        + "<br/>"
        + "追加等级: <input type=\"text\" name=\"AddAttrLV" + num + "\" id=\"AddAttrLV" + num + "\" value=\"\" size=\"10\" maxlength=\"3\" onkeypress=\"return IsNum(event)\"/>"
        + "武器技能增强效果:<input type=\"text\" name=\"WeaponSkill" + num + "\" id=\"WeaponSkill" + num + "\" value=\"\" size=\"10\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "效果值:<input type=\"text\" name=\"WeaponSkillValue" + num + "\" id=\"WeaponSkillValue" + num + "\" value=\"\" size=\"10\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "<br/>"
        + "卓越属性列表: <input type=\"text\" name=\"GreatAttrList" + num + "\" id=\"GreatAttrList" + num + "\" value=\"\"/>(多个属性用\",\"隔开)<br/>"
        + "高级属性列表: <input type=\"text\" name=\"SpecialAttrList" + num + "\" id=\"SpecialAttrList" + num + "\" value=\"\"/>(多个属性用\",\"隔开)<br/>"
        + "基础属性比例: <input type=\"text\" name=\"BaseAttrRate" + num + "\" id=\"BaseAttrRate" + num + "\" value=\"\" size=\"10\" maxlength=\"6\" onkeypress=\"return IsNum(event)\"/>"
        + "物品来源: <select name=\"ItemSource" + num + "\">"
        + "<option value=\"100\">不设置</option><option value=\"0\">无</option><option value=\"1\">寻宝</option><option value=\"2\">积分购买</option>"
        + "<option value=\"3\">物品兑换</option></select><br/>"
        + "其他Userdata: <input type=\"text\" name=\"UserDataEx" + num + "\" id=\"UserDataEx" + num + "\" value=\"\" size=\"65\"/><br/>(UserData可直接从F11封包中复制装备刷新包中的UserData信息黏贴即可)<br/>"
        + "</td></tr></table><hr/></div>"
        + "";
 
    var itemObj = document.getElementById("item" + num)
    itemObj.insertAdjacentHTML("beforeEnd", equipDiv);
    itemObj.removeChild(document.getElementById("addItemEquip" + num));
}
 
// 删除补偿物品装备属性信息html
function DelItemEquipHtml(delNum) {
    var itemObj = document.getElementById("item" + delNum);
    itemObj.insertAdjacentHTML("beforeEnd", "<a href=\"javascript:AddItemEquipHtml(" + delNum + ");\" id=\"addItemEquip" + delNum + "\">添加装备信息</a>");
 
    itemObj.removeChild(document.getElementById("delItemEquip" + delNum));
    itemObj.removeChild(document.getElementById("equipInfo" + delNum));
}
 
// 更新物品html编号串,actionType 0-删除;1-增加
function UpdateItemNum(num, actionType) {
 
    if (actionType == 1) {
        itemNumArray.push(num); // 添加该元素编号
        itemNum++; // 更新下一个可增加的编号,只增不减
    }
    else {
        for (var i = 0; i < itemNumArray.length; i++) {
            if (itemNumArray[i] == num) {
                itemNumArray.splice(i, 1); // 移除元素下标起一个元素
                break;
            }
        }
    }
 
    document.getElementById("itemNums").value = itemNumArray.join(",");
}
 
// 检查是否数字
function IsNum(e) {
    var k = window.event ? e.keyCode : e.which;
 
    if (((k >= 48) && (k <= 57)) || k == 8 || k == 0) {
    } else {
        if (window.event) {
            window.event.returnValue = false;
        } else {
            e.preventDefault(); //for firefox
        }
    }
 
}