Jump to content

Recommended Posts

Posted

Hello all i want to share substack npc by allen but changed to L2jFrozen by me

 

http://www.4shared.com/rar/76RKtO0W/SubStack_NPC_l2jFrozen.html

 

#---------------------------------------------------------------------------------------------------------------------------------------------------
# SETTINGS
#---------------------------------------------------------------------------------------------------------------------------------------------------

#For more than 3 subclasses, you must increase the variable number into the SQL and add to the database. 
#inside the sql you will find some variables named SubclassidX. Just change the "X" increasing the number. 
#This value shouldn't be changed if you don't want to increase the subclasses number beyond 3. 
#Increase or decrease the "maxsubsindb" value without make these changes, will cause errors. Be carefull!.
maxsubsindb = 1

# Subclasses number that can be added. Must be less than or equal to "maxsubsindb".
SubsNumber = 1

# True, allows add stackable subclasses in every original game subclass (Mainclass and every retails).
# False, allows add stackable subclasses in only one original game subclass or main class
AllowMultiSubs = False

# True, allows any stackable subclass. False, allows add your own race's subclasses only.
AllowAllSubs = False

#This option work if "AllowAllSubs = False", Also you need to be using a original game subclass (Retail) to get available this.
#True, allow add a subclass with the same main class's race. False, allow add a subclass with the same Retail's race.
AllowMutantRetail = False

#True, allows delete the main class or any subclass added. False, allow to delete added subclasses only. Default: False
AllowDelMainClass = False

# Minimum Level to add a subclass. Default: 76
MinLevel = 76

#True, allows add subsclasses if the character is a Noblesse only. False, otherwise. Default: False
AllowOnlyNobles = False

#True, allow to add subclass or any other actions if you have the required items only. False, otherwise
ReqItems = False

#Required Item to switch between the subclasses. Default: 57 (Adena)
#Required items number.
Item1_Req = 57
Item1_Num = 1000000

#Required Item to add a subclass.
#Required items number.
Item2_Req = 4356
Item2_Num = 5000

#Required Item to delete subclasses.
#Required items number.
Item3_Req = 4356
Item3_Num = 1000

# True: Change level after add a subclass
# False: Not to change level after add a subclass. Default: True
DecLevel= True

# True:  HTML will show 3rd Class trasfer to choose, also it disallow add subclasses if the characters haven't added 3rd job.
# False: HTML Will show 2nd Class trasfer to choose, also it disallow add subclasses if the characters haven't added 2nd or 3rd job.
AllowThirdJob = False

#Level at which the character will be changed after add a subclass. Default: 40
NewLevel= 40

# True: The user must wait a while before take any action. Default: True
# False: The user can do any action without time constraints. Not recommended
Block = True

#Blocking time in seconds before take any action.
BlockTime = 20

 

NPC work too in aCis

 

shot00002fal.png

By kamil7jar at 2012-04-09

 

shot00003uc.png

By kamil7jar at 2012-04-09

 

shot00004cva.png

By at 2012-04-09

Posted

Mam mały problem , gdy pobieram sube adminem jest wszystko oke dostaje skille , gdy biore sube normalnym charem nie dostaje jej i dostaje bład w konsoli , nie wiem co jest grane : /

uzywam l2jfrozen najnowszy revision

Posted

Mam mały problem , gdy pobieram sube adminem jest wszystko oke dostaje skille , gdy biore sube normalnym charem nie dostaje jej i dostaje bład w konsoli , nie wiem co jest grane : /

uzywam l2jfrozen najnowszy revision

Use the damn english language.
Posted

# True: Change level after add a subclass

# False: Not to change level after add a subclass. Default: True

DecLevel= True <--- Change this to "False"

Posted

# True: Change level after add a subclass

# False: Not to change level after add a subclass. Default: True

DecLevel= True <--- Change this to "False"

now adds Sube , but does not add skills

teraz dziala subclassa ale nie dodaje skilli ; /

Posted

[PL] Ustaw auto learn skilli poshwithaj sie pare razy i sprawdz czy usuwa i dodaje skille czy sa stale te same

[PL] mam ustawiony AutoLearSkill dodaje sobie sube i sie nie "stukują" skille tak jakbym wziął retailowa subclasse

 

Adminem dziala poprawnie wszystko nie mam pojęcia ocb ; /

  • 2 weeks later...
Posted

hi i whant to now if whit this code can make 1 acumulative subclass every retail subclass. main(2 class) subclass 1(2 class) subclass2(2 class) this code is for that?

Posted

Thing that you probably have forgot though when it's substack race only is that if they make a normal subclass first, then substack it, then remove the subclass while being on the substack, then they can mutant, we have used every single "substack npc" for our server project (l2allstars), but in the end we had to do our own which is far more extreme than any shared one since we basically had to re-structorize our database.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • 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