Перейти к содержанию

aCis 366 Build, Source, Diff

Авторизация  

1 изображение

Информация о файле

Changeset 366 (664)

 

Castle, Siege part II, ZoneManager / zones, Clans, Misc

 

Castle
- Rename _zone > _siegeZone (getter included).
- Move zones attributions to entity creation (instead of getters).

 

Siege part II
- Due to following ZoneManager and zones rework, we now support :
- PKs are ported in the vicinity of second closest town (and not inside).
- banished players are ported in the vicinity of the castle (and not on closest town).
- Cleanup L2SiegeFlagInstance, it works even if clan parameter is broken.
- Cleanup loadSiegeClan() uses, which were called on numerous useless places (called on startSiege(), approveSiegeDefenderClan(), removeSiegeClan(), startAutoTask()).
- On castle siege end, if your clan is victorious versus former clan, you gain static 1K CRP instead of calculated amount based on former clan CRPs.
- All CastleManager.getInstance().getCastle(player) used to only retrieve an ACTIVE siege are now replaced by CastleManager.getInstance().getSiege(player), as it is shorter and cleaner.
- Drop SiegeClan layer. Siege flag is now registered on L2Clan.
- Creation of SiegeSide enum. Store it under String format rather than int (similar to CabalType, SealType, etc).
- CopyOnWriteArrayLists about attackers / defenders / pending defenders are replaced by a single ConcurrentHashMap (better performance and avoid heavy lists manipulations).
- Creation of checkSide(L2Clan), checkSide(L2Clan, SiegeSide), checkSides(L2Clan, SiegeSide...) methods, which is now the center of sides checks (instead of getAttackerClan / getDefenderClan).
- Drop the possiblity for a clan to hold numerous headquarters flags (it was producing a IOOBE when the first flag of the list was destroyed anyway).
- L2Clan.isRegisteredOnSiege() method simply checks memory content rather than making a SQL query.
- Fix following checks :
- dissolve alliance now checks if ANY allied clans is registered on a active siege (before was only checking your clan status).
- create alliance now checks if your clan is registered into an ACTIVE siege (avoid to stuck creation if you're castle lord).
- join alliance now checks if the invited clan is registered as an opposite clan, on any active siege. The previous check checking both characters are on siege zone is dropped (pointless).

 

ZoneManager / zones
- Little cleanup of ZoneManager (drop of getArena(L2PcInstance), getOlympiadStadium(L2PcInstance), checkId(int) and getClosestZone(L2Object, Class<T>) methods).
- L2SiegeZone zones are now considered L2SpawnZone, and hold following L2OFF lists : other_restart_village_list && chao_restart_point_list. Drop the isGM() exception from banishForeigners. Zones shape match with retail values.
- L2CastleZone zones now hold banish_point_list. chao_restart_point_list is moved to L2SiegeZone, but still hold owner_restart_point_list. We drop _castle variable, which is pointless. Zones shape match with retail values.
- L2CastleTeleportZone cleanup (isOnline() check is wrong, it basically means a offline shop can stay here).
- L2ZoneType _characterList is edited from CopyOnWriteArrayList to ConcurrentHashMap (performance boost). The class is cleaned up (javadocs, comments, organization).
- ZoneManager _debugItems is edited from List to ConcurrentHashMap (performance boost).
- L2DynamicZone is deleted (no purpose).
- //zone_visual adena drop count reflects zone id (for an instant overview). Their step spawn is also cutted by 2.5 (from 20 to 50) to faster the generation process.

 

Clans
- clans are registered into a ConcurrentHashMap to avoid ConcurrentException. Drop synchronized keywords. getClans() returns a Collection instead of array.
- destroyClan() is reworked ; parameter is now a L2Clan, the clan is removed of ANY siege (before : only if you had a castle)
- getClanAllies() returns a Collections.emptyList() if no alliance is found.
- checkAllyJoinCondition is now static (as variables are setted up as parameters).

 

Misc
- RequestRestartPoint packet is cleaned up, jail location is now static.
- Drop ALT_GAME_FREE_TELEPORT config, as HTMs can't scale with that config (were still displaying adena cost).
- Fix L2TeleportLocation isForNoble() item consumption, ty Heinsenberg.
- Fix skillId 1402 enchantlevel, ty Anarchy.
- Fix TownPet instance task. Ty TreasureHuman for report.
- Fix the merchant NPE due to Castle rework.
- Random cleanup
- MapRegionTable.getTeleToLocation renamed getLocationToTeleport (english plz). Method is cleaned up, MDT location is now static.
- FIXED revive option uses player.getPosition() rather than generating a new Location object based on x/y/z.
- RequestAnswerJoinAlly packet is secured (transaction is correctly cleaned up).

 

PS : due to Sieges part II, sieges_clans is edited. I invite you to either drop the whole table and add the new one asking your players to register anew on sieges (castle owners are automatically registered), or you can query it to edit all int values to String values.


Что нового в версии 08/12/17 05:35   Просмотр изменений

Размещено

Для этой версии изменений нет.




×
×
  • Создать...