#506 Pet's don't fight at level they are summoned at, but at level in database spawn record

Closed
opened 1 year ago by LordPazuzu · 2 comments

When a pet is summoned, regardless of the level it's summoned at, it fights at the level it's set at in the spawn record in the database.

For example, if the pet spell summons a pet based on Spawn ID 8350001 and that spawn is level 1 in the database, the pet hits as if it were level 1, even if it's summoned at level 15. Conversely, if the pet is level 85ish in the database, as many of the parsed pets are, when summoned at level 15 it's going to pummel everything as if it were 85.

When a pet is summoned, regardless of the level it's summoned at, it fights at the level it's set at in the spawn record in the database. For example, if the pet spell summons a pet based on Spawn ID 8350001 and that spawn is level 1 in the database, the pet hits as if it were level 1, even if it's summoned at level 15. Conversely, if the pet is level 85ish in the database, as many of the parsed pets are, when summoned at level 15 it's going to pummel everything as if it were 85.
image commented 1 year ago
Collaborator

as long as an effective_level in the info structure is not set they should be using their actual level, which seems to be updated each time a player levels .. SummonPet has this logic: SummonPet(Player, pet_id, max_level)

	// Set the level of the pet to the owners level or max level(if set) if owners level is greater
	if (max_level > 0)
		pet->SetLevel(spawn->GetLevel() >= max_level ? max_level : spawn->GetLevel());
	else
		pet->SetLevel(spawn->GetLevel());
	// Set the max level this pet can reach
	((NPC*)pet)->SetMaxPetLevel(max_level);

SummonDeityPet just inherits the players level.

If the entity/spawn has a weapon it uses the weapons damage, not the level of the entity/spawn (maybe not ideal)

as long as an effective_level in the info structure is not set they should be using their actual level, which seems to be updated each time a player levels .. SummonPet has this logic: SummonPet(Player, pet_id, max_level) ``` // Set the level of the pet to the owners level or max level(if set) if owners level is greater if (max_level > 0) pet->SetLevel(spawn->GetLevel() >= max_level ? max_level : spawn->GetLevel()); else pet->SetLevel(spawn->GetLevel()); // Set the max level this pet can reach ((NPC*)pet)->SetMaxPetLevel(max_level); ``` SummonDeityPet just inherits the players level. If the entity/spawn has a weapon it uses the weapons damage, not the level of the entity/spawn (maybe not ideal)
image commented 1 year ago
Collaborator

fixed by 957fa27b5c

fixed by https://git.eq2emu.com/devn00b/EQ2EMu/commit/957fa27b5cf9a6b4fbbc5a5324794499a7d3d8f1
Sign in to join this conversation.
Loading...
Cancel
Save
There is no content yet.