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

Happy Holidays from the GTANet team!

Need help with a driving NPC


deleted account
 Share

Recommended Posts

deleted account

So I'm making a Ghost Rider NPC and I want him to drive a bike and try to run you over, I also want him to jump off the bike before it explodes.

 

This is my script:

 

 

// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .CS}

//-------------MAIN---------------
thread 'THERIDER' 

:THERIDER_THREAD_19
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @THERIDER_THREAD_19 
if 
  $ONMISSION == 0 
jf @THERIDER_THREAD_19 
if 
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 2775.7168 912.9667 10.8027 radius 20.0 20.0 20.0 
jf @THERIDER_THREAD_19 
023C: load_special_actor 'ghrider' as 1 // models 290-299 
Model.Load(#FREEWAY)
Model.Load(#CHROMEGUN)     
                                         
:THERIDER_THREAD_118
wait 0 
if 
023D:   special_actor 1 loaded  
jf @THERIDER_THREAD_118 
[email protected] = Actor.CreateAsDriver(Mission1, #SPECIAL01, 2836.8884, 954.5295, 10.75)
Actor.Angle([email protected]) = 173.7117
Actor.Health([email protected]) = 30000
066A: [email protected] = attach_particle "FLAME" to_actor [email protected] with_offset 0.7 0.0 0 rotation 0.0 180 0.0 type 0 
0883: attach_particle [email protected] to_actor [email protected] mode 1 
064C: make_particle [email protected] visible
0446: set_actor [email protected] dismemberment_possible 0 
04D8: set_actor [email protected] drowns_in_water 1 
0946: set_actor [email protected] actions_uninterupted_by_weapon_fire 1 
060B: set_actor [email protected] decision_maker_to 32 
Actor.SetWalkStyle([email protected], "MAN")
Actor.GiveWeaponAndAmmo([email protected], SHOTGUN, 9999)
03FE: set_actor [email protected] money 0 
Actor.SetImmunities([email protected], 0, 1, 0, 0, 0)
Car.SetDriverBehaviour([email protected], KillThePlayer)
05E2: AS_actor [email protected] kill_actor $PLAYER_ACTOR 
Model.Destroy(#SPECIAL01)

:THERIDER_THREAD_264
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @THERIDER_THREAD_338 
if 
   not Actor.Dead([email protected])
jf @THERIDER_THREAD_350 
if 
00F2:   actor $PLAYER_ACTOR near_actor [email protected] radius 180.0 180.0 0 
jf @THERIDER_THREAD_338 
jump @THERIDER_THREAD_264 

:THERIDER_THREAD_338
Actor.RemoveReferences([email protected])
jump @THERIDER_THREAD_19 

:THERIDER_THREAD_350
0A93: end_custom_thread 
 

 

 

Link to comment
Share on other sites

{$CLEO .CS}

thread 'THERIDER' 

:THERIDER_THREAD_19
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @THERIDER_THREAD_19 
if 
  $ONMISSION == 0 
jf @THERIDER_THREAD_19 
if 
00FE:   actor $PLAYER_ACTOR sphere 1 in_sphere 2775.7168 912.9667 10.8027 radius 20.0 20.0 20.0 
jf @THERIDER_THREAD_19
 
023C: load_special_actor 'CAT' as 1 // 023C: load_special_actor 'ghrider' as 1 
Model.Load(#FREEWAY)
Model.Load(#CHROMEGUN)     
                                         
:THERIDER_THREAD_118
wait 0 
if and
0248:   model #FREEWAY available
0248:   model #CHROMEGUN available
023D:   special_actor 1 loaded  
jf @THERIDER_THREAD_118 

00A5: 0@ = create_car #FREEWAY at 2836.8884 954.5295 10.75
0175: set_car 0@ z_angle_to 90.0
0224: set_car 0@ health_to  3000
053F: set_car 0@ tires_vulnerable  0
00AE: set_car 0@ traffic_behaviour_to 2
00AF: set_car 0@ driver_behaviour_to 2
00AD: set_car 0@ max_speed_to 90.0

0129: 1@ = create_actor_pedtype 7 model #SPECIAL01 in_car 0@ driverseat
060B: set_actor 1@ decision_maker_to 32
Actor.Health(1@) = 30000
03FE: set_actor 1@ money 0
Actor.SetImmunities(1@, 0, 1, 0, 0, 0)
0446: set_actor 1@ dismemberment_possible 0
Actor.GiveWeaponAndAmmo(1@, 25, 9999)
02E2: set_actor 1@ weapon_accuracy_to  100
08C6: set_actor 1@  stay_on_bike 1
0713: actor 1@ driveby_actor $PLAYER_ACTOR car -1 point 0.0  0.0  0.0 radius 5000.0 4 1 firing_rate 40

066A: 11@ = attach_particle "FLAME" to_actor 1@ with_offset 0.7 0.0 0 rotation 0.0 180 0.0 type 0 
0883: attach_particle 11@ to_actor 1@ mode 1 
064C: make_particle 11@ visible
  
Model.Destroy(#SPECIAL01)

:THERIDER_THREAD_264
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @THERIDER_THREAD_338 
if 
   not Actor.Dead(1@)
jf @THERIDER_THREAD_338 
if 
00F2:   actor $PLAYER_ACTOR near_actor 1@ radius 180.0 180.0 0 
jf @THERIDER_THREAD_338 
jump @THERIDER_THREAD_264 

:THERIDER_THREAD_338
0650: delete_particle 11@
Actor.RemoveReferences(1@)
01C3: remove_references_to_car 0@
jump @THERIDER_THREAD_19 

 

Link to comment
Share on other sites

deleted account
1 hour ago, ZAZ said:

given code

Thanks but theres a few problems;

 

  • Ghost Rider doesn't jump off the bike when it goes on fire.
  • Ghost Rider dies if the bike explodes (even if he is immune to explosions
  • Shooting the bikes fuel cap causes the bike to explode
  • It is possible to jack the bike
  • If you jack the bike Ghost Rider does nothing
  • Ghost Rider respawns when he dies
Edited by SpicyDragon
Link to comment
Share on other sites

Use opcode 02AC to make his bike immune to bullets, explosion, and fire.

 

To make it not possible to jack the bike, I recommend to use opcode 07CC (make it zero to disable player stealing his bike). But using this method will make player unable to steal other car near his bike.

:Somewhere_in_thread
wait 0
gosub @Disable_StealBike
jump @Somewhere_in_thread

:Disable_StealBike
if
0202:   actor $PLAYER_ACTOR near_car [email protected] radius 10.0 10.0 sphere 0
jf @Enable
07CC: set_player $PLAYER_CHAR button_15 0
return

:Enable
07CC: set_player $PLAYER_CHAR button_15 1
return

 

Edited by In45do
Link to comment
Share on other sites

10 hours ago, SpicyDragon said:

 

  • Ghost Rider doesn't jump off the bike when it goes on fire.
  • Ghost Rider dies if the bike explodes (even if he is immune to explosions)

remove_actor from_car if car will be wrecked then command him the kill player code

Enlarge the script, add a condition and an extra loop for the case if actor isn't in car

 

Condition:

if
8185: not  car 0@ health >= 100
jf @THERIDER_THREAD_264
0362: remove_actor 1@ from_car_and_place_at 2775.7168 912.9667 13.8

05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR


extra loop:

Spoiler
:THERIDER_THREAD_275
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @THERIDER_THREAD_338 
if 
   not Actor.Dead(1@)
jf @THERIDER_THREAD_338 
if 
00F2:   actor $PLAYER_ACTOR near_actor 1@ radius 180.0 180.0 0 
jf @THERIDER_THREAD_338
if
00DB:   actor $PLAYER_ACTOR in_car 0@
jf @THERIDER_THREAD_275
036A: put_actor 1@ in_car 0@
wait 500
if
8119: not  car 0@ wrecked
jf @THERIDER_THREAD_275
00AE: set_car 0@ traffic_behaviour_to 2
00AF: set_car 0@ driver_behaviour_to 2
00AD: set_car 0@ max_speed_to 90.0
08C6: set_actor 1@  stay_on_bike 1
0713: actor 1@ driveby_actor $PLAYER_ACTOR car -1 point 0.0  0.0  0.0 radius 5000.0 4 1 firing_rate 40 
jump @THERIDER_THREAD_264

 

 

 

 

 

10 hours ago, SpicyDragon said:
  • Shooting the bikes fuel cap causes the bike to explode

make bike bullet proof and explosion proof

02AC: set_car [email protected] immunities BP 1 FP 0 EP 1 CP 0 MP 1

 

 

 

10 hours ago, SpicyDragon said:
  • It is possible to jack the bike

 

put actor back to bike, build a conditional check inside the extra loop

if
00DB:   actor $PLAYER_ACTOR in_car 0@
jf @THERIDER_THREAD_275
036A: put_actor 1@ in_car 0@
wait 500
if
8119: not  car 0@ wrecked
jf @THERIDER_THREAD_275
00AE: set_car 0@ traffic_behaviour_to 2
00AF: set_car 0@ driver_behaviour_to 2
00AD: set_car 0@ max_speed_to 90.0
08C6: set_actor 1@  stay_on_bike 1
0713: actor 1@ driveby_actor $PLAYER_ACTOR car -1 point 0.0  0.0  0.0 radius 5000.0 4 1 firing_rate 40
jump @THERIDER_THREAD_264

 

Spoiler
:THERIDER_THREAD_275
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @THERIDER_THREAD_338 
if 
   not Actor.Dead(1@)
jf @THERIDER_THREAD_338 
if 
00F2:   actor $PLAYER_ACTOR near_actor 1@ radius 180.0 180.0 0 
jf @THERIDER_THREAD_338
if
00DB:   actor $PLAYER_ACTOR in_car 0@
jf @THERIDER_THREAD_275
036A: put_actor 1@ in_car 0@
wait 500
if
8119: not  car 0@ wrecked
jf @THERIDER_THREAD_275
00AE: set_car 0@ traffic_behaviour_to 2
00AF: set_car 0@ driver_behaviour_to 2
00AD: set_car 0@ max_speed_to 90.0
08C6: set_actor 1@  stay_on_bike 1
0713: actor 1@ driveby_actor $PLAYER_ACTOR car -1 point 0.0  0.0  0.0 radius 5000.0 4 1 firing_rate 40 
jump @THERIDER_THREAD_264

 

 

or do what In45do said, use opcode 07CC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10 hours ago, SpicyDragon said:

 

  • If you jack the bike Ghost Rider does nothing

 

 

remove_actor from_car if car will be wrecked then command him the kill player code

Enlarge the script, add a condition and an extra loop for the case if actor isn't in car

 

 

 

10 hours ago, SpicyDragon said:
  • Ghost Rider respawns when he dies


change last line with 0A93: end_custom_thread

 

 

 

 

Edited by ZAZ
Link to comment
Share on other sites

deleted account
7 hours ago, ZAZ said:

put actor back to bike, build a conditional check inside the extra loop

if
00DB:   actor $PLAYER_ACTOR in_car 0@
jf @THERIDER_THREAD_275
036A: put_actor 1@ in_car 0@
wait 500
if
8119: not  car 0@ wrecked
jf @THERIDER_THREAD_275
00AE: set_car 0@ traffic_behaviour_to 2
00AF: set_car 0@ driver_behaviour_to 2
00AD: set_car 0@ max_speed_to 90.0
08C6: set_actor 1@  stay_on_bike 1
0713: actor 1@ driveby_actor $PLAYER_ACTOR car -1 point 0.0  0.0  0.0 radius 5000.0 4 1 firing_rate 40
jump @THERIDER_THREAD_264

 

 

...Wat, what extra loop? Also THREAD_275 doesn't exist.

Link to comment
Share on other sites

18 hours ago, SpicyDragon said:

...Wat, what extra loop? Also THREAD_275 doesn't exist.

You're such a noob. Just copy all the code then implement it to the code where is your working at and do the needed tweaks to make it work with it. If a thread doesn't exist, do the needed adjustement and test it. Don't expect people to do all your work. Thread names are different because the people that are helping you is decompiling your code over and over again with the stuff you've requested and getting different names everytime, that's why some thread or anything else maybe doesn't exists in your code.

Edited by gts.
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.