实体索引

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)

一个**实体索引**是由引擎赋予每个实体的唯一integer(en)。它允许跨越库边界引用同一个实体,但在客户端和服务器上会有所不同,除非使用了edict(en)。在客户端和服务器内部,指向CBaseEntity(en)的指针更为有用。

索引中最多可以有4096个实体(en)。前2048个条目预留给拥有edict(en)的实体,这些实体跨越客户端/服务器分界。

Tip.png提示: Worldspawn(en)总是实体0,而索引1到<maxplayers(en)>预留给玩家。
Tip.png提示: 使用ent_text命令来查找特定实体的索引。它会显示在圆括号中。
Note.png注意: 实体索引在帧与帧之间并不可靠,因为它可能随时从一个实体释放并重新分配给另一个实体。请使用CHandle(en)进行长期存储。

用法

共享
int(en) CBaseEntity(en)::entindex()
服务器
edict_t(en)* INDEXENT( int iEdictNum )
int ENTINDEX( edict_t(en)* pEdict )
CEntInfo(en)* gEntList(en).GetEntInfoPtrByIndex(int)
以下函数在《异形丛生》中不可用:
int engine(en)->IndexOfEdict(edict_t(en))
edict_t(en) engine->PEntityOfEntIndex(int) (仅限网络实体)
客户端
C_BaseEntity(en) ClientEntityList().GetBaseEntity(int)

参见