Tryskell

L2J Developer
  • Content Count

    5,091
  • Joined

  • Last visited

  • Days Won

    25
  • Feedback

    0%

Tryskell last won the day on June 30

Tryskell had the most liked content!

Community Reputation

138 Excellent

About Tryskell

  • Rank
    Distinguished King

Contact Methods

  • Website URL
    http://acis.i-live.eu/index.php

Profile Information

  • Current Mood
    Playful
  • Gender
    Male
  • Country
    France
  • Location
    In your kitchen eating cookies.
  • Interests
    Bitchslapping IL since 2010.

Recent Profile Visitors

8,621 profile views
  1. It doesn't work like that. Official L2 updates are cut in "chronicles". I invite you to read any wikipedia speaking about L2 to get the full list, it updates every 6 months or so lately. Each chronicle (tagged by a name) got its own developement team, L2J stopped around H5, mainly because they couldn't follow the pace of retail chronicles. Numerous teams took other chronicles, being older or newer than H5. For that, they use initial L2j work and work on their own version of the emulator ; it's called a "fork". Many of those teams simply dissapear after a while, and their sources are also generally lost. For instance, I'm the project leader of a project aCis, which is based on L2J IL branch, and which is dedicated to Interlude chronicle (which last 6 months, around 2007). Other teams work on other chronicles, and some popular chronicles can have numerous teams working on it. You also have L2OFF, which are basically leaked retail files (basically, what uses NCSoft as game server) and since leakers couldn't leak all chronicles, some people created an "extender" system, to emulate a given chronicle. For instance, L2OFF got leaked C1, C4 and GF, so any L2OFF files you will find about C2/C3/C5/IL/... is an extender. About which chronicle does what, you basically need to know the game to understand. The biggest steps, in the past is the move from IL to Kamael, and the introduction of GoD. Since then, it becames a fuckfest and I personally stopped to interest into it. Then, some years ago, and seeing private servers were still strong and seeing they could milk some players based on nostalgia, retail also launched "Classic" version. So you got actually 2 versions of L2 retail, and an illimited amount of forks trying to emulate chronicles, being latest and older.
  2. From what I understand broadcastUserInfo() normally sends everything needed, if it's not enough your only bet is to edit client. Server-side, that's the only thing you can call with PetInfo and AbstractNpcInfo. You basically send to yourself UserInfo and to others CharInfo. That's at least right for AbnormalEffect, if your effect is triggered in another way (NPC calling a skill for exemple) then it's another thing.
  3. Copy-paste a .bat from another pack, most of them are extremely similar. If it doesn't work, check the .bat from your loginserver. .sh are for linux. 1min on google could end you here : https://www.thewindowsclub.com/how-to-run-sh-or-shell-script-file-in-windows-10/
  4. Basically, on every player death (Player#doDie), you check, in the order : if he's in a party (Player#isInParty / getParty() != null) ; if true, you interrogate your zone system (ZoneManager#getAllZones(ZoneType.class) to see if you're registered on such zone if yes (!= null), you iterate getParty() members - since you checked before, you know it's already not null - and you count who is dead and who isn't. For whatever condition you decide (I would say, party size() - 1 as dead people) you Player#teleportTo(TeleportType.TOWN). As I said higher, you also have to check Party#disband and Party#removePartyMember I traditionally don't share any code, only logic. If someone wants to code it for you for free, up to him :).
  5. No, if he comes back it's simply because marketplace rules should be edited. Only already trusted people (aka people who contributed in one way or another in other sections of forums - share things, answer in dev help section,...) should be able to open a marketplace topic. That would drastically lower the amount of people doing crap. Also, if you got scammers, it means you got scammable people. Sorry to say that, but to get a predator, you need a prey. It's a really simple Darwin concept - people aren't educated enough. At a point, you can't blame Outlook if you click on a phishing mail. That's also up to USERS to don't command anything from untrusted people.
  6. Dimensional Rift already got that. See occurences of killRift(). On aCis I introduced Party#wipedOut for easy check. Some tips : If you don't have rooms to teleport in, you have to run it eventless, using a task (ThreadPool / ThreadPoolManager). You have to track party disband.
  7. Changeset 392 (1847) ExServerPrimitive, GeoEngine, Movement, Friend/BlockList, Enchant / Paperdoll ExServerPrimitive - Color is now defined only via Color, rather than int. Extra methods are dropped. - Added addSquare, addRectangle methods for easier draw concepts. - Updated AdminGeoEngine "can_see" command graphics. GeoEngine - ty Hasha. - Updated canSee, canMove and getValidLocation methods. - Now using exact line of sight/movement and checks all cells in the way, rather than using LoS/LoM approximation using Bresenham's line algorithm (see https://en.wikipedia.org/wiki/Bresenham's_line_algorithm ). - Computation more heavy per each iteration. Performs approx 25% more iterations per path (25% more geodata cells evaluated). Still worth the accuracy. - Fix LoM check giving false positive result, when target is on "balcony". - Added first iteration of canFloat check, can be used for both, flying and swimming. Though the movement itself should handle all special cases (like water level, when swimming from bottom up). - Added new admin command "geo_fly" to check LoF. - Misc. Movement - Rework moveToPawn / moveToLocation concept, for both Creatures and Players. - Introduce ValidatePosition debug (part of //show move) to visually see server<>client desync. Rework ValidatePosition. - Fix most of server<>client desync. - Fix dead/teleporting/disconnected over target follow. Friend/BlockList systems rework - ty RooT. - Add missing packets and make a correct use of it. - Delete //silence && //tradeoff admincommands. - Move isBlockingAll concept to BlockList. Basic BlockList cleanup. - Add missing blocklist check over clan invitation. Enchant / Paperdoll rework - ty RooT. - Drop all admin commands from AdminEnchant except "admin_enchant". - Drop enchant.htm, use quickbox instead. - //enchant doesn't work if the same enchant is already set. - Introduce Paperdoll enum. Rework most methods to use it. - Big cleanup of Inventory. Move some overriden behaviors back to PcInventory. Add Javadoc. Move ChangeRecorder out and rename it ChangeRecorderListener. Organization - Delete unused configs : INVENTORY_MAXIMUM_QUEST_ITEMS / DEBUG_PATH / LOG_LOGIN_CONTROLLER. - Delete 2 unused ItemInstance variables. - Few unused methods deletion over SendablePacket. - Move ItemLocation and ItemState to gameserver.enums.items. - XCast/XMove/XAttack now use generics, _creature is renamed _actor and now uses proper instance type which avoid cast. Bugfixes - Introduce back NPC castle guards. It will be kept like this until SpawnManager introduction. - Fix NPE related to castle guards / mercenaries Castle attribution. - Fix ControlTower castle guards spawns cleanup over doDie. - Fix NumberOutOfRange exception over hero fight loading. Ty BIGMANF. - Fix GMViewWarehouseWithdrawList packet. Ty StinkyMadness. - Fix Blacksmith Rooney spawn time. Ty vampir.
  8. Changeset 392 (1847) is up ! ExServerPrimitive, GeoEngine, Movement, Friend/BlockList, Enchant / Paperdoll

  9. XMLDocumentFactory was deleted on rev 382, it has been replaced by IXmlReader a while back (377). Simply check classes using IXmlReader, it produces far lesser code.
  10. Whatever pack you gonna pay, and no matter how hard you gonna pay, get ready to get a lot of reports without a dedicated developer and a big bag of money.
  11. Probably forgot to broadcast NpcInfo when walk/run state toggle occurs. I believe server-side movement is correctly calculated, packet MoveToLocation is correctly sent - but walk speed occurs client side, while it should be running state.
  12. Generally due to connection leak, due to badly written custom code. Use the try-with-resources statement whenever you open a connection. https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html The other possibility being, you try to save all Players variables (custom variables) in a single loop, making the connection pool dry instantly. In that case, write your own version of storeMe which use only one connection and addBatch/executeBatch.
  13. TESO got a decent Achievement system, you should maybe check it. It goes from collectables, to end one serie of quests, to finish a region, to kill monsters/bosses, defeat a dungeon... And even "funny" ones. Achievements unblock dye to set on your character armor, aswell as titles. Which is in same time pointless and fashion. Basically, an Achievement system shouldn't reward a monetary currency. At least, that's not what TESO did. https://elderscrolls.fandom.com/wiki/Achievements_(Online)
  14. That's normally the role of players - in case of server admins - or buyers/customers/supporters - in case of projects - to handle such thing. The problem is, we speak about people, and people are easy to be fooled/scammed/corrupted. Also, many of them don't have a "common sense". Regarding hopzone / topzone, I don't even understand why someone never made a public, friendly, player-oriented top. Like pack projects, I guess, that's many speak and very little action.
  15. There's a lot of stickied topics to read on aCis forums / Discord if you're interested by aCis.