Jump to content

Nik

Members
  • Posts

    465
  • Credits

  • Joined

  • Last visited

  • Feedback

    100%

Posts posted by Nik

  1. But ... it's for L2OFF, not L2J.

     

    Also Nik breaks gameserver weekly.

    I doubt any sane person will try to rework casting, targeting system and touch AI with a sober mind. Be happy I don't work with sober mind on such cases. I'm actually amazed by how unbroken gameserver was after all that AI changes, and even more amazed by how the old AI even worked with all that black magic inside.

  2. public enum IncomingPackets implements IIncomingPackets<L2GameClient>
    {
    	LOGOUT(0x00, Logout::new, ConnectionState.AUTHENTICATED, ConnectionState.IN_GAME),
    	ATTACK(0x01, Attack::new, ConnectionState.IN_GAME),
    	REQUEST_START_PLEDGE_WAR(0x03, RequestStartPledgeWar::new, ConnectionState.IN_GAME),
    	REQUEST_REPLY_START_PLEDGE(0x04, RequestReplyStartPledgeWar::new, ConnectionState.IN_GAME),
    	REQUEST_STOP_PLEDGE_WAR(0x05, RequestStopPledgeWar::new, ConnectionState.IN_GAME),
    	REQUEST_REPLY_STOP_PLEDGE_WAR(0x06, RequestReplyStopPledgeWar::new, ConnectionState.IN_GAME),
    	REQUEST_SURRENDER_PLEDGE_WAR(0x07, RequestSurrenderPledgeWar::new, ConnectionState.IN_GAME),
    	REQUEST_REPLY_SURRENDER_PLEDGE_WAR(0x08, RequestReplySurrenderPledgeWar::new, ConnectionState.IN_GAME),
    	REQUEST_SET_PLEDGE_CREST(0x09, RequestSetPledgeCrest::new, ConnectionState.IN_GAME),
    	REQUEST_GIVE_NICK_NAME(0x0B, RequestGiveNickName::new, ConnectionState.IN_GAME),
    	CHARACTER_CREATE(0x0C, CharacterCreate::new, ConnectionState.AUTHENTICATED),
    	CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
    	PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
    ......
    

    such kind of enum...

    1st value is the packet optype, 2nd value is the class file factory, the next ones are just in which states the packet should be active.

  3. Ah sorry, I thought you worked with russian packs... here is one for l2j

         final Collection<BuffInfo> passives = getEffectList().hasPassives() ? new ArrayList<>(getEffectList().getPassives()) : null;

            //@formatter:off

            final Set<AbnormalVisualEffect> abnormalVisualEffects =  Stream.concat(getEffectList().getEffects().stream(), passives != null ? passives.stream() : Stream.empty())

                .filter(Objects::nonNull)

                .map(BuffInfo::getSkill)

                .filter(Skill::hasAbnormalVisualEffects)

                .flatMap(s -> s.getAbnormalVisualEffects().stream())

                .collect(Collectors.toCollection(HashSet::new));

            //@formatter:on

     

    This piece of code should be fairly understandable.

     

     

    Wow, java 8, that's bad ass

    Yes, yes it is :P
  4.  

    final Map<Integer, List<PvPInstance>> reflections = Arrays.stream(ReflectionManager.getInstance().getAll())

    .filter(r -> PvPInstance.class.isAssignableFrom(r.getClass()))

    .map(PvPInstance.class::cast)

    .sorted(Comparator.comparingInt(Reflection::getPlayerCount))

    .collect(Collectors.groupingBy(r -> r.getInstancedZoneId()));

    Fairly simple code that many developers here have no idea wtf that is. I hope you know what that does.

  5. Yey! Synerge is alive! I'm a big fan of your work, never seen such a good code like yours on maxcheaters.

    Yep, I'm joking, but not joking... from all the code I've seen on maxcheaters, barely any code is well constructed, optimized and most importantly - understandable by other devs.

     

     

    Ttalk with names or gtfo. Most of these? Who are you reffering to? Stupid cunt.

    Do you feel related or something? Such kind of raging would only mean that you think you are one of those people. Are you? Regardless of that your reaction is showing a lot of disrespect...

     

     

     

    Lol. Best developers everywhere

    For those that know nothing, everyone that knows a little are already a genius. 

    The reality is that most of those "extraordinary" devs are barely decent

    I agree about people who don't have any idea of developing, they would consider any person who can make things work as a genius.

    Most of the people here don't understand is the huge difference between working code and proper code.

    Considering what I've seen here, only very few developers that I can count on my hand can do a proper code.

     

    But lets go on topic... I think a lot of decent developers made a post on this topic. Lets talk names as xxdem said.

    The hyper experienced developer you are looking for is the one and only - Sdw :D Sadly, he wont bother the slightest.

    So your other choice is Synerge, but I doubt he is even interested.

    And your final choice goes to xxdem.

     

    As you see, the hyper experienced developer you are looking for not as easy, since people already have a place. Sdw already works in a better place, and can go to Dubai or Las Vegas whenever he wants, so if you can afford his payment to be enough for a one night in Las Vegas club, maybe he will have sliiiiight interest :P

    And no developer would entitle himself hyper experienced.

  6. Can I insert multiple ingredients?

    Can I Insert multiple products?

    Can I insert no ingredients, just products, aka free items?

    Can I insert empty items just for visual order?

    Can I insert ingredient/product count > 2 147 483 647?

    Can I insert ingredient/product id of -100, -200, -300, -400 for items such as fame, clan rep, pc bang points, etc?

  7. Skills engine is a mix between IL and Freya, but all values and formulas have been reverted back to IL. L2J fix skills one by one (like, unfortunately, most of packs out there), and unlike them I think it's a deep waste of time to do that. So I got errors from L2JFreya era.

    Have fun with skills.

     

    If you do it properly that's targeting, effects, conditions, cast and the whole stats system to be done.

    Basically skill engine is pretty fine if you ask me. The amount of work needed to make it retail-like (better than all current packs out there) is reworking half of the pack to change something players already are used to.

     

    Honestly, I've worked on aCis and it is the most comfortable project to work on... it has the least "interlude l2j" feeling to it, and by that I mean the amount of poor code interlude l2j has... back in the days it didn't felt poor because it was the way people codded, but now years later, java and its community gotten better and codding ways are much different. Not to mention that aCis supports Java 8 and I really, really hate projects that doesn't support it.

    For me interlude is already way too outdated, and its good that aCis is rather closer to current l2j than old interlude l2j. But if I was hosting interlude-style server, it would be based on L2Classic and not interlude crappy client. Maybe one day we would see aCis for classic :P

  8. I kinda feel bad for Pere working with someone for years and in the end he trashes everything due to his incompetence... Sure the pack isn't that great, but really? do you have to start all that HighFive bullshit with reopening crappy servers with nothing different from each other? Ghh, where did all the thrill of making a decent server went?

  9.  

     Expanded the range of “/NextTarget” command, enabling the targeting of subjects that are much farther away than before.

     

     Added Repeat Macro function.

             o After assigning a macro to a shortcut, right-clicking the mouse repeats the macro.

             o While the macro is being repeated, performing another action stops the macro.

     Added [Copy All]/[Paste] button.

            o Players can use the button to copy or paste macros.

     Added [Preset] button.

            o Players can assign a frequently used macro set to Preset, and can add to their macros by drag and drop or double-clicking.

     

    Adrenaline? What adrenaline?

  10. Yes, so far with my experience, players don't tend to like shitload of events thrown in their face. Most of them just get confused when there are more than a handful of events. Unless you are able to present that many events nicely, players won't pay much attention to the different kinds of events. You either make a handful of strongly different events, or make basic event templates like TVT and give different objective each time to the event. In this case your XML thing will be the most useful, but again, if I have to make 5 different XML templates for the same TVT event with 5 different mini-objectives, it just sucks.

  11. Well, do as you like, but I suggest you to keep things simpler. Even if you are good developer and this complexity is ok for you, its still abnormally complex in my option. At some point this complexity will go against you, and cause you to get confused more often than it should. Even if you comprehend it now, it doesn't mean you will always comprehend it without mistake. Chinese people created their traditional language very complex but very robust, now many Chinese are unable to learn that language and learn simplified instead :D

  12. That scripts thing is just way too much now.

    Any developer in this case will prefer to extend a class and make methods as he likes to. Its just way easier to read/understand.

    Any non-developer will not even have the slight idea what to do in this case and how to use such scripts in xml...

     

    ThugEscape::legitimateKill($any, $thug)

    ... I don't have the slight idea what this method is, where it is called and what are those variables... Imagine how it looks to the regular person.

     

    I suggest you to make it so people extend AbstractEvent in scripts folder and they change the preferred methods as they like. Current way needs to make scripts anyway and I cannot imagine a case where im going to use the same script for 2 or more events, unless Im too lazy and I make copy-paste redundant events. Basically just point out what "script AI" (sub-classes of AbstractEvent) the event is going to use, and forget about 123123 hooked scripts to methods to wtf... I think people are used to changing at least constants in scripts, so you can make a set of pre-done scripts with given constants. Maybe you can add an exception to change constants of chosen script from XML, but that's as far as I suggest you to go.

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock