Информация о файле
Changeset 371 (821)
Datatype reorganization, Skill stuff, Misc
Datatype reorganization
- MapRegionTable > MapRegionData
- Javadoc, extends XMLDocument, moved to data.xml, edit for mapRegions.xml. Drop useless methods.
- PlayerNameTable > PlayerInfoTable
- Javadoc, moved to data.sql, DataHolder > PlayerInfo.
- DoorTable > DoorData
- Javadoc, extends XMLDocument, moved to data.xml, StatsSet reuse, writting style.
- RecipeTable > RecipeData
- Javadoc, extends XMLDocument, moved to data.xml, StatsSet used for Recipe, RecipeList > Recipe. Extract RecipeItemMaker from RecipeData, and create model.craft package to store it.
- The data is reparsed using L2OFF data.
- Fix an issue with recipe name when destroying such recipe from book (was the case for Orcish Poleaxe for example).
- Rework character_recipebook table, dropping one column. Datatypes are tweaked.
- Fix an issue on complete recipe book destroy ; the deleted stuff wasn't saved on database.
- Rework RecipeBookItemList packet. Add a missing use of it on Recipes itemhandler (refresh book or open it on recipe addition).
- CharTemplateTable > PlayerData
- Skill trees are now stored directly into player templates under a List, rather than SkillTreeTable. Most methods are moved into Player, since its a generic needed parameter.
- We don't store anymore Item template list (for character creation items generation), but int array (since storing Item templates was pointless and not even used correctly).
- All methods got a "single" and "all" versions to avoid to loop for nothing on all skills.
- SkillTreeTable > SkillTreeData
- Rework all skills holders, and move them on model.skillnode
- All methods got a "single" and "all" versions to avoid to loop for nothing on all skills.
- BufferTable > BufferManager
- Use XMLDocument, move to data package, rename/cleanup. Data is edited to reflect changes.
- Add an integrity check for available skills on player schemes loading to avoid NPE. Ty katara.
Skill stuff
- Drop getSkillLearningClassId / setSkillLearningClassId concept.
- Drop _expertiseIndex. It is now directly calculated from skill 239 level, and can be found using getSkillLevel().
- Rework subclass skills addition. We only storeSkill the final List, leading to a massive drop of mid-operations. Ty vladalien for the initial workbench.
- Cleanup removeSkill() / storeSkill().
- autoGet skills are handled by PlayerTemplate data (skills with getSpCost == 0), the stuff isn't hardcoded anymore.
- getSkillLevel returns 0 instead of -1 if no skill is found, making checks easier to write.
- hasSkill is used instead of getSkillLevel when skill existence is needed, but we don't specifically need the level.
- Skill enchantable routes now handle level 79 and 80. Each route can be manually edited.
- Fix a visual issue about shortcut refresh on failed enchant skill.
Misc
- Drop RATE_CONSUMABLE_COST && ALT_GAME_SHIELD_BLOCKS configs. Rename some players.properties configs.
- Addition of StatsSet getIntIntHolder, getIntIntHolderList && getDoubleArray.
- Fix an issue using a toggle when you run to a target with ATTACK intention. Ty Sahar.
- getCurrentFolkNPC() -> getCurrentFolk(). The value retained is now a Folk, not a Npc.
- Fix an issue on RequestAnswerJoinAlly introduced on rev 366, ty sahar.
- Region size decreases from 4096 to 2048 (x4 WorldRegion amount, vision is reduced from 6k to 3k max). It now fits retail knownlist range.
- Fist Weapon is moved from Player to PlayerTemplate (no calculation needed anymore on player login).
- Formatting rule for lambdas && try-with-ressources. Use lambda writting style for all Runnable.
- Cleanup L2Request > Request, keep a reference of the task to cancel it on onRequestResponse().
- RequestRestartPoint doesn't use anymore a Runnable for instant use.
- Drop door onEvtAttacked behavior, which was adding a ridiculous amount of operations for nothing.
- RequestCrystallizeItem packet is cleaned up (avoid getItemByObjectId x2, World.getInstance().removeObject is already handled).