diff --git a/datasrc/network.py b/datasrc/network.py index a54c6efa0..1ed5a09bb 100644 --- a/datasrc/network.py +++ b/datasrc/network.py @@ -216,6 +216,7 @@ Objects = [ NetTick("m_FreezeEnd"), NetIntRange("m_Jumps", 0, 255), NetIntAny("m_TeleCheckpoint"), + NetIntRange("m_StrongWeakID", 0, 'MAX_CLIENTS-1'), ]), ## Events diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp index c7e8fdd0d..601c20f53 100644 --- a/src/game/server/entities/character.cpp +++ b/src/game/server/entities/character.cpp @@ -24,6 +24,7 @@ CCharacter::CCharacter(CGameWorld *pWorld) m_ProximityRadius = ms_PhysSize; m_Health = 0; m_Armor = 0; + m_StrongWeakID = 0; } void CCharacter::Reset() @@ -1216,6 +1217,7 @@ void CCharacter::Snap(int SnappingClient) pDDNetCharacter->m_FreezeEnd = m_DeepFreeze ? -1 : m_FreezeTick + m_FreezeTime; pDDNetCharacter->m_Jumps = m_Core.m_Jumps; pDDNetCharacter->m_TeleCheckpoint = m_TeleCheckpoint; + pDDNetCharacter->m_StrongWeakID = m_StrongWeakID; } int CCharacter::NetworkClipped(int SnappingClient) diff --git a/src/game/server/entities/character.h b/src/game/server/entities/character.h index 28ef6bc3b..90893c72b 100644 --- a/src/game/server/entities/character.h +++ b/src/game/server/entities/character.h @@ -258,6 +258,7 @@ public: vec2 m_TeleGunPos; bool m_TeleGunTeleport; bool m_IsBlueTeleGunTeleport; + int m_StrongWeakID; // Setters/Getters because i don't want to modify vanilla vars access modifiers int GetLastWeapon() { return m_LastWeapon; }; diff --git a/src/game/server/gameworld.cpp b/src/game/server/gameworld.cpp index 3b2863a8a..e08bc5521 100644 --- a/src/game/server/gameworld.cpp +++ b/src/game/server/gameworld.cpp @@ -280,6 +280,14 @@ void CGameWorld::Tick() RemoveEntities(); UpdatePlayerMaps(); + + // find the characters' strong/weak id + int StrongWeakID = 0; + for(CCharacter *pChar = (CCharacter*) FindFirst(ENTTYPE_CHARACTER); pChar; pChar = (CCharacter*) pChar->TypeNext()) + { + pChar->m_StrongWeakID = StrongWeakID; + StrongWeakID++; + } } // TODO: should be more general