Files
wsmud/world/cmd/comm/createrole.js
2026-05-26 16:41:20 +08:00

99 lines
3.1 KiB
JavaScript

this.inherits(COMMAND);
this.command = "createrole";
var name_reg = /^[\u4E00-\u9FA5]{2,5}$/;
var id_reg = /^[a-z][a-z0-9]{2,9}$/;
this.allow_login = true;
this.enter = function (me, pars) {
if (me.id) return me.send('{"type":"regist","result":"请刷新页面重新操作"}');
pars = pars.split(' ');
var name = pars[0], gender = parseInt(pars[1]),
str = parseInt(pars[2]), con = parseInt(pars[3]), dex = parseInt(pars[4]), int = parseInt(pars[5]);
if (gender != 1 && gender != 2) {
return me.send('{"type":"regist","result":"注册信息错误"}');
}
if (!name_reg.test(name)) {
return me.send('{"type":"regist","result":"姓名需要是2-5个汉字"}');
}
if (!UTIL.check_word(name)) {
return me.send('{"type":"regist","result":"你不能用这个名字"}');
}
if (WORLD.find_user(name)) {
return me.send('{"type":"regist","result":"这个名字已经有人用了"}');
}
if (str < 15 || str > 30) {
return me.send('{"type":"regist","result":"力量属性需要在15-30之间。"}');
}
if (con < 15 || con > 30) {
return me.send('{"type":"regist","result":"根骨属性需要在15-30之间。"}');
}
if (dex < 15 || dex > 30) {
return me.send('{"type":"regist","result":"身法属性需要在15-30之间。"}');
}
if (int < 15 || int > 30) {
return me.send('{"type":"regist","result":"悟性属性需要在15-30之间。"}');
}
if (str + con + dex + int != 80) {
return me.send('{"type":"regist","result":"属性之和必须等于80"}');
}
me.ip_address = me.socket.remoteAddress;
if (!WORLD.USERLOGIN.check_user(me)) return;
me.name = name;
me.id = UTIL.create_id();
me.gender = gender;
me.level = 0;
me.exp = 0;
me.pot = 0;
//me.age = 14;
me.str = str;
me.con = con;
me.dex = dex;
me.int = int;
me.per = parseInt(Math.random() * 5) + 20;
me.kar = 20;
me.limit_mp = 0;
me.max_mp = 100;
me.recount();
me.hp = me.max_hp;
me.mp = me.max_mp;
me.reg_time = parseInt(Date.now() / 60000);
me.set_objects(["eq/lv0/cloth", 1, 1]);
me.set_temp("new", 1);
me.set_temp("sr", 1);
me.set_temp("hy_ct", 50);
me.set_setting("ban_pk", 1);
me.eq_groups = [];
me.sk_groups = [];
me.skills = {};
this.save2db(me);
}
this.save2db = async function (me) {
try {
let roleData = me.getData();
roleData.server = WORLD.SERVERID;
let suc = await WORLD.DB.addRole(roleData);
if (suc) {
WORLD.USERS.push(me);
me.wait_input = null;
me.do_login();
} else {
return me.send('{"type":"regist","result":"创建角色失败"}');
}
} catch (err) {
if (err.errno == 1062) {
me.id = null;
return me.send('{"type":"regist","result":"角色名称重复,请重新输入"}');
} else {
console.log("角色创建失败", err, pars);
return me.send('{"type":"regist","result":"创建角色失败"}');
}
}
}