Page 1 of 1

NPCs: Gibberish Name, Target Error

Posted: Sun Oct 26, 2014 10:34 pm
by Lokked
John, we looked at this yesterday afternoon.

The issue is caused by having the physics field set to 3 in the spawn table. Physics 3, in Unreal terms, is PHYSICS_SWIMMING. We must be writing this to the packet incorrectly, and it's causing an overflow to screw up the rest of the packet. You can verify my efforts with this:

Code: Select all

Run the server, open the client, go to IoD and .move -63287 -71146 -618.

You will see a sad looking lizard and a sadder message when you target it.

In DB Client, go to record spawn.spawn_id = 10381. Change physics to 1.

.reload spawns

.repop
Don't neuter the swimmers yet (but then, it's temp data anyways). I'd like to see if the Unreal code just needs to be tweaked so swimmers can swim.

Re: NPCs: Gibberish Name, Target Error

Posted: Mon Oct 27, 2014 10:03 am
by John Adams
There are lots of spawns in the water. Does that imply they are merely "standers" and not swimmers? I guess I could see that, if they are wanderers. Maybe "physics" is a run-time value we should not even be loading from the database records? Eg., it's a stander, wanders into water, becomes a swimmer.

Re: NPCs: Gibberish Name, Target Error

Posted: Mon Oct 27, 2014 10:40 am
by Lokked
[quote="John Adams"]Maybe "physics" is a run-time value we should not even be loading from the database records? Eg., it's a stander, wanders into water, becomes a swimmer.[/quote]

I was thinking about exactly this on the drive in, but 1 thing is preventing me from thinking this is true: The information in the database is coming from the Spawn Packets collected, so the Client must have received this physics value in the spawn packets, right?

When I get home, I'll use my other PC to run a packet collect with ONLY these swimmers spawned, to see how the information is being sent over the packet. There are also some spawn.physics = 4 values in the Database. I'll check those out as well. Perhaps everything but 1 is being sent incorrectly, which could indicate that the bitstream is being written to incorrectly for the physics bits.

Re: NPCs: Gibberish Name, Target Error

Posted: Mon Oct 27, 2014 11:55 am
by John Adams
[quote="Lokked"]I was thinking about exactly this on the drive in, but 1 thing is preventing me from thinking this is true: The information in the database is coming from the Spawn Packets collected, so the Client must have received this physics value in the spawn packets, right?[/quote]
No. I built the Parser to store every value presented in the SGONPCPawn class built by Xen. This was every "bit" they discovered early on, and we determined many of those bits, while used by VG Live, were derived at run-time. They were NOT stored in SOE's database, because the values are dynamically set. Swimming would be a perfect example. You spawn on Land, but when you enter a region of the zone designated as 'water', your physics switch gets flipped and your toon does a Swimming animation.

Recall theFoof and I having a lengthy discussion about what fields I could remove from the Spawn schema in the database, because they were either "defaulted" in the code, or determined at run-time. Unnecessary to store that data in the database.

Re: NPCs: Gibberish Name, Target Error

Posted: Mon Oct 27, 2014 12:13 pm
by Lokked
Sounds good, John. Easy enough for you to test on NT if you're feeling balsy . Just run the code-block'd process I have above, except replace all values in the physics column with 0s (this will effectively remove this field from the Spawn Packet Bitstream). I believe 0 is PHYSICS_NONE. PHYSICS_WALKING might be more appropriate (physics == 1), as this currently works for our existing spawns.