Post: C# How to spawn a Rocket "G_FireRocket"
10-24-2017, 02:29 PM #1
(adsbygoogle = window.adsbygoogle || []).push({}); Hi all,

MW3 1.24 How to spawn a rocket "G_FireRocket".
Credits to my buddy xCSBKx

This function is for building shooting projectiles or for making the javirain mod or for building rocket surfing or rebuilding a fully functional predator missle.( i'll explain that in the next release) Known bug: when executed at the sametime as playerspawn can freeze the game.

Main G_FireRocket Function:
    
public static int G_GetWeaponForName(string WeaponName)
{//0x001c34b8 - uint G_GetWeaponForName(uint buffer, char const *name)
RPC.Call(0x001c34b8, 0x1004f000, WeaponName);
return PS3.Extension.ReadInt32(0x1004f000);
}
public static uint G_FireRocket(uint Client, string WeaponName, float[] Origin, float[] Angles, float[] GunVel)
{//0x001998F8 - G_FireRocket(gentity_s *parent, unsigned int weaponIndex, float *start, float *dir, const float *gunVel, gentity_s *target, const float *targetOffset)
return (uint)RPC.Call(0x001998F8, 0x00fca280 + (0x280 * Client), G_GetWeaponForName(WeaponName), Origin, Angles, GunVel);
}

Additional function:
    
public static void ChangeRocketDeathIcon(string WeaponName, string Icon)
{
int WeaponIndex = G_GetWeaponForName(WeaponName);
uint Pointer = PS3.Extension.ReadUInt32(0x00759DA4 + ((uint)WeaponIndex * 4));
uint WeaponDef = PS3.Extension.ReadUInt32(Pointer);
uint IconAddress = 0x01ffffb0;
PS3.Extension.WriteString(IconAddress, Icon);
PS3.Extension.WriteUInt32(WeaponDef + 0x200, IconAddress);
PS3.Extension.WriteUInt32(WeaponDef + 0x210, IconAddress);
}
public static void ChangeRocketExpRadius(string WeaponName, int Radius = 20000)
{
int WeaponIndex = G_GetWeaponForName(WeaponName);
uint Pointer = PS3.Extension.ReadUInt32(0x00759DA4 + ((uint)WeaponIndex * 4));
uint WeaponDef = PS3.Extension.ReadUInt32(Pointer);
PS3.Extension.WriteInt32(WeaponDef + 0x4EC, Radius);
}
public static void ChangeRocketSpeed(string WeaponName, int Speed = 10000)
{
int WeaponIndex = G_GetWeaponForName(WeaponName);
uint Pointer = PS3.Extension.ReadUInt32(0x00759DA4 + ((uint)WeaponIndex * 4));
uint WeaponDef = PS3.Extension.ReadUInt32(Pointer);
PS3.Extension.WriteInt32(WeaponDef + 0x508, Speed);
}
public static void ChangeRocketLifeTime(string WeaponName, int TimeInSeconds)
{
int WeaponIndex = G_GetWeaponForName(WeaponName);
uint Pointer = PS3.Extension.ReadUInt32(0x00759DA4 + ((uint)WeaponIndex * 4));
uint WeaponDef = PS3.Extension.ReadUInt32(Pointer);
PS3.Extension.WriteFloat(WeaponDef + 0x518, (float)TimeInSeconds);
}

Example 1: How to call function
    
public uint ShotRocket(uint Client, string WeaponName = "javelin_mp", uint Speed = 5000)
{
float[] Origin = GetOrigin(Client);
float[] Angles = GetAngles(Client);
float[] Forward = AnglesToForward(Angles, 5000);
Origin[2] += 59;
return G_FireRocket(Client, WeaponComboBox.Text, Origin, Forward, Angles);
}


Have fun!!
Last edited by mrdarkblue ; 10-28-2017 at 10:13 AM.

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo