Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 11-19-2011, 02:07 PM
thepoetwarrior
Discordant
 
Join Date: Aug 2007
Posts: 307
Question Item Graphics

Would it be possible to add a field in the inventory table so a user can say wield an Epic Weapon, but choose from available graphics via Quest NPC options to change the look of their weapon? This would allow alternate graphics for the same weapon, without having to make a clone of all the items and giving them a different item id just to have a different graphic choices.

After all, armor has RBG color fields, right? This would be similar.

Should be simple to implement.
Reply With Quote
  #2  
Old 11-24-2011, 04:44 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

They have that on live already, and it is called ornamentation. I haven't actually used it myself since I quit before it was added, but I think the idea of it is fairly simple. You basically get an ornamentation item that has the icon and model of the graphics you want your current weapon to look like. Then you combine your weapon in the ornamentation container and it changes the look permanently to the new icon and model.

I have looked into adding them a couple times, but there are a couple of things that make them a bit complicated to add. Adding an icon field and model field to the inventory table wouldn't be too bad. It would probably need to be added to the corpse blob as well, which does complicate things a bit. But, the most complicated part is that I don't know how to deal with the actual combines yet. The ornamentations don't actually have a model number on them for the new look, only the icon of it. I am guessing that means we would rely on a combine script that has a list of every model that is associated with each ornamentation, and then use that to populate the inventory table field for the new look and icon.

***Edit***

Actually, it looks like they now include the model ID in newer ornamentions from Live based on what I see on the 13th floor website. Here is an example of one of the older ones:

http://eqitems.13th-floor.org/itemraw.php?id=40692

As you can see, the idfile is IT63, which is just the generic model for a bag looking model. I searched my DB and all of the ornamentions I have are IT63 as seen here:

Code:
mysql> SELECT id, Name, idfile FROM items WHERE name LIKE "%Ornamentation%";
+--------+--------------------------------------+--------+
| id     | Name                                 | idfile |
+--------+--------------------------------------+--------+
|  40623 | Rallosian Blade Ornamentation        | IT63   |
|  40624 | Rallosian Club Ornamentation         | IT63   |
|  40625 | Rallosian Dagger Ornamentation       | IT63   |
|  40626 | Rallosian Spear Ornamentation        | IT63   |
|  40627 | Rallosian Staff Ornamentation        | IT63   |
|  40639 | Rallosian Claw Ornamentation         | IT63   |
|  40640 | Ornamentation Stripping Tool         | IT63   |
|  40661 | Draconic Hammer Ornamentation        | IT63   |
|  40662 | Draconic Great Hammer Ornamentation  | IT63   |
|  40663 | Draconic Blade Ornamentation         | IT63   |
|  40664 | Draconic Great Blade Ornamentation   | IT63   |
|  40665 | Draconic Dagger Ornamentation        | IT63   |
|  40666 | Draconic Spear Ornamentation         | IT63   |
|  40667 | Draconic Fist Ornamentation          | IT63   |
|  40692 | Tunarian Staff Ornamentation         | IT63   |
|  40694 | Tunarian Blade Ornamentation         | IT63   |
|  40696 | Tunarian Dagger Ornamentation        | IT63   |
|  40697 | Tunarian Spear Ornamentation         | IT63   |
|  40736 | Riftseeker Hammer Ornamentation      | IT63   |
|  40740 | Riftseeker Short Spear Ornamentation | IT63   |
|  40742 | Riftseeker Claw Ornamentation        | IT63   |
|  40772 | Discordant Dagger Ornamentation      | IT63   |
|  41966 | Guktan Machete Ornamentation         | IT63   |
| 100110 | Shield of Valor Ornamentation        | IT63   |
| 100111 | Buckler of Valor Ornamentation       | IT63   |
| 100112 | Shield of Fire Ornamentation         | IT63   |
| 100113 | Buckler of Fire Ornamentation        | IT63   |
| 100114 | Shield of Ice Ornamentation          | IT63   |
| 100115 | Buckler of Ice Ornamentation         | IT63   |
| 100116 | Shield of Earth Ornamentation        | IT63   |
| 100117 | Buckler of Earth Ornamentation       | IT63   |
| 100118 | Shield of Air Ornamentation          | IT63   |
| 100119 | Buckler of Air Ornamentation         | IT63   |
| 100120 | Prismatic Shield Ornamentation       | IT63   |
| 100121 | Prismatic Buckler Ornamentation      | IT63   |
| 100122 | Were-Orc Bone Shield Ornamentation   | IT63   |
+--------+--------------------------------------+--------+
But, I just searched 13th floor for a random newer ornamentation and this one shows the correct model of IT10781:

http://eqitems.13th-floor.org/itemraw.php?id=124290

I didn't check any others, but I assume they switched to simplify things on their end a bit. I notice they have a charm file entry for the container to have a script associated with it. In this case it is ITEMTransfigShield, but it is different for different ones. I assume that they used to use the scripts to deal with the combine to make it take over the model of the current item.

So, maybe I can do an items table update and see just how many items use the old way of setting the model by script. If it isn't too many, we can probably just make a list of what model IDs they are supposed to be and add a query to update everyone's DB to have the correct model that matches those older ornamentations. Then, it would be much easier to implement ornamentations.

One minor problem is that not all DBs will have all of the old ornamentations, and some may have custom items using those IDs, so I am not quite sure which way is the best to deal with the SQL for that. Most likely, people would need to check their DB before running any update queries to fix the older ornamentations models. I could just leave that up to each admin to do and put the query to fix them in a post or something. If it was added to the SVN, it could potentially break items for people who aren't careful. Maybe just making a warning about that would be good enough though.

Either way, I think this will require a change of the corpse blob struct data that will break any existing corpses that have items. I would probably have to hold off on working on this until that blob has been removed. I have been working on removing that blob anyway, so if I can get that done, I might be able to do ornamentations after that when I have time.

Once the ornamention code is in place, we could even have quest commands that could let you update the model of any item on a character at any time without needing to do the ornamentation combine. This would allow you to do exactly what you are wanting, Hunter.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!

Last edited by trevius; 11-24-2011 at 07:36 AM..
Reply With Quote
  #3  
Old 11-24-2011, 11:25 AM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

If it helps, here is the output of the same query against the newest PEQ database:

Code:
mysql> SELECT id, Name, idfile FROM items WHERE name LIKE "%Ornamentation%";
+--------+-------------------------------------------------+---------+
| id     | Name                                            | idfile  |
+--------+-------------------------------------------------+---------+
|  39379 | Fan Faire Celebration Shield Ornamentation      | IT63    |
|  40623 | Rallosian Blade Ornamentation                   | IT63    |
|  40624 | Rallosian Club Ornamentation                    | IT63    |
|  40625 | Rallosian Dagger Ornamentation                  | IT63    |
|  40626 | Rallosian Spear Ornamentation                   | IT63    |
|  40627 | Rallosian Staff Ornamentation                   | IT63    |
|  40639 | Rallosian Claw Ornamentation                    | IT63    |
|  40640 | Ornamentation Stripping Tool                    | IT63    |
|  40661 | Draconic Hammer Ornamentation                   | IT63    |
|  40662 | Draconic Great Hammer Ornamentation             | IT63    |
|  40663 | Draconic Blade Ornamentation                    | IT63    |
|  40664 | Draconic Great Blade Ornamentation              | IT63    |
|  40665 | Draconic Dagger Ornamentation                   | IT63    |
|  40666 | Draconic Spear Ornamentation                    | IT63    |
|  40667 | Draconic Fist Ornamentation                     | IT63    |
|  40692 | Tunarian Staff Ornamentation                    | IT63    |
|  40693 | Tunarian Great Staff Ornamentation              | IT63    |
|  40694 | Tunarian Blade Ornamentation                    | IT63    |
|  40695 | Tunarian Great Axe Ornamentation                | IT63    |
|  40696 | Tunarian Dagger Ornamentation                   | IT63    |
|  40697 | Tunarian Spear Ornamentation                    | IT63    |
|  40698 | Tunarian Fist Ornamentation                     | IT63    |
|  40736 | Riftseeker Hammer Ornamentation                 | IT63    |
|  40737 | Riftseeker Great Hammer Ornamentation           | IT63    |
|  40738 | Riftseeker Blade Ornamentation                  | IT63    |
|  40739 | Riftseeker Great Blade Ornamentation            | IT63    |
|  40740 | Riftseeker Short Spear Ornamentation            | IT63    |
|  40741 | Riftseeker Glaive Ornamentation                 | IT63    |
|  40742 | Riftseeker Claw Ornamentation                   | IT63    |
|  40768 | Discordant War Hammer Ornamentation             | IT63    |
|  40769 | Discordant Great Mace Ornamentation             | IT63    |
|  40770 | Discordant Blade Ornamentation                  | IT63    |
|  40771 | Discordant Great Blade Ornamentation            | IT63    |
|  40772 | Discordant Dagger Ornamentation                 | IT63    |
|  40773 | Discordant Spear Ornamentation                  | IT63    |
|  40774 | Discordant Spikefist Ornamentation              | IT63    |
|  40797 | Hammer Ornamentation of the Void                | IT63    |
|  40798 | Staff Ornamentation of the Void                 | IT63    |
|  40799 | Sword Ornamentation of the Void                 | IT63    |
|  40800 | Great Axe Ornamentation of the Void             | IT63    |
|  40801 | Dagger Ornamentation of the Void                | IT63    |
|  40802 | Pike Ornamentation of the Void                  | IT63    |
|  40803 | Knuckle Ornamentation of the Void               | IT63    |
|  41964 | Guktan War Club Ornamentation                   | IT11349 |
|  41965 | Guktan Battle Staff Ornamentation               | IT11350 |
|  41966 | Guktan Machete Ornamentation                    | IT11351 |
|  41967 | Guktan Great Machete Ornamentation              | IT11352 |
|  41968 | Guktan Twinblade Ornamentation                  | IT11353 |
|  41969 | Guktan Spear Ornamentation                      | IT11354 |
|  41970 | Guktan Skull Fist Ornamentation                 | IT11355 |
|  41971 | Child's Play Guktan Shield Ornamentation        | IT63    |
|  42991 | Obliteration Hammer Ornamentation               | IT11365 |
|  42992 | Obliteration Staff Ornamentation                | IT11366 |
|  42993 | Obliteration Blade Ornamentation                | IT11367 |
|  42994 | Obliteration Great Blade Ornamentation          | IT11368 |
|  42995 | Obliteration Dagger Ornamentation               | IT11369 |
|  42996 | Obliteration Spear Ornamentation                | IT11370 |
|  42997 | Obliteration Blade Fist Ornamentation           | IT11371 |
|  42998 | Obliteration Shield Ornamentation               | IT11372 |
|  43513 | Sebilisian War Hammer Ornamentation             | IT11357 |
|  43514 | Sebilisian Battle Staff Ornamentation           | IT11358 |
|  43515 | Sebilisian Sword Ornamentation                  | IT11359 |
|  43516 | Sebilisian Great Sword Ornamentation            | IT11360 |
|  43517 | Sebilisian Dagger Ornamentation                 | IT11361 |
|  43518 | Sebilisian Spear Ornamentation                  | IT11362 |
|  43519 | Sebilisian Blade Fist Ornamentation             | IT11363 |
|  43520 | Sebilisian Shield Ornamentation                 | IT11364 |
|  43588 | Army of Light Hammer Ornamentation              | IT11392 |
|  43589 | Army of Light Staff Ornamentation               | IT11393 |
|  43590 | Army of Light Blade Ornamentation               | IT11394 |
|  43591 | Army of Light Great Blade Ornamentation         | IT11395 |
|  43592 | Army of Light Dagger Ornamentation              | IT11396 |
|  43593 | Army of Light Spear Ornamentation               | IT11397 |
|  43594 | Army of Light Blade Fist Ornamentation          | IT11398 |
|  43595 | Army of Light Shield Ornamentation              | IT11399 |
|  43981 | Combine Arming Sword Ornamentation              | IT63    |
|  43982 | Combine Claymore Ornamentation                  | IT63    |
|  43983 | Combine Dirk Ornamentation                      | IT63    |
|  43984 | Combine Lance Ornamentation                     | IT63    |
|  43985 | Combine Katar Ornamentation                     | IT63    |
|  43986 | Combine Shield Ornamentation                    | IT63    |
|  43994 | Magi Shield Ornamentation                       | IT63    |
|  47721 | Hammer of Bones Ornamentation                   | IT11582 |
|  47722 | Staff of Bones Ornamentation                    | IT11583 |
|  47723 | Axe of Bones Ornamentation                      | IT11584 |
|  47724 | Great Blade of Bones Ornamentation              | IT11585 |
|  47725 | Dagger of Skulls Ornamentation                  | IT11586 |
|  47726 | Spear of Bones Ornamentation                    | IT11587 |
|  47727 | Clawed Skull Ornamentation                      | IT11588 |
|  48086 | Brell's Hammer Ornamentation                    | IT63    |
|  48966 | Tunare Bow Ornamentation                        | IT11634 |
|  48967 | Bristlebane Rod Ornamentation                   | IT11635 |
|  48982 | Heartfelt Bow Ornamentation                     | IT11620 |
|  48983 | Erollisi Marr Staff Ornamentation               | IT11621 |
|  50485 | Innoruuk Dagger Ornamentation                   | IT11639 |
|  50486 | Palm of Quellious Ornamentation                 | IT11640 |
|  50859 | Bound Rune Scimitar Ornamentation               | IT11622 |
|  50860 | Bound Rune Great Scimitar Ornamentation         | IT11623 |
|  50861 | Bound Rune Rod Ornamentation                    | IT11624 |
|  50862 | Bound Rune Staff Ornamentation                  | IT11625 |
|  50863 | Bound Rune Dagger Ornamentation                 | IT11626 |
|  50864 | Bound Rune Spear Ornamentation                  | IT11627 |
|  50865 | Bound Rune Fist Ornamentation                   | IT11628 |
|  50866 | Bound Rune Shield Ornamentation                 | IT11629 |
|  50867 | Bound Rune Bow Ornamentation                    | IT11630 |
|  51792 | Obliteration Ornamentation                      | IT63    |
|  51793 | Army of Light Ornamentation                     | IT63    |
|  52189 | Terris Thule Dagger Ornamentation               | IT11877 |
|  52190 | Morrel Thule Lance Ornamentation                | IT11878 |
|  54937 | Sword of Avanish Ornamentation                  | IT63    |
|  54940 | Pike of Avanish Ornamentation                   | IT63    |
|  55432 | Fiendish Pumpkin Sword Ornamentation            | IT11883 |
|  55433 | Fiendish Pumpkin Greatsword Ornamentation       | IT11884 |
|  55434 | Fiendish Pumpkin Mace Ornamentation             | IT11885 |
|  55435 | Fiendish Pumpkin Maul Ornamentation             | IT11886 |
|  55436 | Fiendish Pumpkin Rapier Ornamentation           | IT11887 |
|  55437 | Fiendish Pumpkin Spear Ornamentation            | IT11888 |
|  55438 | Fiendish Pumpkin Fist Ornamentation             | IT11889 |
|  55439 | Fiendish Pumpkin Shield Ornamentation           | IT11890 |
|  55440 | Fiendish Pumpkin Bow Ornamentation              | IT11891 |
|  55891 | Slashing Emerald Dragon Ornamentation           | IT63    |
|  57465 | Snowstorm Axe Ornamentation                     | IT63    |
|  57466 | Snowstorm Greataxe Ornamentation                | IT63    |
|  57467 | Snowstorm Staff Ornamentation                   | IT63    |
|  57468 | Snowstorm Greatstaff Ornamentation              | IT63    |
|  57469 | Snowstorm Dagger Ornamentation                  | IT63    |
|  57470 | Snowstorm Spear Ornamentation                   | IT63    |
|  57471 | Snowstorm Cestus Ornamentation                  | IT63    |
|  57472 | Snowstorm Shield Ornamentation                  | IT63    |
|  57473 | Snowstorm Bow Ornamentation                     | IT63    |
|  57527 | Cupid Bow Ornamentation                         | IT63    |
|  57528 | Heart Shield Ornamentation                      | IT63    |
|  59477 | Gift: Child's Play Cardboard Tube Ornamentation | IT63    |
|  61970 | Elderwood Axe Ornamentation                     | IT63    |
|  64692 | Righteous Scimitar Ornamentation                | IT12249 |
|  64693 | Righteous Great Sword Ornamentation             | IT12250 |
|  64694 | Righteous Mace Ornamentation                    | IT12251 |
|  64696 | Righteous Rapier Ornamentation                  | IT12253 |
|  64697 | Righteous Lance Ornamentation                   | IT12254 |
|  64698 | Righteous Claw Ornamentation                    | IT12256 |
|  64699 | Righteous Shield Ornamentation                  | IT12257 |
|  64700 | Righteous Bow Ornamentation                     | IT12258 |
|  64731 | Ravager's Maul Ornamentation                    | IT12274 |
|  64732 | Ravager's Rapier Ornamentation                  | IT12275 |
|  64733 | Ravager's Lance Ornamentation                   | IT12276 |
|  64734 | Ravager's Claw Ornamentation                    | IT12277 |
|  64736 | Ravager's Bow Ornamentation                     | IT12280 |
|  64949 | Ruler Ornamentation                             | IT12282 |
| 100110 | Shield of Valor Ornamentation                   | IT63    |
| 100111 | Buckler of Valor Ornamentation                  | IT63    |
| 100112 | Shield of Fire Ornamentation                    | IT63    |
| 100113 | Buckler of Fire Ornamentation                   | IT63    |
| 100114 | Shield of Ice Ornamentation                     | IT63    |
| 100115 | Buckler of Ice Ornamentation                    | IT63    |
| 100116 | Shield of Earth Ornamentation                   | IT63    |
| 100117 | Buckler of Earth Ornamentation                  | IT63    |
| 100118 | Shield of Air Ornamentation                     | IT63    |
| 100119 | Buckler of Air Ornamentation                    | IT63    |
| 100120 | Prismatic Shield Ornamentation                  | IT63    |
| 100121 | Prismatic Buckler Ornamentation                 | IT63    |
| 100122 | Were-Orc Bone Shield Ornamentation              | IT63    |
| 124278 | Obsidian Scale Hammer Ornamentation             | IT10795 |
| 124279 | Obsidian Scale Great Hammer Ornamentation       | IT10796 |
| 124280 | Obsidian Scale Great Staff Ornamentation        | IT10774 |
| 124282 | Obsidian Scale Spiked Whip Ornamentation        | IT10787 |
| 124283 | Obsidian Scale Longsword Ornamentation          | IT10791 |
| 124284 | Obsidian Scale Greatsword Ornamentation         | IT10792 |
| 124285 | Obsidian Scale Katana Ornamentation             | IT10797 |
| 124286 | Obsidian Scale Skean Ornamentation              | IT10798 |
| 124287 | Obsidian Scale Curved Stiletto Ornamentation    | IT10799 |
| 124289 | Obsidian Scale Tonfa Ornamentation              | IT10783 |
| 124290 | Obsidian Scale Crescent Shield Ornamentation    | IT10781 |
| 124291 | Obsidian Scale Bulwark Ornamentation            | IT10790 |
| 124292 | Obsidian Scale Bow Ornamentation                | IT10789 |
+--------+-------------------------------------------------+---------+
Reply With Quote
  #4  
Old 11-24-2011, 03:28 PM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 2,072
Default

While it seems simple to implement. I briefly looked into this and noticed that the ornamentations have a charm file script which adds another level of complexity to implementing what live has in place already as you figure out the variables involved with that. Otherwise sending a stored graphic packet from the database is fairly simple.

Sent from Droid
Reply With Quote
  #5  
Old 11-25-2011, 02:15 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Yeah, Akkadius, that is what I had mentioned. My bet is that they use that to call a script that has the correct model number to apply when doing the combine. We don't need to implement them the same as Live does, as long as we can find a way that works and is easy enough to manage after getting item dumps from 13th floor.

Seems to me that they realized using scripts to handle the combine is not a very smart way to handle it and made it so they can do it via the DB instead. Though, I am wondering if they have some kinda hash in the script that handles the part that deals with what ornamentation models can work with what type of weapon.

Looking closer at their charm script file names, it appears they are categorized by the type of item, such as "ITEMTransfigShield" and "ITEMTransfig1HB" in the 2 examples I gave. Since I don't see anything else in the fields of those items that specify item type for the type that can be used, I assume that string is used to determine that. So, I still think we could get away with not having to use individual script files or anything funky like that. We should be able to just do a switch case on the type of item that is trying to be ornamented, and then to a string compare against the known charmfileids for each type to see if it matches the correct type for that ornamentation container.

Yeah, Cavedude, that query is useful. Looks like it wouldn't take long at all to make a query to add the correct models for each of the ones set to IT63. I am still not sure of the best way to provide that query to people, other than giving a warning about being careful when you run it from the SVN as an optional update. Once we have the query in created, it wouldn't be too hard to just remember to update that whenever you do another 13th floor dump.

It is kinda odd that they have some newer ones with the model numbers and some without. Could be that it is due to multiple people working on items and doing them differently I guess. Could also be that they still don't use the model numbers there, but that they add them in just for reference.

Either way, I still have to work out the corpse blob stuff first I think. SQLDev01 was kind enough to help (he did most of the work lol) create the query to move the blobs out into individual fields of some new tables that will replace the existing one for player_corpses. Though, I will still need to check with devs about the old "classic_db" blob format to see if that needs to be dealt with as well, cause that could make things considerably harder to work out with a single query for all corpse blobs. I can leave that discussion for another thread though, heh.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
Reply


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 07:23 PM.


 

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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3