init: add workspace files
This commit is contained in:
110
world/obj/sp/npc.js
Normal file
110
world/obj/sp/npc.js
Normal file
@@ -0,0 +1,110 @@
|
||||
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<hir>会继承你选择的随从的经验,潜能,背包,装备。技能取两者的最高等级,进阶后的技能将保持等级不变</hir>");
|
||||
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("<him>恭喜你获得了" + npc.name + "的追随。</him>");
|
||||
} else {
|
||||
if (me.add_follower(npc)) {
|
||||
me.notify("<him>恭喜你获得了" + npc.name + "的追随。</him>");
|
||||
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"
|
||||
};
|
||||
Reference in New Issue
Block a user