Jump to content

Recommended Posts

Posted (edited)

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
Posted

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 

Posted

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);
Posted

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.

Posted

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

Posted

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.

Posted

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

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...