【HLSDK系列】怎麽增加一種新實體
阿新 • • 發佈:2017-05-20
sta fun class 使用 pen 關聯 creat bsp cnblogs
你平常肯定接觸到很多比如 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 的代碼,裏面有你想要的!
【HLSDK系列】怎麽增加一種新實體