Initial implementation of L2OFF territory system. - Allow NPCs to randomly spawn over a defined territory, which is considered as "their" territory. - Allow to spawn multiple NPCs, if part of the same event. - Implement "out of territory" concept.
Following spawnlist types are now handled by that new system : - Regular - Raidboss - Seven Signs - Day/Night - Autospawn - Castle guards
Castles / Sieges - Implement PC guards upon start/mid victory. - Mid victory upon NPC siege doesn't end the siege anymore.
Scripts - Add FollowerMovingAroundMaster script. Delete TownPet instance. Register some Folk as MutedFolk. - Queen Ant - Guard Ant now teleport if out of territory. Ty Denzel for report. - Add a Player kickout behavior upon Queen Ant spawn if they are on territory. - Guard Ant randomly frenzy, not Royal Guard Ant. - Fix Zaken teleport behavior. Add missing offset upon teleport. Ty Denzel for report, Hasha for fix.
Bugfixes - Fix Beholder of Light 1 second respawn time. Ty Denzel for report. - Seven Signs monsters seal stones drop now depends about current winner few different spawnlists based on current seal owner). - No more "multiple times" spawns (some areas were previously flooded by monsters). - Monsters attack timeout is now handled by "out of territory" concept (60s timeout during combat mode, refreshed if returning to territory meanwhile). - Fix one typo over main menu. Ty Denzel for fix. - Fix Tutorial Book spam upon Player log out/in. Ty Denzel for report. - Cancel Player associated QuestTimers when such Player logout. - Fix 3075, 3079 and 3192 skills. Ty Denzel for report, Hasha for fix. - Skill oneshots upon Attackable properly trigger faction call behavior. Ty Kitsos for fix.
Organization - Add Npc#isInMyTerritory() concept. - Add ScriptEventType#OUT_OF_TERRITORY concept (used notably by Queen Ant script). - Add ZoneType#getKnownTypeInside(Class<A>, Predicate<A>) for easier usage. - Rename ZoneType#movePlayersTo as ZoneType#instantTeleport. - Add artifacts locations into CastleManager. They aren't controlled by SpawnManager anymore. Add related infos into castle.htm. - Rework ControlTower to use getScriptValue. - Implement IXmlReader#parseLocation(NamedNodeMap) and parseSpawnLocation(NamedNodeMap). - Move few methods from Location to Point2D (addStrictOffset, addRandomOffset, addRandomOffsetBetween). Introduce addPositiveOffset method. Rename addRandomOffsetBetweenTwoValues > addRandomOffsetBetween. - Replace the way new forum id is being generated. Ty StinkyMadness. - Pagination cleanup. Ty StinkyMadness. - All uses of Pagination are visually unified (//bk, //find, //skill and //skill list, //knownlist, //effect). - Replacement of <center> tags inside <td> by <td align=center>