Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2]

Author Topic: They Fly Now!?  (Read 2498 times)

PatrikLundell

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #15 on: March 29, 2020, 06:14:07 am »

If there are any invisible mounts, they'll be "visible" in the units list with DFHack from an uploaded save. Regardless, it's odd.
They won't if the stealth weirdness is carrying over to the ambush mechanic in which units not spotted aren't listed (or visible on the map). And elves are ambushers.

--edit
Ah, sorry, in Dfhack, yeah maybe. Does that list all the units in an ambush?
The units.all vector contains all units that are active as well as inbound, dead, and marked for offloading. Although I've never actually seen it myself (very rarely have ambushers: an occasional goblin, snatcher or necro, and I haven't had any reason to look at the situation with DFHack in those cases), I have no reason to assume stealthed units wouldn't be in the vector (or, in fact, the units.active one), with the appropriate flags set. I probably should have used the word "vector" to better distinguish it from the in-game lists.
Logged

BudTomazi

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #16 on: March 30, 2020, 07:15:37 pm »

Here is the link to the save of my region where elves appear to be flying. 
http://dffd.bay12games.com/file.php?id=14977

Just curious if I missed something obvious or if this is actually a bug. 
Logged

Shonai_Dweller

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #17 on: March 30, 2020, 09:19:04 pm »

If there are any invisible mounts, they'll be "visible" in the units list with DFHack from an uploaded save. Regardless, it's odd.
They won't if the stealth weirdness is carrying over to the ambush mechanic in which units not spotted aren't listed (or visible on the map). And elves are ambushers.

--edit
Ah, sorry, in Dfhack, yeah maybe. Does that list all the units in an ambush?
The units.all vector contains all units that are active as well as inbound, dead, and marked for offloading. Although I've never actually seen it myself (very rarely have ambushers: an occasional goblin, snatcher or necro, and I haven't had any reason to look at the situation with DFHack in those cases), I have no reason to assume stealthed units wouldn't be in the vector (or, in fact, the units.active one), with the appropriate flags set. I probably should have used the word "vector" to better distinguish it from the in-game lists.
Is there a simple way to bring up the list?
(There are indeed flying elves in the save and raws appear to be vanilla 47.02. Errorlog is full of elf pathing fails, although that's not too unusual).

In the meantime I tried teleporting one to someplace nearby to see if he would fall (he didn't), then down into a room of bloodthirsty dorfs to see if he was teleporting with an invisible mount (didn't appear to be).
« Last Edit: March 30, 2020, 09:47:10 pm by Shonai_Dweller »
Logged

bloop_bleep

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #18 on: March 31, 2020, 12:50:28 am »

@Shonai_Dweller

Going to the DFHack window, typing "lua", and then typing "~ df.global.world.units.active" would bring up all active units, but as the list may be rather large, you could instead try writing

Code: [Select]
for i, u in ipairs(df.global.world.units.active) do
    if df.creature_raw.find(u.race).creature_id == "ELF" then
        print(u.id)
    end
end

to get the ids of all elfs currently active. Alternatively, you could navigate the map cursor to a flying elf, then write

Code: [Select]
for i, u in ipairs(df.global.world.units.active) do
    p = u.pos
    c = df.global.cursor
    if p.x == c.x and p.y == c.y and p.z == c.z then
        print(u.id)
    end
end

to get the ids of all creatures at that cursor position.

Speaking of which, maybe I should take a gander.
« Last Edit: March 31, 2020, 12:53:11 am by bloop_bleep »
Logged
Quote from: KittyTac
The closest thing Bay12 has to a flamewar is an argument over philosophy that slowly transitioned to an argument about quantum mechanics.
Quote from: thefriendlyhacker
The trick is to only make predictions semi-seriously.  That way, I don't have a 98% failure rate. I have a 98% sarcasm rate.

Shonai_Dweller

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #19 on: March 31, 2020, 01:14:54 am »

Oh, there are two units listed where the elf is. One is the unit is I got before when teleporting around, the other is new. How do I get some info on who this is?
Logged

bloop_bleep

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #20 on: March 31, 2020, 01:22:06 am »

Hehehe, nice!

In the lua console, type "~ df.unit.find(<id>)", where <id> is the additional id you found. It should list out a bunch of fields. To access field <field>, you can write "~ df.unit.find(<id>).<field>" (performing the substitutions as necessary), and you can go deeper recursively. If you wanna know the race, you can type "! df.creature_raw.find(df.unit.find(<id>).race).creature_id".
Logged
Quote from: KittyTac
The closest thing Bay12 has to a flamewar is an argument over philosophy that slowly transitioned to an argument about quantum mechanics.
Quote from: thefriendlyhacker
The trick is to only make predictions semi-seriously.  That way, I don't have a 98% failure rate. I have a 98% sarcasm rate.

Shonai_Dweller

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #21 on: March 31, 2020, 01:31:16 am »

Hehehe, nice!

In the lua console, type "~ df.unit.find(<id>)", where <id> is the additional id you found. It should list out a bunch of fields. To access field <field>, you can write "~ df.unit.find(<id>).<field>" (performing the substitutions as necessary), and you can go deeper recursively. If you wanna know the race, you can type "! df.creature_raw.find(df.unit.find(<id>).race).creature_id".
Solved. It is an elf sitting on an invisible giant mosquito. Marvelous.

The others are sitting on either giant mosquitos or giant cardinals. Bright red invisible giant monster...
« Last Edit: March 31, 2020, 01:34:24 am by Shonai_Dweller »
Logged

bloop_bleep

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #22 on: March 31, 2020, 01:36:49 am »

Hallelujah!

I think the fact that the giant mosquito was not discovered despite the elf being discovered makes this a bug, so a bug report should be opened.
Logged
Quote from: KittyTac
The closest thing Bay12 has to a flamewar is an argument over philosophy that slowly transitioned to an argument about quantum mechanics.
Quote from: thefriendlyhacker
The trick is to only make predictions semi-seriously.  That way, I don't have a 98% failure rate. I have a 98% sarcasm rate.

Shonai_Dweller

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #23 on: March 31, 2020, 01:45:40 am »

Hallelujah!

I think the fact that the giant mosquito was not discovered despite the elf being discovered makes this a bug, so a bug report should be opened.
Yeah, definitely.
Logged

PatrikLundell

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #24 on: March 31, 2020, 01:54:00 am »

Nice detective work (and also to have a case with flying mounts, although I'd definitely prefer them to be visible)!

There's no tool available to show the contents of the unit vectors, apart from gui/gm-editor and Dwarf Explorer, so I'd use a throwaway Lua script to print the info I think may be relevant, and refine that (my throwaway scripts are called x.lua, y.lua and z.lua, with the contents changed to match what I want to do at the moment).

I think there should be info in the unit about what the id of the mount/rider is, although I'd probably search for matching coordinates instead.
Logged

Shonai_Dweller

  • Bay Watcher
    • View Profile
Re: They Fly Now!?
« Reply #25 on: March 31, 2020, 02:10:03 am »

Nice detective work (and also to have a case with flying mounts, although I'd definitely prefer them to be visible)!

There's no tool available to show the contents of the unit vectors, apart from gui/gm-editor and Dwarf Explorer, so I'd use a throwaway Lua script to print the info I think may be relevant, and refine that (my throwaway scripts are called x.lua, y.lua and z.lua, with the contents changed to match what I want to do at the moment).

I think there should be info in the unit about what the id of the mount/rider is, although I'd probably search for matching coordinates instead.
Yeah, I assume it's doing the same weirdness with ground based ambushes, I've seen animals added to the Invader list much later than the troops before but never thought much about it as it's pretty random as to whether someone actually rides a mount at all.

But considering these elves aren't tumbling out of the sky, they must have arrived on their mounts and are sticking to them.

- Is that an Elf?
- Yeah, get ready, flying elf incoming!
- What's that giant, bright red blur underneath it?
- Trick of the light...

To the op, since this is pretty hard to replicate, can you post a bug report, linkng to your save?
http://www.bay12games.com/dwarves/mantisbt/my_view_page.php
Or I'll do it for you if you don't mind me linking to your save.

--
Went ahead and made a report anyhow (blame the abundance of free time many of us have in the age of the plague).  :)
« Last Edit: March 31, 2020, 05:05:09 pm by Shonai_Dweller »
Logged
Pages: 1 [2]