What Mods Should I Play?
#21
Posted 09 October 2009 - 06:17 AM
mm75
Tired of the same boring spawned creatures u face in BG? Try BGSpawn
#22
Posted 09 October 2009 - 07:24 AM
You can do it with WeiDU. E.g:Sounds good. BTW do you (or anybody else) know how to export a list of all party items from a savegame?
BACKUP "save_extractor/backup" AUTHOR Wisp BEGIN "Extract a list of items from a saved game" NO_LOG_RECORD <<<<<<<< ...save_extractor/fl-inlined/fl#se-list.txt >>>>>>>> PRINT "Please enter the name of the saved game you wish to process (e.g. 000000000-Auto-Save) and press enter" ACTION_READLN save //OUTER_SPRINT save 000000003-Auto-Save-TOB OUTER_PATCH 12 BEGIN WRITE_BYTE 0 0x0d WRITE_BYTE 1 0x0a READ_ASCII 0 wnl (2) END ACTION_IF NOT FILE_EXISTS "save/%save%/baldur.gam" BEGIN FAIL "The specified saved game could not be located. Aborting." END ELSE BEGIN COPY "...save_extractor/fl-inlined/fl#se-list.txt" override COPY "save/%save%/baldur.gam" "save/%save%/baldur.gam" READ_LONG 0x20 mem_off READ_LONG 0x24 num_mem FOR (i=0;i<num_mem;i+=1) BEGIN INNER_ACTION BEGIN APPEND fl#se-list.txt "Party member %i%:" END READ_LONG mem_off + 0x160*i + 0x4 cre_off READ_LONG cre_off + 0x2bc itm_off READ_LONG cre_off + 0x2c0 num_itm FOR (j=0;j<num_itm;j+=1) BEGIN READ_ASCII cre_off + itm_off + 0x14*j item PATCH_IF FILE_EXISTS_IN_GAME "%item%.itm" BEGIN INNER_ACTION BEGIN COPY_EXISTING "%item%.itm" override READ_STRREF 0xc itm_name BUT_ONLY END INNER_ACTION BEGIN APPEND fl#se-list.txt "%item% %itm_name%" END PATCH_IF FILE_EXISTS_IN_GAME "%item%.sto" BEGIN SPRINT $bag_list("%item%") "%itm_name%" END END END END BUT_ONLY ACTION_PHP_EACH bag_list AS sto => name BEGIN COPY_EXISTING "%sto%.sto" override INNER_ACTION BEGIN APPEND fl#se-list.txt "Container %sto% (%name%) contains:" END READ_LONG 0x34 sale_off READ_LONG 0x38 num_sale FOR (i=0;i<num_sale;i+=1) BEGIN READ_ASCII sale_off + 0x1c*i item PATCH_IF FILE_EXISTS_IN_GAME "%item%.itm" BEGIN INNER_ACTION BEGIN COPY_EXISTING "%item%.itm" override READ_STRREF 0xc itm_name BUT_ONLY END INNER_ACTION BEGIN APPEND fl#se-list.txt "%item% %itm_name%" END END END BUT_ONLY END COPY_EXISTING fl#se-list.txt override REPLACE_TEXTUALLY CASE_SENSITIVE EVALUATE_REGEXP "Party member \([0-5]\):" "%wnl%Party member \1:%wnl%" REPLACE_TEXTUALLY CASE_SENSITIVE EVALUATE_REGEXP "Container \(.*\) contains:" "%wnl%%wnl%Container \1 contains:%wnl%" BUT_ONLY PRINT "The output can be found in override/fl#se-list.txt" ENDSave the code into a text file called save_extractor.tp2 and rename a copy of weidu.exe into setup-save_extractor.exe.
It should give you a list of all items in possession of the party, as well as any items in containers in possession of the party. I don't know if it accepts saved game names with spaces in them.
Edited by Wisp, 09 October 2009 - 07:32 AM.
#23
Posted 09 October 2009 - 07:58 AM
Save the code into a text file called save_extractor.tp2 and rename a copy of weidu.exe into setup-save_extractor.exe.
It should give you a list of all items in possession of the party, as well as any items in containers in possession of the party. I don't know if it accepts saved game names with spaces in them.
Great Wisp! This is exactly what I was looking for.
Didn't work for the containers though...
It listed all my containers but not their content.
#24
Posted 09 October 2009 - 09:40 AM
Someone might want to split this topic into something else (doesn't really have to do with "what mods to play" anymore, heh).
Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle
#25
Posted 09 October 2009 - 09:57 AM
Huh. It worked on bag19a when I tested it (premade ToB thief in Auto-Save in vanilla ToB).Didn't work for the containers though...
It listed all my containers but not their content.
Could you replace the relevant block of code with this
ACTION_PHP_EACH bag_list AS sto => name BEGIN PRINT "Copying %sto%.sto" COPY_EXISTING "%sto%.sto" override INNER_ACTION BEGIN APPEND fl#se-list.txt "Container %sto% (%name%) contains:" END READ_LONG 0x34 sale_off READ_LONG 0x38 num_sale PATCH_PRINT "sale_off=%sale_off%, num_sale=%num_sale%" FOR (i=0;i<num_sale;i+=1) BEGIN READ_ASCII sale_off + 0x1c*i item PATCH_PRINT "i=%i%, item is %item%" PATCH_IF FILE_EXISTS_IN_GAME "%item%.itm" BEGIN PATCH_PRINT "%item% exists" INNER_ACTION BEGIN COPY_EXISTING "%item%.itm" override READ_STRREF 0xc itm_name BUT_ONLY END INNER_ACTION BEGIN APPEND fl#se-list.txt "%item% %itm_name%" END END END BUT_ONLY ENDand then run the installer again and upload the debug file?
(Though I agree with Miloch.)
#26
Posted 09 October 2009 - 10:09 AM
Actually, you could extract both the item statistics and description from an item listing utility (see for example the CRE Lister in my signature). You'd just have to read the right fields or parse the .tra files. Hurray for automation!Obviously, but every saved type counts and such a list would be a starting point in narrowing the job down.Actually no. Cause you'll have to be able to re-conform that the item in question has the abilities mentioned in the description. And you can do that only by looking it with an editor. Hurray for manual work.
Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle
#27
Posted 09 October 2009 - 11:18 AM
Huh. It worked on bag19a when I tested it (premade ToB thief in Auto-Save in vanilla ToB).
Could you replace the relevant block of code with this and then run the installer again and upload the debug file?
Tried it, same result. The end of fl#se-list.txt looks like this:
Container SWBAG02C (Green Gem Bag) contains: Container T-BHLD01 (Green Bag of Holding) contains: Container T-BPTN01 (Copper Potion Case) contains: Container BGBAG05 (Purple Potion Case) contains: Container THBAG05 (Turquoise Bag of Holding) contains: Container T-BAMM02 (Red-Black Ammo Belt) contains:Container SWBAG03B (Bronze Scroll Case) contains:Container SWBAG03 (Green Scroll Case) contains:Container SWBAG02B (Black-Green Gem Bag) contains:
I have attached the debug file but couldn't see anything conspicuous.
Attached Files
#28
Posted 09 October 2009 - 11:56 AM
Unfortunately I don't know how to decompress .sav files with WeiDU (assuming it's even possible), so that's not something I can help you with.
The current code will only list items that are in the container by default, not the ones added by the player (and it will list items that have been removed by the player).
Edit: I'll toy with it a bit. It should be possible to do this.
Edited by Wisp, 09 October 2009 - 12:17 PM.
#29
Posted 09 October 2009 - 11:58 AM
I wouldn't be so certain, since one can encode an item just as fine as to copy it over.The easiest way to do this would be to extract all the .itm files and their statistics directly from the mod folder rather than messing with saved games.
Yep, my hex editor shows complete mess within .sav files.Unfortunately I don't know how to decompress .sav files with WeiDU (assuming it's even possible), so that's not something I can help you with.
Edited by GeN1e, 09 October 2009 - 12:05 PM.
Retired from modding.
#30
Posted 09 October 2009 - 12:30 PM
The IESDP entry on .sav files is both informative and mystifying. But at the very least, I think it shows that it is possible to get the information you want with WeiDU.Yep, my hex editor shows complete mess within .sav files.Unfortunately I don't know how to decompress .sav files with WeiDU (assuming it's even possible), so that's not something I can help you with.
#31
Posted 09 October 2009 - 01:49 PM
BACKUP "save_extractor/backup" AUTHOR Wisp BEGIN "Extract a list of items from a saved game" NO_LOG_RECORD <<<<<<<< ...save_extractor/fl-inlined/fl#se-list.txt >>>>>>>> OUTER_PATCH 12 BEGIN WRITE_BYTE 0 0x0d WRITE_BYTE 1 0x0a READ_ASCII 0 wnl (2) END PRINT "Please enter the name of the saved game you wish to process (e.g. 000000000-Auto-Save) and press enter" ACTION_READLN save ACTION_IF NOT FILE_EXISTS "save/%save%/baldur.gam" BEGIN FAIL "The specified saved game could not be located. Aborting." END ELSE BEGIN COPY "...save_extractor/fl-inlined/fl#se-list.txt" override COPY "save/%save%/baldur.gam" "save/%save%/baldur.gam" READ_LONG 0x20 mem_off READ_LONG 0x24 num_mem FOR (i=0;i<num_mem;i+=1) BEGIN INNER_ACTION BEGIN APPEND fl#se-list.txt "Party member %i%:" END READ_LONG mem_off + 0x160*i + 0x4 cre_off READ_LONG cre_off + 0x2bc itm_off READ_LONG cre_off + 0x2c0 num_itm FOR (j=0;j<num_itm;j+=1) BEGIN READ_ASCII cre_off + itm_off + 0x14*j item PATCH_IF FILE_EXISTS_IN_GAME "%item%.itm" BEGIN INNER_ACTION BEGIN COPY_EXISTING "%item%.itm" override READ_STRREF 0xc itm_name BUT_ONLY APPEND fl#se-list.txt "%item% %itm_name%" END PATCH_IF FILE_EXISTS_IN_GAME "%item%.sto" BEGIN SPRINT $bag_list("%item%.STO") "%itm_name%" END END END END BUT_ONLY COPY "save/%save%/baldur.sav" "save/%save%/baldur.sav" FOR (current=0x8;current<BUFFER_LENGTH;current+=name_size+dec_size+0xc) BEGIN READ_LONG current name_size READ_ASCII current + 0x4 filename (name_size) NULL READ_LONG current + 0x4 + name_size unc_size READ_LONG current + 0x8 + name_size dec_size PATCH_IF VARIABLE_IS_SET $bag_list("%filename%") BEGIN DECOMPRESS_INTO_VAR current + name_size + 0xc dec_size unc_size file SPRINT bag_name $bag_list("%filename%") INNER_ACTION BEGIN APPEND fl#se-list.txt "Container %filename% (%bag_name%) contains:" END INNER_PATCH "%file%" BEGIN READ_LONG 0x34 sale_off READ_LONG 0x38 num_sale FOR (i=0;i<num_sale;i+=1) BEGIN READ_ASCII sale_off + 0x1c*i item INNER_ACTION BEGIN COPY_EXISTING "%item%.itm" override READ_STRREF 0xc itm_name BUT_ONLY APPEND fl#se-list.txt "%item% %itm_name%" END END END END END BUT_ONLY COPY_EXISTING fl#se-list.txt override REPLACE_TEXTUALLY CASE_SENSITIVE EVALUATE_REGEXP "Party member \([0-5]\):" "%wnl%Party member \1:" REPLACE_TEXTUALLY CASE_SENSITIVE EVALUATE_REGEXP "Container \(.*\) contains:" "%wnl%%wnl%Container \1 contains:" BUT_ONLY PRINT "The output can be found in override/fl#se-list.txt" END
Edit: For posterity with slightly more polished code.
Edited by Wisp, 10 October 2009 - 04:20 AM.
#32
Posted 09 October 2009 - 05:35 PM
WorksDECOMPRESS_INTO_VAR
Retired from modding.
#33
Posted 10 October 2009 - 12:35 AM
WorksDECOMPRESS_INTO_VAR
Here as well. Great Work Wisp!
#34
Posted 10 October 2009 - 04:22 AM
#35
Posted 12 October 2009 - 12:18 AM
I would say, DH ones are really a mess ... so i will skip in my next install and moreover, my laptop crashed this night after i tried a patching for Video Card (still using windows 2k) and i lost all my work. DAMNED!!!
Anyway, really (apart DH which is a pain) DSotSC items + The Vault Items should be no more than 50-60 to be changed, so not that huge work,
mm75
Tired of the same boring spawned creatures u face in BG? Try BGSpawn
#36
Posted 12 October 2009 - 12:35 AM
I would say, DH ones are really a mess ... so i will skip in my next install and moreover, my laptop crashed this night after i tried a patching for Video Card (still using windows 2k) and i lost all my work. DAMNED!!!
Anyway, really (apart DH which is a pain) DSotSC items + The Vault Items should be no more than 50-60 to be changed, so not that huge work,
So all that work for nothing?
I was kind of hoping that it could be time for Erebusant (whom nobody has seen for a month) to update the mods, if it's bugs you have been squashing.
Edited by OneEyedPhoenix, 12 October 2009 - 12:37 AM.
#37
Posted 12 October 2009 - 02:05 AM
I would say, DH ones are really a mess ... so i will skip in my next install and moreover, my laptop crashed this night after i tried a patching for Video Card (still using windows 2k) and i lost all my work. DAMNED!!!
Anyway, really (apart DH which is a pain) DSotSC items + The Vault Items should be no more than 50-60 to be changed, so not that huge work,
So all that work for nothing?
I was kind of hoping that it could be time for Erebusant (whom nobody has seen for a month) to update the mods, if it's bugs you have been squashing.
Any work is not for nothing (but how a pain!) ... anyway for DSotSC items, just very few are bugged, i simply toned down everything and they are really not that many.
mm75
Tired of the same boring spawned creatures u face in BG? Try BGSpawn
#38
Posted 12 October 2009 - 03:40 AM
Any work is not for nothing (but how a pain!) ... anyway for DSotSC items, just very few are bugged, i simply toned down everything and they are really not that many.
Maybe you could upload you modified items (if you do it again that is) so I could check them out?
Haven't seen any bugged DSotSC items so far myself, but Vault items are another story...
#39
Posted 12 October 2009 - 04:58 AM
Any work is not for nothing (but how a pain!) ... anyway for DSotSC items, just very few are bugged, i simply toned down everything and they are really not that many.
Maybe you could upload you modified items (if you do it again that is) so I could check them out?
Haven't seen any bugged DSotSC items so far myself, but Vault items are another story...
I will, not sure when it could happen now but i will,
mm75
Tired of the same boring spawned creatures u face in BG? Try BGSpawn