copper248 reports: when player dies with a charge ... #4229

Open
opened 2023-04-18 21:48:55 +00:00 by yourland-report · 5 comments

copper248 reports a bug:

when player dies with a charged arrow, the player spawns with an arrow and there is a loaded bow in there bones, this dupes the arrows but is easy to detect so it not as relevant as the anvil and pedestal method but it helps show that bows have many problems with unloading

Player position:

{
	x = 1838.2380371094,
	y = -30900.5,
	z = 1428.8620605469
}

Player look:

{
	x = 0.69269841909409,
	y = -0.69075620174408,
	z = -0.20742413401604
}

Player information:

{
	version_string = "5.6.1",
	lang_code = "",
	min_rtt = 0.14399999380112,
	avg_rtt = 0.19900000095367,
	min_jitter = 0,
	max_jitter = 0.86799997091293,
	avg_jitter = 0.031000003218651,
	protocol_version = 41,
	serialization_version = 29,
	patch = 1,
	formspec_version = 6,
	state = "Active",
	minor = 6,
	connection_uptime = 2759,
	max_rtt = 1.7710000276566,
	ip_version = 6,
	major = 5
}

Player meta:

{
	fields = {
		["stamina:exhaustion"] = "92.5",
		placed_nodes = "78506",
		died = "76",
		["unified_inventory:bags"] = "return {\"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"unified_inventory:bag_large\"}",
		crafted = "3494",
		xp = "451578",
		["petz:lycanthropy"] = "0",
		digged_nodes = "498699",
		repellant = "0",
		["petz:werewolf"] = "0",
		arenalib_infobox_arenaID = "0",
		["petz:werewolf_vignette_id"] = "19",
		yl_commons_player_created = "1662436925",
		yl_commons_player_joined = "1681851814",
		inflicted_damage = "841260",
		punch_count = "39359",
		["petz:werewolf_clan_idx"] = "3",
		["petz:old_override_table"] = "return {[\"new_move\"] = true, [\"speed\"] = 2, [\"sneak\"] = true, [\"jump\"] = 1.5, [\"gravity\"] = 1, [\"sneak_glitch\"] = false}",
		bitten = "0",
		hud_state = "on",
		yl_commons_thankyou = "12",
		played_time = "1285391",
		["ocean_build.last_warning"] = "1.66667e+09",
		["stamina:poisoned"] = "no",
		["signslib:pos"] = "(2017,-30900,1411)",
		yl_church = "return {[\"last_heal\"] = 1664922768, [\"last_death\"] = {[\"x\"] = -193, [\"y\"] = 35, [\"z\"] = 898}, [\"last_death_portal\"] = 1681625262}",
		["3d_armor_inventory"] = "return {\"shields:shield_rainbow 1 1248\", \"3d_armor:helmet_crystal 1 3120\", \"3d_armor:boots_crystal 1 3120\", \"3d_armor:chestplate_crystal 1 3120\", \"3d_armor:leggings_crystal 1 3120\", \"\"}",
		["stamina:level"] = "19",
		["ocean_build.forbidden"] = "true",
		["ocean_build.ocean_built"] = "12",
		jointime = "1662436925"
	}
}

Log identifier


[MOD] yl_report log identifier = 4xRUNZrsd5XkyjIRPKbZbi4vwSbHoqAA

Profiler save:

profile-20230418T214855.json_prettyEE

Status:

# Server: version: 5.6.1-yl | game: Minetest Game | uptime: 5d 46min | max lag: 1.42s | clients (29/52): AliasAlreadyTaken, AspireMint, Bailiff, bizon, Boot, bubbleee, Chache, Chameleon, copper248, daydream, Elias, fellow, flux, FullmetalBOI, HorusDamocles, JeCel, Kalek, Lupercus, MineWorlds, niceride, Papi, RosLenin33, ScoutTrooper, Service, shanish3, Sokomine, STEALTH, Syslog, Therottenpotato

Teleport command:

/teleport xyz 1838 -30901 1429

Compass command:

/give_compass Construction 4xRUNZrsd5XkyjIRPKbZbi4vwSbHoqAA D2691E 1838 -30901 1429
copper248 reports a bug: > when player dies with a charged arrow, the player spawns with an arrow and there is a loaded bow in there bones, this dupes the arrows but is easy to detect so it not as relevant as the anvil and pedestal method but it helps show that bows have many problems with unloading Player position: ``` { x = 1838.2380371094, y = -30900.5, z = 1428.8620605469 } ``` Player look: ``` { x = 0.69269841909409, y = -0.69075620174408, z = -0.20742413401604 } ``` Player information: ``` { version_string = "5.6.1", lang_code = "", min_rtt = 0.14399999380112, avg_rtt = 0.19900000095367, min_jitter = 0, max_jitter = 0.86799997091293, avg_jitter = 0.031000003218651, protocol_version = 41, serialization_version = 29, patch = 1, formspec_version = 6, state = "Active", minor = 6, connection_uptime = 2759, max_rtt = 1.7710000276566, ip_version = 6, major = 5 } ``` Player meta: ``` { fields = { ["stamina:exhaustion"] = "92.5", placed_nodes = "78506", died = "76", ["unified_inventory:bags"] = "return {\"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"unified_inventory:bag_large\", \"unified_inventory:bag_large\"}", crafted = "3494", xp = "451578", ["petz:lycanthropy"] = "0", digged_nodes = "498699", repellant = "0", ["petz:werewolf"] = "0", arenalib_infobox_arenaID = "0", ["petz:werewolf_vignette_id"] = "19", yl_commons_player_created = "1662436925", yl_commons_player_joined = "1681851814", inflicted_damage = "841260", punch_count = "39359", ["petz:werewolf_clan_idx"] = "3", ["petz:old_override_table"] = "return {[\"new_move\"] = true, [\"speed\"] = 2, [\"sneak\"] = true, [\"jump\"] = 1.5, [\"gravity\"] = 1, [\"sneak_glitch\"] = false}", bitten = "0", hud_state = "on", yl_commons_thankyou = "12", played_time = "1285391", ["ocean_build.last_warning"] = "1.66667e+09", ["stamina:poisoned"] = "no", ["signslib:pos"] = "(2017,-30900,1411)", yl_church = "return {[\"last_heal\"] = 1664922768, [\"last_death\"] = {[\"x\"] = -193, [\"y\"] = 35, [\"z\"] = 898}, [\"last_death_portal\"] = 1681625262}", ["3d_armor_inventory"] = "return {\"shields:shield_rainbow 1 1248\", \"3d_armor:helmet_crystal 1 3120\", \"3d_armor:boots_crystal 1 3120\", \"3d_armor:chestplate_crystal 1 3120\", \"3d_armor:leggings_crystal 1 3120\", \"\"}", ["stamina:level"] = "19", ["ocean_build.forbidden"] = "true", ["ocean_build.ocean_built"] = "12", jointime = "1662436925" } } ``` Log identifier ``` [MOD] yl_report log identifier = 4xRUNZrsd5XkyjIRPKbZbi4vwSbHoqAA ``` Profiler save: ``` profile-20230418T214855.json_prettyEE ``` Status: ``` # Server: version: 5.6.1-yl | game: Minetest Game | uptime: 5d 46min | max lag: 1.42s | clients (29/52): AliasAlreadyTaken, AspireMint, Bailiff, bizon, Boot, bubbleee, Chache, Chameleon, copper248, daydream, Elias, fellow, flux, FullmetalBOI, HorusDamocles, JeCel, Kalek, Lupercus, MineWorlds, niceride, Papi, RosLenin33, ScoutTrooper, Service, shanish3, Sokomine, STEALTH, Syslog, Therottenpotato ``` Teleport command: ``` /teleport xyz 1838 -30901 1429 ``` Compass command: ``` /give_compass Construction 4xRUNZrsd5XkyjIRPKbZbi4vwSbHoqAA D2691E 1838 -30901 1429 ```
AliasAlreadyTaken was assigned by yourland-report 2023-04-18 21:48:55 +00:00
flux added the
1. kind/bug
3. source/mod upstream
3. source/integration
2. prio/critical
labels 2023-04-19 01:13:13 +00:00
Member

this is closely related to #4217. the solution is probably to not add an arrow to the inventory if there is not a bow in the inventory that can be unloaded.

this is closely related to #4217. the solution is probably to not add an arrow to the inventory if there is not a bow in the inventory that can be unloaded.

Can we disallow inventory movements for loaded bows?

Can we disallow inventory movements for loaded bows?
Member

Can we disallow inventory movements for loaded bows?

short answer, no.

that will only disallow player-initiated movements - mods generally ignore inventory permissions. perhaps they shouldn't do that (i sometimes wish they didn't), but it's "normal" and common. and the semantics for checking whether and how much of an inventory move are allowed don't make sense in some programmatic cases (e.g. calculating the results of crafting, including replacements, and putting those things in the various appropriate inventories).

in my mind, i'd prefer to just get rid of the "loaded bow" mechanic entirely. i think player metadata should track when the player last fired a shot, and the next time the player left-clicks ("uses the bow"), it'll fire an arrow at the appropriate power. if shots are too close together (less than 1/20th of a second?), the bow should assume lag and not penalize the player, though shots 1/10th of a second apart will just fall on the ground. we can make use of the "full_punch_interval" mechanic to give players some sort of sense of when they can fire another shot from the bow, but it'll be purely an approximation.

this would have the undesirable side effect of letting players pick up a bow and immediately fire an arrow, if they haven't used one in a long time. ideally the game would have some sort of "on_wield" and "on_unwield" callbacks.

> Can we disallow inventory movements for loaded bows? short answer, no. that will only disallow player-initiated movements - mods generally ignore inventory permissions. perhaps they shouldn't do that (i sometimes wish they didn't), but it's "normal" and common. and the semantics for checking whether and how much of an inventory move are allowed don't make sense in some programmatic cases (e.g. calculating the results of crafting, including replacements, and putting those things in the various appropriate inventories). in my mind, i'd prefer to just get rid of the "loaded bow" mechanic entirely. i think player metadata should track when the player last fired a shot, and the next time the player left-clicks ("uses the bow"), it'll fire an arrow at the appropriate power. if shots are too close together (less than 1/20th of a second?), the bow should assume lag and not penalize the player, though shots 1/10th of a second apart will just fall on the ground. we can make use of the "full_punch_interval" mechanic to give players some sort of sense of when they can fire another shot from the bow, but it'll be purely an approximation. this would have the undesirable side effect of letting players pick up a bow and immediately fire an arrow, if they haven't used one in a long time. ideally the game would have some sort of "on_wield" and "on_unwield" callbacks.

There are only so many bows a person can have loaded at once. Maybe not the bow should have that "loaded" distinction, but some globalstep

There are only so many bows a person can have loaded at once. Maybe not the bow should have that "loaded" distinction, but some globalstep
Member

i think player metadata should track when the player last fired a shot
...
There are only so many bows a person can have loaded at once. Maybe not the bow should have that "loaded" distinction, but some globalstep

basically, in my mind, these are more-or-less the thing. no need to use yl_settings, this isn't data that needs to be published arbitrarily.

> i think player metadata should track when the player last fired a shot > ... > There are only so many bows a person can have loaded at once. Maybe not the bow should have that "loaded" distinction, but some globalstep basically, in my mind, these are more-or-less the thing. no need to use yl_settings, this isn't data that needs to be published arbitrarily.
AliasAlreadyTaken added this to the 1.1.119 milestone 2023-04-25 14:19:39 +00:00
AliasAlreadyTaken added this to the Alias@work project 2023-04-28 13:24:31 +00:00
AliasAlreadyTaken removed this from the 1.1.119 milestone 2023-05-07 20:17:04 +00:00
AliasAlreadyTaken removed this from the Alias@work project 2023-12-05 16:58:06 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: your-land/bugtracker#4229
No description provided.