97 lines
3.0 KiB
JavaScript
97 lines
3.0 KiB
JavaScript
this.inherits(OBJ);
|
||
this.set({
|
||
unit: "张",
|
||
name: "改名符",
|
||
desc: "更改你的名字",
|
||
grade: 2,
|
||
value: 0
|
||
});
|
||
this.on_use = function (me) {
|
||
if (!me.is_player) return me.notify_fail("你不能使用" + this.name + "。");
|
||
|
||
me.notify("请说出你的名字(打开聊天框任意频道输入):");
|
||
me.send_commands("clearwait", "取消使用");
|
||
me.wait_input = readname;
|
||
return false;
|
||
}
|
||
function readname(me, cmd) {
|
||
if (cmd == "clearwait") {
|
||
me.wait_input = null;
|
||
return me.notify("停止使用");
|
||
}
|
||
if (!cmd) return me.send('请说出你的名字(打开聊天框任意频道输入):');
|
||
var ss = cmd.split(' ');
|
||
if (ss.length != 2) return me.notify("请说出你的名字(打开聊天框任意频道输入):");
|
||
var name = ss[1];
|
||
var name_reg = /^[\u4E00-\u9FA5]{2,5}$/;
|
||
if (!name_reg.test(name)) {
|
||
return me.send('你的名字需要是2-5个中文字符');
|
||
}
|
||
if (!UTIL.check_word(name)) {
|
||
return me.send('你不能用这个名字');
|
||
}
|
||
var obj = me.find_obj_bypath("cash/gaiming");
|
||
if (!obj || !obj.count) {
|
||
me.wait_input = null;
|
||
me.send('你身上没有改名符,改名失败。');
|
||
return;
|
||
}
|
||
update_name(me, name, obj);
|
||
return false;
|
||
}
|
||
|
||
async function update_name(me, name, obj) {
|
||
try {
|
||
let result = await WORLD.DB.change_name(me.id, name);
|
||
if (!result) return me.send('名称更改失败,请联系管理员');
|
||
me.wait_input = null;
|
||
me.name = name;
|
||
me.color_name = null;
|
||
me.commands_json = null;
|
||
me.environment.item_changed(me, true);
|
||
me.remove_obj(obj, 1);
|
||
var pt = me.query_party();
|
||
if (pt) {
|
||
for (var i = 0; i < pt.roles.length; i++) {
|
||
if (pt.roles[i].id == me.id) {
|
||
pt.roles[i].name = me.name;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
if (me.query_temp('wife')) {
|
||
var wife = WORLD.getUser(me.query_temp('wife'));
|
||
if (wife) {
|
||
wife.add_title(name + '的老婆', 'mar');
|
||
wife.set_temp('husband_n', name);
|
||
}
|
||
|
||
}
|
||
if (me.query_temp('husband')) {
|
||
var husband = WORLD.getUser(me.query_temp('husband'));
|
||
if (husband) {
|
||
husband.add_title(name + '的老公', 'mar');
|
||
husband.set_temp('wife_n', name);
|
||
}
|
||
}
|
||
if (me.custom_skills) {
|
||
for (let skid of me.custom_skills) {
|
||
var sk = SKILL.get(skid);
|
||
if (sk) {
|
||
sk.desc = name + "所创造的武功";
|
||
}
|
||
}
|
||
}
|
||
return me.send('你的名字已经改为:' + name + "。");
|
||
|
||
|
||
} catch (err) {
|
||
if (err.errno == 1062) {
|
||
return me.send('这个名字已经有人使用了。');
|
||
} else {
|
||
me.wait_input = null;
|
||
return me.send('名称更改失败,请联系管理员');
|
||
}
|
||
}
|
||
|
||
} |