Jump to content

Recommended Posts

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

Hello once again,

First of all Sorry for people who thought that this project will be abandoned cause it will not be ...

Second i would like to inform you with what's going on, since it's your right to know..

The Public Version is ready to go but before uploading Thanks to @Sinister Smile he recreated the splash Screen  as follow

app-splash.jpg

Which i personally liked it so much, then he did for me this slide

splash.jpg.a7aa3a86b30b682cb95797ee5b3b5

 

So i thought that the current Application interface is sucks so i started to re created the interface based on this two designs of @Sinister Smile and after a while wanted to make better usage experience by create a new way of presentation better than an window open another window ... etc. it's really regular and normal for big community like this, so i decided to improve the user accessibility and experience by trying to have most tools in "One" windows and in same time let more empty space for eye relaxing so i came up with another home interface instead of this :

new.jpg&key=d7752c96a48b6b9ca159c89b1e93

 

Now it's This : 

 

image.jpg

 

Now i'm trying to put all tools in this main screen and i have managed to make this work and created a new interface components and handler to be able to render this with less lag and with almost no flickering, for example when click on languages button :

image.jpg

 

Tools Button

image.jpg

 

Client Tools :

 

image.jpg

 

and to avoid offsets and mislocating implemented a mechanism to automatically calculate free space and find best location for each panel as well as rendering and buffering optimization

 

Other Updates : 

- Since DDF files has many problems specially with advanced editing i have created a new feature in System Editor called "Dynamic Build" when activating the application will automatically create a new ddf based on your system file values and then compile it using that on-fly created definitions

- Splash Tool : added image converter and support to replace an encrypted splash with any image type, no need to worry about formats it will be automatically fixed for you.

- Project Site detached  from my personal site "http://l2ninja.samdev.org" , and moved to a special domain and host

Site : https://lineage.ninja

Forum : https://forum.lineage.ninja

All Old Accounts recovered and it has better UI thanks to @VanGon

- Added Update Feature, so after next version you wont need to re-download every new version and lose your settings, so you can just click update and application will update it self

- Added Support for 6 Languages : English, German, Russian, Greek, French, Bulgarian

- More Languages can be added on demand, so if you need another languages just ask for it

 

What we need Now :

- I need Translators to translate the listed languages above or if they suggest another language can go for it, translation will be based on XML files so all you need is to open with any text editor and replace English Words and statements with your language

- Need Testers that has time to contact me and i'll update them one by one fast to check all current features and report bugs

 

Thanks and Regards

 

 

  • Upvote 1
Posted (edited)

If you got languages on .txt or .xml, I can care translating it in French if needed.

 

Regarding application itself, I would either remove images from the application (and keep it only for splash) or put them as a background 40% or 20% opacity, that way you got more space (or you can reduce window size) and all columns look the same.

 

Applications like 3dsmax / Photoshop haven't 1/3 of their windows used by images of their own company. At worst they keep their own logo on the taskbar, and one splash screen for credits/loading components.

Edited by Tryskell
Posted
10 hours ago, Tryskell said:

If you got languages on .txt or .xml, I can care translating it in French if needed.

 

Regarding application itself, I would either remove images from the application (and keep it only for splash) or put them as a background 40% or 20% opacity, that way you got more space (or you can reduce window size) and all columns look the same.

 

Applications like 3dsmax / Photoshop haven't 1/3 of their windows used by images of their own company. At worst they keep their own logo on the taskbar, and one splash screen for credits/loading components.

 

Thanks alot for your support i'll contact you about French files and yes they are as .xml with root "<messages>" and elements of "<message>"

 

About your suggestion , do you mean the background image or the image icons ?

Posted (edited)
On 12/5/2017 at 8:43 PM, Tryskell said:

Wait, maybe I'm reviewing your old version :D

 

Nevermind.

 

No Problem :D 

 

---------------------------------------------

Update :

- Converting Application to be Block-Building Based which means Application it self it will as only Manager and Container for plugins , All Features will be shipped as separate Plugins, Even Official and Main Features , For Example : Encryption is a Plugin that you can Enable, Disable or Uninstall

- Application will come Packed with Some Official Plugins all u need is to go Activate them

- There will be Plugins Store, where you can find all "Trusted" Plugins

- Will Try soon to Add a Documentation for Plugins API so anyone with Little Experience about C# can develop a new plugin and add it to Plugins Store for Free or For Sell, After Revision if it passed it will be approved and added to People to be able to Download if Free and Buy if Premium

- Online Build : Is a Web Based Portal that allows you to select needed Features based on Plugins Store (Free and Premium) and get an Automatically Custom Build for you to download

- All Plugins will be by your Choice expect one Plugins called "Plugins" which is a Plugin that manage plugins, yes Plugins system it self is a Plugin

 

Why i thought about this ?

Well first of all, Application will be more organized and more light weight, also by separating features into plugins it will allow me to release a more stable version faster and faster, since if there is a bug then it will only need an upgrade to the plugin of that feature, also by doing this it will lead to more community involving which means that it will give opportunity to the community to adapt and be up to date so for example if something happen to the community after a year, someone can simply read the documentation and make a plugin that will make application work and fit for the current state of community at this time.

 

Let me know your opinions about this part please....

 

Thanks and Regards

Edited by SamDev-Coder
  • 4 weeks later...
Posted
8 minutes ago, SillverShadow said:

i would like to give this a try looks good but only "looks", if we cant try it( or buy it ) cant really judge :)

As  @SamDev-Coder said, it will be for free. I hope he will release it soon. 

  • 11 months later...
Posted
8 minutes ago, @Vice said:

 LAST VISITED

January 29, 2018

 

As far as i know this guy disappeared.

 

he is not disappeared he got married and left gaming life 

Guest
This topic is now closed to further replies.



  • Posts

    • 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).
    • Use only middleman this guy scammer old discord goddardshop   
  • 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