Jump to content

Recommended Posts

Posted

At least, technologies I don't want to use.

That's more like it. Python and Jython aren't smth you can just mock. I could go on and on mocking l2j's compiler, cus its retarded. ^^

Also, you're not a real programmer if you dont know scripting languages like python, just saying.

  • 3 weeks later...
Posted
Changeset 274

 

AI system part I..., pet inventory, Fear effect, misc

 

It is not yet the paradise, but I tried to cut the complexity, reuse existing stuff, and prepare AI data for future templates rework.

I still search ideas for new AI system (using inheritance, either for AI type and/or template type).

 

General AI behaviors changes

- checks concerning friendly/enemy clans verify confusion state (in case of enemy clan, it replaces).

- mages/priests AI handle following cases from now :

- will always launch skills.

- in case they're muted, they 100% flee.

- in case they're rooted, and can't launch skills (oom/muted), they will attack the nearest (if not possible to attack the current target) target using melee.

- switch automatically from high to short range skills if you approach (priority to short range, as retail), and vice-versa.

- mobs won't (re)buff if they're already buffed when you initiate a fight (as they can buff themselves random-walking).

- drop of the random forget time.

 

Mobs ARE SUPPOSED TO act as following :

- target checks :

- mob hasn't target/got dead target/got timeout ; replace target in case mob is aggro type and continue execution or break the whole processus.

- mob is chaosTime type, switch target if possible.

- mob successes to launch a skill (10% default, 100% for healer/mages AIs) :

- mob suicide below 15% HPs.

- mob heal allies who got the lowest HPs amount (activation at 75% HPs, priority to healer && mages AI).

- mob use a random spell - debuff (10%) - otherwise, by priority : short range && long range skills.

- mob is immobilized : if physical range is ok, attack, if not, pickup the nearest target and attack it.

- mob flee from player melee range if it is a mage/healer/archer AI.

- mob approaches the player if out of physical range.

- mob physically attacks the player.

 

L2SiegeGuardAI

- reorganized entirely the file, inheritating from L2AttackableAI.

- correct an issue introduced 10~ revs ago, where siege guards weren't attacking at all.

- drop TargetAnalysis && SelfAnalysis (was creating a huge amount of pointless lists for every siege guard).

 

L2NpcTemplate

- drop 13/19 skills lists and associated getters (here are the survivors : long range, short range, heal, buff, debuff, and suicide.

- addSkill() method avoid to use "add" getters, allowing to drop them all.

- drop of FIGHTER and BALANCED AITypes. Those 2 AIs are now refered as DEFAULT (as basically FIGHTER types got and will use skills).

 

AbstractAI

- _castTarget and _attackTarget are dropped. All is uniformed around getTarget().

 

L2AttackableAI

- drop of _lastBuffTick.

- reorganized entirely the file, and rework many methods.

- avoid to generate internal skills lists for AIs. It uses templates skills arrays.

- the attack timeout is back to 30s, rather than 2min (/4). It now handles differently aggro mobs from passive mobs. Passive mobs will stop to attack if you don't attack them, when aggro mobs will continue to follow you until you're out of their "aggro range * 2".

 

L2NpcAIData

- drop many variables with their getters/setters/uses, in prevision of future NPC templates rework. The list concerns :

- _primaryAttack

- _minSkillChance

- _maxSkillChance

- _isChaos

- _longRangeSkill

- _shortRangeSkill

- _longRangeChance

- _shortRangeChance

- _switchRangeChance

- _enemyClan

- _enemyRange

- SQL is not cleaned cause it will soon disappear. As the useless data isn't loaded, it's not a problem.

- drop of %ai_enemy_clan% in shift+click panel on NPCs.

 

NpcWalkers (L2NpcWalkerInstance, L2NpcWalkerAI)

- L2NpcWalkerInstance internal broadcastChat() -> L2Npc broadcastNpcSay().

- avoid multiple .get() operations updating a single L2NpcWalkerNode when the NPC goes to it (as we have, anyway, to retrieve the node, better make it automatically).

- drop _homeX, _homeY, _homeZ variables + getters/setters and uses on onSpawn() - unused.

- _walkingToNextPoint getters/setters are dropped - unused.

 

Pet inventory

- fix a concurrent issue, ty Hasha.

- fix the inventory update when you transfer non stackable items.

- add player && pet inventory weight refresh. Pet can now be overweight (was working before, but only in few circumstances).

- items are cleaned from pet inventory list / from the world even if the owner doesn't exist.

- checkItemManipulation for pet inventory (make checks on count). The string parameter is dropped for both inventory types. The count check is made on < 1, not on < 0 anymore.

 

Fear effects

- glitch is fixed, ty xblx.

- slight edit in order if you trigger startFear() it works in any case, and avoid pointless actions triggered by onActionTime().

- remove the visual effect when effect ends.

 

Misc

- modifier for L2Attackable concerning cast break has been removed. I still believe it should be reworked for monsters (75% or 50% of the final value ?).

- drop of Rnd.nextInt(int) method, which was calling Rnd.get(int) method.

- fix a ConcurrentException on CellPathFinding geodata module.

- fix lethal strikes messages. calcLethalHit() method doesn't return a boolean anymore (no use).

- fix a couple of skills values (lethal2 100% chance issue && few cancel resist/vuln chances setted to 40 instead of 30).

- drop of mAtkRange Stats. The only factor which entered in that Stats calculation was skillRange, so I simplified it.

- fix gameserver shutdown issue (ty Kenrix for reminder). I don't use L2J forum / Silentium fix.

- fix RequestHennaEquip adena amount message (cleaner method used than Silentium).

- fix a minor issue on /unstuck command - missing isSitting() check (ty Silentium).

- fix jail issue (teleport you forever in jail if you're //recall by a GM). Ty xblx.

- [L2J 5684] hitTime lower than 500 are taken in consideration, _castInterruptTime takes in consideration the skill coolTime.

- cleanup of all getKnownXXX() / getKnownXXXInRadius() methods, replacing them by 2 using generic types (fuck yeah).

- drop few clone checks concerning isRunning() - as setRunning() internally checks it.

- fix FriendList packet, ty Root for report.

 

N.B :

Between 10mo to 15mo RAM are saved.

The think cycle is actually used more than once per second (called by itself on attack ?). This is the main issue about packet flood when numerous enemies follow you, and will end by a huge performance boost once corrected.

I search a mean to fix pet inventory weight number. Atm it only updates while overweight penalty is called. I dunno why.

 

Things to fix in AI part II:

- null crap on HitTask / callSkill.

- flee behavior if you're too near (mob stops to attack).

- siege NPCs mage weird movement.

- find a solution about mage with low/no mana, in order to avoid those weird movement.

Posted

And this is smthg which we can call 'a big commit'.

Yup, it was an 8k+ lines commit. When it was equivalent to (legendary now :D) skills rework, the big change is, this time, I selfcoded all.

 

Anyway, next rev is out !

 

Changeset 275

 

Enchant system, Quest system, Misc

 

Enchant system

- [L2J Silentium 145] add skill refresh when you enchant an equiped dual (to +4) or armor (to +6, if other parts of set are already +6).

- don't unequip item (it was visible if you failed a blessed enchant).

- avoid to refresh weight in case of a success or a blessed fail.

 

Quest system (Hasha)

-  fix exclamation mark for NPCs with one-time quests.

-  npc will now show correctly the "quest completed" message, when quest is completed.

 

Misc

- cleanup pathnodes loading.

- delete _isSpoil + setter/getter (can be retrieved with another variable). Cleanup spoil skillhandler && effect.

- cleanup 20+ generated TODO and content of those files (conditions mostly).

- fix an issue where 2 items rewarding the same skill drops the skill once you unequip one of those items. Addition of getPaperdollItems() method. Ty xblx.

- fix alliance creation/dissolution and clan dissolution if you're registered/participing in a siege. Ty Hasha. PS : it also avoids one connection with DB.

- cleanup xp/sp methods to reuse existing stuff. Ty Hasha.

- EffectStunSelf correctly stuns effector, not effected. Ty xblx for report.

- FriendList packet edited (again). Ty xblx.

- fix the last potential NPE (according Eclipse).

- fix a crappy NPE introduced in previous rev (see last comments on previous rev). Ty xblx.

- drop or edit few "_log.log(Level.WARNING, "", e);", as they send blank debug message. I only bothered about the most common.

- AdminPledge is cleaned up, the following actions (dismiss, setlevel, reputation) are now possible on any clan member, not simply the leader. info and dismiss work as supposed (no need 2nd parameter) when used from admin panel.

Posted

New rev, quests rev :P. We reached 280 quests currently commited.

 

Changeset 276

 

Quests, misc

 

Quests

- addition of Q047, Q048, Q324, Q372, Q426. Ty to sharers.

 

Misc

- "Quest." are dropped on any quest (Quest.getNoQuestMsg(), Quest.getAlreadyCompletedMsg() && all Quest.STATE_XXX).

- drop a double check on checkClanJoinCondition() method, ty Ashe.

- fix "ghost" aborted/completed quest issue on quest logs.

- few HTM typos.

Posted
Changeset 277

 

Quests, Misc

 

Quests

- addition of Q101, Q102, Q103, Q119, Q265, Q654. Ty sharers :3.

- Echoes crystals aren't a Newbie reward (Q104 / Q105).

 

Misc

- drop the "karma drop" message (was flooding logs).

- change the severity of disconnected client message from "info" to "fine" (was flooding logs).

- (potentially) fix concurrent exceptions on updateHeroes() && activateHero(). For info, .put on a Map overrides the entry if it was already existing, making the .remove useless (and dropping the concurrent use).

 

Notes

- put back a concurrent version of ArrayList if Hero problem persists.

- the "Rewards" var (flag used on repeatable newbie quests) will be kept until Tutorial is commited.

Posted
Changeset 278

 

Quests, AutoChatHandler, Misc

 

Quests

- addition of Q106, Q107, Q108, Q274, Q306. Ty sharers. Again.

- unify checks about races on quests HTMs.

 

AutoChatHandler

- drop AutoChatHandler system. It is only used for 7Signs, and it can't be used for a simple random npcid (or anyway must be scripted, as it must be setActive()).

- indirectly fix the issue introduced in auto_chat rework, where Preachers were spamming the whole block of text (bad split with " $ ", dunno why).

 

Misc

- classes folder use a better organized files, which also fix the Linux issue. Ty Root. I got few answers it works on Linux, and I tested some minutes on Windows.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Posts

    • hello everyone! I am wanting to save the files (Ini. - Data - ) of the EP5 Client: Salvation... But they generate the error "corrupt files"... I tried several versions of L2FileEditor without good results. I need help! Thank you!
    • Opening December 6th at 19:00 (GMT +3)! Open Beta Test from November 30th!   https://l2soe.com/   🌟 Introducing L2 Saga of Eternia: A Revolution in Lineage 2 High Five! 🌟   Dear Lineage 2 enthusiasts, Prepare to witness the future of private servers! L2 Saga of Eternia is not just another High Five project—it’s a game-changing experience designed to compete with the giants of the Lineage 2 private server scene. Built for the community, by the community, we’re here to raise the bar in quality, innovation, and longevity. What Sets Us Apart? 💎 No Wipes, Ever Say goodbye to the fear of losing your progress. Our server is built to last and will never close. Stability and consistency are our promises to you. ⚔️ Weekly New Content Our dedicated development team ensures fresh challenges, events, and updates every week. From custom quests to exclusive features, there will always be something exciting to explore. 💰 No Pay-to-Win Skill and strategy matter most here. Enjoy a balanced gameplay environment where your achievements come from effort, not your wallet. 🌍 A Massive Community With 2000+ players expected, join a vibrant and active community of like-minded adventurers ready to conquer the world of Aden. 🏆 Fair and Competitive Gameplay Our systems are designed to promote healthy competition while avoiding abusive mechanics and exploits. 🔧 Professional Development From advanced bug fixes to carefully curated content, we pride ourselves on smooth performance, no lag, and unparalleled server quality. Key Features Chronicle: High Five with unique interface Rate: Dynamic x10 rates Class Balance: Carefully fine-tuned for a fair experience PvP Focused: PvP Ranking & aura display effect for 3 Top PvPers every week Custom Events: Seasonal and permanent events to keep you engaged Additional Features:   Custom Endgame Content: Introduce unique dungeons, raids, or zones unavailable in other servers. Player-Driven Economy: Implement a strong market system and avoid overinflated drops or rewards. Epic Siege Battles: Announce special large-scale sieges and PvP events. Incentives for Streamers and Clans: Attract influencers and big clans to boost server publicity. Roadmap Transparency: Share a public roadmap of planned updates to build trust and excitemen   Here you can read all the features: https://l2soe.com/features   Video preview: Join the Revolution! This is your chance to be part of something legendary. L2 Saga of Eternia is not just a server; it’s a movement to redefine what Lineage 2 can be. Whether you’re a seasoned veteran or a newcomer to the world of Aden, we invite you to experience Lineage 2 at its finest.   Official Launch Date: December 6th 2024 Website: https://l2soe.com/ Facebook: https://www.facebook.com/l2soe Discord: https://discord.com/invite/l2eternia   Let’s build the ultimate Lineage 2 experience together. See you in-game! 🎮
    • That's like a tutorial on how to run l2 on MacOS Xd but good job for the investigation. 
    • small update: dc robe set sold   wts adena 1kk = 1.5$ 
    • DISCORD : utchiha_market telegram : https://t.me/utchiha_market SELLIX STORE : https://utchihamkt.mysellix.io/ Join our server for more products : https://discord.gg/hood-services https://campsite.bio/utchihaamkt
  • Topics

×
×
  • Create New...