From aecc6381e680d41fb551ace06a0e760e0d21f65d Mon Sep 17 00:00:00 2001 From: Dragon Slayer <85514184+DragonSlayer62@users.noreply.github.com> Date: Thu, 7 May 2026 21:25:51 -0500 Subject: [PATCH 1/4] Publish 123 Weapons and Armors - [ADD] Added Publish 123 Weapons and armors --- data/js/server/data/material_types.js | 11 +++++++++++ source/combat.cpp | 28 +++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/data/js/server/data/material_types.js b/data/js/server/data/material_types.js index fee58405b..b852e48f9 100644 --- a/data/js/server/data/material_types.js +++ b/data/js/server/data/material_types.js @@ -36,6 +36,11 @@ const itemTileIDList = [ //New ToL Weapons 0xaea4, 0xaea5, 0xaeb3, 0xaeb4, 0xaec2, 0xaec3, 0xaed1, 0xaed2, + // Publish 123 Weapons + 0xB4BF, 0xB4C0, 0xB4C1, 0xB4C2, 0xB4C3, 0xB4C4, 0xB4C5, 0xB4C6, 0xB4C7, 0xB4C8, 0xB4C9, + 0xB4CA, 0xB4CB, 0xB4CC, 0xB4CD, 0xB4CE, 0xB4D4, 0xB4D5, 0xB4D6, 0xB4D7, 0xB4DA, 0xB4DB, + 0xB4DC, 0xB4DD, 0xB4DE, 0xB4DF, 0xB4E0, 0xB4E1, + // Armor 0x13bb, 0x13be, 0x13bf, 0x13c0, 0x13c3, 0x13c4, 0x13eb, 0x13ec, 0x13ed, 0x13ee, 0x13ef, 0x13f0, 0x13f1, 0x13f2, 0x1408, 0x1409, 0x140a, 0x140b, 0x140c, 0x140d, 0x140e, 0x140f, @@ -54,6 +59,9 @@ const itemTileIDList = [ 0xaebf, 0xaec0, 0xaec6, 0xaec7, 0xaec8, 0xaec9, 0xaeca, 0xaecb, 0xaecc, 0xaecd, 0xaece, 0xaecf, 0xaed5, 0xaed6, 0xaed7, 0xaed8, 0xaed9, 0xaeda, 0xaedb, + // Publish 123 Armors + 0xB4E2, 0xB4E3, + // Shields 0x1b72, 0x1b73, 0x1b74, 0x1b75, 0x1b76, 0x1b77, 0x1b7b, 0x2b01, 0x4201, 0x4202, 0x4203, 0x4204, 0x4206, 0x4208, 0x4209, 0x420a, 0xa649, 0xa64a, 0xa831, 0xa832, 0x7818, 0x7817, @@ -132,6 +140,9 @@ const itemTileIDList = [ 0xa700, 0xa701, 0xa702, 0xa703, 0xb2b7, 0xb2b8, 0xb2b9, 0xb2ba, 0xb298, 0xb299, 0xb29a, 0xb29b, 0xb29c, 0xb29d, 0xaea3, 0xaeb2, 0xaec1, 0xaed0, 0xb1de, + // Publish 123 Clothing + 0xB40A, + // Armor 0x2794, 0x2797, 0x2798, 0x405f, 0x4060, 0x4061, 0x4062, 0x4063, 0x4064, 0x4065, 0x4066 ]], diff --git a/source/combat.cpp b/source/combat.cpp index d7ebcf0e9..e072b4bb9 100644 --- a/source/combat.cpp +++ b/source/combat.cpp @@ -727,6 +727,8 @@ UI08 CHandleCombat::GetWeaponType( CItem *i ) case 0x48BB: //gargish katana - SA case 0xA28B: //bladed whip - ToL case 0xA293: //bladed whip - ToL + case 0xB4CD: //Gargish Bokuto Publish 123 + case 0xB4CE: //Gargish Bokuto Publish 123 return SLASH_SWORDS; // One-Handed Lg. Swords case 0x0F5E: //broadsword @@ -768,6 +770,8 @@ UI08 CHandleCombat::GetWeaponType( CItem *i ) case 0x2D32: //rune blade - ML case 0x0908: //gargish talwar - SA case 0x4075: //gargish talwar - SA + case 0xB4BF: //Tachi Publish 123 + case 0xB4C0: //Tachi Publish 123 return TWOHND_LG_SWORDS; // Bardiche case 0x0F4D: //bardiche @@ -816,6 +820,8 @@ UI08 CHandleCombat::GetWeaponType( CItem *i ) case 0x48B1: //gargish battleaxe - SA case 0x48B2: //gargish axe - SA case 0x48B3: //gargish axe - SA + case 0xB4DE: //Skull_Axe Publish 123 + case 0xB4DF: //Skull_Axe Publish 123 return TWOHND_AXES; // Default Maces case 0x0DF2: // Wand @@ -861,6 +867,12 @@ UI08 CHandleCombat::GetWeaponType( CItem *i ) case 0xAEB3: //Water Paladin Hammer - ToL case 0xAEC2: //Earth Paladin Hammer - ToL case 0xAED1: //Fire Paladin Hammer - ToL + case 0xB4C1: //Escrima Publish 123 + case 0xB4C2: //Escrima Publish 123 + case 0xB4CB: //Gargish Otsuchi Publish 123 + case 0xB4CC: //Gargish Otsuchi Publish 123 + case 0xB4DA: //Skull_Mace Publish 123 + case 0xB4DB: //Skull_Mace Publish 123 return DEF_MACES; // Large Maces case 0x13F4: //crook @@ -908,6 +920,8 @@ UI08 CHandleCombat::GetWeaponType( CItem *i ) case 0xA348: //gargoyle skull staff east case 0xA7C3: //candycane staff case 0xA7C4: //candycane staff + case 0xB4C3: //Bo Staff Publish 123 + case 0xB4C4: //Bo Staff Publish 123 return LG_MACES; // Bows case 0x13B1: //bow @@ -929,6 +943,8 @@ UI08 CHandleCombat::GetWeaponType( CItem *i ) case 0x13FD: //heavy crossbow case 0x26C3: //repeating crossbow - AoS case 0x26CD: //repeating crossbow - AoS + case 0xB4DC: //Skull_Crossbow Publish 123 + case 0xB4DD: //Skull_Crossbow Publish 123 return XBOWS; case 0x27AA: //fukiya - SE - Blowgun, uses Dart ammo (0x2806 or 0x2804) case 0x27F5: //fukiya - SE - Blowgun, uses Dart ammo (0x2806 or 0x2804) @@ -963,6 +979,12 @@ UI08 CHandleCombat::GetWeaponType( CItem *i ) case 0xAEB4: //Water Paladin fork - ToL case 0xAEC3: //Earth Paladin fork - ToL case 0xAED2: //Fire Paladin fork - ToL + case 0xB4C7: //Tanto Publish 123 + case 0xB4C8: //Tanto Publish 123 + case 0xB4C9: //Gargish Tanto Publish 123 + case 0xB4CA: //Gargish Tanto Publish 123 + case 0xB4D4: //Skull_Blade Publish 123 + case 0xB4D5: //Skull_Blade Publish 123 return DEF_FENCING; // Stabbing Fencing Weapons case 0x0E87: //pitchfork @@ -988,6 +1010,10 @@ UI08 CHandleCombat::GetWeaponType( CItem *i ) case 0x48C9: //gargish pike - SA case 0x48CA: //gargish lance - SA case 0x48CB: //gargish lance - SA + case 0xB4C5: //Yari Publish 123 + case 0xB4C6: //Yari Publish 123 + case 0xB4D6: //Skull_Spear Publish 123 + case 0xB4D7: //Skull_Spear Publish 123 return TWOHND_FENCING; case 0x27AF: //sai - SE case 0x27FA: //sai - SE @@ -1012,6 +1038,8 @@ UI08 CHandleCombat::GetWeaponType( CItem *i ) case 0x406C: //gargish cyclone - SA case 0x090A: //gargish soul glaive - SA case 0x406B: //gargish soul glaive - SA + case 0xB4E0: //Skull_Glaive_G Publish 123 + case 0xB4E1: //Skull_Glaive_G Publish 123 return THROWN; default: // Wrestling return WRESTLING; From fb2b9993e69c7320e496ecd2f9dab56c8e84c1e7 Mon Sep 17 00:00:00 2001 From: Dragon Slayer <85514184+DragonSlayer62@users.noreply.github.com> Date: Thu, 7 May 2026 21:38:46 -0500 Subject: [PATCH 2/4] Some updates --- data/js/server/data/material_types.js | 18 ++++++++------ data/js/server/data/weapontypes.js | 36 ++++++++++++++++++++++++++- 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/data/js/server/data/material_types.js b/data/js/server/data/material_types.js index b852e48f9..7c58c774e 100644 --- a/data/js/server/data/material_types.js +++ b/data/js/server/data/material_types.js @@ -177,23 +177,25 @@ const itemTileIDList = [ ]] ]; +/** @type { ( itemToCheck: Item | null, idToCheck?: number ) => string } */ function GetItemMaterialType( itemToCheck, idToCheck ) { var itemTileID = 0; + var materialType; + if( ValidateObject( itemToCheck )) { - // Return custom material from item tag, if it exists - if( itemToCheck.GetTag( "materialType" )) + materialType = itemToCheck.GetTag( "materialType" ); + if( materialType ) { - return itemToCheck.GetTag( "materialType" ); + return materialType.toString(); } - // Otherwise return material based on item's ID itemTileID = itemToCheck.id; } else { - itemTileID = idToCheck; + itemTileID = idToCheck || 0; } for( var i = 0; i < itemTileIDList.length; i++ ) @@ -243,6 +245,7 @@ const resourceTileIDList = [ ]]*/ ]; +/** @type { ( idToCheck: number ) => string } */ function GetResourceType( idToCheck ) { for( var i = 0; i < resourceTileIDList.length; i++ ) @@ -261,13 +264,14 @@ function GetResourceType( idToCheck ) const mapTileIDList = [ ]; +/** @type { ( mapTileID: number ) => string } */ function GetGroundMaterialType( mapTileID ) { - for( var i = 0; i < mapTileIDListList.length; i++ ) + for( var i = 0; i < mapTileIDList.length; i++ ) { for( var j = 0; j < mapTileIDListList[i].length; j++ ) { - if( mapTileIDListList[i][j].indexOf( mapTileID ) > -1 ) + if( mapTileIDList[i][j].indexOf( mapTileID ) > -1 ) { return mapTileIDListList[i][0]; } diff --git a/data/js/server/data/weapontypes.js b/data/js/server/data/weapontypes.js index 4d1db3c62..acab9d5d2 100644 --- a/data/js/server/data/weapontypes.js +++ b/data/js/server/data/weapontypes.js @@ -46,6 +46,7 @@ // "WRESTLING" // "THROWING" +/** @type { ( mChar: Character | null, itemID: number | null ) => string } */ function GetWeaponType( mChar, itemID ) { var weaponType; @@ -97,6 +98,8 @@ function GetWeaponType( mChar, itemID ) case 0x48C7: //gargish bone harvester - SA case 0xA28B: // Bladed Whip - tol case 0xA293: // Bladed Whip - tol + case 0xB4CD: //Gargish Bokuto Publish 123 + case 0xB4CE: //Gargish Bokuto Publish 123 weaponType = "DEF_SWORDS"; break; // Default Swords case 0x13F6: //butcher knife @@ -158,6 +161,10 @@ function GetWeaponType( mChar, itemID ) case 0x27F3: //bokuto - SE case 0x2D32: //rune blade - ML case 0x2D26: //rune blade - ML + case 0x0908: //gargish talwar - SA + case 0x4075: //gargish talwar - SA + case 0xB4BF: //Tachi Publish 123 + case 0xB4C0: //Tachi Publish 123 weaponType = "TWOHND_LG_SWORDS"; break; // Bardiche case 0x0F4D: //bardiche @@ -206,6 +213,8 @@ function GetWeaponType( mChar, itemID ) case 0x48B1: //gargish battleaxe - SA case 0x48B2: //gargish axe - SA case 0x48B3: //gargish axe - SA + case 0xB4DE: //Skull_Axe Publish 123 + case 0xB4DF: //Skull_Axe Publish 123 weaponType = "TWOHND_AXES"; break; // Default Maces case 0x0DF2: // Wand @@ -249,6 +258,12 @@ function GetWeaponType( mChar, itemID ) case 0xAEB3: //Water Paladin Hammer - ToL case 0xAEC2: //Earth Paladin Hammer - ToL case 0xAED1: //Fire Paladin Hammer - ToL + case 0xB4C1: //Escrima Publish 123 + case 0xB4C2: //Escrima Publish 123 + case 0xB4CB: //Gargish Otsuchi Publish 123 + case 0xB4CC: //Gargish Otsuchi Publish 123 + case 0xB4DA: //Skull_Mace Publish 123 + case 0xB4DB: //Skull_Mace Publish 123 weaponType = "DEF_MACES"; break; // Large Maces case 0x1438: //war hammer @@ -267,6 +282,10 @@ function GetWeaponType( mChar, itemID ) case 0x48C1: //gargish war hammer - SA case 0x48CC: //gargish tessen - SA case 0x48CD: //gargish tessen - SA + case 0xA7C3: //candycane staff + case 0xA7C4: //candycane staff + case 0xB4C3: //Bo Staff Publish 123 + case 0xB4C4: //Bo Staff Publish 123 weaponType = "LG_MACES"; break; // Staffs - treated differently in some cases than other maces case 0x13F4: //crook @@ -311,6 +330,8 @@ function GetWeaponType( mChar, itemID ) case 0x27F0: //yumi - SE case 0x2D1F: //magical shortbow - ML case 0x2D2B: //magical shortbow - ML + case 0xB4DC: //Skull_Crossbow Publish 123 + case 0xB4DD: //Skull_Crossbow Publish 123 weaponType = "BOWS"; break; // Crossbows case 0x0F4F: //crossbow @@ -353,6 +374,12 @@ function GetWeaponType( mChar, itemID ) case 0xAEB4: //Water Paladin fork - ToL case 0xAEC3: //Earth Paladin fork - ToL case 0xAED2: //Fire Paladin fork - ToL + case 0xB4C7: //Tanto Publish 123 + case 0xB4C8: //Tanto Publish 123 + case 0xB4C9: //Gargish Tanto Publish 123 + case 0xB4CA: //Gargish Tanto Publish 123 + case 0xB4D4: //Skull_Blade Publish 123 + case 0xB4D5: //Skull_Blade Publish 123 weaponType = "DEF_FENCING"; break; // Stabbing Fencing Weapons case 0x0E87: //pitchfork @@ -382,6 +409,10 @@ function GetWeaponType( mChar, itemID ) case 0x48C9: //gargish pike - SA case 0x48CA: //gargish lance - SA case 0x48CB: //gargish lance - SA + case 0xB4C5: //Yari Publish 123 + case 0xB4C6: //Yari Publish 123 + case 0xB4D6: //Skull_Spear Publish 123 + case 0xB4D7: //Skull_Spear Publish 123 weaponType = "TWOHND_FENCING"; break; case 0x27AF: //sai - SE case 0x27FA: //sai - SE @@ -406,7 +437,9 @@ function GetWeaponType( mChar, itemID ) case 0x406C: //gargish cyclone - SA case 0x090A: //gargish soul glaive - SA case 0x406B: //gargish soul glaive - SA - weapontype = "THROWN"; break; + case 0xB4E0: //Skull_Glaive_G Publish 123 + case 0xB4E1: //Skull_Glaive_G Publish 123 + weaponType = "THROWN"; break; default: // Wrestling weaponType = "WRESTLING"; break; } @@ -414,6 +447,7 @@ function GetWeaponType( mChar, itemID ) return weaponType; } +/** @type { ( weaponType: string ) => string } */ function GetCombatSkill( weaponType ) { var combatSkill; From 6d4d456ecc30467af907325447425d5306059ada Mon Sep 17 00:00:00 2001 From: Dragon Slayer <85514184+DragonSlayer62@users.noreply.github.com> Date: Thu, 7 May 2026 21:42:41 -0500 Subject: [PATCH 3/4] Update material_types.js --- data/js/server/data/material_types.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/js/server/data/material_types.js b/data/js/server/data/material_types.js index 7c58c774e..ffbae6be4 100644 --- a/data/js/server/data/material_types.js +++ b/data/js/server/data/material_types.js @@ -177,7 +177,7 @@ const itemTileIDList = [ ]] ]; -/** @type { ( itemToCheck: Item | null, idToCheck?: number ) => string } */ +/** @type { ( itemToCheck: Item | null, idToCheck?: number ) => string | number | boolean } */ function GetItemMaterialType( itemToCheck, idToCheck ) { var itemTileID = 0; @@ -188,7 +188,7 @@ function GetItemMaterialType( itemToCheck, idToCheck ) materialType = itemToCheck.GetTag( "materialType" ); if( materialType ) { - return materialType.toString(); + return materialType; } itemTileID = itemToCheck.id; From 09230cca1eb1e712b8eb581bc376c8deb030a4fe Mon Sep 17 00:00:00 2001 From: Dragon Slayer <85514184+DragonSlayer62@users.noreply.github.com> Date: Thu, 7 May 2026 21:53:22 -0500 Subject: [PATCH 4/4] Update material_types.js --- data/js/server/data/material_types.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/data/js/server/data/material_types.js b/data/js/server/data/material_types.js index ffbae6be4..a1e92ab31 100644 --- a/data/js/server/data/material_types.js +++ b/data/js/server/data/material_types.js @@ -181,21 +181,20 @@ const itemTileIDList = [ function GetItemMaterialType( itemToCheck, idToCheck ) { var itemTileID = 0; - var materialType; if( ValidateObject( itemToCheck )) { - materialType = itemToCheck.GetTag( "materialType" ); - if( materialType ) + // Return custom material from item tag, if it exists + if( itemToCheck.GetTag( "materialType" )) { - return materialType; + return itemToCheck.GetTag( "materialType" ); } - + // Otherwise return material based on item's ID itemTileID = itemToCheck.id; } else { - itemTileID = idToCheck || 0; + itemTileID = idToCheck; } for( var i = 0; i < itemTileIDList.length; i++ )