Post: Full Typewriter Message Source + Tutorial
10-24-2013, 10:35 PM #1
xRevolutions
Pokemon Trainer
(adsbygoogle = window.adsbygoogle || []).push({}); Hello NGU,

Today, is seen Aneras Typewriter Release and i know he mean me with reference in my Video.


See his Thread here
You must login or register to view this content.

Anyways, he made a Mistake in the Leveltime thats why im going to Release it. I havnt released it yet because i wanted ppl to Figure it out. I just showed that FM|T isnt the only one who can get nice stuff Happy

At first, what is a Typewriter?
Everyone know it from MW2 1.11 (GSC Times) the Welcome Message. It was used in every Patch and now we have it back in RTE. I
A little Video on how it looks



Lets Start!

What you need?
- Visual Studio C# Project with PS3 Connection Things (Set and Get Memory Function)
You must login or register to view this content.

Step 1:

You need at first Chocos RPC and Hud Elements. You can get them here : You must login or register to view this content.

Step 2:
Put this Functions somewhere in your Project Enzo
            public static class HElems
{
public static UInt32
xOffset = 0x08,
yOffset = 0x04,
textOffset = 0x84,
fontOffset = 0x24,
fontSizeOffset = 0x14,
colorOffset = 0x30,
relativeOffset = 0x2c,
widthOffset = 0x44,
heightOffset = 0x48,
shaderOffset = 0x4c,
GlowColor = 0x8C,
alignOffset = 0x2C,
fadeStartTime = 0x38,
fadeTime = 0x3c,
label = 0x40,
clientOffset = 0xA8,
fromWidth = 0x50,
fromHeight = 0x54,
scaleStartTime = 0x58,
scaleTime = 0x5c,
fromX = 0x60,
fromY = 0x64,
fromAlignOrg = 0x68,
fromAlignScreen = 0x6c,
moveStartTime = 0x70,
moveTime = 0x74,
time = 0x78,
duration = 0x7c,
value = 0x80,
sort = 0x88,
fxBirthTime = 0x90,
fxLetterTime = 0x94,
fxDecayStartTime = 0x98,
fxDecayDuration = 0x9c,
soundID = 0xa0,
flags = 0xa4;
}
public void doTypeWriter(UInt32 clientIndex, String text,Single X = 100, Single Y = 300, Int32[] rgba = { 255,255,255,255 } ,Int32[] glow)
{
UInt32 Elem = HudElem_Alloc();
SetMemory(Elem, new Byte[] { 0x00, 0x00, 0x00, 0x01 });
SetMemory(Elem + HElems.textOffset, uintBytes(createText("")));
SetMemory(Elem + HElems.relativeOffset, uintBytes(0x05));
SetMemory(Elem + HElems.relativeOffset - 4, uintBytes(0x06));
SetMemory(Elem + HElems.fontOffset, uintBytes(10));
SetMemory(Elem + HElems.alignOffset, uintBytes(5));
SetMemory(Elem + HElems.textOffset + 4, new Byte[] { 0x40, 0x00 });
SetMemory(Elem + HElems.fontSizeOffset, ReverseBytes(BitConverter.GetBytes((float)2)));
SetMemory(Elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(X)));
SetMemory(Elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(Y)));
SetMemory(Elem + HElems.colorOffset, new Byte[] { BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(255)[0] });
SetMemory(Elem + HElems.GlowColor, new Byte[] { BitConverter.GetBytes(glow[0])[0], BitConverter.GetBytes(glow[1])[0], BitConverter.GetBytes(glow[2])[0], BitConverter.GetBytes(glow[3])[0] });
SetMemory(Elem + HElems.clientOffset, ReverseBytes(BitConverter.GetBytes(clientIndex)));
WriteInt32(Elem + HElems.fxBirthTime, getLevelTime());
WriteInt32(Elem + HElems.fxLetterTime, 100);
WriteInt32(Elem + HElems.fxDecayStartTime, 4000);
WriteInt32(Elem + HElems.fxDecayDuration, 1000);
WriteInt32(Elem + HElems.flags, 1);
SetMemory(Elem + HElems.textOffset, uintBytes(createText(text)));
}
public Int32 getLevelTime()
{
Byte[] LevelTime = new Byte[4];
GetMemory(0xFC3DB0,LevelTime);
Array.Reverse(LevelTime, 0, 4);
return BitConverter.ToInt32(LevelTime, 0);
}
public UInt32 HudElem_Alloc()
{
for (UInt32 i = 0xF0E10C; i < 0xF3B10C; i += 0xB4)
{
Byte[] buff = new Byte[4];
GetMemory(i, buff);
if (buff[3] == 0)
{
SetMemory(i, new Byte[0xB4]);
return i;
}
}
return 0;
}
public void WriteInt32(uint offset, int input)
{
Byte[] buff = new Byte[4];
BitConverter.GetBytes(input).CopyTo(buff, 0);
Array.Reverse(buff, 0, 4);
SetMemory(offset, buff);
}

Here a Pastebin if you prefer it
You must login or register to view this content.

Step 3:
Setting up the Typewriter Message Smile

Here is the Syntax of the Function, call it in a Button, Mod Menu or whatever :p
    doTypeWriter(< clientnumber >, < text >, < X Position > , < Y Position > , < RGBA Colors Int32 Array > , < RGBA GlowColors Int32 Array >Winky Winky


Now we want to use it, so call it like this as Example
    doTypeWriter(0, Welcome to my Modded Lobby, 100 , 300 , new Int32[] { 255, 255, 255, 255 } , new Int32[] { 0, 0, 255, 255 })



Some extra Stuff:
Therifboy and me Created a Welcome Message Function that is centered. The Funciton is not perfect cause it calculate the Text length. Anyways it could be usefull for you Winky Winky

Put this in your Project somewhere:
            public void WelcomeMessage(UInt32 clientIndex, String Text1, String Text2, String Text3, Int32[] glowColor)
{
UInt32 elem = HudElem_Alloc();
SetMemory(Elem, new Byte[] { 0x00, 0x00, 0x00, 0x01 });
SetMemory(Elem + HElems.textOffset, uintBytes(createText("")));
SetMemory(Elem + HElems.relativeOffset, uintBytes(0x05));
SetMemory(Elem + HElems.relativeOffset - 4, uintBytes(0x06));
SetMemory(Elem + HElems.fontOffset, uintBytes(10));
SetMemory(Elem + HElems.alignOffset, uintBytes(5));
SetMemory(Elem + HElems.textOffset + 4, new Byte[] { 0x40, 0x00 });
SetMemory(Elem + HElems.fontSizeOffset, ReverseBytes(BitConverter.GetBytes((float)2)));
SetMemory(Elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(150)));
SetMemory(Elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(300)));
SetMemory(Elem + HElems.colorOffset, new Byte[] { BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(255)[0] });
SetMemory(Elem + HElems.GlowColor, new Byte[] { BitConverter.GetBytes(glow[0])[0], BitConverter.GetBytes(glow[1])[0], BitConverter.GetBytes(glow[2])[0], BitConverter.GetBytes(glow[3])[0] });
SetMemory(Elem + HElems.clientOffset, ReverseBytes(BitConverter.GetBytes(clientIndex)));
WriteInt32(elem + HElems.fxBirthTime, getLevelTime());
WriteInt32(elem + HElems.fxLetterTime, 80);
WriteInt32(elem + HElems.fxDecayStartTime, 9500);
WriteInt32(elem + HElems.fxDecayDuration, 1000);
WriteInt32(elem + HElems.flags, 1);
SetMemory(elem + HElems.textOffset, UInt32ToBytes(createText(Text1 + "\n" + CenterTypeWriterString(Text2, Text1.Length) + "\n" + CenterTypeWriterString(Text3, Text1.Length))));
}
public String CenterTypeWriterString(String text, Int32 length)
{
Int32 calc = (length - text.Length) / 2;
String MyText = String.Empty;
for (Int32 i = 0; i <= calc; i++)
{
MyText += " ";
}
return MyText + " " + text;
}

Here in a Pastebin again if you prefer it
You must login or register to view this content.

How to use it: (Do the first text in the Message longer than the other, else it doesnt work correctly :P)

Syntax of the Function
    WelcomeMessage(< clientnumber >, < Text 1 >, < Text 2 >, < Text 3 >, < RGBA Colors Int32 Array >Winky Winky


Example Function for Button or whatever again:
    WelcomeMessage(0, "Welcome to my Modded MW3 Lobby", "Subcribe xRevolutionsHD", "Created by xRevolution", new Int32[] { 255, 255, 255, 255 })


Thats is the Typewriter.
I hope it's well explained for you!
If you have still Questions then feel free to ask them here :y:

Credits:

    
- xRevolution
- Therifboy (Motivated me to find it. Helping with some things and find with me LevelTime Offset)
- Hacksource (Full Hud Elements Struct)
- Choco (RPC and Huds)
- iMCSx (WriteInt32 Function and connecting things)
(adsbygoogle = window.adsbygoogle || []).push({});

The following 18 users say thank you to xRevolutions for this useful post:

{H} | Exception, ▶DaOriginal209◀, Ansity., BaSs_HaXoR, EliteHackzPS3, ImPiffHD, InfinityISB4CK, MGMoDzHD, O-H, SnaY, Sticky, therifboy, TimeBomb., WeJailbreakYou, Whos Your Host, Fatality, zZHackzZ
10-27-2013, 12:43 PM #11
Originally posted by xRevolutions View Post
Hello NGU,

Today, is seen Aneras Typewriter Release and i know he mean me with reference in my Video.


See his Thread here
You must login or register to view this content.

Anyways, he made a Mistake in the Leveltime thats why im going to Release it. I havnt released it yet because i wanted ppl to Figure it out. I just showed that FM|T isnt the only one who can get nice stuff Happy

At first, what is a Typewriter?
Everyone know it from MW2 1.11 (GSC Times) the Welcome Message. It was used in every Patch and now we have it back in RTE. I
A little Video on how it looks



Lets Start!

What you need?
- Visual Studio C# Project with PS3 Connection Things (Set and Get Memory Function)
You must login or register to view this content.

Step 1:

You need at first Chocos RPC and Hud Elements. You can get them here : You must login or register to view this content.

Step 2:
Put this Functions somewhere in your Project Enzo
            public static class HElems
{
public static UInt32
xOffset = 0x08,
yOffset = 0x04,
textOffset = 0x84,
fontOffset = 0x24,
fontSizeOffset = 0x14,
colorOffset = 0x30,
relativeOffset = 0x2c,
widthOffset = 0x44,
heightOffset = 0x48,
shaderOffset = 0x4c,
GlowColor = 0x8C,
alignOffset = 0x2C,
fadeStartTime = 0x38,
fadeTime = 0x3c,
label = 0x40,
clientOffset = 0xA8,
fromWidth = 0x50,
fromHeight = 0x54,
scaleStartTime = 0x58,
scaleTime = 0x5c,
fromX = 0x60,
fromY = 0x64,
fromAlignOrg = 0x68,
fromAlignScreen = 0x6c,
moveStartTime = 0x70,
moveTime = 0x74,
time = 0x78,
duration = 0x7c,
value = 0x80,
sort = 0x88,
fxBirthTime = 0x90,
fxLetterTime = 0x94,
fxDecayStartTime = 0x98,
fxDecayDuration = 0x9c,
soundID = 0xa0,
flags = 0xa4;
}
public void doTypeWriter(UInt32 clientIndex, String text,Single X = 100, Single Y = 300, Int32[] rgba = { 255,255,255,255 } ,Int32[] glow)
{
UInt32 Elem = HudElem_Alloc();
SetMemory(Elem, new Byte[] { 0x00, 0x00, 0x00, 0x01 });
SetMemory(Elem + HElems.textOffset, uintBytes(createText("")));
SetMemory(Elem + HElems.relativeOffset, uintBytes(0x05));
SetMemory(Elem + HElems.relativeOffset - 4, uintBytes(0x06));
SetMemory(Elem + HElems.fontOffset, uintBytes(10));
SetMemory(Elem + HElems.alignOffset, uintBytes(5));
SetMemory(Elem + HElems.textOffset + 4, new Byte[] { 0x40, 0x00 });
SetMemory(Elem + HElems.fontSizeOffset, ReverseBytes(BitConverter.GetBytes((float)2)));
SetMemory(Elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(X)));
SetMemory(Elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(Y)));
SetMemory(Elem + HElems.colorOffset, new Byte[] { BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(255)[0] });
SetMemory(Elem + HElems.GlowColor, new Byte[] { BitConverter.GetBytes(glow[0])[0], BitConverter.GetBytes(glow[1])[0], BitConverter.GetBytes(glow[2])[0], BitConverter.GetBytes(glow[3])[0] });
SetMemory(Elem + HElems.clientOffset, ReverseBytes(BitConverter.GetBytes(clientIndex)));
WriteInt32(Elem + HElems.fxBirthTime, getLevelTime());
WriteInt32(Elem + HElems.fxLetterTime, 100);
WriteInt32(Elem + HElems.fxDecayStartTime, 4000);
WriteInt32(Elem + HElems.fxDecayDuration, 1000);
WriteInt32(Elem + HElems.flags, 1);
SetMemory(Elem + HElems.textOffset, uintBytes(createText(text)));
}
public Int32 getLevelTime()
{
Byte[] LevelTime = new Byte[4];
GetMemory(0xFC3DB0,LevelTime);
Array.Reverse(LevelTime, 0, 4);
return BitConverter.ToInt32(LevelTime, 0);
}
public UInt32 HudElem_Alloc()
{
for (UInt32 i = 0xF0E10C; i < 0xF3B10C; i += 0xB4)
{
Byte[] buff = new Byte[4];
GetMemory(i, buff);
if (buff[3] == 0)
{
SetMemory(i, new Byte[0xB4]);
return i;
}
}
return 0;
}
public void WriteInt32(uint offset, int input)
{
Byte[] buff = new Byte[4];
BitConverter.GetBytes(input).CopyTo(buff, 0);
Array.Reverse(buff, 0, 4);
SetMemory(offset, buff);
}

Here a Pastebin if you prefer it
You must login or register to view this content.

Step 3:
Setting up the Typewriter Message Smile

Here is the Syntax of the Function, call it in a Button, Mod Menu or whatever :p
    doTypeWriter(< clientnumber >, < text >, < X Position > , < Y Position > , < RGBA Colors Int32 Array > , < RGBA GlowColors Int32 Array >Winky Winky


Now we want to use it, so call it like this as Example
    doTypeWriter(0, Welcome to my Modded Lobby, 100 , 300 , new Int32[] { 255, 255, 255, 255 } , new Int32[] { 0, 0, 255, 255 })



Some extra Stuff:
Therifboy and me Created a Welcome Message Function that is centered. The Funciton is not perfect cause it calculate the Text length. Anyways it could be usefull for you Winky Winky

Put this in your Project somewhere:
            public void WelcomeMessage(UInt32 clientIndex, String Text1, String Text2, String Text3, Int32[] glowColor)
{
UInt32 elem = HudElem_Alloc();
SetMemory(Elem, new Byte[] { 0x00, 0x00, 0x00, 0x01 });
SetMemory(Elem + HElems.textOffset, uintBytes(createText("")));
SetMemory(Elem + HElems.relativeOffset, uintBytes(0x05));
SetMemory(Elem + HElems.relativeOffset - 4, uintBytes(0x06));
SetMemory(Elem + HElems.fontOffset, uintBytes(10));
SetMemory(Elem + HElems.alignOffset, uintBytes(5));
SetMemory(Elem + HElems.textOffset + 4, new Byte[] { 0x40, 0x00 });
SetMemory(Elem + HElems.fontSizeOffset, ReverseBytes(BitConverter.GetBytes((float)2)));
SetMemory(Elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(150)));
SetMemory(Elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(300)));
SetMemory(Elem + HElems.colorOffset, new Byte[] { BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(255)[0] });
SetMemory(Elem + HElems.GlowColor, new Byte[] { BitConverter.GetBytes(glow[0])[0], BitConverter.GetBytes(glow[1])[0], BitConverter.GetBytes(glow[2])[0], BitConverter.GetBytes(glow[3])[0] });
SetMemory(Elem + HElems.clientOffset, ReverseBytes(BitConverter.GetBytes(clientIndex)));
WriteInt32(elem + HElems.fxBirthTime, getLevelTime());
WriteInt32(elem + HElems.fxLetterTime, 80);
WriteInt32(elem + HElems.fxDecayStartTime, 9500);
WriteInt32(elem + HElems.fxDecayDuration, 1000);
WriteInt32(elem + HElems.flags, 1);
SetMemory(elem + HElems.textOffset, UInt32ToBytes(createText(Text1 + "\n" + CenterTypeWriterString(Text2, Text1.Length) + "\n" + CenterTypeWriterString(Text3, Text1.Length))));
}
public String CenterTypeWriterString(String text, Int32 length)
{
Int32 calc = (length - text.Length) / 2;
String MyText = String.Empty;
for (Int32 i = 0; i <= calc; i++)
{
MyText += " ";
}
return MyText + " " + text;
}

Here in a Pastebin again if you prefer it
You must login or register to view this content.

How to use it: (Do the first text in the Message longer than the other, else it doesnt work correctly :P)

Syntax of the Function
    WelcomeMessage(< clientnumber >, < Text 1 >, < Text 2 >, < Text 3 >, < RGBA Colors Int32 Array >Winky Winky


Example Function for Button or whatever again:
    WelcomeMessage(0, "Welcome to my Modded MW3 Lobby", "Subcribe xRevolutionsHD", "Created by xRevolution", new Int32[] { 255, 255, 255, 255 })


Thats is the Typewriter.
I hope it's well explained for you!
If you have still Questions then feel free to ask them here :y:

Credits:

    
- xRevolution
- Therifboy (Motivated me to find it. Helping with some things and find with me LevelTime Offset)
- Hacksource (Full Hud Elements Struct)
- Choco (RPC and Huds)
- iMCSx (WriteInt32 Function and connecting things)


good job seb Smile

The following user thanked Whos Your Host for this useful post:

Mango_Knife
10-27-2013, 12:50 PM #12
ItsMagiicsz
Bounty hunter
Thanks Seb5594.
Its good to have you back...
How do we know your seb?
Let me just leave the credits Smile

Credits:
Raz0rMind

The following 4 users say thank you to ItsMagiicsz for this useful post:

Authority Modz, Mango_Knife, Raz0rMind, ThePaaqoHD
12-02-2013, 03:35 AM #13
{H} | Exception
Error… Cat invasion!
Originally posted by xRevolutions View Post
Hello NGU,

Today, is seen Aneras Typewriter Release and i know he mean me with reference in my Video.


See his Thread here
You must login or register to view this content.

Anyways, he made a Mistake in the Leveltime thats why im going to Release it. I havnt released it yet because i wanted ppl to Figure it out. I just showed that FM|T isnt the only one who can get nice stuff Happy

At first, what is a Typewriter?
Everyone know it from MW2 1.11 (GSC Times) the Welcome Message. It was used in every Patch and now we have it back in RTE. I
A little Video on how it looks



Lets Start!

What you need?
- Visual Studio C# Project with PS3 Connection Things (Set and Get Memory Function)
You must login or register to view this content.

Step 1:

You need at first Chocos RPC and Hud Elements. You can get them here : You must login or register to view this content.

Step 2:
Put this Functions somewhere in your Project Enzo
            public static class HElems
{
public static UInt32
xOffset = 0x08,
yOffset = 0x04,
textOffset = 0x84,
fontOffset = 0x24,
fontSizeOffset = 0x14,
colorOffset = 0x30,
relativeOffset = 0x2c,
widthOffset = 0x44,
heightOffset = 0x48,
shaderOffset = 0x4c,
GlowColor = 0x8C,
alignOffset = 0x2C,
fadeStartTime = 0x38,
fadeTime = 0x3c,
label = 0x40,
clientOffset = 0xA8,
fromWidth = 0x50,
fromHeight = 0x54,
scaleStartTime = 0x58,
scaleTime = 0x5c,
fromX = 0x60,
fromY = 0x64,
fromAlignOrg = 0x68,
fromAlignScreen = 0x6c,
moveStartTime = 0x70,
moveTime = 0x74,
time = 0x78,
duration = 0x7c,
value = 0x80,
sort = 0x88,
fxBirthTime = 0x90,
fxLetterTime = 0x94,
fxDecayStartTime = 0x98,
fxDecayDuration = 0x9c,
soundID = 0xa0,
flags = 0xa4;
}
public void doTypeWriter(UInt32 clientIndex, String text,Single X = 100, Single Y = 300, Int32[] rgba = { 255,255,255,255 } ,Int32[] glow)
{
UInt32 Elem = HudElem_Alloc();
SetMemory(Elem, new Byte[] { 0x00, 0x00, 0x00, 0x01 });
SetMemory(Elem + HElems.textOffset, uintBytes(createText("")));
SetMemory(Elem + HElems.relativeOffset, uintBytes(0x05));
SetMemory(Elem + HElems.relativeOffset - 4, uintBytes(0x06));
SetMemory(Elem + HElems.fontOffset, uintBytes(10));
SetMemory(Elem + HElems.alignOffset, uintBytes(5));
SetMemory(Elem + HElems.textOffset + 4, new Byte[] { 0x40, 0x00 });
SetMemory(Elem + HElems.fontSizeOffset, ReverseBytes(BitConverter.GetBytes((float)2)));
SetMemory(Elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(X)));
SetMemory(Elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(Y)));
SetMemory(Elem + HElems.colorOffset, new Byte[] { BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(255)[0] });
SetMemory(Elem + HElems.GlowColor, new Byte[] { BitConverter.GetBytes(glow[0])[0], BitConverter.GetBytes(glow[1])[0], BitConverter.GetBytes(glow[2])[0], BitConverter.GetBytes(glow[3])[0] });
SetMemory(Elem + HElems.clientOffset, ReverseBytes(BitConverter.GetBytes(clientIndex)));
WriteInt32(Elem + HElems.fxBirthTime, getLevelTime());
WriteInt32(Elem + HElems.fxLetterTime, 100);
WriteInt32(Elem + HElems.fxDecayStartTime, 4000);
WriteInt32(Elem + HElems.fxDecayDuration, 1000);
WriteInt32(Elem + HElems.flags, 1);
SetMemory(Elem + HElems.textOffset, uintBytes(createText(text)));
}
public Int32 getLevelTime()
{
Byte[] LevelTime = new Byte[4];
GetMemory(0xFC3DB0,LevelTime);
Array.Reverse(LevelTime, 0, 4);
return BitConverter.ToInt32(LevelTime, 0);
}
public UInt32 HudElem_Alloc()
{
for (UInt32 i = 0xF0E10C; i < 0xF3B10C; i += 0xB4)
{
Byte[] buff = new Byte[4];
GetMemory(i, buff);
if (buff[3] == 0)
{
SetMemory(i, new Byte[0xB4]);
return i;
}
}
return 0;
}
public void WriteInt32(uint offset, int input)
{
Byte[] buff = new Byte[4];
BitConverter.GetBytes(input).CopyTo(buff, 0);
Array.Reverse(buff, 0, 4);
SetMemory(offset, buff);
}

Here a Pastebin if you prefer it
You must login or register to view this content.

Step 3:
Setting up the Typewriter Message Smile

Here is the Syntax of the Function, call it in a Button, Mod Menu or whatever :p
    doTypeWriter(< clientnumber >, < text >, < X Position > , < Y Position > , < RGBA Colors Int32 Array > , < RGBA GlowColors Int32 Array >Winky Winky


Now we want to use it, so call it like this as Example
    doTypeWriter(0, Welcome to my Modded Lobby, 100 , 300 , new Int32[] { 255, 255, 255, 255 } , new Int32[] { 0, 0, 255, 255 })



Some extra Stuff:
Therifboy and me Created a Welcome Message Function that is centered. The Funciton is not perfect cause it calculate the Text length. Anyways it could be usefull for you Winky Winky

Put this in your Project somewhere:
            public void WelcomeMessage(UInt32 clientIndex, String Text1, String Text2, String Text3, Int32[] glowColor)
{
UInt32 elem = HudElem_Alloc();
SetMemory(Elem, new Byte[] { 0x00, 0x00, 0x00, 0x01 });
SetMemory(Elem + HElems.textOffset, uintBytes(createText("")));
SetMemory(Elem + HElems.relativeOffset, uintBytes(0x05));
SetMemory(Elem + HElems.relativeOffset - 4, uintBytes(0x06));
SetMemory(Elem + HElems.fontOffset, uintBytes(10));
SetMemory(Elem + HElems.alignOffset, uintBytes(5));
SetMemory(Elem + HElems.textOffset + 4, new Byte[] { 0x40, 0x00 });
SetMemory(Elem + HElems.fontSizeOffset, ReverseBytes(BitConverter.GetBytes((float)2)));
SetMemory(Elem + HElems.xOffset, ReverseBytes(BitConverter.GetBytes(150)));
SetMemory(Elem + HElems.yOffset, ReverseBytes(BitConverter.GetBytes(300)));
SetMemory(Elem + HElems.colorOffset, new Byte[] { BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(0)[0], BitConverter.GetBytes(255)[0] });
SetMemory(Elem + HElems.GlowColor, new Byte[] { BitConverter.GetBytes(glow[0])[0], BitConverter.GetBytes(glow[1])[0], BitConverter.GetBytes(glow[2])[0], BitConverter.GetBytes(glow[3])[0] });
SetMemory(Elem + HElems.clientOffset, ReverseBytes(BitConverter.GetBytes(clientIndex)));
WriteInt32(elem + HElems.fxBirthTime, getLevelTime());
WriteInt32(elem + HElems.fxLetterTime, 80);
WriteInt32(elem + HElems.fxDecayStartTime, 9500);
WriteInt32(elem + HElems.fxDecayDuration, 1000);
WriteInt32(elem + HElems.flags, 1);
SetMemory(elem + HElems.textOffset, UInt32ToBytes(createText(Text1 + "\n" + CenterTypeWriterString(Text2, Text1.Length) + "\n" + CenterTypeWriterString(Text3, Text1.Length))));
}
public String CenterTypeWriterString(String text, Int32 length)
{
Int32 calc = (length - text.Length) / 2;
String MyText = String.Empty;
for (Int32 i = 0; i <= calc; i++)
{
MyText += " ";
}
return MyText + " " + text;
}

Here in a Pastebin again if you prefer it
You must login or register to view this content.

How to use it: (Do the first text in the Message longer than the other, else it doesnt work correctly :P)

Syntax of the Function
    WelcomeMessage(< clientnumber >, < Text 1 >, < Text 2 >, < Text 3 >, < RGBA Colors Int32 Array >Winky Winky


Example Function for Button or whatever again:
    WelcomeMessage(0, "Welcome to my Modded MW3 Lobby", "Subcribe xRevolutionsHD", "Created by xRevolution", new Int32[] { 255, 255, 255, 255 })


Thats is the Typewriter.
I hope it's well explained for you!
If you have still Questions then feel free to ask them here :y:

Credits:

    
- xRevolution
- Therifboy (Motivated me to find it. Helping with some things and find with me LevelTime Offset)
- Hacksource (Full Hud Elements Struct)
- Choco (RPC and Huds)
- iMCSx (WriteInt32 Function and connecting things)


Sorry to ask you for something, but can you release the GetLevelTime offset for Black Ops 2, or update the f****ion for Black Ops 2?
I have everything done except I don't know what GetLevelTime is therefore, I don't know how to find it. :|
12-04-2013, 11:17 PM #14
Originally posted by H
Sorry to ask you for something, but can you release the GetLevelTime offset for Black Ops 2, or update the f****ion for Black Ops 2?
I have everything done except I don't know what GetLevelTime is therefore, I don't know how to find it. :|


well i suggest you make your own rpc if youre doing hud elems for bo2 the rpc for 1.15 is garbage its buggy af

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo