【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 的代码,里面有你想要的!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步