Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 33 34 [35] 36 37 ... 87

Author Topic: Dwarf Therapist v42.1.5 | DF 50.12  (Read 399191 times)

Clément

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #510 on: July 13, 2018, 05:32:25 am »

Does it work if you disable automatic updates?
Logged

Rowanas

  • Bay Watcher
  • I must be going senile.
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #511 on: July 13, 2018, 05:34:39 am »

Does it work if you disable automatic updates?

Well that's bloody weird. I did a search and found someone else who had this problem, but update disabling wasn't mentioned there. Cheers.

EDIT: Appears I'm getting the phantom dwarf thing though. Atir the teenaged dwarf is gathering plants, apparently. Is he buggery! Bloke doesn't even exist.
« Last Edit: July 13, 2018, 05:37:36 am by Rowanas »
Logged
I agree with Urist. Steampunk is like Darth Vader winning Holland's Next Top Model. It would be awesome but not something I'd like in this game.
Unfortunately dying involves the amputation of the entire body from the dwarf.

HellTiger

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #512 on: July 13, 2018, 07:35:59 am »

additional 6 extra dorfs i got listed while embarking are now part of my fort, with some migration wave they appeared.
Logged

Clément

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #513 on: July 13, 2018, 07:38:33 am »

I cannot reproduce the extra dwarves bug.

Can someone with this bug and dfhack, run this script (write the script in hack/scripts/dt-diag.lua and run "dt-diag" in dfhack console)
Code: [Select]
function bf2hex(bf)
local num = 0
for i,f in ipairs(bf) do
if f then
num = num | (1 << i)
end
end
return string.format('%08x', num)
end
for _,u in ipairs(df.global.world.units.all) do
print(u.id, u.civ_id, u.race,
      bf2hex(u.flags1)..' '..bf2hex(u.flags2)..' '..bf2hex(u.flags3)..' '..bf2hex(u.flags4),
      dfhack.df2console(dfhack.TranslateName(dfhack.units.getVisibleName(u), false)))
end
Copy the result and tell me which names are the "phantom dwarves".

edit: added dfhack.df2console
« Last Edit: July 13, 2018, 09:57:39 am by Clément »
Logged

taleden

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #514 on: July 13, 2018, 08:03:11 am »

additional 6 extra dorfs i got listed while embarking are now part of my fort, with some migration wave they appeared.

That seems like a big clue -- if DF generates migrant dwarves and then simulates the time they spend traveling, they would exist somewhere in memory that DT is apparently seeing even before they actually arrive at the fort location as migrants.
Logged

Clément

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #515 on: July 13, 2018, 08:43:49 am »

There is an exception that show incoming migrants so that you can see all the migration wave at once as soon as you have the "some migrants have arrived" message.

I have just got my first migration wave in my test fort and it worked as expected: not extra dwarves before the message, and after the message DT show 2 more dwarves, and the game 1 more since the second has not entered the map yet.

Code: [Select]
114     11      572     80004001 12200070 00000106 00000000     Sodel Kibgídthur
115     11      572     80004001 12200070 00000106 00000000     Bomrek Menggusgash
116     11      572     80004001 12200070 00000106 00000000     Fath Oshuramost
117     11      572     80004001 12200070 00000106 00000000     Feb Rushrulkulet
118     11      572     80004001 12200070 00000106 00000000     Sarvesh Bufutuzol
119     11      572     80004001 12200070 00000106 00000000     Doren Arbanònul
120     11      572     80004001 12200070 00000106 00000000     Atîs Ilidbomrek
121     11      170     04004001 12200030 00000106 00000008
122     11      170     04004001 12200030 00000106 00000008
123     11      171     04004001 12200030 00000106 00000008
124     11      171     04004001 12200030 00000106 00000008
125     11      185     04004001 12200030 00800106 00000008
126     11      173     04004001 12200030 00000106 00000008
127     10      622     00004001 12280030 00000106 00000000
128     10      622     00004001 12280030 00000106 00000000
129     10      622     0000c001 12280030 00000106 00000000
130     10      622     00004001 12280030 00000106 00000000
131     10      622     00004001 12280030 00000106 00000000
132     10      622     00004001 12280030 00000106 00000000
133     10      622     00004001 12280030 00000106 00000000
134     10      622     00004001 12280030 00000106 00000000
171     -1      411     00804001 40200031 00000106 00000008
172     -1      411     00804001 40200031 00000106 00000008
173     -1      411     00804001 40200031 00000106 00000008
174     -1      411     00804001 40200031 00000106 00000008
200     -1      181     00004001 d2200030 00800106 00000008
221     -1      606     00004001 52200030 00000106 0000000c
222     -1      426     00004001 52200030 00000106 0000000c
223     -1      425     00004001 52200030 00000106 0000000c
224     -1      425     00004001 52200030 00000106 0000000c
225     -1      799     00004001 40200030 00000006 0000000c
226     -1      799     00004001 40200030 00000006 0000000c
227     -1      799     00004001 40200030 00000006 0000000c
228     -1      799     00004001 40200030 00000006 0000000c
229     -1      799     00004001 40200030 00000006 0000000c
230     -1      605     00004001 53200030 00000106 0000000c
231     -1      217     00004001 d3200030 00000106 00000008
232     -1      217     00004001 d3200030 00000106 00000008
233     -1      426     00004001 53200030 00000107 0000000c
234     11      572     80004001 12200070 00000107 00000000     Uvash Datanathel
235     11      572     80000402 12000070 00000003 00000000     Dumed Idenlibash
236     11      180     84000402 13200070 00000003 00000008     Dodók Eribïdath
237     11      184     84000402 13200070 00000003 00000008     Kadôl Emendakost
7 starting dwarves at the top, 2 dwarf migrants and 2 pets at the bottom, only the first migrant is active.

In DT log, migrants appear like this:
Code: [Select]
2018-juil.-13 15:36:14.079 INFO core "FOUND Dwarf name:Uvash Datanathel id:234 reason:migrant" [E:\projects\Dwarf-Therapist\src\dwarf.cpp:384] (Dwarf::set_validation)
2018-juil.-13 15:36:14.082 INFO core "FOUND Dwarf (0x11d45f10) name:Uvash Datanathel id:234 histfig_id:149" [E:\projects\Dwarf-Therapist\src\dwarf.cpp:309] (Dwarf::read_data)
2018-juil.-13 15:36:14.082 INFO core "FOUND Dwarf name:Dumed Idenlibash id:235 reason:migrant" [E:\projects\Dwarf-Therapist\src\dwarf.cpp:384] (Dwarf::set_validation)
2018-juil.-13 15:36:14.085 INFO core "FOUND Dwarf (0x11d47320) name:Dumed Idenlibash id:235 histfig_id:150" [E:\projects\Dwarf-Therapist\src\dwarf.cpp:309] (Dwarf::read_data)
If the "reason:migrant" is not here, it means the migrant exception is not to blame.
Logged

lethosor

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #516 on: July 13, 2018, 08:54:23 am »

Clément: you should use dfhack.df2console around dfhack.TranslateName; otherwise, you'll get garbled output on non-Windows.

additional 6 extra dorfs i got listed while embarking are now part of my fort, with some migration wave they appeared.
Again, is it possible that these are off-site dwarves? Have you conquered any sites? Have any outside sites joined yours in any way?
Also, run Clément's script and see what you get.
« Last Edit: July 13, 2018, 08:56:09 am by lethosor »
Logged
DFHack - Dwarf Manipulator (Lua) - DF Wiki talk

There was a typo in the siegers' campfire code. When the fires went out, so did the game.

Saiko Kila

  • Bay Watcher
  • Dwarven alchemist
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #517 on: July 13, 2018, 12:07:15 pm »

Out of curiosity I've checked if I have the same issue - and there it is. I have marked the real dwarves red, and the dwarves which show only in the DT are marked yellow. I use release 40.1.1 win x64.

What's clear is that all dwarves which show have my own Civ ID, unlike all the others.

Spoiler (click to show/hide)
Logged

Clément

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #518 on: July 13, 2018, 02:11:13 pm »

DT shows only dwarves from your civ. The other dwarves (and other creatures) from other civs have similar flags to the yellow dwarves. I guess you don't see them anywhere either despite not having the inactive flags.

What is the "slight variation" between important_historical_figure from unit_flags1 and unit_flags2? Mine have both, your red dwarves have none, your yellow (and other) dwarves have only the unit_flags2 one.

There is also an extra flag in unit_flags4 that is not listed in dfhack's df-structures. But it is not the one that will help discriminate the yellow dwarves.

Edit: I tested with a longer history and I have something similar. The extra units are not of my civ so they don't show in DT, but they still have the same flags as Saiko Kila. There are only in "all" and not in "active", so reading "active" could solve the issue in fortress mode but not in embark ("active" is empty and starting dwarves are in "all" mixed with the other units).

Unit list from the embark screen:
Code: [Select]
1555    69      574     00000000 12000040 00000004 00000000     Elana Rockclutch
1573    69      574     00000000 12000040 00000004 00000000     Athe Roarice
2300    67      572     00000000 12000040 00000004 00000000     Shem Handlerelease
5919    67      572     00000000 12000040 00000004 00000000     Medtob Tourhood
20643   77      572     00000000 13200034 00000003 00000000     äs Tomecloister
20644   77      572     00000000 13200034 00000003 00000000     Zasit Swordlulled
20645   77      572     00000000 13200034 00000003 00000000     Obok Swordcontrols
20646   77      572     00000000 13200034 00000003 00000000     Reg Sabregift
20647   77      572     00000000 13200034 00000003 00000000     Inod Manytrade
20648   77      572     00000000 13200034 00000003 00000000     îton Lengthsabres
20649   77      572     00000000 13200034 00000003 00000000     Ilral Gemhail
Elana and Athe are a married couple of elven scholar (naturalist and sage), Shem and Medtob are a married couple of dwarves (bard and animal trainer). The seven others are my starting dwarves. Could they be traveling though my fortress site during the embark?

Checking "Don't Display Visitors/Guests" may help in fortress mode. But it cannot work in embark because the fortress does not exists yet.
« Last Edit: July 13, 2018, 03:35:03 pm by Clément »
Logged

Clément

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #519 on: July 13, 2018, 04:43:32 pm »

I made a test build for win64 that uses the active units instead of all, it may fix this issue in fortress mode (not during embark). The branch is here if you want to compile on other platforms.
Logged

Saiko Kila

  • Bay Watcher
  • Dwarven alchemist
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #520 on: July 13, 2018, 06:24:35 pm »

DT shows only dwarves from your civ. The other dwarves (and other creatures) from other civs have similar flags to the yellow dwarves. I guess you don't see them anywhere either despite not having the inactive flags.

What is the "slight variation" between important_historical_figure from unit_flags1 and unit_flags2? Mine have both, your red dwarves have none, your yellow (and other) dwarves have only the unit_flags2 one.

There is also an extra flag in unit_flags4 that is not listed in dfhack's df-structures. But it is not the one that will help discriminate the yellow dwarves.

Edit: I tested with a longer history and I have something similar. The extra units are not of my civ so they don't show in DT, but they still have the same flags as Saiko Kila. There are only in "all" and not in "active", so reading "active" could solve the issue in fortress mode but not in embark ("active" is empty and starting dwarves are in "all" mixed with the other units).

Unit list from the embark screen:
Code: [Select]
1555    69      574     00000000 12000040 00000004 00000000     Elana Rockclutch
1573    69      574     00000000 12000040 00000004 00000000     Athe Roarice
2300    67      572     00000000 12000040 00000004 00000000     Shem Handlerelease
5919    67      572     00000000 12000040 00000004 00000000     Medtob Tourhood
20643   77      572     00000000 13200034 00000003 00000000     äs Tomecloister
20644   77      572     00000000 13200034 00000003 00000000     Zasit Swordlulled
20645   77      572     00000000 13200034 00000003 00000000     Obok Swordcontrols
20646   77      572     00000000 13200034 00000003 00000000     Reg Sabregift
20647   77      572     00000000 13200034 00000003 00000000     Inod Manytrade
20648   77      572     00000000 13200034 00000003 00000000     îton Lengthsabres
20649   77      572     00000000 13200034 00000003 00000000     Ilral Gemhail
Elana and Athe are a married couple of elven scholar (naturalist and sage), Shem and Medtob are a married couple of dwarves (bard and animal trainer). The seven others are my starting dwarves. Could they be traveling though my fortress site during the embark?

Checking "Don't Display Visitors/Guests" may help in fortress mode. But it cannot work in embark because the fortress does not exists yet.

I am a minimalist, so I would go for the one flag that sets them apart. For example flags2.no_notify, which is set only for the proper dwarves (red one in my example), and apparently in your case too. Alternatively, go for non-historical figures. Only historical figures and seven created dwarves (who are destined to be historical, but aren't quite there yet during embark) are visible in the lists before site is loaded.

The bad dwarves are took from the world gen and are present from the beginning of map selection. When you run Dwarf Therapist then, then only bad (historical) dwarves of your civ will be shown. The seven proper dwarves are created only after you press embark and can choose "Play now" or "Prepare carefully". They are added at the end of list. They have different set of flags, but this set is valid only for the duration of embark preparation (and it is possible than some of the flags have other meaning than during proper play, or are set to default, temporary values). They are heavily modified after embark, for example historical_figure flags are both set.

As for active dwarves the map must be loaded, yes. All critters coming to the map are moved to the active list but remain (or have set) flags1.inactive (which used to be called flags1.dead) for a short while  (or a much longer while, if the site they want to come in is occupied, I use this in my certain script to identify stuck migrants and coming invaders), and critters who left the map are on active list for a very short period, being flags1.inactive, before being purged. So I would go for the flags, but care about them only if the active site is not loaded yet (implying DR is used during embark stage). I didn't even know that Dwarf Therapist can be used during embark...
Logged

Clément

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #521 on: July 14, 2018, 04:32:59 am »

For embark, I think I could try to use the unit list from the viewscreen instead of the global one.

During reclaim embark screen, "active" is not empty, I think that is why it was checked for dwarves with the same civ_id. If I use the viewscreen unit list, I should no longer need this special case.
Logged

Saiko Kila

  • Bay Watcher
  • Dwarven alchemist
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #522 on: July 14, 2018, 06:20:14 am »

I think it would be a good choice. I can't test it today, but I believe that viewscreen info is available only during "Prepare carefully" step, so that would prevent one small functionality available now - to change assignments before entering Prepare Carefully (when you are on screen choosing to "Embark now" or "Prepare carefully"). But that is OK, people caring about things changed by DT also should use Prepare Carefully.
Logged

Clément

  • Bay Watcher
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #523 on: July 14, 2018, 07:39:56 am »

I created the pull request for this change. I may upload a build later for Windows users to test.

The viewscreen with "play now" and "prepare carefully" choices is the same viewscreen and already has the unit list, so it does not change the availability of DT. I only tested embark and fortress mode. Am I forgetting a use case where DT should show a list of units?

Edit: With this changes and the future needs stuff, I think I may remove the memory layouts for older 0.42.xx which are missing offsets and addresses, only keeping 0.42.06. 0.42.06 was the only version to have a proper dfhack release and I have doubts about the quality of older versions memory layouts anyway.

Edit2: test build for win64 Make sure the automatic updates are disabled before connecting to the game. This version needs new offsets that will be overwritten by the updater. If you accidentally updated the memory layout, you can delete it in the user data folder ("File" menu then "Open data directory", if you don't know where it is).
« Last Edit: July 14, 2018, 09:57:25 am by Clément »
Logged

muzzlehead

  • Escaped Lunatic
    • View Profile
Re: Dwarf Therapist v40.1.1 | DF 44.12
« Reply #524 on: July 14, 2018, 01:47:25 pm »

I have run DT v40.1.1.2   in Win 10 ... no problems with FAKE Dwarfs invading DT ;)  in Fortress Mode DF 0.44.12 with DF Hack 0.44.12-r1 through first migration

Thanks
Logged
Pages: 1 ... 33 34 [35] 36 37 ... 87