Parsing

Bitwise - useful stuff

Apr 25th, 2014
11,722
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.34 KB | None | 0 0
  1. unsigned __int64 getXuidPopup()
  2. {
  3.    *(__int64*)(0x83C9B258 + 0x90428) = *(__int64*)(0x83C9B258 + 0x90430);
  4.    return *(unsigned __int64*)(0x83C9B258 + 0x90428);
  5. }
  6.  
  7. void (*SV_LinkEntity)(int entity) = (void(__cdecl*)(int))0x824EB6C8;
  8. void Solid(int entity,bool enabled)
  9. {
  10.      while((*(short*)(entity + 0x17A) != *(short*)0x834D9128))
  11.      {
  12.        if(enabled)
  13.          if(*(short*)(entity + 0x17A) & *(short*)(0x834D9126)) *(int*)(entity + 0x11C) = 0x2080;
  14.          else *(int*)(entity + 0x08) &= ~0x01; *(int*)(entity + 0x11C) = 1;
  15.          SV_LinkEntity(entity);
  16.        else
  17.          if(*(short*)(entity + 0x17A) & *(short*)(0x834D9126)) *(int*)(entity + 0x11C) = 0;
  18.          else *(int*)(entity + 0x08) |= 0x01;
  19.          SV_LinkEntity(entity);
  20.      }
  21. }
  22.  
  23. void CloneBrushModelToScriptModel(int entity)
  24. {
  25.    DWORD script_brushmodel;
  26.    //Not ready for use, need to get brushmodel for each map
  27.    SV_UnLinkEntity(entity);
  28.    *(int*)(entity + 0x8C) = *(int*)(script_brushmodel + 0x8C);
  29.    *(unsigned char*)(entity + 0x101) = 04;
  30.    *(int*)(entity + 0x11C) |= *(int*)(script_brushmodel + 0x11C);
  31.    SV_LinkEntity(entity);
  32. }
  33.  
  34. void (*Scr_NotifyNum)(int entnum, unsigned int classnum, unsigned short stringValue, unsigned int paramcount) = (void(__cdecl*)(int,unsigned int, unsigned short, unsigned int))0x82496EB8;
  35. void (*Scr_FreeHudElemConstStrings)(int hud) = (void(__cdecl*)(int))0x823E9330;
  36. void (*Scr_FreeEntityNum)(int entnum, unsigned int classnum) = (void(__cdecl*)(int,unsigned int))0x82493A10;
  37. void deleteHudElement(int hud)
  38. {
  39.    int index = *(int*)(0x8327ED28 - hud) / 0xBB;
  40.    Scr_NotifyNum(index, 1, *(short*)0x834D90AE, 0);
  41.    Scr_FreeHudElemConstStrings(hud);
  42.    Scr_FreeEntityNum(index, 1);
  43. }
  44.  
  45. typedef enum : int
  46. {
  47.    EV_NONE,
  48.    EV_FOLIAGE_SOUND,
  49.    EV_STOP_WEAPON_SOUND,
  50.    EV_SOUND_ALIAS,
  51.    EV_SOUND_ALIAS_AS_MASTER,
  52.    EV_STOPSOUNDS,
  53.    EV_STANCE_FORCE_STAND,
  54.    EV_STANCE_FORCE_CROUCH,
  55.    EV_STANCE_FORCE_PRONE,
  56.    EV_STANCE_INVALID,
  57.    EV_ITEM_PICKUP,
  58.    EV_AMMO_PICKUP,
  59.    EV_EMPTY_OFFHAND_PRIMARY,
  60.    EV_EMPTY_OFFHAND_SECONDARY,
  61.    EV_OFFHAND_END_NOTIFY,
  62.    EV_RESET_ADS,
  63.    EV_RELOAD,
  64.    EV_RELOAD_FROM_EMPTY,
  65.    EV_RELOAD_START,
  66.    EV_RELOAD_END,
  67.    EV_RELOAD_START_NOTIFY,
  68.    EV_RELOAD_ADDAMMO,
  69.    EV_RAISE_WEAPON,
  70.    EV_FIRST_RAISE_WEAPON,
  71.    EV_PULLBACK_WEAPON,
  72.    EV_FIRE_WEAPON_END,
  73.    EV_FIRE_WEAPON,
  74.    EV_FIRE_WEAPON_LASTSHOT,
  75.    EV_FIRE_RICOCHET,
  76.    EV_RECHAMBER_WEAPON,
  77.    EV_EJECT_BRASS,
  78.    EV_FIRE_WEAPON_LEFT,
  79.    EV_FIRE_WEAPON_LASTSHOT_LEFT,
  80.    EV_EJECT_BRASS_LEFT,
  81.    EV_HITCLIENT_FIRE_WEAPON,
  82.    EV_HITCLIENT_FIRE_WEAPON_LASTSHOT,
  83.    EV_HITCLIENT_FIRE_WEAPON_LEFT,
  84.    EV_HITCLIENT_FIRE_WEAPON_LASTSHOT_LEFT,
  85.    EV_SV_FIRE_WEAPON,
  86.    EV_SV_FIRE_WEAPON_LASTSHOT,
  87.    EV_SV_FIRE_WEAPON_LEFT,
  88.    EV_SV_FIRE_WEAPON_LASTSHOT_LEFT,
  89.    EV_FIRE_MELEE_SWIPE,
  90.    EV_FIRE_MELEE_STAND,
  91.    EV_FIRE_MELEE_CROUCH
  92.    EV_PREP_OFFHAND,
  93.    EV_USE_OFFHAND,
  94.    EV_SWITCH_OFFHAND,
  95.    EV_MELEE_HIT,
  96.    EV_MELEE_MISS,
  97.    EV_MELEE_BLOOD,
  98.    EV_MELEE_BLOOD_STAND,
  99.    EV_MELEE_BLOOD_CROUCH,
  100.    EV_SV_FIRE_TURRET,
  101.    EV_FIRE_VEH_TURRET,
  102.    EV_FIRE_TURRET,
  103.    EV_FIRE_SENTRY,
  104.    EV_FIRE_QUADBARREL_1,
  105.    EV_FIRE_QUADBARREL_2,
  106.    EV_BULLET_HIT,
  107.    EV_BULLET_HIT_EXPLODE,
  108.    EV_BULLET_HIT_SHIELD,
  109.    EV_BULLET_HIT_CLIENT_SMALL,
  110.    EV_BULLET_HIT_CLIENT_LARGE,
  111.    EV_BULLET_HIT_CLIENT_EXPLODE,
  112.    EV_BULLET_HIT_CLIENT_SHIELD,
  113.    EV_BULLET_DESTROY_CLIENT_SHIELD,
  114.    EV_DROP_CLIENT_SHIELD,
  115.    EV_EXPLOSIVE_IMPACT_ON_SHIELD,
  116.    EV_EXPLOSIVE_SPLASH_ON_SHIELD,
  117.    EV_GRENADE_BOUNCE,
  118.    EV_GRENADE_STICK,
  119.    EV_GRENADE_REST,
  120.    EV_GRENADE_ROLL,
  121.    EV_GRENADE_EXPLODE,
  122.    EV_GRENADE_PICKUP,
  123.    EV_GRENADE_LETGO,
  124.    EV_ROCKET_EXPLODE,
  125.    EV_TRIAL_DESTROY,
  126.    EV_FLASHBANG_EXPLODE,
  127.    EV_CUSTOM_EXPLODE,
  128.    EV_DUD_EXPLODE,
  129.    EV_DUD_IMPACT
  130.    EV_TROPHY_EXPLODE,
  131.    EV_BULLET,
  132.    EV_PLAY_FX,
  133.    EV_PLAY_FX_ON_TAG,
  134.    EV_STOP_FX_ON_TAG,
  135.    EV_KILL_FX_ON_TAG,
  136.    EV_PLAY_FX_ON_TAG_FOR_CLIENTS,
  137.    EV_PHYS_EXPLOSION_SPHERE,
  138.    EV_PHYS_EXPLOSION_CYLINDER
  139.    EV_PHYS_EXPLOSION_JOLT,
  140.    EV_RADIUSDAMAGE,
  141.    EV_PHYS_JITTER,
  142.    EV_EARTHQUAKE,
  143.    EV_GRENADE_SUICIDE,
  144.    EV_DETONATE,
  145.    EV_NIGHTVISION_WEAR,
  146.    EV_NIGHTVISION_REMOVE,
  147.    EV_MISSLE_REMOTE_BOOST,
  148.    EV_PLAY_RUMBLE_ON_ENT,
  149.    EV_PLAY_RUMBLE_ON_POS,
  150.    EV_PLAY_RUMBLELOOP_ON_ENT,
  151.    EV_PLAY_RUMBLELOOP_ON_POS,
  152.    EV_STOP_RUMBLE,
  153.    EV_STOP_ALL_RUMBLES,
  154.    EV_VARIABLE_ZOOM_CHANGE,
  155.    EV_OBITUARY,
  156.    EV_NO_PRIMARY_GRENADE_HINT,
  157.    EV_NO_SECONDARY_GRENADE_HINT,
  158.    EV_TARGET_TOO_CLOSE_HINT,
  159.    EV_TARGET_NOT_ENOUGH_CLEARANCE_HINT,
  160.    EV_LOCKON_REQUIRED,
  161.    EV_VEHICLE_COLLISION,
  162.    EV_VEHICLE_SUSPENSION_SOFT,
  163.    EV_VEHICLE_SUSPENSION_HARD,
  164.    EV_FOOTSTEP_RUN,
  165.    EV_FOOTSTEP_WALK,
  166.    EV_FOOTSTEP_PRONE,
  167.    EV_JUMP,
  168.    EV_LANDING_FIRST0,
  169.    EV_LANDING_FIRST1,
  170.    EV_LANDING_FIRST2,
  171.    EV_LANDING_FIRST3,
  172.    EV_LANDING_FIRST4,
  173.    EV_LANDING_FIRST5,
  174.    EV_LANDING_FIRST6,
  175.    EV_LANDING_FIRST7,
  176.    EV_LANDING_FIRST8,
  177.    EV_LANDING_FIRST9,
  178.    EV_LANDING_FIRST10,
  179.    EV_LANDING_FIRST11,
  180.    EV_LANDING_FIRST12,
  181.    EV_LANDING_FIRST13,
  182.    EV_LANDING_FIRST14,
  183.    EV_LANDING_FIRST15,
  184.    EV_LANDING_FIRST16,
  185.    EV_LANDING_FIRST17,
  186.    EV_LANDING_FIRST18,
  187.    EV_LANDING_FIRST19,
  188.    EV_LANDING_FIRST20,
  189.    EV_LANDING_FIRST21,
  190.    EV_LANDING_FIRST22,
  191.    EV_LANDING_FIRST23,
  192.    EV_LANDING_FIRST24,
  193.    EV_LANDING_FIRST25,
  194.    EV_LANDING_FIRST26,
  195.    EV_LANDING_FIRST27,
  196.    EV_LANDING_FIRST28,
  197.    EV_LANDING_FIRST29,
  198.    EV_LANDING_FIRST30,
  199.    EV_LANDING_PAIN_FIRST0,
  200.    EV_LANDING_PAIN_FIRST1,
  201.    EV_LANDING_PAIN_FIRST2,
  202.    EV_LANDING_PAIN_FIRST3,
  203.    EV_LANDING_PAIN_FIRST4,
  204.    EV_LANDING_PAIN_FIRST5,
  205.    EV_LANDING_PAIN_FIRST6,
  206.    EV_LANDING_PAIN_FIRST7,
  207.    EV_LANDING_PAIN_FIRST8,
  208.    EV_LANDING_PAIN_FIRST9,
  209.    EV_LANDING_PAIN_FIRST10,
  210.    EV_LANDING_PAIN_FIRST11,
  211.    EV_LANDING_PAIN_FIRST12,
  212.    EV_LANDING_PAIN_FIRST13,
  213.    EV_LANDING_PAIN_FIRST14,
  214.    EV_LANDING_PAIN_FIRST15,
  215.    EV_LANDING_PAIN_FIRST16,
  216.    EV_LANDING_PAIN_FIRST17,
  217.    EV_LANDING_PAIN_FIRST18,
  218.    EV_LANDING_PAIN_FIRST19,
  219.    EV_LANDING_PAIN_FIRST20,
  220.    EV_LANDING_PAIN_FIRST21,
  221.    EV_LANDING_PAIN_FIRST22,
  222.    EV_LANDING_PAIN_FIRST23,
  223.    EV_LANDING_PAIN_FIRST24,
  224.    EV_LANDING_PAIN_FIRST25,
  225.    EV_LANDING_PAIN_FIRST26,
  226.    EV_LANDING_PAIN_FIRST27,
  227.    EV_LANDING_PAIN_FIRST28,
  228.    EV_LANDING_PAIN_FIRST29,
  229.    EV_LANDING_PAIN_FIRST30,
  230.    EV_MANTLE,
  231.    EV_SLIDE_START,
  232.    EV_SLIDE_EASE_OUT,
  233.    EV_EXPLODER,
  234.    EV_PHYSICS_IMPACT_SOUND,
  235.    EV_PORTABLE_RADAR_PING
  236. }eventTypes;
  237.  
  238.  
  239. int AllocString(char*str,int r4)
  240. {
  241.    byte R11 = *(byte*)(str), R10 = R11;
  242.    loc:
  243.      byte R9 = R11;
  244.      R11 += 1;
  245.      if(R9 & 0) goto loc;
  246.      else
  247.        R11 -= R10;
  248.        return SL_GetStringOfSize(str, 1, (R11+1),6);
  249.    return 0;
  250. }
  251.  
  252. bool isHost()
  253. {
  254.    char*GT = new char[0x20];
  255.    XUserGetName(0,GT,0);
  256.    return !strcmp((char*)0x839EAB68,GT);
  257. }
  258.  
  259. struct trace_t
  260. {
  261.    float fraction;//0
  262.    float normal[3];//4
  263.    char padding[8];//0x10
  264.    TraceHitType hitType;//0x18
  265.    unsigned short hitId;//0x1C
  266.    char _padding[0xC];
  267. };
  268.  
  269. enum TraceHitType
  270. {
  271.   None,
  272.   entity,
  273.   dynet_model,
  274.   dynet_brush,
  275.   UNKNOWN
  276. };
  277.  
  278. unsigned short Trace_GetEntityHitId(trace_t*lel)
  279. {
  280.    if(lel->hitType & dynet_model || lel->hitType & dynet_brush|| lel->hitType & UNKNOWN) return 0x7FE;
  281.    if(lel->hitType & entity) return 0x7FF;
  282.    else return lel->hitId;
  283. }
  284.  
  285. char*SurfaceTypeToName(int index)
  286. {
  287.    if(!index || index == 0x1F) return "default";
  288.    else
  289.      int r9 = (index <<= 2);
  290.      int r10 = *(int*)0x82921670;
  291.      return (char*)(((r9 << 2) + r10) + 0x14);
  292. }
  293.  
  294. struct destination
  295. {
  296.    char*name;
  297.    unsigned int clientIndex;
  298.    short Int16, *Int16_3[3];
  299.    int Int32, *Int32_3[3];
  300.    __int64 Int64, *Int64_3[3];
  301.    float Float, *Vector3[3];
  302.    unsigned char Byte, *Byte_3[3];
  303. };
  304.  
  305. void bulletTrace(int clientIndex, float*start, float*end)
  306. {
  307.    destination dest;
  308.    trace_t targ;
  309.    G_LocationalTrace(&targ, start, end, clientIndex, 0x80A831, (*(unsigned char*)0x8285B850));
  310.    for(int i = 0; i <= 2; i++)
  311.      *dest.Vector3[i] = ((start[i]-end[i]) * targ.fraction) + start[i];
  312.    unsigned short entity = (Trace_GetEntityHitId(&targ) & 0xFFFF);
  313.    if(entity < 0x7FE) dest.clientIndex = (int)entity;
  314.    if(targ.fraction != 1.0) for(int i = 0; i < 3; i++) { int index = (int)targ.normal[i]; int r10 = ((index << (31-i)) & 0xFFFF); dest.name = SurfaceTypeToName((r10 & 0x1F)) }
  315. }
Advertisement
Add Comment
Please, Sign In to add comment