99 lines
3.1 KiB
JavaScript
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":"创建角色失败"}');
|
|
}
|
|
}
|
|
}
|
|
|