IMKYZABITCHES

MW2 TU8 Advanced HudElements

May 19th, 2013
852
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.42 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. #include <string>
  4. using std::string;
  5.  
  6. int gtime = CurrentTime();
  7.  
  8. struct hudelem_color_t
  9. {
  10.     byte red;
  11.     byte green;
  12.     byte blue;
  13.     byte alpha;
  14. };
  15.  
  16. typedef struct {
  17.     int type;                    // 0x01 - Text | 0x04 - Icon
  18.     float y;                      //0x04
  19.     float x;                      // 0x08
  20.     float z;                      // 0x0C
  21.     int targetEntNum;            // 0x10
  22.     float fontScale;              // 0x14
  23.     float fromFontScale;          // 0x18
  24.     int fontScaleStartTime;      // 0x1C
  25.     int fontScaleTime;            // 0x20
  26.     int label;                    // 0x24
  27.     int font;                    // 0x28
  28.     int alignOrg;                // 0x2C
  29.     int alignScreen;              // 0x30
  30.     hudelem_color_t color;        // 0x34
  31.     hudelem_color_t fromColor;    // 0x38
  32.     int fadeStartTime;            // 0x3C
  33.     int fadeTime;                // 0x40
  34.     int height;                  // 0x44
  35.     int width;                    // 0x48
  36.     int materialIndex;            // 0x4C
  37.     int fromHeight;              // 0x50
  38.     int fromWidth;                // 0x54
  39.     int scaleStartTime;          // 0x58
  40.     int scaleTime;                // 0x5C
  41.     float fromY;                  // 0x60
  42.     float fromX;                  // 0x64
  43.     int fromAlignOrg;            // 0x68
  44.     int fromAlignScreen;          // 0x6C
  45.     int moveStartTime;            // 0x70
  46.     int moveTime;                // 0x74
  47.     float value;                  // 0x78
  48.     int time;                    // 0x7C
  49.     int duration;                // 0x80
  50.     int text;                    // 0x84
  51.     float sort;                  // 0x88
  52.     hudelem_color_t glowColor;    // 0x8C
  53.     int fxBirthTime;              // 0x90
  54.     int fxLetterTime;            // 0x94
  55.     int fxDecayStartTime;        // 0x98
  56.     int fxDecayDuration;          // 0x9C
  57.     int soundIndex;                  // 0xA0
  58.     int flags;                    // 0xA4
  59. } hudelem_s;
  60.  
  61. typedef struct {
  62.     hudelem_s element;
  63.     int clientIndex;           //0xA8
  64.     int teamIndex;                  // 0xAC
  65.     int archived;                // 0xB0
  66. } game_hudelem_s;
  67.  
  68. typedef game_hudelem_s*(__cdecl*HudElem_Alloc_t)(int clientIndex,int teamIndex);
  69. HudElem_Alloc_t HudElem_Alloc = (HudElem_Alloc_t)0x821DF9C0;
  70.  
  71. typedef int(__cdecl*G_LocalizedStringIndex_t)(const char*str);
  72. G_LocalizedStringIndex_t G_LocalizedStringIndex = (G_LocalizedStringIndex_t)0x8220C838;
  73.  
  74. typedef int(__cdecl*G_MaterialIndex_t)(const char*str);
  75. G_MaterialIndex_t G_MaterialIndex = (G_MaterialIndex_t)0x8220C9F8;
  76.  
  77. typedef void(__cdecl*BG_LerpHudColors_t)(game_hudelem_s*element,int time,hudelem_color_t*toColor);
  78. BG_LerpHudColors_t BG_LerpHudColors = (BG_LerpHudColors_t)0x820D0460;
  79.  
  80. game_hudelem_s *spawnelement(int clientIndex,game_hudelem_s*element) {
  81.     element = HudElem_Alloc(clientIndex, getEntity(clientIndex)->clientData->sess._cs.team);
  82.     element->clientIndex = clientIndex;
  83.     return element;
  84. }
  85.  
  86. void setText(game_hudelem_s *element,const char*text,int font,float fontScale,float x,float y,int alignOrg,int alignScreen,float sort = 1,byte glowr = 255, byte glowg = 255, byte glowb = 255, byte glowa = 255) {
  87.     element->element.type = 0x01;
  88.     element->element.alignOrg = alignOrg;
  89.     element->element.alignScreen = alignScreen;
  90.     element->element.font = font;
  91.     element->element.fontScale = fontScale;
  92.     element->element.x = x;
  93.     element->element.y = y;
  94.     element->element.glowColor.red = glowr;
  95.     element->element.glowColor.green = glowg;
  96.     element->element.glowColor.blue = glowb;
  97.     element->element.glowColor.alpha = glowa;
  98.     element->element.sort = sort;
  99.     element->element.text = G_LocalizedStringIndex(text);
  100. }
  101.  
  102. void setIcon(game_hudelem_s *element, const char*materialName,float x,float y,int width,int height,int alignOrg,int alignScreen,float sort = 0,byte r = 255,byte g = 255,byte b = 255,byte a = 255) {
  103.     element->element.type = 0x04;
  104.     element->element.alignOrg = alignOrg;
  105.     element->element.alignScreen = alignScreen;
  106.     element->element.x = x;
  107.     element->element.y = y;
  108.     element->element.color.red = r;
  109.     element->element.color.green = g;
  110.     element->element.color.blue = b;
  111.     element->element.color.alpha = a;
  112.     element->element.width = width;
  113.     element->element.height = height;
  114.     element->element.sort = sort;
  115.     element->element.materialIndex = G_MaterialIndex(materialName);
  116. }
  117.  
  118.  
  119. int CurrentTime() {
  120.     return *(int*)0x8310A12C;
  121. }
  122.  
  123. void DeleteElem(game_hudelem_s *element) {
  124.     element->element.x = 1500;
  125.     element->element.y = 1500;
  126. }
  127.  
  128. void ElemMove(game_hudelem_s*element, float x, float y) {
  129.     element->element.x = x;
  130.     element->element.y = y;
  131. }
  132.  
  133. void fadeOverTime(game_hudelem_s*element,int time) {
  134.     element->element.fadeStartTime = gtime;
  135.     element->element.fromColor = element->element.color;
  136.     element->element.fadeTime = time;
  137. }
  138.  
  139. void moveOverTime(game_hudelem_s*element,int time,float x,float y) {
  140.     element->element.x = x;
  141.     element->element.y = y;
  142.     element->element.fromX = element->element.x = x;
  143.     element->element.fromY = element->element.y = y;
  144.     element->element.moveStartTime = gtime;
  145.     element->element.moveTime = time;
  146.     element->element.fromAlignOrg = element->element.alignOrg;
  147.     element->element.fromAlignScreen = element->element.alignScreen;
  148. }
  149.  
  150. void scaleOverTime(game_hudelem_s*element,int time,int width,int height) {
  151.     element->element.scaleTime = time;
  152.     element->element.scaleStartTime = gtime;
  153.     element->element.fromHeight = element->element.height;
  154.     element->element.fromWidth = element->element.width;
  155.     element->element.width = width;
  156.     element->element.height = height;
  157. }
  158.  
  159. void setPulseFX(game_hudelem_s*element,int speed,int decayStart,int decayDuration) {
  160.     element->element.fxBirthTime = gtime;
  161.     element->element.fxLetterTime = speed;
  162.     element->element.fxDecayStartTime = decayStart;
  163.     element->element.fxDecayDuration = decayDuration;
  164. }
  165.  
  166. void doTypewriterText(game_hudelem_s*element,const char*text,int fxLetterTime,int fxDecayStartTime,int fxDecayDuration,hudelement_color_t glowColor,float x = 0,float y = 25) {
  167.     setText(element, "", 4, 2.4f, x, y, 0x05, 0x91);
  168.     element->element.fxBirthTime = gtime;
  169.     element->element.fxLetterTime = fxLetterTime;
  170.     element->element.fxDecayStartTime = fxDecayStartTime;
  171.     element->element.fxDecayDuration = fxDecayDuration;
  172.     element->element.glowColor = glowColor;
  173.     element->element.flags |= 0x01;
  174.     element->element.text = G_LocalizedStringIndex(text);
  175. }/*
  176. hudelem_color_t blue;
  177. blue.red = 0; blue.green = 0; blue.blue = 255; blue.alpha;
  178. doTypewriterText(element, "Droseum20 Swag", 100, 4000, 1000, blue);
  179. */
Add Comment
Please, Sign In to add comment