Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    1. Red Dead Redemption 2

      1. PC
      2. Gameplay
      3. Missions
      4. Help & Support
    2. Red Dead Online

      1. Gameplay
      2. Find Lobbies & Outlaws
      3. Help & Support
      4. Frontier Pursuits
    1. Crews & Posses

      1. Recruitment
    2. Events

    1. GTA Online

      1. Diamond Casino & Resort
      2. DLC
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Grand Theft Auto Series

    3. GTA 6

    4. GTA V

      1. PC
      2. Guides & Strategies
      3. Help & Support
    5. GTA IV

      1. Episodes from Liberty City
      2. Multiplayer
      3. Guides & Strategies
      4. Help & Support
      5. GTA IV Mods
    6. GTA Chinatown Wars

    7. GTA Vice City Stories

    8. GTA Liberty City Stories

    9. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
      3. GTA SA Mods
    10. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
      3. GTA VC Mods
    11. GTA III

      1. Guides & Strategies
      2. Help & Support
      3. GTA III Mods
    12. Top Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    13. Wiki

      1. Merchandising
    1. GTA Modding

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    3. Featured Mods

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Red Dead Redemption

    2. Rockstar Games

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Programming
      5. Movies & TV
      6. Music
      7. Sports
      8. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. News

    2. Forum Support

    3. Site Suggestions

helix snake

Is there a way to get all vehicles/peds yet?

Recommended Posts

helix snake

I tried making a script that loops over every int from 0 to a fairly large number (in chunks of 100 ints per wait) and checks if they're an entity, then checks if they're a vehicle, and if so, places them in a container. The problem is that certain ints crash the script if you run DOES_ENTITY_EXIST on them, so that technique is completely out the window.

 

GET_PEDS_NEAR_PED and GET_VEHICLES_NEAR_PED have a limited range (and an extremely small range at that) so they won't work for everything I'm trying to do. Is this even possible?

Share this post


Link to post
Share on other sites
Fireboyd78

Isn't there a native to get all peds/vehicles within an area?

Share this post


Link to post
Share on other sites
Cyron43

Alas GET_PEDS_NEAR_PED only returns living peds but there is an interesting post from c39687 in this thread.

Edited by Cyron43

Share this post


Link to post
Share on other sites
jordRiot

I haven't seen a Native that checks for all peds or vehicles (considering they spawn as you drive around). Would it be worth using your current method (although it seems like it'd be very intensive) but checking isdigit() on the Entity rather than or prior to DOES_ENTITY_EXIST... as all Entities are int types!

 

Give it a go anyway!

Share this post


Link to post
Share on other sites
InfamousSabre

anyone tried chaining this off other peds? if one of the peds you got with GET_PEDS_NEAR_PED had other peds within 55m, that you didnt, you could run GET_PEDS_NEAR_PED on that ped and get the others too

messy workaround with obvious reasons it wont always work, but worth trying.

Edited by InfamousSabre

Share this post


Link to post
Share on other sites
leftas

Oh well, Entitys' pool address is base address + 29A1920( if my dump corect, rgsc version, need dump of steam version to give you steam gta v address). So you loop through all this, but you would need to do some operations on handle. The pool works differently, than I thought.

All the best,
Paul.

Edited by leftas

Share this post


Link to post
Share on other sites
spearminty

I am interested in this as well. Any thoughts on how to get all entities that exist?

 

I could use some help with accessing the entity pool... any implementation of this would help

Share this post


Link to post
Share on other sites
Sergeeeek

Oh well, Entitys' pool address is base address + 29A1920( if my dump corect, rgsc version, need dump of steam version to give you steam gta v address). So you loop through all this, but you would need to do some operations on handle.

 

All the best,

Paul.

 

Thank you very much for this! I was finally able to find memory addresses of entities by their handles and that's awesome. I'll probably try to implement it in the .Net scripthook tomorrow.

Share this post


Link to post
Share on other sites
Fireboyd78

Thank you very much for this! I was finally able to find memory addresses of entities by their handles and that's awesome. I'll probably try to implement it in the .Net scripthook tomorrow.

Good luck with this! I strongly suggest you find something that will allow you to determine the game's version so people don't bitch and complain about it "not working" in their version of the game. Lol.

Share this post


Link to post
Share on other sites
spearminty

I have steam version.

Dump of file C:\Program Files (x86)\Steam\SteamApps\common\Grand Theft Auto V\GTA5.exePE signature foundFile Type: EXECUTABLE IMAGEFILE HEADER VALUES            8664 machine (x64)               B number of sections        5540C256 time date stamp Wed Apr 29 06:36:54 2015               0 file pointer to symbol table               0 number of symbols              F0 size of optional header              22 characteristics                   Executable                   Application can handle large (>2GB) addressesOPTIONAL HEADER VALUES             20B magic # (PE32+)           11.00 linker version         3F04C00 size of code         3F04C00 size of initialized data         3F04C00 size of uninitialized data         1601CC0 entry point (0000000141601CC0)            1000 base of code       140000000 image base (0000000140000000 to 0000000143F04BFF)

I think I am close- I have never disassembled before. image base is base address, right?

And here are a list of memory addresses. Is one of these the start of the entity pool?
8fL5coL.png

From here I can iterate through correct address but I have never implemented this. This is where I'll need help.

Edited by spearminty

Share this post


Link to post
Share on other sites
leftas

 

 

Thank you very much for this! I was finally able to find memory addresses of entities by their handles and that's awesome. I'll probably try to implement it in the .Net scripthook tomorrow.

Good luck with this! I strongly suggest you find something that will allow you to determine the game's version so people don't bitch and complain about it "not working" in their version of the game. Lol.

 

Signature(bytes) scanning - problem solved :)

 

<...>
You need to open dumped, from runtime, exe in IDA or other x64 dissembler. :)
Anyone else who want to find function GetEntityByHandle, signature to it(actually to
mov r9, cs:g_EntityPool):

4C 8B 0D ? ? ? ? 44 8B C1 49 8B 41 08

 

and address to entity pool in 350.2, steam version is
base address + 2994C00, for steam version dump thanks to XBLToothPik.
All the best,
Paul.
Edited by leftas

Share this post


Link to post
Share on other sites
helix snake

 

Oh well, Entitys' pool address is base address + 29A1920( if my dump corect, rgsc version, need dump of steam version to give you steam gta v address). So you loop through all this, but you would need to do some operations on handle.

 

All the best,

Paul.

 

Thank you very much for this! I was finally able to find memory addresses of entities by their handles and that's awesome. I'll probably try to implement it in the .Net scripthook tomorrow.

 

You wouldn't mind sharing the code snippet, would you? I'm not an amazing programmer and I have no idea how to go about doing this. I have a LOT of code written in C++ and I don't want to have to rewrite it for the .net scripthook.

 

EDIT: Just found out that the .net scripthook is open source, and judging by the lack of a get all entities function in it, you haven't figured it out yet.

Edited by helix snake

Share this post


Link to post
Share on other sites
helix snake

Anyone know how to access the actual memory? I have no clue right now.

 

I REALLY want to do this but this is basically hacking and I have no f*cking clue. Even if I knew how to actually access the memory, I have no idea how to actually extract the handle from the memory because I have no idea how entities are stored in memory. That's disregarding the fact that I have no clue how to access the memory of another program.

Edited by helix snake

Share this post


Link to post
Share on other sites
leftas

Anyone know how to access the actual memory? I have no clue right now.

 

I REALLY want to do this but this is basically hacking and I have no f*cking clue. Even if I knew how to actually access the memory, I have no idea how to actually extract the handle from the memory because I have no idea how entities are stored in memory. That's disregarding the fact that I have no clue how to access the memory of another program.

Maybe a little patience ? to access memory you need to do something like that
((uintptr_t)GetModuleHandle(NULL) + 0x2A08808); 
I have code working(Thanks to Refs) which access entity pool - it works, though, but it gets only about 20 handles which from them are actually 1 working(existing) and that's myself. Reason why it work like that is still unknown, sadly.

 

Best wishes,

Paul.

Edited by leftas

Share this post


Link to post
Share on other sites
Inco

Anyone know how to access the actual memory? I have no clue right now.

 

I REALLY want to do this but this is basically hacking and I have no f*cking clue. Even if I knew how to actually access the memory, I have no idea how to actually extract the handle from the memory because I have no idea how entities are stored in memory. That's disregarding the fact that I have no clue how to access the memory of another program.

Look at https://github.com/crosire/scripthookvdotnet/pull/191

Share this post


Link to post
Share on other sites
helix snake

 

Anyone know how to access the actual memory? I have no clue right now.

 

I REALLY want to do this but this is basically hacking and I have no f*cking clue. Even if I knew how to actually access the memory, I have no idea how to actually extract the handle from the memory because I have no idea how entities are stored in memory. That's disregarding the fact that I have no clue how to access the memory of another program.

Look at https://github.com/crosire/scripthookvdotnet/pull/191

 

Thank you so much! Never would have been able to do this myself.

 

The problem with this though is that it only works on entities that have been given handles. So that means most of the nearby peds and vehicles, but you still can't get any from outside a certain range unless you run code that gives THEM handles (and if you can already do that, what's the point?) The only way a far away car gets a handle is if it collides with a car that has a handle, or you shoot it. Additionally there may be vehicles right next to you that don't have handles so the code will fail to grab those unless you run something like GET_PED_NEARBY_VEHICLES to give them handles.

 

Props/objects have no handles by default and I don't know of any way to get them one besides raycasting, so unless you have some of that going on this code won't get you any props.

Edited by helix snake

Share this post


Link to post
Share on other sites
leftas

 

 

Anyone know how to access the actual memory? I have no clue right now.

 

I REALLY want to do this but this is basically hacking and I have no f*cking clue. Even if I knew how to actually access the memory, I have no idea how to actually extract the handle from the memory because I have no idea how entities are stored in memory. That's disregarding the fact that I have no clue how to access the memory of another program.

Look at https://github.com/crosire/scripthookvdotnet/pull/191

 

Thank you so much! Never would have been able to do this myself.

 

The problem with this though is that it only works on entities that have been given handles. So that means most of the nearby peds and vehicles, but you still can't get any from outside a certain range unless you run code that gives THEM handles (and if you can already do that, what's the point?) The only way a far away car gets a handle is if it collides with a car that has a handle, or you shoot it. Additionally there may be vehicles right next to you that don't have handles so the code will fail to grab those unless you run something like GET_PED_NEARBY_VEHICLES to give them handles.

 

Props/objects have no handles by default and I don't know of any way to get them one besides raycasting, so unless you have some of that going on this code won't get you any props.

 

Hm ? Sorry, but you're wrong. All entitys have handles. And that pool which I presented as entity pool, isn't actually "entity pool", but as you know it's pool. It has vehicles/peds which are scripts-created(Thanks to MulleDK19).

 

EDIT: Actually by the game in native GET_PED_NEARBY_PEDS, that pool called something like

rage::fwScriptGuid::`vftable';

All the best,

Paul.

Edited by leftas

Share this post


Link to post
Share on other sites
Enumerator

Anyone know how to access the actual memory? I have no clue right now.

 

I REALLY want to do this but this is basically hacking and I have no f*cking clue. Even if I knew how to actually access the memory, I have no idea how to actually extract the handle from the memory because I have no idea how entities are stored in memory. That's disregarding the fact that I have no clue how to access the memory of another program.

 

Here is a modified memory module for vb.net

Option Strict OnImports System.Runtime.InteropServicesImports System.TextModule MemoryModule    <DllImport("kernel32.dll", SetLastError:=True)> Public Function ReadProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, <Out()> ByVal lpBuffer() As Byte, ByVal dwSize As Integer, ByRef lpNumberOfBytesRead As Integer) As Boolean    End Function    <DllImport("kernel32.dll")> Private Function OpenProcess(ByVal dwDesiredAccess As UInteger, <MarshalAs(UnmanagedType.Bool)> ByVal bInheritHandle As Boolean, ByVal dwProcessId As Integer) As IntPtr    End Function    <DllImport("kernel32.dll", SetLastError:=True)> Private Function WriteProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByVal lpBuffer As Byte(), ByVal nSize As IntPtr, <Out()> ByRef lpNumberOfBytesWritten As IntPtr) As Boolean    End Function    <DllImport("kernel32.dll", SetLastError:=True)> Private Function ReadProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, <Out()> ByVal lpBuffer() As Byte, ByVal dwSize As IntPtr, ByRef lpNumberOfBytesRead As IntPtr) As Boolean    End Function    <DllImport("kernel32.dll", SetLastError:=True)> Private Function CloseHandle(ByVal hObject As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean    End Function    Private Const PROCESS_VM_WRITE As UInteger = &H20    Private Const PROCESS_VM_READ As UInteger = &H10    Private Const PROCESS_VM_OPERATION As UInteger = &H8    Private TargetProcess As String = ""    Private ProcessHandle As IntPtr = IntPtr.Zero    Private LastKnownPID As Integer = -1    Private ProcAddress As IntPtr    Private Function ProcessIDExists(ByVal pID As Integer) As Boolean        For Each p As Process In Process.GetProcessesByName(TargetProcess)            If p.Id = pID Then Return True        Next        Return False    End Function    Public Sub SetProcessName(ByVal processName As String)        TargetProcess = processName        If ProcessHandle <> IntPtr.Zero Then CloseHandle(ProcessHandle)        LastKnownPID = -1        ProcessHandle = IntPtr.Zero    End Sub    Public Function GetCurrentProcessName() As String        Return TargetProcess    End Function    Public Function UpdateProcessHandle() As Boolean        Try            If LastKnownPID = -1 OrElse Not ProcessIDExists(LastKnownPID) Then                If ProcessHandle <> IntPtr.Zero Then CloseHandle(ProcessHandle)                Dim p() As Process = Process.GetProcessesByName(TargetProcess)                If p.Length = 0 Then Return False                LastKnownPID = p(0).Id                ProcessHandle = OpenProcess(PROCESS_VM_READ Or PROCESS_VM_WRITE Or PROCESS_VM_OPERATION, False, p(0).Id)                ProcAddress = p(0).MainModule.BaseAddress                If ProcessHandle = IntPtr.Zero Then Return False            End If        Catch : End Try        Return True    End Function    Public Function GetPOINTERaddress(ByVal StaticPointer As IntPtr, ByVal Offsets As IntPtr()) As IntPtr        Dim value As IntPtr        Try            value = MemoryModule.FindAddress(ProcessHandle, ProcAddress, StaticPointer, Offsets)        Catch ex As Exception            value = IntPtr.Zero        End Try        Return CType(value, IntPtr)    End Function    Public Function FindAddress(ByVal pHandle As IntPtr, ByVal BaseAddress As IntPtr, ByVal StaticPointer As IntPtr, ByVal Offsets() As IntPtr) As IntPtr        Dim tmp(IntPtr.Size - 1) As Byte        Dim Address As IntPtr = BaseAddress        ' We must check for 32-bit vs 64-bit.        If IntPtr.Size = 4 Then            Address = New IntPtr(Address.ToInt32 + StaticPointer.ToInt32)        Else            Address = New IntPtr(Address.ToInt64 + StaticPointer.ToInt64)        End If        ' Loop through each offset to find the address        For i As Integer = 0 To Offsets.Length - 1            ReadProcessMemory(pHandle, Address, tmp, IntPtr.Size, 0)            If IntPtr.Size = 4 Then                Address = CType(BitConverter.ToInt32(tmp, 0) + Offsets(i).ToInt32(), IntPtr)            Else                Address = CType(BitConverter.ToInt64(tmp, 0) + Offsets(i).ToInt64(), IntPtr)            End If        Next        Return Address    End Function    Public Function ReadMemory(Of T)(ByVal address As Object) As T        Return ReadMemory(Of T)(CLng(address))    End Function    Public Function ReadMemory(Of T)(ByVal address As Integer) As T        Return ReadMemory(Of T)(New IntPtr(address), 0, False)    End Function    Public Function ReadMemory(Of T)(ByVal address As Long) As T        Return ReadMemory(Of T)(New IntPtr(address), 0, False)    End Function    Public Function ReadMemory(Of T)(ByVal address As IntPtr) As T        Return ReadMemory(Of T)(address, 0, False)    End Function    Public Function ReadMemory(Of T)(ByVal address As IntPtr, ByVal length As Integer, ByVal unicodeString As Boolean) As T        Dim buffer() As Byte        If GetType(T) Is GetType(String) Then            If unicodeString Then buffer = New Byte(length * 2 - 1) {} Else buffer = New Byte(length - 1) {}        ElseIf GetType(T) Is GetType(Byte()) Then            buffer = New Byte(length - 1) {}        Else            buffer = New Byte(Marshal.SizeOf(GetType(T)) - 1) {}        End If        If Not UpdateProcessHandle() Then Return Nothing        Dim success As Boolean = ReadProcessMemory(ProcessHandle, address, buffer, New IntPtr(buffer.Length), IntPtr.Zero)        If Not success Then Return Nothing        If GetType(T) Is GetType(Byte()) Then Return CType(CType(buffer, Object), T)        If GetType(T) Is GetType(String) Then            If unicodeString Then Return CType(CType(Encoding.Unicode.GetString(buffer), Object), T)            Return CType(CType(Encoding.ASCII.GetString(buffer), Object), T)        End If        Dim gcHandle As GCHandle = gcHandle.Alloc(buffer, GCHandleType.Pinned)        Dim returnObject As T = CType(Marshal.PtrToStructure(gcHandle.AddrOfPinnedObject, GetType(T)), T)        gcHandle.Free()        Return returnObject    End Function    Private Function GetObjectBytes(ByVal value As Object) As Byte()        If value.GetType() Is GetType(Byte()) Then Return CType(value, Byte())        Dim buffer(Marshal.SizeOf(value) - 1) As Byte        Dim ptr As IntPtr = Marshal.AllocHGlobal(buffer.Length)        Marshal.StructureToPtr(value, ptr, True)        Marshal.Copy(ptr, buffer, 0, buffer.Length)        Marshal.FreeHGlobal(ptr)        Return buffer    End Function    Public Function WriteMemory(Of T)(ByVal address As Object, ByVal value As T) As Boolean        Return WriteMemory(CLng(address), value)    End Function    Public Function WriteMemory(Of T)(ByVal address As Object, ByVal value As Object) As Boolean        Return WriteMemory(CLng(address), CType(value, T))    End Function    Public Function WriteMemory(Of T)(ByVal address As Integer, ByVal value As T) As Boolean        Return WriteMemory(New IntPtr(address), value)    End Function    Public Function WriteMemory(Of T)(ByVal address As Integer, ByVal value As Object) As Boolean        Return WriteMemory(address, CType(value, T))    End Function    Public Function WriteMemory(Of T)(ByVal address As Long, ByVal value As T) As Boolean        Return WriteMemory(New IntPtr(address), value)    End Function    Public Function WriteMemory(Of T)(ByVal address As Long, ByVal value As Object) As Boolean        Return WriteMemory(address, CType(value, T))    End Function    Public Function WriteMemory(Of T)(ByVal address As IntPtr, ByVal value As T) As Boolean        Return WriteMemory(address, value, False)    End Function    Public Function WriteMemory(Of T)(ByVal address As IntPtr, ByVal value As Object) As Boolean        Return WriteMemory(address, CType(value, T), False)    End Function    Public Function WriteMemory(Of T)(ByVal address As Object, ByVal value As T, ByVal unicode As Boolean) As Boolean        Return WriteMemory(CLng(address), value, unicode)    End Function    Public Function WriteMemory(Of T)(ByVal address As Integer, ByVal value As T, ByVal unicode As Boolean) As Boolean        Return WriteMemory(New IntPtr(address), value, unicode)    End Function    Public Function WriteMemory(Of T)(ByVal address As Long, ByVal value As T, ByVal unicode As Boolean) As Boolean        Return WriteMemory(New IntPtr(address), value, unicode)    End Function    Public Function WriteMemory(Of T)(ByVal address As IntPtr, ByVal value As T, ByVal unicode As Boolean) As Boolean        If Not UpdateProcessHandle() Then Return False        Dim buffer() As Byte        If TypeOf value Is String Then            If unicode Then buffer = Encoding.Unicode.GetBytes(value.ToString()) Else buffer = Encoding.ASCII.GetBytes(value.ToString())        Else            buffer = GetObjectBytes(value)        End If        Dim result As Boolean = WriteProcessMemory(ProcessHandle, address, buffer, New IntPtr(buffer.Length), IntPtr.Zero)        Return result    End FunctionEnd Module'' Reads the value from 0x12345678 as an Integer'Dim myIntValue As Integer = ReadMemory(Of Integer)(&H12345678)'' Reads the value from 0x12345678 as a Single (remember that Single is the same as Float)'Dim myFloatValue As Single = ReadMemory(Of Single)(&H12345678)'' Reads 10 characters at 0x12345678 as an ASCII String'Dim myASCIIStringValue As String = ReadMemory(Of String)(&H12345678, 10, False)'' Reads 10 characters at 0x12345678 as a Unicode String'Dim myUnicodeStringValue As String = ReadMemory(Of String)(&H12345678, 10, True)'' Reads 12 bytes from 0x12345678'Dim myByteData() As Byte = ReadMemory(&H12345678, 12)'' Writes 10 as an Integer to 0x12345678'WriteMemory(Of Integer)(&H12345678, 10)'' Writes 0.5 as a Single/Float to 0x12345678'WriteMemory(Of Single)(&H12345678, 0.5)'' Writes Hello World as an ASCII string to 0x12345678 (the + vbNullChar erases the rest of the old string)'WriteMemory(Of String)(&H12345678, "Hello World" + vbNullChar, False)'' Writes Hello World as a Unicode string to 0x12345678 (the + vbNullChar erases the rest of the old string)'WriteMemory(Of String)(&H12345678, "Hello World" + vbNullChar, True)'' Writes '0x90, 0x90, 0x90, 0x90' as a byte array to 0x12345678'WriteMemory(&H12345678, New Byte() { &H90, &H90, &H90, &H90 })'How do I read or write a number into memory if I'm going to get it from a textbox or a string?'Since VB.NET (by default) doesn't care much about types (they are converted automatically), you should be able to get away with this:'' Reads the integer from the address inside TextBox1 (warning: the string must start with &H if its an address/hex value)'Dim myIntValue As Integer = ReadMemory(Of Integer)("&H" + TextBox1.Text)'' Writes the value from TextBox1 into 0x12345678 as an integer'WriteMemory(Of Integer)(&H12345678, TextBox1.Text)'' Writes the value from TextBox1 into 0x12345678 as a single/float'WriteMemory(Of Single)(&H12345678, TextBox1.Text)'' Writes 10 into the address inside TextBox1 as an integer (warning: the string must start with &H if its an address/hex value)'WriteMemory(Of Integer)("&H" + TextBox1.Text, 10)

You can use this to read values from gtav but you need to know the address, You can find them by using cheat engine, however cheat engine crashes allot with x64 software especially with GTA V

Share this post


Link to post
Share on other sites
Neutrinobeam

Your comments are messed up.

 

Would this (theoretically) allow us to read the globals that show up all over the decompiled scripts? The subs are apparently named by their addresses so I assume the same of the globals.

Share this post


Link to post
Share on other sites
helix snake

Hm ? Sorry, but you're wrong. All entitys have handles. And that pool which I presented as entity pool, isn't actually "entity pool", but as you know it's pool. It has vehicles/peds which are scripts-created(Thanks to MulleDK19).

 

 

EDIT: Actually by the game in native GET_PED_NEARBY_PEDS, that pool called something like

rage::fwScriptGuid::`vftable';

All the best,

Paul.

 

 

If all entities have handles, then the pool doesn't get all entities. Vehicles aren't added to the pool unless you go near them (sometimes this doesn't even work), shoot them, they collide with other vehicles, or you use GET_PED_NEARBY_VEHICLES to get them. Moreover, props are not added to the pool no matter what you do. Right now I don't know how to remedy this.

Edited by helix snake

Share this post


Link to post
Share on other sites
leftas

 

Hm ? Sorry, but you're wrong. All entitys have handles. And that pool which I presented as entity pool, isn't actually "entity pool", but as you know it's pool. It has vehicles/peds which are scripts-created(Thanks to MulleDK19).

 

 

EDIT: Actually by the game in native GET_PED_NEARBY_PEDS, that pool called something like

rage::fwScriptGuid::`vftable';

All the best,

Paul.

 

 

If all entities have handles, then the pool doesn't get all entities. Vehicles aren't added to the pool unless you go near them (sometimes this doesn't even work), shoot them, they collide with other vehicles, or you use GET_PED_NEARBY_VEHICLES to get them. Moreover, props are not added to the pool no matter what you do. Right now I don't know how to remedy this.

 

Yes the pool is the problem - I said that pool isn't entity pool... That pool holds just vehicles and peds, that are scripts related...

 

All the best,

Paul.

Share this post


Link to post
Share on other sites
helix snake

 

 

Hm ? Sorry, but you're wrong. All entitys have handles. And that pool which I presented as entity pool, isn't actually "entity pool", but as you know it's pool. It has vehicles/peds which are scripts-created(Thanks to MulleDK19).

 

 

EDIT: Actually by the game in native GET_PED_NEARBY_PEDS, that pool called something like

rage::fwScriptGuid::`vftable';

All the best,

Paul.

 

 

If all entities have handles, then the pool doesn't get all entities. Vehicles aren't added to the pool unless you go near them (sometimes this doesn't even work), shoot them, they collide with other vehicles, or you use GET_PED_NEARBY_VEHICLES to get them. Moreover, props are not added to the pool no matter what you do. Right now I don't know how to remedy this.

 

Yes the pool is the problem - I said that pool isn't entity pool... That pool holds just vehicles and peds, that are scripts related...

 

All the best,

Paul.

 

Alright, guess I just have to wait on Sergeeeek to find the right pool then.

Share this post


Link to post
Share on other sites
helix snake

While I'm waiting, I've come up with the absolute most pants-on-head retarded stopgap solution that works (but has limited range, can't pick up aerial vehicles, misses cars regularly and halves the framerate)

 

I'm basically making a "radar" by spawning peds in circles around the player (at a changing angle) on the ground, and using GET_PED_NEARBY_PEDS and GET_PED_NEARBY_VEHICLES on them, adding the peds and vehicles to sets, and then immediately deleting the ped. As you can imagine, this solution is TERRIBLE, but it's the best I can come up with right now. Can't wait for the correct entity pool to get discovered so I can say goodbye to this horrible solution.

Share this post


Link to post
Share on other sites
julionib

While I'm waiting, I've come up with the absolute most pants-on-head retarded stopgap solution that works (but has limited range, can't pick up aerial vehicles, misses cars regularly and halves the framerate)

 

I'm basically making a "radar" by spawning peds in circles around the player (at a changing angle) on the ground, and using GET_PED_NEARBY_PEDS and GET_PED_NEARBY_VEHICLES on them, adding the peds and vehicles to sets, and then immediately deleting the ped. As you can imagine, this solution is TERRIBLE, but it's the best I can come up with right now. Can't wait for the correct entity pool to get discovered so I can say goodbye to this horrible solution.

lol, i did this, with rats attached to player arm ^^

Share this post


Link to post
Share on other sites
kinglee

@julioNIB You are a réally good modder... All your scripts Add gréât thing to do in GTA V...

So i remembrer 10 years ago ;-) you want to make a car smasher like in GTA III in GTA IV... But you dont found model to do it... So i hope you can use GTA V model to make it possible in GTA V... Love the idea ;-)

I répeat, your are a gréât modder who know make a lot of thing...

Great work again...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • 2 Users Currently Viewing
    0 members, 0 Anonymous, 2 Guests

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.