Thread: Ornamentions
View Single Post
  #18  
Old 12-16-2014, 05:29 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Quote:
Originally Posted by Bandor View Post
How do I get ornaments to work on my server? When I try to combine it in the container it says I can not combine.
Well, part of the problem is that SOE has changed how Ornamentations work since they were first implemented, so the database has different types of them from the 13th floor database dumps. Another issue is that 13th floor hasn't been getting updated in years now, so there isn't a very complete list of Ornamentations or items that can support the slot 20 and 21 type augs (which is what Ornamentations are) available in the database.

If you are running the most recent source code updates, your server should now have support for a 6th aug slot (if using a RoF+ client). You could then set the 6th aug slot on all worn items (armor and weapons) to use aug type 20, which means they could have an ornament put on them.

Once you have the aug slot available on all armor and weapons, all you need is to set all ornaments to be an augment that goes in that slot. Personally, I don't see the purpose of the ornaments that are a container that you combine with your item, so I am going to convert all Ornamentations into augments on my server to simplify things a bit.

If you plan to use RoF, the below SQL should allow ornamentation on your server. If you don't plan to use RoF, and will be using the UF client instead (no earlier client than UF supports Ornamentation), then you would need to alter this SQL a bit to instead use aug slot 5 on armor/weapons for Ornamentations (if they don't already have an aug type set in that slot).

Here is the SQL for RoF+ clients (only) to have access to Ornamentations (NOTE: This SQL is untested and I highly recommend you backup your database before running any of it!):

Code:
/* Update Aug Slots on Armor/Weapons and move Type 20 to 22 and 21 to 23 */
UPDATE items SET augslot1type = (augslot1type + 2) WHERE augslot1type = 20 OR augslot1type = 21;
UPDATE items SET augslot2type = (augslot2type + 2) WHERE augslot2type = 20 OR augslot2type = 21;
UPDATE items SET augslot3type = (augslot3type + 2) WHERE augslot3type = 20 OR augslot3type = 21;
UPDATE items SET augslot4type = (augslot4type + 2) WHERE augslot4type = 20 OR augslot4type = 21;
UPDATE items SET augslot5type = (augslot5type + 2) WHERE augslot5type = 20 OR augslot5type = 21;
UPDATE items SET augslot6type = (augslot6type + 2) WHERE augslot6type = 20 OR augslot6type = 21;


/* Remove Aug Type 20 (524288) and replace with Aug Type 22 (2097152) */
UPDATE items SET
augtype = (augtype - 524288 + 2097152)
WHERE augtype & 524288;

/* Remove Aug Type 21 (1048576) and replace with Aug Type 23 (4194304) */
UPDATE items SET
augtype = (augtype - 1048576 + 4194304)
WHERE augtype & 1048576;

/* Change existing Ornamentations (weapons only) to Type 20 Augments */
UPDATE items SET
augtype = 524288, /* Aug Type 20 */
augrestrict = 2, /* Weapons Only */
augdistiller = 0,
bagsize = 0,
bagslots = 0,
bagtype = 0,
bagwr = 0,
price = 1000,
itemclass = 0,
itemtype = 54,
loregroup = 0,
slots = 26624 /* Primary / Secondary / Range */
WHERE name LIKE "%Ornamentation" AND charmfile != "";

/* Change Ornamentations from Lucy (armor only) to Type 20 Augments (probably none of these exist in the DB yet) */
UPDATE items SET
augtype = 1048576, /* Aug Type 21 */
augrestrict = 1, /* Armor Only */
augdistiller = 0,
bagsize = 0,
bagslots = 0,
bagtype = 0,
bagwr = 0,
price = 1000,
itemclass = 0,
itemtype = 54,
loregroup = 0,
slots = 923268 /* Head / Arms / Bracers / Hands / Chest / Legs / Feet */
WHERE name LIKE "%Ornament" AND itemtype = 54 AND charmfile != "";

/* Update all Armor and Weapons to have Aug Slot 6 for Ornamentations
This only updates items that have:
Any material slot set
At least 1 Aug Slot already Defined (prevent adding from newbie/old items)
Weapon or Armor item types
Nothing already set for Aug Slot 6
Item Class 0 */
UPDATE items
SET augslot6type = 20, augslot6visible = 1, augslot6unk2 = 1
WHERE (
slots & 4 OR
slots & 128 OR
slots & 1536 OR
slots & 4096 OR
slots & 131072 OR
slots & 262144 OR
slots & 524288 OR
slots & 2048 OR
slots & 8192 OR
slots & 16384
) AND (
augslot1type > 0 OR
augslot2type > 0 OR
augslot3type > 0 OR
augslot4type > 0 OR
augslot5type > 0
) AND (
itemtype < 6 OR
itemtype = 8 OR
itemtype = 10 OR
itemtype = 35 OR
itemtype = 45
)
AND augslot6type = 0 AND itemclass = 0;
Here is similar SQL if you plan to support Weapon Ornamentations on UF. This will still allow you to use Weapon and Armor Ornamentations on RoF+, but some items will probably have all 5 aug slots used already and will not be able to be Ornamented (NOTE: DO NOT run both the above and below SQL. Only run 1 or the other depending on if you want to use the 6th (RoF+ Only) or 5th (UF+) aug slot for Ornamentation):

Code:
/* Update Aug Slots on Armor/Weapons and move Type 20 to 22 and 21 to 23 */
UPDATE items SET augslot1type = (augslot1type + 2) WHERE augslot1type = 20 OR augslot1type = 21;
UPDATE items SET augslot2type = (augslot2type + 2) WHERE augslot2type = 20 OR augslot2type = 21;
UPDATE items SET augslot3type = (augslot3type + 2) WHERE augslot3type = 20 OR augslot3type = 21;
UPDATE items SET augslot4type = (augslot4type + 2) WHERE augslot4type = 20 OR augslot4type = 21;
UPDATE items SET augslot5type = (augslot5type + 2) WHERE augslot5type = 20 OR augslot5type = 21;
UPDATE items SET augslot6type = (augslot6type + 2) WHERE augslot6type = 20 OR augslot6type = 21;


/* Remove Aug Type 20 (524288) and replace with Aug Type 22 (2097152) */
UPDATE items SET
augtype = (augtype - 524288 + 2097152)
WHERE augtype & 524288;

/* Remove Aug Type 21 (1048576) and replace with Aug Type 23 (4194304) */
UPDATE items SET
augtype = (augtype - 1048576 + 4194304)
WHERE augtype & 1048576;

/* Change existing Ornamentations (weapons only) to Type 20 Augments */
UPDATE items SET
augtype = 524288, /* Aug Type 20 */
augrestrict = 2, /* Weapons Only */
augdistiller = 0,
bagsize = 0,
bagslots = 0,
bagtype = 0,
bagwr = 0,
price = 1000,
itemclass = 0,
itemtype = 54,
loregroup = 0,
slots = 26624 /* Primary / Secondary / Range */
WHERE name LIKE "%Ornamentation" AND charmfile != "";

/* Change Ornamentations from Lucy (armor only) to Type 20 Augments (probably none of these exist in the DB yet) */
UPDATE items SET
augtype = 1048576, /* Aug Type 21 */
augrestrict = 1, /* Armor Only */
augdistiller = 0,
bagsize = 0,
bagslots = 0,
bagtype = 0,
bagwr = 0,
price = 1000,
itemclass = 0,
itemtype = 54,
loregroup = 0,
slots = 923268 /* Head / Arms / Bracers / Hands / Chest / Legs / Feet */
WHERE name LIKE "%Ornament" AND itemtype = 54 AND charmfile != "";

/* Update all Armor and Weapons to have Aug Slot 6 for Ornamentations
This only updates items that have:
Any material slot set
At least 1 Aug Slot already Defined (prevent adding from newbie/old items)
Weapon or Armor item types
Nothing already set for Aug Slot 6
Item Class 0 */
UPDATE items
SET augslot5type = 20, augslot5visible = 1, augslot5unk2 = 1
WHERE (
slots & 4 OR
slots & 128 OR
slots & 1536 OR
slots & 4096 OR
slots & 131072 OR
slots & 262144 OR
slots & 524288 OR
slots & 2048 OR
slots & 8192 OR
slots & 16384
) AND (
augslot1type > 0 OR
augslot2type > 0 OR
augslot3type > 0 OR
augslot4type > 0 OR
) AND (
itemtype < 6 OR
itemtype = 8 OR
itemtype = 10 OR
itemtype = 35 OR
itemtype = 45
)
AND augslot5type = 0 AND itemclass = 0;
This is not the ideal way to add Ornamentations to your Database, but it is a decent work-around for it. Ideally, we would find a way to start getting Database updates from Live again so the PEQ DB could be updated to match Live for armor/weapons Aug Slots for Ornamentions as well as adding all of the Armor and Weapon Ornamentations from Live. If that happens, you would just need to get the new items table from the PEQ DB, then add the ones you want (or all items) into your items table.

Currently, there are no Armor (Hero's Forge) Ornamentations in the PEQ DB as far as I know. So, if you want to use Armor Ornamentations (which are very cool and which I just implemented this week), you will have to add the Ornament Augs to your database manually. They are pretty simple to add though. You just create an aug (such as copying any existing one), then set it to aug type of 20 (52428, and set the herosforgemodel field to something like 63 or 81, or whatever armor type you want it to look like. You can see the different armor types if you are on RoF+ as a GM and type "#heromodel <modelnumber>" (example: #heromodel 63). Also note that Hero models start around 61 and go up to around 120ish, but not every number has a model available so you have to try them out in game 1 by 1 to find which are available that you like.

Sorry that I didn't have a simple answer for this question, but there are a lot of factors in why it is a bit complicated to use Ornamentations currently. They are quite cool though, and once you figure out how to make them work, it really isn't too hard to get them added.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote