Advertisement
KiLLerBoy_001

GTA 5: Drive on water Function

Nov 11th, 2015
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.30 KB | None | 0 0
  1. //-----------------  Drive on water  -----------------
  2. //
  3. // Uses an extra bool called: FolowWaves, With this set to True it will Follow the waves perfectly When set on False it will Not
  4. // Gets activated through DriveOnWater Bool
  5. //
  6. //----------------------------------------------------
  7.  
  8. object Create_Object(const char* ObjectName, Vector3 Coordinates)
  9. {
  10.    int ObjectHash = GAMEPLAY::GET_HASH_KEY(ObjectName);
  11.    if (STREAMING::IS_MODEL_IN_CDIMAGE(ObjectHash))
  12.    {
  13.       if (STREAMING::IS_MODEL_VALID(ObjectHash))
  14.       {
  15.          do
  16.          {
  17.             STREAMING::REQUEST_MODEL(ObjectHash);
  18.          } while (! STREAMING::HAS_MODEL_LOADED(ObjectHash))
  19.  
  20.          if (STREAMING::HAS_MODEL_LOADED(ObjectHash))
  21.          {             
  22.             return = OBJECT::CREATE_OBJECT(ObjectHash, Coordinates.x,Coordinates.y,Coordinates.z, 1, 1, 0, 0, 1);          
  23.          }
  24.       }
  25.    }
  26. }
  27.  
  28.  
  29. DriveLoop()
  30. {
  31.    char* prop = "prop_huge_display_01"
  32.    hash ObjHash = GAMEPLAY::GET_HASH_KEY(prop);
  33.    vector3 PlayerCoord = ENTITY::GET_ENTITY_COORDS(playerPed,1);
  34.    object WaterObject = OBJECT::GET_CLOSEST_OBJECT_OF_TYPE(PlayerCoord.x,PlayerCoord.y,PlayerCoord.z,300,ObjHash,1,0,1);
  35.    float Newz;
  36.    bool FolowWaves = true;      // for now well just force this to true
  37.  
  38.    WATER::GET_WATER_HEIGHT(PlayerCoord.x,PlayerCoord,y,PlayerCoord,z,&NewZ)
  39.    if (NewZ >= -1000)
  40.    {
  41.       // Don't Do Shit if no water is found.
  42.    }
  43.    else if ((! ENTITY::DOES_ENTITY_EXIST(WaterObject)) && (DriveOnWater))
  44.    {
  45.       object WaterObject = Create_Object(prop,PlayerCoord.x,PlayerCoord.y,PlayerCoord.z);
  46.       ENTITY::SET_ENTITY_ROTATION(WaterObject,90,0,0,2,true);
  47.       ENTITY::FREEZE_ENTITY_POSITION(WaterObject,1);
  48.       ENTITY::SET_ENTITY_VISIBLE(WaterObject,0);
  49.    }
  50.    else if ((ENTITY::DOES_ENTITY_EXIST(WaterObject)) && (DriveOnWater))
  51.    {
  52.       if (FolowWaves==true)
  53.       {
  54.          WATER::GET_WATER_HEIGHT(PlayerCoord.x,PlayerCoord.y,PlayerCoord.z,&NewZ)
  55.       }
  56.       else
  57.       {
  58.          WATER::GET_WATER_HEIGHT_NO_WAVES(PlayerCoord.x,PlayerCoord.y,PlayerCoord.z,&NewZ)
  59.          NewZ = (NewZ + 0.5);       // without this youll drown in the waves :P
  60.       }
  61.       Vector3 Coord = CombineVector(PlayerCoord.x, PlayerCoord.y, NewZ);
  62.       ENTITY::SET_ENTITY_COORDS(WaterObject,Coord.x,Coord.y,Coord,z,1,0,0,1);
  63.    }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement