Парсинг KeyValues энтити

x330122

Участник
Сообщения
357
Реакции
152
Как можно взять все значения с энтити которые у него есть и сохранить в файл ?
И потом по файлу восстановить всем энтити эти значения типа.
Есть на карте point_message, в нем значение message:"HLMOD top", и spawnflags:1, и прочие значения.
Как можно спарсить вообще все значения у эти энтити и сохранить в файл, а затем загрузить энтити которые сохранены в файле, знаю не понятно но думаю разберетесь :)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
тупо пройти по всем свойствам энтити
Из датамапс:
C-подобный:
CBaseEntity - point_message

    - m_radius (Offset 912) (Save|Key)(4 Bytes) - radius
    - m_messageText (Offset 916) (Save|Key)(4 Bytes) - message
    - m_bDeveloperOnly (Offset 921) (Save|Key)(1 Bytes) - developeronly
    - m_drawText (Offset 920) (Save)(1 Bytes)
    - m_bEnabled (Offset 922) (Save)(1 Bytes)
    - InputEnable (Offset 0) (Input)(0 Bytes) - Enable
    - InputDisable (Offset 0) (Input)(0 Bytes) - Disable
    - m_iClassname (Offset 104) (Save|Key)(4 Bytes) - classname
    - m_iGlobalname (Offset 528) (Global|Save|Key)(4 Bytes) - globalname
    - m_iParent (Offset 532) (Save|Key)(4 Bytes) - parentname
    - m_nMinCPULevel (Offset 524) (Save|Key)(1 Bytes) - mincpulevel
    - m_nMaxCPULevel (Offset 525) (Save|Key)(1 Bytes) - maxcpulevel
    - m_nMinGPULevel (Offset 526) (Save|Key)(1 Bytes) - mingpulevel
    - m_nMaxGPULevel (Offset 527) (Save|Key)(1 Bytes) - maxgpulevel
    - m_iHammerID (Offset 536) (Save|Key)(4 Bytes) - hammerid
    - m_flSpeed (Offset 540) (Save|Key)(4 Bytes) - speed
    - m_nRenderFX (Offset 200) (Save|Key)(1 Bytes) - renderfx
    - m_nRenderMode (Offset 201) (Save|Key)(1 Bytes) - rendermode
    - m_flPrevAnimTime (Offset 108) (Save)(4 Bytes)
    - m_flAnimTime (Offset 112) (Save)(4 Bytes)
    - m_flSimulationTime (Offset 116) (Save)(4 Bytes)
    - m_nLastThinkTick (Offset 120) (Save)(4 Bytes)
    - m_iszScriptId (Offset 884) (Save)(4 Bytes)
    - m_iszVScripts (Offset 848) (Save|Key)(4 Bytes) - vscripts
    - m_iszScriptThinkFunction (Offset 852) (Save|Key)(4 Bytes) - thinkfunction
    - m_nNextThinkTick (Offset 172) (Save|Key)(4 Bytes) - nextthink
    - m_fEffects (Offset 176) (Save|Key)(4 Bytes) - effects
    - m_clrRender (Offset 204) (Save|Key)(4 Bytes) - rendercolor
    - m_nModelIndex (Offset 202) (Global|Save|Key)(2 Bytes) - modelindex
    - touchStamp (Offset 124) (Save)(4 Bytes)
    - m_aThinkFunctions (Offset 128) (Save)(0 Bytes)
    - m_ResponseContexts (Offset 148) (Save)(0 Bytes)
    - m_iszResponseContext (Offset 168) (Save|Key)(4 Bytes) - ResponseContext
    - m_pfnThink (Offset 16) (Save)(8 Bytes)
    - m_pfnTouch (Offset 560) (Save)(8 Bytes)
    - m_pfnUse (Offset 568) (Save)(8 Bytes)
    - m_pfnBlocked (Offset 576) (Save)(8 Bytes)
    - m_pfnMoveDone (Offset 8) (Save)(8 Bytes)
    - m_lifeState (Offset 585) (Save)(1 Bytes)
    - m_takedamage (Offset 586) (Save)(1 Bytes)
    - m_iMaxHealth (Offset 544) (Save|Key)(4 Bytes) - max_health
    - m_iHealth (Offset 548) (Save|Key)(4 Bytes) - health
    - m_bIsAutoaimTarget (Offset 184) (Save|Key)(1 Bytes) - is_autoaim_target
    - m_target (Offset 192) (Save|Key)(4 Bytes) - target
    - m_iszDamageFilterName (Offset 552) (Save|Key)(4 Bytes) - damagefilter
    - m_hDamageFilter (Offset 556) (Save)(4 Bytes)
    - m_debugOverlays (Offset 840) (Save)(4 Bytes)
    - m_pParent (Offset 228) (Global|Save)(4 Bytes)
    - m_iParentAttachment (Offset 233) (Save)(1 Bytes)
    - m_hMoveParent (Offset 236) (Global|Save)(4 Bytes)
    - m_hMoveChild (Offset 240) (Global|Save)(4 Bytes)
    - m_hMovePeer (Offset 244) (Global|Save)(4 Bytes)
    - m_iEFlags (Offset 216) (Save)(4 Bytes)
    - m_iName (Offset 224) (Save)(4 Bytes)
    Sub-Class Table (1 Deep): m_Collision - CCollisionProperty
        - m_vecMins (Offset 8) (Global|Save)(12 Bytes)
        - m_vecMaxs (Offset 20) (Global|Save)(12 Bytes)
        - m_nSolidType (Offset 34) (Save|Key)(1 Bytes) - solid
        - m_usSolidFlags (Offset 32) (Save)(2 Bytes)
        - m_nSurroundType (Offset 42) (Save)(1 Bytes)
        - m_flRadius (Offset 36) (Save)(4 Bytes)
        - m_triggerBloat (Offset 35) (Save)(1 Bytes)
        - m_vecSpecifiedSurroundingMins (Offset 44) (Save)(12 Bytes)
        - m_vecSpecifiedSurroundingMaxs (Offset 56) (Save)(12 Bytes)
        - m_vecSurroundingMins (Offset 68) (Save)(12 Bytes)
        - m_vecSurroundingMaxs (Offset 80) (Save)(12 Bytes)
    Sub-Class Table (1 Deep): m_Network - CServerNetworkProperty
        - m_hParent (Offset 52) (Global|Save)(4 Bytes)
    - m_MoveType (Offset 234) (Save|Key)(1 Bytes) - MoveType
    - m_MoveCollide (Offset 235) (Save)(1 Bytes)
    - m_hOwnerEntity (Offset 340) (Save)(4 Bytes)
    - m_CollisionGroup (Offset 344) (Save|Key)(4 Bytes) - CollisionGroup
    - m_pPhysicsObject (Offset 348) (Save)(0 Bytes)
    - m_flElasticity (Offset 460) (Save)(4 Bytes)
    - m_flShadowCastDistance (Offset 824) (Save|Key)(4 Bytes) - shadowcastdist
    - m_flDesiredShadowCastDistance (Offset 828) (Save)(4 Bytes)
    - m_iInitialTeamNum (Offset 784) (Save|Key|Input)(4 Bytes) - TeamNum
    - m_iTeamNum (Offset 788) (Save|Key)(4 Bytes) - teamnumber
    - m_iPendingTeamNum (Offset 792) (Save|Key)(4 Bytes) - pendingteamnumber
    - m_hGroundEntity (Offset 364) (Save)(4 Bytes)
    - m_flGroundChangeTime (Offset 368) (Save)(4 Bytes)
    - m_ModelName (Offset 180) (Global|Save|Key)(4 Bytes) - model
    - m_AIAddOn (Offset 800) (Save|Key)(4 Bytes) - addon
    - m_vecBaseVelocity (Offset 372) (Save|Key)(12 Bytes) - basevelocity
    - m_vecAbsVelocity (Offset 384) (Save)(12 Bytes)
    - m_vecAngVelocity (Offset 396) (Save|Key)(12 Bytes) - avelocity
    - m_rgflCoordinateFrame (Offset 408) (Save)(48 Bytes)
    - m_nWaterLevel (Offset 359) (Save|Key)(1 Bytes) - waterlevel
    - m_nWaterType (Offset 358) (Save)(1 Bytes)
    - m_pBlocker (Offset 516) (Save)(4 Bytes)
    - m_flGravity (Offset 804) (Save|Key)(4 Bytes) - gravity
    - m_flFriction (Offset 456) (Save|Key)(4 Bytes) - friction
    - m_flLocalTime (Offset 464) (Save|Key)(4 Bytes) - ltime
    - m_flVPhysicsUpdateLocalTime (Offset 468) (Save)(4 Bytes)
    - m_flMoveDoneTime (Offset 472) (Save)(4 Bytes)
    - m_vecAbsOrigin (Offset 480) (Save)(12 Bytes)
    - m_vecVelocity (Offset 504) (Save|Key)(12 Bytes) - velocity
    - m_iTextureFrameIndex (Offset 520) (Save|Key)(1 Bytes) - texframeindex
    - m_bSimulatedEveryTick (Offset 521) (Save)(1 Bytes)
    - m_bAnimatedEveryTick (Offset 522) (Save)(1 Bytes)
    - m_bAlternateSorting (Offset 523) (Save)(1 Bytes)
    - m_spawnflags (Offset 796) (Save|Key)(4 Bytes) - spawnflags
    - m_nTransmitStateOwnedCounter (Offset 232) (Save)(1 Bytes)
    - m_angAbsRotation (Offset 492) (Save)(12 Bytes)
    - m_vecOrigin (Offset 732) (Save)(12 Bytes)
    - m_angRotation (Offset 744) (Save)(12 Bytes)
    - m_bClientSideRagdoll (Offset 584) (Save)(1 Bytes)
    - m_vecViewOffset (Offset 760) (Save|Key)(12 Bytes) - view_ofs
    - m_fFlags (Offset 220) (Save)(4 Bytes)
    - m_nSimulationTick (Offset 208) (Save)(4 Bytes)
    - m_flNavIgnoreUntilTime (Offset 360) (Save)(4 Bytes)
    - InputSetTeam (Offset 0) (Input)(0 Bytes) - SetTeam
    - m_fadeMinDist (Offset 812) (Save|Key|Input)(4 Bytes) - fademindist
    - m_fadeMaxDist (Offset 816) (Save|Key|Input)(4 Bytes) - fademaxdist
    - m_flFadeScale (Offset 820) (Save|Key)(4 Bytes) - fadescale
    - InputKill (Offset 0) (Input)(0 Bytes) - Kill
    - InputKillHierarchy (Offset 0) (Input)(0 Bytes) - KillHierarchy
    - InputUse (Offset 0) (Input)(0 Bytes) - Use
    - InputAlpha (Offset 0) (Input)(0 Bytes) - Alpha
    - InputAlternativeSorting (Offset 0) (Input)(0 Bytes) - AlternativeSorting
    - InputColor (Offset 0) (Input)(0 Bytes) - Color
    - InputSetParent (Offset 0) (Input)(0 Bytes) - SetParent
    - InputSetParentAttachment (Offset 0) (Input)(0 Bytes) - SetParentAttachment
    - InputSetParentAttachmentMaintainOffset (Offset 0) (Input)(0 Bytes) - SetParentAttachmentMaintainOffset
    - InputClearParent (Offset 0) (Input)(0 Bytes) - ClearParent
    - InputSetLocalOrigin (Offset 0) (Input)(0 Bytes) - SetLocalOrigin
    - InputSetLocalAngles (Offset 0) (Input)(0 Bytes) - SetLocalAngles
    - InputSetDamageFilter (Offset 0) (Input)(0 Bytes) - SetDamageFilter
    - InputEnableDamageForces (Offset 0) (Input)(0 Bytes) - EnableDamageForces
    - InputDisableDamageForces (Offset 0) (Input)(0 Bytes) - DisableDamageForces
    - InputDispatchResponse (Offset 0) (Input)(0 Bytes) - DispatchResponse
    - InputAddContext (Offset 0) (Input)(0 Bytes) - AddContext
    - InputRemoveContext (Offset 0) (Input)(0 Bytes) - RemoveContext
    - InputClearContext (Offset 0) (Input)(0 Bytes) - ClearContext
    - InputDisableShadow (Offset 0) (Input)(0 Bytes) - DisableShadow
    - InputEnableShadow (Offset 0) (Input)(0 Bytes) - EnableShadow
    - InputDisableDraw (Offset 0) (Input)(0 Bytes) - DisableDraw
    - InputEnableDraw (Offset 0) (Input)(0 Bytes) - EnableDraw
    - InputDisableReceivingFlashlight (Offset 0) (Input)(0 Bytes) - DisableReceivingFlashlight
    - InputEnableReceivingFlashlight (Offset 0) (Input)(0 Bytes) - EnableReceivingFlashlight
    - InputDisableDrawInFastReflection (Offset 0) (Input)(0 Bytes) - DisableDrawInFastReflection
    - InputEnableDrawInFastReflection (Offset 0) (Input)(0 Bytes) - EnableDrawInFastReflection
    - InputAddOutput (Offset 0) (Input)(0 Bytes) - AddOutput
    - InputFireUser1 (Offset 0) (Input)(0 Bytes) - FireUser1
    - InputFireUser2 (Offset 0) (Input)(0 Bytes) - FireUser2
    - InputFireUser3 (Offset 0) (Input)(0 Bytes) - FireUser3
    - InputFireUser4 (Offset 0) (Input)(0 Bytes) - FireUser4
    - InputRunScriptFile (Offset 0) (Input)(0 Bytes) - RunScriptFile
    - InputRunScript (Offset 0) (Input)(0 Bytes) - RunScriptCode
    - InputCallScriptFunction (Offset 0) (Input)(0 Bytes) - CallScriptFunction
    - m_OnUser1 (Offset 592) (Save|Key|Output)(0 Bytes) - OnUser1
    - m_OnUser2 (Offset 616) (Save|Key|Output)(0 Bytes) - OnUser2
    - m_OnUser3 (Offset 640) (Save|Key|Output)(0 Bytes) - OnUser3
    - m_OnUser4 (Offset 664) (Save|Key|Output)(0 Bytes) - OnUser4
    - CBaseEntitySUB_Remove (Offset 0) (FunctionTable)(0 Bytes)
    - CBaseEntitySUB_DoNothing (Offset 0) (FunctionTable)(0 Bytes)
    - CBaseEntitySUB_StartFadeOut (Offset 0) (FunctionTable)(0 Bytes)
    - CBaseEntitySUB_StartFadeOutInstant (Offset 0) (FunctionTable)(0 Bytes)
    - CBaseEntitySUB_FadeOut (Offset 0) (FunctionTable)(0 Bytes)
    - CBaseEntitySUB_Vanish (Offset 0) (FunctionTable)(0 Bytes)
    - CBaseEntitySUB_CallUseToggle (Offset 0) (FunctionTable)(0 Bytes)
    - CBaseEntityShadowCastDistThink (Offset 0) (FunctionTable)(0 Bytes)
    - CBaseEntityScriptThink (Offset 0) (FunctionTable)(0 Bytes)
    - m_hEffectEntity (Offset 808) (Save)(4 Bytes)
    - m_bLagCompensate (Offset 833) (Save|Key)(1 Bytes) - LagCompensate
    - m_bForcePurgeFixedupStrings (Offset 834) (Save)(1 Bytes)
    - m_flUseLookAtAngle (Offset 4) (Save)(4 Bytes)
 

x330122

Участник
Сообщения
357
Реакции
152
И как это сделать ?
Ну можно каждый его KeyValue вводить но можно же как то сразу дамп брать и в файл записывать типа картой например на de_dust2 есть point_message, там эти же значения, можно же исходя из дампа пройтись по всем этим keyvalues и записать их в файл карты типа de_dust2.txt и затем эти энтити создать
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
ну как бы там нужны далеко не все параметры
 
Сверху Снизу