this.inherits(OBJ); this.set({ unit: "张", name: "契约", desc: "一张契约", value: 100000, grade: 5 }); this.on_use = function (me, par) { if (!me.is_player) return me.notify_fail("你不能使用契约书。"); if (me.environment.parent.id != "home") return me.notify_fail("你只能在自己家使用契约。"); if (!this.npc_path) return me.notify("你使用了契约书,可是没有任何反应。"); var npc = NPC.CLONE(this.npc_path); if (!npc) return me.notify("你使用了契约书,可是没有任何反应。"); var max = me.query_temp("max_follower", 3); var is_max = false; if (me.follower && me.follower.length >= max) is_max = true; if (!par && is_max) { var str = ["{type:\"cmds\",items:["]; for (var i = 0; i < me.follower.length; i++) { if (me.follower[i].path == npc.path) { return me.notify_fail("你已经拥有" + npc.name + "了。"); } var follower = FOLLOWER.GET(me, me.follower[i]); if (!follower) return me.notify_fail("未能读取到你的追随者,请尝试出去住所重新进入。"); if (str.length > 1) str.push(","); str.push("{cmd:\"use "); str.push(this.id); str.push(" "); str.push(follower.id); str.push("\",name:\"继承"); str.push(follower.name); str.push("的属性\"}"); } me.send("你家的位置已经不多了,请选择如何安置" + npc.name + ":\n会继承你选择的随从的经验,潜能,背包,装备。技能取两者的最高等级,进阶后的技能将保持等级不变"); str.push("]}"); me.send(str.join("")); return false; } else if (par) { for (var i = 0; i < me.follower.length; i++) { if (me.follower[i].path == npc.path) { return me.notify_fail("你已经拥有" + npc.name + "了。"); } } var follower = FOLLOWER.GET(me, { id: par }); if (!follower) return me.notify_fail("你家没有这个人。"); // for (let sk in follower.skills) { // let skill = follower.skills[sk]; // if (skill.addin && skill.addin.length) // return me.notify_fail(follower.name // + "的技能" + // SKILL.get(sk).query_color_name(follower) + "已经进阶,取消进阶才可以覆盖。"); // } let old_name = follower.name; FOLLOWER.REPLACE(me, follower, npc); follower.master_json = null; if (follower.actions) { for (let item of follower.actions) { item.name = item.name.replace(old_name, npc.name); } } me.notify("恭喜你获得了" + npc.name + "的追随。"); } else { if (me.add_follower(npc)) { me.notify("恭喜你获得了" + npc.name + "的追随。"); me.environment.item_changed(FOLLOWER.GET(me, npc), true); } else { return me.notify_fail("召唤失败。"); } } } this.on_create = function (path, par) { if (!par) { return; } path = this.npcs[par.substr(1)]; if (!path) return; var npc = NPC.CLONE(path); if (!npc) return; this.name = "契约:" + npc.name; this.desc = "这是一张契约书,在你的家里使用就可以拥有" + npc.name + ",你最多可以拥有三个追随者,新增的会继承原先NPC的技能,装备,物品。"; this.npc_path = path; } this.npcs = { wang: "follower/wang", shuang: "follower/shuang", zhou: "follower/zhou", cheng: "follower/cheng", xiaozhao: "follower/xiaozhao", zhang: "follower/zhang", xia: "follower/xia", wen: "follower/wenyi", liumang: "yz/lm/xiaolm", wei: "yz/lcy/weichunfang", aobai: "bj/ao/aobai", qufeiyan: "wuyue/henshan/qufeiyan", huang: "follower/huang", azi: "follower/azi", azhu: "murong/azhu", abi: "murong/abi", long: "follower/xiaolongnv", qing: "follower/qing", qin: "follower/qin", lang: "follower/lang", dini: "follower/dini", shimei: "follower/shimei" };