actual freya branch

This commit is contained in:
2026-09-12 15:39:57 +00:00
parent 9fa534b20e
commit 8049e0a882
18540 changed files with 1228200 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
CREATE TABLE IF NOT EXISTS `custom_armorsets` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`chest` smallint(5) unsigned NOT NULL DEFAULT '0',
`legs` smallint(5) unsigned NOT NULL DEFAULT '0',
`head` smallint(5) unsigned NOT NULL DEFAULT '0',
`gloves` smallint(5) unsigned NOT NULL DEFAULT '0',
`feet` smallint(5) unsigned NOT NULL DEFAULT '0',
`skill` varchar(70) NOT NULL DEFAULT '0-0;',
`shield` smallint(5) unsigned NOT NULL DEFAULT '0',
`shield_skill_id` smallint(5) unsigned NOT NULL DEFAULT '0',
`enchant6skill` smallint(5) unsigned NOT NULL DEFAULT '0',
`mw_legs` smallint(5) unsigned NOT NULL DEFAULT '0',
`mw_head` smallint(5) unsigned NOT NULL DEFAULT '0',
`mw_gloves` smallint(5) unsigned NOT NULL DEFAULT '0',
`mw_feet` smallint(5) unsigned NOT NULL DEFAULT '0',
`mw_shield` smallint(5) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`,`chest`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+46
View File
@@ -0,0 +1,46 @@
-- Information about category:
-- Only one drop will be given per category, except in the cases when category is -1.
-- Category -1 is used for SPOIL/SWEEP drops only! Do NOT change this.
-- In general, category 0 is for adena and 1 seal stone color (each seal stone color should be in a different category).
-- In general, category 1 is for full drops and parts of equipable items. However, you can change this.
-- In general, category 2 is for all other items. However, you can change this.
-- In general, more categories are only used for RBs who have 1 item per category (i.e. do not really drop categorized),
-- with the sole exception of category 200 that is used for Life Stones. However, you can change this too.
-- You can create more categories as you see fit. Just make sure the "category" number is non-negative!!
-- Also, it is NOT a problem if category numbers are skipped (so you can have -1, 1, 5, 10 as your categories).
--
-- If you wish to allow more than one item to be given from the same category, you can
-- split them up over several categories.
-- In addition, RBs and Grandbosses (mainly) may have the exact same item repeated in multiple categories.
-- This allows mobs to give 1 copy of the drop to each of several people (if they are lucky enough to get the drops).
-- Calculation for each drop, when in categories, is equivallent in chance as when outside of categories.
-- First, the sum of chances for each category is calculated as category chance. If the category is selected
-- for drops (i.e. its chance is successful), then exactly 1 item from that category will be selected, with
-- such a chance that the overall probability is maintained unchanged.
--
-- Category Explanation (non-RaidBoss & non-GrandBoss)
-- -1 is sweep
-- 0 is adena and one of the seal stones (your choice)
-- 1 is any item that is in weapon.sql, any item in armor.sql, and some of the items from etcitem. Before dropping the column, I had those marked in etcitem.sql. However, you can recognize them easily. If they are parts unique for crafting equipable items, it's category 1.
-- 2 is almost all of the other items except:
-- 3 and 4 are used for the other two seal stones (1 category each).
--
-- Category Explanation (RaidBoss & their minions)
-- 0 is full armor and armor mats
-- 1 is full weapon and weapon mats
-- 2 is anything else (scrolls,arrows,etc)
--
-- Category Explanation (GrandBoss)
-- 0+ is defined catagories
-- Any other mobs within this range (minions, etc) use the default drop categories (most often 2)
CREATE TABLE IF NOT EXISTS `custom_droplist` (
`mobId` smallint(5) unsigned NOT NULL DEFAULT '0',
`itemId` smallint(5) unsigned NOT NULL DEFAULT '0',
`min` int(8) unsigned NOT NULL DEFAULT '0',
`max` int(8) unsigned NOT NULL DEFAULT '0',
`category` smallint(3) NOT NULL DEFAULT '0',
`chance` mediumint(7) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`mobId`,`itemId`,`category`),
KEY `key_mobId` (`mobId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -0,0 +1,11 @@
CREATE TABLE IF NOT EXISTS `custom_merchant_buylists` (
`item_id` smallint(5) unsigned NOT NULL DEFAULT '0',
`price` int(10) NOT NULL DEFAULT '0',
`shop_id` mediumint(7) unsigned NOT NULL DEFAULT '0',
`order` tinyint(3) unsigned NOT NULL DEFAULT '0',
`count` tinyint(2) NOT NULL DEFAULT '-1',
`currentCount` tinyint(2) NOT NULL DEFAULT '-1',
`time` int(11) NOT NULL DEFAULT '0',
`savetimer` bigint(13) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`shop_id`,`order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -0,0 +1,5 @@
CREATE TABLE IF NOT EXISTS `custom_merchant_shopids` (
`shop_id` mediumint(7) unsigned NOT NULL DEFAULT '0',
`npc_id` varchar(5) DEFAULT NULL,
PRIMARY KEY (`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+58
View File
@@ -0,0 +1,58 @@
CREATE TABLE IF NOT EXISTS `custom_npc`(
`id` mediumint(7) unsigned NOT NULL DEFAULT '0',
`idTemplate` smallint(5) unsigned NOT NULL DEFAULT '0',
`name` varchar(200) NOT NULL DEFAULT '',
`serverSideName` tinyint(1) NOT NULL DEFAULT '1',
`title` varchar(45) NOT NULL DEFAULT '',
`serverSideTitle` tinyint(1) NOT NULL DEFAULT '1',
`class` varchar(200) DEFAULT NULL,
`collision_radius` decimal(6,2) DEFAULT NULL,
`collision_height` decimal(6,2) DEFAULT NULL,
`level` tinyint(2) DEFAULT NULL,
`sex` enum('etc','female','male') NOT NULL DEFAULT 'etc',
`type` varchar(22) DEFAULT NULL,
`attackrange` smallint(4) DEFAULT NULL,
`hp` decimal(30,15) DEFAULT NULL,
`mp` decimal(30,15) DEFAULT NULL,
`hpreg` decimal(30,15) DEFAULT NULL,
`mpreg` decimal(30,15) DEFAULT NULL,
`str` tinyint(2) NOT NULL DEFAULT '40',
`con` tinyint(2) NOT NULL DEFAULT '43',
`dex` tinyint(2) NOT NULL DEFAULT '30',
`int` tinyint(2) NOT NULL DEFAULT '21',
`wit` tinyint(2) NOT NULL DEFAULT '20',
`men` tinyint(2) NOT NULL DEFAULT '20',
`exp` int(9) NOT NULL DEFAULT '0',
`sp` int(9) NOT NULL DEFAULT '0',
`patk` decimal(12,5) DEFAULT NULL,
`pdef` decimal(12,5) DEFAULT NULL,
`matk` decimal(12,5) DEFAULT NULL,
`mdef` decimal(12,5) DEFAULT NULL,
`atkspd` smallint(4) NOT NULL DEFAULT '230',
`critical` tinyint(1) NOT NULL DEFAULT '1',
`aggro` smallint(4) NOT NULL DEFAULT '0',
`matkspd` smallint(4) NOT NULL DEFAULT '333',
`rhand` smallint(5) unsigned NOT NULL DEFAULT '0',
`lhand` smallint(5) unsigned NOT NULL DEFAULT '0',
`enchant` tinyint(1) NOT NULL DEFAULT '0',
`walkspd` decimal(10,5) NOT NULL DEFAULT '60',
`runspd` decimal(10,5) NOT NULL DEFAULT '120',
`targetable` tinyint(1) NOT NULL DEFAULT '1',
`show_name` tinyint(1) NOT NULL DEFAULT '1',
`dropHerbGroup` tinyint(1) NOT NULL DEFAULT '0',
`basestats` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT IGNORE INTO `custom_npc` VALUES
(50007,31324,'Andromeda',1,'L2J Wedding Manager',1,'NPC.a_casino_FDarkElf',8.00,23.00,70,'female','L2WeddingManager',40,2444,2444,0.00,0.00,10,10,10,10,10,10,0,0,500,500,500,500,278,1,0,333,0,0,0,28,120,0,0,0,0),
(70010,31606,'Catrina',1,'L2J TvT Event Manager',1,'Monster2.queen_of_cat',8.00,15.00,70,'female','L2TvTEventNpc',40,2444,2444,0.00,0.00,10,10,10,10,10,10,0,0,500,500,500,500,278,1,0,333,0,0,0,28,120,0,0,0,0),
(1000003,32226,'Shiela',1,'L2J NPC Buffer',1,'LineageNPC2.K_F1_grand',11.00,22.25,70,'male','L2NpcBuffer',40,2444,2444,0.00,0.00,10,10,10,10,10,10,0,0,500,500,500,500,278,1,0,333,0,0,0,28,120,0,0,0,0),
-- eventmod Elpies
(900100,20432,'Elpy',1,'',1,'LineageMonster.elpy',5.00,4.50,1,'male','L2EventMonster',40,40,36,3.16,0.91,40,43,30,21,20,20,35,2,8,40,7,25,230,1,0,333,0,0,0,50,80,0,0,0,0),
-- eventmod Rabbits
(900101,32365,'Snow',1,'Event Manager',1,'LineageNPC2.TP_game_staff',5.00,12.50,70,'male','L2Npc',40,2444,1225,0.00,0.00,40,43,30,21,20,20,0,0,1086,471,749,313,230,1,0,333,0,0,0,68,109,1,1,0,0),
(900102,13098,'Event Treasure Chest',1,'',1,'LineageMonster.mimic_even',8.50,8.50,80,'male','L2EventChest',40,2880,1524,0.00,0.00,40,43,30,21,20,20,0,0,1499,577,1035,384,230,1,0,253,0,0,0,1,1,0,0,0,0),
-- eventmod Race
(900103,32365,'Start',1,'Event Manager',1,'LineageNPC2.TP_game_staff',5.00,12.50,70,'male','L2Npc',40,2444,1225,0.00,0.00,40,43,30,21,20,20,0,0,1086,471,749,313,230,1,0,333,0,0,0,68,109,0,0,0,0),
(900104,32365,'Finish',1,'Event Manager',1,'LineageNPC2.TP_game_staff',5.00,12.50,70,'male','L2Npc',40,2444,1225,0.00,0.00,40,43,30,21,20,20,0,0,1086,471,749,313,230,1,0,333,0,0,0,68,109,0,0,0,0);
+65
View File
@@ -0,0 +1,65 @@
CREATE TABLE IF NOT EXISTS `custom_npc_buffer` (
`npc_id` int(6) NOT NULL,
`skill_id` int(6) NOT NULL,
`skill_level` int(6) NOT NULL default '1',
`skill_fee_id` int(6) NOT NULL default '0',
`skill_fee_amount` int(6) NOT NULL default '0',
`buff_group` int(6) NOT NULL default '0',
PRIMARY KEY (`npc_id`,`skill_id`,`buff_group`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT IGNORE INTO `custom_npc_buffer` VALUES
(1000003,264,1,57,100,264),
(1000003,265,1,57,100,265),
(1000003,266,1,57,100,266),
(1000003,267,1,57,100,267),
(1000003,268,1,57,100,268),
(1000003,269,1,57,100,269),
(1000003,270,1,57,100,270),
(1000003,271,1,57,100,271),
(1000003,272,1,57,100,272),
(1000003,273,1,57,100,273),
(1000003,274,1,57,100,274),
(1000003,275,1,57,100,275),
(1000003,276,1,57,100,276),
(1000003,277,1,57,100,277),
(1000003,304,1,57,100,304),
(1000003,305,1,57,100,305),
(1000003,306,1,57,100,306),
(1000003,307,1,57,100,307),
(1000003,308,1,57,100,308),
(1000003,309,1,57,100,309),
(1000003,310,1,57,100,310),
(1000003,311,1,57,100,311),
(1000003,349,1,57,100,349),
(1000003,363,1,57,100,363),
(1000003,364,1,57,100,364),
(1000003,366,1,57,100,366),
(1000003,367,1,57,100,367),
(1000003,529,1,57,100,529),
(1000003,530,1,57,100,530),
(1000003,1032,1,57,100,1032),
(1000003,1033,1,57,100,1033),
(1000003,1035,1,57,100,1035),
(1000003,1036,1,57,100,1036),
(1000003,1040,1,57,100,1040),
(1000003,1043,1,57,100,1043),
(1000003,1044,1,57,100,1044),
(1000003,1045,1,57,100,1045),
(1000003,1048,1,57,100,1048),
(1000003,1059,1,57,100,1059),
(1000003,1062,1,57,100,1062),
(1000003,1068,1,57,100,1068),
(1000003,1077,1,57,100,1077),
(1000003,1078,1,57,100,1078),
(1000003,1085,1,57,100,1085),
(1000003,1086,1,57,100,1086),
(1000003,1182,1,57,100,1182),
(1000003,1189,1,57,100,1189),
(1000003,1191,1,57,100,1191),
(1000003,1204,1,57,100,1204),
(1000003,1240,1,57,100,1240),
(1000003,1242,1,57,100,1242),
(1000003,1243,1,57,100,1243),
(1000003,1303,1,57,100,1303),
(1000003,1397,1,57,100,1397);
@@ -0,0 +1,12 @@
CREATE TABLE IF NOT EXISTS `custom_npc_elementals` (
`npc_id` decimal(11,0) NOT NULL default '0',
`elemAtkType` tinyint(1) NOT NULL default -1,
`elemAtkValue` int(3) NOT NULL default 0,
`fireDefValue` int(3) NOT NULL default 0,
`waterDefValue` int(3) NOT NULL default 0,
`windDefValue` int(3) NOT NULL default 0,
`earthDefValue` int(3) NOT NULL default 0,
`holyDefValue` int(3) NOT NULL default 0,
`darkDefValue` int(3) NOT NULL default 0,
PRIMARY KEY (`npc_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+22
View File
@@ -0,0 +1,22 @@
CREATE TABLE IF NOT EXISTS `custom_npcaidata` (
`npc_id` int(5) NOT NULL DEFAULT '0',
`skill_chance` int(3) DEFAULT NULL,
`primary_attack` int(1) DEFAULT NULL,
`can_move` tinyint(1) NOT NULL DEFAULT 1,
`minrangeskill` int(5) DEFAULT NULL,
`minrangechance` int(3) DEFAULT NULL,
`maxrangeskill` int(5) DEFAULT NULL,
`maxrangechance` int(3) DEFAULT NULL,
`soulshot` int(4) DEFAULT '0',
`spiritshot` int(4) DEFAULT '0',
`spschance` int(3) DEFAULT '0',
`sschance` int(3) DEFAULT '0',
`ischaos` int(4) DEFAULT NULL,
`clan` varchar(40) DEFAULT NULL,
`clan_range` int(4) DEFAULT NULL,
`enemyRange` int(4) DEFAULT NULL,
`enemyClan` varchar(40) DEFAULT NULL,
`dodge` int(3) DEFAULT NULL,
`ai_type` varchar(8) DEFAULT 'fighter',
PRIMARY KEY (`npc_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -0,0 +1,6 @@
CREATE TABLE IF NOT EXISTS `custom_npcskills` (
`npcid` smallint(5) unsigned NOT NULL DEFAULT '0',
`skillid` smallint(5) unsigned NOT NULL DEFAULT '0',
`level` tinyint(2) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`npcid`,`skillid`,`level`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+14
View File
@@ -0,0 +1,14 @@
CREATE TABLE IF NOT EXISTS `custom_spawnlist` (
`location` varchar(40) NOT NULL DEFAULT '',
`count` tinyint(1) unsigned NOT NULL DEFAULT '0',
`npc_templateid` mediumint(7) unsigned NOT NULL DEFAULT '0',
`locx` mediumint(6) NOT NULL DEFAULT '0',
`locy` mediumint(6) NOT NULL DEFAULT '0',
`locz` mediumint(6) NOT NULL DEFAULT '0',
`randomx` mediumint(6) NOT NULL DEFAULT '0',
`randomy` mediumint(6) NOT NULL DEFAULT '0',
`heading` mediumint(6) NOT NULL DEFAULT '0',
`respawn_delay` mediumint(5) NOT NULL DEFAULT '0',
`loc_id` int(9) NOT NULL DEFAULT '0',
`periodOfDay` tinyint(1) unsigned NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+11
View File
@@ -0,0 +1,11 @@
CREATE TABLE IF NOT EXISTS `custom_teleport` (
`Description` varchar(75) DEFAULT NULL,
`id` mediumint(7) unsigned NOT NULL DEFAULT '0',
`loc_x` mediumint(6) DEFAULT NULL,
`loc_y` mediumint(6) DEFAULT NULL,
`loc_z` mediumint(6) DEFAULT NULL,
`price` int(10) unsigned DEFAULT NULL,
`fornoble` tinyint(1) NOT NULL DEFAULT '0',
`itemId` smallint(5) unsigned NOT NULL DEFAULT '57',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+29
View File
@@ -0,0 +1,29 @@
None of these tables will have any effect on your server if you have them disabled from the configurations, so that means nothing is loaded from them, and you can have these tables absent from your database, it won't have any negative effect.
Basically almost all server admins do some kind of changes to their L2J database, and when they want to update their database they always have to worry about conflicting ID's, and issues where they could lose some data they made, i.e the datapack team perform updates on spawns, npcs, droplists etc.
To overcome this issue, you can put your custom data inside these tables. The L2JDP team won't be changing them too often. These files will just define table structures, so unless we needed to add/remove columns or change column types we won't change them.
Explanation of the table purposes:
custom_armor -> If you modified the stats of an armor you can put the armor here and delete it from the original armor table and safely have it loaded and never touched by l2j.
custom_armorsets -> same as above description.
custom_droplist -> same as above description.
custom_etcitem -> same as above description.
custom_merchant_buylists -> same as above description.
custom_merchant_shopids -> same as above description.
custom_notspawned -> When 'DeleteGmSpawnOnCustom' is set to True, this will make it so when a GM deletes an NPC in game, it does not actually get deleted from the spawnlist, it gets its ID put into a list of ID's that are NOT loaded with the rest of the spawns, this way you can prevent loss of spawn data by simply making it "not load that id", to load it again, simply go in this table and remove the id from the list. Id's with "isCustom = 0", are spawns from the spawnlist table, and Id's with "isCustom = 1", are spawns from the custom_spawnlist table.
custom_npc -> If you added a custom npc or modified stats of an existing one, you can put the npc here and delete it from the original npc table and safely have it loaded and never touched by l2j. In cases where you created your own npc and Id, you simply don't have to worry about deleting the ID unless if there is an ID in the NPC table that is using that ID.
custom_spawnlist -> here it is the same as above, but you do not need to worry about having the same id in the spawnlist table and the custom_spawnlist table
custom_teleport -> same as custom_npc
custom_weapon -> same as custom_armor