VGOEmulator.net

A Development Project for the Vanguard:Saga of Heroes MMO

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • Portal
  • Project Manager
  • Bug Tracker
  • Server List
  • Wiki
  • Donate
  • Login
  • Register
  • Board index Bugs Server Bugs Server Bugs (Closed)
  • Search

Vanishing Actor/PPOs

Closed Server Bugs

Moderators: Community Managers, Developers

Locked
  • Print view
Advanced search
18 posts
  • Previous
  • 1
  • 2
Lokked
Principle Developer
Principle Developer
Posts: 600
Joined: Wed Aug 06, 2014 3:15 pm
Re: Vanishing Actor/PPOs
  • Quote

Post by Lokked » Wed Oct 29, 2014 11:18 am

I played around with this extensively last night, trying different values for various pieces of furniture and am at the same conclusion (probably) as Xinux: the parent id for a PPO needs to be a very specific value, and is only unique for that spawn_id. How this value is derived, I have no idea, but my guess is that this ties into some field in the client's assets files. With the bindstone, any other number than the Parent Id provided by Xin will not work (object id doesn't matter, as long as it is unique). This tells me the number is important to the client for rendering the asset (with an positive incorrect parent id, the asset is still loaded and assigned a channel, just not rendered. With a negative parent id, the asset is not loaded or assigned a channel).

Xin, had you modified Xen's parser to show DT 54 to come up with the hammock value? If we have all available PPO models available in packets, we are gold and just need to reparse and re-source. Otherwise, perhaps we can get this from the asset files.

If you need me to modify Xen's parser, let me know and I'll work on this, this evening.
Top

User avatar
Xinux
Project Leader
Project Leader
Posts: 2549
Joined: Wed Aug 28, 2013 2:20 pm
Re: Vanishing Actor/PPOs
  • Quote

Post by Xinux » Wed Oct 29, 2014 11:35 am

Xen's parser already show's the parent_id as this.

public const byte CO_PARENT_UNIQUE_ID = 54;


I noticed something with spawning items in the house i'm messing with the parent_id seem to be the same in this house for the items per room ie... upstairs room parent id for all items -983479532 while the downstairs room is 1295500385
Top

Lokked
Principle Developer
Principle Developer
Posts: 600
Joined: Wed Aug 06, 2014 3:15 pm
Re: Vanishing Actor/PPOs
  • Quote

Post by Lokked » Wed Oct 29, 2014 11:44 am

Just cause I'm VERY curious, but at work and can't look myself., is there a separate spawn_id for EACH and EVERY PPO? Or is it 1 spawn_id for each unique PPO (all cabinets would use the same spawn_id)?

If it's a separate spawn_id for each PPO, and now you are saying each room is assigned a different parent_id, I wonder if this number is still coming from the Client (it's gotta be...).

If you spawn a different copy of the same house object, and put items in it, would they work with the same parent_id, or would they be assigned a different parent_id. I'm really hoping for the former :p. If they are assigned some parent_id, we'll need to figure out how the client is deciding what parent_id it expects.
Top

User avatar
John Adams
Retired
Posts: 4582
Joined: Wed Aug 28, 2013 9:40 am
Location: Phoenix, AZ.
Contact:
Contact John Adams
Website
Re: Vanishing Actor/PPOs
  • Quote

Post by John Adams » Wed Oct 29, 2014 1:09 pm

[quote="Lokked"]is there a separate spawn_id for EACH and EVERY PPO? Or is it 1 spawn_id for each unique PPO (all cabinets would use the same spawn_id)[/quote]
Currently, I wrote the "PlayerPlacedObject" parsing to consolidate similar entities into a single spawn_id. The loader looks like this:

Code: Select all

    query = String.Format("SELECT * " +        "FROM `vgo_rawdata`.`raw_spawn` rs, `vgo_rawdata`.`raw_spawn_objects` rso " +        "WHERE rs.id = rso.spawn_id AND " +        "spawn_name = '" + database.Escape(ppobject.prefab_name) + "' AND " +            // ppo "prefabNameTag" stored in our DB as spawn_name        "mouseover_display = '" + database.Escape(ppobject.mouseover_display) + "' AND " +        "CAST(draw_scale AS DECIMAL) = CAST(" + ppobject.draw_scale + " AS DECIMAL) AND " +        "physics = " + ppobject.physics + " AND " +        "building_type = " + ppobject.building_type + ";"); 
So if the name, display, draw scale, physics AND building_type are already in the raw_spawn+raw_spawn_objects tables, return that spawn_id and just save the placement (location) using that chunk/spawn_id.

This is incorrect!


Now knowing that parent_id is critical, I need to add that to the lookup in GetPPOPawnID (visual parser) and save what SOE sends. I almost wonder if parent_id is like a model ID? we will know when the data gets re-parsed with multiples of the same object "name", and look at the parent_id. If they are all the same, it's likely a model link to client assets as you say.

If they unique for an entire housing area, then that means each and every House + it's Assets (inside) we'll need to know their ID's for - which will be impossible. This is why I think it's a derived ID. We will have no way of knowing what Lokked's house's Parent ID is, if it's not in our raw data. They have to be dynamic, we just have to figure out what the valid values are.


Btw, as I just said to Lokked in IRC, posting here for others;

[quote][12:10] <~john> Lokked: "each room assigned an ID, which is set on the PPO when it's placed, and then stored in the DB" -- plan ahead; player placed objects in their houses, needs to be stored in a character_* table. probably `character_house_items` or something similar, since players can have more than 1 house. so a `character_houses` table FK'd to _items, or _assets.
[12:10] <~john> ie,. we will not store PPOs that are player-owned housing items in `spawn_objects`
[12:10] <~john> they are only there now for data analysis.
[12:11] <~john> i will also likely rename our spawn tables at some point -- the schema is in no way accurate or complete, but works for now the end.
[12:15] <~john> <@Lokked> Ok, continue: Do you know if the same house spawned in another location will use the same parent_id for it's objects?
[12:15] <~john> beware of my current parsed data... I "consolidated" PPOs based on spawn_name and mouseover_display, draw_scale, physics and building_type.
[12:15] <~john> I need to remove that consolidation for PPOs if we're going to get an accurate read of what these houses/assets are.[/quote]
Top

Lokked
Principle Developer
Principle Developer
Posts: 600
Joined: Wed Aug 06, 2014 3:15 pm
Re: Vanishing Actor/PPOs
  • Quote

Post by Lokked » Wed Oct 29, 2014 4:19 pm

I'm going to look into how this parent_id is created, or how the client understands that the listed parent_id relates to the building's PrefabPackName:PrefabNam:Location.
Top

shargash
Team Member
Team Member
Posts: 338
Joined: Tue Apr 15, 2014 10:16 pm
Re: Vanishing Actor/PPOs
  • Quote

Post by shargash » Wed Oct 29, 2014 5:56 pm

I'm not sure if this information is worthwhile, but I had two houses on one of my accounts, and both houses at least had chests in them (I'm pretty sure the 2nd house had only chests, while the first house had chests and a couple misc items, like a Christmas tree). I can identify the houses by loc if you want.
Top

User avatar
John Adams
Retired
Posts: 4582
Joined: Wed Aug 28, 2013 9:40 am
Location: Phoenix, AZ.
Contact:
Contact John Adams
Website
Re: Vanishing Actor/PPOs
  • Quote

Post by John Adams » Thu Feb 05, 2015 8:12 pm

Well, with the last parsing of Raw Data PPOs, I think I have solved the disappearing items in houses problem -- by making them not appear at all And, Something is really whacked in Khal...

[attachment=0]ScreenShot_00185.JPG[/attachment]

Edit: Just learned that these blown out items are Movers, not PPOs. That's why the next post, the PPOs look normal because I didn't pop Movers


As usual, my pesky job keeps getting in the way so I am out of time tonight to figure out what this is all about. But previous PPO data had no parentUniqueIds at all. This batch has the Id if it was in the collected data, so I expected to see houses full of beautiful furnishings... not a scene from Inception.
Attachments
ScreenShot_00185.JPG
Top

User avatar
John Adams
Retired
Posts: 4582
Joined: Wed Aug 28, 2013 9:40 am
Location: Phoenix, AZ.
Contact:
Contact John Adams
Website
Re: Vanishing Actor/PPOs
  • Quote

Post by John Adams » Thu Feb 05, 2015 8:41 pm

Well I have no idea what I did to that last import above, but I re-loaded PPOs in Khal, and as I had hoped, with a collected parentUniqueId, Houses look beautiful again

[attachment=4]ScreenShot_00186.JPG[/attachment]


Edit: Hey Volt, something interesting. While the house assets seem to stay visible now, the spawned Door that I can see from outside, disappears when I go inside. Maybe doors have a parent ID too somewhere.


Edit2: I noticed in the transition between a houses main floor and just before it's staircase, the graphics go completely apeshit. This may be the change between parentIds (Xinux?)
ScreenShot_00187.JPG
Stand here, and inch forward a foot, then:
ScreenShot_00189.JPG

At least I finally get to see what that damn Ra8001_Food_lvl1001_bass001 PPO is -- complete with mouseover!

[attachment=1]ScreenShot_00190.JPG[/attachment]

[attachment=0]pain_in_the_bass.jpg[/attachment]
Attachments
pain_in_the_bass.jpg
ScreenShot_00190.JPG
ScreenShot_00186.JPG
Top


Locked
  • Print view

18 posts
  • Previous
  • 1
  • 2

Return to “Server Bugs (Closed)”

Jump to
  • Information
  • ↳   Announcements
  • ↳   Dev Chats
  • ↳   Events
  • Community
  • ↳   General Discussions
  • ↳   VGO Team Help Requests
  • ↳   Introductions
  • ↳   Game Features
  • ↳   Wish List
  • ↳   Off-Topic
  • Support
  • ↳   How-To's
  • ↳   General Support
  • ↳   Windows
  • ↳   Linux
  • Bugs
  • ↳   Server Bugs
  • ↳   Server Bugs (Closed)
  • ↳   Content Bugs
  • ↳   Content Bugs (Closed)
  • ↳   Database Bugs
  • ↳   Tools Bugs
  • Board index
  • All times are UTC-07:00
  • Delete cookies
  • Contact us
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD