diff --git a/server/src/config/world.config.ts b/server/src/config/world.config.ts index 410830a..cd8e605 100644 --- a/server/src/config/world.config.ts +++ b/server/src/config/world.config.ts @@ -3,13 +3,13 @@ */ export const WorldConfig = { /** 世界宽度 */ - WORLD_WIDTH: 100, + WORLD_WIDTH: 1440, /** 世界高度 */ - WORLD_HEIGHT: 100, + WORLD_HEIGHT: 1440, /** 出生区域半径(距离中心点) */ - SPAWN_RADIUS: 20, + SPAWN_RADIUS: 10, /** 世界中心点 X 坐标 */ get CENTER_X() { diff --git a/server/src/msg/MsgReqLogin.ts b/server/src/msg/MsgReqLogin.ts index 378ecd9..e26ec76 100644 --- a/server/src/msg/MsgReqLogin.ts +++ b/server/src/msg/MsgReqLogin.ts @@ -50,6 +50,20 @@ export default async function (call: MsgCall) { lastLoginAt: player.lastLoginAt }; + // 获取房间内其他在线玩家信息 + const otherOnlinePlayers = playerManager.getOnlinePlayers().filter(p => p.id !== playerId); + const otherPlayersInfo: PlayerInfo[] = otherOnlinePlayers.map(p => ({ + id: p.id, + name: p.name, + position: gameToClientPosition(p.position), + spawnPoint: gameToClientPosition(p.spawnPoint), + hp: p.hp, + maxHp: p.maxHp, + isAlive: p.isAlive, + createdAt: p.createdAt, + lastLoginAt: p.lastLoginAt + })); + // 广播玩家加入消息给其他在线玩家 const { broadcastToAll } = await import('../utils/broadcast'); @@ -66,7 +80,8 @@ export default async function (call: MsgCall) { success: true, message: isNewPlayer ? '创建角色成功,欢迎来到游戏世界!' : '登录成功,欢迎回来!', player: playerInfo, - isNewPlayer + isNewPlayer, + otherPlayers: otherPlayersInfo }; call.conn.sendMsg('ResLogin', response); diff --git a/server/src/msg/MsgReqMove.ts b/server/src/msg/MsgReqMove.ts index dbb2f99..edab3d8 100644 --- a/server/src/msg/MsgReqMove.ts +++ b/server/src/msg/MsgReqMove.ts @@ -86,7 +86,7 @@ export default async function (call: MsgCall) { timestamp: Date.now() }; - broadcastToAll('MsgPlayerMove', moveMsg, call.conn.id); + broadcastToAll('PlayerMove', moveMsg, call.conn.id); // 返回成功结果 call.conn.sendMsg('ResMove', { diff --git a/server/src/shared/protocols/MsgResLogin.ts b/server/src/shared/protocols/MsgResLogin.ts index efc81fe..1264720 100644 --- a/server/src/shared/protocols/MsgResLogin.ts +++ b/server/src/shared/protocols/MsgResLogin.ts @@ -47,4 +47,7 @@ export interface MsgResLogin { /** 是否新玩家 */ isNewPlayer?: boolean; + + /** 房间内其他在线玩家信息 */ + otherPlayers?: PlayerInfo[]; } \ No newline at end of file diff --git a/server/src/shared/protocols/serviceProto.ts b/server/src/shared/protocols/serviceProto.ts index 2ad665d..4be83d1 100644 --- a/server/src/shared/protocols/serviceProto.ts +++ b/server/src/shared/protocols/serviceProto.ts @@ -27,7 +27,7 @@ export interface ServiceType { } export const serviceProto: ServiceProto = { - "version": 5, + "version": 6, "services": [ { "id": 0, @@ -273,6 +273,18 @@ export const serviceProto: ServiceProto = { "type": "Boolean" }, "optional": true + }, + { + "id": 4, + "name": "otherPlayers", + "type": { + "type": "Array", + "elementType": { + "type": "Reference", + "target": "MsgResLogin/PlayerInfo" + } + }, + "optional": true } ] },