Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Database/World Building

Development::Database/World Building World Building forum, dedicated to the EQEmu MySQL Database. Post partial/complete databases for spawns, items, etc.

Reply
 
Thread Tools Display Modes
  #1  
Old 07-11-2009, 05:36 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Quote:
Originally Posted by trevius View Post
atm I am working on trying to make commands to spawn/create/despawn objects in real-time.
Oh, you're working on that? I was working on that, too. How far along have you gotten? Should I just send you what I've been working on? I was implementing it via something like:

Code:
#object List All|(radius)
#object Add TypeNum Model [ObjectID]
#object Edit (ObjectID) (PropertyName) (NewValue)
(Properties: itemid, charges, model, type, icon, unknown08/10/20/24/60/64/68/72/76/84)
#object Move (ObjectID) ToMe|(x y z [h])
#object Rotate (ObjectID) (Heading)
#object Save (ObjectID)
#object Copy All|(ObjectID) (InstanceVersion)
#object Delete (ObjectID)
- Shendare
Reply With Quote
  #2  
Old 07-11-2009, 07:44 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Oh sweet lol. I was just making something very basic and wasn't very far along just yet. I figured it could always be expanded on later, but wanted to get something working to start off with. Yours is much more in-depth than what I was doing, so I'll just leave it up to you

The only thing I would add to what you have so far would be a way to despawn them. We should be able to use the ClickObject packet to handle that part. That isn't really too important though, and can always be added in later. Unless your delete option already does that. I like the move option you have. It sounds like a good idea and not hard to do.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #3  
Old 07-11-2009, 11:34 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Quote:
Originally Posted by trevius View Post
Oh sweet lol. I was just making something very basic and wasn't very far along just yet. I figured it could always be expanded on later, but wanted to get something working to start off with. Yours is much more in-depth than what I was doing, so I'll just leave it up to you

The only thing I would add to what you have so far would be a way to despawn them. We should be able to use the ClickObject packet to handle that part. That isn't really too important though, and can always be added in later. Unless your delete option already does that. I like the move option you have. It sounds like a good idea and not hard to do.
Per my testing, Delete does do a realtime despawn of the object, as Add does a realtime spawn. This allows object changes to be reflected in realtime by sending a despawn packet and respawn packet after each change. Using "#object delete" instead of attempting to trap ClickObject packets for placeables will prevent having the server do unnecessary processing with every click from every user on every object in the game.

The only caveat is that Doors do not have a Despawn opcode that I could find. They appear to be super-static by design. Unless we just haven't found the Opcode yet (since it's not likely to be found with packet collection from Live servers), I assume at this point that the client expects them to be sent once upon zone-in and never change. This also means that there will not be a Despawn packet for static objects.

The best way I can figure as to how to handle this issue is to spawn static objects and doors as tradeskill objects at first, allowing the user to make any model, location, and rotation changes they want to it, then change them into full-on static door objects when the "#object save" command is used to commit them to the database.

I could also look into utilizing an #object command to temporarily change an already-committed door or static object into a changeable tradeskill object upon the next zone-in, allowing the user to make any changes in-game and then re-commit with "#object save".

Should be entirely doable.
Reply With Quote
  #4  
Old 07-12-2009, 02:56 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Note that I moved these posts from the SoF Development thread to here, since this is a better place to discuss it.

That sounds great, Shendare. Using temporary objects (from object packets) for placement and testing and then doors for actually saving them is exactly what I was thinking. I think that is probably the best option and should work out great and should be fairly seamless. I don't think people realize yet just how useful this command will be. It is good for adding custom stuff to zones, but it is also extremely good for adding in doors and such to newer zones that are currently completely empty. Until the packet collectors are working again, there is no easy way to do that, so this command will help a lot. The only way to do it better would be to manually pull the data from the Live packets and put them into the table. That is what I did for Crescent Reach, but not all zones are quite so accessible to collect from.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 11:55 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3