L2J Developer
  • Content Count

  • Joined

  • Last visited

  • Days Won

  • Feedback


Tryskell last won the day on October 3

Tryskell had the most liked content!

Community Reputation

154 Excellent

About Tryskell

  • Rank
    Distinguished King

Contact Methods

  • Website URL

Profile Information

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

Recent Profile Visitors

9,277 profile views
  2. When you do Party#removePartyMember, it does what it says ; therefore all additional checks about Player's Party will return false, since he is ALREADY OUT OF THE PARTY. Interrogating Player#getParty() will therefore return ALWAYS NULL, which is PERFECTLY LOGICAL. If you want to code such thing, you have to either : In case of a second method using Party#removePartyMember (what you currently do) : RETAIN the Party of the Player into a variable, and reuse it just after Party#removePartyMember if != null (Party can be disband by default in removePartyMember) In case of Party#removePartyMember method edit : write directly in the method whatever check (there are already such checks for Duel and Dimensional Rift, DuelManager/DimensionalRiftManager#onPartyEdit - in L2J, EVERYTHING ALREADY EXISTS). The good approach is the SECOND approach, since some vars are already validated inside the method (notably, player != null and Party#contains)
  3. //spawn_once doesn't save the Spawn into db, other than that there is no reason it bugs (from memory). Verify first if there are correctly on db, if not, it's normal it can't load - magic can't happen. If they are on db, there are only few cases where it won't generate a Spawn, and most of them got an error message associated to it (wrong NpcTemplate, wrong type of Npc - Guards, Bosses, etc).
  4. Changeset 394 (1972) Scripts, Teleport system, Seven Signs, Organization, Bugfixes Scripts - Introduction of Tutorial / NewbieGuide - Ty howlrang/Marcatu for initial cleanup of L2J script. - Fix following quests : 101, 102, 103, 104, 105, 106, 107, 108, 257, 260, 265, 273, 293. - Rewards are done using rewardItems instead of giveItems. - Fix ss/sps beginners rewards amount. - Rewards are now secured by a PlayerMemo var instead of QuestState var, making it exploit-free (case of 257, 260, 265, 273, 293). - Q105 now rewards regular ss/sps ng, aswell as potions. - Q260 / Q265 reward formulas are fixed using L2OFF. Teleport system - Revamp whole teleport system, using lord_rex initial share. - goto/tele/etc bypasses are deleted, and replaced by only those 2 versions : instant_teleport and teleport_request. Move the teleport logic to Npc. Children classes can override isTeleportAllowed(Player). - Implement TeleportType enum, based on L2OFF AI content. - Implement instantTeleports.xml. Those teleports only check Npc#isTeleportAllowed(Player), while regular teleports check siege, item consumption and Npc#isTeleportAllowed(Player). - Improve teleports.xml, reparsing the content using L2OFF. The model now holds the Castle, teleports are organized by npcId and by TeleportType. The initial data was double check with RooT's work, allowing to add 10 missing ids and cut 60+ pointless ones. - The HTM which shows teleports is now built out of nothing from data. All existing, related HTMs are deleted (scripts and regular teleporters). - Add few missing "-pk" HTMs (30162, 30836, 31964). - Add (back ?) FREE_TELEPORT config. - Rename "teleporter" HTM folder to "gatekeeper" (to match class names). - Rename script ToIVortex > DimensionalVortex. - Add castle chamberlains teleports aswell - parsed from L2OFF GF, since the content of Vanganth and AdvExt was lacking. They are not yet implemented. Seven Signs - Ty Hasha. - Updated all HTMLs to L2OFF GF, formated them, fixed obvious mistakes, typos and names. - Added missing HTML with - not enough adena to purchase Records of Seven Signs. - Fix xxxx_priest_2c.htm to not containCatacomb/Necropolis teleport location link (Seal of Gnosis owner lost -> no teleport). - Fix "Failed to retrieve cabal from bypass command." upon trying to contribute Seal Stones while Seven Signs is in Competition period. - Characters with 1st class transfer can now join any side. - Delete ALT_GAME_CASTLE_DAWN / ALT_GAME_CASTLE_DUSK configs. Replace it by SEVEN_SIGNS_BYPASS_PREREQUISITES. Organization - Add //show html, which toggles on/off the HTML path for GMs (similar to L2OFF). There is no associated config, and is set to false by default. - Secure //set class, which now checks dummy ClassIds, and provide more infos upon fail. - Introduce QuestState#rewardNewbieShots method for easier management of beginner reward. - RadarList#addMarker/removeMarker now accept a Location as parameter. - QuestState#addRadar/removeRadar only accept Location as parameter. - Hardcode all Locations used in Quests for easier management. Replace some int[][] for Location[]. - MIMYU SpawnLocations are downgraded to Locations. - Delete all unused SkillTypes. - Drop all "Alt" and "Game" from either Config .properties or java side. Few Config renames. - Cleanup all checks regarding TAKE_CASTLE, STRIDER_SIEGE_ASSAULT, SIEGE_FLAG and SUMMON_FRIEND - moving methods from Player to dedicated handlers. - Generate NpcTalkCond enum. Rename and generate on Npc #validateCondition(Player) > Npc#getNpcTalkCond(Player), which now acts as overriden. Cleanup all uses. Bugfixes - Fix Benom spawn timer. - Fix trade NPE, upon empty lists pushing "Start" button. - Fix frozen actions upon invalid trade windows checks. - Fix Summon Friend and alike skills. Remove the 50 radius check. Add a SystemMessage and avoid the cast on yourself. - Fix Gate Chant, adding SUMMON_PARTY SkillType. - Fix Elpy AI. Ty Bruns87. - Allow Config.OLY_MIN_MATCHES to be correctly spread over queries when a Config reload occurs. - Fix a stackoverflow over siege end. Ty Kitsos for report/fix. - Fix StriderSiegeAssault, using skill target instead of getTarget(). - Fix bow attack reuse over CreatureAttack#stop() call. Ty MonKEY fo report. - Delete active siege check on Wyvern Managers + class cleanup. - Switch Schuttgart CHs to correct order, fixing CHs doors and spawn. - Auto loot Config properly checks inventory size. PS : Q257 is now race bound to HUMAN. While NOT RETAIL, it looks like a NCSOFT fail : - It defeats the C3 layout being than "all races get access to 13k ss / 6k sps". - Out of 13 newbie quests, it's the only "race unbound" quest. If you manage to find any retail info about why it has been done that wrong way, I'm willing to revert it.
  5. Simply call getInstance() from L2ZoneManager... See all existing uses of the method to figure out.
  6. Don't edit the parts you shown, it's pointless to edit them.
  7. You can check pagination system on aCis. It basically store all elements in a List than sublist it based on given page number. Simply check one of the 7 occurences of MathUtil#countPagesNumber. Exemple of use #showBookmarks : By default L2J got also some handwritten pagination, maybe 1 or 2 times, but I don't find it really readable.
  8. Can you open PM to ask you something real quick it's urgent.

  9. Well, L2OFF is kinda splitted into 2 main projects, Vanganth and AdvExt, and both got issues and differences between them. There are no official leaks between C4 and GF, meaning it's handcrafted. I don't think there are any real active developers, and edits are extremely limited.
  10. I work since 10y on L2J and my own IL emulator, I simply say than what you ask doesn't exist as a valid offer and it can't be filled. Simply make your search over the existing IL forks. Oh, and people saying "100% working things" - avoid them :).
  11. What you ask doesn't exist, you have to cut multiple criterias. And "balance" isn't a criteria.
  12. About diff patches specifically, there's probably multiple hundreds of tutorials for Java, simply search on google. About L2J in general, you can either search on MxC, on aCis forums (I explain some concepts), and probably on youtube. Unfortunately, I doubt someone would make such tutorials, I invite you to test to apply a lighter diff patch with less lines first if you feel unable to handle such a diff patch. It's really about copy and pasting things, reading which file and around which place to copy-paste. Not even what I could call "developement".
  13. It's not a script, but a .diff patch. A script in L2J world is basically an AI script, editing behaviors using listeners (onKill, onTalk, etc), mostly used by quests, grandbosses, etc. If you got the good revision, you can normally automatically apply a .diff patch but virtually, it almost never happens due to numerous facts (you either edited sources, you use another revision, etc) so you have to edit your sources at hand. On the diff patch, "index" is the file to edit. Lines to add got a +, lines to remove got a -. To help you, you got also line numbers under @@ numbers @@. If you don't see any +/-, it means that line already existed on the file, at the time of the patch. So you can easily copy paste it to find it and find back on an easy way where other modified lines can be added/removed.
  14. You got some balls to request some help, while using my/aCis notoriety to make your own pack, not helping main pack at all and potentially splitting community. You won't have any help, simply wait I commit it, steal it, share it on L2JBrazil - like you already did. If you're able to handle a pack, you're able to code such a quest. Locked. PS : I already got versions to test and commit.
  15. You have to store the Npc reference on the Quest instance level, with a static Npc _npc when it spawns. addSpawn normally return the created Npc, simply store the instance on the famous _npc variable for further usage. _npc has to be cleaned in same time you delete the instance, otherwise it's possible to refer to a non-existing instance. There are few exemples in quests with such variables, I'm sure some quests in aCis got some "_pilgrim" Npc references saved for further usage. Q024/Q025 FoD quest serie also got a chamberlain ghost which walk to a point and is deleted once he did his track. PS : you also have to check if such _npc reference is already filled to avoid to duplicate Npc AND to lose references (meaning a _npc.deleteMe() wouldn't work anymore). A null check is enough. If the solution of a unique static instance isn't ok for you, you have to track all references for every single Player ; you also have to delete the reference once Player logout otherwise it fills the Map for nothing.