Jump to content

Experimental Event Engine


Recommended Posts

Hey everyone.

 

This is the basic structure of an event engine i have made, that uses Thread.sleep() method for delays(to avoid multiple threads). It supports scheduling of events FIXED or TIMES(check description in EventSchedule class).

 

There is also a TvT event installed in the engine.

 

HOWEVER, it is experimental, as the title says, which means it needs to be extended in order to be fully functional. I just shared it cause it might help someone.

 

Coded for interlude.

 

(Check Event.java for the currently available methods.)

 

Here: http://pastebin.com/ipmH8VhV

Edited by An4rchy
Link to comment
Share on other sites

Hey everyone.

 

This is the basic structure of an event engine i have made, that uses Thread.sleep() method for delays(to avoid multiple threads). It supports scheduling of events FIXED or TIMES(check description in EventSchedule class).

 

There is also a TvT event installed in the engine.

 

HOWEVER, it is experimental, as the title says, which means it needs to be extended in order to be fully functional. I just shared it cause it might help someone.

 

Coded for interlude.

 

(Check Event.java for the currently available methods.)

 

Here: http://pastebin.com/ipmH8VhV

thanks for the share 

Link to comment
Share on other sites

btw for anarchy:

 

Remove these abstract classes, they are not needed, just make all the booleans return false and all voids empty

 

Imo the class should be abstract and implement Runnable meaning that the only abstract method is run(), run will be the main part of the event

+       public abstract void runEvent();
+       public abstract boolean proceed();
+       public abstract EventSchedule getScheduleMethod();
+       public abstract String getScheduleTimes();
+       public abstract String getName();
+       public abstract boolean allowFight();
+       public abstract boolean allowTargetting();
+       public abstract boolean allowFriendlyFire();
+       public abstract boolean allowEscape();
+       public abstract boolean allowToVillage();
+       public abstract void onPlayerRegister(L2PcInstance p);
+       public abstract void onDie(L2PcInstance p, L2PcInstance killer);
Link to comment
Share on other sites

Well all those abstract methods are necessary for an event, since they define players' actions in it. I actually wanted to simplify the creation of an event  without leaving possibilities for mistakes that's why i made them abstract.

Link to comment
Share on other sites

Well all those abstract methods are necessary for an event, since they define players' actions in it. I actually wanted to simplify the creation of an event  without leaving possibilities for mistakes that's why i made them abstract.

 

you define something abstract when theres really no way to implement it on the abstract class.

 

for example you have onDie abstract, thats wrong since you can handle player death from the abstract class

 

like:

 

TvT:

 

@Override

public void onDie(...)

{

     Announce(killer has killed victim);

     super.onDie(...);

}

 

parent:

public void onDie()

{

     //handle the death code

     //that is common for all other events

}

 

 

 

//////////////////////////////////////////

 

example 2

 

abstract public boolean areSameTeam(player1, player2);

 

thats wrong, cause you CAN

 

public boolean areSameTeam(player1, player2)

{

     return false;

}

 

TvT:

 

@Override

public boolean areSameTeam(player1, player2)

{

       return getTeam(player1) == getTeam(player);

}

 

Deathmatch

 

//no need to override anything, areSameTeam returns from its parent

 

 

 

 

 

I really hope you get my point

Link to comment
Share on other sites

About the voids you're right, i get your point.

 

The booleans it's not wrong the way i have it, it's just necessary even when it shouldn't be.

Link to comment
Share on other sites

well, the idea isn't bad.

first of all you should convert few methods to static

than few other methods (as I said in the other topic) should be wrapper to avoid code duping

than... why do you hardcode events to the core? TvT could be outside in DP as a script

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...