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

[C#] How to change ped model?


Kieran_S
 Share

Recommended Posts

Hi,
I am trying to make a script where I need to intimidate a shop keeper for a code but I don't know how I can delete the current shopkeeper and replace it for one I manually put in for my intimidation part to work. Does anyone know how I can delete and specific ped and replace it with another model that I have in my code.

Any would would be great.

Thanks.

Link to comment
Share on other sites

2 hours ago, Kieran_S said:

Hi,
I am trying to make a script where I need to intimidate a shop keeper for a code but I don't know how I can delete the current shopkeeper and replace it for one I manually put in for my intimidation part to work. Does anyone know how I can delete and specific ped and replace it with another model that I have in my code.

Any would would be great.

Thanks.

 

You have to be careful with this because shopkeepers are created by a script in the game... if it detects one is missing, it might just try and put it back.

 

Should that not be the case and it leaves it alone, then you'll need to collect peds in the surrounding area. Once you have them, scan the collection for a match against all the possible hashes that are used for shopkeepers. Once you find one, store its position and rotation, delete it and then create your new one at that position and rotation.

 

I started writing a shop assistant script a while back because I always play as addon peds and the shop assistants don't appear unless you're one of the players. I thought I might have had a hash list but I don't seem to have got that far, so I can't help with that part I am afraid.

Link to comment
Share on other sites

1 hour ago, LeeC22 said:

 

You have to be careful with this because shopkeepers are created by a script in the game... if it detects one is missing, it might just try and put it back.

 

Should that not be the case and it leaves it alone, then you'll need to collect peds in the surrounding area. Once you have them, scan the collection for a match against all the possible hashes that are used for shopkeepers. Once you find one, store its position and rotation, delete it and then create your new one at that position and rotation.

 

I started writing a shop assistant script a while back because I always play as addon peds and the shop assistants don't appear unless you're one of the players. I thought I might have had a hash list but I don't seem to have got that far, so I can't help with that part I am afraid.

Ah OK, thanks. That explains why when the script to delete it ran i would see a new one spawn when I got close. Thanks for the feedback.

Link to comment
Share on other sites

1 hour ago, Kieran_S said:

Ah OK, thanks. That explains why when the script to delete it ran i would see a new one spawn when I got close. Thanks for the feedback.

 

There is always the brute force solution, here's a list of scripts I suspect are used with the shops

 

carmod_shop
clothes_shop_mp
clothes_shop_sp
gunclub_shop
hairdo_shop_mp
hairdo_shop_sp
personal_carmod_shop
shop_controller
tattoo_shop

 

Which you could feed into this function...

 

int scriptHash = Game.GenerateHash(scriptName);
if (Function.Call<bool>(Hash.DOES_SCRIPT_WITH_NAME_HASH_EXIST, scriptHash))
{
	if (Function.Call<bool>(Hash.HAS_SCRIPT_WITH_NAME_HASH_LOADED, scriptHash))
	{
		Function.Call(Hash.SET_SCRIPT_AS_NO_LONGER_NEEDED, scriptName);
		Function.Call(Hash.SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED, scriptHash);
		Function.Call(Hash.TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME, scriptName);
	}
}

 

That might stop all shop related peds from being spawned completely. It will also stop the shops functioning of course, so it depends on how much functionality you want to replicate on your own.

 

At the very least you could run them through that function just to use the "check if they are loaded bit" of it, just to get an idea of what really is happening.

Edited by LeeC22
Link to comment
Share on other sites

11 hours ago, LeeC22 said:

 

There is always the brute force solution, here's a list of scripts I suspect are used with the shops

 

carmod_shop
clothes_shop_mp
clothes_shop_sp
gunclub_shop
hairdo_shop_mp
hairdo_shop_sp
personal_carmod_shop
shop_controller
tattoo_shop

 

Which you could feed into this function...

 

int scriptHash = Game.GenerateHash(scriptName);
if (Function.Call<bool>(Hash.DOES_SCRIPT_WITH_NAME_HASH_EXIST, scriptHash))
{
	if (Function.Call<bool>(Hash.HAS_SCRIPT_WITH_NAME_HASH_LOADED, scriptHash))
	{
		Function.Call(Hash.SET_SCRIPT_AS_NO_LONGER_NEEDED, scriptName);
		Function.Call(Hash.SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED, scriptHash);
		Function.Call(Hash.TERMINATE_ALL_SCRIPTS_WITH_THIS_NAME, scriptName);
	}
}

 

That might stop all shop related peds from being spawned completely. It will also stop the shops functioning of course, so it depends on how much functionality you want to replicate on your own.

 

At the very least you could run them through that function just to use the "check if they are loaded bit" of it, just to get an idea of what really is happening.

OK, thanks a tonne for this should be really useful as it wont matter if other are loaded or not when the script is running. I will give it a go. Appreciate the code :)

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.