Uh oh

Post in this forum if you found any bugs with server functionality.

Moderator: Team Members

Forum rules
READ THE STICKY ON PROPER BUG SUBMISSION FORMAT BEFORE POSTING.
Post Reply
User avatar
Gangrenous
Posts: 812
Joined: Sun Apr 24, 2016 6:54 am
Characters: Dinsmoor

Uh oh

Post by Gangrenous » Sat Jul 23, 2016 1:18 pm

Small issue. I am doing a few new quest, one involves sparrow hawks. The issue is the corpse does not drop to the ground, they are staying up in the upper axis, not dropping down.
Resident Dirty Hippy

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Uh oh

Post by Jabantiz » Sat Jul 23, 2016 2:33 pm

Their location is on the ground with the y_offset making them appear in the air right? If so the client should handle all this on its own.

User avatar
Gangrenous
Posts: 812
Joined: Sun Apr 24, 2016 6:54 am
Characters: Dinsmoor

Re: Uh oh

Post by Gangrenous » Sat Jul 23, 2016 3:28 pm

Visually the body is at the same Y as where the mob died. Since these are birds, in the air, the body is in the air. This proposes a problem.
Resident Dirty Hippy

User avatar
Gangrenous
Posts: 812
Joined: Sun Apr 24, 2016 6:54 am
Characters: Dinsmoor

Re: Uh oh

Post by Gangrenous » Sun Jul 24, 2016 9:38 am

Hopefully this will help explain it. When the elevated spawn dies, it keeps the same Y axis. Could this be a thing with states? My memory of live is vague but didn't the birds dive during combat? If they are supposed to dive during combat maybe that is what brings them down on the Y axis. The more I think about that though, it probably would not work. As I notice the birds do dive if they have to come to you. I think we need something like a GetBestYAxis. I am not sure a solution to this but it does need to get fixed. I also know it is not just zone related to the one I am working on, Antonica. I set the same NPC up in South Qeynos and the problem persisted. Kind of thinking of it, this is somewhat similar to the "chest" problem I had before.

I searched the forums for quite a while and this thread does mention the y-offset a tad. But from what I know of these offsets they are random....right? So how does that help. If you set the y-offset to a value, you cannot always guarantee it will be above ground. Setting the hawk to ground level and the y-offset to something like 20, and killing the hawk..the body still stayed in the air.
You do not have the required permissions to view the files attached to this post.
Resident Dirty Hippy

User avatar
xinux
Team Member
Posts: 680
Joined: Wed Mar 10, 2010 11:10 am
Location: Destroyer of Servers

Re: Uh oh

Post by xinux » Sun Jul 24, 2016 12:50 pm

If i had to guess I would say setting the mobs initial_state from 49156 to say 16512 when it dies will probably bring it down to the ground.
EQ II - Build=1360 (Orig) - Build=1360 (DoF) - Build=2654 (KoS) - Build=3375 (Classic) - Build=3554 (EoF)
EQ II - Build=4412 (RoK) - Build=5122 (TSO) - Build=6118 (SF) - Build=7628 (DoV) - Build=8295 (Aod)

User avatar
Gangrenous
Posts: 812
Joined: Sun Apr 24, 2016 6:54 am
Characters: Dinsmoor

Re: Uh oh

Post by Gangrenous » Sun Jul 24, 2016 3:30 pm

Agreed, but what do we need to do it via script? That seems a bit kludgy. I agree that will work. Do you have a list of all of the states? The ones i have do not see complete.
Resident Dirty Hippy

User avatar
xinux
Team Member
Posts: 680
Joined: Wed Mar 10, 2010 11:10 am
Location: Destroyer of Servers

Re: Uh oh

Post by xinux » Sun Jul 24, 2016 4:12 pm

I would do it in the code not via lua script personally. Jabantiz would know better since it has been years since I've looked at it along with the list of states.
EQ II - Build=1360 (Orig) - Build=1360 (DoF) - Build=2654 (KoS) - Build=3375 (Classic) - Build=3554 (EoF)
EQ II - Build=4412 (RoK) - Build=5122 (TSO) - Build=6118 (SF) - Build=7628 (DoV) - Build=8295 (Aod)

User avatar
Gangrenous
Posts: 812
Joined: Sun Apr 24, 2016 6:54 am
Characters: Dinsmoor

Re: Uh oh

Post by Gangrenous » Sun Jul 24, 2016 5:08 pm

Would it be messy to have a field in the database called "death state" and change the state in the function called up death? The various states are new to me, just experiencing them now.
Resident Dirty Hippy

User avatar
xinux
Team Member
Posts: 680
Joined: Wed Mar 10, 2010 11:10 am
Location: Destroyer of Servers

Re: Uh oh

Post by xinux » Sun Jul 24, 2016 5:19 pm

To me that just seems abit much since this really only needs to be done with flying mobs unless you are seeing it in other situations.
EQ II - Build=1360 (Orig) - Build=1360 (DoF) - Build=2654 (KoS) - Build=3375 (Classic) - Build=3554 (EoF)
EQ II - Build=4412 (RoK) - Build=5122 (TSO) - Build=6118 (SF) - Build=7628 (DoV) - Build=8295 (Aod)

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Uh oh

Post by Jabantiz » Sun Jul 24, 2016 5:23 pm

initial_states mostly come from packet collects, there is no list that I am aware of. You could add to the code to set the initial_State to 16512 for all spawns on death, don't think that would have an ill effect on others but not sure. There is also no way for the server to determine accurate locations as it does not have knowledge of the level geometry, best that could be done is guess based off of players current y but that will still result in odd behavior most of the time.

User avatar
Gangrenous
Posts: 812
Joined: Sun Apr 24, 2016 6:54 am
Characters: Dinsmoor

Re: Uh oh

Post by Gangrenous » Sun Jul 24, 2016 7:02 pm

I can do that....rockin.
Resident Dirty Hippy

User avatar
Gangrenous
Posts: 812
Joined: Sun Apr 24, 2016 6:54 am
Characters: Dinsmoor

Re: Uh oh

Post by Gangrenous » Sun Jul 24, 2016 9:09 pm

That worked guys. I am going to clean up my code a bit and I will post what I put in my SVN some time tomorrow.
Resident Dirty Hippy

User avatar
Gangrenous
Posts: 812
Joined: Sun Apr 24, 2016 6:54 am
Characters: Dinsmoor

Re: Uh oh

Post by Gangrenous » Mon Jul 25, 2016 5:27 am

Anywhere in a

Code: Select all

if (dead->IsNPC() && !dead->IsPet()) {
in zoneserver.cpp, around line 3996 or so....

add

Code: Select all

dead->SetInitialState(16512, false); // This will make aerial npc's fall after death
Resident Dirty Hippy

User avatar
Cynnar
Project Leader
Posts: 738
Joined: Sat Sep 27, 2014 1:22 am
EQ2Emu Server: Eq2emulator
Characters: Vlash
Veinlash
Taragak
Cynnar

Re: Uh oh

Post by Cynnar » Sun Jun 24, 2018 9:18 pm

Do we need to add this to the code, or is this resolved?
[ 01000011 01111001 01101110 01101110 01100001 01110010 ]

Follow on:
Twitter Facebook

Contact me:
PM Discord chat email

Hardware: the parts of a computer that can be kicked

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests