Jump to content

Recommended Posts

Posted

Some difinitions ... and especially about warez.. :P

Warez are not allowed here... Anyway you will learn some things that u didnt know before :P

 

ISO:

A file that is created from an image of a CD. You can make an iso yourself with a program such as Adaptec Easy CD Creator, or you can burn an ISO file to a CD-R to create a copy of a CD.

 

Bin/cue files:

These are also used to create an image of a CD. Most people burn these with CdrWin or Fireburner. The .bin file contains all the data for the cd, the .cue file is just a small file in text format telling the software exactly how to burn the data onto the CD.

 

MP3:

This is a format used to compress music files. You can create your own by encoding .wav files ripped from audio CDs. There are many free players that will play mp3s for you (see the Winamp tutorial)

 

Ace files:

These are used to compress/archive data. Use WinAce to decompress them, or to make your own. The normal format for ace files is to have .ace, .c01, .c01, etc.

 

Rar files:

Another compression/archive format. This is most commonly used on iso or bin files in order to split them up into smaller files (15 MB is the norm). Winrar and many other utilities can decompress these. Rar files are usually in the format .rar, .r01, .r02, etc. But don't be surprised if you don't see a .rar file. Just open up winrar and point it to .r01. You also may see them packed as .001, .002, etc. (maybe with a .rar, maybe not)

 

Pub:

This is an FTP that has left on anonymous access. Many are owned by large companies, so they have a lot of bandwidth. This makes it possible for one person to send files there and many people can download them at once =) These are found by scanning ranges of ips. Just remember, like the name says, these are public. Just because you upload something there or make directories with your name does not make it 'your pub'. At the same time, realize that if you come across a pub with another person/groups stuff on it that it may be in use to build other pubs from - so don't ruin it for many people by deleting stuff you find there. For more on this, go read some posts on our Bulletin Board.

 

Proxy:

A system that is set up to forward packets... There are many different kinds, check out the proxy tutorial for more info. Basically, a proxy server helps cover up your tracks because you connect to remote computers through the proxy. Think of it as the condom of the Internet

 

SFV Files/ CRC Checks:

SFV files contain information about files that they accompany. You can preform a CRC check on the files using a program such as WinSFV. This compares the information in the SFV file to the file itself. If the information doesn't match, then the file was probably messed up in transfer somehow.. try downloading it again, from a different source if possible.

 

0-Day:

Latest software releases.

 

0-Sec:

Same as above, although the period of time between ripping a game or application and it appearing on a warez site is even shorter.

 

Ace File:

The first file in a series of compressed archives (the one you double click on to decompress all the files at once).

 

Active List:

Similar to a mailing list, but uses ICQ to send instant messages to subscribers.

 

Alpha:

Software receives this label when it is in the very early stages of development. Usually full of bugs, so don't touch it with a barge pole.

 

Anti-Leech:

A system which uses cgi scripts to prevent people stealing links and then taking the credit for uploading the files.

 

Appz:

Short for applications.

 

ASF File:

The worst quality movie file format (still pretty good though), much smaller in size than dat or mpg.

 

Banner Site:

Password and username restricted FTP site. To get the correct login details you must click on several banners.

 

Beta:

An acronym for Business Software Alliance, an organisation who are responsible for enforcing anti-piracy litigation. Similar groups in charge of controlling software "theft" include the SIIA, SPA and ELSPA.

 

BSOD:

Many people read about BSODs on bulletin boards and think that they're being insulted, but there is no need to get paranoid. It is actually an acronym for "Blue Screen Of Death". These can occur for a multitude of reasons (old Bill likes to keep us guessing!) and are the bane of PC user's lives.

 

Bulletin Board:

A virtual meeting place on the web similar to a chat room except that it isn't in real time. One person leaves a message then others come along, read it and add a reply. Each new discussion is called a new topic or thread and has it's own link. Whenever a new topic is created the older topics are pushed one place downwards in the list. When someone replies to an older topic it is brought back to the top of the list.

 

C?? File:

File extension that indicates that a file is part of an .ace or .rar series of compressed files.

 

Cgi Scripts:

These are referrers which are used in url?s. When you click on a link with a ?cgi reference you are directed to a sponsor?s website or an anti-leech protected file.

 

Cookie:

A tiny text file (usually less than 1kb), which is stored on your hard drive when you visit a web site. These are used to remember who you are so that you can access members only areas on the site without having to type in a password every time or to retain your personalised settings so that they are available the next time you visit.

 

Courier:

Someone who is involved in the logistics of delivering new releases directly from the release groups themselves to FTP sites.

 

cr4ck:

A tiny executable file that is used to transform a shareware program into the full version. Also used to remove any copy protection from the main executable of games (this will already have been done in "ripped" warez games).

 

CRC Error:

These can occur when you try to decompress a file that has become corrupt during the downloading process, usually as a result of too much resuming.

 

Credits:

The amount of data you are permitted to download from a ratio site. The more credits you have the more software you are allowed to download.

 

DAP:

A quick way of referring to "Download Accelerator Plus", a free download manager that claims to speed up file transfers by up to three hundred per cent. It works by making multiple connections to the same file and is paid for by revolving advertising banners.Also supports resume. **EDITOR'S PICK**

 

DAT File:

File format used for movies, identical in quality and size to mpg as far as I can tell.

 

DC:

The lazy way of referring to the Dreamcast, Sega's latest console incarnation.

 

Decompression:

Unpacking many files that have been stored in a single archive.

 

Distro:

A concise means of referring to a distribution FTP site. These are huge storage areas which act as a springboard for the transfer of new releases. Their whereabouts are never public disclosed to aid their survival rate. You can think of them as the initial source from which warez emanates.

 

Direct Downloads:

Links to actual files rather than other warez sites or pages. These are usually gathered together from many different sites and put on one page for your convenience.

 

DivX:

Movies ripped from a DVD using the DivX video codecs. Can be played back using Media Player.

 

DIZ File:

Short for description. Very brief text file found in warez archives stating the title of the software, the number of files that makes up the set and the group who released it.

 

Download (or DL):

Copying files from a web server or FTP site to your computer using a modem.

 

Emulator:

An application that simulates another computer system or console using your PC.

 

Emporio:

It could either mean leet h4cking, crew coding, and idownz.

 

FAQ:

Stands for Frequently Asked Questions.

 

FAW:

Abbreviation for "Files Anywhere", a popular, free web storage service.

 

File Transfer Protocol (FTP):

The method used to transfer files from one computer to another using a modem.

 

Flaming:

A general net term for "verbally" attacking someone. This can be done via email, bulletin board, chat room or any medium which involves communication across the web.

 

Freedrive:

Virtual hard drive storage area on the web. Free to join and anything and everything can be uploaded or downloaded.

 

Freeware:

Unrestricted software that is downloaded from the net and is completely free to use. Often paid for using advertising.

 

FTP Client / Browser:

A program used to access, upload and download data from FTP sites.

 

Fxp:

The art of transferring data from one Ftp site to another using the connection speed of the slower of the two computers.

 

Gold:

A piece of software is said to have gone gold when the final version is complete and it is ready to ship to the public.

 

h4cking:

Gaining access to a remote computer without the authorisation to do so. Usually for the purposes of stealing confidential information or the malicious destruction of data.

 

Hammering:

Repeatedly trying to access an FTP site using an FTP client or download manager.

 

HTTP:

Stands for "Hypertext Transfer Protocol". The method you use to view a web page. Always comes before the address of a website in your Url bar.

 

ICQ:

Derives from the term "I Seek You" and is used for real time chat and transferring files over the internet.

 

IP Address:

A series of numbers separated by dots used to identify your computer on the Internet.

 

IRC:

Stands for "Instant Relay Chat". Used for real time chat and transferring files over the Internet.

 

ISO:

An exact copy of an original CD, all the multimedia bits and pieces are uncut and therefore they are extremely large and awkward to download.

 

Java:

Html scripts used to add functionality to or bring web pages alive. These include animation, menus, chat rooms, buttons, pop ups and so on.

 

Key Generator:

A tiny executable program that is capable of creating a serial number from a specified username. These are specific to particular applications or utilities, so a serial number created with one key generator will only work for the program for which the key generator was developed.

 

Lamer:

An annoying and overused general derogatory term used to insult/put down anyone and everything.

 

Leeching:

Downloading files without giving anything back in return or copying other people?s links.

 

Mirror:

An exact copy of a web site that is stored on a different server. Using multiple locations for warez sites allows the site to be accessed using a different address if the main site is deleted.

 

Modchip:

Very common website sponsor found on warez sites. They don?t mind their banners being used on illegal software sites because their products are one of the ?grey areas? of the law. Modchips are small pieces of electronic circuitry which allow copied games to be played on your Playstation. If a Playstation has been fitted with a Modchip it is said to have been "chipped".

 

MP3 File:

Compressed music file format. Average track size is between 3 and 4 meg compared to 40-ish meg in wav format.

 

MPG File:

The best quality and largest movie file format.

 

Multi Web Space Faker:

A tool used to create lots of free web space accounts simultaneously.

 

Name Zero:

An organisation that offers free website domain names. The main drawbacks are that you have to put up with a very bulky banner residing at the bottom of your page and the fact that you never actually own your chosen address.

 

NFO File:

Short for info or information. Basic text file containing all the important details relating to a particular release, such as number of files, release date, copy protection system, installation instructions etc.

 

Nuked:

A release is said to be nuked if it is completely unplayable. Usually when this happens another group re-releases the particular game, although fixes do sometimes follow on to rescue the game from trash can.

 

OEM:

An acronym for Original Equipment Manufacturer. OEM software products are repackaged versions of the full retail product. They are often re-branded to suit the needs of the particular vender and are much more reasonable priced because they lack excessive packaging and a hard copy of the manual.

 

OST:

Not strictly a warez term this one, but one that you are likely to come across while searching for MP3 music. It stands for original soundtrack (movie music).

 

Patch:

We all know games and applications aren't perfect. When they are released we would hope that they have been thoroughly tested for bugs and incompatibility problems, but you can guarantee that many of these will still slip through the quality control net. Once the program is released to the general public, the bug reports start to flood in. A patch is a downloadable executive file which takes these reports into account and attempts to incorporate all the fixes for these known problems. A patch can resolve incompatibility problems, prevent crashes or improve the performance of a piece of software.

 

Pop-ups:

Irritating browser windows that open automatically when you visit a warez site. Usually contain voting portals or porn sites.

 

Port:

A port is a term used when referring to FTP sites and is an essential extension of the address used to access them. If the port number of an FTP site isn't specified the default setting of 21 will automatically be used.

 

Proxy:

A third party server which acts as an anonymous go between whenever you request a web page or contact a remote server. The message from your computer is first sent through the proxy server before being relayed to the final destination so that it appears as though the request has come from the IP address of the proxy server rather than you. Used when you wish to maintain your privacy on the net or speed up your connection (much more detailed info on this subject in the "more tips" section).

 

PSX:

A quick way of referring to the Sony Playstation.

 

Pub:

A free for all FTP site where anonymous access is permitted.

 

Pub Scanner:

Someone who scours the net for anonymous access FTP sites which permit the creation and deletion of files. These are then exploited by uploading software for others to share.

 

Pub Stealer:

Someone who posts the IP address of a public FTP site which they themselves have not built. Some pub stealers justify this by claiming that the elitism of private FXP groups discriminates against those people who do not have access, yet others simply post other people's work to try to claim the credit for themselves. Either way though, pub stealers are despised by the FXP groups and praised by those who would otherwise not have access to them.

 

Rar File:

The first file in a series of compressed archives (the one you double click on to decompress all the files at once). Usually decompressed using a program called Winrar.

 

Release Groups:

A group of people who are involved in cr4cking and / or ripping software and then repackaging it into easily downloadable segments.

 

Ratio:

Two numbers separated by a semi-colon. Indicates how much data you must upload to an FTP site before you are permitted to download anything.

 

Reg File:

Tiny file that adds essential configuration details into the registry.

 

Resume:

The ability to stop and start downloading / uploading a file whenever you choose without having to start from the beginning again.

 

Rip:

Software that has had all the non-essential gubbins removed to reduce its size. Videos and music are always the first casualties.

 

Raped:

A release is branded with this term if it has been damaged beyond repair during the ripping process.

 

RM File:

Shorthand for Real Media, a file format used to encode video sequences, which can only be played back using the "Real Player". Video clips produced using this format are not of the highest quality, but do have the advantage of a small file size.

 

ROM:

Games which are designed for other platforms, but are played on the PC using an emulator.

 

Serial:

A valid username and password that is saved as a basic text file and is used to register a shareware program and therefore remove all the restrictions.

 

Shareware:

Try before you buy software downloaded from the net.

 

Spam:

Unsolicited junk e-mail. Supposedly stands for "Stupid Person's Annoying Message".

 

Sponsor:

To make some money webmasters can place adverts on their sites. Each time you click on these adverts or banners they get paid a few cents for bringing potential customers to the sponsors website.

 

Surfer Friendly (SF):

Surfer friendly sites supposedly have no blind links, pop-ups or porn banners. Don't be fooled by this label though as some sites will tell you fibs to get you to visit them.

 

Sys Op:

The person who has the responsibility for running the computer from which an FTP site has been established. When warez is uploaded to public FTP sites and then suddenly goes "Missing In Action" you can often lay the blame at the door of the Sys Op who has an obligation to make sure his/her server stays within the boundaries of the law (i.e. warez free).

 

Top List:

Chart which lists in rank order the best warez sites. Worked out on the basis of votes.

 

Trading:

Swapping warez, file for file via FTP, ICQ etc. Not usually approved of by the real warez community who believe that warez should be freely distributed. To put it simply, it is not the "warez way".

 

Trainer:

A small, executable program which sits in your taskbar while you play a game. Hotkeys are associated with cheat commands so that when they are pressed you are given extra ammo, weapons, lives or the ability to toggle between invincible/mortal modes etc etc.

 

Trojans:

Nasty virus like attachments which can be merged with executable files. These are tiny so are unlikely to arouse suspicion. When run they allow a hacker to access your computer and wreak havoc. Can occasionally be found in warez files.

 

UBB:

Shorthand for Ultimate Bulletin Board, currently the most popular script used for creating warez bulletin boards.

 

UBB Hacks:

This term falsely gives the impression that something destructive or malicious is involved, but when you hear people talking about a hack in the context of bulletin boards they are simply referring to code which helps to improve the functionality of a board. For example a "thread hack" would effect the way in which individual threads look and operate.

 

Undeletable Pub:

An anonymous access, public FTP site where the permission attributes are set to allow uploads and downloads, but do not permit deletion.

 

Unzip:

Unpacking or decompressing many files that have been stored in a single archive. Technically only used when talking about zip files.

 

Upload:

Copying files from your computer to a web server or FTP site using a modem.

 

URL:

Stands for "Uniform Resource Locator". The web site address you type into your browser.

 

Voting:

Members of the warez scene are very keen to reach the number one slot of top lists such as Voodoo, Top 60 etc. and will therefore encourage you to vote for their site to improve their position and get the credit they deserve (or not as the case may be!).

 

Warez:

Full version software that is uploaded to the internet and is available for free download.

 

Warez Board:

Bulletin board used by the warez community to share links and discuss anything related to warez.

 

Winace:

Another utility used for decompressing all the common archive formats. Not great in my opinion. See below for a better one.

 

Winrar:

Utility used for decompressing .rar files and much more.

 

Winzip:

An essential tool used to decompress warez files.

 

Zip:

A common compression format used to store warez

_________________

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • 🔥 L2Gold.co x15 Interlude Server 2025 – Grand Opening! 🔥 Join us today and be part of the legendary L2Gold community! 🎉 Grand Opening: 14 March 2025 🎉 ⏰ Time: 21:00 GMT +2 🌍 Server Type: EURO PTS/L2OFF 🌟 Why Play on L2Gold.co? 🌟 ✅ No Wipes – Keep Your Progress Forever! Your characters and progress are permanent. No resets! ✅ Balanced & Fun Gameplay! Experience x15 rates for a smooth and enjoyable progression. ✅ Solo or Party Play Use MP potions and NPC buffers for a great solo experience or team up with friends. ✅ Long-Term Stability Our server is built to last with no interruptions! 📊 Server Rates & Details 📊 Category Rate EXP/SP x15 (Official rate without rune or VIP) Adena x10 (Official rate without rune or VIP) Drop x10 (Official rate without rune or VIP) Spoil x10 (Official rate without rune or VIP) Raid Boss Drop x10 (Official rate without rune or VIP) 🚀 Exciting New Features! 🚀 🎟️ 💰 Weekly Lottery System! – Win rare items, in-game currency, and exclusive rewards! 🎁 More Events & Rewards! – Special in-game activities with exclusive items! 📈 Real-Time Stats! – Track your progress, achievements, and rankings live! ⚔️ New Items Weekly! – Discover rare gear and unique items every week! 🌍 A Growing Global Community 🌍 Players from Greece 🇬🇷, Brazil 🇧🇷, Spain 🇪🇸, and beyond! 🔗 Stay Connected 🔗 Follow us on social media to stay updated! 🌎 Website: L2Gold.co 🎙️ Discord: Server 📘 Facebook: Page | Group 🎥 YouTube:   Watch Videos 🎵 TikTok: Follow Us 🔥 Prepare for Battle! 🔥 📅 The adventure begins on 14 March 2025! Join L2Gold.co and Experience an Unforgettable Adventure! 🎮✨
    • y girate unos archivitos del powerclass dale..... sin encrypt
    • Hi, im looking for cardinal pvp script for auto cleanse/rez/nobles etc etc and guide on how to setup as well as what programms do i need to run such scripts as i have never used any helper or something before,
    • [Release] Solo PvP Zone System 🔹 Compatible with: aCis 401+ 📜 Features: ✅ Automatic Exit on Restart: Players are removed from the zone if a restart occurs or logout. ✅ Custom Exit Command: Players can exit the Solo Zone with the voice command .exit. ✅ Teleport NPC Command: new bypass solopvp for gatekeeper. ✅ Random Name Generator: Generates random names. ✅ PvP Flag: The players are flagged within this zone.   xml preview & java code backup code -> https://pastebin.com/974V2p2p   SoloZone.xml <?xml version="1.0" encoding="UTF-8"?> <list> <zone shape="NPoly" minZ="-5200" maxZ="-4680"><!-- Frintezza Solo Zone --> <stat name="name" val="Solo PvP Zone" /> <stat name="locs" val="174244,-89089,-5112;174260,-86881,-5112;173184,-88090,-5112;175309,-88018,-5112;174231,-88019,-5112;175136,-88828,-5104;174962,-87025,-5104;173149,-87142,-5104;173470,-88908,-5112" /> <stat name="restrictedClasses" val="15,16,97" /> <node x="172031" y="-90127"/> <node x="176428" y="-90089"/> <node x="176428" y="-74051"/> <node x="172057" y="-74108"/> </zone> </list> SoloZone Code: diff --git a/java/net/sf/l2j/gameserver/taskmanager/SoloZoneTaskManager.java b/java/net/sf/l2j/gameserver/taskmanager/SoloZoneTaskManager.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/taskmanager/SoloZoneTaskManager.java @@ -0,0 +1,98 @@ +package net.sf.l2j.gameserver.taskmanager; + +import java.security.SecureRandom; +import java.util.ArrayList; +import java.util.logging.Logger; + +import net.sf.l2j.commons.random.Rnd; + +import net.sf.l2j.gameserver.data.manager.ZoneManager; +import net.sf.l2j.gameserver.enums.ZoneId; +import net.sf.l2j.gameserver.handler.voicecommandhandlers.VoiceExitSoloZone; +import net.sf.l2j.gameserver.model.World; +import net.sf.l2j.gameserver.model.actor.Player; +import net.sf.l2j.gameserver.model.location.Location; +import net.sf.l2j.gameserver.model.zone.type.SoloZone; + + +/** + * @author MarGaZeaS + */ +public class SoloZoneTaskManager implements Runnable { + + private static final Location EXIT_LOCATION = VoiceExitSoloZone.getExitLocation(); // Λαμβάνουμε την έξοδο από το VoiceExitSoloZone + + @Override + public void run() + { + // Διασχίζουμε όλους τους παίκτες του κόσμου + for (Player player : World.getInstance().getPlayers()) + { + // Ελέγχουμε αν ο παίκτης είναι στο SoloZone + if (player.isInsideZone(ZoneId.SOLO)) + { + // Μεταφέρουμε τον παίκτη στην έξοδο + player.teleportTo(EXIT_LOCATION.getX(), EXIT_LOCATION.getY(), EXIT_LOCATION.getZ(), 0); + player.sendMessage("The server is restarting, you have been moved out of the Solo Zone."); + } + } + } + + private int _id; + + private static final Logger _log = Logger.getLogger(SoloZoneTaskManager.class.getName()); + private static final ArrayList<String> _rndNames = new ArrayList<>(); + private static final int RANDOM_NAMES = 500; + private static final String CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + private int _playersInSoloZone = 0; + + public int getPlayersInside() { + return _playersInSoloZone; + } + + public void setPlayersInside(int val) { + _playersInSoloZone = val; + } + + public SoloZoneTaskManager() { + _log.info("Solo Zone System: Loading..."); + for (int i = 0; i < RANDOM_NAMES; i++) { + String name = generateName(); + _rndNames.add(name); + _log.info("Generated name: " + name); + } + _log.info("Solo Zone System: Loaded " + _rndNames.size() + " names."); + } + + public String getAName() { + if (_rndNames.isEmpty()) { + _log.warning("SoloZoneManager: No random names available."); + return "Unknown"; + } + return _rndNames.get(Rnd.get(5, RANDOM_NAMES - 5)); + } + + private static String generateName() { + SecureRandom rnd = new SecureRandom(); + StringBuilder sb = new StringBuilder(15); + for (int i = 0; i < 15; i++) { + sb.append(CHARS.charAt(rnd.nextInt(CHARS.length()))); + } + return sb.toString(); + } + + public int getZoneId() + { + return _id; + } + + public final static SoloZone getCurrentZone() { + return ZoneManager.getInstance().getAllZones(SoloZone.class) + .stream() + .findFirst() // Επιστρέφει την πρώτη SoloZone (αν υπάρχει μόνο μία) + .orElse(null); + } + + public static SoloZoneTaskManager getInstance() { + return SingletonHolder._instance; + } + + private static class SingletonHolder { + private static final SoloZoneTaskManager _instance = new SoloZoneTaskManager(); + } +} diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/taskmanager/PvpFlagTaskManager.java b/aCis_gameserver/java/net/sf/l2j/gameserver/taskmanager/PvpFlagTaskManager.java index a707ce5..d247e2e 100644 --- a/aCis_gameserver/java/net/sf/l2j/gameserver/taskmanager/PvpFlagTaskManager.java final Player player = entry.getKey(); final long timeLeft = entry.getValue(); + if(player.isInsideZone(ZoneId.SOLO)) + continue; if(player.isInsideZone(ZoneId.BOSS)) continue; // Time is running out, clear PvP flag and remove from list. if (currentTime > timeLeft) diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestCharacterCreate.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestCharacterCreate.java index a707ce5..d247e2e 100644 +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestCharacterCreate.java if (Config.ALLOW_FISH_CHAMPIONSHIP) FishingChampionshipManager.getInstance(); + if (Config.ENABLE_STARTUP) + StartupManager.getInstance(); diff --git a/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminMaintenance.java b/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminMaintenance.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminMaintenance.java if (!st.hasMoreTokens()) { sendHtmlForm(player); return; } try { switch (st.nextToken()) { case "shutdown": + SoloZoneTaskManager exitTask = new SoloZoneTaskManager(); + ThreadPool.schedule(exitTask, 0); Shutdown.getInstance().startShutdown(player, null, Integer.parseInt(st.nextToken()), false); break; case "restart": + exitTask = new SoloZoneTaskManager(); + ThreadPool.schedule(exitTask, 0); Shutdown.getInstance().startShutdown(player, null, Integer.parseInt(st.nextToken()), true); break; case "abort": Shutdown.getInstance().abort(player); break; diff --git a/java/net/sf/l2j/gameserver/handler/voicecommandhandlers/VoiceExitSoloZone.java b/java/net/sf/l2j/gameserver/handler/voicecommandhandlers/VoiceExitSoloZone.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/handler/voicecommandhandlers/VoiceExitSoloZone.java +package net.sf.l2j.gameserver.handler.voicecommandhandlers; + +import net.sf.l2j.commons.pool.ThreadPool; + +import net.sf.l2j.gameserver.enums.ZoneId; +import net.sf.l2j.gameserver.handler.IVoiceCommandHandler; +import net.sf.l2j.gameserver.model.actor.Player; +import net.sf.l2j.gameserver.model.location.Location; +import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; + +/** + * Handles the voice command for exiting the Solo Zone with delay and effects. + * + * @author MarGaZeaS + */ +public class VoiceExitSoloZone implements IVoiceCommandHandler +{ + private static final String[] VOICE_COMMANDS = + { + "exit" + }; + + // Default location to teleport players when exiting the Solo Zone + private static final Location EXIT_LOCATION = new Location(81318, 148064, -3464); // Replace with your desired coordinates + + // Προσθήκη της μεθόδου για να πάρουμε την τοποθεσία εξόδου + public static Location getExitLocation() { + return EXIT_LOCATION; + } + + @Override + public void useVoiceCommand(Player player, String command) + { + if (command.equalsIgnoreCase("exit")) + { + if (!player.isInsideZone(ZoneId.SOLO)) + { + player.sendMessage("You are not inside the Solo Zone."); + return; + } + + // Notify the player about the delay + player.sendMessage("You will be teleported out of the Solo Zone in 2 seconds."); + + // Cast skill effect (Skill ID: 2100, Level: 1) + player.broadcastPacket(new MagicSkillUse(player, player, 2100, 1, 2000, 0)); + + // Schedule the teleportation after a 2-second delay + ThreadPool.schedule(() -> { + // Teleport the player to the designated exit location + player.teleportTo(EXIT_LOCATION.getX(), EXIT_LOCATION.getY(), EXIT_LOCATION.getZ(), 0); + + // Inform the player + player.sendMessage("You have exited the Solo Zone."); + }, 2000); // Delay in milliseconds (2000ms = 2 seconds) + } + } + + @Override + public String[] getVoiceCommandList() + { + return VOICE_COMMANDS; + } +} diff --git a/java/net/sf/l2j/gameserver/handler/VoiceCommandHandler.java b/java/net/sf/l2j/gameserver/handler/VoiceCommandHandler.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/handler/VoiceCommandHandler.java public class VoiceCommandHandler { private final Map<String, IVoiceCommandHandler> _entries = new HashMap<>(); protected VoiceCommandHandler() { ............ ............ + registerHandler(new VoiceExitSoloZone()); } public void registerHandler(IVoiceCommandHandler handler) { for (String command : handler.getVoiceCommandList()) _entries.put(command, handler); } diff --git a/java/net/sf/l2j/gameserver/model/actor/Npc.java b/java/net/sf/l2j/gameserver/model/actor/Npc.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/model/actor/Npc.java else if (command.startsWith("Chat")) { int val = 0; try { val = Integer.parseInt(command.substring(5)); } catch (final IndexOutOfBoundsException ioobe) { } catch (final NumberFormatException nfe) { } showChatWindow(player, val); + ) + else if (command.startsWith("solopvp")) + { + SoloZoneTaskManager.getInstance(); + player.teleportTo(SoloZoneTaskManager.getCurrentZone().getLoc(), 25); + } else if (command.startsWith("Link")) { final String path = command.substring(5).trim(); if (path.indexOf("..") != -1) return; final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/" + path); html.replace("%objectId%", getObjectId()); player.sendPacket(html); } diff --git a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestartPoint.java b/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestartPoint.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestartPoint.java // Fixed. - else if (_requestType == 4) - { - if (!player.isGM() && !player.isFestivalParticipant()) - return; - - loc = player.getPosition(); - } + if (_requestType == 4) + { + // Έλεγχος αν ο παίκτης δεν είναι GM, δεν είναι μέρος του φεστιβάλ και δεν είναι στην Solo Zone + if (!player.isGM() && !player.isFestivalParticipant() && !player.isInsideZone(ZoneId.SOLO)) + { + return; + } + + SoloZoneTaskManager.getInstance(); + SoloZone currentZone = SoloZoneTaskManager.getCurrentZone(); + if (currentZone != null && currentZone.getLoc() != null) + { + // Αν υπάρχει ζώνη και οι τοποθεσίες δεν είναι κενές, χρησιμοποιούμε τυχαία τοποθεσία από την ζώνη + loc = currentZone.getLoc(); + } else + { + // Διαφορετικά, κάνουμε respawn στην τρέχουσα θέση του παίκτη + loc = player.getPosition(); + } + } diff --git a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java b/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java if (player.isFestivalParticipant() && FestivalOfDarknessManager.getInstance().isFestivalInitialized()) { player.sendPacket(SystemMessageId.NO_RESTART_HERE); sendPacket(RestartResponse.valueOf(false)); return; } + if (player.isInsideZone(ZoneId.SOLO)) + { + player.sendMessage("You cannot restart your character while in Solo Zone. Use .exit to leave"); + player.setFakeName(null); + sendPacket(RestartResponse.valueOf(false)); + return; + } player.removeFromBossZone(); diff --git a/java/net/sf/l2j/gameserver/network/clientpackets/Logout.java b/java/net/sf/l2j/gameserver/network/clientpackets/Logout.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/Logout.java player.removeFromBossZone(); player.logout(true); } } + + if (player.isInsideZone(ZoneId.SOLO)) + { + player.sendMessage("You cannot logout or restart your character while in Solo Zone. Use .exit to leave"); + player.setFakeName(null); + player.sendPacket(ActionFailed.STATIC_PACKET); + return; + } + player.removeFromBossZone(); player.logout(true); } } diff --git a/java/net/sf/l2j/gameserver/model/zone/type/SoloZone.java b/java/net/sf/l2j/gameserver/model/zone/type/SoloZone.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/model/zone/type/SoloZone.java +package net.sf.l2j.gameserver.model.zone.type; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import net.sf.l2j.commons.random.Rnd; + +import net.sf.l2j.Config; +import net.sf.l2j.gameserver.enums.MessageType; +import net.sf.l2j.gameserver.enums.ZoneId; +import net.sf.l2j.gameserver.handler.voicecommandhandlers.VoiceExitSoloZone; +import net.sf.l2j.gameserver.model.World; +import net.sf.l2j.gameserver.model.actor.Creature; +import net.sf.l2j.gameserver.model.actor.Player; +import net.sf.l2j.gameserver.model.location.Location; +import net.sf.l2j.gameserver.model.zone.type.subtype.ZoneType; +import net.sf.l2j.gameserver.network.SystemMessageId; +import net.sf.l2j.gameserver.network.serverpackets.EtcStatusUpdate; +import net.sf.l2j.gameserver.taskmanager.PvpFlagTaskManager; +import net.sf.l2j.gameserver.taskmanager.SoloZoneTaskManager; + +/** + * @author MarGaZeaS + * + */ +public class SoloZone extends ZoneType +{ + private String _name; + private List<Location> _locations = new ArrayList<>(); + + public SoloZone(int id) + { + super(id); + } + + @Override + public void setParameter(String name, String value) + { + if (name.equals("name")) + _name = value; + else if (name.equals("locs")) + { + for (String locs : value.split(";")) + { + String[] coordinates = locs.split(","); + if (coordinates.length == 3) + { + int x = Integer.parseInt(coordinates[0]); + int y = Integer.parseInt(coordinates[1]); + int z = Integer.parseInt(coordinates[2]); + _locations.add(new Location(x, y, z)); + } + else + { + LOGGER.warn("Invalid location format: " + locs); + } + } + } + } + + + @Override + protected void onEnter(Creature character) + { + if (character instanceof Player) + { + final Player player = (Player) character; + + if ((player.getClassId().getId() == 15 || player.getClassId().getId() == 16 || player.getClassId().getId() == 97)) + { + Location respawnLocation = VoiceExitSoloZone.getExitLocation(); + player.instantTeleportTo(respawnLocation, 20); + player.sendMessage("Your class is not allowed in this zone."); + return; + } + + String randomName = SoloZoneTaskManager.getInstance().getAName(); + if (randomName == null || randomName.isEmpty() || !isValidName(randomName)) + { + randomName = generateRandomName(); + } + if (isNameAlreadyTaken(randomName)) + { + randomName = generateRandomName(); + } + player.setFakeName(randomName); + player.sendMessage("Welcome to the Solo Zone, your random name is: " + randomName); + player.sendPacket(SystemMessageId.ENTERED_COMBAT_ZONE); + character.setInsideZone(ZoneId.SOLO, true); + character.setInsideZone(ZoneId.NO_STORE, true); + character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, true); + + if (player.getParty() != null) + { + player.getParty().removePartyMember(player, MessageType.DISCONNECTED); + } + + if (player.getPvpFlag() > 0) + PvpFlagTaskManager.getInstance().remove(player, true); + + player.updatePvPStatus(); + player.broadcastUserInfo(); + } + } + + private static boolean isValidName(String name) { + return name.matches("[a-zA-Z0-9_]+"); + } + + private static String generateRandomName() { + Random rand = new Random(); + int nameLength = rand.nextInt(12) + 4; + StringBuilder nameBuilder = new StringBuilder(); + + for (int i = 0; i < nameLength; i++) { + char randomChar = (char) (rand.nextInt(26) + 'a'); + nameBuilder.append(randomChar); + } + + return nameBuilder.toString(); + } + + private static boolean isNameAlreadyTaken(String name) { + return World.getInstance().getPlayers().stream().anyMatch(player -> player.getFakeName().equals(name)); + } + + @Override + protected void onExit(Creature character) + { + character.setInsideZone(ZoneId.SOLO, false); // Solo zone + character.setInsideZone(ZoneId.NO_STORE, false); // Allow making a store + character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, false); // Allow summon + + if (character instanceof Player) + { + final Player player = (Player) character; + + if (player.getFakeName() != null) + { + player.setFakeName(null); + } + + player.sendPacket(SystemMessageId.LEFT_COMBAT_ZONE); + { + if(!player.isInObserverMode() && player.getPvpFlag() > 0) + PvpFlagTaskManager.getInstance().add(player, Config.PVP_NORMAL_TIME); + + player.sendPacket(new EtcStatusUpdate(player)); + player.broadcastUserInfo(); + } + } + } + + public String getName() + { + return _name; + } + + public Location getLoc() + { + if (_locations.isEmpty()) + { + return null; // Αν η λίστα είναι κενή, επιστρέφουμε null + } + return _locations.get(Rnd.get(0, _locations.size() - 1)); // Επιλέγουμε τυχαία τοποθεσία + } +} diff --git a/java/net/sf/l2j/gameserver/GameServer.java b/java/net/sf/l2j/gameserver/GameServer.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/GameServer.java if (Config.ALLOW_FISH_CHAMPIONSHIP) FishingChampionshipManager.getInstance(); + StringUtil.printSection("Custom Features"); + SoloZoneTaskManager.getInstance(); StringUtil.printSection("Handlers"); LOGGER.info("Loaded {} admin command handlers.", AdminCommandHandler.getInstance().size()); diff --git a/java/net/sf/l2j/gameserver/GameServer.java b/java/net/sf/l2j/gameserver/Shutdown.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/Shutdown.java // disconnect players try { disconnectAllPlayers(); LOGGER.info("All players have been disconnected."); } catch (Exception e) { // Silent catch. } + // Restore real names for players in SoloZone + restoreRealNamesInSoloZone(); // stop all threadpolls ThreadPool.shutdown(); try { LoginServerThread.getInstance().interrupt(); } catch (Exception e) { // Silent catch. } // avoids new players from logging in if (_secondsShut <= 60 && LoginServerThread.getInstance().getServerType() != ServerType.DOWN) LoginServerThread.getInstance().setServerType(ServerType.DOWN); _secondsShut--; Thread.sleep(1000); } } catch (InterruptedException e) { } } + // This method restores the real names of players in SoloZone + private static void restoreRealNamesInSoloZone() + { + for (Player player : World.getInstance().getPlayers()) + { + // Check if player is inside the SoloZone + if (player.isInsideZone(ZoneId.SOLO)) + { + // Restore the real name by removing the fake name + if (player.getFakeName() != null) + { + player.setFakeName(null); // Restore the real name + LOGGER.info("Player {}'s fake name has been removed and real name restored.", player.getName()); + } + } + } + } private static void sendServerQuit(int seconds) { World.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_SERVER_WILL_BE_COMING_DOWN_IN_S1_SECONDS).addNumber(seconds)); } diff --git a/java/net/sf/l2j/gameserver/enums/ZoneId.java b/java/net/sf/l2j/gameserver/enums/ZoneId.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/enums/ZoneId.java public enum ZoneId { PVP(0), PEACE(1), SIEGE(2), MOTHER_TREE(3), CLAN_HALL(4), NO_LANDING(5), WATER(6), JAIL(7), MONSTER_TRACK(8), CASTLE(9), SWAMP(10), NO_SUMMON_FRIEND(11), NO_STORE(12), TOWN(13), HQ(14), DANGER_AREA(15), CAST_ON_ARTIFACT(16), NO_RESTART(17), SCRIPT(18), - BOSS(19), + BOSS(19), + SOLO(20); private final int _id; private ZoneId(int id) { _id = id; } diff --git a/java/net/sf/l2j/gameserver/network/serverpackets/Die.java b/java/net/sf/l2j/gameserver/network/serverpackets/Die.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/serverpackets/Die.java if (creature instanceof Player) { Player player = (Player) creature; - _allowFixedRes = player.getAccessLevel().allowFixedRes(); + _allowFixedRes = player.getAccessLevel().allowFixedRes() || player.isInsideZone(ZoneId.SOLO); _clan = player.getClan(); } diff --git a/java/net/sf/l2j/gameserver/model/actor/Player.java b/java/net/sf/l2j/gameserver//model/actor/Player.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java // Attacker or spectator logging into a siege zone will be ported at town. if (player.isInsideZone(ZoneId.SIEGE) && player.getSiegeState() < 2) player.teleportTo(TeleportType.TOWN); + if (player.isInsideZone(ZoneId.SOLO)) + { + ThreadPool.schedule(() -> { + Location exitLocation = VoiceExitSoloZone.getExitLocation(); + + if (exitLocation != null) + { + player.teleportTo(exitLocation.getX(), exitLocation.getY(), exitLocation.getZ(), 0); + player.sendMessage("You have been moved to the exit of the SoloZone."); + } + }, 5000); // 5000 milliseconds (5sec) + } diff --git a/java/net/sf/l2j/gameserver/model/actor/Player.java b/java/net/sf/l2j/gameserver/model/actor/Player.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/model/actor/Player.java @Override public void doRevive() { super.doRevive(); stopEffects(EffectType.CHARM_OF_COURAGE); sendPacket(new EtcStatusUpdate(this)); getStatus().setCpHpMp(getStatus().getMaxCp(), getStatus().getMaxHp(), getStatus().getMaxMp()); _reviveRequested = 0; _revivePower = 0; if (isMounted()) startFeed(_mountNpcId); + if (isInsideZone(ZoneId.SOLO)) + { + // Give Nobless (1323 ID) + L2Skill no = SkillTable.getInstance().getInfo(1323, 1); + no.getEffects(this, this); + sendMessage("You have received the Nobless status in the Solo Zone."); + } + }   If anyone thinks the code is wrong, please make an update and upload it here so I can update the post. A part was edited with chatgpt
    • Always remember, when you buy files, just compare with my files that I publish for free. and you will know that you are being ripped off. Greetings to all community!!! 🙂
  • Topics

×
×
  • Create New...