[1.7.0] thought-form bowman tries to wear metal gloves&boots

Where bugs go to lie down and rest

Moderator: Moderator

Post Reply
Message
Author
Zeyphor
Archmage
Posts: 400
Joined: Fri Jan 04, 2013 3:20 am

[1.7.0] thought-form bowman tries to wear metal gloves&boots

#1 Post by Zeyphor »

thought-form warrior almost always, if not always, has all 4 pieces of equipment
thought-form defender almost always, if not always, has all 5 pieces of equipment
but thought-form bowman is almost always missing either his gloves, his boots, or both; however, he almost always, if not always, has chest armor, a bow, and arrows, like he should be

steps to reproduce:
#1: make a new character as a solipsist or adventurer of any first-party race in any first-party campaign with no non-first-party addons
#2: reach character level 4
#3: get thought-forms to level 5
#4: activate thought-form bowman
#5: inspect your thought-form bowman to look at its gear; take note that he will almost always be missing his gloves, boots, or both
#6: de-activate thought-form bowman
#7: repeat steps 4-6 100 times
#8: repeat steps 4-6 100 times, except with warrior and defender instead of bowman; take note that they, unlike the bowman, will always have gloves and boots
#9: use dev mode to boost yourself to level 50, go to high peak, and remove all hostile NPCs, or just play the game to get there the normal way
#10: repeat steps 7-8
#11: go to any other zone of your choice, then repeat step 10
#12: repeat step 11 until you've seen enough

this bug was found without using any non-first-party addons at all EDIT: except select your escorts, and has been in the game since at least 1.6.x
Last edited by Zeyphor on Thu Nov 05, 2020 3:39 pm, edited 1 time in total.

Zeyphor
Archmage
Posts: 400
Joined: Fri Jan 04, 2013 3:20 am

Re: [1.7.0] thought-form bowman tries to wear metal gloves&b

#2 Post by Zeyphor »

after closely examining the game's code with little to no knowledge of LUA, which took 10-15 minutes to do, I've determined that the problem here is that the game will often attempt to make thought-forged bowman wear metal gloves and boots, and because these bowman don't have heavy armor training at even level 1, they simply won't have gloves or boots equipped if they turn out to be metal

first, I looked through thought-forms.lua and found this, which appears to not be the problem:

BOWMAN:

Code: Select all

resolvers.equip{
				{type="weapon", subtype="longbow", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="ammo", subtype="arrow", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="armor", subtype="light", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="armor", subtype="hands", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="armor", subtype="feet", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
			},
WARRIOR:

Code: Select all

resolvers.equip{
				{type="weapon", subtype="battleaxe", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="armor", subtype="heavy", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="armor", subtype="hands", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="armor", subtype="feet", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
			},
DEFENDER:

Code: Select all

resolvers.equip{
				{type="weapon", subtype="longsword", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="armor", subtype="shield", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="armor", subtype="massive", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="armor", subtype="hands", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
				{type="armor", subtype="feet", autoreq=true, forbid_power_source={arcane=true}, not_properties = {"unique"} },
			},
but then, I booted up my level 7 solipsist offline to activate and de-activate my thought-forms repeatedly, including multiple of each thought-form, and I found this in the log file when a thought-forged bowman spawned with metal gloves and boots and tried to equip them:

Code: Select all

[resolveObject] CREATE FOR	16411	thought-forged bowman	do_wear/tries:	true	5	filter:
	{forbid_power_source=table: 0x1147de38, not_properties=table: 0x1147de60, type="weapon", autoreq=true, subtype="longbow"}
[TOME ENTITY FILTER] selected basic	87.214748690653	103.5
[resolveObject] CREATED OBJECT:	16413	elm longbow	tries left:	4
[resolveObject]	16413	elm longbow	added to inventory	MAINHAND
[resolveObject] CREATE FOR	16411	thought-forged bowman	do_wear/tries:	true	5	filter:
	{forbid_power_source=table: 0x11223fb8, not_properties=table: 0x11224050, type="ammo", autoreq=true, subtype="arrow"}
[TOME ENTITY FILTER] selected Ego	46.791116350864	65.5
[resolveObject] CREATED OBJECT:	16414	quiver of elm arrows of accuracy	tries left:	4
fight: 	quiver of elm arrows of accuracy	elm longbow	::	OFFHAND	QUIVER
[resolveObject]	16414	quiver of elm arrows of accuracy	added to inventory	QUIVER
[resolveObject] CREATE FOR	16411	thought-forged bowman	do_wear/tries:	true	5	filter:
	{forbid_power_source=table: 0x14df02b0, not_properties=table: 0x14df0310, type="armor", autoreq=true, subtype="light"}
[TOME ENTITY FILTER] selected basic	82.91801622543	103.5
[resolveObject] CREATED OBJECT:	16418	cured leather armour	tries left:	4
fight: 	cured leather armour	elm longbow	::	OFFHAND	BODY
fight: 	cured leather armour	quiver of elm arrows of accuracy	::	nil	BODY
[resolveObject]	16418	cured leather armour	added to inventory	BODY
[resolveObject] CREATE FOR	16411	thought-forged bowman	do_wear/tries:	true	5	filter:
	{forbid_power_source=table: 0x12ffb520, not_properties=table: 0x12ffb548, type="armor", autoreq=true, subtype="hands"}
[TOME ENTITY FILTER] selected basic	67.086493285626	103.5
[resolveObject] CREATED OBJECT:	16419	iron gauntlets	tries left:	4
[resolveObject]	16419	iron gauntlets	NOT WORN in	nil	nil
[General Object resolver]	16419	iron gauntlets	COULD NOT BE WORN
[resolveObject] adding to main inventory:	16419	iron gauntlets
[resolveObject] CREATE FOR	16411	thought-forged bowman	do_wear/tries:	true	5	filter:
	{forbid_power_source=table: 0x12517c38, not_properties=table: 0x12517cd0, type="armor", autoreq=true, subtype="feet"}
[TOME ENTITY FILTER] selected Ego	28.440601109862	65.5
[resolveObject] CREATED OBJECT:	16420	pair of iron boots of tirelessness	tries left:	4
[resolveObject]	16420	pair of iron boots of tirelessness	NOT WORN in	nil	nil
[General Object resolver]	16420	pair of iron boots of tirelessness	COULD NOT BE WORN
[resolveObject] adding to main inventory:	16420	pair of iron boots of tirelessness
[Actor:move]	16411	thought-forged bowman	(forced) move from	nil	nil	to	5	20
[PARTY] New member, add after	thought-forged bowman	Oravo
it appears that, when making boots and gloves, the game just randomly picks metal or leather gloves; type="armor", subtype="hands" appears to not differentiate between metal or leather armor

so, this bug can be fixed by giving level 1 heavy armor training to thought-forged bowmen, which would absolutely no impact upon the gameplay beyond enabling them to wear metal boots and gloves when they decide to spawn with them; since they wear leather armor, they wouldn't at all benefit from the bonus armor or critshrug from heavy armor training

or, if you want to do something more complicated for whichever reason, then, well, I don't really know if this would work, and I don't know if theres subtype="metalhands" or subtype="nonmetalhands" as "armor" subtypes, but you could divide item subtypes between metal and non-metal for all relevant item types, or maybe "type" itself could differentiate there between metal or non-metal, instead of doing so via. subtype, and doing something like that could result not only in bowmen not being given metal boots or gloves to wear, but also in warriors and defenders not being given leather boots or gloves to wear, which would not be accomplished by simply giving level 1 heavy armor training to thought-form bowman

darkgod
Master of Eyal
Posts: 10751
Joined: Wed Jul 24, 2002 9:26 pm
Location: Angolwen
Contact:

Re: [1.7.0] thought-form bowman tries to wear metal gloves&b

#3 Post by darkgod »

fixed
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)

Post Reply