Skip to content

Commit 183e8e5

Browse files
committed
fix init function
1 parent 25eda8d commit 183e8e5

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

api_custom_entities.sma

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,8 +400,6 @@ public FMHook_Spawn(pEntity) {
400400

401401
@Entity_SetPData(pEntity, g_itPData);
402402
g_itPData = Invalid_Trie;
403-
404-
ExecuteHookFunction(CEFunction_Init, iId, pEntity);
405403
}
406404
}
407405

@@ -480,10 +478,22 @@ bool:@Entity_IsCustom(this) {
480478
return this;
481479
}
482480

481+
@Entity_Init(this) {
482+
new Trie:itPData = @Entity_GetPData(this);
483+
new iId = GetPDataMember(itPData, CE_MEMBER_ID);
484+
ExecuteHookFunction(CEFunction_Init, iId, this);
485+
SetPDataMember(itPData, CE_MEMBER_INITIALIZED, true);
486+
}
487+
483488
@Entity_Spawn(this) {
484489
new Float:flGameTime = get_gametime();
485490

486491
new Trie:itPData = @Entity_GetPData(this);
492+
493+
if (!GetPDataMember(itPData, CE_MEMBER_INITIALIZED)) {
494+
@Entity_Init(this);
495+
}
496+
487497
new iId = GetPDataMember(itPData, CE_MEMBER_ID);
488498
new bool:bIsWorld = GetPDataMember(itPData, CE_MEMBER_WORLD);
489499

@@ -891,6 +901,7 @@ Trie:AllocPData(iId, pEntity) {
891901
SetPDataMember(itPData, CE_MEMBER_ID, iId);
892902
SetPDataMember(itPData, CE_MEMBER_WORLD, false);
893903
SetPDataMember(itPData, CE_MEMBER_POINTER, pEntity);
904+
SetPDataMember(itPData, CE_MEMBER_INITIALIZED, false);
894905
return itPData;
895906
}
896907

include/api_custom_entities.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#define CE_MEMBER_DELAY "_delay"
2222
#define CE_MEMBER_NEXTKILL "_nextkill"
2323
#define CE_MEMBER_NEXTRESPAWN "_nextrespawn"
24+
#define CE_MEMBER_INITIALIZED "_initialized"
2425

2526
enum CEPreset {
2627
CEPreset_None = 0,

0 commit comments

Comments
 (0)