【HLSDK系列】怎么增加一种新实体

你平常肯定接触到很多比如 info_player_start hostage info_target 之类的实体,这里就解释一下怎么创建一种新的实体。

首先建立一个新的 .h 文件(当然你写在现有的文件上也可以),建立一个基于 CBaseEntity 的类,例如:

1 class CMyEntity : public CBaseEntity
2 {
3 public:
4     void Spawn(void);
5 }

在 .cpp 文件里编写这个类的函数体,例如:

1 void CMyEntity::Spawn(void)
2 {
3 }

写好了类还没完事,因为引擎还不认识你这个实体,你需要使用 LINK_ENTITY_TO_CLASS 宏来让你的类和一个名称关联起来,这个名称就是你的实体名。例如:

注:也是写在 .cpp 里

1 LINK_ENTITY_TO_CLASS(myentity, CMyEntity);

完成这些步骤,你就可以用 CREATE_NAMED_ENTITY (也就是 g_engfuncs.pfnCreateNamedEntity)来创建出你的实体了,例如:

 1 edict_t *pent = CREATE_NAMED_ENTITY(MAKE_STRING("myentity"));
 2
 3 if (!pent)
 4     return;
 5
 6 CMyEntity *pEntity = (CMyEntity *)CBaseEntity::Instance(pent);
 7
 8 pEntity->Spawn();
 9
10 // your code here ...

好了步骤就这些了,想实现各种各样的功能,不要忘了参考 HLSDK 的代码,里面有你想要的!

时间: 2024-10-10 05:42:57

【HLSDK系列】怎么增加一种新实体的相关文章

OSharp3.0框架解说系列:新版本说明及新功能规划预览

前言 时间过得真快,小半年又过去了. OSharp在github.com开源已经半年了,半年时间里,我们发现开源并没有给OSharp带来什么发展,关注的人不多,提交Bug的人更少,至于愿意参与到项目中来,给OSharp提交代码的人,0. 大环境如此,我也没什么可说的. 一个人的开源,开的不是源,是寂寞. 为了OSharp项目能继续发展下去,也为了团队的积极性(大家都懂的,如果只有你一个人在贡献,别人都只索取,你的热情坚持不了多久的),我们做了一个决定…… OSharp3.0不再开源 从OShar

《Entity Framework 6 Recipes》翻译系列(2) -----第一章 开始使用实体框架之使用介绍 (转)

Visual Studio 我们在Windows平台上开发应用程序使用的工具主要是Visual Studio.这个集成开发环境已经演化了很多年,从一个简单的C++编辑器和编译器到一个高度集成.支持软件开发整个生命周期的多语言环境. Visual Studio以及它发布的工具和服务提供了:设计.开发.单元测试.调试.软件配置和管理.构建管理和持续集成等等.很少有开发人员因为还没有使用它而担心(注:作者应该是表达不用担心VS的能力),Visual Studio是一个完整的工具集.Visual Stu

二十八、带给我们一种新的编码思路——EFW框架CS系统开发中的MVC模式探讨

回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://pan.baidu.com/s/1eQCc69G       前言:记得最初写出Winform版MVC的代码是在公司的一个产品中,产品有几个界面功能比较多,一个界面窗体的代码尽然有1万多行代码,让我们在维护这几个界面的时候非常的痛苦,你可能想可以把这个大的界面拆分成几个小的界面在集成在一起不就好了,但实际上这样

《Entity Framework 6 Recipes》翻译系列 2 -----第一章 开始使用实体框架2

Visual Studio 我们在Windows平台上开发应用程序使用的工具主要是Visual Studio.这个集成开发环境已经演化了很多年,从一个简单的C++编辑器和编译器到一个高度集成.支持软件开发整个生命周期的多语言环境. Visual Studio以及它发布的工具和服务提供了:设计.开发.单元测试.调试.软件配置和管理.构建管理和持续集成等等.很少有开发人员因为还没有使用它而担心(注:作者应该是表达不用担心VS的能力),Visual Studio是一个完整的工具集.Visual Stu

博客上的几种新职业介绍

看了很多博客,发现了一些共同点.我觉得可以把这些博主分类一下,形成几种新的职业. 我不是在嘲讽谁,真的. 超文本抄书匠 Hypertext Book Copier 工作描述 手打大师,大段抄录实体书.教材.资料内容,并发表在博客里,作为教程系列,或者记录系列,列出目录超链接,坚称"为学习留下记录"云云.与此同时,可恶的鼠标总是会自动在发表之前勾选发布至首页,大师本人也很无奈. 入职条件 有一块优质的键盘,打字速度快.一套纸质资料,素材必不可少,否则无法开展工作. 要点 在与大家分享的时

发表在 Science 上的一种新聚类算法

今年 6 月份,Alex Rodriguez 和 Alessandro Laio 在 Science 上发表了一篇名为<Clustering by fast search and find of density peaks>的文章,为聚类算法的设计提供了一种新的思路.虽然文章出来后遭到了众多读者的质疑,但整体而言,新聚类算法的基本思想很新颖,且简单明快,值得学习.这个新聚类算法的核心思想在于对聚类中心的刻画上,本文将对该算法的原理进行详细介绍,并对其中的若干细节展开讨论. 最后,附上作者在补充

OFBiz进阶之HelloWorld(五)创建新实体

1 Creating Custom Entity 新实体的创建你可以再参考 example 组件,为此你可以看下 example 组件的 entitymodel.xml 文件.你可以按下列步骤创建新的实体: a. 在 hot-deploy/practice/  下创建一个 entitydef 的子目录. b. 创建一个 entitymodel.xml 文件.这个文件包括你想定义的实体定义. c. 要装载定义,你需要在 ofbiz-component.xml 文件中定义一个条目,如下: <enti

(译)面向共鸣的开放域对话模型:一种新的基准和数据集

面向共鸣的开放域对话模型:一种新的基准和数据集 摘要 对话代理面临的一个挑战是识别对话伙伴的情感并作出相应的回应,这是一项关键的交流技能.尽管对人类来说在对话中识别和承认其他人的情感是一件很直接的事情,但由于缺乏合适的可公开获取的训练和评估数据集,所以对于智能系统来说这仍然是一个典型的挑战.本文对于共鸣对话生成和共鸣对话提出了一个新的基准和一个基于情感情景.包含25000条对话数据的新型数据集.我们的实验表明那些使用我们数据集的对话模型被人类评估员认为比那些仅使用大规模网络对话数据进行训练的模型

PyCharm 2019.3发布,增加了哪些新功能呢?

Python的IDE(Integrated Development Environment 集成开发环境)非常多,如:VS Code.Sublime.NotePad.Python自带编辑器IDLE.JuPyter.Eclipse + PyDev等等,但是对于项目开发.管理.部署等稍微大一点的项目,猪哥觉得还是PyCharm最好用! 2019年12月2日,PyCharm迎来了2019.3版本,这也许会是2019年的最后一个大版本,那这个版本增加了哪些新功能呢?我们一起来看看吧! 来源 | PyCh