init: add workspace files
This commit is contained in:
95
world/task/goods_task.js
Normal file
95
world/task/goods_task.js
Normal file
@@ -0,0 +1,95 @@
|
||||
|
||||
this.inherits(TASK);
|
||||
this.id = "goods";
|
||||
this.handler = null;
|
||||
this.customer = {};
|
||||
this.startup = function (oldtask) {
|
||||
|
||||
if (oldtask) {
|
||||
this.customer = oldtask.customer;
|
||||
}
|
||||
this.handler = this.call_out(this.refresh_goods, UTIL.diff_time(12));//12点刷新一次
|
||||
}
|
||||
this.refresh_goods = function () {
|
||||
this.handler = null;
|
||||
for (var i = 0; i < WORLD.USERS.length; i++) {
|
||||
WORLD.USERS[i].send('{type:"msg",ch:"chat",content:"近日新到一批宝石,秘籍,丹药,不知哪位江湖朋友需要。",lv:0,name:"唐楠"}');
|
||||
}
|
||||
|
||||
this.customer = {};
|
||||
|
||||
var fam = [FAMILIES.GAIBANG, FAMILIES.WUDANG, FAMILIES.HUASHAN, FAMILIES.XIAOYAO, FAMILIES.EMEI, FAMILIES.SHASHOU, FAMILIES.SHAOLIN, FAMILIES.NONE];
|
||||
for (var i = 0; i < fam.length; i++) {
|
||||
fam[i].customer = {};
|
||||
fam[i].send('{type:"msg",ch:"fam",content:"本门新调拨一批物资,有需要的师弟师妹们请速来兑换。",uid:0,name:"后勤管理员",fam:"' + fam[i].name + '"}');
|
||||
}
|
||||
|
||||
this.startup();
|
||||
}
|
||||
this.query_goods = function (me) {
|
||||
if (this.customer[me.id]) return this.customer[me.id];
|
||||
var ref_count = me.query_temp("ref_count", 0);
|
||||
var list = [];
|
||||
list.push(OBJ.CREATE("st/xuanjing", this.random(100) + 2));
|
||||
|
||||
var st = ["st/st_red", "st/st_gre", "st/st_blu", "st/st_yel"];
|
||||
let max_count = 8;
|
||||
var counts = [3, 3, 2, 1, 1, 1, 1];
|
||||
|
||||
for (var i = 0; i < 2; i++) {
|
||||
var g = this.random(me.level + 1);
|
||||
if (g > 4) g = 4;
|
||||
list.push(OBJ.CREATE(st.random() + "#" + g, this.random(counts[g]) + 1));
|
||||
}
|
||||
max_count -= 2;
|
||||
if (me.random(3) === 1) {
|
||||
st = ["drug/exp", "drug/pot"];
|
||||
for (var i = 0; i < 2; i++) {
|
||||
var g = this.random(1 + me.random(me.level));
|
||||
if (g > 4) g = 4;
|
||||
list.push(OBJ.CREATE(st.random() + "#" + g, this.random(ref_count) + 1));
|
||||
}
|
||||
max_count -= 2;
|
||||
}
|
||||
if (me.random(3) === 1) {
|
||||
st = ["res/cao", "res/yu"];
|
||||
for (var i = 0; i < 2; i++) {
|
||||
var g = this.random((me.level + 1) * 3);
|
||||
list.push(OBJ.CREATE(st.random() + "#" + g, this.random(counts[g] ?? 1) + 1));
|
||||
}
|
||||
max_count -= 2;
|
||||
}
|
||||
if (me.random(3) === 1) {
|
||||
let level = this.random(me.level);
|
||||
let index = this.random(25);
|
||||
list.push(OBJ.CREATE("drug/yf#" + ((index * 5) + level), 1));
|
||||
max_count -= 1;
|
||||
}
|
||||
if (me.random(this.ref_count) > 4) {
|
||||
let level = this.random(me.level);
|
||||
if (level > 3) level = 3;
|
||||
let index = this.random(25);
|
||||
list.push(OBJ.CREATE("drug/yf2#" + ((index * 5) + level), 1));
|
||||
max_count -= 1;
|
||||
}
|
||||
if (max_count > 0) {
|
||||
max_count = Math.min(3, max_count);
|
||||
for (let i = 0; i < max_count; i++) {
|
||||
let level = this.random(me.level) + 1;
|
||||
if (level > 6) level = 6;
|
||||
else if (level < 1) level = 1;
|
||||
let sk = FAMILIES.NONE.query_skill(level);
|
||||
list.push(OBJ.CREATE("book/bc#" + sk.id, 1 + (level < 5 ? me.random(3) : 0)));
|
||||
}
|
||||
}
|
||||
this.customer[me.id] = list;
|
||||
return list;
|
||||
}
|
||||
this.set_goods = function (me, list) {
|
||||
this.customer[me.id] = list;
|
||||
}
|
||||
|
||||
|
||||
this.stop = function () {
|
||||
if (this.handler) clearTimeout(this.handler);
|
||||
}
|
||||
Reference in New Issue
Block a user