Jump to content

Celestine

Administrators
  • Posts

    5,146
  • Credits

  • Joined

  • Days Won

    280
  • Feedback

    100%

Everything posted by Celestine

  1. Grand Opening 18 February, 2022 • 19:00 (UTC -3) Rates: XP 500 Max Enchant +25 Starting Level 40 SubClass Free Noblesse Event/Barakiel GamePlay: Buff Slots 36+4 Buff Time 4 Hours HotSprings Buffs Disabled Cancellation 7 Seconds FOI H5 Like Augments Only Custom Scrolls Olympiad: Circle Weekly Time 18:00 - 00:00 UTC-3 Base Class Disabled Enchants Chance: Normal: 80% (decreasing 5% on every enchant). Fail? broken Blessed: 90% (decreasing 5% on every enchant). Fail? return +4 Golden: 0-18(100%), +19(80%), +20(70%), 21(60%), 22(40%), 23(30%), 24(20%), 25(10%) Golden fail? lose scroll Special Items: Armors Titanium/Skins Weapons Epic/Scion Tattoos Runes/Shirts Accessorys +300 P.def/M.def Special Events: Team Vs Team Capture The Flag Deathmatch Fortress Kill The Boss Last Man Standing Exclusive NFT Zone Information about protections: General MultiBox Allowed Multibox Farm 1 per PC Restriction Zerg 18 Players per clan Alliances Only for Crest L2Inside.net Discord GROUP
  2. trusted person did for me many stuff
  3. Very trusted person also good guy if someone needs quick stuff he can do it.
  4. he mean that if you abuse auto enchant with interface it floods server and sends some kind of packets and you can enchant your gear without any failure actually i seen this on a few server but not sure if interface responsible.
  5. seems like you can 100% enchant without any failure.
  6. very good svr i enjoy it
  7. one of the best servers i have ever played good luck @Pedra
  8. Download Password: [Hidden Content] Author: Nova-Design
  9. good luck Hubris
  10. @Xtellia has a point i been using blink skill from VOS monsters and works perfect same skill i believe used Gracia Final chronicle on daggers.
  11. you can replace the icon above the NPC Download Download IL Password: [Hidden Content] Password IL: [Hidden Content] Author: Virus
  12. for h5 contact @xDarkDelux
  13. Download Password: [Hidden Content] Author: Nova-Design
      • 5
      • Like
      • Upvote
      • Downvote
  14. Being able to remove UD, Snipe, Stealth or CoV is great, especially in Interlude where these skills don't have a penalty enchant. Many people are already used to canceling Chant of Revenge before pressing Mirage or healing by removing Celestial Shield. We will need server sources interface.u sources with compiler Everything you need is freely available. The server part The server in our case is ACIS 36x, but any one will do (perhaps PTS). All that is required is to add a command that will remove the specified buff. To keep the example simple, let's get by with a bypass To remove the buff, more modern clients send a RequestDispel packet , so we'll use the term dispel First, let's add a dispel method to L2Character. Similar to more recent versions of the game, it will not remove effects that should remain after death (for example, penalties), debuffs, dances and songs: // L2Character.java public final void dispelSkillEffect ( int skillId, int skillLevel ) { // Find skill with matching ID and level final L2Skill skill = SkillTable. getInstance ( ) . getInfo ( skillId, skillLevel ) ; // Skill wasn't found and can't be dispelled if ( skill == null ) { return ; } // Penalty-like or debuff skill effect can't be dispelled if ( skill.isStayAfterDeath ( ) || skill. isDebuff ( ) ) { return ; } // Dance-like skill effect can't be dispelled if ( skill. isDance ( ) ) { return ; } // Stop skill effect by ID _effects. stopSkillEffects ( skill. getId ( ) ) ; } Code: Java Now let's add the bypass handling to the runImpl of the RequestBypassToServer network packet that comes from the client. Since the dispelSkillEffect method requires a skill ID and skill level as arguments, the client must pass them as parameters to the dispel command : // RequestBypassToServer.java // Usage: _dispel:<int:skill_id>,<int:skill_level> // Example: _dispel:313,8 else if ( _command. startsWith ( "_dispel" ) ) { // Cut out command params String params = _command. substring ( _command. indexOf ( ":" ) + 1 ) ; // Split params into tokens StringTokenizer st = new StringTokenizer ( params, "," ) ; // Get skill ID from first token intid = Integer . parseInt ( st.nextToken ( ) ) ; _ // Get skill level from second token int level = Integer . parseInt ( st.nextToken ( ) ) ; _ // Dispel skill effect on current character activeChar. dispelSkillEffect ( id, level ) ; } Code: Java Call example: _dispel:313,8 I recommend making a command with similar parameters instead of bypass. In addition, then players will be able to write macros to remove the buff . Client-side Unfortunately, there is no easy way to track Alt + Click in the Interlude client, so we use the usual double-click of the left mouse button to remove the buff . The event will be handled by the AbnormalStatusWnd window , which displays the icons of buffs and debuffs Algorithm: We listen in the window AbnormalStatusWnd double click event (OnLButtonDblClick) Determine the buff that was clicked (via StatusIcon.GetItem) Determine the ID and skill level of this buff (via GetSkillInfo) We send a request to the server (via RequestBypassToServer or ExecuteCommand) We call dispelSkillEffect on the server with the received ID and skill level The double-click event of the left mouse button OnLButtonDblClick receives only the click coordinates as arguments. At the same time, StatusIcon.GetItem requires specifying the row and column of the cell. Accordingly, it is necessary to determine in which row and which column of our buffs the player clicked Since we know that the size of the buff cell is 24 pixels, and the size of the handle for which the window is dragged is 12 pixels, it is easy to calculate the row and cell: it is enough to determine the coordinates of the window with buffs, subtract all values and divide the remainder by the cell size. Values will be rounded correctly when cast to int First, let's add the NSTATUSICON_SIZE constant , which describes the size of the buff cell, to the top of the script. The rest of the developer's constants have already been described: // AbnormalStatusWnd.uc class AbnormalStatusWnd extends UIScript ; const NSTATUSICON_FRAMESIZE = 12 ; const NSTATUSICON_MAXCOL = 12 ; const NSTATUSICON_SIZE = 24 ; // ... Now, anywhere (for example, immediately after the OnEvent function), add the handling of the double click event: // AbnormalStatusWnd.uc function OnLButtonDblClick ( int X , int Y ) { local Rect windowBounds ; local int targetRow ; local int targetCol ; local StatusIconInfo info ; local SkillInfo skillInfo ; // Find window position windowBounds = Me. GetRect ( ) ; // Process clicks outside of window frame only if ( X > ( windowBounds. nX + NSTATUSICON_FRAMESIZE ) ) { // Calc row and col of targeted icon targetRow = ( Y - windowBounds. nY ) / NSTATUSICON_SIZE ; targetCol = ( X - windowBounds. nX - NSTATUSICON_FRAMESIZE ) / NSTATUSICON_SIZE ; // Store status info of targeted icon StatusIcon. GetItem ( targetRow , targetCol , info ) ; // Store actual skill info and make sure it is exists if ( GetSkillInfo ( info. ClassID , info. Level , skillInfo ) ) { // Request server to stop skill effect // Usage: _dispel:<int:skill_id>,<int :skill_level> // Example: _dispel:313,8 RequestBypassToServer ( "_dispel:" $ string ( skillInfo. SkillID ) $ "," $ string ( skillInfo. SkillLevel ) ) ) ; } } } Compile interface.u, copy it to the client, run the game Done! Thanks, to Freelu.
  15. cloak Wings cloak&wings full cloak Download Password: [Hidden Content] Author: Nova-Design
  16. please include prices.
  17. Amazing guide thanks will be very useful
  18. Perfect, i will lock the topic then.
×
×
  • Create New...