Kieran_S Posted February 12, 2021 Share Posted February 12, 2021 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 More sharing options...
LeeC22 Posted February 12, 2021 Share Posted February 12, 2021 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 More sharing options...
Kieran_S Posted February 12, 2021 Author Share Posted February 12, 2021 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 More sharing options...
LeeC22 Posted February 12, 2021 Share Posted February 12, 2021 (edited) 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 February 12, 2021 by LeeC22 Link to comment Share on other sites More sharing options...
Kieran_S Posted February 13, 2021 Author Share Posted February 13, 2021 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 :) LeeC22 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now