首先要声明一下,Fir0918服务端方面个人感觉实在是渣 代码各种乱入,写此博客只是记录自己学习的点滴。并不是来告诉大家fir的代码有多好。

TBaseObject 只有四个成员 对象所在地图的X,Y以及对象类型objType(玩家 英雄 NPC  事件 等等)。以及对象创建的时间使用GetTickCount。成员函数也只有一个构造函数。

TActorObject: TActorObject .从代码上看来是作为Actor超类 。但是此类内部实际耦合了太多Player的成员 比如 Socket 句柄 ,衣服样子 以及所属行会等等。而从结构上来看

TActorObject 只是作为一个抽象类来泛化人物 怪物 以及NPC的 具体功能。而此类却耦合太多的人物操作。所以这里并没有设计好。需要解耦。关于属性问题:其内部有三个关于属性的结构体成员:

{人物属性}
    m_Abil: TAbility;  //人物临时属性。此结构体用来计算人物所在等级应具有的基本属性。之后再计算入m_wAbil内
    m_WAbil: TAbility; //人物主要属性。此结构体是人物的主要属性值记录。攻击伤害是以此结构体作为数据来计算。
    m_AddAbil: TAddAbility;//人物附加属性。此结构体 类似与TAbilty 。有不少重复的字段是一样的。其作用是计算人物身上穿戴装备的属性值。然后和m_Abil相加 赋值给    m_wAbil 。

TAnimalObject : 此类实现了Actor的搜寻 和攻击 以及 随机的走动方法。以及处理Socket消息的小实现。个人认为 此类功能应该在TActorObject内实现。再此多一层继承关系是没必要的。

TMonster :  此类作为怪物类的基类 实现了攻击目标 和基本逻辑处理(Run函数) 子类怪物继承自其要实现新的功能基本 是在Run内进行重写。

TAIObject : 此类 实现了自动控制的一些功能 但并未完全实现。从设计角度来看 此类是为英雄以及假人实现做抽象的。但是个人认为此类应该继承自TPlayObject  而不是让TPlayObject 继承自TAIObject 毕竟 玩家是不需要自动控制的吧。或许需要挂机的功能?

TNormalNPC: 此类实现了各种脚本功能的支持 #IF #ACT 条件的支持!其实有点不太理解 为什么此类需要从TAnimalObject继承。 而卫士类TSuperGuard继承自TNormalNpc 却只实现了攻击玩家这种方法。对于TNormalNPC实现的脚本功能卫士是使用不上的。

TAIPlayObject : 假人的实现。

THeroObject : 英雄的实现。

思考分析:从继承关系上来看TAnimalObject 不应该出现 此类应该集合在Actor类内。而TSuperGuard 也不应继承自TNormalNPC。 而且FIR的源代码内 Actor 也包含了TPlayObject 和 THeroObject的代码:从继承关系上来 应该从更新整理为以下关系

如果非得在服务端实现 人物的挂机功能。那么可以提取出一个公共接口。让假人 和玩家 ,英雄 各自实现 其智能化的功能。

热血传奇服务端FIR0918源码服务端Actor继承关系以及注解相关推荐

  1. 按头安利 好看又实用的端游源码 PC端 客户端 电脑游戏源码素材看这里

    想必大家都在为找端游源码 PC端 客户端 电脑游戏源码而头疼吧,今天小编都为大家整理好咯,上资源的端游源码 PC端 客户端 电脑游戏源码,大家喜欢的可以先行收藏哈,之后会持续更新哒~ 在找寻资源的时候 ...

  2. C语言实现UDP网络通信(附服务端和客服端完整源码)

    C语言实现UDP网络通信 服务端源码 客户端源码 服务端源码 #ifdef _WIN32 #define _WINSOCK_DEPRECATED_NO_WARNINGS #define close c ...

  3. C语言实现TCP网络通信(附服务端和客服端完整源码)

    C语言实现TCP网络通信 服务端源码 客户端源码 服务端源码 #include <stdio.h> #include <stdlib.h> #include <strin ...

  4. 2021最新4合1即时通讯IM源码-服务端+PC+WEB+安卓+IOS完整原生源码

    介绍: 20214合1即时通讯IM源码 服务端+PC+WEB+安卓+IOS完整原生源码 附完整开发文档+视频搭建教程. 注意:此源码亲测可用,他处有小问题,我们已经修复.任何源码,难免有瑕疵,但不影响 ...

  5. java开源即时通讯软件服务端openfire源码构建

    java开源即时通讯软件服务端openfire源码构建 本文使用最新的openfire主干代码为例,讲解了如何搭建一个openfire开源开发环境,正在实现自己写java聊天软件: 编译环境搭建 调试 ...

  6. php手游服务端开发教程,【手游服务端】梦想海贼王 卡牌系列一键端服务端游戏源码+教程...

    [手游服务端]梦想海贼王 卡牌系列一键端服务端游戏源码+教程 游戏介绍: <梦想海贼王>是一款卡牌类手游,游戏以全球第一超人气动漫<海贼王>为题材,用Q版风格配合新奇多样的玩法 ...

  7. C++RTSP服务端(附源码)

      VC++开发常用功能一系列文章 (欢迎订阅,持续更新...) 第16章:VC++ RTSP服务端(附源码)  源代码demo已上传到百度网盘:永久生效 ,文章尾部附 百度链接

  8. PHP服务端、Unity客户端 双端基础源码做avalon阿瓦隆桌游面sha(类似狼人游戏)支持WebGL、小程序发布

    文章目录 PHP服务端发布(Windows下演示) Windows 安装PHP 启动服务器 Linux家族 Unity客户端发布 发布Windows客户端 发布WebGL端 演示 源码解析 联系作者 ...

  9. 校园网跑腿小程序源码 服务端+客户端+小程序

    介绍: 校园网跑腿小程序源码 需要准备 1.小程序 2.服务器(推荐配置2h4g3m) 3.域名(需要备案) 搭建教程 使用服务器搭建宝塔 安装pm2管理器 新建项目上传服务器接口 修改/pub/co ...

最新文章

  1. Adobe Creative Suite CS4/CS5 全系列注册机
  2. SAP SMP的一些截图
  3. Lugre摩擦模型的Stribeck曲线仿真
  4. Q130:PBRT-V3,非均匀介质的采样(11.3.3章节、15.2.2章节)
  5. vue安装vue-pdf(预览pdf)(2021/03/02)
  6. tcpdf html table,TCPDF: HTML table and page breaks
  7. PMP-项目进度管理
  8. 汇编:Debug的常用命令
  9. 科研常用到的计算机编程,科研必备:几款好用的流程图工具,助力你的论文/科研绘图...
  10. HR不排斥的三大跳槽理由
  11. JVM2:垃圾收集器与内存分配策略
  12. 华硕笔记本BIOS设置u盘启动图文详解
  13. 宏基笔记本电脑怎么进入bios设置功能按键图解
  14. Discuz! X搬家说明
  15. Synaptics FP Sensors(WBF)(PID=0011)无法录入Windows Hello问题记录
  16. java谐音,那位有If I were a boy 谐音啊?!
  17. 小程序Cannot set property 'userInfo' of undefined
  18. Excel?最强国产开源在线表格 Luckysheet 走红GitHub!
  19. php学习笔记(一)--我们的第一段PHP代码
  20. 去除canvas 画圆的毛边

热门文章

  1. 从零开始学习JavaWeb(CSS背景图片固定+获取网页图片)
  2. 腾讯T2大牛亲自讲解!Android猿面试(附视频)
  3. mysql 10058_OUI-10058错误
  4. 来了,来了!孙正义出手之“软银22.5亿美金砸向通用Cruise”
  5. Java程序定义一个继承Thread类,并覆盖run()方法,在run()方法中每隔100毫秒打印一句话。
  6. HTML 知识点 小结
  7. 一整套偏方,亲们有对应症状可略为参考
  8. JSP Mysql 实例解说_JSP+MySQL实例
  9. 浅谈FPGA与音频处理器的结合
  10. 好用的天气预报软件:Living Earth Desktop for Mac