Jump to content

Search the Community

Showing results for tags 'Guide'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General Zone
    • Announcements and News
    • Newbies Introduce Urself
    • Maxcheaters Competitions & Events
    • Votes/Polls Area
    • Report Section
    • Downloads Section
    • Suggestions/Feedback Board
  • Lineage II General Section
    • General Discussion [English]
    • Request Support [English]
  • Lineage II Hacks,Cheats and Bots
    • Hacks & Cheats [English]
    • Request Hacks & Cheats [English]
    • Botting [English]
    • Request Botting [English]
  • Lineage II Private Servers
    • Buy Advertising Link #1
    • Private Servers
    • L2FURY.EU GRAND OPENING 23 DECEMBER at 20:00 GMT+2
    • [Previews] L2 Private Servers
    • Clans and Alliances
  • Lineage II Marketplace
    • Marketplace [Items & Chars]
    • Marketplace [L2Packs & Files]
    • Marketplace [Powerlvl & Support]
    • Marketplace [Webdesign & Webdevelop]
  • Lineage II OFF Server Development
    • Server Development Discussion [L2OFF]
    • Request Server Development Help [L2OFF]
    • Server Shares & Files [L2OFF]
  • Lineage II Java Server Development
    • Server Development Discussion [L2J]
    • Request Server Development Help [L2J]
    • Server Shares & Files [L2J]
    • Private Projects [L2J]
  • Lineage II Client Development
    • Client Development Discussion
  • Other Games
    • Grand Theft Auto V: FiveM
    • League of Legends
    • World Of Warcraft
    • Counter Strike GO
    • Aion
    • Diablo IV
    • Other Multiplayer Games
  • General Section
    • General Marketplace
    • Crypto Zone
    • Consoles/Mobile Gaming Zone
    • Webmasters Zone
    • Hacking/Coding Zone
  • Graphics/GFX Zone
    • Graphics/GFX General Discussion
    • Graphics/GFX Showcase
    • Graphics/GFX Resources/Tools
  • Premium Zone
    • General Discussion [Premium]
    • Lineage II [Premium]
    • GFX Area [Premium]
  • MaxCheaters Corner
    • Tech/World News
    • Off-Topics
    • Spam Topics
  • L2Classic Club's Just trying this thing out
  • Lineage 2 Revolution Club's Discussions
  • Lineage 2 Revolution Club's Tutorials
  • Lineage 2 Revolution Club's Request Help
  • DenArt Designs's Hello and welcome to my club!
  • DenArt Designs's News

Product Groups

  • Advertisements
  • Old Vips
  • Premium Member

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


WhatsApp


Telegram


Website URL


ICQ


Yahoo


Discord


Skype


Location


Interests


LocationNew

  1. Hey everyone! You may or may not know about L2Homage, but I've spent a fair bit of time developing it these past years. You can check out the previous posts here. L2Homage was originally developed for Epilogue, but I always wanted it to work for High Five. When the H5 files were finally public, I decided to upgrade L2Homage to fit the new data structure. I also spent a lot of time improving performance and the interaction design to make the whole experience of modding L2 as smooth as possible. I dare say that most people will now be able to create an awesome, custom experience in Lineage 2, and I really hope I see some projects come to life. Join us on Discord! As promised, the entire source is open. You can check it and a pretty comprehensive documentation out here: https://github.com/ClaessicsGit/L2Homage Requires .Net 4.8, grab it here: https://go.microsoft.com/fwlink/?linkid=2088631 You can download the newest version here: https://github.com/ClaessicsGit/L2Homage/releases/tag/v1.0.0 The server files that fit with this tool was shared here: https://maxcheaters.com/topic/239312-l2pts-files-high-five-273/ Server install guide here: https://bitbucket.org/Bumblemumps/l2homage/wiki/Home L2H data packs: Worldmap Image Pack AI Pack Script Folder System Folder Image Pack (Full 5.13 GB) or download the split image pack if you have trouble with the big one: Image Pack (Full) Part 1 Image Pack (Full) Part 2 Image Pack (Full) Part 3 Image Pack (Full) Part 4 Image Pack (Full) Part 5 None of the data in the data packs are from me, it's stuff that's already shared here at MxC. Thanks everyone, and good luck! -B
  2. Hello there.. Here is my Epic Boss Manager from my old server. Nothing special, but some of you may need it. What's inside? Works only with retail Grandbosses. [No retail zaken id] Inform you about the status of Grandboss. Inform you about respawn time. Date/Time. Enable/Disable it on configs. # Announce Grandboss status. # Ex: If status for Antharas/Valakas/Frintezza change to 2 player get announce: # Grandboss>name is engaged in battle. # If status changed to 3: Grandbossname has been killed. Type .epic for details! # For Baium if status change to 1 - Baium is awake and fighting. # All Grandboses respawned - Grandbossname is spawned in the world! AnnounceGrandBossStatus = True Pastebin
  3. Hello there.. Here is my buffer from my old server.. (Main html made by protoftw) What's inside? Mage | Fighter set [config] Buffs/Dance/Song/Extra etc one by one Special buffs + Malaria Vote buff [If you want it, you can enable it, config] Scheme Buffer Code Preview > pastebin [aCis 401] Code/HTML/XML > Download [aCis 401] Baggos coded the buffer protoftw the html design Scheme coded by Tryskell on his own project. UPDATED FOR ACIS LATEST FREE REV 401.
  4. Since I see people asking for this every now and then I thought I'd code it and share it. L2Proxy is a simple MITM proxy for your L2 server. It comes in two parts The Java side The L2Proxy service The Java side can be used on any pack and with any proxy configuration without needing the app. If however you don't wanna mess with proxy configuration you can also use the L2Proxy service which runs a MITM proxy for your players. It is fully cross platform and will run fine on any VPS as long as you have the network bandwidth needed. It adds some extra functionality that you might find handy. Proxies with Gameserver invisibility turned on Features Gameserver invisibility option - You are able to hide your server behind the proxies and keep your real server IP secret RealIP - Usually with MITM proxies, since the traffic is funnelled from one server, you normally lose the real IP of the player which limits a lot of the functionality that you might have implemented. L2Proxy allows the LoginServer to pass the real IP of the used to the Gameserver during the Login->Gameserver player handoff An API - You can use the API in L2Proxy to check the stats of your Proxies, see the active connections to it and even disconnect a specific use IP or blacklist it IP Blacklist - You can blacklist a specific IP its connection will be rejected on the proxy level before it ever gets to the gameserver. This includes malicious connections. You can also use the API to blacklist someone and get them instantly disconnected. Multiple Proxies from one app - No real reason for this to exist but I added it anyway Proxy health detection. If the proxy goes down the proxy listings will appear as down as well. (This feature requires the L2Proxy service). Validation can be turned off by setting the "validateHealth" option to false. Unhealthy proxy fallback. If all proxies are down and the "fallbackToGameserver" setting is set to true then even if you've chosen to hide the gameserver, it will appear as a fallback so people can still login when the proxies are down. MaxConnections on each proxy. Once the limit is met, no more connections can be made to the gameserver via the proxy. -1 means unlimited API Actions To make actions you need to set the x-api-key header to equal to the API Key setting in L2Proxy. The default is "changeit". Get all proxies - GET http://localhost:6969/api/proxies Get proxy by IP and Port - GET http://localhost:6969/api/proxies/127.0.0.1/7778 (IP is the proxy ip and 7778 is the proxy port) Disconnect an active connection - DELETE http://localhost:6969/api/proxies/127.0.0.1/7778/127.0.0.1/11571 (First IP is the proxy IP, second ip is the client ip, first port is the proxy port and second port is a client port) Get all blacklisted IPs - GET http://localhost:6969/api/blacklist Check if IP is blacklisted - GET http://localhost:6969/api/blacklist/127.0.0.1 (The IP is the user IP) Blacklist an IP and disconnect used - POST http://localhost:6969/api/blacklist/127.0.0.1 (The IP is the user IP) Removed an IP from the blacklist - DELETE http://localhost:6969/api/blacklist/127.0.0.1 (The IP is the user IP) proxy.xml <?xml version='1.0' encoding='utf-8'?> <list> <config /> <!-- serverId: The true id of the gameserver hide: When enabled, the true gameserver will not appear in the server list fallbackToGameserver: When the proxy server is down, when true, the real gameserver will appear proxyServerId: The gameserver id that the proxy will use to be listed in the server list proxyHost: The host of the proxy proxyPort: The port of the proxy apiPort: The port of the API for the proxy apiKey: The api key for the proxy api --> <gameserver serverId="1" hide="true" fallbackToGameserver="false"> <proxy proxyServerId="2" proxyHost="127.0.0.1" proxyPort="7778" validateHealth="true" apiPort="6969" apiKey="changeit"/> <proxy proxyServerId="3" proxyHost="127.0.0.1" proxyPort="7779" validateHealth="true" apiPort="6969" apiKey="changeit"/> </gameserver> </list> Here is a diagram explaining the initial login flow. Once you login the loginserver goes away and you connect directly to the proxies or gameserver depending on your configuration. Features I might add (don't bet on it) Max connection limit Make calls to the API to let the gameserver know the proxy status and make proxy level action Proxy service discovery to propagate proxy actions to all running proxies Automatic proxy suggestion based on proxy load You currently need to blacklist the IP on each proxy API since the data is not shared Download link and executables of latest version: https://github.com/Elfocrash/L2Proxy/releases/tag/v0.2.0 If you run the framework dependent version you need .NET 5 CLR installed. If you run the standalone versions you don't need anything preinstalled. Will upload a video of the thing at some point. It's late. Enjoy
  5. This post originally appeared on MmoGah. Wrath of the Lich King Classic is an expansion of the famous WoW that was released in 2022. It increases the level cap in World of Warcraft from level 70 to level 80. Along with significant changes to dungeons, raids, and player-vs-player encounters, the game also featured a new class and a new profession. The death knight is a new class, while inscription is the new profession. It is a hero class that starts at level fifty-five. If you couldn't perform better in battles previously, don't worry, as you can now create pigments using herbs to get buff scrolls, glyphs, special enhancements, and trinkets. To help you with your adventure, the continent of Northrend now features eleven new zones. This new expansion is divided into five phases. The first phase will feature Naxxramas, the Eye of Eternity, and The Obsidian Sanctum. The last phase will feature the ruby sanctum. Honor points are an important part of the Wrath of the lich king classic, and you need a good amount of these points. It is a festival season for players as developers have recently dropped the prices of items that you can purchase with these coins. This honor point farming guide will take you through the best methods to earn honor points in WOTLK Classic. What Are Honor Points? This expansion features many currencies, such as important WoW WotLK Classic gold and honor points. Each currency serves a specific purpose. When it comes to honor points, you can purchase in-game rewards with them. You can keep track of how many honor points you can earn, just like emblems and badges. To track the available and possible honor points, just go to the currency tab from the character panel. For other currencies like gold, you can simply attack players on the game map and loot them, but this option isn't available for honor points. The game provides you with honor points based on your interactions with other players and NPCs instead. You need to hit NPCs or players who have a specific level because low-level enemies don't give any honor points at all. The number of honor points you earn varies from interaction to interaction. This new patch to the Wrath of the lich king classic has also changed the player-vs-player encounter system. Now, the number of honor points you get is based on some other factors as well, such as solo encounters, group encounters, honor-boosting buffs, etc. Stuck at a level? Buy one of the best WotLK Classic power leveling services and let pro gamers level your character in a short time. What to Buy with Honor Points? You will surely want to know what you should grind for honor points in the WOTLK classic. After all, this is not the main currency of the game. So why should you waste your time on earning honor points instead of gold? The answer is that you can purchase rare and epic items with honor points. For this purpose, you have to find vendors in locations such as Orgrimmar and Stormwind. Most of these items that you purchase will come in handy in player-vs-player interactions. These items boost the resilience of your character. You don't need resilience for raids, dungeons, and heroic runs. For player-vs-environment encounters, these items can get the job done for some time, but you should work on getting items for these encounters as well. Hafetul gladiator is a perfect example of such items that you can purchase with honor points. It is a level eighty gear that you can purchase without any arena ratings at all. Most items that you purchase with honor points are for PVP, so they will provide your character with resilience and stamina. Some entry-level PVE items, such as jewel crafting recipes, can be purchased for a few thousand honor points. The minimum level requirement to equip items that you have purchased using honor points is eighty. Some of the best items that you can buy with honor points are given below, along with complete details about them. Deadly Gladiator's Band of Ascendancy – A level 213 ring that you can purchase from vendors for forty-seven thousand and four hundred honor points. Deadly Gladiator's Band of Victory – A level 213 ring that you can purchase from vendors for forty-seven thousand and four hundred honor points. Deadly Gladiator's Boots of Triumph – Level 213 boots that you can purchase from vendors for sixty-two thousand honor points. Battlemaster's Bravery – A level 213 trinket that you can purchase from vendors for sixty-two thousand honor points. Deadly Gladiator's Cloak of Victory – A level 213 cloak that you can purchase from vendors for forty-seven thousand and four hundred honor points. Deadly Gladiator's Pendant of Victory - A level 213 amulet that you can purchase from vendors for forty-seven thousand and four hundred honor points. Deadly Gladiator's Greaves of Triumph - A level 213 plate armor that you can purchase from vendors for sixty-two thousand honor points. Tips for Earning Honor Points Methods to earn in-game currencies change daily, and the same thing applies to honor points. Previously, players first earned justice points and later converted them to honor points, but now it has changed. Here are some tips that to boost your honor points. There is no weekly limit to how many honors points you can earn. You can earn four thousand points only in one go, so try to stay within the limit. If you already have four thousand points in the bag, there is no point in grinding for more until you spend them. Don't keep honor points with yourself for too long and instead spend them on gears to boost up the process. Best Ways to Max Out Your Honor Players can buy special types of items using special currencies such as Honor Points and Conquest Points. These two currencies are used to purchase PVP items only. For entry-level and basic PVP items, Honor Points are used. Strong PVP items, only the other hand, require conquest points. Some best ways to earn honor points are given below with complete details. 1. Kill Players of other factions Killing players from other factions is profitable in many ways. You can kill players to earn honor points, but you have to first determine whether the kill is honorable or not. If the kill is honorable, you will get honor points along with other rewards. Here are a few things that you have to keep in mind to earn honor points through this method. Players from other factions who are level ten or lower won't count as honorable kills, and you won't earn any honor points for that kill. Killing players who have entered a new zone recently won't reward you with honor points. Players who are under the resurrection sickness effect. For best results, kill players from other factions who have the same level as you, as they will provide you with a good amount of honor points. If the enemy is an honorable kill, don't hesitate and just kill it. You have to follow these guidelines for all future honor killings. Most enemies on the game map are honor kills. 2. Use Random Battlegrounds In Wrath of the Lich King, a battleground is a special place where two teams enter to fight against each other. There are specific objectives for these battlegrounds that both teams have to complete to win the match. To earn honor points through battlegrounds, you have to do much more than simply kill an enemy. You need a character level of ten or above to enter the battleground. Here are the steps to earn honor points. Press the "I" key from your keyboard to enter the desired battleground. The second method to enter the battleground is by using the group finder option from the main menu. You can find the main menu bar at the bottom of the screen. Go to the group finder menu from the bar. On the bottom of the finder menu, you will see three options. Select the "Player-vs-Player" option. On the next screen, select a battleground from the available options. You can either select a specific battleground or let the AI automatically suggest a battleground to you. Tap on the "Join battle" button after selecting the battleground. Wait in the queue for a few minutes before you can enter a battleground. After you enter the battleground, you have to kill any enemy that stands between you and victory. To obtain Honor Points, one of the best and quick ways is battlegrounds. It is a team-based task, so all the participants earn a specific number of honor points according to their performance. For each match in the battleground, you will earn a few hundred honor points. Winning is just a part of the game, as kills determine how many points you will earn. 3. Through Skirmish In Wrath of the lich king Classic, skirmishes stand for two-vs-two and three-vs-three battles where both teams fight until one team is killed. Unlike battlegrounds, where you have to complete objectives, you only have to kill enemies in skirmishes to earn honor points. The level requirement in WOTLK to enter a skirmish is fifteen, while there is no max limit. To enter a skirmish, follow these steps. Go to the menu bar in WOTLK Classic and search for the green eye icon. Tap on the icon to open the group finder menu. Select the desired skirmish from the available options. Tap on the "join battle" button to enter the queue for a skirmish. Kill all the enemies in the other team, and you will earn, on average, fifty to sixty honor points. You can receive delivery of gold from two different methods if you purchase it from a dependable site - MMOGAH. Here is how you can boost your earnings. Upgrade your character to level hundred to receive an extra box which is filled with honor points and gold. Those who have a character that is less than a level hundred will get leveling experience points instead of the extra box to help them quickly hit the level cap. Conclusion Now that you have a complete guide to earn honor points along with suggestions for gears that you should buy with all those honor items. It is time to start making honor points in WOTLK Classic and buy gear for PVP encounters. You can improvise these methods according to your needs as well as use new tricks to earn more points in less time.
  6. 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.
  7. This guide was shared years ago. I am not the original author. This is the only guide ever shared to generate geodata from the client. Tools needed. Stazis L2 Geo Converter (GeoConv) Download: http://www.mediafire.com/file/irzey5hk0tyywub/GeoConv_v93b.zip G16ed (A heightmap editor that works directly with the UEd3 G16 format (16-bit greyscale.)) Download: http://www.mediafire.com/file/2v2288vlbq6n2bk/G16ed.zip UTPackage (extract) Download: http://www.mediafire.com/file/vuddpqsd5ik9g3c/UTPackage.zip Unreal Engine 2 Editor (Create UTX) Download: http://www.mediafire.com/file/yx53pt73a5e6yk3/UE2Runtime-22261903.zip L2J-GeoEditor (Convert to L2J format and create the PathNode) Download: http://www.mediafire.com/file/1j5lhll1mn1uy2x/l2j-GeoEditor-v17.zip HEX Editor - (I use UEStudio or Ultraedit) Download: Find it on the web :P Important: In this example I will use the map T_22_19, but applies the same procedure for any map. First we need to extract heightmap images from UTX files (T_22_19.UTX, T_22_20.UTX etc.) * Put this file T_22_19.UTX in UTPackage/Textures and execute "unpack.bat" * Open UTPackage/RAW folder and find the file 22_19.raw * Open this file with Ultraedit and search (Ctrl + f) for "40 80 10", the first byte after this string is the start of the heightmap image. * Copy this address, in this case is 107h * Open the windows calculator and switch to "Scientific" mode, select "Hex" and input "107", select "Dec" and now you have "263". * Open G16ed, go to "File -> Import -> RAW data, search for 22_19.raw and in the field "Data start offset" input "263" and click in Input, Ok, Ok. * Go to "File -> Save (Ctrl + S)" and use the name of the map for your new image (22_19.BMP). Now you have a perfect G16 heightmap image. Now we need to create an UTX file with the image that we have saved. * Open UnrealEd and in the windows "Textures" go to "File -> New" and complete the fields. Info -> Package: T_22_19, Group: Height, Name: 22_19, Class: Raw Material Properties -> MaterialClass: Class"Engine.Texture" (Select Texture from drop-down) * Go to "File -> Import" and select the image 22_19.BMP and ensure that the fields are correct. Info -> Package: T_22_19, Group: Height, Name: 22_19 Options -> Masked: uncheck, Generate MipMaps: uncheck, Detail Hack?: uncheck, Compression: none * Go to "File -> Save" and save this file as T_22_19.utx. Now we can create our Geodata using Stazis L2 Geo Converter (GeoConv) * Navigate to the Textures folder in the game, rename your original T_22_19.utx to T_22_19_O.utx and put in this folder our new T_22_19.utx * Open GeoConv and change this params. Min Plane Angle to XY: 20, Stairs Height: 10, Optimization Different: 80 * Click "Open Packages" and select 22_19.unr in "Lineage II/MAPS", allow the process to finish and now you have your GEO 22_19_conv.dat in the folder "Lineage II/MAPS". * Convert this GEO to L2J format and create the PathNode with L2j GeoEditor or HDGE. Known Issues * Some geodata are not correctly generated or can't be generated. * Using "Stairs Height: 10" can cause problems with the stairs (If you use "8" check all the stairs in the map for correct NSEW).
  8. Hi Guys.. some1 can send 1 Guide for Weapon Appearance. i mean, for example in my char equip Dragonic Bow.. i want like you to see like Vesper Bow. But how i do something like that in my server?
  9. Hello guys im a video edittor that has absolutely no idea how to change textures in Lineage 2 Can someone of you guys please make a file that is with changed textures of the colliseum to make it simple green (as in for green screen usage) - I just need the whole of coliseum and its floor to be completly green (same color) so i can key frame it and make cool videos. I will be very thankfull
  10. Contents Introduction Ideas of using chat colouring Before start Everything you should know about colours in L2 client Downloading program How to? Setting up 'on-screen' messagess End result Introduction Chat window is basic way to communicate between players in game. In that window player can also see messagess from server, like damage, infos about succeded, or failed actions, about received or lost buffs, picked up items and so on. In this simple tutorial, will be explained step by step, how to change those long, boring, machine-talking messages to form we want to. To emphasize the higher-priority messages from spam, all messages what reach the player can be filtered and colored. In the game, we have 5 tabs, and the possibility of including additional windows to help 'embrace' all received messages. On each tab you can configure filters that determine what type of message should be displayed on which card. This allows keeping messages from the clan away from the proposed trading announcements. Image 1. Default chat window While gaining experience, or during a fight with another player, we are not always able to read everything that appears in the chat window. Therefore, we highlight the important messages in a different color than the others, and others simply turn off. Image 2. Default, one-coloured announcements If you ever played with archer, for sure you have noticed this one of the most annoying messages - information about loading the arrow... Image 3. Unwanted message If you are playing with a mage character, you would probably know if thrown curse, poison, or spell was succeed, it would be much easier to play if we somehow highlight those messagess. Ideas of using chat colouring Most of the cases, which we will deal with later in this article have already been mentioned in the introduction ... So recalling, editing the SystemMsg-e.dat we can: get rid of unwanted messages highlight received messages by different colors change the content of automatic messages sent from the server add sound to a message view important messages on the screen Before start Before editing game files, it is highly recommended to backup all the file you intend to edit, or even better whole directory system! While working with files, the game should be closed! To file work correctly, you should preserve its structure. Carefully insert the values ​​into the appropriate columns, be careful not to lose the character starting / ending a message, and do not leave empty values. Message's bodys what we will edit are in the message column. Every message's body begins with the characters 'a,' and ends with '\ 0', it must be remembered and respected. Message's colors can be freely changed at their discretion. Note, however, that color is stored as RGBA (hexadecimal with an additional parameter alpha) in reverse order (see next section). Everything you should know about colours in L2 client Table 1. Most commonly used color codes rgba[0] | rgba[1] | rgba[2] | rgba[3] blue | green | red | alpha 79 9B B0 FF grey 00 BE FF FF yellow F1 61 00 FF blue 00 38 FF FF orange 19 D5 4A FF green 48 15 FF FF red FF E1 78 FF cyaneous A7 28 F4 FF pink Using Internet sources, or graphic programs like GIMP, we can take colors we want to, and use them easily in game client as we want to, where we need to. Use the below example to convert all your favourite colours saved in hexadecimal code to RGBA used in L2 client: To replace the yellow written in hexadecimal code #FFFF00 for usable by L2 client: Divide code for 3 pieces, with every piece for 2 signs. Like that: FF | FF | 00 Reverse pieces order: 00 | FF | FF Add Alpha parameter ('FF') at the end of code: 00 FF FF FF Received color code pieces insert in the appropriate columns in the file Downloading program L2 File Editor is a program what we are looking for. It is pretty popular so shouldn't be many problems finding it. Typing its name in google searcher should give us some download links. Otherwise visit this topic by iAndre for various versions. How to? Before editing the file, we need to write down the old message's content we intend to change on the card - it will be easier to find them later in the file. Here we go! 1. Run L2 File Editor program on your computer. 2. From the left vertical menu, choose the first option 3. In the new window look for the game directory, go to the system directory, and select file SystemMsg-e.dat, and then open it: Image 4. Click to enlarge 4. After the file loads in program, it should look like this: Image 5. Click to enlarge 5. Now lets try some easy stuff for the begining. Assume we want replace the content and color of the welcoming message: Original message in the client, is “Welcome to the World of Lineage II”, so from the left menu, choose option In the window type in the keywords in your original message, eg „Welcome to” – this will highlight the phrase on the line with ID equal to 34 (You can see that on previous screen, last line in editor). Lets change original message to something else like: „Ignorance is the mother of fear.” Using the previous guidelines change the default color to green (# 4a d5 19): 79 | 9B | B0 | FF – columns content in file before change 19 | d5 | 4a | FF – switching old values with this 6. Substitute in the appropriate places in the file: Image 6. Click to enlarge 7. Now we can test if everything went just as planned. Click button and wait until the file is closed - its content should automatically disappear from program's window. Remember : Do not save the file under a different name, but overwrite the changes to the file you opened. Otherwise, the game client will not turn on with an alert saying that our system has the edited files. Image 7. First effect Other examples Dalbor, is our character nick. Lundy, is our friend, or somebody on our ‘target’. Task: Change the color of the message and the message of injuries inflicted. Original message Dalbor has given Lundy damage of 100. Suggestion You hit Lundy for 100. File content a,$c1 has given $c2 damage of $s3.\0 New content a,You hit $c2 for $c3.\0 Old color 79 9B B0 FF new color 19 d5 4a FF Task: Change the color of the message and message received injuries. Original message Dalbor has received damage of 100 from Lundy. Suggestion Lundy hit you for 100. File content a,$c1 has received damage of $s3 from $c2.\0 New content a,$c2 hit you for $s3.\0 Old color 79 9B B0 FF new color 48 15 ff ff Task: Get rid of nock an arrow message. Original message You carefully nock an arrow. Suggestion Rid of this message File content a,You carefully nock an arrow.\0 New content a,\0 Old color 79 9B B0 FF new color leave it, no matter what it is Task: Change the color of the message which is to cast a spell failure. Original message Lundy has resisted your Power Break. Suggestion Lundy has resisted your Power Break. File content a,$c1 has resisted your $s2.\0 New content change color only Old color 79 9B B0 FF new color 48 15 ff ff Task: Spoil succeded message color. Original message The Spoil condition has been activated. Suggestion The Spoil condition has been activated. File content a,The Spoil condition has been activated.\0 New content change color only Old color 79 9B B0 FF new color ff e1 78 FF Task: Join/Leave party messages Original message Lindy is invited to the party. Lindy has left the party. File content a,$c1 is invited to the party.\0 a,$c1 has left the party.\0 Old color 79 9B B0 FF new color B BE FF FF Examples of other messages that should stand out, or change: Dalbor’s attack went astray. You have avoided $c1's attack. You have missed. Critical hit! You have joined $s1's party. You have run out of arrows. Setting up 'on-screen' messages Basicly 'on-screen' means that the message appears not only in chat window but in can shows up in one of eight possible positions on screen. It can be very helpful in highlighting the most important message types. Like when your skill didn't worked, or mob has been spoiled. Image 8. Click to enlarge To make this work we have to set up few things. If you didn't changed color, on screen it will be probably white. First thing we have to do is insert value '1' in column UNK_1[3]. This will enable this message on screen. Next thing to do is setup content of message on screen (On screen message can be different then message in chat window). Easiest way is to copy message column content, or write something different, anyways column sub_msg is for setting on-screen message content. Other then that, look on Image 8, and think where you want to place it. After that insert a number ( 1 - 8 ) in column UNK_1[0]. And now last thing we have to setup is number of seconds we want to message stay on screen, its column UNK_1[2]. Image 9. Click to enlarge End result Credits: Ziomek Pro
  11. Hi folks, I'm wondering if it's possible to use Interlude client System folder without modifications for my home/private server? I don't want to modify standard gameplay and I can change IP in hosts if necessary. If that is not realistic please describe why and give me some ideas/links on how I can minimally modify client to use it "as is" (maybe some GG killers, etc). P.S. I tried to copy core.dll, engine.dll, nwindow.dll from the shared/modified system folders (from this forum) but it didn't help as client cannot start for some reason (sometimes without error). Thanks
  12. Forgive me for the mistakes on writing but this tablem is a lil hard for to write... my fingers are fat haha Hello and good eveing everyone... im old player from 2004 to 2012 on lineage and i stoped bcause i made family. i got my own job now and my kid is already 12 years old.. he loves this game.. so im thinking to make up a stable server * to be alive f or long* so my child dont have to play on crap servers anymore.. i want sokmeone wth experience wh who who can learn me out hoe i etup a PRIDE STYLE High five or inderlude pack. Money is not t he problem//.. i can lend a pc with like 50-70 euros a month and i hope from donation ill get back this money to repay the tower.. all i iwant is someone to give me a nice PRIDE STYLE premade pack without BUGS inside and to learn me how i keep it up without crushes, and learn me some things stht will not noone dropthe server down for long and people leves...... well im willing to pay frorm 400-900 euros depedds on pack and on how much you will learn me to keep the servefr up.. im 43 years old and im froom Greece... * u cant scam me belieave me im a loier and i got my own hotel.) after we finsh the whole job you can have a suite on y last floow for 1 week..... contract me on my wifes email witc his : Despoinoula1987@gmail.com and than i will send you mu Wats up application so we can talk str8 to str8. good evening. .. N O NOOBS PLZ (ps: also i need 2-3 gms to have people onnline 24/7) u cant give or take items from anyone.... if you do all those i ask i can double the money im saying on the start of covnerttion: 1) good pack of HighFive or interlude server 2) learn me how to use it step by step after you finish the pack 3) add the items and the custsom zones im gonna tell you.... 4) pack must start from in 1-2 days and must finish in 6-7 days. i wait for your email. thanks for reading.. greetings guys
  13. this guide will go over how to adapt effects and skills from higher chronicles and import them through interlude - static meshes will only work if they are saved using postal editor - save static meshes (.usx) in static mesh, not animation. i only do that because my l2 loads it from my folder which is in animations - EditPackages is the list of 'packages' that ucc will read/save - you need to use this unreal (not postal, second link) i posted to compile nSkillProjectile - name of your new effect file should be the same amount of characters as the original (L I N E A G E E F F E C T), which is 13 - attaching to bone is not necessary, unless it's a small effect and you want it on a specific part like RESOURCES - Unreal (Postal version) - REQUIRED TO WORK WITH STATIC MESH Unreal (UCC) - REQUIRED TO COMPILE PROPERLY Normal Unreal (for sounds textures etc) Hex Workshop l2 encdec l2decrypt UTPT UMODEL ActorX Unpacked Effect Scripts (skill usk and helios effect) L2PE ASE Export Properties UCC Compile Script @echo ucc.exe make pause L2EncDec script l2encdec -e 121 testsound.uax Sample Files if you get this problem try and delete EditPackages=UnrealEd EditPackages=IpDrv EditPackages=UWeb EditPackages=GamePlay EditPackages=GUI EditPackages=Runtime EditPackages=RTInterface
  14. Hello guys, does anyone know how I can transfer the talismans icons from L2 Aqua or even L2 Scryde to other servers?
  15. Soft: [Hidden Content] [Hidden Content] Code For little devil agathion: [Hidden Content]
  16. Hey guys if you are doing a project from the scratch and looking for a way to connect community board with the htmls i think this is a good way to do it even though there are many ways! I am just giving the idea here so please don't flame with better codes and stuff :) I will do this in l2j mobious H5, i think it works mostly in all packs but let me know if it does not. 1) So you basically you are gonna create a new custom script that will extend Quest, in this case I named it CBnpcs.java (scripts/custom/CommunityNpcs/CBnpcs.java) 2) Set the ids of our custom npcs 3) You have to add them on firsttalk , talk, startnpc each one separately just like bellow 4) Then the link where you have stored your htmls 5) So if you want to create more npcs connecting them to CB you can simply copy and paste the else ifs and set more ids 6) Some packs i think require the scripts to be registered on scripts.cfg so do that as well if you own such pack package custom.CommunityNpcs; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.handler.CommunityBoardHandler; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.quest.Quest; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; /** * @author -Invoke */ public class CBnpcs extends Quest { private static final int Merchant = 36621; private static final int Gatekeeper = 36622; public CBnpcs(int questId) { super(questId); addFirstTalkId(Merchant); addFirstTalkId(Gatekeeper); // addTalkId(Merchant); addTalkId(Gatekeeper); // addStartNpc(Merchant); addStartNpc(Gatekeeper); } @Override public String onFirstTalk(L2Npc npc, L2PcInstance player) { final int npcId = npc.getId(); String mainhtml = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/Custom/main.html"); if (npcId == Merchant) { String html = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/Custom/merchant/main.html"); CommunityBoardHandler.separateAndSend(html, player); } else if (npcId == Gatekeeper) { String html = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/Custom/gatekeeper/main.html"); CommunityBoardHandler.separateAndSend(html, player); } CommunityBoardHandler.separateAndSend(mainhtml, player); return ""; } public static void main(final String[] args) { new CBnpcs(-1); LOGGER.info("COMMYNITY NPCS LOADED"); } }
  17. Hello MaxCheaters, today i will show you a simple way about to edit jars from compiled projects! First you must download Intellij or any IDEA programm you like. Guide Video: Enjoy!
  18. Short guide going over how to import and create hats using Unreal. Although the model used is already pre processed, this logic can be applied to any accessory. you can put as many meshes in this ukx as possible. no more oaukx/1 mesh 1 ukx. [Hidden Content]
  19. Critical errors on Olymp during matches\matches view: OS : Windows XP 5.1 (Build: 2600) CPU : AuthenticAMD AMD Athlon™ II X2 250 Processor @ 3017 MHz 2047MB RAM Video : ATI Radeon HD 5670 (7218) PosCode : LS1(83) -80456:-252718:-3312 2/1 [800] Assertion failed: Size > 0 [File:.\D3DResource.cpp] [Line: 1222] History: FD3DVertexStream::Cache <- FD3DRenderInterface::SetVertexStreams <- USimulationMeshInstance::Render <- UMeshComponent::Render <- UMeshContainer::Render <- FDynamicActor::Render <- Actor <- TranslucentRendering <- RenderLevel <- FLevelSceneNode::Render <- FPlayerSceneNode::Render <- SceneNodeRender <- Draw <- UGameEngine::Draw <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: You can have such problem if you have dual-core processor. Install latest driver (Dual Core Optimizer). You can download this driver here: http://support.amd.c...s/DCO_1.1.4.zip Negative delta time! History: UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Install program (AMD Dual-Core Optimizer) ReadFile beyond EOF 750253+1/750253 History: ULinkerLoad::Serialize <- FString<< <- UTexture::Serialize <- LoadObject <- (Texture T_themepark.17_16BG 750225==750225/750225 132738 44082) <- ULinkerLoad::Preload <- ULevel::PreloadObjects <- ULevel::Load <- Load_Level <- UGameEngine::AdjustTerrain <- L2Seamless <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Reinstall systemstextures folder General protection fault! 1) History: FL2GameData::LoadL2DataBin <- FL2GameData::EulaLoad <- FL2GameData::Load <- UGameEngine::Init <- InitEngine Solution: Problem with file eula.dat, delete it, reinstal patch. 2) History: FMallocWindows::Realloc <- 00010202 132 FArray <- FArray::Realloc <- 33*4 <- UModel::PostLoad <- UObject::ConditionalPostLoad <- (Model 20_23.Model5) <- PostLoadObjects <- UObject::EndLoad <- ULinkerLoad::CreateImport <- IndexToObject <- ULinkerLoad<<UObject <- (LinkerLoad Transient.LinkerLoad205 2769293)) <- FBspSurf<< <- TArray<< <- TTransArray<< <- UModel::Serialize <- LoadObject <- (Model 20_23.Model5 2769293==2769293/7351787 2694348 1836930) <- ULinkerLoad::Preload <- ULevel::Serialize <- LoadObject <- (Level 20_23.myLevel 2769293==2769293/7351787 1103534 12410) <- ULinkerLoad::Preload <- ULevel::PreloadObjects <- ULevel::Load <- Load_Level <- UGameEngine::AdjustTerrain <- L2Seamless <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Increase size of virtual memory. Download latest video driver and DirectX. 3) History: NConsoleWnd::RequestAuthLogin <- NCAuthWnd::OnLoginBtnClick <- NCAuthWnd::OnPasswordDone <- NControl::SendEventMessage <- NCEditBox::onkeydown <- NCVirtualWndMain::PassToFocusedWindow <- NCVirtualWndMain::PassToFocusedWindow <- NCVirtualWndMain::PassToFocusedWindow <- NCVirtualWndMain::DispatchWndMsg <- NConsoleWnd::DispatchWndMsgX <- NConsoleWnd::DispatchWndMsg <- UWindowsViewport::ViewportWndProc <- WWindow::StaticProc <- DispatchMessage <- 000B0436 256 <- MessagePump <- MainLoop Solution: Control Panel > System >Advanced > Performance > Data execution prevention - specify the path to Depp. 4) History: UObject::SavePackage <- SaveCrestPackage <- CClientSocket::OnUserNetmessage <- UWindowsViewport::ViewportWndProc <- WWindow::StaticProc <- DispatchMessage <- 0004048C 1288 <- MessagePump <- MainLoop Solution: Delete Crest.utx from folder Systextures and install latest patch with files replacement. 5)History: NConsoleWnd::RequestAuthLogin <- NCAuthWnd::OnLoginBtnClick <- NControl::SendEventMessage <- NCButton::onclickButton <- NCButton::OnLButtonUp <- NCVirtualWndMain::PassToFocusedWindow <- NCVirtualWndMain::PassToFocusedWindow <- NCVirtualWndMain::PassToFocusedWindow <- NCVirtualWndMain::DispatchWndMsg <- NConsoleWnd::DispatchWndMsgX <- NConsoleWnd::MasterConsoleEventProcess <- UEngine::InputEvent <- UWindowsViewport::CauseInputEvent <- UWindowsViewport::UpdateInput <- UViewport::ReadInput <- APlayerController::Tick <- ALineagePlayerController::Tick <- TickAllActors <- ULevel::Tick <- (NetMode=0) <- TickLevel <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Reinstall client , use latest patch 6) History: CAuthSocket::OnUserNetmessage <- UWindowsViewport::ViewportWndProc <- WWindow::StaticProc <- DispatchMessage <- 000C00B2 1288 <- MessagePump <- MainLoop Solution: Control Panel > System >Advanced > Performance > Data execution prevention - specify the path to Depp. 7) History: UOrcMove::CalculateCRC32 <- UGameEngine::Init <- InitEngine Solution: Reinstall client 8) History: AL2Float::Tick <- TickAllActors <- ULevel::Tick <- (NetMode=0) <- TickLevel <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Delete Animations folder and reinstall patch. 9) History: FD3DPredefinedShader::LoadShaderFileToString <- FD3DPredefinedShader::Load <- FD3DPredefinedShader::FD3DPredefinedShader <- UD3DRenderDevice::Init <- UGameEngine::Init <- InitEngine Solution: Game folder title should be in English(example D:\Lineage2Interlude\) 10)History: NConsoleWnd::RequestAuthLogin <- NCAuthWnd::OnLoginBtnClick <- NCAuthWnd::OnPasswordDone <- NControl::SendEventMessage <- NCEditBox::HandleEnter <- NCEditBox::HandleKeyDown <- NCEditBox::onkeydown <- NCVirtualWndMain::PassToFocusedWindow <- NCVirtualWndMain:ispatchWndMsg <- NConsoleWnd:ispatchWndMsgX <- NConsoleWnd:ispatchWndMsg <- UWindowsViewport::ViewportWndProc <- WWindow::StaticProc <- DispatchMessage <- 002101BA 256 <- MessagePump <- MainLoop Solution: Delete System folder, updаting by patch\updater. 11) History: WM_DESTROY <- UWindowsViewport::ViewportWndProc <- WWindow::StaticProc <- WM_UNKNOWN <- UWindowsViewport::ViewportWndProc <- WWindow::StaticProc <- DispatchMessage <- 000E0770 16 <- MessagePump <- MainLoop Solution: Turn off antivirus (or add to "trust" and be sure that OS doesnt block L2.exe) 12)History: UObject::AddObject <- UObject::StaticAllocateObject <- (StaticMesh Gludio_Brdg01) <- UObject::StaticConstructObject <- ULinkerLoad::CreateExport <- (Gludio_Brdg01 527296) <- ULinkerLoad::CreateImport <- IndexToObject <- ULinkerLoad<<UObject <- (LinkerLoad Transient.LinkerLoad218 1448431)) <- FPropertyTag::SerializeTaggedProperty <- LoadStream <- (Count 0) <- UStruct::SerializeTaggedProperties <- (StaticMesh[-1]) <- UObject::Serialize <- (StaticMeshActor 19_21.StaticMeshActor1104) <- AActor::Serialize <- LoadObject <- (StaticMeshActor 19_21.StaticMeshActor1104 1448431==1448431/6307154 1448412 156) <- ULinkerLoad::Preload <- ULevel::PreloadObjects <- ULevel::Load <- UGameEngine::LoadTeleportMap <- UGameEngine::L2_Teleport <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Reinstall client Bad name index 1310094249/752 History: ULinkerLoad<<FName <- (LinkerLoad Transient.LinkerLoad210 1274516)) <- TagName <- FPropertyTag<< <- (After VClamp) <- LoadStream <- (Count 0) <- UStruct::SerializeTaggedProperties <- (None[-1]) <- UObject::Serialize <- (SkeletalMesh dropitems.coin_m00) <- UPrimitive::Serialize <- UMesh::Serialize <- (SkeletalMesh dropitems.coin_m00) <- ULodMesh::Serialize <- (SkeletalMesh dropitems.coin_m00) <- USkeletalMesh::Serialize <- (SkeletalMesh dropitems.coin_m00) <- LoadObject <- (SkeletalMesh dropitems.coin_m00 1274516==1274516/14014061 1274511 9587) <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::StaticLoadObject <- (Engine.SkeletalMesh dropitems.coin_m00 NULL) <- UGameEngine::OnSpawnItem <- UNetworkHandler::Tick <- Function Name=SpawnItemPacket <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Delete DropItems.ukx at folder animations Assertion failed: InPos<=Size [File:..\..\Core\Inc\FFileManagerWindows.h] [Line: 185] History: FArchiveFileReader::Seek <- ULinkerLoad::Seek <- LoadImportMap <- ULinkerLoad::Load <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- ULinkerLoad::VerifyImport <- ValidateImports <- ULinkerLoad::Verify <- ULinkerLoad::Load <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- ULinkerLoad::VerifyImport <- ValidateImports <- ULinkerLoad::Verify <- ULinkerLoad::Load <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- UObject::StaticLoadObject <- (Engine.Level None.MyLevel Lobby) <- VerifyPackages <- UGameEngine::LoadMap <- LocalMapURL <- UGameEngine::Browse <- UGameEngine::Init <- InitEngine Solution: Update\reinstall folders systextur,animation. IDirect3DVertexBuffer9::Lock failed(D3DERR_DRIVERINTERNALERROR) History: FD3DDynamicVertexStream::AddVertices <- FD3DRenderInterface::SetDynamicStream <- DrawSun <- FDynamicActor::Render <- SolidRendering <- RenderLevel <- FLevelSceneNode::Render <- FSkySceneNode::Render <- NoStencilRendering <- RenderLevel <- FLevelSceneNode::Render <- FSkySceneNode::Render <- NoStencilRendering <- RenderLevel <- FLevelSceneNode::Render <- FSkySceneNode::Render <- NoStencilRendering <- RenderLevel <- FLevelSceneNode::Render <- FPlayerSceneNode::Render <- UGameEngine:raw <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Updating video drivers ,DirectX. IDirect3DVertexBuffer9::Lock failed(D3DERR_DRIVERINTERNALERROR) Solution: Vaiants: Installing DirectX 9.0с, updating video drivers, replacing Files L2UI_CH3.utx, l2ui.utx on original. Or reinstall client Failed to load 'Texture L2Font-e.SmallFont-e': Failed to find object 'Texture L2Font-e.SmallFont-e' Failed to load 'Texture L2Font-e.SmallFont-e': Failed to find object 'Texture L2Font-e.SmallFont-e' Solution: You are missing file L2Font-e.utx, if possible, replace the file on the original Or reinstall client CreateVertexShader failed(D3DERR_INVALIDCALL). History: FD3DVertexShader::CompileShader <- FD3DVertexShader::FD3DVertexShader <- UD3DRenderDevice::GetVertexShader <- FD3DRenderInterface::SetVertexStreams <- FD3DRenderInterface::SetVertexStreams <- USkeletalMeshInstance:rawSection <- Pawn=Lobby01.FFighter2 MeshInstance=Fighter.SkeletalMeshInstance4 MeshName=Fighter.FFighter_m001_g BodyPart=9 <- USkeletalMeshInstance::Render <- UMeshComponent::Render <- UMeshContainer::Render <- FDynamicActor::Render <- Actor <- TranslucentRendering <- RenderLevel <- FLevelSceneNode::Render <- FPlayerSceneNode::Render <- UGameEngine:raw <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Turning off shaders at video options. Failed to enter SkyLevel: Can't find file 'SkyLevel'. History: UGameEngine::Init <- InitEngine Solution: At Maps folder missing file SkyLevel.unr, reinstall file SkyLevel.unr Or reinstall client ParticleMaterial59 : FD3DL2Shader VS compile failed: (168): error X3004: undeclared identifier 'tex1' History: FD3DShaderCache::Cache <- FD3DVertexLightShader::CompileShaderCode <- FD3DShaderCacheManager::GetCachedShader <- UD3DRenderDevice::GetShaderCache <- SetMaterial <- FD3DRenderInterface::SetL2ShaderMaterial <- FD3DRenderInterface::SetMaterial <- UBeamEmitter::RenderParticles <- this=23_15.BeamEmitter0 Owner=23_15.Emitter3 <- AEmitter::Render <- FDynamicActor::Render <- deferredActors <- RenderLevel <- FSkySceneNode::Render <- NoStencilRendering <- RenderLevel <- FLevelSceneNode::Render <- FPlayerSceneNode::Render <- UGameEngine:raw <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Turning off shaders at video options. Failed to find object 'Class Nwindow.ConsoleWnd' History: UObject::SafeLoadError <- UObject::StaticLoadClass <- UGameEngine::Init <- InitEngine Solution: Reinstall patch or update client by L2.pro updater. Turn off antivirus during patch installation or updating. SkeletalMesh Fighter.MFighter_m001_b: Serial size mismatch: Got 38913, Expected 38917 History: LoadObject <- (SkeletalMesh Fighter.MFighter_m001_b 12607569==12607569/23942605 12568656 38917) <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::StaticLoadObject <- (Core.Class LineageWarrior.MFighter NULL) <- UObject::StaticLoadClass <- NCPushButton::OnLButtonDown <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain:ispatchWndMsg <- NConsoleWnd:ispatchWndMsgX <- NConsoleWnd::MasterConsoleEventProcess <- UEngine::InputEvent <- UWindowsViewport::CauseInputEvent <- UWindowsViewport::UpdateInput <- UViewport::ReadInput <- APlayerController::Tick <- ALineagePlayerController::Tick <- TickAllActors <- ULevel::Tick <- (NetMode=0) <- TickLevel <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Reinstall animation folder by using latest patch History: LoadObject <- (SkeletalMesh Fighter.MFighter_m001_b 12607569==12607569/23942605 12568656 38917) <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::StaticLoadObject <- (Core.Class LineageWarrior.MFighter NULL) <- UObject::StaticLoadClass <- NCPushButton::OnLButtonDown <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain:ispatchWndMsg <- NConsoleWnd:ispatchWndMsgX <- NConsoleWnd::MasterConsoleEventProcess <- UEngine::InputEvent <- UWindowsViewport::CauseInputEvent <- UWindowsViewport::UpdateInput <- UViewport::ReadInput <- APlayerController::Tick <- ALineagePlayerController::Tick <- TickAllActors <- ULevel::Tick <- (NetMode=0) <- TickLevel <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Reinstall animation folder by using latest patch FMallocWindows::Malloc <- FMallocWindows::Realloc History: FMallocWindows::Malloc <- FMallocWindows::Realloc <- 00000000 -2011152056 FArray <- FArray::Realloc <- -1325135831*8 <- FUnrealfileSummary<< <- LoadSummary <- ULinkerLoad::Load <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- ULinkerLoad::VerifyImport <- ULinkerLoad::VerifyImport <- ValidateImports <- ULinkerLoad::Verify <- ULinkerLoad::Load <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- ULinkerLoad::VerifyImport <- ValidateImports <- ULinkerLoad::Verify <- ULinkerLoad::Load <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- UObject::StaticLoadObject <- (Core.Class LineageWarrior.MFighter NULL) <- UObject::StaticLoadClass <- NConsoleWnd::AddCharacterInfo <- UGameEngine::AddCharacterInfo <- d <- CharacterSelectionInfoPacket <- UNetworkHandler::Tick <- Function Name=CharacterSelect <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Increase size of virtual memory. Please enable Direct3D acceleration Please enable Direct3D acceleration. You can do this by starting dxdiag and enabling Direct3D Acceleration in the Display1/2 tab after installing DirectX 8.1b (or later) and the latest drivers for your graphics card. Solution: Launch DXdiag and activate 3D acceleration after installing DirectX and video drivers. Bad name index 7021/601 History: ULinkerLoad<<FName <- (LinkerLoad Transient.LinkerLoad131 42680527)) <- FObjectImport<< <- LoadImportMap <- ULinkerLoad::Load <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- ULinkerLoad::VerifyImport <- ValidateImports <- ULinkerLoad::Verify <- ULinkerLoad::Load <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- ULinkerLoad::VerifyImport <- ValidateImports <- ULinkerLoad::Verify <- ULinkerLoad::Load <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- UObject::StaticLoadObject <- (Core.Class LineageWarrior.MFighter NULL) <- UObject::StaticLoadClass <- NCPawnSelectWnd::AddPawn <- NConsoleWnd::AddCharacterInfo <- d <- CharacterSelectionInfoPacket <- UNetworkHandler::Tick <- Function Name=CharacterSelect <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Reinstall client ReadFile failed: Count=0 Length=523865 Error= (CRC) History: ULinkerLoad::Serialize <- TArray<< <- TLazyArray::Load <- ATerrainInfo::UpdateVertices <- ATerrainInfo::UpdateVTGroup <- ATerrainInfo::PostLoad <- UObject::ConditionalPostLoad <- (TerrainInfo 22_22.TerrainInfo0) <- ULevel::PostloadObjects <- ULevel::Load <- UGameEngine::LoadTeleportMap <- UGameEngine::L2_Teleport <- UGameEngine::Tick <- UpdateWorld <- MainLoop Solution: Reinstall client this guide i took it from some other forums mostly from a russian one Cradits: not to me i just c/p it(and put green colors at solutions)
  20. this guide will go over how to create a new effect for l2 and how to attach it to a npc - static meshes will only work if they are saved using postal editor - EditPackages is the list of 'packages' that ucc will read/save - name your .int the same as your script .u (save as 111 for int) - attaching to bone is not necessary, unless it's a small effect and you want it on a specific part like RESOURCES - Unreal (Postal version) - REQUIRED TO WORK WITH STATIC MESH Unreal (UCC) - REQUIRED TO COMPILE PROPERLY UMODEL ActorX Unpacked Effect Scripts L2PE ASE Export Properties DDS Properties UCC Compile Script @echo ucc.exe make pause Scripts created other cool things you can do -
  21. hi to all and good morning, i would like to thank 1st of all for these shares and 2ndly i would like to ask for your help about some kind of ''errors'' about those interfaces. i have tried a couple of different versions but in some servers (interlude only tested) while im trying to enchant via interface i have to press start button each time for every +1 enchant . why is this happen? could some1 give me a solution? i have tried to increase - low speed of enchant still nothing. thanks in advance.
  22. Hi Make window OnScreenMessageExWnd with 28 textboxes on screen center: Add it to a new *.uc class with the same name (OnScreenMessageExWnd) class OnScreenMessageExWnd extends UICommonAPI; const DAMAGE_MESSAGE_OFFSET = 100; const MAX_DAMAGE_MESSAGE = 28; var WindowHandle Me; var TextBoxHandle DamageText[MAX_DAMAGE_MESSAGE]; function OnLoad() { local int i; Me = GetWindowHandle("OnScreenMessageExWnd"); for (i=0; i<MAX_DAMAGE_MESSAGE; i++) { DamageText[i] = GetTextBoxHandle("OnScreenMessageExWnd.DamageText-0-" $ i); } } function OnRegisterEvent() { RegisterEvent( EV_SystemMessage ); } function OnEvent(int Event_ID, string param) { switch( Event_ID ) { case EV_SystemMessage: HandleSystemMessage(param); break; } } function HandleSystemMessage (string a_Param) { local int SystemMsgIndex, DamageToPlayer, i; ParseInt(a_Param,"Index",SystemMsgIndex); switch (SystemMsgIndex) { case 2261: //player msg case 2281: //summoner msg for(i=0; i<MAX_DAMAGE_MESSAGE; i++) { if(DamageText[i].GetText() == "") { DamageText[i].SetAlpha(255); ParseInt( a_Param, "Param3", DamageToPlayer); DamageText[i].SetText(string(DamageToPlayer)); DamageText[i].SetAnchor( "OnScreenMessageExWnd", "BottomCenter", "BottomCenter", -200 + Rand(150), Rand(60) ); DamageText[i].ClearAnchor(); DamageText[i].Move(0, -1500, 8f); DamageText[i].SetAlpha( 0, 2.8f ); Me.KillTimer(i + DAMAGE_MESSAGE_OFFSET + 1); Me.SetTimer(i + DAMAGE_MESSAGE_OFFSET + 1, 2500); break; } } break; } } function OnTimer (int TimerID) { Me.KillTimer(TimerID); if(TimerID >= 101 && TimerID <= 200) DamageText[TimerID-DAMAGE_MESSAGE_OFFSET-1].SetText(""); } Result: Enjoy
  23. So, I found in my old HDD some files and maybe someone want to use this one. You can use the code to find current votes of vote sites. Here is the Java Class : https://pastebin.com/EtTxVrM4 And here are some example's for few sites: System.out.println("l2topzone.com: " + new ContentURL("https://l2topzone.com/lineage/server-info/6084/l2damage", "span.label.label-info").toInt()); System.out.println("l2.hopzone.net: " + new ContentURL("https://l2.hopzone.net/lineage2/details/93067/l2-damage", "span.rank.tooltip.hidden").toInt()); System.out.println("l2network.eu: " + new ContentURL("https://l2network.eu/details/346/L2Exilium-World/", "span.btn-label.btn-label-right").toInt()); System.out.println("topservers200.com : " + new ContentURL("https://topservers200.com/lineage2/1/l2mad", "a#vote-btn.btn-vote > span").toInt()); System.out.println("l2.topgameserver.net : " + new ContentURL("https://l2.topgameserver.net/lineage/server-detail/250/L2Reborn", "div.votes-count > strong").toInt()); System.out.println("l2top.co : " + new ContentURL("https://l2top.co/server-info/L2Unity", "li.text4").toInt()); System.out.println("top.l2jbrasil.com: " + new ContentURL("https://top.l2jbrasil.com/index.php?a=stats&u=djvogans", "div#adminctt b:contains(Entradas(Total):)").next().toInt()); System.out.println("l2votes.com : " + new ContentURL("https://l2votes.com/serverPage.php?sid=8", "a.votes").toInt()); System.out.println("itopz.com : " + new ContentURL("https://itopz.com/info/325312", "span.btn.badge.badge-secondary").toInt()); System.out.println("l2jtop.com : " + new ContentURL("https://l2jtop.com/server/exiliumworld/info/", "div.votes").toInt()); System.out.println("l2top.gr : " + new ContentURL("https://l2top.gr/?a=details&u=l2kot", "span.badge.badge-light").toInt()); // Example Output // l2topzone.com: 4878 // l2.hopzone.net: 21588 // l2network.eu: 11658 // topservers200.com : 4221 // l2.topgameserver.net : 50228 // l2top.co : 8418 // top.l2jbrasil.com: 36593 // l2votes.com : 2649 // itopz.com : 544 // l2jtop.com : 12897 // l2top.gr : 504 I guess everyone that is not lazy is able to add any website he want and create basic system for rewarding the players. To use the class you should import Jsoup.jar on your project : https://jsoup.org/download
  24. Hello everybody, today I will be showing you all how you can unpack a sample which is packed with Themida. This tutorial will show you how to do the process without requiring to manually use a debugger yourself, I know is not the best guide because i'm not a reverser, sure some react to this and laught but I don't care, this is for knowledge purpose of someone wanna try yourself What you will learn in this thread: - What Themida is - A bit about how Themida works - Why packers/obfuscators may be used with not only malicious software but safe, legitmate software - Why unpacking is useful to Malware Analysis - How you can unpack samples packed by Themida without requring knowledge of how to use a Debugger yourself manually 1). What Themida is Themida is software specifically engineered to help software stay better protected from becoming cracked and/or it's source code was being stolen. If someone comes along and they can read the code you wrote for your software, if you have not made the software opensource and did not wish the code to be given out and/or read by someone, would you be happy about them having found a way to read your source code? I don't think you would. The purpose of Themida is to help prevent the protected software from becoming vulnerable to reverse engineering attempts. It can also help against piracy. 2). A bit about how Themida works Themida will pack the executable. When you execute the packed sample, it will unpack the executable in memory and use that to continue executing to perform and do what it's meant to do. If the unpacking of the packed executable into memory fails for whatever reason, then the program will not work. 3). Why packers may be used in legitimate software Packers may be used in legitimate software so the developer's software is better protected against attacks. If someone can read your code, or use Disassembly to understand how it works, they can try to find vulnerabilities and then use them to create zero-day exploits. Packers are also quite frequent with malware. Your Antivirus product may pickup detections for software packed in a certain way/type of packer used. 4). Why unpacking is useful in Malware Analysis If the sample is packed, then this essentially protects against Disassembly. We won't be able to understand how the program works, we'll just be reading the instructions from the packer wrapper. For example, the process of the unpacking. However, we want the original executable (unpacked executable) and we want to perform Disassembly with that executable so we can try to make sense of and understand how the program works to know if it's malicious or not. 5). How we can actually identify and unpack Themida packed executables To start off, you'll need a few things: Tools needed ProtectionID 6.6.7 OllyDBG 1.10 OllyDBG Plugins ODBGScript v1.82.6 StrongOD 0.4.8.892 PhantOm 1.79 ARImpRec.dll Script Themida - Winlicense Ultra Unpacker 1.4 Ok the first thing we need do is set path in the Themida - Winlicense Ultra Unpacker 1.4.txt for your "ARImpRec.dl", so we open the txt with notepad and search it. HERE_ENTER_YOUR_DLL_PATH_TO_ARIMPREC_DLL: mov ARIMPREC_PATH, "C:\Documents and Settings\Admin\Desktop\OllyDBG\plugin\ARImpRec.dll" Open up ProtectionID and as can see first icon like a paper with a pencil, press there and drop your executable. It should process the information (if it can). As we can see in the below screenshot, it detects the Themida packing: Ok after checked that we unpack ollydbg in a path we want, a example mine is in Desktop: C:\Documents and Settings\Admin\Desktop\OllyDBG. So now we gonna create inside ollydbg folder a folder called plugin and inside we extract all plugins we download, so this need be look like that. PS: delete PSAPI.DLL from main folder of OllyDBG. Ok so now we are ready to start with it. 1. First time we open Olly we need set the plugin directory because is not configured, for do it we go to --> Option-Appareance, in the tab Directories we can set where we stored plugins, so do it, press ok and restart Olly. 2.So now the next time we open Olly we see plugins loaded. 3. Ok now we go open the target to unpack or just press F3, after opened we got a pop up, just press Yes and the file continue Analysing, just wait to finish. 4.Now press F9 to run it and as you can see, we got a pop up, don't worry just press ok and the debug is terminated. 5. Good the next move is run script, so for this we go can do it via plugin menu-ODBGScript-Run Script and we search for "Themida - Winlicense Ultra Unpacker 1.4.txt" download before. 6.Ok after we load nothing happen becase we terminated the debug before, so what we need do is reopen the target, just press in the X to close target. 7.After reopened target run script again or if you get this pop up asking for begin unpacking process we press Yes. Ok next one we press No. So now the unpacking process has begun, we can check status in the down bar as the right side of screen, after some seconds, we got pause, now to resume and continue unpacking maximize main thread windows and press right click and go to -> Script Functions-Script Windows, so now we have a Window of Script opened, right click there and press Resume. 8. So now we got a pop up telling us about we need modify some values into "ollydbg.ini", after that we need restart Olly and resume script. 9. So now we repeat steps do before, open target and run script,etc, after we finish we got this at the end. PS: remember close OllyDBG after open .ini. 10. Ok we press Yes and in the Script Execution press right click and Resume. 11. Good now this part is very important, if we running a VMWare, we need set Yes, if we running normal SO just press No. 12. Now we got another pop up, really in my case I select Moddern Scan no Simple, it uses more checks. 13. Ok in this one we select No. 14. Ok after finished we got a new pop, there I press Yes. 15. Finally the job is done, as you can see there, now we can see dumped file, so we press Yes for use this data. 16. As script say, we choose first time no, if we got any problem after press no, repeat the process and the next time just press Yes, just in case. 17. Ok this pop ask for compress the dumped file, but in this case we won't do it because is a good size, is not a file of 120MB or 200MB so I think is fine press No. 18. Ok after all this we finally have dumped file in the folder where stored exe. Press ok and we are done. PS: Ok I hope this guide help us to unpack in future your themida protections, so well have fun and sorry if my english is to bad. Credits: LCF-AT, Nacho_dj and me for write this guide.
×
×
  • 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