aCis


Beginning of the cycle 380-389. Current focus : exploit fixes, scripts ending. Changeset 380 (1133) is up ! RaidBossManager rework, Admincommands, DayNightSpawnManager rework, Scripts, Cleanup, Bugfixes Changeset 381 (1225) is up ! Updates (Java 11, mysql connector 8.0.15), Cleanup, ClanHall, Bugfixes !

Last aCis updates

Tryskell · 282 · 236450

Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #225 on: April 23, 2014, 07:40:22 PM
Changeset 326

Recipes / Craft, TradeController, Misc


Recipes / Craft
   - Drop L2RecipeInstance (use ItemHolder instead)
   - Fix a NPE on RecipeTable listItems method and rework it to use ItemHolder. All missing items for a craft are now listed, with good quantities (not only sending the first missing mat).
   - Merge RecipeTable updateCurMp() && updateCurLoad() methods into updateStatus() - from 2 StatusUpdate packets sent to 1.
   - fix the "ghost" success message on crafting window when you simply open a recipe.

TradeController
   - move TradeController into datatables and renamed it BuyListTable.
   - drop merchants.sql table (unused).
   - XMLize 2 SQL tables, merchant_buylists && merchant_shopids. The dynamic content (aka limited stock) is still loaded/save on SQL.
   - created a new package model.buylist, moved L2TradeList inside it and renamed it NpcBuyList and Product (that class was holding two classes, so it is splitted).
   - general cleanup and improvements, from latest L2J Nos changeset. No more 3min shutdown trying to save buylists stuff...
   - the data used is the latest aCis one, plus roko91 changes, minus few empty buylists linked to nothing, and the "Coin Collector Album" restock timer.
   
Misc
   - rework AdminEditNpc adminhandler :
      - drop stuff regarding pages generation (for shoplists and skills, as such commands never send more than 10 entries).
      - secure user input (try/catch).
   - Drop L2Attackable.RewardItem (use ItemHolder instead), TradeItem (clone class existing in another class), move NewItem inside DocumentItem (just to keep it similar to DocumentSkill, but both needs a rework...).
   - Edit _sweepItems / _harvestItems arrays for Lists, make them final (heavier RAM costs, but avoid arrays based operations, Lists creations, null checks are replaced by !isEmpty() and .clear() is used instead of creating another object).
   - Rename and move few "items based" classes on 'model.item' package.
   - Rename ItemsAutoDestroy to ItemsAutoDestroyTaskManager and move it on 'gameserver.taskmanager' package.
   - Edit ItemHolder (drop the unused objectId int, add setters).
   - Drop unused stuff from DropData, isQuestDrop() being always false (quests items aren't handled by droplists, but scripts...).
   - [L2J 5962] Fix a possible deadlock on player charges.
   - [L2J 5374] Reset the delete task on charges add/remove (avoid to get your charges dropped like an idiot after 10min...).
   - canInteract() is used as check for onBypassFeedback() call, impacting all NPC bypasses. Before it was used only on L2Npc, meaning children classes bypasses weren't covered by the check (such as dead, sit and etc states).
   - drop a double tempInventoryDisable() use, and move the method use after buylist checks (avoiding to freeze your inventory for nothing).
   - fix QuestList() serverpacket implementation (could lead to some null), setting the current player as parameter. Ty SweeTs for report.
   
PS : RequestBypassToServer sends by default ActionFailed.STATIC_PACKET after a command call. It's not needed to call it.
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #226 on: May 29, 2014, 10:06:26 PM
Changeset 327

GrandBossManager, Misc


GrandBossManager
   - Edit GrandBossManager to use a singleton, to fit with overall project writing style.
   - "Allowed players" system :
      - Move the initialization AFTER zones loading (it wasn't making any errors, but the system wasn't working).
      - Reworked it to simply use .add(, instead to set it using a temporary List.
      - Use an index system based on zoneId to avoid to search/retrieve current L2GrandBoss zone info on every SQL raw (it's doable since we order the query by ZONE and not by PLAYER anymore).

Misc
   - Fix 2 NPEs on 2 quests, due to Trove drop (Trove was handling null by returning 0, while Java Map simply send null). Ty Root for fix.
   - Fix a NPE on itemid 8811. Ty sahar for report.
   - Add skill names on scheme buffer, using kdDer64 buffer graphic style. Also edit the extends in order to be invul. Ty sahar for patch.
   - Added few missing restock delays on Interlude spellbooks. Ty rebelstrik for report.
   - Move setPledgeClass() call leading to rank miscalculation for heroes on player restore, ty sahar.
   - Some Hasha TODO list :
      - Drop L2Skill._displayId, getter/setter. Replaced by getId().
      - getAvailableHenna() is edited from array to List. Drop external null checks, as it is empty at worst.
      - Rename few packets typos, such as ware*H*ouse / withdraw*AL*
      - Drop DoorTable.putDoor(), single use.
      - Edited TaskSevenSignsUpdate _log definition (task system needs to be edited anyway).
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #227 on: June 19, 2014, 04:12:01 PM
Changeset 328

"Stat" classes, Misc


"Stat" classes
   - Reworked HP/MP/CP players calculation, dropping 3 Func and overriding existing methods.
   - Random cleanup (drop null checks, use getActiveChar() directly, and other misc).
   - getPhysicalAttackRange() : range isn't calculated anymore for NPCs (template value is final value), and default value for players follows WeaponType (drop bow range Func).

Misc
   - Cleanup L2MultiSell, splitting it in different classes : MultisellData, and a model package holding few models.
   - Fix a ClassCastException, and rework Raid Boss Curse on skill cast.
   - Fix a NPE on L2PcInstance.doDie( : it wasn't verifying pk clan status.
   - Edit some values which got no use to be long (avoid some int > long casts).
   - getClosestTown() : added a Race check for teleport (D.Elf / L.Elf).
   - Fix FuncEnchant for S grade weapons, BigBlunt/BigSword types and drop NONE type - Ty Hasha.
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #228 on: August 09, 2014, 03:11:38 AM
Changeset 329

Quests, Herbs, Misc


Quests rework by roko91 - part 1 (initial patch is splitted in 2, next part go from Q401)
   - Fix drop chances and/or logic at onKill using retail C4 rates.
   - Add (or even remove !) monsters IDs at onKill.
   - Fix few NPC spawn/despawn times delays.
   - Improved readability and/or performance.
   - Tryskell edition made on roko91 patch :
      - Q101, Q340 : roko91 misconception.
      - Q102 : invalid state where HTM couldn't be sent on cond 2/3.
      - Q296, Q345 : invalid rate system.
      - Q348 : didn't include changes, have to rework it.
      - Q369 : deprecated variables should be dropped :P. Fix onKill section aswell, as it misses a check regarding other type of shards.
   - General cleanup made up to Q400 (was previously stopped to Q360).

Herbs
   - Addition of "deep blue" drop rule for herbs.
   - In case multiple herbs are dropped and AUTO_LOOT_HERBS config is on, the addItem is correctly made, but only one item is added. Drop the isFlying() check.
   - Fix herbs destroy time.

Misc
   - Unify naming convention between herbs and items destroy time configs.
   - Fix the spawn protection config, which now uses a task (+ different message when timer expires). Added a visual effect aswell.
   - Doors Func are dropped.
   - Dropped deprecated embedded svnversion for both DP and GS projects.
   - isOutOfControl() got more checks included (stun, paralized, sleep), and is overidden on L2Summon to add isBetrayed() check.
   - Replace RequestActionUse isMovementDisabled() pets checks for isOutOfControl(). Add a missing isOutOfControl() check on useSkill.
   - Delete EVT_ARRIVED_REVALIDATE AI event, as it isn't needed for anything. More to be done for movement, probably will go after geoengine rework.
   - Fix a Connection leak on //remove_clan_penalty admincommand. Ty SkyArg.
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #229 on: August 12, 2014, 01:31:18 PM
Changeset 330

Quests, Misc


Quests
   - addition of Q230, Q233, Q327 - ty to sharers.
   - addition of victory pose on quests completion in few quests. Ty roko91 for the list.
   
Misc
   - Fix spawn protection task NPE (shit happens). Ty sahar.
   - Drop a useless parameter on notifyDeath() method.
   - Drop methods && variables related to snoop system. Cleanup AdminGmChat.
   - Drop the svnversion check, cleanup both build.xml.
   - AdminEffects handler :
      - Move //para_all && //unpara_all commands higher to don't be overwhelmed by //para && //unpara. Paralize visual effect is now stucked to old effect 2.
      - Drop sendPacket when a broadcastPacket is also sent.
      - Multiple random cleanup, going from merging checks to messages addition.
      - //play_sounds is renamed //jukebox (to avoid to mess with //play_sound).
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #230 on: August 31, 2014, 09:39:11 PM
Changeset 331

Quests rework (part 2), Misc


Quest rework - Ty roko91.
   - Addition of Q417, Q420.
   - Recode of Q605, Q606.
   - Fix the invalid reward id on Q405.
   - previous commit got all details about what is added, removed, edited on existing quests. This commit is effective from Q401 up to latest quest. Compared to roko91 patch :
      - Drop useless exitQuest(true) on STATE_STARTED.
      - Q403 : fix onKill for npcId 27038. Extract getItemEquipped( checks to avoid code repetition.
      - Q405 : fix onKill (could infinitely drop the qItem), revert hasAtLeastOneQuestItem use (wrong logic, it's && and not ||).
      - Q415 : addition of a missing Gantaki HTM, cond 9.
      - Q417 : move cond 2 obtention (to avoid permanent setInt/sound).
      - Q419 : improve Martin's STATE_STARTED case.
      - Q420 : Wrap Mimyu talk in a cond 4 check (avoid an exploit). Fix an if/else in Maria. Fix a permanent setInt/sound on Byron, when "deluxestone" occurs. Drop useless items checks on dragons cond 6/7.
      - Q421 : cleanup STATE_CREATED.
      - Q508, Q509, Q510, Q601, Q602 : general cleanup.
      - Q617 : revert npcId 31271 01 and 02 HTMs to handle STATE_CREATED easily.
      - Q618 : cleanup cond/items checks on onAdvEvent(
      - Q644, Q645, Q646, Q647, Q649 : general cleanup.
      - Q651, Q652, Q653 : use Location[] instead of int[][] to hold positions.
      
Misc
   - rename getIsSpoiledBy() to getSpoilerId(). Same for setter and _variable.
   - fix the Class Master and simplify the code using ItemHolder, ty Hasha.
   - create a dedicated Class Master, npcId 50006. Revert L2Class of 31228 to L2Npc.
   - revert to initial buffer visuals. The amount of text generated by skill names is too big in few cases, leading to client crash.
   - fix and cleanup Ketra/Varka buff system (the last buff was out of index check).
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #231 on: September 14, 2014, 01:54:26 PM
Changeset 332

Quests, Party, Misc


Quests
   - Q235 : drop few qItems before the end of the quest. Add Mimir's Elixir skill effect. Cleanup hasQuestItems checks. Ty Root.

Party
   - Fix a ConcurrentException on L2Party.
   - Add disband and expel messages.
   - Add AltLeavePartyLeader config to edit the way the party lead change is processed.
   
Misc
   - Revert rev 313 bow change, cleanup calculateTimeBetweenAttacks().
   - Cleanup ClanHall.java, fix a ConcurrentException. Add removeAllFunctions(), which avoid to generate one db connection per deleted function.
   - Drop redundant BeginRotation serverpacket. Activate those packets on L2GamePacketHandler. Allows to rotate using arrows keys.
   - Cleanup AdminDoorControl handler, fixing redundant open/close process, pointless checks and making error handling more friendly.
   - Make Exception on client packets more informative, which avoid to look on logs.
   - Edit Zariche to be considered as NONE weapon instead of FIST (avoid double hit system).
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #232 on: November 23, 2014, 01:28:30 PM
Changeset 333

GameTimeController, Misc


GameTimeController
   - Apply latest L2J version, fixing the moonwalk issue. Keep the DE passive skill system.

Misc
   - Fix one NPE vulnerability on L2Buffer getScheme() method.
   - Add the "banned" effect on character selection if a character access is <= -100. Ty RooT.
   - Fix setNewLeader( duplicate entries (coming with rev 311). Ty SweeTs.
   - Fix database_installer.bat entries. Ty RooT && Fronex.
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #233 on: December 25, 2014, 08:39:12 PM
Changeset 334

GeoEngine rework - a big thanks to Hasha for this awesome piece of code !


The Readme.txt on "data/geodata" is updated with numerous important informations regarding geodata types && configurations. Consider to read it !

General
   - Moved all geoengine related stuff to one package.
   - Massive cleanup/split/rework of all geoengine classes.
   - Created geoengine.properties config file, removed unnecessary variables.
   - Certain variables merged with L2World.

GeoData
   - Removed unnecessary interface and SingletonHolder, pure inheritance is used now.
   - Dropped canEnterDirection() methods and Direction class, as replacement added getNSWE(...) method, which returns directly geocell NSWE byte (four flags) loaded from geodata files -> avoid getting same geocell data multiple times.
   - Regions are loaded according to config file definition.
   - Added posibility to load L2J and L2OFF geodata.
   - Implemented new geodriver with new geodata storage approach (kept in Blocks).
   - Removed method concerning LoS and movement, now geodata contains only physical description of the terrain.
   - Point3D and Location cleanup, NodeLoc now extends Location...for better usage in future.
   - Spawn Z coord is now compared with geo Z. When it differs too much, use spawn Z instead of geo Z -> fix spawn problems.
   - Slight rework of geodrivers, now they differ between each other only in storage system.
   - Geodata type is set by config, each geodriver loads correct geodata regardless geodata type.
   - Added geodata path to config (you can move them to specific folder, not only /data/geodata).
   - GeoDriverArray is fastest geodata container at the moment. Kept GeoDriverBlock for some test purposes. Both work just fine.

GeoDataConverter
   - Added native support for geodata converter.
   - Creates diagonal (*.L2D) geodata files from L2J (*.L2J) or L2OFF (*_conv.DAT) ones.
   - Converter can be launched using "GeoDataConverter.bat/sh" after pack building.

PathChecker
   - Various scrapes of code put together to create PathChecker class.
   - Additionally reworked, less code better performance.
   - Performs “see” or “can move” checks for movement, attack and spelluse systems.
   - Splitted “see” and “can move” checks. "see" is way easier and faster.
   - Added Z coord calculations -> fixed problem with seeing over flat obstacles and floors.
   - PathPointChecker merged with into PathFinding package (more logical, better for future changes).
   - Recoded LoS checks, more durable, during one iteration checking both LoS directions.
   - LoS now taking object height in consideration, added 2 configs for LoS checks (percent of height of the object, where starts the LoS check line and max obstackle height, which can exceed this virtual line).
   - using this inheritance structure Pathfinding -> PatchChecker -> CellPathFinding depending on geodata setting (GeoData: 0..door checks, 1..door and geodata checks, 2..door and geodata checks and pathfinding.
   - Big rework of canSee check, should be faster, more transparent and also fixes several wrong evaluated cases (thank you guys for report).
   - PathChecker is loaded correctly according to the config setting (standard/diagonal).

PathFinding
   - Removed GeoPathFinding classes, CellPathFinding is used as default.
   - Removed SingletonHolder, added support to load own pathfinding system.
   - All buffers are loaded during initialization.
   - Cleaned up path post-filter -> fixed famous NPE error, no javolution needed.
   - Equation for A* node weight corrected -> leads to getting better optimized path.
   - Fixed weird movement between path nodes.
   - PathFinding using same loading model as GeoData (Null... or Cell...), provides better usage of PathFinding (no need to check GeoData config setting everytime you access PathFinding).
   - Since we are in beta, remove debug system.out messages.
   - Slight adjustment of post filter when the path is calculated...should make now no world->geo->world->geo coordinates calculations
   - Big rework of coordinate containers. Point3D transformed to Location (world XYZ); Location transformed to SpawnLocation (world XYZ, heading); NodeLoc transformed to GeoLocation (geo XYZ, nswe); all are using inheritance, all can be combined together.
   - PathFinding is loaded correctly according to the config setting (standard/diagonal).
   - Reverted back a part of code, which causing path to lead 1 cell away of obstacle (helps to avoid corners), added new config "ObstacleMultiplier" to multiply weight of such cell by X.
   - Improved path post-filter to do all steps in one iteration -> cleaner, faster and drop of "MaxPostfilterPasses" config.
   - Created new A* pathfinding algorithm (CellPathFindingDiagNew), it uses dynamic lists, it is possible to construct path in difficult/multilayer terrains, available only for DIAG geodata now, though bit slower than current 2D array A* -> deserves cleanup/rework to gain better speed.
   - Created new JPS pathfinding algorithm (CellPathFindingJps), which is basicly A* with hefty rules. BE AWARE, it is for test purpose only, since it is semi-functional (only short and "easy" distances are OK) and available only for DIAG geodata. Possible to improve in the future.
   - Character no longer stop moving, but continue in execution of the path, when you click to un-reachable destination.
   - CellPathFindingNewDiag: now calculates estimated minimal size of open-list buffer and set it as initial value...should lead to less array resize.
   - Reworked several configs and config file.
   
AdminCommands
   - Following commands dissapear :
      - admin_show_path
      - admin_path_debug
      - admin_show_pn
      - admin_geo_z
      - admin_geo_type
      - admin_geo_nswe
      - admin_geo_los
      - admin_geo_position
   - Following commands appear :
      - admin_geo_pos
      - admin_geo_can_see
      - admin_geo_can_move_beeline
   - server_menu.htm ("Server" tab from //admin) is edited to reflect changes on geodata commands.
   
Misc
   - updated the geodata Readme.txt with important informations.
   - added a map with blocks names, and unsupported blocks (ty RooT).
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #234 on: December 27, 2014, 07:33:49 PM
Changeset 335

AdminCommands, UserCommands, GrandBosses && BossZone, Trainers, Misc


AdminCommands
   - Delete //manualhero, as it's a mirror command of //sethero.
   - Delete //saveoly, it's already handled by task or shutdown.
   - //gmliston && //gmlistoff are merged into //gmlist (which works as a toggle now).
   - Cleanup AdminMaintenance (new Integer.intValue(), really ?!).
   
UserCommands
   - Delete command id check (pointless).
   - /time now benefits from GTC rework.

GrandBosses && BossZone
   - Baium town-teleporting waker issue is now fixed.
   - All GrandBosses scripts are cleaned up :
      - variable names follow regular conventions (caps for static, etc).
      - uses of SpawnLocation instead of int[] when it's possible.
      - unification of variables names.
   - Cleaned up L2BossZone, fixing issues with registered players - ty Hasha.

Trainers
   - Add support for trainers no skills HTMs. Ty ArhsGr && ErHard.
   - Fixed numerous HTM typos, notably psychotic PNJ names (A single NPC had 3 different names...).
   - Remove npcIds 30926, 30927 from L2Trainer.
   
Misc
   - Reworked few scripts.
   - Added getStringHour() method into GTC, which return a formatted 00:00 String without having to go by a godamn Calendar object.
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #235 on: December 29, 2014, 09:30:55 PM
Changeset 336

Stats cleanup, Misc


Stats cleanup
   - Cleanup few useless calcStat. It will save objects and calculation times.
   - Drop following Stats : ATK_REUSE, MP_CONSUME, BOW_MP_CONSUME_RATE, HP_CONSUME_RATE.
   - Rework the way SA Cheap Shot is handled. Deletion of ConditionWithSkill.
   
Misc
   - Fix an HTM issue with Q023, ty RooT.
   - Fix an issue with trade/private shops, ty RooT/UYFrank.
   - Numerous cleanups based on Eclipse warnings I switched on then off. Notably :
      - Delete another "Item" nested class, use ItemHolder instead.
      - ConditionPlayerBaseStats is dropped.
      - Fix 20+ so-called 'possible ressource leaks' (missing rset/statement .close()).
      - AdminHandler AdminUnblockIp (not even working...) is dropped.
      - Few unused methods parameters are dropped.
      - Method setLastCords(x,y,z) renamed for saveCurrentCoords(), as parameters were unused.
   - Typos fixed. Notably :
      - Pa'agrio and not Paagrio.
      - Galion and not Gallion.
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #236 on: December 31, 2014, 12:36:58 AM
Changeset 337

Knownlists, Cursed Weapons, NextAction, Misc


Knownlists - ty Hasha
   - Drop getActiveChar() method which was creating a lot of calls/casts.
   - Complete //knownlist command.

Cursed Weapons - ty Hasha
   - Loading method is moved on a most appropriated class, leading to a drop of numerous methods and few Map .get(.
   
NextAction - ty Hasha
   - Remove all Lists types, handling only singles CtrlEvent / CtrlIntention.
   
Misc
   - Dropped items (and notably Cursed Weapons) can't be picked up when a private store is activated, ty dandilo && RooT.
   - Revert a code section introduced on rev 329, which was fucking range of attacks (adding 100 range no matter what), ty Hasha.
   - Few missing stuff about Geodata regarding admincommands are fixed, leading to miscalculations, ty Hasha.
   - Fix a missing internal check for reworked //gmliston, ty Hasha.
   - Based on FindBugs and UCDetector plugins :
      - Drop numerous unused methods.
      - Drop of ConditionInventory, ConditionItemId.
      - Drop some useless convert (like "long to long", "casted int to a Math.round() returning an int", etc).
      - _lastX, _lastY, _lastZ converted into Location _savedLocation. Drop of saveCurrentCoords().
      - Drop of Location _lastServerPosition (unused).
      - ObservationReturn(L2PcInstance) became ObservationReturn(Location).
      - Drop dozens of useless variables/configs in Config.java.
      - Edit 2 stranges Map .remove( arguments to match with the good arguments.
      - Drop _effectTemplates from Item (no uses).
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #237 on: January 09, 2015, 02:36:42 AM
Changeset 338

Tasks Managers - by Hasha


General
   - Task managers are using directly Runnable interface, not nested class anymore.
   - Iteration methods are changed from for-each to iterator -> support element removal during iteration.
   
AttackStanceTaskManager
PvpFlagTaskManager
WaterTaskManager
   - Use of Map.Entry instead of keySet() / get(), leading to an performance boost on all existing tasks.

DecayTaskManager
   - Moved checks for decay delay to "add" method ; iteration compares and doesn't calculate.
   - Added new method for corpse action (Corpse Drain Life, Harvest, Sweep).

GameTimeTaskManager
   - New manager created from 2 sources.
   - Implements old TakeBreakTaskManager, to notify long activity for players.
   - Implements ingame time system from old GameTimeController, to handle day/night cycle && spawns, plus Shadow Sense skill.

ItemsOnGroundTaskManager
   - New manager created from 2 sources.
   - Implements old ItemsAutoDestroyTaskManager to destroy items on ground.
   - Implements old ItemsOnGroundManager, to save dropped items on ground.
   - New configs, which are more logical and have better usage.
   - Reworked drop methods to support new interface of the manager.
   - The processes of save/load items to/from database are simplified.
   - Cursed weapons can be now picked by anyone, no longer drop-protected to killer/killer party.

KnownListUpdateTaskManager
   - Fix a bug which was forcing all regions to update knownlist, when at least 1 player was detected in a region.
   - Full update for NPCs is performed much more often now, since there are NPCs, which need it (e.g. Cabale buffers).
   - Cleanup/sort all knownlist classes.

MovementTaskManager
   - Created from old GameTimeController.
   - Handles only characters movement (keep max priority thread design).
   - Remove game time ticks system, everything is calculated using real time (attack, bow attack, cast break, movement, etc) -> leading to:
      - Improved accuracy of movement, thought there is still issue with it (requires next rework)
      - fixed bow attack delay with high attack speed
      - fixed bow attack & skill cast/movement, skill is now casted/movement is performed after bow attack is completed

ShadowItemTaskManager
   - New manager.
   - No longer 1 created task per equipped shadow item, shadow items are now handled by a single task.
   - Mana ticking is now handled with higher precision (each second instead of each minute).
   - Thanks to previous, equip/unequip/equip a shadow item no longer decrease timer by 1 minute per equip.
   - Fixed an inventory bug when equipped shadow item disappears.

TaskManager
   - Redesigned abstract Task class.
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #238 on: January 19, 2015, 10:19:53 AM
Changeset 339

Java 8, Libraries / Projects, Misc


Java 8
   - Update your JDK to JDK 8 ! aCis officialy uses Java 8 for now. Java 7 isn't supported anymore.
   - Drop Base64, use native Java one.
   
Libraries / Projects
   - The MMOCore project is dropped, and directly integrated to "acis_gameserver" project under "net.sf.l2j.commons.mmocore". The JAR is NOT needed anymore.
   - Java-engine library is updated to latest L2J version, 1.8.
   - ECJ library is updated to latest L2J version, 4.4.
   
Misc
   - Formatting rules applied on Hasha commits.
   - Fix previous commit regarding missing itemsonground stuff (db installer).
   - Fix ShortCutInit packet, to handle reuse delays on player relog. As this packet is now correct, drop a packet update on ItemSkills. Ty RooT.
   - Fix a potential exploit regarding ItemSkills consumed items (skill was launched before item consumption). Ty RooT.
   - Fix a NPE on Q374. Ty RooT.
   - Fix few typos on HTMs.
   - Add the possibility for a GM to shift-click on a player to see directly the panel. Ty RooT.
   - Replace numerous keySet() / get() for a best counter, Entry.Map (20% to 50% faster).
   - Fix Village Map Bulletin positions. Ty RooT.
   - Added prices for A grade top tier weapons. Ty raphael.fersan.
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>


Offline Tryskell

  • The cute dwarf
  • *
    • Posts: 3.945
    • Cookies: +51/-2
Reply #239 on: January 29, 2015, 08:01:33 AM
Changeset 340

Caches, Announcements, Misc


Caches
   - Filters are moved back into classes.
   
   CrestCache
      - Drop of //admin_fix_cache_crest admincommand.
      - Drop of OLD_PLEDGE related stuff.
      - BMP filter edited for DDS one, crests are stored under .dds format file. Consider to CONVERT .bmp into .dds !
      - Crests are stored on a Map for an easier management.
      
Announcements - Ty Sikken, xblx (&& me ofc).
   - Renamed Announcements > AnnouncementTable, moved into datatables. Addition of Announcement model. General cleanup and rework.
   - Addition of critical announcement type.
   - Addition of scheduled announcement ; you can schedule your announcement to happen X times, every Y times.
   - Saved under XML format instead of TXT.
      - Drop of //reload_announcements (handled directly by AdminAdmin //reload generic admincommand), //announce_menu (no use).
      - Merge of numerous announcements admincommands, now handled by //announce <list|all|add|add_auto|del>.
      - Addition of //say admincommand (critical counterpart for //ann).
      - Old //announce renamed for //ann.
   
Misc
   - Little reorganization on Gameserver.java.
   
PS : so basically, regarding Announcements admincommands, you only have :
- //ann && //say for instant announcements type.
- //announce <list|all|add|add_auto|del> for advanced mode.
- //reload announcement.

Edit : Hasha shared a little .bat to automatically make the .bmp > .dds transfer. You can find it in attachment.
« Last Edit: January 29, 2015, 03:35:04 PM by Tryskell »
Code: [Select]
<html><body>Triskel:<br>
Triskel does not speak with foolish fellows who do not know their profession!
</body></html>