this.inherits(COMMAND);
this.command = "relive";
this.allow_die = true;
this.enter = function (me, arg) {
if (!WORLD.is_server(me)) {
return WORLD.on_cross_user_relive(me);
}
if (me.hp > 0) return me.notify("你还没死呢。");
if (!me.environment) return me.notify("你不知道在哪。");
if (me.query_temp("relive")) {
return me.notify("你已经使用了天师符,正在等待复活。");
}
me.die = USER.prototype.die;
var dt = new Date();
var isqmhd = dt.getMonth() === 3 && dt.getDate() === 5;
var ismaxcount = false;
if (isqmhd) {
let next = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours() + 1);
ismaxcount = me.add_temp('died', 1, next.getTime() - dt.getTime()) < 11;
}
// me.add_temp('died', 1, UTIL.diff_time());
if (arg == "locale") {
if (me.environment.no_relive)
return me.notify('这里不能复活。');
if (!isqmhd) {
var fu = me.find_obj_bypath("cash/tianshifu");
if (!fu || !fu.count) return me.notify("你身上没有天师符。");
me.remove_obj(fu, 1);
}
if (isqmhd && ismaxcount) {
WORLD.DATA.set_temp("new_die", me.id, 600000);
WORLD.DATA.set_temp("new_die_type", 1, 600000);
// me.add_temp('die1', 1, 3600000 * 28);
}
me.set_temp("relive", 1, 5000);
me.notify("你拿出一张天师符,口中念念有词!\n五秒后将原地复活");
this.call_out(x => {
me.hp = me.max_hp;
me.mp = me.max_mp;
me.notify('{type:"die",relive:true}');
if (me.force_skill.on_relive) {
me.force_skill.on_relive(me);
}
if (me.environment.on_relive && me.environment.on_relive(me, true) === false) {
return;
}
me.clear_status();
let room = me.environment;
me.environment = null;
me.moveto(room, null, "" + me.name + "的尸体发出阵阵光芒。");
}, 5000);
} else {
var area = me.environment.parent;
var area_name = null;
if (area) area_name = area.name;
if (me.environment.on_relive && me.environment.on_relive(me, false) === false) {
return;
}
var recover_room = me.environment.query_recover_room();
var is_fb = me.environment.is_fb();
if (is_fb) {
me.environment.clear_copy(me);
}
// if(me.query_temp('ns_bt')){
// let npc=me.environment.find_obj_bypath('pub/nianshou');
// if(npc){
// npc.destroy();
// //me.remove_temp('ns_bt');
// }
// }
me.environment.item_changed(me, false);
var room = ROOM.Get(recover_room);
me.hp = 1;
me.clear_status();
room.do_enter(me, true, "你忽然发现前面多了一个人影,不过那人影又好像已经在那里很久了,只是你一直没发觉。");
area.on_leaved(me);
if (isqmhd && ismaxcount) {
WORLD.DATA.set_temp("new_die", me.id, 600000);
WORLD.DATA.set_temp("new_die_type", 2, 600000);
//me.add_temp('die2', 1, 3600000 * 28);
}
if (area_name && is_fb) {
me.notify("你的副本" + area_name + "失败了。");
}
me.notify('{type:"die",relive:true}');
if (me.force_skill.on_relive) {
me.force_skill.on_relive(me);
}
if ((!me.team || me.team[0] === me) && me.query_temp('fbbs', 0) === 1) {
me.remove_temp('fbbs');
}
}
}