init: add workspace files
This commit is contained in:
19
world/npc/pub/baodi.js
Normal file
19
world/npc/pub/baodi.js
Normal file
@@ -0,0 +1,19 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "易直非",
|
||||
desc: "一个神秘的商人,可以帮你兑换你一直想要却得不到的道具",
|
||||
title: "神秘商人",
|
||||
gender: 1,
|
||||
age: 25,
|
||||
per: this.random(20) + 10,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400
|
||||
});
|
||||
|
||||
this.add_action("ask3", "兑换", function (me) {
|
||||
|
||||
});
|
||||
|
||||
|
||||
43
world/npc/pub/bing.js
Normal file
43
world/npc/pub/bing.js
Normal file
@@ -0,0 +1,43 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "官兵",
|
||||
desc: "虽然官兵的武艺不能和武林人士相比,可是他们讲究的是人多力量大。",
|
||||
gender: 1,
|
||||
age: 35,
|
||||
per: this.random(20) + 10,
|
||||
mp: 1500,
|
||||
max_mp: 1500,
|
||||
hp: 1500,
|
||||
max_hp: 1500,
|
||||
score: 10
|
||||
});
|
||||
this.set_objects([
|
||||
"eq/lv1/junfu", 1, 1
|
||||
], [
|
||||
"eq/lv0/dao", 1, 1
|
||||
]);
|
||||
this.set_drop({
|
||||
obj: "money/silver",
|
||||
min: 2,
|
||||
max: 5
|
||||
}, {
|
||||
obj: ["eq/lv0/cloth", "eq/lv0/jian", "eq/lv0/dao"],
|
||||
odds: 6000
|
||||
}, {
|
||||
obj: ["eq/lv1/guanfu", "eq/lv1/junfu", "book/book#sword", "book/book#blade"],
|
||||
odds: 2000
|
||||
});
|
||||
this.skill_map(
|
||||
["unarmed", 150],
|
||||
["dodge", 150],
|
||||
["parry", 150],
|
||||
["blade", 150]);
|
||||
|
||||
this.on_kill = function (me) {
|
||||
this.each_item(item => {
|
||||
if (item != this && item.path == this.path) {
|
||||
this.send_room("$N喊道:兄弟们并肩子上!");
|
||||
item.do_kill(me);
|
||||
}
|
||||
}, this.environment);
|
||||
}
|
||||
45
world/npc/pub/biwu.js
Normal file
45
world/npc/pub/biwu.js
Normal file
@@ -0,0 +1,45 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "擂台比武报名",
|
||||
desc: "他是负责比武大赛报名的",
|
||||
gender: 1,
|
||||
age: 35,
|
||||
per: this.random(20) + 10,
|
||||
mp: 1500,
|
||||
max_mp: 1500,
|
||||
hp: 1500,
|
||||
max_hp: 1500
|
||||
});
|
||||
this.set_objects([
|
||||
"eq/lv1/junfu", 1, 1
|
||||
]);
|
||||
|
||||
|
||||
this.query_commands = function (player) {
|
||||
if (this.json) return this.json;
|
||||
var json = {};
|
||||
json.type = "item";
|
||||
json.desc = this.desc;
|
||||
json.id = this.id;
|
||||
json.commands = [];
|
||||
|
||||
json.commands.push({
|
||||
cmd: "askbiwu " + this.id,
|
||||
name: "挑战"
|
||||
});
|
||||
json.commands.push({
|
||||
cmd: "askbiwu1 " + this.id,
|
||||
name: "更新我的比武状态"
|
||||
});
|
||||
this.json = JSON.stringify(json);
|
||||
return this.json;
|
||||
}
|
||||
this.add_action("askbiwu", "挑战", function (me) {
|
||||
me.send('从高手榜单选择你要挑战的高手。');
|
||||
});
|
||||
|
||||
this.add_action("askbiwu1", "观战", function (me) {
|
||||
|
||||
WORLD.COMMANDS['biwu'].enter(me, 'watch');
|
||||
});
|
||||
|
||||
76
world/npc/pub/bpguanli.js
Normal file
76
world/npc/pub/bpguanli.js
Normal file
@@ -0,0 +1,76 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "帮会管理员",
|
||||
desc: "他是帮会方面的管理员",
|
||||
gender: 1,
|
||||
age: 44,
|
||||
per: this.random(20) + 10,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
no_fight: true
|
||||
|
||||
});
|
||||
this.on_kill = function (me) {
|
||||
return false;
|
||||
}
|
||||
this.set_objects(["eq/lv0/cloth", 1, 1]);
|
||||
this.add_action("askhyd", "活跃度查询", function (me, par) {
|
||||
var pt = me.query_party();
|
||||
if (!pt) return me.notify("你还没有加入帮派。");
|
||||
var str = ["<hic>帮会管理员说道:我们帮派本周的活跃度是:" + pt.query_score() + ",成员完成每日任务获得活跃度,每周一清空</hic>"];
|
||||
var lv = ["", "武士", "武师", "宗师", "武圣", "武帝", "武神"];
|
||||
var lv_sc = [];
|
||||
for (var i = 1; i < 7; i++) {
|
||||
str.push("\n");
|
||||
str.push(lv[i]);
|
||||
str.push("活跃度:");
|
||||
str.push(pt.query_temp('sc' + i, 0));
|
||||
str.push("/");
|
||||
str.push((pt.level + 3) * 200);
|
||||
}
|
||||
me.send(str.join(""));
|
||||
if (me.query_temp('pt_lv', 0) < 5) {
|
||||
me.send_commands("party fam", "开启帮派战",
|
||||
"party boss", "发送英雄帖",
|
||||
"party xiangyang", "守卫襄阳",
|
||||
"party lvliu", "绿柳山庄");
|
||||
}
|
||||
});
|
||||
this.add_action("ptset1", "帮会设置", function (me, par) {
|
||||
var pt = me.query_party();
|
||||
if (!pt) return me.notify("你还没有加入帮派。");
|
||||
if (me.query_temp('pt_lv', 0) > pt.query_temp("power", 2)) {
|
||||
return me.notify("你没有权限更改设置。");
|
||||
}
|
||||
me.notify("帮会管理员:你要更改哪些设置?");
|
||||
return me.send_commands("party setting power", "更改权限", "party setting join", "加入方式",
|
||||
"party setting open_sc", "开启门派活动",
|
||||
"party setting alloc", "战利品分配", "party setting notice", "发布公告");
|
||||
|
||||
});
|
||||
|
||||
this.add_action("sendntc", "发布公告", function (me, par) {
|
||||
|
||||
WORLD.COMMANDS['party'].enter(me, 'notice');
|
||||
});
|
||||
|
||||
this.add_action("levelup2", "设施升级", function (me, par) {
|
||||
var pt = me.query_party();
|
||||
if (!pt) return me.notify("你还没有加入帮派。");
|
||||
if (me.query_temp('pt_lv', 0) > 1) {
|
||||
return me.notify("你没有权限升级设施。");
|
||||
}
|
||||
var exp = pt.query_exp();
|
||||
var lvup_exp = pt.level_exp[pt.level];
|
||||
if (lvup_exp) exp = exp + "/" + lvup_exp;
|
||||
|
||||
me.notify("帮会管理员:你要升级哪些设施?当前可用积分" + exp);
|
||||
return me.send_commands("party levelup liangong", "升级练功房", "party levelup lianyao", "升级炼药房");
|
||||
|
||||
});
|
||||
this.add_action("jrfb", "进入副本区域", function (me, par) {
|
||||
|
||||
WORLD.COMMANDS['party'].enter(me, 'enter');
|
||||
});
|
||||
23
world/npc/pub/ckguanli.js
Normal file
23
world/npc/pub/ckguanli.js
Normal file
@@ -0,0 +1,23 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "仓库管理员",
|
||||
desc: "他是帮会仓库管理员",
|
||||
gender: 1,
|
||||
age: 44,
|
||||
per: this.random(20) + 10,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
|
||||
});
|
||||
this.set_objects(["eq/lv0/cloth", 1, 1]);
|
||||
this.add_action("askhyd", "仓库盘点", function (me, par) {
|
||||
var pt = me.query_party();
|
||||
if (!pt) return me.notify("你还没有加入帮派。");
|
||||
|
||||
me.send("帮会管理员说道:我们本周的活跃度是:" + pt.query_score() + ",每周一重置。");
|
||||
if (me.query_temp('pt_lv', 0) < 5) {
|
||||
me.send_commands("party fam", "开启帮派战", "party boss", "发送英雄帖");
|
||||
}
|
||||
});
|
||||
71
world/npc/pub/dadizi.js
Normal file
71
world/npc/pub/dadizi.js
Normal file
@@ -0,0 +1,71 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "大师兄",
|
||||
desc: "他就是你们门派的首席大弟子",
|
||||
title: "<hig>首席弟子</hig>",
|
||||
gender: 1,
|
||||
age: 25,
|
||||
per: 18,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400
|
||||
});
|
||||
this.on_create = function (path, par) {
|
||||
if (!par) return;
|
||||
this.family = FAMILIES[par.substr(1)];
|
||||
this.init_from(this.family);
|
||||
if (this.family == FAMILIES.EMEI) {
|
||||
this.gender = 2;
|
||||
}
|
||||
var user = WORLD.getUser(WORLD.DATA.query_temp(this.family.id + "_top"));
|
||||
this.family.init_dadizi(this, user);
|
||||
if (!user) this.family.is_init_first = false;
|
||||
}
|
||||
this.on_clone = function () {
|
||||
|
||||
}
|
||||
this.on_kill = function (me) {
|
||||
return me.notify_fail(this.name + '说道:' + this.callme() + "只接受比试。");
|
||||
}
|
||||
this.init_from = function (fam) {
|
||||
|
||||
this.set_objects(["eq/lv0/cloth", 1, 1], ["eq/lv0/jian", 1, 1]);
|
||||
|
||||
var ary = [];
|
||||
for (var i = 0; i < fam.npc_skills.length; i++) {
|
||||
ary.push([
|
||||
fam.npc_skills[i][0],
|
||||
200,
|
||||
fam.npc_skills[i][2]
|
||||
]);
|
||||
}
|
||||
this.skill_map.apply(this, ary);
|
||||
|
||||
this.max_mp = this.mp = 10000;
|
||||
this.on_heart_beat = null;
|
||||
this.on_damage = null;
|
||||
this.hp = this.max_hp = 10000;
|
||||
this.init();
|
||||
this.recount();
|
||||
}
|
||||
this.on_fight_over = function (me, issuc) {
|
||||
if (issuc) {
|
||||
me.notify(this.name + "对你嘿嘿嘿的笑了几声。");
|
||||
} else {
|
||||
me.notify(this.name + "对你嘿嘿嘿的笑了几声。");
|
||||
}
|
||||
}
|
||||
|
||||
this.greeting = function (me) {
|
||||
WORLD.COMMANDS.sx.do_greet(me, this);
|
||||
}
|
||||
|
||||
|
||||
this.manage = function (me) {
|
||||
WORLD.COMMANDS.sx.do_manage(me);
|
||||
}
|
||||
|
||||
this.add_action("ask2", "请安", this.greeting);
|
||||
this.add_action('manage', '设置', this.manage);
|
||||
|
||||
21
world/npc/pub/gaoshou1.js
Normal file
21
world/npc/pub/gaoshou1.js
Normal file
@@ -0,0 +1,21 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "武林高手",
|
||||
desc: "他是一个武林高手,但是没人知道他的名字",
|
||||
gender: 1,
|
||||
age: 25,
|
||||
per: this.random(20) + 10,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
|
||||
});
|
||||
this.set_objects(["eq/lv0/cloth",1,1]);
|
||||
this.skill_map(
|
||||
["force", 100],
|
||||
["dodge", 100],
|
||||
["parry", 100],
|
||||
["sword", 100],
|
||||
["blade", 100],
|
||||
["unarmed", 100]);
|
||||
87
world/npc/pub/guanjia.js
Normal file
87
world/npc/pub/guanjia.js
Normal file
@@ -0,0 +1,87 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "管家",
|
||||
desc: "他就是负责扬州私人住宅租售的管家,也负责替人看家",
|
||||
gender: 1,
|
||||
age: 44,
|
||||
per: this.random(20) + 10,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
|
||||
});
|
||||
this.set_objects(["eq/lv0/cloth", 1, 1]);
|
||||
this.on_enter = function (me) {
|
||||
if (me.query_temp("home")) {
|
||||
me.notify("管家对你热情的说道:您来啦,快请进。");
|
||||
} else {
|
||||
me.notify("管家招呼道:这位" + me.call() + ",需要房子吗,练功,学习都会提高效率哦。");
|
||||
}
|
||||
}
|
||||
this.set_chat_msg([
|
||||
"管家骄傲的说道:本管家经手的住宅没有一百也有八十了,客官你大可放心。",
|
||||
"管家说道:这里不但有适合住家的小别院,也有富丽堂皇的大宅,客官您要不要来看看。",
|
||||
"管家说道:这里之前据说是位财主的家,方圆几里都是他家的产业!"
|
||||
]);
|
||||
this.add_action("qianyue", "签约", function (me, par) {
|
||||
if (!WORLD.is_server(me)) {
|
||||
return me.notify("管家拦住你:这位" + me.call() + ",这里是私人住宅区,你不能进去。");
|
||||
}
|
||||
var home = me.query_temp("home");
|
||||
|
||||
if (home) {
|
||||
me.notify("管家对你说道:这位" + me.call() + ",您已经购买房屋了,可以直接进去,如果要升级住宅只需要再给我1800两黄金就可以了。");
|
||||
if (home == 1) {
|
||||
return me.send_commands("give " + this.id + " 18000000 money", "<hic>我要换成豪华型住宅</hic>");
|
||||
}
|
||||
} else {
|
||||
me.notify("管家对你说道:这位" + me.call() + ",这里有多种房屋户型提供:\n1. 精致型住宅,单人私密空间,只有一个单间附带练功房功能,价格100两黄金\n2. 豪华型住宅,包含别院,练功房,卧房,价格1888两黄金");
|
||||
return me.send_commands("give " + this.id + " 1000000 money",
|
||||
"精致型住宅", "give " + this.id + " 18880000 money", "<hic>豪华型住宅</hic>");
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
this.on_accept = function (me, obj, count) {
|
||||
if (obj !== 'money') return false;
|
||||
let home = me.query_temp('home', 0);
|
||||
if (home === 2) return me.notify_fail("管家的说道:你已经购买住宅了。");
|
||||
if (home) {
|
||||
if (count !== 18000000)
|
||||
return me.notify("管家的说道:豪华型住宅需要1800两黄金。");
|
||||
me.set_temp("home", 2);
|
||||
me.send_room("$n拿出一纸契约,给$N看了官府颁印的契尾,麻利的按好指印:多谢您老,以后这栋房子就是您的啦。", this);
|
||||
|
||||
me.clear_home(false);
|
||||
} else {
|
||||
if (count === 1000000) {
|
||||
me.set_temp("home", 1);
|
||||
me.send_room("$n拿出一纸契约,给$N看了官府颁印的契尾,麻利的按好指印:多谢您老,以后这栋房子就是您的啦。", this);
|
||||
|
||||
} else if (count === 18880000) {
|
||||
me.send_room("$n拿出一纸契约,给$N看了官府颁印的契尾,麻利的按好指印:多谢您老,以后这栋房子就是您的啦。", this);
|
||||
|
||||
me.set_temp("home", 2);
|
||||
} else {
|
||||
return me.notify("管家的说道:" + me.call() + ",你是要购买100两黄金的房子吗?");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
this.on_leave = function (me, dir) {
|
||||
if (dir == "enter") {
|
||||
if (!WORLD.is_server(me)) {
|
||||
return me.notify_fail("管家拦住你:这位" + me.call() + ",这里是私人住宅区,你不能进去。");
|
||||
}
|
||||
var home = me.query_temp("home");
|
||||
if (!home) {
|
||||
me.notify("管家拦住你:这位" + me.call() + ",这里是私人住宅区,你不能进去。");
|
||||
return false;
|
||||
} else {
|
||||
me.go_home();
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
12
world/npc/pub/hua.js
Normal file
12
world/npc/pub/hua.js
Normal file
@@ -0,0 +1,12 @@
|
||||
this.inherits(MONSTER);
|
||||
this.set({
|
||||
name: "花",
|
||||
desc: "",
|
||||
gender: 1,
|
||||
age: 35,
|
||||
mp: 1500,
|
||||
max_mp: 1500,
|
||||
hp: 1500,
|
||||
max_hp: 1500
|
||||
});
|
||||
|
||||
242
world/npc/pub/hubu.js
Normal file
242
world/npc/pub/hubu.js
Normal file
@@ -0,0 +1,242 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "赵铁笔",
|
||||
desc: "他是负责户口登记的,需要离婚,解除师徒关系可以来找他。",
|
||||
title:"户口登记",
|
||||
gender: 1,
|
||||
age: 35,
|
||||
per: this.random(20) + 10,
|
||||
mp: 1500,
|
||||
max_mp: 1500,
|
||||
hp: 1500,
|
||||
max_hp: 1500,
|
||||
score: 10
|
||||
});
|
||||
this.set_objects([
|
||||
"eq/lv1/guanfu", 1, 1
|
||||
]);
|
||||
this.check_player = function (me) {
|
||||
var wife = me.query_temp("wife") || me.query_temp("husband");
|
||||
if (!wife) return me.notify_fail("赵铁笔说道:你还没结婚呢,离什么婚!");
|
||||
var name = me.query_temp("wife") ? "妻子" : "丈夫";
|
||||
var user = WORLD.getUser(wife);
|
||||
if (!user) {
|
||||
|
||||
me.notify_fail("赵铁笔说道:你的" + name + "目前不在线,我不能给你办理离婚!");
|
||||
me.send_commands("no_marry2 " + this.id, "强制解除");
|
||||
return false;
|
||||
}
|
||||
if (!this.is_here(user)) {
|
||||
me.notify_fail("赵铁笔说道:你的" + name + "不在这里,我不能给你办理离婚!");
|
||||
me.send_commands("no_marry2 " + this.id, "强制解除");
|
||||
return false;
|
||||
}
|
||||
|
||||
return user;
|
||||
}
|
||||
this.check_player2 = function (me) {
|
||||
var tudi = me.query_temp("tudi") || me.query_temp("shifu");
|
||||
if (!tudi) return me.notify_fail("赵铁笔说道:你没有拜师,也没有收徒!");
|
||||
var name = me.query_temp("tudi") ? "徒弟" : "师父";
|
||||
var user = WORLD.getUser(tudi);
|
||||
if (!user) {
|
||||
me.notify_fail("赵铁笔说道:你的" + name + "目前不在线,我不能给你办理解除关系手续!");
|
||||
me.send_commands("no_shitu2 " + this.id, "强制解除");
|
||||
return false;
|
||||
}
|
||||
if (!this.is_here(user)) {
|
||||
me.notify_fail("赵铁笔说道:你的" + name + "不在这里,我不能给你办理解除关系手续!");
|
||||
me.send_commands("no_shitu2 " + this.id, "强制解除");
|
||||
return false;
|
||||
}
|
||||
|
||||
return user;
|
||||
}
|
||||
this.add_action("no_marry", "离婚", function (me, par) {
|
||||
var user = this.check_player(me);
|
||||
if (!user) return;
|
||||
this.send_room("$N说道:离婚这个事情可不能草率,我得问问" + me.name + "愿不愿意。注意了,双方同意离婚后将解除婚姻关系。", user);
|
||||
this.send_room("<yel>$N对著$n问道:你愿意和"+me.name+"离婚吗?</yel>", user);
|
||||
user.send_commands("no_marry_no " + this.id, "不愿意", "no_marry_yes " + this.id, "愿意");
|
||||
user.set_temp("request_no_marry", 1, 100000);
|
||||
});
|
||||
this.add_action("no_marry_no", null, function (me, par) {
|
||||
if (!me.query_temp("request_no_marry")) return me.notify("没人问你。");
|
||||
var user = this.check_player(me);
|
||||
if (!user) return;
|
||||
me.send_room("<mag>$N对著$n大声道:我不愿意!</mag>", user);
|
||||
me.remove_temp("request_no_marry");
|
||||
me.send_room("赵铁笔呵呵笑道:这个我就没办法了,咱总不能强人所难对吧。");
|
||||
});
|
||||
this.add_action("no_marry_yes", null, function (me, par) {
|
||||
if (!me.query_temp("request_no_marry")) return me.notify("没人问你。");
|
||||
var user = this.check_player(me);
|
||||
if (!user) return;
|
||||
me.send_room("<mag>$N对著$n大声道:我愿意!</mag>", user);
|
||||
me.remove_temp("request_no_marry");
|
||||
me.send_room("赵铁笔呵呵笑道:好吧,从现在开始你们两个就不是夫妻了,好自为之吧。");
|
||||
if (me.query_temp("wife")) {
|
||||
me.remove_temp("wife");
|
||||
me.remove_temp("wife_n");
|
||||
user.remove_temp("husband");
|
||||
user.remove_temp("husband_n");
|
||||
}
|
||||
if (me.query_temp("husband")) {
|
||||
me.remove_temp("husband");
|
||||
me.remove_temp("husband_n");
|
||||
user.remove_temp("wife");
|
||||
user.remove_temp("wife_n");
|
||||
}
|
||||
me.add_title("", "mar");
|
||||
user.add_title("", "mar");
|
||||
me.set_temp("marry_leave", 1, 7 * 24 * 3600000);
|
||||
user.set_temp("marry_leave", 1, 7* 24 * 3600000);
|
||||
});
|
||||
this.add_action("no_shitu", "解除师徒", function (me, par) {
|
||||
var user = this.check_player2(me);
|
||||
if (!user) return;
|
||||
this.send_room("<yel>$N对著$n问道:你愿意和" + me.name + "解除师徒关系吗?</yel>", user);
|
||||
user.send_commands("no_shitu_no " + this.id, "不愿意", "no_shitu_yes " + this.id, "愿意");
|
||||
user.set_temp("request_no_shitu", 1, 100000);
|
||||
});
|
||||
|
||||
this.add_action("no_shitu_no", null, function (me, par) {
|
||||
if (!me.query_temp("request_no_shitu")) return me.notify("没人问你。");
|
||||
var user = this.check_player2(me);
|
||||
if (!user) return;
|
||||
me.send_room("<mag>$N对著$n大声道:我不愿意!</mag>", user);
|
||||
me.remove_temp("request_no_shitu");
|
||||
me.send_room("赵铁笔呵呵笑道:这个我就没办法了,咱总不能强人所难对吧。");
|
||||
});
|
||||
this.add_action("no_shitu_yes", null, function (me, par) {
|
||||
if (!me.query_temp("request_no_shitu")) return me.notify("没人问你。");
|
||||
var user = this.check_player2(me);
|
||||
if (!user) return;
|
||||
me.send_room("<mag>$N对著$n大声道:我愿意!</mag>", user);
|
||||
me.remove_temp("request_no_shitu");
|
||||
me.send_room("赵铁笔呵呵笑道:好吧,从现在开始你们两个就不是师徒了,各自都需要7天后才可以继续收徒或拜师。");
|
||||
if (me.query_temp("shifu")) {
|
||||
me.remove_temp("shifu");
|
||||
me.remove_temp("shifu_n");
|
||||
user.remove_temp("tudi");
|
||||
user.remove_temp("tudi_n");
|
||||
}
|
||||
if (me.query_temp("tudi")) {
|
||||
me.remove_temp("tudi");
|
||||
me.remove_temp("tudi_n");
|
||||
user.remove_temp("shifu");
|
||||
user.remove_temp("shifu_n");
|
||||
}
|
||||
me.set_temp("st_leave", 1, 3600000 * 24 * 7);
|
||||
user.set_temp("st_leave", 1, 3600000 * 24 * 7);
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
this.add_action("no_marry2", null, function (me, par) {
|
||||
var wife = me.query_temp("wife") || me.query_temp("husband");
|
||||
if (!wife) return me.notify_fail("赵铁笔说道:你还没结婚呢,离什么婚!");
|
||||
var name = me.query_temp("wife") ? "妻子" : "丈夫";
|
||||
me.notify("赵铁笔说道:单方面解除婚姻关系需要缴纳800两黄金的手续费。");
|
||||
me.send_commands("give " + this.id + " 8000000 money", "确认解除");
|
||||
});
|
||||
this.add_action("no_shitu2", null, function (me, par) {
|
||||
var wife = me.query_temp("shifu") || me.query_temp("tudi");
|
||||
if (!wife) return me.notify_fail("赵铁笔说道:你还没拜师,也没收徒!");
|
||||
if (me.query_temp("tudi")) {
|
||||
me.notify("赵铁笔说道:单方面解除师徒关系需要缴纳1000两黄金的手续费,并且解除后7天内不允许再次收徒!");
|
||||
me.send_commands("give " + this.id + " 10000000 money", "确认解除");
|
||||
} else {
|
||||
me.notify("赵铁笔说道:单方面解除师徒关系需要缴纳500两黄金的手续费,并且解除后7天内不允许再次拜师!");
|
||||
me.send_commands("give " + this.id + " 5000000 money", "确认解除");
|
||||
}
|
||||
|
||||
});
|
||||
this.on_accept = function (me, obj, count) {
|
||||
|
||||
if (obj == "money") {
|
||||
if (count == 8000000) {
|
||||
var wife = me.query_temp("wife") || me.query_temp("husband");
|
||||
if (!wife) return me.notify_fail("赵铁笔说道:你还没结婚呢,离什么婚!");
|
||||
var user = WORLD.getUser(wife);
|
||||
if (me.query_temp("wife")) {
|
||||
me.remove_temp("wife");
|
||||
me.remove_temp("wife_n");
|
||||
user && user.remove_temp("husband");
|
||||
user && user.remove_temp("husband_n");
|
||||
}
|
||||
if (me.query_temp("husband")) {
|
||||
me.remove_temp("husband");
|
||||
me.remove_temp("husband_n");
|
||||
user && user.remove_temp("wife");
|
||||
user && user.remove_temp("wife_n");
|
||||
}
|
||||
me.add_title("", "mar");
|
||||
user && user.add_title("", "mar");
|
||||
user && user.notify("<yel>你和" + me.name + "的夫妻关系解除了。</yel>");
|
||||
var attach = user ? null : [{
|
||||
obj: "sp/tool/fuqi#" + me.id,
|
||||
count: 1
|
||||
}];
|
||||
COMMAND.DO("send", wife, {
|
||||
content: me.name + "主动和你解除夫妻关系。",
|
||||
attach: attach
|
||||
});
|
||||
me.notify("赵铁笔呵呵笑道:好吧,你的婚姻关系已经解除了。");
|
||||
me.set_temp("marry_leave", 1, 7 * 24 * 3600000);
|
||||
user&& user.set_temp("marry_leave", 1, 7 * 24 * 3600000);
|
||||
return true;
|
||||
}
|
||||
if (count == 10000000) {
|
||||
var tudi = me.query_temp("tudi");
|
||||
if (!tudi) return me.notify_fail("赵铁笔说道:你没有徒弟!");
|
||||
var user = WORLD.getUser(tudi);
|
||||
me.remove_temp("tudi");
|
||||
me.remove_temp("tudi_n");
|
||||
me.set_temp("st_leave", 1, 3600000 * 24 * 7);
|
||||
if (user) {
|
||||
user.remove_temp("shifu");
|
||||
user.remove_temp("shifu_n");
|
||||
user.set_temp("st_leave", 1, 3600000 * 24 * 7);
|
||||
user.notify("<yel>你和" + me.name + "的师徒关系解除了。</yel>");
|
||||
}
|
||||
|
||||
COMMAND.DO("send", tudi, {
|
||||
content: "你的师父主动和你解除师徒关系",
|
||||
attach: [{
|
||||
obj: "sp/tool/shitu#" + me.id,
|
||||
count: 1
|
||||
}]
|
||||
});
|
||||
|
||||
me.notify("赵铁笔说道:你的师徒关系已经解除了。");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (count == 5000000) {
|
||||
var shifu = me.query_temp("shifu");
|
||||
if (!shifu) return me.notify_fail("赵铁笔说道:你没有徒弟!");
|
||||
var user = WORLD.getUser(shifu);
|
||||
me.remove_temp("shifu");
|
||||
me.remove_temp("shifu_n");
|
||||
me.set_temp("st_leave", 1, 3600000 * 24 * 7);
|
||||
if (user) {
|
||||
user.remove_temp("tudi");
|
||||
user.remove_temp("tudi_n");
|
||||
user.set_temp("st_leave", 1, 3600000 * 24 * 7);
|
||||
user.notify("<yel>你和" + me.name + "的师徒关系解除了。</yel>");
|
||||
}
|
||||
|
||||
COMMAND.DO("send", shifu, {
|
||||
content: "你的徒弟主动和你解除师徒关系",
|
||||
attach: [{
|
||||
obj: "sp/tool/shitu#" + me.id,
|
||||
count: 1
|
||||
}]
|
||||
});
|
||||
me.notify("赵铁笔说道:你的师徒关系已经解除了。");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
55
world/npc/pub/jiaoxi.js
Normal file
55
world/npc/pub/jiaoxi.js
Normal file
@@ -0,0 +1,55 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "武馆教习",
|
||||
desc: "一个高大威猛的汉子,负责教导武馆新人基本功法",
|
||||
gender: 1,
|
||||
age: 25,
|
||||
per: this.random(20) + 10,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
family: FAMILIES.NONE
|
||||
});
|
||||
this.skill_map(
|
||||
["force", 300],
|
||||
["dodge", 300],
|
||||
["parry", 300],
|
||||
["sword", 300],
|
||||
["blade", 300],
|
||||
["club", 300],
|
||||
["staff", 300],
|
||||
["whip", 300],
|
||||
["unarmed", 300],
|
||||
["throwing", 300]);
|
||||
this.on_checkskill = function (me) {
|
||||
if (!me.query_temp("wg_sr")) {
|
||||
me.send_room("武馆教习瞄了$N一眼:100两白银,先交钱再学功夫,包教包会。");
|
||||
|
||||
return me.notify_fail('{type:"cmds",items:{cmd:"give ' + this.id + ' 10000 money",name:"交报名费"}}');
|
||||
}
|
||||
return true;
|
||||
}
|
||||
this.on_teach = function (me) {
|
||||
return me.query_temp("wg_sr") == 1;
|
||||
}
|
||||
this.on_accept = function (me, obj, count) {
|
||||
if (obj != "money") return false;
|
||||
if (me.query_temp("wg_sr")) {
|
||||
me.notify("武馆教习愉快笑了笑,收下你的钱。");
|
||||
return true;
|
||||
}
|
||||
if (count < 10000) return me.notify_fail("武馆教习瞪了你一眼:100两白银,不二价,没钱就一边玩去。");
|
||||
me.send_room("武馆教习收下$N的钱,拍了拍$N的肩膀:不错,以后你就是本馆的弟子了,本武馆包教基本武技到300级,随到随学,不限学时,全国连锁。");
|
||||
me.set_temp("wg_sr", 1);
|
||||
|
||||
if (!me.query_temp("sm_tm")) {
|
||||
me.set_temp("sm_tm", Math.floor(Date.now() / 100000));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// this.add_action("ask1", "武馆任务", function (me) {
|
||||
// if (me.family != FAMILIES.NONE) return me.notify("武馆教习对你说道:你还是去找自己的师门看看吧。");
|
||||
// me.do_command("task", "sm " + this.id);
|
||||
// });
|
||||
18
world/npc/pub/menpai.js
Normal file
18
world/npc/pub/menpai.js
Normal file
@@ -0,0 +1,18 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "门派弟子",
|
||||
desc: "门派弟子",
|
||||
title: "",
|
||||
gender: 1,
|
||||
age: 25,
|
||||
per: 18,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
no_refresh: true,
|
||||
is_drop: false
|
||||
});
|
||||
this.init_from = function (fam, level) {
|
||||
|
||||
}
|
||||
84
world/npc/pub/mpguanli.js
Normal file
84
world/npc/pub/mpguanli.js
Normal file
@@ -0,0 +1,84 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "门派后勤管理员",
|
||||
desc: "他是你们门派里面负责发放弟子福利的人",
|
||||
gender: 1,
|
||||
age: 25,
|
||||
per: this.random(20) + 10,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
|
||||
});
|
||||
this.skill_map(
|
||||
["force", 100],
|
||||
["dodge", 100],
|
||||
["parry", 100],
|
||||
["sword", 100],
|
||||
["blade", 100],
|
||||
["club", 100],
|
||||
["staff", 100],
|
||||
["whip", 100],
|
||||
["unarmed", 100]);
|
||||
this.on_create = function (path, par) {
|
||||
if (!par) return;
|
||||
this.family = FAMILIES[par.substr(1)];
|
||||
if (!this.family.customer) this.family.customer = {};
|
||||
if (this.family == FAMILIES.NONE) {
|
||||
this.name = "武馆后勤";
|
||||
}
|
||||
}
|
||||
|
||||
const NEEDS_GJ = [500, 5000, 10000, 50000, 100000];
|
||||
const NEEDS_LEVEL = [0, 3, 4, 5, 6];
|
||||
const NEEDS_LEVEL_DESC = [null, "宗师", "武圣", "武帝", "武神"];
|
||||
this.add_action("job_fam", "门派职位", function (me) {
|
||||
|
||||
var fam = me.family;
|
||||
if (fam === FAMILIES.NONE) {
|
||||
if (!me.query_temp('wg_sr'))
|
||||
return me.notify(this.name +
|
||||
"对你说道:这位" + me.call() + "和本馆素无瓜葛,升职从何说起?");
|
||||
}
|
||||
if (fam != this.family) return me.notify(this.name +
|
||||
"对你说道:这位" + me.call() + "和本派素无瓜葛,升职从何说起?");
|
||||
let gj = me.query_temp('gongji', 0);
|
||||
let level = me.query_temp('sm_level', 0);
|
||||
if (level >= 5) return me.send(this.name +
|
||||
"对你说道:这位" + me.call() + "已经是最高级别的职位了。");
|
||||
|
||||
me.send(`${this.name}说:你现在是${fam.query_job_title(level)},消耗${gj}/${NEEDS_GJ[level]}可以晋升到${fam.query_job_title(level + 1)}。`);
|
||||
if (gj >= NEEDS_GJ[level]) {
|
||||
me.send_commands('job_up_ok ' + this.id, '确定晋升');
|
||||
}
|
||||
});
|
||||
this.add_action("job_up_ok", null, function (me) {
|
||||
|
||||
var fam = me.family;
|
||||
if (fam != this.family) return me.notify(this.name +
|
||||
"对你说道:这位" + me.call() + "和本派素无瓜葛,升职从何说起?");
|
||||
if (fam === FAMILIES.NONE) {
|
||||
if (!me.query_temp('wg_sr'))
|
||||
return me.notify(this.name +
|
||||
"对你说道:这位" + me.call() + "和本馆素无瓜葛,升职从何说起?");
|
||||
}
|
||||
let level = me.query_temp('sm_level', 0);
|
||||
if (level >= 5) return me.send(this.name +
|
||||
"对你说道:这位" + me.call() + "已经是最高级别的职位了。");
|
||||
|
||||
if (me.level < NEEDS_LEVEL[level])
|
||||
return me.send(`${this.name}说道:这位${me.call()},${fam.query_job_title(level + 1)}可不是谁都能当的,最少得是${NEEDS_LEVEL_DESC[level]}才行。`);
|
||||
let gj = me.query_temp('gongji', 0);
|
||||
let need = NEEDS_GJ[level];
|
||||
if (gj >= NEEDS_GJ[level]) {
|
||||
me.add_temp('gongji', -need);
|
||||
USERTASK.GET('sm').on_finish(me);
|
||||
level = me.add_temp('sm_level', 1);
|
||||
me.send(`${this.name}说:恭喜你,现在是${me.family.query_task_title(me)}了,你的师门物资获得大幅度提升。`);
|
||||
|
||||
} else {
|
||||
me.send(`${this.name}说:你的师门功绩还不够晋升,再努力一点吧。`);
|
||||
}
|
||||
});
|
||||
|
||||
23
world/npc/pub/muren.js
Normal file
23
world/npc/pub/muren.js
Normal file
@@ -0,0 +1,23 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "木头人",
|
||||
desc: "这是一个木头做的假人,用来测试伤害的",
|
||||
gender: 1,
|
||||
age: 10,
|
||||
per: 43,
|
||||
mp: 60,
|
||||
max_mp: 60,
|
||||
hp: 99999999,
|
||||
max_hp: 99999999,
|
||||
str: 1,
|
||||
con: 1,
|
||||
dex: 1,
|
||||
int:1
|
||||
});
|
||||
this.die = function () {
|
||||
|
||||
this.clear_combat_prop();
|
||||
this.add_hp(this.max_hp);
|
||||
this.send_room('$N身上破损的木头剥落,再次神采奕奕,精气十足。\n');
|
||||
return false;
|
||||
}
|
||||
22
world/npc/pub/paimai.js
Normal file
22
world/npc/pub/paimai.js
Normal file
@@ -0,0 +1,22 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "拍卖师",
|
||||
desc: "他是藏宝阁里负责拍卖的拍卖师",
|
||||
gender: 1,
|
||||
age: 74,
|
||||
per: 12,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
|
||||
});
|
||||
this.set_objects(["eq/lv0/cloth", 1, 1]);
|
||||
|
||||
this.set_chat_msg([
|
||||
"拍卖师说道:我这里可都是从当铺千挑万选出来的稀有好货,包括一些江湖中已经绝版的珍藏。",
|
||||
"拍卖师说道:当有人送来拍卖品时,立即开始拍卖。"
|
||||
]);
|
||||
this.add_action("spm", "拍卖物品", function (me, par) {
|
||||
WORLD.COMMANDS['pm'].enter(me, 'list');
|
||||
});
|
||||
21
world/npc/pub/qian.js
Normal file
21
world/npc/pub/qian.js
Normal file
@@ -0,0 +1,21 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "钱眼开",
|
||||
desc: "他就是钱庄的老板钱眼开,人称铁公鸡",
|
||||
title: "钱庄老板",
|
||||
gender: 1,
|
||||
age: 34,
|
||||
per: this.random(20) + 10,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
|
||||
});
|
||||
this.set_chat_msg([
|
||||
"钱眼开骄傲的说道:本银号已经有上百年的历史,分店遍布天下各地。",
|
||||
"钱眼开说道:昨天我亲自看到一个杀手帮的人来取钱,看来杀手帮重出江湖了。",
|
||||
"钱眼开笑着说道:杀手帮重出江湖对本银号来说,真是求之不的呀!。",
|
||||
"钱眼开笑着说道:当年雾中楼在本银号存的钱可以说是最多的了。",
|
||||
"钱眼开笑着说道:在本店存钱无利息,存物不收手续费,客官你看着办吧。"
|
||||
]);
|
||||
113
world/npc/pub/tiejiang.js
Normal file
113
world/npc/pub/tiejiang.js
Normal file
@@ -0,0 +1,113 @@
|
||||
this.inherits(NPC);
|
||||
this.name = "铁匠";
|
||||
this.title = "铁匠铺老板";
|
||||
this.desc = "铁匠正用铁钳夹住一块红热的铁块放进炉中。";
|
||||
this.age = 33;
|
||||
this.max_hp = 100;
|
||||
this.max_mp = 100;
|
||||
this.per = 10;
|
||||
this.gender = 1;
|
||||
this.set_goods("eq/lv0/jian", "eq/lv0/dao", "eq/lv0/tiegun", "eq/lv0/tiezhang", "eq/lv0/fei", "sp/tool/chu#0");
|
||||
this.add_action("unxx", "取消镶嵌", function (me, arg) {
|
||||
|
||||
|
||||
WORLD.COMMANDS['unxiangqian'].enter(me);
|
||||
});
|
||||
this.add_action("unjl", "取消精炼", function (me, arg) {
|
||||
WORLD.COMMANDS['unjinglian'].enter(me);
|
||||
});
|
||||
this.add_action("dz", "锻造武器", function (me, arg) {
|
||||
// me.send_commands('dz1 ' + this.id, "锻造武器",
|
||||
// 'dz2 ' + this.id, "重铸武器",
|
||||
// 'dz3 ' + this.id, "武器改名",
|
||||
// 'dz4 ' + this.id, "更改武器类型");
|
||||
WORLD.COMMANDS['duanzao'].enter(me);
|
||||
});
|
||||
// this.add_action("dz1", "", function (me, arg) {
|
||||
// WORLD.COMMANDS['duanzao'].enter(me);
|
||||
// });
|
||||
// this.add_action("dz2", "", function (me, arg) {
|
||||
// WORLD.COMMANDS['reduanzao'].enter(me);
|
||||
// });
|
||||
|
||||
// this.add_action("dz3", "", function (me, arg) {
|
||||
// WORLD.COMMANDS['reduanzao2'].enter(me);
|
||||
// });
|
||||
|
||||
// this.add_action("dz4", "", function (me, arg) {
|
||||
// WORLD.COMMANDS['reduanzao3'].enter(me);
|
||||
// });
|
||||
|
||||
this.on_duanzao = function (me, arg) {
|
||||
if (arg == "ok") {
|
||||
var item = me.find_obj_bypath("st/yuanjing");
|
||||
if (!item || item.count < 10) return me.notify("铁匠说道:材料不够就别来烦我。");
|
||||
|
||||
me.notify("铁匠点头说道:嗯,不错,你想锻造什么武器?");
|
||||
me.send_commands("duanzao sword", '剑', "duanzao blade", '刀', "duanzao club", '棍', "duanzao staff", '杖',
|
||||
"duanzao whip", '鞭', "duanzao none", '拳');
|
||||
|
||||
} else if (!arg) {
|
||||
me.notify("铁匠说道:你能找到10块<hio>元晶</hio>我就免费帮你锻造一把你自己的武器。");
|
||||
var item = me.find_obj_bypath("st/yuanjing");
|
||||
if (!item || item.count < 10) return;
|
||||
me.send_commands("duanzao ok", "我要锻造武器");
|
||||
} else {
|
||||
var type = WEAPON_TYPE[arg.toUpperCase()];
|
||||
if (!type) return me.notify("铁匠摇头道:我不会锻造这种武器。");
|
||||
//me.set_temp('dz', arg, 30000);
|
||||
me.notify("铁匠说道:告诉我你要锻造的武器的名字。(使用房间频道说出(2-5个汉字),暴力,色情,政治相关的名字将直接销毁)");
|
||||
me.wait_input = this.dzwq.bind(this, arg);
|
||||
me.send_commands("cancle", '我不锻造了');
|
||||
}
|
||||
}
|
||||
|
||||
// this.wp_names = ["君子剑", '真武剑', '屠龙刀', '倚天剑', '碧血剑', '碧血照丹青',
|
||||
// '轩辕剑', '鹰刀', '盘古斧'];
|
||||
this.dzwq = function (arg, me, str) {
|
||||
|
||||
if (str == "cancle") {
|
||||
me.notify("铁匠说道:好吧,可惜了。");
|
||||
me.wait_input = null;
|
||||
me.remove_temp('dz');
|
||||
return;
|
||||
}
|
||||
str = str.split(' ')[1];
|
||||
if (!arg) {
|
||||
me.wait_input = null;
|
||||
return me.notify("铁匠说道:你要先告诉我锻造的武器类型。");
|
||||
}
|
||||
var type = WEAPON_TYPE[arg.toUpperCase()];
|
||||
if (!type) {
|
||||
me.wait_input = null;
|
||||
return me.notify("铁匠摇头道:我不会锻造这种武器。");
|
||||
}
|
||||
if (!/^[\u4E00-\u9FA5]{2,5}$/.test(str)) {
|
||||
return me.send('铁匠说道:武器的名字需要是2-5个汉字。');
|
||||
}
|
||||
|
||||
if (!UTIL.check_word(str)) {
|
||||
return me.send('铁匠说道:你不能用这个名字。');
|
||||
}
|
||||
// for (var i = 0; i < this.wp_names.length; i++) {
|
||||
// if (this.wp_names[i] == str) {
|
||||
// return me.send('铁匠说道:你不能用这个名字。');
|
||||
// }
|
||||
// }
|
||||
|
||||
var item = me.find_obj_bypath("st/yuanjing");
|
||||
if (!item || item.count < 10) {
|
||||
me.wait_input = null;
|
||||
return me.notify("铁匠说道:材料不够就别来烦我。");
|
||||
}
|
||||
me.wait_input = null;
|
||||
if (me.remove_obj(item, 10)) {
|
||||
var obj = OBJ.CREATE("eq/cp#" + arg);
|
||||
obj.set_temp("name", str);
|
||||
WORLD.COMMANDS.duanzao.default_template(obj, EQUIP_TYPE.WEAPON);
|
||||
obj.on_reload(me);
|
||||
me.add_obj(obj);
|
||||
me.notify("铁匠说道:不错,这是你要的。");
|
||||
me.notify("铁匠给你" + obj.unit_name() + "。");
|
||||
}
|
||||
}
|
||||
29
world/npc/pub/tongren.js
Normal file
29
world/npc/pub/tongren.js
Normal file
@@ -0,0 +1,29 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "<yel>铜人</yel>",
|
||||
desc: "这是一个铜做的假人,防御很高,用来测试伤害的",
|
||||
gender: 1,
|
||||
age: 10,
|
||||
per: 43,
|
||||
mp: 60,
|
||||
max_mp: 60,
|
||||
hp: 99999999,
|
||||
prop: {
|
||||
fy: 50000,
|
||||
diff_sh_per: 70,
|
||||
diff_sh: 12000
|
||||
},
|
||||
max_hp: 99999999,
|
||||
str: 1,
|
||||
con: 1,
|
||||
dex: 1,
|
||||
int: 1
|
||||
});
|
||||
|
||||
this.die = function () {
|
||||
|
||||
this.clear_combat_prop();
|
||||
this.add_hp(this.max_hp);
|
||||
this.send_room('$N身上破损的铜皮剥落,再次神采奕奕,精气十足。\n');
|
||||
return false;
|
||||
}
|
||||
91
world/npc/pub/wudao.js
Normal file
91
world/npc/pub/wudao.js
Normal file
@@ -0,0 +1,91 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "",
|
||||
desc: "他是武道塔的神秘守护者",
|
||||
title: "武道塔守护者",
|
||||
gender: 1,
|
||||
age: 25,
|
||||
per: this.random(44),
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
no_refresh: true,
|
||||
no_fight: true
|
||||
});
|
||||
|
||||
this.init_from = function (player, level) {
|
||||
this.con = this.dex = this.int = this.str = 20 + parseInt(level / 3);
|
||||
if (level > 100) level = 100;
|
||||
const grade1 = Math.floor(level / 10);
|
||||
this.name = UTIL.random_name(this.gender);
|
||||
this.skill_map.apply(this, this.skills_def[grade1]);
|
||||
var color = ["hig", "hic", "hiy", "hiz", "hio", "ora"][parseInt(level / 20)];
|
||||
this.title = "<" + color + ">武道塔守护者</" + color + ">";
|
||||
this.set_objects(['eq/lv0/cloth', 1, 1], ["eq/lv0/jian", 1, 1]);
|
||||
|
||||
this.hp = this.max_hp = 1000 + level * level * 150;
|
||||
this.mp = this.max_mp = parseInt(this.hp / 2);
|
||||
this.init();
|
||||
this.recount();
|
||||
|
||||
}
|
||||
|
||||
|
||||
this.skills_def = [
|
||||
[
|
||||
["force", 100], ["unarmed", 100], ["sword", 100], ["parry", 100], ["dodge", 100],
|
||||
["hunyuanyiqi", 100, "force"], ["wudangchangquan", 100, "unarmed"], ["huashanshenfa", 100, "dodge"],
|
||||
["wudangjianfa", 100, "sword"], ["zhemeishou", 100, "parry"]
|
||||
],
|
||||
[
|
||||
["force", 300], ["unarmed", 300], ["sword", 300], ["parry", 300], ["dodge", 300],
|
||||
["zixiashengong", 300, "force"], ["taizuchangquan", 300, "unarmed"],
|
||||
["yunlongjian", 300, "sword"], ["taijiquan", 300, "parry"], ["sixiangbu", 300, "dodge"],
|
||||
],
|
||||
[
|
||||
["force", 500], ["unarmed", 500], ["sword", 500], ["parry", 500], ["dodge", 500],
|
||||
["taijishengong", 500, "force"], ["qishangquan", 500, "unarmed"],
|
||||
["kuangfengkuaijian", 500, "sword"], ["taijiquan", 500, "parry"], ["tiyunzong", 500, "dodge"],
|
||||
],
|
||||
[
|
||||
["force", 800], ["unarmed", 800], ["sword", 800], ["parry", 800], ["dodge", 800],
|
||||
["yijinjing", 800, "force"], ["yiyangzhi", 800, "unarmed"],
|
||||
["taijijian", 800, "sword"], ["dugujiujian", 800, "parry"], ["wuduyanluobu", 800, "dodge"],
|
||||
],
|
||||
[
|
||||
["force", 1100], ["unarmed", 1100], ["sword", 1100], ["parry", 1100], ["dodge", 1100],
|
||||
["mingyugong", 1100, ["force", "dodge"]], ["yiyangzhi", 1100, "unarmed"],
|
||||
["yitianjianfa", 1100, "sword"], ["yihuajiemu", 1100, "parry"]
|
||||
],
|
||||
[
|
||||
["force", 1400], ["unarmed", 1400], ["sword", 1400], ["parry", 1400], ["dodge", 1400],
|
||||
["hamagong", 1400, "force"], ["tanzhishengong", 1400, "unarmed"],
|
||||
["kuangfengkuaijian2", 1400, "sword"], ["taijiquan", 1400, "parry"], ["kuihuashengong", 1400, "dodge"],
|
||||
],
|
||||
[
|
||||
["force", 1700], ["unarmed", 1700], ["sword", 1700], ["parry", 1700], ["dodge", 1700],
|
||||
["kuihuashengong", 1700, ["force", "dodge"]], ["cuixinzhang", 1700, "unarmed"],
|
||||
["bixiejianfa", 1700, ["sword", "parry"]]
|
||||
],
|
||||
[
|
||||
["force", 2000], ["unarmed", 2000], ["sword", 2000], ["parry", 2000], ["dodge", 2000],
|
||||
["jiuyangshengong", 2000, "force"], ["chuanxinzhang2", 2000, "unarmed"],
|
||||
["dugujiujian", 2000, "sword"], ["taijiquan", 2000, "parry"], ["kuihuashengong", 2000, "dodge"],
|
||||
],
|
||||
[
|
||||
["force", 2500], ["unarmed", 2500], ["sword", 2500], ["parry", 2500], ["dodge", 2500],
|
||||
["taixuangong", 2500, "force"], ["xianglongzhang2", 2500, "unarmed"],
|
||||
["qixianwuxingjian", 2500, "sword"], ["taijiquan", 2500, "parry"], ["xuanxubu", 2500, "dodge"],
|
||||
],
|
||||
[
|
||||
["force", 3000], ["unarmed", 3000], ["sword", 3000], ["parry", 3000], ["dodge", 3000],
|
||||
["jiuyinshengong", 3000, "force"], ["jiuyinbaiguzhao2", 3000, "unarmed"],
|
||||
["taijijian", 3000, "sword"], ["qiankundanuoyi", 3000, "parry"], ["lingboweibu2", 3000, "dodge"],
|
||||
],
|
||||
[
|
||||
["force", 4000], ["unarmed", 4000], ["sword", 4000], ["parry", 4000], ["dodge ", 4000],
|
||||
["jiuyangshengong", 5000, "force"], ["liumaishenjian", 5000, "unarmed"],
|
||||
["xuantiejianfa", 5000, "sword"], ["qiankundanuoyi", 5000, "parry"], ["lingboweibu2", 5000, "dodge"],
|
||||
]
|
||||
];
|
||||
32
world/npc/pub/wudao_men.js
Normal file
32
world/npc/pub/wudao_men.js
Normal file
@@ -0,0 +1,32 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "守门人",
|
||||
desc: "他是武道塔的守门人,一个神神秘秘的老头",
|
||||
gender: 1,
|
||||
age: 67,
|
||||
per: 55,
|
||||
mp: 5000000,
|
||||
max_mp: 5000000,
|
||||
hp: 80000000,
|
||||
max_hp: 80000000,
|
||||
level: 5,
|
||||
pfm_rate: 1,
|
||||
prop: {
|
||||
gjsd: 20000,
|
||||
add_sh_per: 100,
|
||||
diff_sh_per: 270,
|
||||
diff_sh_per2: 100,
|
||||
diff_downside_per: 170,
|
||||
gj: 100000,
|
||||
gj_per: 100,
|
||||
diff_fy_per: 150,
|
||||
distime_per: 80,
|
||||
ds: 150000,
|
||||
ds_per: 100,
|
||||
zj: 150000,
|
||||
zj_per: 100,
|
||||
mz: 150000,
|
||||
mz_per: 100
|
||||
}
|
||||
|
||||
});
|
||||
32
world/npc/pub/wujiang.js
Normal file
32
world/npc/pub/wujiang.js
Normal file
@@ -0,0 +1,32 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "武将",
|
||||
desc: "他站在那里,的确有说不出的威风。",
|
||||
gender: 1,
|
||||
age: 35,
|
||||
per: this.random(30) + 10,
|
||||
mp: 2500,
|
||||
max_mp: 2500,
|
||||
hp: 2500,
|
||||
max_hp: 2500,
|
||||
score: 15
|
||||
}); this.set_objects([
|
||||
"eq/lv1/guanfu", 1, 1
|
||||
], [
|
||||
"eq/lv1/jundao", 1, 1
|
||||
]); this.set_drop({
|
||||
obj: "money/silver",
|
||||
min: 2,
|
||||
max: 5
|
||||
}, {
|
||||
obj: ["eq/lv0/cloth", "eq/lv0/jian", "eq/lv0/dao"],
|
||||
odds: 6000
|
||||
}, {
|
||||
obj: ["eq/lv1/guanfu", "eq/lv1/junfu", "book/book#sword", "eq/lv1/jundao", "book/book#blade"],
|
||||
odds: 3000
|
||||
});
|
||||
this.skill_map(
|
||||
["unarmed", 190],
|
||||
["dodge", 190],
|
||||
["parry", 190],
|
||||
["blade", 190]);
|
||||
99
world/npc/pub/xiaoer.js
Normal file
99
world/npc/pub/xiaoer.js
Normal file
@@ -0,0 +1,99 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "店小二",
|
||||
desc: "这位店小二正笑咪咪地忙著,还不时拿起挂在脖子上的抹布擦脸。",
|
||||
gender: 1,
|
||||
age: 22,
|
||||
per: this.random(20) + 10,
|
||||
mp: 150,
|
||||
max_mp: 150,
|
||||
hp: 150,
|
||||
max_hp: 150
|
||||
});
|
||||
this.on_enter = function (me) {
|
||||
let kz = me.query_temp("kezhan");
|
||||
if (kz) {
|
||||
me.notify("小二一哈腰:这位客官请上楼歇息。");
|
||||
|
||||
return me.send_commands('zhudian ' + this.id, '上楼', 'xufei ' + this.id, '续房',);
|
||||
}
|
||||
var str = "";
|
||||
switch (this.random(2)) {
|
||||
case 0:
|
||||
str = "店小二笑咪咪地说道:这位" + me.call()
|
||||
+ ",要住店吗?请进请进。";
|
||||
break;
|
||||
case 1:
|
||||
str = "店小二用脖子上的毛巾抹了抹手,说道:这位" + me.call()
|
||||
+ ",请进请进。小店还有几间上好的房间。";
|
||||
break;
|
||||
}
|
||||
me.notify(str);
|
||||
}
|
||||
this.add_action("zhudian", "住店", zhudian);
|
||||
|
||||
|
||||
function zhudian(me, par) {
|
||||
var kd = me.query_temp("kezhan");
|
||||
if (kd) {
|
||||
me.moveto("kezhan/fang" + kd, me.name + "向客店二楼走去。");
|
||||
} else {
|
||||
me.notify("小二对你说道:这位" + me.call() + ",本店有多种房间提供:\n1. 人字号房每天10两白银,学习,打坐,练功效果增加10%\n2. 地字号房每天30两白银,学习,打坐,练功效果增加20%\n3. 天字号房间每天1两黄金,学习,打坐,练功效果增加50%");
|
||||
return me.send_commands("give " + this.id + " 1000 money", "人字号客房",
|
||||
"give " + this.id + " 3000 money", "<hic>地字号客房</hic>",
|
||||
"give " + this.id + " 10000 money", "<hiy>天字号客房</hiy>");
|
||||
|
||||
}
|
||||
}
|
||||
this.on_accept = function (me, obj, count) {
|
||||
if (obj !== "money") return;
|
||||
if (me.money < 1000) {
|
||||
return me.notify("小二面无表情的说道:住店每天10两白银,不二价。");
|
||||
} else if (count === 1000) {
|
||||
me.set_temp("kezhan", 1, 1000 * 3600 * 24);
|
||||
me.send_message("小二一哈腰,说道:多谢您老,客官请楼上歇息。");
|
||||
me.moveto("kezhan/fang1", me.name + "向客店二楼走去。");
|
||||
return true;
|
||||
} else if (count === 3000) {
|
||||
me.set_temp("kezhan", 2, 1000 * 3600 * 24);
|
||||
me.send_message("小二一哈腰,说道:多谢您老,客官请楼上歇息。");
|
||||
me.moveto("kezhan/fang2", me.name + "向客店二楼走去。");
|
||||
return true;
|
||||
} else if (count === 10000) {
|
||||
me.set_temp("kezhan", 3, 1000 * 3600 * 24);
|
||||
me.send_message("小二一哈腰,说道:多谢您老,客官请楼上歇息。");
|
||||
me.moveto("kezhan/fang3", me.name + "向客店二楼走去。");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
this.add_action("xufei", null, function (me) {
|
||||
var kd = me.temp['kezhan'];
|
||||
if (!kd) return zhudian(me);
|
||||
let money = [0, 1000, 3000, 10000][kd.v];
|
||||
if (!(money > 0)) return me.send('你还没有住店。');
|
||||
if (me.money < money) return me.send('你身上的钱不够。');
|
||||
me.money -= money;
|
||||
kd.e += 3600000 * 24;
|
||||
let time = new Date(me.temp['kezhan'].e);
|
||||
let str = time.getFullYear() + "年" + (time.getMonth() + 1) + "月" + time.getDate() + "日" + time.getHours() + "时";
|
||||
me.send("小二一哈腰,说道:多谢您老,收您" + UTIL.moneyToStr(money) + ",续房一天。<cyn>(持续到" +
|
||||
str + ")</cyn>");
|
||||
});
|
||||
|
||||
|
||||
// this.add_action("dating", "打听消息", function (me) {
|
||||
// var count = me.query_temp('wsbs', 0);
|
||||
// if (count >= 5) return me.send('店小二说道:这位客官,小的听到的消息都告诉您老了。');
|
||||
// var num = me.query_temp('fbbs', 0);
|
||||
// if (num < 99) return me.send('店小二说道:这位客官,小的这两天也没听到什么消息。');
|
||||
// var fb = parseInt(num / 100);
|
||||
// var area = WORLD.AREAS[fb];
|
||||
// if (area && area.fb_index) {
|
||||
// me.send('店小二看了看四周:这位客官,小店人多口杂,虽然消息不少,但也不知道该不该讲呀。');
|
||||
// return me.send_commands("give " + this.id + " 20000 money", '给他几两金子');
|
||||
|
||||
// }
|
||||
// return me.send('店小二说道:这位客官,小的这两天也没听到什么消息。');
|
||||
// });
|
||||
32
world/npc/pub/xiaoer2.js
Normal file
32
world/npc/pub/xiaoer2.js
Normal file
@@ -0,0 +1,32 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "店小二",
|
||||
desc: "这位店小二正笑咪咪地忙著,还不时拿起挂在脖子上的抹布擦脸。",
|
||||
gender: 1,
|
||||
age: 22,
|
||||
per: this.random(20) + 10,
|
||||
mp: 150,
|
||||
max_mp: 150,
|
||||
hp: 150,
|
||||
max_hp: 150,
|
||||
});
|
||||
this.on_enter = function (me) {
|
||||
var str = "";
|
||||
switch (this.random(2)) {
|
||||
case 0:
|
||||
str = "店小二笑咪咪地说道:这位" + me.call()
|
||||
+ ",进来喝杯茶,歇歇腿吧。";
|
||||
break;
|
||||
case 1:
|
||||
str = "店小二用脖子上的毛巾抹了抹手,说道:这位" + me.call()
|
||||
+ ",请进请进。";
|
||||
break;
|
||||
}
|
||||
me.notify(str);
|
||||
}
|
||||
this.set_goods("food/food#0", "food/food#1", "food/food#2", "food/food#3", "food/food#4", "food/drink#0", "food/drink#1", "food/drink#2", "food/drink#3");
|
||||
|
||||
|
||||
this.on_leave = function (me, dir) {
|
||||
|
||||
}
|
||||
33
world/npc/pub/yamen.js
Normal file
33
world/npc/pub/yamen.js
Normal file
@@ -0,0 +1,33 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "逃犯",
|
||||
desc: "他是衙门正在追捕的逃犯",
|
||||
title: "<red>衙门逃犯</red>",
|
||||
gender: 1,
|
||||
age: 25,
|
||||
per: 18,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 400,
|
||||
max_hp: 400,
|
||||
no_refresh: true,
|
||||
no_fight: true
|
||||
|
||||
});
|
||||
|
||||
this.init_from = function (player, grade = 0, level = 0) {
|
||||
|
||||
this.con = this.dex = this.int = this.str = 30;
|
||||
this.gender = this.random(2) + 1;
|
||||
|
||||
this.desc = (this.gender == 2 ? "她" : "他") + "是" + player.name + "正在追捕的逃犯";
|
||||
|
||||
this.name = UTIL.random_name(this.gender);
|
||||
|
||||
this.hp = this.max_hp = 1200;
|
||||
this.pfm_rate = 1;
|
||||
this.mp = this.max_mp = this.max_hp;
|
||||
this.init();
|
||||
this.recount();
|
||||
|
||||
}
|
||||
21
world/npc/pub/yayi.js
Normal file
21
world/npc/pub/yayi.js
Normal file
@@ -0,0 +1,21 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "衙役",
|
||||
desc: "一个高大威猛的汉子,因为久在官府做事,脸上已经磨炼得毫无表情。",
|
||||
title: "知府千金",
|
||||
gender: 1,
|
||||
age: 25,
|
||||
per: 18,
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 4000,
|
||||
max_hp: 4000,
|
||||
|
||||
});
|
||||
this.skill_map(["dodge", 5500],
|
||||
["parry", 5500],
|
||||
["force", 5500],
|
||||
["unarmed", 5500],
|
||||
["sword", 5500],
|
||||
["changshengjue", 5500, "force"]);
|
||||
|
||||
23
world/npc/pub/yb_npc.js
Normal file
23
world/npc/pub/yb_npc.js
Normal file
@@ -0,0 +1,23 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "蒙面大盗",
|
||||
desc: "他是来劫镖的江洋大盗",
|
||||
title: "蒙面大盗",
|
||||
gender: 2,
|
||||
age: 65,
|
||||
per: 33,
|
||||
str: 50,
|
||||
con: 50,
|
||||
dex: 50,
|
||||
int: 50,
|
||||
max_mp: 20000000,
|
||||
max_hp: 12000000,
|
||||
no_fight: true,
|
||||
pfm_rate: 1,
|
||||
no_refresh: true
|
||||
|
||||
});
|
||||
this.on_kill = function (me) {
|
||||
|
||||
|
||||
}
|
||||
16
world/npc/pub/yingzi.js
Normal file
16
world/npc/pub/yingzi.js
Normal file
@@ -0,0 +1,16 @@
|
||||
this.inherits(NPC);
|
||||
this.set({
|
||||
name: "衙役",
|
||||
desc: "",
|
||||
title: "",
|
||||
gender: 1,
|
||||
age: 25,
|
||||
per: 18,
|
||||
|
||||
mp: 400,
|
||||
max_mp: 400,
|
||||
hp: 40000000,
|
||||
max_hp: 40000000,
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user