mm_os 4.1.4 → 4.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/com/db/drive.js +81 -62
- package/com/db/index.js +1 -1
- package/package.json +1 -1
- package/common/handler/msg/handler.json +0 -22
- package/common/handler/msg/index.js +0 -23
- package/common/handler/player/handler.json +0 -22
- package/common/handler/player/index.js +0 -287
- package/common/handler/user/handler.json +0 -22
- package/common/handler/user/index.js +0 -23
- package/common/model/msg/index.js +0 -88
- package/common/model/msg/model.json +0 -401
- package/common/model/player/index.js +0 -63
- package/common/model/player/model.json +0 -185
- package/common/model/user/index.js +0 -11
- package/common/model/user/model.json +0 -219
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 处理器(应用层)
|
|
3
|
-
*/
|
|
4
|
-
module.exports = {
|
|
5
|
-
/**
|
|
6
|
-
* 初始化
|
|
7
|
-
* @param {object} app 应用实例
|
|
8
|
-
* @param {object} eventer 事件总线
|
|
9
|
-
*/
|
|
10
|
-
async _init(app, eventer) {
|
|
11
|
-
// this.log('debug', `初始化!`);
|
|
12
|
-
// 可将监听写在这里
|
|
13
|
-
// eventer.on('');
|
|
14
|
-
},
|
|
15
|
-
/**
|
|
16
|
-
* 主要逻辑
|
|
17
|
-
* @param {...any} args 逻辑参数
|
|
18
|
-
*/
|
|
19
|
-
async main(...args) {
|
|
20
|
-
this.log('debug', `主要逻辑`);
|
|
21
|
-
// 主要代码写在这
|
|
22
|
-
},
|
|
23
|
-
/**
|
|
24
|
-
* 设置玩家数据
|
|
25
|
-
* @param {object} data 玩家数据
|
|
26
|
-
*/
|
|
27
|
-
async setting(data) {
|
|
28
|
-
$.push(this, data, true);
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* 设置玩家频道ID
|
|
33
|
-
* @param {number} channel_id 频道ID
|
|
34
|
-
*/
|
|
35
|
-
async setChannelId(channel_id) {
|
|
36
|
-
this.channel_id = channel_id;
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* 设置玩家房间ID
|
|
41
|
-
* @param {number} room_id 房间ID
|
|
42
|
-
*/
|
|
43
|
-
async setRoomId(room_id) {
|
|
44
|
-
this.room_id = room_id;
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* 处理消息
|
|
49
|
-
* @param {object} msg 消息对象
|
|
50
|
-
* @returns {boolean} 是否处理成功
|
|
51
|
-
*/
|
|
52
|
-
async onMessage(msg) {
|
|
53
|
-
try {
|
|
54
|
-
// 根据消息类型进行分发处理
|
|
55
|
-
switch (msg.msg_type) {
|
|
56
|
-
case 'combat':
|
|
57
|
-
return await this._handleCombat(msg);
|
|
58
|
-
case 'activity':
|
|
59
|
-
return await this._handleActivity(msg);
|
|
60
|
-
case 'mail':
|
|
61
|
-
return await this._handleMail(msg);
|
|
62
|
-
case 'system':
|
|
63
|
-
return await this._handleSystem(msg);
|
|
64
|
-
case 'text':
|
|
65
|
-
return await this._handleText(msg);
|
|
66
|
-
case 'chat':
|
|
67
|
-
return await this._handleChat(msg);
|
|
68
|
-
default:
|
|
69
|
-
return await this._handleDefault(msg);
|
|
70
|
-
}
|
|
71
|
-
} catch (error) {
|
|
72
|
-
console.error(`玩家 ${this.player_id} 数据处理失败:`, error);
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* 处理文本消息
|
|
79
|
-
* @param {object} msg 消息对象
|
|
80
|
-
* @returns {boolean} 是否处理成功
|
|
81
|
-
*/
|
|
82
|
-
async _handleText(msg) {
|
|
83
|
-
try {
|
|
84
|
-
// 根据消息范围进行分发处理
|
|
85
|
-
switch (msg.msg_group) {
|
|
86
|
-
case 'private':
|
|
87
|
-
return await this._handlePrivateText(msg);
|
|
88
|
-
case 'channel':
|
|
89
|
-
return await this._handleChannelText(msg);
|
|
90
|
-
case 'world':
|
|
91
|
-
return await this._handleWorldText(msg);
|
|
92
|
-
case 'guild':
|
|
93
|
-
return await this._handleGuildText(msg);
|
|
94
|
-
default:
|
|
95
|
-
return await this._handleDefaultText(msg);
|
|
96
|
-
}
|
|
97
|
-
} catch (error) {
|
|
98
|
-
console.error(`玩家 ${this.player_id} 处理文本消息失败:`, error);
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* 处理私聊文本消息
|
|
105
|
-
* @param {object} msg 消息对象
|
|
106
|
-
* @returns {boolean} 是否处理成功
|
|
107
|
-
*/
|
|
108
|
-
async _handlePrivateText(msg) {
|
|
109
|
-
// 处理私聊消息逻辑
|
|
110
|
-
console.log(`[私聊] ${msg.sender_name}: ${msg.content}`);
|
|
111
|
-
return true;
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* 处理频道文本消息
|
|
116
|
-
* @param {object} msg 消息对象
|
|
117
|
-
* @returns {boolean} 是否处理成功
|
|
118
|
-
*/
|
|
119
|
-
async _handleChannelText(msg) {
|
|
120
|
-
// 处理频道消息逻辑
|
|
121
|
-
console.log(`[频道${msg.channel_id}] ${msg.sender_name}: ${msg.content}`);
|
|
122
|
-
return true;
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* 处理世界文本消息
|
|
127
|
-
* @param {object} msg 消息对象
|
|
128
|
-
* @returns {boolean} 是否处理成功
|
|
129
|
-
*/
|
|
130
|
-
async _handleWorldText(msg) {
|
|
131
|
-
// 处理世界消息逻辑
|
|
132
|
-
console.log(`[世界] ${msg.sender_name}: ${msg.content}`);
|
|
133
|
-
return true;
|
|
134
|
-
},
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* 处理公会文本消息
|
|
138
|
-
* @param {object} msg 消息对象
|
|
139
|
-
* @returns {boolean} 是否处理成功
|
|
140
|
-
*/
|
|
141
|
-
async _handleGuildText(msg) {
|
|
142
|
-
// 处理公会消息逻辑
|
|
143
|
-
console.log(`[公会] ${msg.sender_name}: ${msg.content}`);
|
|
144
|
-
return true;
|
|
145
|
-
},
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* 处理默认文本消息
|
|
149
|
-
* @param {object} msg 消息对象
|
|
150
|
-
* @returns {boolean} 是否处理成功
|
|
151
|
-
*/
|
|
152
|
-
async _handleDefaultText(msg) {
|
|
153
|
-
// 处理默认文本消息逻辑
|
|
154
|
-
console.log(`[未知范围] ${msg.sender_name}: ${msg.content}`);
|
|
155
|
-
return true;
|
|
156
|
-
},
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* 处理战斗数据
|
|
160
|
-
* @param {object} msg 消息对象
|
|
161
|
-
* @returns {boolean} 是否处理成功
|
|
162
|
-
*/
|
|
163
|
-
async _handleCombat(msg) {
|
|
164
|
-
// 处理战斗相关数据:技能释放、伤害计算、战斗结果等
|
|
165
|
-
var combat = msg.data;
|
|
166
|
-
|
|
167
|
-
// 示例:处理伤害数据
|
|
168
|
-
if (combat.damage && combat.target_id === this.player_id) {
|
|
169
|
-
this.health -= combat.damage;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// 这里可以添加更多的战斗数据处理逻辑
|
|
173
|
-
return true;
|
|
174
|
-
},
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* 处理活动数据
|
|
178
|
-
* @param {object} msg 消息对象
|
|
179
|
-
* @returns {boolean} 是否处理成功
|
|
180
|
-
*/
|
|
181
|
-
async _handleActivity(msg) {
|
|
182
|
-
// 处理活动相关数据:活动开始、奖励发放、进度更新等
|
|
183
|
-
var activity = msg.data;
|
|
184
|
-
|
|
185
|
-
// 示例:处理活动奖励
|
|
186
|
-
if (activity.rewards) {
|
|
187
|
-
this.rewards = this.rewards || [];
|
|
188
|
-
this.rewards.push(...activity.rewards);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
return true;
|
|
192
|
-
},
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* 处理邮件数据
|
|
196
|
-
* @param {object} msg 消息对象
|
|
197
|
-
* @returns {boolean} 是否处理成功
|
|
198
|
-
*/
|
|
199
|
-
async _handleMail(msg) {
|
|
200
|
-
// 处理邮件相关数据:邮件内容、附件、赠品等
|
|
201
|
-
var mail = msg.data;
|
|
202
|
-
|
|
203
|
-
// 示例:处理邮件接收
|
|
204
|
-
this.mailbox = this.mailbox || [];
|
|
205
|
-
this.mailbox.push({
|
|
206
|
-
id: Date.now(),
|
|
207
|
-
title: mail.title,
|
|
208
|
-
content: mail.content,
|
|
209
|
-
attachments: mail.attachments || [],
|
|
210
|
-
timestamp: Date.now()
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
return true;
|
|
214
|
-
},
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* 处理系统数据
|
|
218
|
-
* @param {object} msg 消息对象
|
|
219
|
-
* @returns {boolean} 是否处理成功
|
|
220
|
-
*/
|
|
221
|
-
async _handleSystem(msg) {
|
|
222
|
-
// 处理系统相关数据:系统公告、维护通知等
|
|
223
|
-
var system = msg.data;
|
|
224
|
-
|
|
225
|
-
// 示例:处理系统公告
|
|
226
|
-
console.log(`玩家 ${this.player_id} 收到系统公告:`, system.message);
|
|
227
|
-
|
|
228
|
-
return true;
|
|
229
|
-
},
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* 处理私聊数据
|
|
233
|
-
* @param {object} msg 消息对象
|
|
234
|
-
* @returns {boolean} 是否处理成功
|
|
235
|
-
* @private
|
|
236
|
-
*/
|
|
237
|
-
async _handlePrivate(msg) {
|
|
238
|
-
// 处理私聊相关数据:私聊消息、好友请求等
|
|
239
|
-
var data = msg.data;
|
|
240
|
-
|
|
241
|
-
// 示例:处理私聊消息
|
|
242
|
-
console.log(`玩家 ${this.player_id} 收到私聊消息:`, data.message);
|
|
243
|
-
|
|
244
|
-
return true;
|
|
245
|
-
},
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* 处理频道数据
|
|
249
|
-
* @param {object} msg 消息对象
|
|
250
|
-
* @returns {boolean} 是否处理成功
|
|
251
|
-
*/
|
|
252
|
-
async _handleChannel(msg) {
|
|
253
|
-
// 处理频道相关数据:频道公告、频道活动等
|
|
254
|
-
var channel = msg.data;
|
|
255
|
-
|
|
256
|
-
// 示例:处理频道消息
|
|
257
|
-
console.log(`玩家 ${this.player_id} 收到频道消息:`, channel.message);
|
|
258
|
-
|
|
259
|
-
return true;
|
|
260
|
-
},
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* 处理聊天数据
|
|
264
|
-
* @param {object} msg 消息对象
|
|
265
|
-
* @returns {boolean} 是否处理成功
|
|
266
|
-
*/
|
|
267
|
-
async _handleChat(msg) {
|
|
268
|
-
// 处理聊天相关数据:聊天消息、频道消息等
|
|
269
|
-
var chat = msg.data;
|
|
270
|
-
|
|
271
|
-
// 示例:处理聊天消息
|
|
272
|
-
console.log(`玩家 ${this.player_id} 收到聊天消息:`, chat.message);
|
|
273
|
-
|
|
274
|
-
return true;
|
|
275
|
-
},
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* 处理默认数据
|
|
279
|
-
* @param {object} msg 消息对象
|
|
280
|
-
* @returns {boolean} 是否处理成功
|
|
281
|
-
*/
|
|
282
|
-
async _handleDefault(msg) {
|
|
283
|
-
// 处理未知类型的数据
|
|
284
|
-
console.log(`玩家 ${this.player_id} 收到未知类型数据:`, msg);
|
|
285
|
-
return true;
|
|
286
|
-
}
|
|
287
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
// 名称
|
|
3
|
-
"name": "user",
|
|
4
|
-
// 标题
|
|
5
|
-
"title": "示例处理器",
|
|
6
|
-
// 描述
|
|
7
|
-
"description": "介绍该处理器有什么用",
|
|
8
|
-
// 主文件
|
|
9
|
-
"main": "index.js",
|
|
10
|
-
// 作用域,决定加载到什么区域
|
|
11
|
-
"scope": "server",
|
|
12
|
-
// 状态 0:禁用 1:启用
|
|
13
|
-
"state": 1,
|
|
14
|
-
// 排序,越小越靠前
|
|
15
|
-
"sort": 100,
|
|
16
|
-
// 依赖的领域服务
|
|
17
|
-
"services": [],
|
|
18
|
-
// 依赖的仓储
|
|
19
|
-
"stores": [],
|
|
20
|
-
// 依赖的富血模型
|
|
21
|
-
"models": ["user"]
|
|
22
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 处理器(应用层)
|
|
3
|
-
*/
|
|
4
|
-
module.exports = {
|
|
5
|
-
/**
|
|
6
|
-
* 初始化
|
|
7
|
-
* @param {object} app 应用实例
|
|
8
|
-
* @param {object} eventer 事件总线
|
|
9
|
-
*/
|
|
10
|
-
async _init(app, eventer) {
|
|
11
|
-
// this.log('debug', `初始化!`);
|
|
12
|
-
// 可将监听写在这里
|
|
13
|
-
// eventer.on('');
|
|
14
|
-
},
|
|
15
|
-
/**
|
|
16
|
-
* 主要逻辑
|
|
17
|
-
* @param {...any} args 逻辑参数
|
|
18
|
-
*/
|
|
19
|
-
async main(...args) {
|
|
20
|
-
this.log('debug', `主要逻辑`);
|
|
21
|
-
// 主要代码写在这
|
|
22
|
-
}
|
|
23
|
-
};
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
if (!$.const) {
|
|
2
|
-
$.const = {};
|
|
3
|
-
}
|
|
4
|
-
if ($.const) {
|
|
5
|
-
/**
|
|
6
|
-
* 消息类型枚举
|
|
7
|
-
*/
|
|
8
|
-
const MESSAGE_TYPES = {
|
|
9
|
-
// 内容消息类
|
|
10
|
-
TEXT: 'text',
|
|
11
|
-
IMAGE: 'image',
|
|
12
|
-
VOICE: 'voice',
|
|
13
|
-
VIDEO: 'video',
|
|
14
|
-
FILE: 'file',
|
|
15
|
-
|
|
16
|
-
// 交互消息类
|
|
17
|
-
EVENT: 'event',
|
|
18
|
-
NOTICE: 'notice',
|
|
19
|
-
CARD: 'card',
|
|
20
|
-
LIST: 'list',
|
|
21
|
-
|
|
22
|
-
// 业务消息类
|
|
23
|
-
CHAT: 'chat',
|
|
24
|
-
MAIL: 'mail',
|
|
25
|
-
TRADE: 'trade'
|
|
26
|
-
};
|
|
27
|
-
$.const.MESSAGE_TYPES = MESSAGE_TYPES;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* 事件类型枚举
|
|
31
|
-
*/
|
|
32
|
-
const EVENT_TYPES = {
|
|
33
|
-
// 游戏事件
|
|
34
|
-
COMBAT: 'combat',
|
|
35
|
-
QUEST: 'quest',
|
|
36
|
-
LEVEL: 'level',
|
|
37
|
-
ACHIEVEMENT: 'achievement',
|
|
38
|
-
|
|
39
|
-
// 社交事件
|
|
40
|
-
FRIEND: 'friend',
|
|
41
|
-
GUILD: 'guild',
|
|
42
|
-
TEAM: 'team',
|
|
43
|
-
INVITE: 'invite',
|
|
44
|
-
|
|
45
|
-
// 系统事件
|
|
46
|
-
LOGIN: 'login',
|
|
47
|
-
LOGOUT: 'logout',
|
|
48
|
-
REWARD: 'reward',
|
|
49
|
-
ACTIVITY: 'activity'
|
|
50
|
-
};
|
|
51
|
-
$.const.EVENT_TYPES = EVENT_TYPES;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* 消息分组枚举
|
|
55
|
-
*/
|
|
56
|
-
const MESSAGE_GROUPS = {
|
|
57
|
-
PRIVATE: 'private',
|
|
58
|
-
CHANNEL: 'channel',
|
|
59
|
-
WORLD: 'world',
|
|
60
|
-
GUILD: 'guild',
|
|
61
|
-
SYSTEM: 'system'
|
|
62
|
-
};
|
|
63
|
-
$.const.MESSAGE_GROUPS = MESSAGE_GROUPS;
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* 消息优先级枚举
|
|
67
|
-
*/
|
|
68
|
-
const PRIORITIES = {
|
|
69
|
-
LOW: 'low',
|
|
70
|
-
NORMAL: 'normal',
|
|
71
|
-
HIGH: 'high',
|
|
72
|
-
URGENT: 'urgent'
|
|
73
|
-
};
|
|
74
|
-
$.const.PRIORITIES = PRIORITIES;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* 消息模型
|
|
79
|
-
*/
|
|
80
|
-
module.exports = {
|
|
81
|
-
/**
|
|
82
|
-
* 添加消息模型方法
|
|
83
|
-
* @param {object} model 消息模型实例
|
|
84
|
-
*/
|
|
85
|
-
addMethods(model) {
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
};
|