Changeset 372 (846)
Datatype organization, Recommendation system, Sahar fixes, AdminCommands, MiscDatatype organization
DuelManager
- Moved to data.manager, we use IdFactory to get a fresh id, Javadoc.
CursedWeaponManager
- Moved to data.manager, rename it, use of StatsSet. Data is edited to reflect changes. Javadoc addition.
Lottery > LotteryManager
- Moved to data.manager, renamed LotteryManager, basic cleanup.
- Initialization is made on Gameserver (before it was a lazy initialization).
MonsterRace > DerbyTrackManager
- Moved to data.manager, renamed MonsterRace > DerbyTrackManager, generic cleanup.
- HistoryInfo is moved into model package.
- RaceManagerNpc is renamed DerbyTrackManagerNpc.
CoupleManager
- moved to data.manager, cleanup.
- IdFactory id is correctly released on couple deletion.
Skill datatype part II
- Pet weight system (not overload, only the lower levels handled by weight penalty) is "desactivated" time I find a workaround to avoid a NPE.
- Merge addSkill / removeSkill methods on Player, since it's the only place it is used. There is only one way to addSkill / removeSkill for now.
- getAvailableAutoGetSkills() / getAllAvailableSkills() don't filter skills based on current player skills (skills correctly delevel back).
- addSkill got a check to avoid to add a skill you already own (for now it uses equals, not sure if correctly working)
- Don't save/restore autoGet skills since they're rewarded on player restore, saving 10+ skills per character. When an autoGet skill becomes a regular skill (cf. Wind Strike), it is stored into db.
Recommendation system
- The task runs at 13:00 and not 06:30 (was a postIL date).
- The task both handles online and offline players. Recommendations are normally correctly calculated for everyone.
- The saving process has been entirely reworked ; _lastRecomUpdate is dropped.
Sahar fixes
- Fix many Item Skills.
- Fix Focus Death / Focus Power.
- Fix Special Ability: Mighty Mortal.
- Fix Special Ability: Infinity Scepter.
- Fix Frenzy.
- Fix Mystic Immunity.
- Provide enchant routes for Rain of Fire.
- Fix SystemMessage in CombatPointHeal.
- isDebuff is initialized before isOffensive, since it is used by isOffensive.
- Make use of IS_CRAFTING_ENABLED config in Recipes.
- StatsSet: getList/getMap now return generic List/Map.
- Added missing items to Blacksmith of Mammon SA removal multisell.
- Added packet: ExServerPrimitive.
- Added getters for custom use: BufferTable#getAvailableBuffs, MultisellData#getList, Hero#getAllHeroes.
- Added abnormal="changetexture" to Zaken skill id 4223.
- Fix summons stucking in walls on summon process.
- Fix basemul wasn't working at all for MCritRate stat.
- Drop z1 parameter from 2d MathUtil#calculateDistance method.
- Fix the movement issue when you run near a NPC and interact with it (initial movement intention was kept).
- Fix missing skills from previous resist rework. NPC resists should work anew correctly.
- Fix OlympiadManager message.
- Fix stuck character if new target is null (case of targeting high altitude wyvern users), and drop the Z check.
AdminCommands
- Fix all occurences of -100 > -1 for character ban process, prior to AdminData cleanup. Ty hqsly for report.
- //invul command is deleted. //setinvul now work on any Creature type.
- Fix //heal radius attribute.
Misc
- ServerRestart / ServerShutdown tasks are by default done on WEEKLY time rather than DAILY (still commented by default).
- Delete unused "char_slot" tag on characters.sql
- Few rename/edits regarding CharSelectInfo packet and associated content.
- Pet instance entire cleanup (rework and String-ify queries, drop _isRespawned tag and updateRefOwner() method).
- Fix a NPE on siege zone ressurection for clanless people.
- Added retail implementation of shift click (interact/attack without moving). GMs can still use GM panel, but it will be replaced in case of a successful NPC interaction by regular showChatWindow.
- Edit doormen/busy.htm.
- Create a new instance type, BorderGuard, for "Guardian of Border" NPCs (those NPCs aren't Gatekeeper anymore, since they weren't using any functionalities of this instance). Move related bypasses and showChatWindow behaviors from Npc to it.
- Add/edit/drop some javadoc.
- CastleManager#getSiege() is renamed getActiveSiege() because it only shows sieges in progress (reflect better the result).
- showPkDenyChatWindow uses are now made on both onBypassFeedback and showChatWindow, on the correct instances (to avoid instanceof checks).
- Drop Gatekeeper validateCondition system (not retail and was using HTMs which weren't existing). The "siege in progress" check on teleport location is still correctly handled.
- Edit SystemMessageId NO_PORT_THAT_IS_IN_SIGE for CANNOT_PORT_VILLAGE_IN_SIEGE.
- Delete PartyMatchRoom creation/edition logs.
PS : characters.sql loses "last_recom_date" and "char_slot" parameters.
Changeset 373(887)
Datatype organization, Tasks, Clan, Config, Organization, MiscDatatype organization
BoatManager
- Moved to data.manager, javadoc.
CastleManager
- Moved to data.manager, extends XMLDocument.
CastleManorManager
- Moved to data.manager, extends XMLDocument.
- Queries are stringified.
- More uses of Java8 lambdas.
NpcTable > NpcData
- Moved to data.xml, extends XMLDocument.
RaidBossPointsManager > RaidPointManager
- Rename, moved to data.manager, javadoc, cleanup.
- Fix the order on ranks calculation. Ty katara.
Caches
- Move gameserver.cache to gameserver.data.cache
- Cleanup HtmCache and CrestCache (adjust filters, javadoc, Logger...).
- Drop AdminCache adminhandler (2 commands are dropped). Generic //reload type (crests / htm) still works.
- Invalid crests files are deleted on server loading (being wrong format, wrong length, etc).
- Fix an issue where old crests files weren't destroyed on crest edition.
- RequestSetAllyCrest writting style is harmonized using similar packets.
- RequestSetAllyCrest / RequestSetPledgeCrest / RequestExSetPledgeCrestLarge don't accept data length of 0 (case of crafted packets).
Tasks
- Unify naming convention. Drop the logs.
- ServerRestart/Shutdown are moved from MON to THU (still 4AM) to emulate maintenance task of retail server. Still off by default.
- Drop OlympiadSave task (pointless).
- RaidPointReset task is enhanced on numerous locations :
- only clan level 5+ are checked (external loop is reduced).
- ranks are calculated only for the 100 first (internal loop is reduced).
- addReputationScore is made only on final score and not on every member check (no multiple db operations / packets broadcast for the same clan).
Clan
- Basic cleanup, minor improvements, javadoc.
- Don't reward clan skills if player is on olympiad mode.
- _hiredGuards and associated stuff is dropped (not used).
- RankPrivs class is dropped, it is edited for a simple Integer on the Map.
- SubPledge class is moved out of Clan, to model.pledge.
- CLAN_HAS_ALREADY_ESTABLISHED_A_CLAN_ACADEMY SystemMessageId is correctly shown.
- Table clan_skills loses skill_name column (unused).
Config
- Drop min/max protocol version.
- Drop few unused loginserver configs.
- Drop crown/circlet config (see Misc section for explanation).
Organization
- CharCreateFail / CharDeleteFail use static approach.
- VehicleAI / VehicleLocation / Vehicle / model.vehicles / VehicleStat > BoatAI / BoatLocation / Boat / model.boat / BoatStat. getVehicle() is merged with getBoat().
- Implementation of CLogger (C for crappy, obviously). An effort will be done to unify all loggers writting style with time (people will complain if I only commit that).
Misc
- 3158 skillId fix. Ty sahar.
- Drop ON_KILL event on SummonMinions script (unused).
- Fix dropMultipleItems method (impacts Q108, Q163, Q354 && Q360), ty x-user.
- Fix the impossibility to use NPC names for players and pets. Pet name pattern introduces back numbers. Ty RooT.
- Rework Player.getMemo(), drop getMail() (already handled by MailBBSManager). Probably fix a rare NPE with getMemo().
- //setname can't reward a name which is already owned (player-based restriction).
- Unify handlers writting style.
- setReputationScore() is processed only if clan level is > 4. You can't accumulate CRPs, no matter the action, if your clan isn't at least level 5.
- Drop the task on JailZone, leading to infinite teleport. Ty smoke121.
- Fix toggles which aren't supposed to be desactivated while sitting. Ty TreasureHuman.
- Fix following issues introduced in previous revisions :
- Revert removeSkill parts to handle back "keep effect" behavior for augmentations / items passive skills.
- Revert getAllAvailableSkills edit to make enchant working anew with *** config. To handle deleveling correctly we need correct magicalLevel for every skill.
- Fix config about invul gm on startup, since //invul drop.
- Fix Party IOOBE prior to rev 652.
- Rework crown/circlet item restriction system.
- Don't delete objects (not retail).
- Rework Player#checkItemRestriction() which wasn't properly updating character (headgear was still shown).
- Rename Castle#removeCirclet and removeCircletsAndCrown for checkItemsForMember and checkItemsForClan. Methods are optimized (clan method uses only one connection for all members).
- Edit ON DUPLICATE KEY UPDATE queries to handle parameters directly on query and not on core.
aCis Test Server - 77.55.228.97
Here is the IP of a test server, always based on latest. If you want to see actual progress, check differences between free and head rev, feel free to log in and test. Everyone has admin access, except few maintenance commands.
Changeset:373SVN changeset:894