Jump to content

aCis - another CRAPPY interlude server


Tryskell

Recommended Posts

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.

Link to comment
Share on other sites

  • 3 weeks later...
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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

How many quests left ?

 

23 quests left to code and rest is waiting for approval (some of them (like 5) need small rework) :)

Link to comment
Share on other sites

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

    • Well my friend, I'm not going to stay here arguing anymore, because you won't give up and much less have the humility to accept something you did wrong, as you saw, I value the work of others, I know who really creates or even takes a block of code and does something better and different, but the subject here was about a guy, nicknamed Vraekar, who steals and SELLS interfaces as if they were his, and is that within your beliefs?, belief that if the guy creates something it has to be stolen and whoever stole it can profit from it?, that's what I'm talking about, you've fought a lot against this, and today you help a guy like that to do wrong, but anyway, you know what you're doing, I hope you reflect, the community knows who does and who helps the wrong. Stay with God, because six of the problems that go around.
    • You claim you thought I was a "serious" person before. Well, maybe you just never took the time to actually know me. People evolve, but I stay true to what I do and believe in. If you’re that hung up on what I’ve been doing, maybe it's time to stop speculating and start focusing on yourself. 🙂
    • Well, at least it's clear that you don't respect the work of others. Secondly, everyone knows that you code nothing. Your group has devs. known that you've asked for a lot of help and code exchange with some well-known BRs. there are chats and I can prove it, then don't come playing the good guy because you're not. So, Celestine, I'm not judging you. I'm saying that I know that your group helped vraekar steal the codes, and I have proof. In the past, I thought you were a serious, good-natured guy, but lately, you're a different person. Your text above speaks for you.
    • What I do or who I work with is none of your concern, and honestly, I couldn't care less. Lately, I've seen a lot of people trying to make a quick buck off scams, so let's not even mention names you wouldn't want them getting upset, right? 🙂  As for the projects I've been involved with, there's a server about to launch that I’m personally waiting for, and when it does, I’ll release the work publicly for free because people deserve better than what these so called "developers" are pushing. I’m not here to defend anyone, but if you had any real knowledge, you’d see how poorly written some of these scripts are. I’ve worked with Vraekar in the past, and I know for a fact he’s never sold anything I’ve created. So before you start running your mouth, ask yourself: why are you even juding me?
    • I didn't even want to touch on your name Celestine, but it took a while to want to protect it, right? But then I say, everyone knows that you and your group helped Vraekar in deobfuscating the interfaces, do you want me to post here the dates and videos of the releases of the OMG and Silence interfaces?, and then see Vraekar's?, do you want?, a blatant copy, even their variable names, the theft is blatant, and you who are an admin here at Max and say you are the right one, helped him decrypt and remove the code obfuscation, everyone knows that, and now you come and tell me that his code is not copied?, if you want I can put all the evidence here and this will be very ugly even for you, since those you helped Vraekar and the interface dev community know this, they know about the thefts, very ugly indeed my friend that you still come and tell such a lie.   ps. And just one more thing, did you say that all the code he wrote? you became a joker? Vraekar doesn't program a single line of code, the guy works as a data analyst, what he learned was to copy and paste ready-made codes, but he doesn't write a single line of code.
  • Topics

×
×
  • Create New...