Files
wsmud/world/obj/cash/gaiming.js
2026-05-26 16:41:20 +08:00

97 lines
3.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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('名称更改失败,请联系管理员');
}
}
}