|
 |
|
|
|
|
|
GTA Modification Forums
[REL|SRC/BIN|IV] StructEdit Edit handling.dat/weaponinfo.xml ingame
 |
|
 |
| |
thaCURSEDpie  |
|
GTA:IV scripter

Group: Members
Joined: Jul 1, 2007

|
IntroSick and tired of having to restart IV everytime you are adjusting your vehicle's parameters? Want to tweak them just that tad more, but hate the time it takes you? Worry no more! This little mod allows the user to change a lot of the values listed in the weaponinfo.xml and handling.dat files in-game. This means no-more restarting the game when developing new weapons or vehicles! Aside of that, the mod also allows the user to create documentation for other structures, and edit the documentation for the existing structures (CWeaponInfo and CVehicleInfo). This can be useful if the offsets change in later patches, or if new parameters are found.  Changing values is as easy as selecting the right parameter, entering the new value, and pressing the button  . Youtube vid: http://www.youtube.com/watch?v=NZ-7l4EOBksDownloadhere(see also: http://github.com/thacursedpie/structedit)Current version: Beta v0.11RequirementsYou will need an ASI-loader ( http://www.gtaforums.com/index.php?showtopic=380830 ) And HazardX's .Net scripthook ( http://www.gtaforums.com/index.php?showtopic=392325 ) InstallationExtract the "scripts" folder to your main GTA:IV directory. That's it. UsageUse the "si_gui" console command to activate the Graphical User Interface (GUI). (alternatively: "si-gui") Use "si_regen" to rescan the structure information files and use updated offsets / descriptions. (alternatively: "si-regen") FAQ:Will this work with my modded handling.dat / weaponinfo.xml???!!!!11?1First of all: why don't you just give it a shot? Second of all: Yes it will. Technical background: StructEdit doesn't give a crap about the handling.dat / weaponinfo.xml. It does not read these files. This is also the reason why StructEdit is able to change the values on-the-fly: StructEdit reads the values directly from IV's memory. (If you're interested how, have a look at the source. Also do some searches for 'pointers', 'offsets', 'memory addresses') Will this work with 1040 / EFLC / <any other non-1070 version>NO. The reason is very simple. I only have 1070. For StructEdit to work it needs to have the correct offsets. Because I only have 1070, I'm not able to retrieve the offsets for any other game version. You may do so yourself, or hope other people do it. CVehicleInfo offset for 1040: 0x117ABB0 (thanks Jitsuin & lms) (Update 'CVehicleInfo 0x110 0x11E3BF0 115' in CVehicleInfo.sif. RTFM if you don't know how  ) StructEdit doesn't work! The GUI is empty / filled with 0's / filled with nonsense!You are not using 1070 and have not updated the offsets. Update to 1070. Custom structures / offsetsUsing a different version of IV? Working with EFLC? Want to edit other structures in-memory? You can create your own information files  . Check out the "filetype description.txt" file, and the example files in the .\scripts\structedit folder. This post has been edited by thaCURSEDpie on Monday, Mar 12 2012, 15:13
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
thaCURSEDpie  |
|
GTA:IV scripter

Group: Members
Joined: Jul 1, 2007

|
nrv74: Yeah, sadly I don't own the EFLC extension pack, so I can't help you there. The offsets are not correct for EFLC, so the GUI won't give you any correct values. Good to hear you got the GUI working though! I'd guess little has changed though, the overall structure should be the same, you'd only need to to replace the offsets in the .sif's. Finding these offsets is not *that* hard, but it's a bitch to explain. I may one day make a tutorial or something. If you want to have a go at it yourself, read up on the following things: "CheatEngine" (tons of tutorials) "pointers" (look up "C pointers" or something like that) "assembly" (note: x86 assembly!) "memory addresses" (should probably be covered under "assembly" though) So... that will take some time. You could also save a lot of time by buying me EFLC  (j/k)
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
thaCURSEDpie  |
|
GTA:IV scripter

Group: Members
Joined: Jul 1, 2007

|
nrv74: Yep, not all parameters have been documented, so I can't support them :S. See it this way: StructEdit needs to be told where the stuff is you want to edit. Let's say the parameter you want to edit is a treasure, buried deep within the GTAIV process. All the other parameters are treasures too. Now, if you want to access a treasure through StructEdit, you need to give StructEdit a map, to tell it where to look. So for example, we give it a map (.sif file) which says: "center of mass is stored *here*, drive force is stored *here*". StructEdit takes this and is now able to edit those values. If you say to StructEdit: "Change the center of mass to X!", StructEdit says: "okay boss!", it looks up the location of the 'treasure' on the 'map', and does as you wish. Now if you want to change the topspeed, StructEdit says: "Well, I'm sorry, but I don't know where the topspeed is located!". Imagine searching for a treasure, but without the treasure map! And in this case it gets even harder, because you don't know what the treasure looks like! So you'll never be able to find it. So what we (modders) do, we search through the GTAIV process, and locate the treasures. We make a nice neat list. Some of us are even kind enough to post the lists online, so others can benefit  . Have a look at the CVehicleInfo documentation for example: http://www.gtamodding.com/index.php?title=...13#CVehicleInfo . This is what the list of treasure positions (memory addresses / offsets) looks like. As you can see, it's not complete. We locate these treasures using special software, such as CheatEngine. In short, this works like this: you tell CheatEngine how the treasure looks ("It's a big box filled with money!"), then CheatEngine starts digging around through the GTAIV process. Luckily, CheatEngine digs pretty fast, so it'll come back and say: "Hey boss! I found a couple of treasures which look like that! They are located *here*, *here* and *here*". That way you are able to locate 'em and put them on your treasure chart ^^. If you have a bit of knowledge, you can also do some manual digging. Let's say that when you know where a certain treasure is located, you can use your programming / reversing knowledge to locate treasures buried near the first one. (this is of course way faster than letting CE shovel through the entire process every time) Your best bet is that either someone comes along and updates the documentation (happens  . eg. I added the CWeaponInfo doc, Jenksta improved upon it greatly), or you do it yourself. At the moment I simply don't have the time to document the parameters, sorry. Hopefully though this post was kind of educational  .
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:
Pages:
(3) [1] 2 3
Track this topic
Receive email notification when a reply has been made to this topic and you are not active on the board.
Subscribe to this forum
Receive email notification when a new topic is posted in this forum and you are not active on the board.
Download / Print this Topic
Download this topic in different formats or view a printer friendly version.
| |
 |
|
 |
|
|
|
|