WILLIE_TROMBONE Posted May 10, 2011 Share Posted May 10, 2011 Hi. I actually posted this before but I still need some help. I'm currently trying to mod san andreas to make it a much more difficult game. I know how to change other peds to make them have more health and do more damage etc... Only problem is they still die from one hit if they get shot in the head. So does anyone know how to make it so that they are immune to headshots?? Is there already a mod that does this? I know this is possible because in some missions your allies won't die from headshots and some enemies are won't die instantly either. Someone told me to use this CLEO script: {$CLEO}0000: NOPwhile true wait 5 04C4: store_coords_to [email protected] [email protected] [email protected] from_actor $PLAYER_ACTOR with_offset 0.0 25.0 0.0 if 0AE1: [email protected] = random_actor_near_point [email protected] [email protected] [email protected] in_radius 500.0 find_next 0 pass_deads 1 //IF and SET then 0446: set_actor [email protected] immune_to_headshots 0 endend But sometimes peds will die in one headshot anyway, no matter how much health I give them. Thanks in advance for the help! Snoops27 1 Link to comment Share on other sites More sharing options...
Adler Posted May 10, 2011 Share Posted May 10, 2011 It should be: 0446: set_actor [email protected] immune_to_headshots 1 Link to comment Share on other sites More sharing options...
WILLIE_TROMBONE Posted May 11, 2011 Author Share Posted May 11, 2011 It should be: 0446: set_actor [email protected] immune_to_headshots 1 Hey thanks for the reply But setting that to 1 just enabled headshots again. See when that was set to 0, sometimes people were immune and other times they weren't. Anyone have any other ideas please? Link to comment Share on other sites More sharing options...
spaceeinstein Posted May 11, 2011 Share Posted May 11, 2011 @Adler 0446 is incorrectly named. Check here. Link to comment Share on other sites More sharing options...
Adler Posted May 11, 2011 Share Posted May 11, 2011 Whoops! I had a feeling one of the opcodes had that problem but I didn't think it was that one. Try this code (modified from All Possible Actors): {$CLEO .cs}0000: Starting Code:Startfor [email protected] = 0 to 35584 step 256 0085: [email protected] = [email protected] for [email protected] = 0 to 127 if and 056D: actor [email protected] defined 803C: not $PLAYER_ACTOR == [email protected] then 0446: set_actor [email protected] dismemberment_possible 0 break end 000A: [email protected] += 1 endendwait 1000jump @Start Tested & working. Snoops27 1 Link to comment Share on other sites More sharing options...
WILLIE_TROMBONE Posted May 11, 2011 Author Share Posted May 11, 2011 (edited) Whoops! I had a feeling one of the opcodes had that problem but I didn't think it was that one. Try this code (modified from All Possible Actors): {$CLEO .cs}0000: Starting Code:Startfor [email protected] = 0 to 35584 step 256 0085: [email protected] = [email protected] for [email protected] = 0 to 127 if and 056D: actor [email protected] defined 803C: not $PLAYER_ACTOR == [email protected] then 0446: set_actor [email protected] dismemberment_possible 0 break end 000A: [email protected] += 1 endendwait 1000jump @Start Tested & working. Thanks alot man, that worked! Uhm, I hate to sound like a pain but... would anyone be able to help me one more thing? Making peds immune to fire (i.e. they can't be set on fire) Thanks again for the help guys! Edited May 11, 2011 by WILLIE_TROMBONE Snoops27 1 Link to comment Share on other sites More sharing options...
Wesser Posted May 11, 2011 Share Posted May 11, 2011 (edited) Try this code (modified from All Possible Actors): [...] Tested & working. This code is a lot faster: { FUNCTIONS INCLUDED:- loopThroughPool Type: GET Description: Loop through any pool by giving a gosub pointer redundant for each entity.}{$CLEO}0000: NOPwhile true wait 0 0AB1: call_scm_func @loopThroughPool 2 pool 0xB74490 gosub @ActorLoop end:ActorLoop// [email protected] contains the entity's SCM handlereturn :loopThroughPool{ Parameters: Passed: [email protected] - pool pointer (offset) [email protected] - gosub label pointer (offset) Result: none Example: 0AB1: call_scm_func @loopThroughPool 2 pool_ptr 0x0 gosub_loop @label }0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 // [email protected] += 0x4 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 // [email protected] += 0x4 0A8D: [email protected] = read_memory [email protected] size 4 virtual_protect 0 // [email protected] -= 1 for [email protected] = 0 to [email protected] 0A8D: [email protected] = read_memory [email protected] size 1 virtual_protect 0 [email protected] += 0x1 if and [email protected] > 0x0 [email protected] < 0x80 then 0085: [email protected] = [email protected] [email protected] *= 0x100 005A: [email protected] += [email protected] gosub [email protected] endend0AB2: ret 0 Edited September 8, 2011 by Wesser Snoops27 1 012 345 678 9A BCD EFG HIJK LMN OPQR STUV WX YZ Link to comment Share on other sites More sharing options...
Adler Posted May 11, 2011 Share Posted May 11, 2011 Woah that's interesting. Should be added to the Coding Snippets topic at GTAG. Snoops27 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