browser request server端源代码解析

一、文件功能概览
  1、main.js  入口,封装网络IO、GS配置、后台监控接口等
  2、worldserver.js  GS(一条线),维护玩家、NPC、怪物、道具、物品、地图、刷怪区、主城等,
     需要玩家间交互的逻辑,以此处作为交互的接口
  3、Map.js 维护整张地图数据,其中包括zone尺度、刷怪区、障碍点、常规实体、坐标与grid索引相互转换等
  4、checkpoint.js 刷新点
  5、Area.js 某块地图区域
  6、chestarea 和平区
  7、mobarea   刷怪区
  8、chest     宝箱
  9、mob       怪物
  10、entity   基本实体
  11、character 可以交互的对象(HP、攻击等)
  12、item     一般道具
  13、npc
  14、player   一个玩家
  15、properties 怪物数值
  16、WS          网络抽象
  17、format.js 验证消息参数是否有效
  18、formulas  属性计算公式,当前只有伤害值
  19、message    消息定义
  20、metrics    配置、监控、查询

二、基本约定
  mob 怪物
  zone 一个map子区域
  group 玩家分组对应一个zone,
  tile  一个坐标单位

三、地图数据结构
  map.doors         zone连通关系, 实例 {"x":152,"y":202,"p":0,"tcx":120,"tcy":205,"to":"d","tx":123,"ty":208} x y源坐标、tx ty 目的坐标 tcx tcy 目的中心
  map.checkpoints   刷新点(可以作为出生点)例子 {"id":1,"x":14,"y":210,"w":9,"h":2,"s":1} s表示是否是出生点
  map.collisions    障碍点
  map.roamingAreas  刷怪区 例子 {"id":0,"x":10,"y":206,"width":13,"height":7,"type":"rat","nb":3} nb number:个数,type 怪物类型
  map.chestAreas    主城   {"x":123,"y":113,"w":8,"h":5,"i":[23],"tx":127,"ty":115} i:items道具 tx,ty箱子的位置
  staticChests      :[{"x":157,"y":141,"i":[61]},  // 位置,
  "staticEntities": 静态环境 {"1305":"spectre","1585":"spectre", // tile索引(一维)对应的怪物

四、继承关系:
  entity
      item
      npc
      character----player
                   mob
  area---chestarea
         mobarea
五、消息处理  玩家的所有的消息处理函数位置 player.js :line 27

猜你喜欢

转载自eric-weitm.iteye.com/blog/1469152
今日推荐