Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Support

    3. Suggestions

[GTA SA] How can i set weapon skill to gangster level for all peds in the streets?


ro4st
 Share

Recommended Posts

Their weapon skill is set to poor level by default. Is there any way to change it to gangster lever? (i'm not talking about gang members and cops).

Or is there any way to change the rate of fire of pedestrians without modifying the weapon.dat file? (i don't want to modify weapon fire rate for CJ, just peds)

Link to comment
Share on other sites

7 hours ago, ro4st said:

Their weapon skill is set to poor level by default. Is there any way to change it to gangster lever? (i'm not talking about gang members and cops).

Or is there any way to change the rate of fire of pedestrians without modifying the weapon.dat file? (i don't want to modify weapon fire rate for CJ, just peds)

Standard method would be by searching pedtypes through a ped pool:

for (int i = 0; i < CPools::ms_pPedPool->m_nSize; i++) {
	CPed *ped = CPools::ms_pPedPool->GetAt(i);
	if (ped) {
        	if (ped->m_nPedType == PED_TYPE_CIVMALE || ped->m_nPedType == PED_TYPE_CIVFEMALE ||
        	ped->m_nPedType == PED_TYPE_DEALER || ped->m_nPedType == PED_TYPE_CRIMINAL ||
        	ped->m_nPedType == PED_TYPE_BUM || ped->m_nPedType == PED_TYPE_PROSTITUTE)
        	{
    	    		ped->m_nWeaponSkill = WEAPSKILL_STD;
    	    		ped->m_nWeaponShootingRate = 40;
        	}
	}
}

//  ePedType    https://github.com/DK22Pac/plugin-sdk/blob/master/plugin_sa/game_sa/ePedType.h 

enum eWeaponSkill
{
	WEAPSKILL_POOR,    //  0
	WEAPSKILL_STD,     //  1
	WEAPSKILL_PRO,     //  2
	WEAPSKILL_COP      //  3
}; 

But most of the ped settings are already present here:

CPed::CPed(ePedType pedType)    //  0x5E8030

More precisely:

0x5E83CA    mov     [esi+0x72C], 1     //  ped->m_nWeaponSkill = WEAPSKILL_STD;			
0x5E8259    mov     [esi+0x719], 0x28  //  ped->m_nWeaponShootingRate = 40;

so it can be done by modifying the function as well:

injector::WriteMemory<byte>(0x5E83CA + 6, 1);
injector::WriteMemory<byte>(0x5E8259 + 6, 0x28);

 

Edited by Jack
.
Link to comment
Share on other sites

8 hours ago, Jack said:

Standard method would be by searching pedtypes through a ped pool:

for (int i = 0; i < CPools::ms_pPedPool->m_nSize; i++) {
	CPed *ped = CPools::ms_pPedPool->GetAt(i);
	if (ped) {
        	if (ped->m_nPedType == PED_TYPE_CIVMALE || ped->m_nPedType == PED_TYPE_CIVFEMALE ||
        	ped->m_nPedType == PED_TYPE_DEALER || ped->m_nPedType == PED_TYPE_CRIMINAL ||
        	ped->m_nPedType == PED_TYPE_BUM || ped->m_nPedType == PED_TYPE_PROSTITUTE)
        	{
    	    		ped->m_nWeaponSkill = WEAPSKILL_STD;
    	    		ped->m_nWeaponShootingRate = 40;
        	}
	}
}

//  ePedType    https://github.com/DK22Pac/plugin-sdk/blob/master/plugin_sa/game_sa/ePedType.h 

enum eWeaponSkill
{
	WEAPSKILL_POOR,    //  0
	WEAPSKILL_STD,     //  1
	WEAPSKILL_PRO,     //  2
	WEAPSKILL_COP      //  3
}; 

But most of the ped settings are already present here:

CPed::CPed(ePedType pedType)    //  0x5E8030

More precisely:

0x5E83CA    mov     [esi+0x72C], 1     //  ped->m_nWeaponSkill = WEAPSKILL_STD;			
0x5E8259    mov     [esi+0x719], 0x28  //  ped->m_nWeaponShootingRate = 40;

so it can be done by modifying the function as well:

injector::WriteMemory<byte>(0x5E83CA + 6, 1);
injector::WriteMemory<byte>(0x5E8259 + 6, 0x28);

 

Thank you so much for you help, i really appreciate it so much. But i should have mentioned that i suck at coding (sorry for my ignorance), so i really don't know how to use this information properly to make a CLEO mod in Sanny Builder. Can you help me a bit?

 

Btw, nice YT videos (i watched some of them before)

Link to comment
Share on other sites

const
	WEAPSKILL_POOR = 0
	WEAPSKILL_STD = 1
	WEAPSKILL_PRO = 2
	WEAPSKILL_COP = 3
end

You can use these commands when you find a ped in the ped pool:

081A: set_actor ped weapon_skill_to WEAPSKILL_PRO
07DD: set_actor ped attack_rate 0xFF

or change already defined weapon skill and fire rate values through the write_memory commands: 

0A8C: write_memory 0x5E83D0 size 1 value WEAPSKILL_PRO virtual_protect 0
0A8C: write_memory 0x5E825F size 1 value 0xFF virtual_protect 0

 

Edited by Jack
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.