L L4D2node

_GLOBAL__sub_I_ZombieAvoidTeammates

0x00385900 · 2001 bytes · unknown

Decompiled

undefined (0 params)

void _GLOBAL__sub_I_ZombieAvoidTeammates(void)

{
  CTraceFilterSkipTwoEntities *pCVar1;
  CTraceFilterSimple *this;
  CTraceFilterSimple *pCVar2;
  CTraceFilterSkipTwoEntities *pCVar3;
  
  UNSPECIFIED_LOGGING_COLOR._0_1_ = 0;
  UNSPECIFIED_LOGGING_COLOR._1_1_ = 0;
  UNSPECIFIED_LOGGING_COLOR._2_1_ = 0;
  UNSPECIFIED_LOGGING_COLOR._3_1_ = 0;
  vec2_origin._0_4_ = 0;
  vec2_origin._4_4_ = 0;
  vec2_invalid._0_4_ = 0x7f7fffff;
  vec2_invalid._4_4_ = 0x7f7fffff;
  vec4_origin._0_4_ = 0;
  vec4_origin._4_4_ = 0;
  vec4_origin._8_4_ = 0;
  vec4_origin._12_4_ = 0;
  vec4_invalid._0_4_ = 0x7f7fffff;
  vec4_invalid._4_4_ = 0x7f7fffff;
  vec4_invalid._8_4_ = 0x7f7fffff;
  vec4_invalid._12_4_ = 0x7f7fffff;
  ConVar::ConVar((ConVar *)ZombieAvoidTeammates,"z_avoidteammates","1",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombieAvoidTeammates,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieAvoidForce,"z_avoidforce","2500",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombieAvoidForce,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieGhostFriction,"z_ghost_friction","1.5",0x2000);
  __cxa_atexit(ConVar::~ConVar,ZombieGhostFriction,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieLungeUp,"z_lunge_up","200",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombieLungeUp,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombiePlayerLungeUp,"z_player_lunge_up","150",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombiePlayerLungeUp,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieHunterGroundNormal,"z_hunter_ground_normal","0.2",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombieHunterGroundNormal,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieHulkWalkSpeed,"z_tank_walk_speed","100",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombieHulkWalkSpeed,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieWalkSpeed,"z_walk_speed","85",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombieWalkSpeed,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieSpawnSpeed,"z_spawn_speed","450",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombieSpawnSpeed,&__dso_handle);
  ConVar::ConVar((ConVar *)SurvivorCrouchSpeed,"survivor_crouch_speed","75",0x6000);
  __cxa_atexit(ConVar::~ConVar,SurvivorCrouchSpeed,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieCrouchSpeed,"z_crouch_speed","75",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombieCrouchSpeed,&__dso_handle);
  ConVar::ConVar((ConVar *)SurvivorCrawlSpeed,"survivor_crawl_speed","15",0x6000);
  __cxa_atexit(ConVar::~ConVar,SurvivorCrawlSpeed,&__dso_handle);
  ConVar::ConVar((ConVar *)SurvivorIncapRoll,"survivor_incapacitated_roll","20",0x6000);
  __cxa_atexit(ConVar::~ConVar,SurvivorIncapRoll,&__dso_handle);
  ConVar::ConVar((ConVar *)SurvivorIncapacitatedEyeHeight,"survivor_incapacitated_eye_height","24",
                 0x6000);
  __cxa_atexit(ConVar::~ConVar,SurvivorIncapacitatedEyeHeight,&__dso_handle);
  ConVar::ConVar((ConVar *)SurvivorPounceVictimEyeHeight,"survivor_pounce_victim_eye_height","12",
                 0x6000);
  __cxa_atexit(ConVar::~ConVar,SurvivorPounceVictimEyeHeight,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombiePukingEyeHeight,"z_puking_eye_height","44",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombiePukingEyeHeight,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieHulkGrenadeRoll,"z_tank_grenade_roll","-10",0x6000);
  __cxa_atexit(ConVar::~ConVar,ZombieHulkGrenadeRoll,&__dso_handle);
  ConVar::ConVar((ConVar *)SurvivorHangingEyeHeight,"survivor_hanging_eye_height","85",0x6000);
  __cxa_atexit(ConVar::~ConVar,SurvivorHangingEyeHeight,&__dso_handle);
  ConVar::ConVar((ConVar *)SurvivorHangingFromTongueEyeHeight,
                 "survivor_hanging_from_tongue_eye_height","40",0x6000);
  __cxa_atexit(ConVar::~ConVar,SurvivorHangingFromTongueEyeHeight,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieMinLadderMountDot,"z_min_ladder_mount_dot","0.5",0x6000,
                 "Minimum 2D dot product from player\'s view to a ladder to be able to grab it");
  __cxa_atexit(ConVar::~ConVar,ZombieMinLadderMountDot,&__dso_handle);
  ConVar::ConVar((ConVar *)SurvivorSprintMultiplier,"survivor_sprint_multiplier","1.5",0x6000);
  __cxa_atexit(ConVar::~ConVar,SurvivorSprintMultiplier,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieHunterLungeDistance,"z_hunter_lunge_distance","750",0,
                 "Distance at which bot hunters will try to lunge",true,1.0,false,5000.0);
  __cxa_atexit(ConVar::~ConVar,ZombieHunterLungeDistance,&__dso_handle);
  ConVar::ConVar((ConVar *)ZombieHunterLungePitch,"z_hunter_lunge_pitch","25",0,
                 "Extra pitch bot hunters will lunge with at their max range (goes to 0 when bots are lunging up close)"
                );
  __cxa_atexit(ConVar::~ConVar,ZombieHunterLungePitch,&__dso_handle);
  CTerrorGameMovement::CTerrorGameMovement((CTerrorGameMovement *)&g_GameMovement);
  __cxa_atexit(CTerrorGameMovement::~CTerrorGameMovement,&g_GameMovement,&__dso_handle);
  InterfaceReg::InterfaceReg
            ((InterfaceReg *)__g_CreateCGameMovementIGameMovement_reg,
             __CreateCGameMovementIGameMovement_interface,"GameMovement001");
  ConVar::ConVar((ConVar *)PunchAngleDecayRate,"punch_angle_decay_rate","20",0x2000);
  __cxa_atexit(ConVar::~ConVar,PunchAngleDecayRate,&__dso_handle);
  pCVar3 = (CTraceFilterSkipTwoEntities *)&s_TraceFilterPlayerMovement;
  do {
    pCVar1 = pCVar3 + 0x18;
    CTraceFilterSkipTwoEntities::CTraceFilterSkipTwoEntities
              (pCVar3,(IHandleEntity *)0x0,(IHandleEntity *)0x0,0);
    *(undefined ***)pCVar3 = &PTR_ShouldHitEntity_00c29698;
    pCVar3[0x14] = (CTraceFilterSkipTwoEntities)0x0;
    pCVar3 = pCVar1;
  } while (pCVar1 != (CTraceFilterSkipTwoEntities *)
                     &CTerrorGameMovement::GetPlayerViewOffset(bool)::vecView);
  this = (CTraceFilterSimple *)&s_TraceFilterNoNPCsOrPlayer;
  do {
    pCVar2 = this + 0x10;
    CTraceFilterSimple::CTraceFilterSimple
              (this,(IHandleEntity *)0x0,0,(_func_bool_IHandleEntity_ptr_int *)0x0);
    *(undefined ***)this = &PTR_ShouldHitEntity_00c54558;
    this = pCVar2;
  } while (pCVar2 != (CTraceFilterSimple *)&s_TraceFilterPlayerMovement);
  pCVar3 = (CTraceFilterSkipTwoEntities *)s_TraceFilterSkipTwoEntities;
  do {
    pCVar1 = pCVar3 + 0x14;
    CTraceFilterSkipTwoEntities::CTraceFilterSkipTwoEntities
              (pCVar3,(IHandleEntity *)0x0,(IHandleEntity *)0x0,0);
    pCVar3 = pCVar1;
  } while (pCVar1 != (CTraceFilterSkipTwoEntities *)&s_TraceFilterNoNPCsOrPlayer);
  return;
}

SourceMod gamedata

paste into addons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)

Just a Signatures{} block, ready to drop into a gamedata file. Wire it up in your plugin however you like - SDKCall, DHooks, raw memory ops, or anything else.



        
        

⚠ This function has no mangled symbol — it may be internal/static. The Linux gamedata field uses @-prefix symbol resolution which requires an exported mangled name. You'll need a Linux byte signature for this one (extract via extract_signature.java).


          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)