moly 7 Опубликовано 26 апреля, 2013 (изменено) Описание: Исходный код команды aCis Версия: 290 Хроники: Interlude Changeset 280 Quests - addition of Q326, Q330, Q376, Q377, Q380, Q622. - fix last revision loop edit on Varka/Ketra scripts. Ty xblx for warning. - fix Q624 party quest state. Changeset 281 Fishing tournament, GM commands && misc Fishing tournament - the most awaited && acclaimed feature of 2007 finally added. - what more to say... Stfu && enjoy ? - dedicated to sahar. He knows why. - ty UnAfraid for some HTMs. GM commands - //list_spawns now uses an HTM with clickable locations. It also uses current target if npcId entered as parameter isn't ok. - added a button on shift+click npc info list for spawns. - //list_locations command is dropped, as //list_spawns makes that job by default now. - slight edit of main_menu.htm. ServerVariables - addition of a table dedicated to misc things of the server. - probably will store more than current use (only fishing tournament atm). Events, 7S, olympiads ? Misc - rework StatsSet, picking up g1ta0's work. Probably more to come, it's a gold mine... Report on forum about fishing tournament. As the system comes from a well known source, I didn't bothered to test too much. I added some HTMs, one missing SystemMessage, fix the custom length formula which now fits retail criterias, and observed the regular mechanism of load/save. For example, I didn't test reward period. So tests and reports, even if working, would be appreciated. Changeset 282 Quests, misc Quests - addition of Q407, Q408, Q409 && Q419. Ty sharers. - reworked "PathTo" CREATED_STATE quests (easier to read), and set final exitQuest() to TRUE, in order to see HTMs. Misc - add a layer called ExProperties, improving readability/creation of Config.java - Drop StackIDFactory, making BitSetIDFactory the only choice. Related configs are dropped. - Cleanup BitSetIDFactory, dropping some synchronized. - some Float had to be dropped ; they're edited for Double. - put default values for CH configs. - fix various problems on CabaleBuffer instance. Delay autochat from 30sec to 60sec (not retail). - random : add a missing rset.close(), put 2-3 methods static, use of getters and cleanup some crap in LS. Changeset 283 Quests, misc Quests - fix NPEs on Q602 and Q111. Drop null checks on Q607, Q608, Q613, Q614 (already handled by getPartyMembers()). - few "Quest." and invisible typos cleanup (but well as replace works well... Why not ?). By typos, there were double " ", space after/before " ", etc... - addition of Q402, Q404, Q405, Q410, Q411, Q412, Q601. Ty sharers. Misc - drop few stats and "uses" : EXPSP_RATE, NONE_WPN_VULN, ETC_WPN_VULN, FIST_WPN_VULN - rewardExpAndSp() : exp parameter is a long instead of int. - no more calcStat use for exp/sp rewarding. - fix a location in GM teleport, drop a line on Varika HTM. Changeset 284 Quests, misc Quests - 320 scripts overall ;p - addition of Q363, Q415 && Q418 (tested 2/6 ends). Ty sharers. Misc - fix L2ClanMember issue. - revert one fix of [255] - L2Attackable drop edit back to regular L2J + cleanup. - MoveBackwardToLocation cleanup. - drop admin commands related to NPCs edition (12 overall - preparing next commit), rework survivors. - cleanup few TODOs. - added 50 spawns in Orc Territory, 5 for Q415 (Aren and quest mobs). The L2J IL spawnlist is just ubber failed in fact , missing few hundreds spawns. Note to myself : 37052 spawns before any refactor. The time will say if I was true or not . Changeset 285 NPCs templates refactor part I - Ty to devilKing for data parsing. An important work has been made in order to merge, and then SQL -> XML all data related to NPCs. That work is a first step and is commited to let me a clear view of next additions, see bottom for what is missing. Following SQL tables dissapear : - npc_ai_data.sql - npc_skills.sql - npc.sql - minions.sql - skill_learn.sql Following XML dissapears : - droplist.xml Some new functionalities : - addition of isSeedable() support. - unhardcoded critical value (mobs got different % to critical : 1, 4, 8. - NPC shield support. Feel that sad feeling when your hits are blocked by a mob ! - Debugged ss/bss usage for NPCs. You thought NPCs were stupid... And you were right. But now they're powerful. - Debugged stats system (was heavily affecting summons). And, in the biggest capharnaüm : - edit L2CharTemplate, L2NpcTemplate and L2PcTemplate stats names, and so by extension XMLs. For classes parsing, there is a noticable drop in weight removing "skill" from "skillId" and "skillLvl" (-200ko). - drop from XMLs classes things which could be set by default on core, and shared amongst all templates, notably : - basePAtkSpd (default 300) - baseMAtkSpd (333, shared with mobs) - the stat just dissapears, replaced by flat value on the used formula. - baseCritRate (default 4) - stats who were supposed to be boolean (but weren't due to the use of SQL) are now boolean. - following methods (setters, getters, variable) dissapear : - getSex() - no use (I speak of npcs, ofc) - getBaseHpConsumeRate() - no use - getBaseMpConsumeRate() - no use - _aiClass from L2Character - no use - getBaseMAtkSpd() - 333 for all - getBaseMCritRate() - 80 for all - isServerSideName() - isCustom() addition - isServerSideTitle() - isCustom() addition - getBaseShldDef() - 0 for all (affected by worn lHand) - getBaseShldRate() - 0 for all (affected by worn lHand) - overidden getCollisionRadius() / getCollisionHeight() from L2PcTemplate (what was the point to store in another variable and not using the extended variable ?) - _staticAIData and its getter on L2Npc (can be easily replaced by getTemplate().getAIData(), avoid to maintain 65xx AI objects just for shortcuts...). - isCustomNpc() addition (compares if npcId and templateId are different, if yes, it is considered as a custom npc) - existing float are changed for double. - base patk, pdef, matk, mdef are double not int anymore (keep accuracy for calculations). - shift+click on NPCs is cleaned up (generated HTM is shorter, drop of (L2Character (this)), fix skill / drop / spawn views for custom NPCs (was using idTemplate instead of id), addition of missing infos (harvest, ss/sps count/rate). - _seeded L2Attackable internal boolean flag is dropped, as that state can be checked using _seedType (> 0 meaning it is seeded). - Config.CHAMPION_ENABLE is dropped. If frequency > 0, then we can have champions... So that config is useless. - default values concerning champion configs are equal in Config.java and .properties. - drop of admin_kill_monster command (unused) and drop of AdminKill handler (merged admin_kill on AdminAdmin). - fix a NPE in Q111. - fix shops animation while running (you still could run for 2.5sec before stopping). Ty UnAfraid for the report. - fix few Double values in Config which weren't correctly parsed as Double. - getPlayersInside() && getPlayableInside() are dropped for getKnownTypeInside(). Cleanup of L2BossZone. - fix systemMessages while missing a regular attack - ty Hasha for report. - fix target cancel while attacking (pressing esc) - fix a PHX exploit, ty PaganTemplar for report. - fix polymorph issue, ty Sweets for report. - fix an issue with henna addition, ty Silentium. - fix a problem with quest parameters, ty povis111 for report and Hasha the Villain for fix. - add few HTMs on default folder. If you (think you) have better data, consider sharing. devilKing will surely be pleased to parse it, again, and again. Things to do in part 2 : - isSeedable() use for seeding purposes (atm only one check for harvest). - debug rHand/lHand stats, in order mobs use shields. - debug stats, all NPCs stats are very weak. - active skills missing on all templates atm. Changeset 286 NPCs template refactor part II, Recipes, misc NPCs - fix missing teachTo infos (infos took from aCis, no reason L2J was wrong). - add ACTIVE skills on all NPCs templates. Use of L2OFF GF (aCis skill list) for the ACTIVE skill list. - fix custom names/titles (isCustom() uses). - fix all Races using L2OFF GF "race" parameter. It uses only 4416 instead of 4290-4301 && 4416. - addition back of the Wedding manager custom NPC. - edition of shift+left click on NPCs. Addition of few infos (race, canMove). Recipes - fix an issue concerning recipes loading, ty Hasha. - better performance overall (drop a map, avoid few generation of lists, drop synchronize keywords, drop of TempItem class, random cleanup,...) Misc - Checks involving hpratio are unified (easier to read). - Fix TARGET_AREA_UNDEAD (rename it for AURA, as those skills are AURA not AREA ; clean the target type ; fix the mechanisms). Ty Hasha for report. - Cleanup GBs scripts. - correct Extractable message, ty Sahar. PS : As the old aCis skill list was using L2OFF GF, the gain of RAM is around 25mo between this rev and 3 revs ago. Now passive skills are the ones written in client description. More parts to come, we still miss 53 templates and calculations of stats from core. Changeset 287 NPCs, AIs, misc NPCs - Few fixes on npcs.xml (few mobs being canMove when they shouldn't, etc). - Indent using tab instead of spaces = -600ko. - Clan system is revisited : - "clan", "clanRange" and "ignoreIds" don't need anymore a default value on npc templates (drop of all clan="" clanRange="0" ignoredIds=""). - if a mob hasn't "clan" parameter, "clanRange" as "ignoreIds" aren't parsed. A mob can have : 1/1/1, 1/1/0 or 0/0/0 (default, no need any write). - "clan" is now correctly parsed and used. It needed an important rework in order a template accept multiple clans. - "clanIgnore" is renamed for "ignoredIds". The system is now correctly parsed and used. - Addition of "ignoredIds" in shift+click panel. - L2AttackableAI cleanup. AIs - Addition of GatekeeperZombies script. - Fix aggroReconsider() method (no more NPEs), which returns previous target if no new target fits. Simplify the method. - Fix Sprigants behavior. The task loop is now correctly stopped in case players die or leave the area. - Fix custom scripts in order they send back bug report/HTMs. Not really a fix, as AIs don't use any HTM, but better follow that rule. - Orfen AI : - General cleanup. - Edit initial spawn point of Orfen on SQL (happens only at first server startup) from her lair to 1st location (out of 3). - Edit her aggro range from 500 to 1000. - The 4 minions are handled by minion system instead of script (it generates decent random walking and minions follow Orfen). - Edition of the zone check system for a Valakas/Baium similar looking one (inactivity = reset). That check is made every 60sec, not 10sec anymore. - If inactive during 30min, Orfen randomly walks on 1 of the 3 locations (not lair). If she was already tagged as teleported, drop the teleport flag. Misc - Fix rev285 henna issue, ty Hasha for report. - [L2J 5756] hasAtLeastOneItem() method. As it isn't limited to quest items, it is put on Inventory. - Cleanup Quest.java methods, avoid to retain unused variables. - Addition of Util.contains(array, array) for clan comparison cases. Return true if at least one element is common to both arrays. - Existing Util.contains methods got "==" edited for "equals". They also check if array integrity is ok (null or empty array returns false). - Drop of isParty(L2Skill) method. Notes : - Orfen movement sucks because of the miss of geodata check, perhaps later it will be improved (or share if you found better way to handle it). - When a NPC got multiple clans, it uses the same clan range value for all of them. Changeset 288 NPCs template refactor part III, misc NPCs refactor - handle final stats calculation from template stats (formula : base * carac bonus * levelmodifier). - fix pets evasion/accuracy AIs - "FleeNpc" is moved to "group" folder, and is renamed "FleeingNPCs". - split L2AttackableAIScript content into 2 layers : L2AttackableAIScript and AbstractNpcAI. - "group" and "individual" AIs extends AbstractNpcAI. That layer got methods dedicated to such AIs. - L2AttackableAIScript becomes a basic script, stored in "group". - That split prepares the eventuality of listeners system addition. - random cleanup (SummonMinions, Orfen, etc). - Addition of BrokenLabyrinth script : http://boards.lineag...ad.php?t=146273 - Addition of PlainsOfDion script. Misc - Addition of _scriptValue system. Drop of hasSpoken system. - AI timeout is setted back on 120sec (after L2OFF IL check). - critical with barehands is correctly calculated (after L2OFF IL check : use DEX mod). Notes - _scriptValue is unique to a spawn, you have to care about multiple scripts editing behavior of a npc. Changeset 289 Antharas, GBs / RBs, misc Antharas - Addition of the script, fully reworked. Fast comparison with L2J version : - highly cutted script (450~ lines of code instead of 950+) - use of 2 SocialAction during cinematic. - far less tasks used. - use of a dummy id (29019) in order to register it in grandboss table (avoid 3 states). - players are initially teleported far from where Antharas spawns. - minions are handled by regular AI system. - Edition of the GrandBossTeleporters for the npcid 13001. - npcs.xml is edited to reflect behavior (had to edit type, add aggro on behemoths, etc). GBs / RBs - cleanup of RaidBossSpawnManager. - initial HPs/MPs of GBs and RBs at first server launch are fixed (0 = getMax). - Following bosses are spawned, as templates are ok (manually fixed) now : - Boss Akata - Nellis' Vengeful Spirit - Rayito The Looter - Dark Shaman Varangka - GBs don't take summons nor invisible GMs in target anymore. - Valakas skill choose is improved (less spam of imba skills, clever use of FRONT or BEHIND skills). Misc - getQuest() isn't case sensitive anymore. - fix RequestBypassToServer (that treatorous index is -1). - getRandomPlayer() : returns a random player (must be alive and not a invisible GM). - getPlayersCountInPositions() : returns an array composed of numbers of players in front of, behind and on sides of a npc. - addition of FrenzyOnAttack script (5 orcs types). - few messages added in SummonMinions script (Timak Orc Overlord case). Changeset 290 Summons, misc Summons - fix stats (they finally had to use funcs). - fix base critical on summons (40 for all). Misc - fix an issue involving null objects on pet pickup action. - minions follow distance is made using collision radius of both minion and leader (avoid weird 500 distance on rb minion follow). - drop few methods on instances which are only knownlist stuff. - fix skills 118 and 163 (nerf mages nudists ;p). - fix order of tradelists' content. - isSeedable() implementation. Исходный код Изменено 29 апреля, 2013 пользователем Hotaka 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ingatello 129 Опубликовано 27 апреля, 2013 Спасиб Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты