Jump to content

[Share] scripts quest kai alla edw-ananewmeno


Recommended Posts

  • 3 weeks later...
  • 2 weeks later...
Posted

EVALA AYTO TO SCRIPT GIA ADENA K DOULEVI KALA ALA SE SERVER x 7 DINI MONO 5500a K SERVER x 3 MONO 3000

SE GRACIA

///////REQUIRES/////

/LVL20 ASSASIN /

/STRENGTHENED LONGBOW/

/BRONZE BREASTPLATE/

/HARD LEATHER HELMET/

/BRONZE GAITERS //

//BRACER/

 

 

 

 

 

SET(FIGHTSTOP)

 

MSG( QUEST SCRIPT FOR DE VILLAGE)

 

 

DELAY(2000)

MSG(LETS START WORKING)

DELAY(2000)

CALL(deadcheck)

MSG( WHERE AM I ? )

 

LABEL(LOCATOR)

 

LABEL(LOCATOR)

MSG(CHEcKING SPOT LIST)

POSINRANGE(-56532,78321,-2960,3000)

{

MSG( I HOPE YOU HAVE STARTED THE QUEST ALREADY?)

MOVETO(-56532,78321,-2960)

JMP(STARTFIGHT)

}

 

POSINRANGE(11902,15754,-4552,500)

{

MSG( BEEN BUYING STUFF, EYY! )

 

JMP(SELLJUNK)

}

 

POSINRANGE(12295,15002,-4568,500)

{

MOVETO(12295,15002,-4568)

JMP(QUESTSTART)

}

 

 

 

MSG(YOU ARENT CLOSE ENOUGH TO EITHER QUEST START, SHOP OR SPAWN POINT..

)

 

EXIT()

 

LABEL(QUESTSTART)

 

CALL(SPOTANDLEVEL)

 

NPCSEL(Astaron)

DELAY(200)

NPCDLG(Astaron)

DELAY(200)

 

DLGSEL(Quest)

DELAY(300)

DLGSEL(Say you will help)

 

DELAY(200)

 

LABEL(GOHUNT)

LABEL(huntnext1)

MOVETO(12451,16472,-4584)

PosOutRange(12451,16472,-4584,300)

{

DELAY(200)

JMP(huntnext)

}

LABEL(huntnext2)

MOVETO(12101,16714,-4584)

PosOutRange(12101,16714,-4584,600)

{

DELAY(200)

JMP(huntnext2)

}

 

NPCSEL(Newbie Guide)

DELAY(2000)

NPCDLG(Newbie Guide)

DELAY(200)

 

DLGSEL(Get help from the assist magic.)

 

DELAY(7000)

 

LABEL(huntnext3)

MOVETO(11348,16969,-4656)

PosOutRange(11348,16969,-4656,600)

{

DELAY(200)

JMP(huntnext3)

}

LABEL(huntnext4)

MOVETO(10174,16742,-4584)

PosOutRange(10174,16742,-4584,600)

{

DELAY(200)

JMP(huntnext4)

}

LABEL(huntnext5)

MOVETO(9705,15631,-4568)

PosOutRange(9705,15631,-4568,600)

{

DELAY(200)

JMP(huntnext5)

}

 

LABEL(Jasmine)

DELAY(4000)

MSG(Selecting Jasmine)

NPCSEL(Jasmine)

DELAY(200)

NPCDLG(Jasmine)

DELAY(1000)

 

DLGSEL(Teleport)

 

DELAY(1000)

 

DELAY(1000)

 

DLGSEL(Spider Nest)

 

DELAY(10000)

 

 

 

LABEL(STARTFIGHT)

SET(FIGHTSTART)

LABEL(FIGHT)

 

CHARSTATUS(HP,>,90)

{

ChangeWaitType(1)

}

 

 

DELAY(1000)

 

CALL(deadcheck)

 

 

DELAY(1000)

CALL(CHECKQUESTITEM)

 

JMP(STARTFIGHT)

 

///////////////////////// QUEST ///////////////////////////

 

LABEL(CHECKQUESTITEM)

 

ITEMCOUNT(Venom Sac[iD=1077],>=,10)

{

JMP(GOBACK)

}

 

LABEL(soulshot)

ITEMCOUNT(Bone Arrow[iD=1341],<=,259)

{

JMP(GOBACK)

}

 

RETURN()

 

LABEL(HPOK)

CHARSTATUS(HP,>,90)

{

SET(FIGHTSTOP)

ChangeWaitType(1)

DELAY(2000)

JMP(GOBACK)

}

CALL(deadcheck)

JMP(CHECKQUESTITEM)

/////////////////////////////// utilities ////////////////////////////////////

 

/////////////////////////// DEADCHECK //////////////////////////

 

LABEL(deadcheck)

CharStatus(HP,==,0)

{

SET(FIGHTSTOP)

MSG(You died, funeral services will be held tomorrow at 3pm)

MSG(Donations for the dead botters fund will be accepted at the service)

GOHOME()

DELAY(15000)

SET(FIGHTSTOP)

JMP(BACK1)

}

RETURN()

 

 

LABEL(SPOTANDLEVEL)

CHARSTATUS(LV,>=,23)

{

SET(FIGHTSTOP)

DELAY(2000)

JMP(DELEVEL)

}

RETURN()

 

 

LABEL(GOBACK)

SET(FIGHTSTOP)

 

 

Delay(1000)

Set(RANGETYPE,STARTPOS,1)

USEITEM(Lesser Healing Potion[iD=1060])

Set(FIGHTSTART)

Label(CheckStatus)

CharStatus(HP,<,100)

{

Delay(1000)

Jmp(CheckStatus)

}

Set(FIGHTSTOP)

Delay(500)

Set(RANGETYPE,STARTPOS,4000)

 

 

ChangeWaitType(1)

DELAY(1000)

ChangeWaitType(1)

 

MSG(Scrolling now!)

USEITEM(Scroll Of Escape[iD=736])

{

DELAY(20000)

JMP(BACK1)

}

JMP(GOBACK)

 

LABEL(BACK1)

MOVETO(11426,17042,-4656)

POSINRANGE(11426,17042,-4656,900)

{

DELAY(3000)

JMP(BACK3)

}

JMP(GOBACK)

 

LABEL(BACK3)

set(fightstart)

delay(1000)

set(fightstop)

delay(5000)

MOVETO(11426,17042,-4656)

POSINRANGE(11426,17042,-4656,900)

{

DELAY(3000)

JMP(BACK2)

}

JMP(GOBACK)

 

LABEL(BACK2)

 

MOVETO(11426,17042,-4656)

POSOUTRANGE(11426,17042,-4656,300)

{

DELAY(500)

JMP(GOBACK)

}

MOVETO(11730,16084,-4560)

POSOUTRANGE(11730,16084,-4560,300)

{

DELAY(500)

JMP(BACK2)

}

 

LABEL(BACK3)

MOVETO(11902,15754,-4552)

POSOUTRANGE(11902,15754,-4552,300)

{

DELAY(5000

JMP(BACK3)

}

 

LABEL(VENDOR)

POSINRANGE(11902,15754,-4552,300)

{

JMP(SELLJUNK)

DELAY(500)

}

DELAY(500)

JMP(VENDOR)

 

LABEL(TOQUEST)

MOVETO(11856,15757,-4552)

MOVETO(11505,15407,-4568)

MOVETO(12295,15002,-4568)

 

DELAY(3000)

NPCSEL(Astaron)

DELAY(200)

NPCDLG(Astaron)

DELAY(200)

 

DLGSEL(Quest)

DELAY(2000)

 

 

JMP(QUESTSTART)

 

//////////////////////////////////  BUY NEW STUFF  /////////////////////////////////////////

 

LABEL(ITEMCHECK)

ITEMCOUNT(Scroll of Escape[iD=736],<=,3)

{

DELAY(2000)

MSG(You only have 3 SoE left, you should have 4)

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(800)

DLGSEL(Buy)

MSG(PURCHASING 5 SOES)

BUYITEM(Scroll of Escape[iD=736],5)

 

DELAY(2000)

}

 

LABEL(HEALCHECKPOT)

ITEMCOUNT(Lesser Healing Potion[iD=1060],<=,9)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(800)

DLGSEL(Buy)

MSG(BUYING 10 HEAL POTS)

BUYITEM(Lesser Healing Potion[iD=1060],10)

DELAY(2000)

 

 

}

LABEL(soulshot)

ITEMCOUNT(Bone Arrow[iD=1341],<=,509)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(800)

DLGSEL(Buy)

MSG(BUYING 10 HEAL POTS)

BUYITEM(Bone Arrow[iD=1341],500)

DELAY(2000)

}

 

LABEL(antidote)

ITEMCOUNT(Antidote[iD=1831],<=,20)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(800)

DLGSEL(Buy)

MSG(BUYING 10 HEAL POTS)

BUYITEM(Antidote[iD=1831],20)

DELAY(2000)

}

 

 

 

JMP(TOQUEST)

 

////////////////////////// SELL JUNK ////////////////////////////////////

LABEL(SELLJUNK)

LABEL(sell)

DELAY(150)

ITEMCOUNT(Conjuror's Staff Head[iD=2023],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(150)

SELLITEM(Conjuror's Staff Head[iD=2023],1)

DELAY(150)

JMP(sell)

}

 

LABEL(sell2)

ITEMCOUNT(Elven Bow Shaft[iD=2024],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(150)

SELLITEM(Elven Bow Shaft[iD=2024],1)

DELAY(150)

JMP(sell2)

}

 

LABEL(sell3)

ITEMCOUNT(Leather Tunic[iD=1796],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(150)

SELLITEM(Leather Tunic[iD=1796],1)

DELAY(150)

JMP(sell3)

}

 

 

LABEL(sell8)

ITEMCOUNT(Leather Pants[iD=29],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(150)

SELLITEM(Leather Pants[iD=29],1)

DELAY(150)

JMP(sell8)

}

 

LABEL(sell10)

ITEMCOUNT(Apprentice's Shoes[iD=1121] ,>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(150)

SELLITEM(Apprentice's Shoes[iD=1121] ,1)

DELAY(150)

JMP(sell10)

}

LABEL(sell11)

ITEMCOUNT(Cloth Shoes[iD=35],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(150)

SELLITEM(Cloth Shoes[iD=35],1)

DELAY(150)

JMP(sell11)

}

LABEL(sell12)

ITEMCOUNT(Recipe: Broad Sword[iD=1786],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(150)

SELLITEM(Recipe: Broad Sword[iD=1786],1)

DELAY(150)

JMP(sell12)

}

 

 

 

 

 

 

LABEL(sell14)

ITEMCOUNT(Recipe: Bow [iD=1788],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(150)

SELLITEM(Recipe: Bow [iD=1788],1)

DELAY(150)

JMP(sell14)

}

 

 

 

 

 

 

LABEL(sell16)

ITEMCOUNT(Short Gloves[iD=48] ,>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(150)

SELLITEM(Short Gloves[iD=48] ,1)

DELAY(150)

JMP(sell16)

}

LABEL(sell17)

ITEMCOUNT(Cloth Cap[iD=41],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(150)

SELLITEM(Cloth Cap[iD=41],1)

DELAY(120)

JMP(sell17)

}

LABEL(sell18)

ITEMCOUNT(Leather Cap[iD=42],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Leather Cap[iD=42],1)

DELAY(120)

JMP(sell18)

}

LABEL(sell19)

ITEMCOUNT(Leather Shirt[iD=22] ,>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Leather Shirt[iD=22] ,1)

DELAY(120)

JMP(sell19)

}

LABEL(sell20)

ITEMCOUNT(Leather Shield[iD=18],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Leather Shield[iD=18],1)

DELAY(120)

JMP(sell20)

}

LABEL(sell21)

ITEMCOUNT(Leather Sandals[iD=36],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Leather Sandals[iD=36],1)

DELAY(120)

JMP(sell21)

}

LABEL(sell22)

ITEMCOUNT(Magic Ring[iD=116],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Magic Ring[iD=116],1)

DELAY(120)

JMP(sell22)

}

LABEL(sell22)

ITEMCOUNT(Necklace of Magic[iD=118],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Necklace of Magic[iD=118],1)

DELAY(120)

JMP(sell22)

}

LABEL(sell23)

ITEMCOUNT(Buffalo's Horn[iD=308],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Buffalo's Horn[iD=308],1)

DELAY(120)

JMP(sell23)

}

LABEL(sell24)

ITEMCOUNT(Apprentice's Earring[iD=112],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Apprentice's Earring[iD=112],1)

DELAY(120)

JMP(sell24)

}

LABEL(sell25)

ITEMCOUNT(Cotton Shoes[iD=1122],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Cotton Shoes[iD=1122],1)

DELAY(120)

JMP(sell25)

}

LABEL(sell26)

ITEMCOUNT(Recipe: Wooden Arrow[iD=1666],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Recipe: Wooden Arrow[iD=1666],1)

DELAY(120)

JMP(sell26)

}

LABEL(sell27)

ITEMCOUNT(Leather Stocking Pattern[iD=1923],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Leather Stocking Pattern[iD=1923],1)

DELAY(120)

JMP(sell27)

}

LABEL(sell28)

ITEMCOUNT(Recipe: Synthetic Cokes[iD=2143],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Recipe: Synthetic Cokes[iD=2143],1)

DELAY(50)

JMP(sell28)

}

LABEL(sell29)

ITEMCOUNT(Recipe: Hard Leather Gaiters[iD=2174],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Recipe: Hard Leather Gaiters[iD=2174],1)

DELAY(120)

JMP(sell29)

}

LABEL(sell30)

ITEMCOUNT(Recipe: Greater Spiritshot (D) Compressed Package(100%)[iD=5273],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Recipe: Greater Spiritshot (D) Compressed Package(100%)[iD=5273],1)

DELAY(120)

JMP(sell30)

}

 

LABEL(sell37)

ITEMCOUNT(Magic Haste Potion[iD=6035],>=,1)

{

NPCSEL(Vollodos)

NPCDLG(Vollodos)

DELAY(150)

DLGSEL(Sell)

DELAY(120)

SELLITEM(Magic Haste Potion[iD=6035],1)

DELAY(120)

JMP(sell37)

}

 

Delay(1500)

MOVETO(12144,15953,-4581)

MOVETO(12472,15941,-4601)

MOVETO(13109,16240,-4611)

MOVETO(13565,16772,-4602)

MOVETO(13512,17100,-4601)

MOVETO(13540,17454,-4569)

MOVETO(13420,17462,-4569)

 

LABEL(ANIMALBONE)

ITEMCOUNT(Animal Bone[iD=1872],>=,1)

{

NPCSEL(Dorankus[iD=7139])

NPCDLG(Dorankus[iD=7139])

DLGSEL(Deposit Item (Private Warehouse))

SAVEITEM(Animal Bone[iD=1872],1)

Delay(250)

JMP(ANIMALBONE)

}

 

LABEL(IronOre)

ITEMCOUNT(Iron Ore[iD=1869],>=,1)

{

NPCSEL(Dorankus[iD=7139])

NPCDLG(Dorankus[iD=7139])

DLGSEL(Deposit Item (Private Warehouse))

SAVEITEM(Iron Ore[iD=1869],1)

Delay(250)

JMP(IronOre)

}

 

LABEL(AnimalSkin)

ITEMCOUNT(Animal Skin[iD=1867],>=,1)

{

NPCSEL(Dorankus[iD=7139])

NPCDLG(Dorankus[iD=7139])

DLGSEL(Deposit Item (Private Warehouse))

SAVEITEM(Animal Skin[iD=1867],1)

Delay(250)

JMP(AnimalSkin)

}

 

LABEL(Snugget)

ITEMCOUNT(Silver Nugget[iD=1873],>=,1)

{

NPCSEL(Dorankus[iD=7139])

NPCDLG(Dorankus[iD=7139])

DLGSEL(Deposit Item (Private Warehouse))

SAVEITEM(Silver Nugget[iD=1873],1)

Delay(250)

JMP(Snugget)

}

 

LABEL(Charcoal)

ITEMCOUNT(Charcoal[iD=1871],>=,1)

{

NPCSEL(Dorankus[iD=7139])

NPCDLG(Dorankus[iD=7139])

DLGSEL(Deposit Item (Private Warehouse))

SAVEITEM(Charcoal[iD=1871],1)

Delay(250)

JMP(Charcoal)

}

 

LABEL(Coal)

ITEMCOUNT(Coal[iD=1870],>=,1)

{

NPCSEL(Dorankus[iD=7139])

NPCDLG(Dorankus[iD=7139])

DLGSEL(Deposit Item (Private Warehouse))

SAVEITEM(Coal[iD=1870],1)

Delay(250)

JMP(Coal)

}

 

LABEL(Thread)

ITEMCOUNT(Thread[iD=1868],>=,1)

{

NPCSEL(Dorankus[iD=7139])

NPCDLG(Dorankus[iD=7139])

DLGSEL(Deposit Item (Private Warehouse))

SAVEITEM(Thread[iD=1868],1)

Delay(250)

JMP(Thread)

}

 

LABEL(Cestus)

ITEMCOUNT(Cestus[iD=256],>=,1)

{

NPCSEL(Dorankus[iD=7139])

NPCDLG(Dorankus[iD=7139])

DLGSEL(Deposit Item (Private Warehouse))

SAVEITEM(Cestus[iD=256],1)

Delay(250)

JMP(Cestus)

}

 

LABEL(Throwing)

ITEMCOUNT(Throwing Knife[iD=218],>=,1)

{

NPCSEL(Dorankus[iD=7139])

NPCDLG(Dorankus[iD=7139])

DLGSEL(Deposit Item (Private Warehouse))

SAVEITEM(Throwing Knife[iD=218],1)

Delay(250)

JMP(Throwing)

}

 

LABEL(Shining)

ITEMCOUNT(Shining Knife[iD=217],>=,1)

{

NPCSEL(Dorankus[iD=7139])

NPCDLG(Dorankus[iD=7139])

DLGSEL(Deposit Item (Private Warehouse))

SAVEITEM(Shining Knife[iD=217],1)

Delay(250)

JMP(Shining)

}

 

Delay(1500)

MOVETO(13544,17506,-4569)

MOVETO(13505,17025,-4601)

MOVETO(12778,16533,-4610)

MOVETO(12674,15925,-4601)

MOVETO(12089,15961,-4582)

MOVETO(11908,15794,-4581)

Dealy(1500)

 

JMP(ITEMCHECK)

 

 

 

 

  • 3 weeks later...
Posted

Οποιος εχει καποια Quest [Ενδιαφερομαι για 3 Quest Απο Elven Scout --> Silver ranger] ας μου στειλει καποιο Λινκ να τα κατεβασω...

  • 2 weeks later...
Guest
This topic is now closed to further replies.



  • Posts

    • what pack you use  send me on discord for it
    • package custom.events.RandomZoneEvent; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.concurrent.ScheduledFuture; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.commons.time.SchedulingPattern; import org.l2jmobius.commons.time.TimeUtil; import org.l2jmobius.commons.util.IXmlReader; import org.l2jmobius.gameserver.managers.ZoneManager; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.quest.Event; import org.l2jmobius.gameserver.model.zone.ZoneId; import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.type.RandomZone; import org.l2jmobius.gameserver.util.Broadcast; /** * Random Zone Event - Activates one random PvP zone temporarily. No modifica la clase de la zona: usa flags PvP en runtime. * @author Juan */ public class RandomZoneEvent extends Event { private static final String CONFIG_FILE = "data/scripts/custom/events/RandomZoneEvent/config.xml"; private static int EVENT_DURATION_MINUTES = 15; private static boolean _isActive = false; private ScheduledFuture<?> _eventTask = null; private final List<ZoneType> _availableZones = new ArrayList<>(); private ZoneType _activeZone = null; public RandomZoneEvent() { loadConfig(); loadZones(); registerZoneListeners(); } /** * Registra listeners a TODAS LAS ZONAS random */ private void registerZoneListeners() { for (ZoneType zone : _availableZones) { addEnterZoneId(zone.getId()); addExitZoneId(zone.getId()); LOGGER.info("[RandomZoneEvent] Registered listener for zone: " + zone.getName()); } } private void loadConfig() { new IXmlReader() { @Override public void load() { parseDatapackFile(CONFIG_FILE); } @Override public void parseDocument(Document doc, File file) { forEach(doc, "event", eventNode -> { final StatSet att = new StatSet(parseAttributes(eventNode)); final String name = att.getString("name"); for (Node node = eventNode.getFirstChild(); node != null; node = node.getNextSibling()) { if ("schedule".equals(node.getNodeName())) { final StatSet attributes = new StatSet(parseAttributes(node)); final String pattern = attributes.getString("pattern"); final SchedulingPattern schedulingPattern = new SchedulingPattern(pattern); final StatSet params = new StatSet(); params.set("Name", name); params.set("SchedulingPattern", pattern); final long delay = schedulingPattern.getDelayToNextFromNow(); getTimers().addTimer("Schedule_" + name, params, delay + 5000, null, null); LOGGER.info("[RandomZoneEvent] Event " + name + " scheduled at " + TimeUtil.getDateTimeString(System.currentTimeMillis() + delay)); } } }); } }.load(); } private void loadZones() { for (ZoneType zone : ZoneManager.getInstance().getAllZones(RandomZone.class)) { if ((zone.getName() != null) && zone.getName().toLowerCase().startsWith("random_zone")) { _availableZones.add(zone); LOGGER.info("[RandomZoneEvent] Loaded zone: " + zone.getName() + " (id=" + zone.getId() + ")"); } } LOGGER.info("[RandomZoneEvent] Total random zones loaded: " + _availableZones.size()); } @Override public void onTimerEvent(String event, StatSet params, Npc npc, Player player) { if (event.startsWith("Schedule_")) { eventStart(null); final SchedulingPattern schedulingPattern = new SchedulingPattern(params.getString("SchedulingPattern")); final long delay = schedulingPattern.getDelayToNextFromNow(); getTimers().addTimer(event, params, delay + 5000, null, null); LOGGER.info("[RandomZoneEvent] Rescheduled for " + TimeUtil.getDateTimeString(System.currentTimeMillis() + delay)); } } @Override public boolean eventStart(Player eventMaker) { if (_isActive) { if (eventMaker != null) { eventMaker.sendMessage("RandomZoneEvent already active."); } return false; } if (_availableZones.isEmpty()) { Broadcast.toAllOnlinePlayers("[RandomZoneEvent] No zones configured."); return false; } _isActive = true; Broadcast.toAllOnlinePlayers("⚔️ Random Zone Event has started!"); _eventTask = ThreadPool.schedule(this::activateRandomZone, 5_000); return true; } private void activateRandomZone() { _activeZone = _availableZones.get(new Random().nextInt(_availableZones.size())); _activeZone.setEnabled(true); Broadcast.toAllOnlinePlayers("🔥 Random Zone Event: " + _activeZone.getName() + " is now PvP for " + EVENT_DURATION_MINUTES + " minutes!"); _eventTask = ThreadPool.schedule(this::eventStop, EVENT_DURATION_MINUTES * 60 * 1000L); } @Override public boolean eventStop() { if (!_isActive) { return false; } _isActive = false; if (_eventTask != null) { _eventTask.cancel(true); _eventTask = null; } if (_activeZone != null) { _activeZone.setEnabled(false); Broadcast.toAllOnlinePlayers("🏁 Random Zone Event ended. " + _activeZone.getName() + " is back to normal."); _activeZone = null; } else { Broadcast.toAllOnlinePlayers("🏁 Random Zone Event ended."); } return true; } @Override public void onEnterZone(Creature creature, ZoneType zone) { if (!_isActive || (_activeZone == null)) { return; } if ((zone == _activeZone) && creature.isPlayable()) { creature.setInsideZone(ZoneId.PVP, true); if (creature.isPlayer()) { creature.sendMessage("Esta zona está en modo PvP temporalmente."); } } } @Override public void onExitZone(Creature creature, ZoneType zone) { if (!_isActive || (_activeZone == null)) { return; } if ((zone == _activeZone) && creature.isPlayable()) { creature.setInsideZone(ZoneId.PVP, false); if (creature.isPlayer()) { creature.sendMessage("Abandonaste la zona PvP temporal."); } } } @Override public boolean eventBypass(Player player, String bypass) { return true; } @Override public String onEvent(String event, Npc npc, Player player) { return super.onEvent(event, npc, player); } @Override public String onFirstTalk(Npc npc, Player player) { return null; } public static void main(String[] args) { new RandomZoneEvent(); } } i have this but its not working
    • ZonePvPSpawnBossRadio=0 ZonePvPSpawnBossBarakiel=0 at the Customs.ini in L2Server folder. Im prety sure this is it because i had the same problem with you in cruma 1 floor for example and i couldn't fix it but i fixed it finally by changing these 2 lines
  • Topics

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