Jump to content

Recommended Posts

Posted (edited)

nt9niPq.png

 

Hello chaters, with currect code you can setup and event with spawning raidbosses on specific times.
 

Code : Here

Credits : StinkyMadness

 

 

Edited by StinkyMadness
  • Like 2
  • Thanks 1
Posted (edited)

Seriously ma bitch? :D 

 

public BossEvent()
+   {
+       if (Config.BOSS_EVENT_RAIDBOSS_ID != 0)
+           ThreadPool.scheduleAtFixedRate(this, 1000, 1000);
+   }
+  
+   @Override
+   public void run()
+   {
+       if (_state != State.INACTIVE)
+           return;
+      
+       final Calendar calendar = Calendar.getInstance();
+       final int hour = calendar.get(Calendar.HOUR_OF_DAY);
+       final int minute = calendar.get(Calendar.MINUTE);
+       for (String time : Config.BOSS_EVENT_SCHEDULER_TIMES)
+       {
+           final String[] splitTime = time.split(":");
+           if (Integer.parseInt(splitTime[0]) == hour && Integer.parseInt(splitTime[1]) == minute)
+           {
+               spawnRaidboss();
+               break;
+           }
+       }
+   }

Threadpool every 1 second to check if hour and minute matches the given config instead of calculate whats the closest time and set a thread for it specificialy?

+			spawn.setRespawnDelay(60000);
+           spawn.setRespawnState(false);

setRespawnDelay(6000); but then you setRespawnState false. So useless 60000 delay.

+			 _raidboss.setCurrentHp(_raidboss.getMaxHp());
+           _raidboss.setCurrentMp(_raidboss.getMaxMp());

Useless also. Any new npc is spawned with max HP/MP.

String[] BOSS_EVENT_SPAWN_LOCATION

Why don't you make it directly into a int[] to avoid later Integer.parse and make the code look shit?

It's 4 lines

String[] split = events.getProperty("BossEventSpawnLocation", "").split(",");

BOSS_EVENT_SPAWN_LOCATION = new int[split.lenght];

for (int i = 0; i < split.lenght; i++)
 BOSS_EVENT_SPAWN_LOCATION[i] = Integer.parseInt(split[i]);

 

Edited by Kara`
Posted

Hello again stinky, I'm trying to get your mod from acis 377 to 375 and I'm trying to make it difficult to read in XML, since your mod was done with IXMLReader and my source used XMLDocument, because of that I can not compile, I was looking for forms of convert the code to XMLDocument and would like to know if there are options to help me.
This document was not found. "The XMLDocument type can not be a superinterface of BossEventData; a superinterface must be an interface".

Translated by google translate.

[javac] C:\workspace\L2jMega_gameserver2\java\net\sf\l2j\gameserver\data\xml\BossEventData.java:18: error: cannot find symbol
    [javac] public class BossEventData implements IXmlReader
    [javac]                                       ^
    [javac]   symbol: class IXmlReader
    [javac] C:\workspace\L2jMega_gameserver2\java\net\sf\l2j\gameserver\data\xml\BossEventData.java:27: error: method does not override or implement a method from a supertype
    [javac]    @Override
    [javac]    ^
    [javac] C:\workspace\L2jMega_gameserver2\java\net\sf\l2j\gameserver\data\xml\BossEventData.java:30: error: cannot find symbol
    [javac]        parseFile("./data/xml/BossEvent.xml");
    [javac]        ^
    [javac]   symbol:   method parseFile(String)
    [javac]   location: class BossEventData
    [javac] C:\workspace\L2jMega_gameserver2\java\net\sf\l2j\gameserver\data\xml\BossEventData.java:33: error: method does not override or implement a method from a supertype
    [javac]    @Override
    [javac]    ^
    [javac] C:\workspace\L2jMega_gameserver2\java\net\sf\l2j\gameserver\data\xml\BossEventData.java:37: error: cannot find symbol
    [javac]        forEach(doc, "list", listNode -> forEach(listNode, "Boss", bossNode ->
    [javac]        ^
    [javac]   symbol:   method forEach(Document,String,(listNode)[...]); }))
    [javac]   location: class BossEventData
    [javac] C:\workspace\L2jMega_gameserver2\java\net\sf\l2j\gameserver\data\xml\BossEventData.java:44: error: cannot find symbol
    [javac]                set.set("posX", parseInteger(attrs, "x"));
    [javac]                                ^
    [javac]   symbol:   method parseInteger(NamedNodeMap,String)
    [javac]   location: class BossEventData
    [javac] C:\workspace\L2jMega_gameserver2\java\net\sf\l2j\gameserver\data\xml\BossEventData.java:45: error: cannot find symbol
    [javac]                set.set("posY", parseInteger(attrs, "y"));
    [javac]                                ^
    [javac]   symbol:   method parseInteger(NamedNodeMap,String)
    [javac]   location: class BossEventData
    [javac] C:\workspace\L2jMega_gameserver2\java\net\sf\l2j\gameserver\data\xml\BossEventData.java:46: error: cannot find symbol
    [javac]                set.set("posZ", parseInteger(attrs, "z"));
    [javac]                                ^
    [javac]   symbol:   method parseInteger(NamedNodeMap,String)
    [javac]   location: class BossEventData
    [javac] 8 errors

 

Posted

XMLDocument has different behaviour than IXMLReader. If you are a customer of acis and you got the new patches, change it. Otherwise check how other files are using the xmlreader and adapt it since you are not allowed to get the new version for free. 

  • Like 1
  • Thanks 1
Posted
5 hours ago, martuxas1 said:

good code but code not valid for acis can't find IXMLReader.java in google or some one can share IXMLReader.java for acis?

Its an class of newer aCis revisions, if you want it you have to become an customer on aCis.. else you have to write on your own or find it from any other project hat using IXmlReader.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...