Jump to content

Recommended Posts

Posted

Yeas, I know that this was probably covered before in some way.

 

I've got a folder full of -up-to Helios icons in .png format. Could someone point me in the right direction as to how I could pack them into an .utx and use with High Five client.

 

I hope this could be done for the entire folder in one go?

 

Thank you

 

https://mega.nz/#!DY9UmDCb!T8a5ML9KxPjNcJmhZcmdRQnknECaJmmo7qjswAR9xFo

Posted (edited)

simply create a new texturefile. hit import and select all files. get the right compression settings and hit "OK TO ALL". UED will auto add all selected pictures to ur new texturefile.

 

but im not sure if it works for .png. i think you have to convert them to another file format such as bmp, tga or dds so ue can read them

 

//////

EDIT:i checked it with your png files. yes you have to use another file format. google for batch image converters to convert ur entire folder (eg. pearlmountain image converter - this one actually allows you to set the image color depth when converting)

Edited by Finn
Posted

And how exactly you imagine to use them? Yes first convert them to tga with a batch, make them utx, and then what you want to do?

 

There are all the icons you already have, the only new are the ones used for things that h5 doesn't have. I mean the icons you have didn't got updated in any way.

 

So what's your point?

Posted

And how exactly you imagine to use them? Yes first convert them to tga with a batch, make them utx, and then what you want to do?

 

There are all the icons you already have, the only new are the ones used for things that h5 doesn't have. I mean the icons you have didn't got updated in any way.

 

So what's your point?

The file is a mixture of icons from all chronicles up to Helios. I want to use them for custom items, icons in HTMLs etc.

 

The alternative would be to somehow take icon.utx from Helios client and make it work with H5, I guess all those icons are there as well. Again, not something I know how to do exactly.

 

Thanks Finn, I'll look into that option.

Posted

you can also use a batch comparison programm for comparing two folders. the one could contain ur h5 or interlude icons and the other all the icons up to h5. by comparing them u should be able to locate the "new ones" you are looking for. then you can create ur utx file

Posted (edited)

I don't believe it's a mixture. You just download latest client and run a batch that exports everything with umodel. Basically just download umode -> click the file -> and press export (locate the path if needed) -> you'll get the same result but w/o the sub folders.

 

I just did the Interlude icon.utx, it contains 4,015 Files

Helios contains 9k.

 

As i said you will never use that amount (the ~6+ already exist in your H5 icon.utx). If you want to use some cool ones just find them -> name them -> import them as dxt1 to unreal ->save the utx and use them.

 

I still can't understand your point.

 

 

Edit: dxt1 format is for icons cause in any else format you won't be able to see them while dragging.

Edited by IpotoniC
Posted

he just wants to have a variety of icons so he doesnt need to create new texturefiles for future items maybe?

Posted

its a lot easier to just convert your helios icon file for h5......

you can decrypt it with l2 tool and re encrypt with encdec and it should just work for h5

Posted

he just wants to have a variety of icons so he doesnt need to create new texturefiles for future items maybe?

Exactyly that. If I have Icon2.utx file with all Helios icons then I can just pick and chose what I want without going one by one and convert them. The file I got with .png icons is easy to browse and look for whatever I would like to use. I'll never use all of them, but the option is there.

 

Thank you all for all replies. I'll see about adopting helios's icon.utx for H5. When I tried to encdec it thethe window would just popup for a a split second and disappear again. Will try again today.

 

Cheers

  • 2 months later...
Posted

I tried converting Grand Crusade Icon.utx so it can be used with H5 but I keep getting crashes.

 

Original Grand Crusade Icon.utx:

 

https://mega.nz/#!qcUxnT7A!jAcGmhuk6Yt325rm4k4DABBdTWx3uIfr9i00Sxkll7Q

 

  1. I get Icon.utx from Grand Crusade
  2. Use l2tool to convert it L2 -> UnrealED
  3. Then I use ElfocrashTool to encrypt Icon.utx into Icons.utx (after changed name)
  4. Unfortunately after copying it to SysTextures folder of my High Five client and using one of the icons the game crashes

I've also tried other encdec's with the following codes but the crashes keep happening

l2encdec -e 111 Icon.utx
l2encdec -e 121 Icon.utx

fd9eb709c1974ecfb30d3b58298465eb.png

 

Could anyone help me out here please? Thanks

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
    • Siege Reward Start PM Msg Rework Config root BossDieAnnounce and BossDieSound in the L24Team.properties and Config.java files for global raid boss death notifications and sounds. Adds a new reward_list table to the DB.sql file to track castle rewards. Improves character creation logic for thread safety and validation. Adds extensive state checks to the RequestEnchantItem method to prevent enchantments during inappropriate player states. Fixed auto-attack animation bug (there was no attack animation, only damage animation) Clean Code Other fixes I forgot to list! Java 14 Fixed issue where deleting a character would prevent it from leaving the screen or being removed, or even after a delete CD (it would only exit when re-logging in or creating a new character). Added Premium System from the other C2 project (Needs testing and improvement). Added the "Improved" Community Board (incomplete).
  • 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