Jump to content

nazghoul.........


Recommended Posts

Posted

Nazghoul oraio to signature sou re...  !!!

Ta spaei... etc mono aksia mou dineis me kaneis diasimo  8) 

 

Ntaksi more... dn ta kataferes na me diokseiS akoma...

Prospa8ise akoma ligo...

To 8es toso poli alla dn 8a sou kanw tin xari...  :-*

 

Meta me lene oi alloi giati maloneis sinexeia ??

meta pos na min arxiso xristopanagies ? mou les ?

 

An to ka8e moraki edo mesa dn exei ti na kanei  kai asxoleite me ILi8iotites..dn ftaio ego...

Sta kala ka8oumena petas kai sto signature tin malakia sou... etc...

Deite edo ti exei kanei ...

 

 

3-7.jpg

 

 

An einai dunaton ... Mono esy ta kaneis auta re...Toso zilia ? Toso tsouksimo ? Giati omws ?

 

Btw na kses kati ... Ama me les glufti proton na kses giati to les kai deyteron na kses ti simainei...

Trava rota ton maxtor kai 8a sou pei an eimai gluftis kai ti tou apantisa stin leksi uploader...

 

Aaaa kai kati allo.. dn mporw na paratiso tin sini8eia tis zois mou ??

Ego file oli mera ekso eimai dn ka8omai se ena forum kai psaxno aformes na dimiourgo fasaries...

Apla goustaro poli auto to forum... (glipsimooo pali eides ? :P pali eglipsaaa hehe  ) kai otan girnao apo ekso h exo free time 8elw na vlepw new posts pou exoun ginei ... ...

 

Pare kai mia foto apo emena pou armozei stin ilikia sou..

 

AFIEROMENO RE PSILE GIA PARTY S ANTI NA KOITAS TON KATHREPTI KOITA AUTIN TIN PIC !  :-*

 

BabyFinger.jpg

 

Kali prospa8eia ekanes kai autin tin fora alla.... -->  FAILED !  :'(

 

 

Posted

Heh ax ax ax ti na pw? to singature m pros apantisi Tou agapitou Notbastard tCp failed dn egine Pouthena esu apantises kai en meri asxolithikes na grapseis olo auto to katevato. o kathenas vazei oti thelei gia signature kai gia ta alla twra esu anigeis topics etc etc etc etc xwris lOgo, uparxoun ta pm veveos alla daksi isws dn exeis toso Ipsilo IQ na to skeuteis!! oso auto gia tin prosopiki zwh kalutera teriazi se sena gt emena dn me velpeis oLoi mera edw dn me vlepeis na ftiaxnw sinexia banner/gif eikOnitses kai oti nane gia mxc maresi to forum ews ena simio dn berdevoume to forum me tin prosopiki zwh alla esu ti na pw ta psiloberdepses m fenete. Souxa pei kateva aptin LiLIpoUpOli. Kai kati allo  zhlia giati na exw? tsouksimO gt? esena tsouZi p ftiaxneis topiC oude pote dn ekana topic gia parti s parolO p m tin espagan arketa topic kai vlepeis i andidrasi dn einai apo ena atomo alla apo arketa na elega pws exw emOnes egw. Ax stin eikOnitsa eisai si mikros?  kai koitazese ston kathreuti? heh ligo strava daxtila exeis! tCp dmn thelw na doso sinexia alla Min me tsiglas tsaba gt vrisies oLoi kseroun to thema einai an exeis tO prOterima na taponeis ton allon xwris vriseies kserw gw dn M to dixneis na to exeis. oSo gia ton maxtor kai tous uploader dn nomoizw na me afora kai dn me endiaferei o kathenas kanei oti thelei apla na min kseutilizei ton eauto tou mexri ena simio ola kala itan meta to psilo kseutilises (apopsi mou)!

 

 

P.S: Min petaxti kanas Notbastard etc etc dn exw diathesi na apantaw se Olous nomoizw eimoun katatopistikotatos. Se arkretous aresi to forum kai semena kai se allous auto dn simenei pws prepei na ftiaxnw signature sto maxcheaters pou na "diafimizei" to maxcheaters na to valeis se allo forum me gia kai me xara s. tCp elpizw na katalaves ti ithela na pw.

 

kala xristougenna se oLous mas!

Posted

Lalalalalla eisai off topic....

 

1.Pm's giati na sou kanw ???  afou kserw tis idies @@ries 8a mou peis kai edo kai ekei...

2.Pou kolane ta signatures pou ftiaxno ego me auto to 8ema ??

3.Me ayto to IQ ksekola ligo ok to eipes gelasame mia fora ftanei... :S

4.Anoigo topics etc xoris logo ??? Afou les malakies gia mena .. ti eimai mazoxas na min diamartiri8o......

5.An dn se aforouse to 8ema gia tous uploaders dn 8a evazes auto pou eipa sto signature kai dn 8a eleges oti glufo... ...

6.Kanw signatures gia to forum gia na pernaei h ora... Ase pou prepei na sou pw oti me ta signatures dn ginese gold member ;/ Mperdeuo tin zoi mou me to tis eikonitses ? etsi les  e ? Px an dn kanw kala mia eikonitsa paizei kai na klapso...

 

Loipon na po kai kati last ... Eipes kati gia tin ilikia mou ?? Nai... ontws eimai mikros kai pezw akoma l2 kai eimai se forum... ! Esy eisai pio megalos ? kai asxolise me l2 kai paixnidakia ? ? Nice ;)

 

Btw o skopos mou dn einai na se taposo o skopos mou einai na leo ta pragmata me to onoma tous kai na mi asxoleiste mazi mou xwris kapoia aitia.. Oi mods panta vlepoune ta threads mou kai dn exei pei kaneis tpt... Dior8ose me an eimai la8os ... :S

 

BBz... pao na etoimasto gia na fygo gonidi ... !  :-*

 

Katse esy edo kai vres kamia kainourgia aformi na valeis kanena keimenaki sto signature sou ;)

 

dn exw oreksi na malono.. pes oti 8es dn me endiaferei............

Eksalou just a forum...  Just a nick name !

Kai an dn zorizosouna dn 8a eixes autin tin malakia sto signature sou...

 

 

Ciao... mERRY CHRISTMAS...

Posted

affff ti na pw re karma i dn kses na diavazeis i dn katalaveneis auta p diavazeis. Hlikia m 17 dn nOmoizw eimai eleina megalos. btw sto topic m dn htan tpt oFF toPic apla esu dn katalavenes to Noima tous pragma pou paei To IQ s off planet. kai l2 pezw giati maresi oxi gia an tin dw epivitoras mesa se mia othoni opos to exeis pistepsei esu stadar tha kikloforis me kana bow ston dropo. kai na to KleiSoume to thema gt katanta kourastiko otana apeuthinese ston allon kai dn pernei auta p tou les signature m 30 sec upothesi etsi giati m EPESE TO INTERNET KAI DN EIXA TI NA KANW (ox ox ox kati m thimizei auto ?) tCp diavase ti s eipa katanoise auta p s eipa anikse kana leksiko stin anagi i aniothila dn einai dropi kai meta des ti apantises.  kai ayto me to just a forum gia perisilogisou ti simenei gt to les alla dn to emfarmozeis btw 6oTEE exei partaki fever perna kamia volta ama einai epivitora m esu.

Posted

8es na sou pw pos arxise ?  :S

 

Dn uparxei oute arxi oute telos... me to nazghoul dn eixame malosei pote....

Ola arxisan apo edw....

http://www.maxcheaters.com/forum/index.php?topic=14297.0

 

Giati omws to ekane auto ? ego ti ton peiraksa ? :S

Oute mod einai oute gold gia na krinei an prepei na kanw polla topics kai ti periexoun mesa...

Nomizo oi mod einai active kai vlepoun ti ginete opote mporousan na me kanoun kapio warning h akoma kai na me kanoun -1...

 

Ego dn eftaiga ti na po....

 

Meta to pragma sinexistike me ton thanos123 ekana ena topic me name "How did u fing mxC " Dld apo to google ?? apo kapoion filo ?

Kai me leei oti glifo .. me auto to topic pou ekana... Kai egine fasaria oxi me ton nazghoul me ton thano123 kai eipa oti dn 8a ksanaer8o forum ... Alla apofasisa na meino epeidi goustaro na vlepw ti ginete :P

 

Kai vlepw ex8es ton nazghoul sto signature tou na exei autin tin mlkia kai me peirakse....

 

Etsi loipon arxisan ola ... :S

 

Me liga logia gia malakies kai mono ... gia anirpaktous logous...

 

Tespa dn aksizei na asxoli8o allo... Aston na koroideuei dn peirazei......

 

Lock an 8es..... h ama 8es aston na doume pou 8a paei...

 

 

Posted

Poooooo re gmt ti na pw dn katanois ti s lene allios dn eksigite >.< kane ena test IQ xwris plaka pote dn kses! Maxtor egw dn exw na sizitisw tpt pantos me ton karma otan dn katanoei ti tou grafeis h dn katalavenei auta p diavazei  dialogos dn ginete. tCp as kanei oti thelei dn asxoloume tsaba grapsimo oxi tpt allo. Oso gia to "aston na doume poutha paei" tosos salos ginete aposena oxi apomena, souxa pei upaxoun ta pm. alla daksi ama Dn niotheis oute se auto to thema... fantazese na ekana egw h opoios dipote allos topic opote mas tin espage ena share s i genika kati? thaxame gemisei olo me topic xwris ouSia. kai opos ksana eipa kai panw dn Egine mono apomena na les pws exw emoNes alla daksi ti na peis.

(oti grafw twra einai ta idia me ta poio panw posts apla sta ksana grapsw bas kai katalaveis an kai dn to vlepw isws me ta xristougenna ginei kana thavma telika pote dn kses).

Posted

Pwww exw xasei episodeia! Dyo meres elipsa kai to kanate rimadio :P

 

we are a family here and we need to help each other not to make him feel bad...

 

HREMA OREEEEE

 

Ti einai auta twra? Gt to xalasate to forum? Mia xara htan, giati arxisate tis istories peri gleipsimatos? Stop twra plz... Gt to forum sto telos den 8a vlepete !

Posted

Auto leo kai ego auta pou grafeis pio pano einai oi idies @@ries pou grafeis pantou... Dld oti na nai...

 

Tespa ena lock gt ta @@ mas exoun fouskosei...........

 

Kai btw auto me to IQ kopsto ligo... ema8es mia leksi ok iremise...

Kai oso  gia ta xristougena kai ego sou euxomai na peraseis ta psixologika sou mazi mou kai na sou fygei auti h emoni...

Posted

Egw pali 8a kanw 1 erwtisi...

 

Pios o logos na tsakwneste sa mikra pedakia gia kati pou dn einai KAN pragmatiko.Ennow einai ena aplo forum kai dn yparxei logos na xalame ti zaxarenia mas gia logous,8ou kyrie, "glypsimatos" .

 

Sas parakalw...elate sta sigala sas....

Auta apo mena.

Posted

Loipon apo ena warning ston kathena apo esas...Nazghoul gt ipirxan polles prosvoles pros ton k4rm4 kai den eimaste se xwro pou allhlovrizomaste....sevastite ton xwro ston opoio vriskeste kai ta atoma....kai k4rma ena warning gt to sinexises to thema me ta post apantisis pros nazghoul....ean dw oti sinexisete na postarete sto thread tha ksekinisoun -1 kai gia tous duo sas....kai elpizw na min ftasoume se auto to simeio....

 

Kales Giortes kai kala na pernate...

To topic den to kleino stin periptwsi pou theli na simplirwsi kati o maxtor...

Posted

alles epoxes ta -1 epeftan katey8eian xwris warnings...gi auto na eiste eyxaristimenoi... ;)

 

 

 

 

 

 

 

 

 

 

(enas palios user...)

Posted

alles epoxes ta -1 epeftan katey8eian xwris warnings...gi auto na eiste eyxaristimenoi... ;)

 

 

 

 

 

 

 

 

 

 

(enas palios user...)

Efaga idi ego -1 min anisixeis ;)

Posted

alles epoxes ta -1 epeftan katey8eian xwris warnings...gi auto na eiste eyxaristimenoi... ;)

 

 

 

 

 

 

 

 

 

 

 

(enas palios user...)

edw den epesan kateuthian gt kai oi 2 users einai palioi users kai elpizw na katalavenoun apo logia!Den eimaste paidiki xara edw..
Guest
This topic is now closed to further replies.


  • 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...