Jump to content

Fixing Dragon Soul Item Slot Issues in Inventory After Extending WEAR_MAX_NUM


Recommended Posts

  • Premium

Hello,

Today, I am sharing a fix for the slot issue of Dragon Soul (DS) items and other slots in the inventory. The issue occurred when I added a system that required extending the WEAR_MAX_NUM by +1. I noticed that most of the slots were different, especially the Dragon Soul equip items. As shown in the photo below, the Dragon Soul items appeared in the inventory despite being active, indicating that their positions had changed in the database.

spacer.png

To fix this issue, you need to move all Dragon Soul items back to the Dragon Soul Inventory, as shown in the following photo. Since my server is live and has online users, I asked them to make some space in the Dragon Soul Inventory. It is crucial to ensure that players do not lose their Dragon Soul items.

After applying the following SQL command, I observed that the items returned to the Dragon Soul Inventory:

spacer.png

Here is the SQL code used to fix the issue:

UPDATE `item`
SET `pos` = 0
WHERE `vnum` BETWEEN 110000 AND 165460;

SET @cur_owner_id = 0;
SET @cur_pos = 0;

-- For vnum range 110000 to 110460
SET @cur_pos = 0;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 0) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 110000 AND 110460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 110000 AND 110460;

-- For vnum range 111000 to 111460
SET @cur_pos = 32;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 32) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 111000 AND 111460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 111000 AND 111460;

-- For vnum range 112000 to 112460
SET @cur_pos = 64;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 64) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 112000 AND 112460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 112000 AND 112460;

-- For vnum range 113000 to 113460
SET @cur_pos = 96;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 96) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 113000 AND 113460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 113000 AND 113460;

-- For vnum range 114000 to 114460
SET @cur_pos = 128;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 128) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 114000 AND 114460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 114000 AND 114460;

-- For vnum range 115000 to 115460
SET @cur_pos = 160;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 160) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 115000 AND 115460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 115000 AND 115460;

-- For vnum range 120000 to 120460
SET @cur_pos = 192;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 192) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 120000 AND 120460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 120000 AND 120460;

-- For vnum range 121000 to 121460
SET @cur_pos = 224;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 224) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 121000 AND 121460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 121000 AND 121460;

-- For vnum range 122000 to 122460
SET @cur_pos = 256;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 256) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 122000 AND 122460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 122000 AND 122460;

-- For vnum range 123000 to 123460
SET @cur_pos = 288;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 288) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 123000 AND 123460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 123000 AND 123460;

-- For vnum range 124000 to 124460
SET @cur_pos = 320;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 320) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 124000 AND 124460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 124000 AND 124460;

-- For vnum range 125000 to 125460
SET @cur_pos = 352;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 352) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 125000 AND 125460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 125000 AND 125460;

-- For vnum range 130000 to 130460
SET @cur_pos = 384;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 384) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 130000 AND 130460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 130000 AND 130460;

-- For vnum range 131000 to 131460
SET @cur_pos = 416;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 416) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 131000 AND 131460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 131000 AND 131460;

-- For vnum range 132000 to 132460
SET @cur_pos = 448;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 448) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 132000 AND 132460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 132000 AND 132460;

-- For vnum range 133000 to 133460
SET @cur_pos = 480;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 480) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 133000 AND 133460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 133000 AND 133460;

-- For vnum range 134000 to 134460
SET @cur_pos = 512;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 512) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 134000 AND 134460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 134000 AND 134460;

-- For vnum range 135000 to 135460
SET @cur_pos = 544;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 544) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 135000 AND 135460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 135000 AND 135460;

-- For vnum range 140000 to 140460
SET @cur_pos = 576;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 576) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 140000 AND 140460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 140000 AND 140460;

-- For vnum range 141000 to 141460
SET @cur_pos = 608;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 608) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 141000 AND 141460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 141000 AND 141460;

-- For vnum range 142000 to 142460
SET @cur_pos = 640;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 640) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 142000 AND 142460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 142000 AND 142460;

-- For vnum range 143000 to 143460
SET @cur_pos = 672;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 672) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 143000 AND 143460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 143000 AND 143460;

-- For vnum range 144000 to 144460
SET @cur_pos = 704;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 704) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 144000 AND 144460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 144000 AND 144460;

-- For vnum range 145000 to 145460
SET @cur_pos = 736;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 736) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 145000 AND 145460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 145000 AND 145460;

-- For vnum range 150000 to 150460
SET @cur_pos = 768;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 768) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 150000 AND 150460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 150000 AND 150460;

-- For vnum range 151000 to 151460
SET @cur_pos = 800;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 800) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 151000 AND 151460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 151000 AND 151460;

-- For vnum range 152000 to 152460
SET @cur_pos = 832;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 832) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 152000 AND 152460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 152000 AND 152460;

-- For vnum range 153000 to 153460
SET @cur_pos = 864;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 864) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 153000 AND 153460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 153000 AND 153460;

-- For vnum range 154000 to 154460
SET @cur_pos = 896;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 896) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 154000 AND 154460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 154000 AND 154460;

-- For vnum range 155000 to 155460
SET @cur_pos = 928;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 928) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 155000 AND 155460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 155000 AND 155460;

-- For vnum range 160000 to 160460
SET @cur_pos = 960;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 960) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 160000 AND 160460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 160000 AND 160460;

-- For vnum range 161000 to 161460
SET @cur_pos = 992;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 992) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 161000 AND 161460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 161000 AND 161460;

-- For vnum range 162000 to 162460
SET @cur_pos = 1024;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 1024) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 162000 AND 162460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 162000 AND 162460;

-- For vnum range 163000 to 163460
SET @cur_pos = 1056;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 1056) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 163000 AND 163460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 163000 AND 163460;

-- For vnum range 164000 to 164460
SET @cur_pos = 1088;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 1088) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 164000 AND 164460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 164000 AND 164460;

-- For vnum range 165000 to 165460
SET @cur_pos = 1120;
UPDATE `item` i
JOIN (
    SELECT id, owner_id, @cur_pos := IF(@cur_owner_id = owner_id, @cur_pos + 1, 1120) AS new_pos, @cur_owner_id := owner_id
    FROM `item`
    WHERE `vnum` BETWEEN 165000 AND 165460
    ORDER BY owner_id, vnum, id
) sub ON i.id = sub.id
SET i.`pos` = sub.new_pos, i.`window` = 'DRAGON_SOUL_INVENTORY'
WHERE i.`vnum` BETWEEN 165000 AND 165460;

 

Note: Replace vnum with the appropriate vnum based on your system's configuration.

 

Edited by Metin2 Dev International
Core X - External 2 Internal
  • kekw 1
  • Confused 1
  • Scream 1
  • Love 1

───────────────────────────────────────────
— Development & Research —
Metin2 Systems • Client/Server • Reverse Engineering

Discord:  saudidos

If I helped you, consider leaving a like. ✦
───────────────────────────────────────────
 

  • Premium

I mean, yes..  if you increment WEAR_MAX_NUM you are gonna shift all DS equipment cells. Same issue for the multi inventories, since most people have it just as an extension of INVENTORY instead of creating new window types.

One other way, in a live server, for your specific case, would have been to create WEAR_BASE_MAX_NUM, and then add new WEAR_* types for cells going after the DS equipment. You would need to adjust all the functions that check the equipment and adapt it though.

 

  • Premium
14 minutes ago, Intel said:

I mean, yes..  if you increment WEAR_MAX_NUM you are gonna shift all DS equipment cells. Same issue for the multi inventories, since most people have it just as an extension of INVENTORY instead of creating new window types.

One other way, in a live server, for your specific case, would have been to create WEAR_BASE_MAX_NUM, and then add new WEAR_* types for cells going after the DS equipment. You would need to adjust all the functions that check the equipment and adapt it though.

 

Thank you for your input!

You're right; incrementing WEAR_MAX_NUM does shift the positions of Dragon Soul equipment cells, which is why we encountered the issue. I understand that extending INVENTORY instead of creating new window types can lead to similar problems with multi-inventories.

Your suggestion of creating a WEAR_BASE_MAX_NUM and then adding new WEAR_* types for cells after the Dragon Soul equipment is a valid approach. It would certainly help maintain the current positions of existing items and avoid shifting issues. However, as you mentioned, this requires adjusting all functions that check equipment and adapting them accordingly, which can be quite a bit of work, especially on a live server.

In our case, we opted for the SQL fix to promptly address the issue without requiring significant changes to the codebase. This approach allowed us to ensure that the Dragon Soul items were returned to their correct positions in the Dragon Soul Inventory with minimal disruption to our live server.

Thanks again for your suggestion. It’s always good to have multiple approaches to solving such issues.

  • Good 1

───────────────────────────────────────────
— Development & Research —
Metin2 Systems • Client/Server • Reverse Engineering

Discord:  saudidos

If I helped you, consider leaving a like. ✦
───────────────────────────────────────────
 

Don't use any images from : imgur, turkmmop, freakgamers, inforge, hizliresim... Or your content will be deleted without notice...
Use : https://metin2.download/media/add/

Please use https://metin2.download/ when uploading files smaller than 100MB, otherwise the approval will take longer due to manual upload.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.