Jump to content

Code 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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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.

 Share



  • Posts

    • Hello everyone,   Does anyone know how to turn off or to properly setup "proxy'? I'm trying to connect on server and i get error in Login server:   ========================================================== Error in Login Server ========================================================== "[15:01:53]  INFO IP: 84.126.108.137 Login: test Assigned to Proxy: 127.0.0.1" ==========================================================   And in proxies.xml say something about .properties file, but i cant find that file.     ========================================================== proxies.xml ========================================================== <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE list SYSTEM "proxies.dtd"> <!-- In order to make this file be in use, EnableProxies in server.properties MUST be set to true --> <!-- This list should contain GameServer IPs. IP of the GameServer will be chosen for Player during Server Selection, based on Mask of his IP --> <!-- For example, if IP of the player is 153.4.138.226, all of the masks below will be checked if IP matches range of mask --> <!-- Mask 0.0.0.0/3 covers IPs from 0.0.0.0 to 31.255.255.255. Mask 32.0.0.0/3 covers IPs from 32.0.0.0 to 63.255.255.255 and so on --> <!-- So if IP of the player matches below mask, value in "ip" will be given to him, to connect with GameServer --> <!-- If player IP will not match any mask, Error in LoginServer logs will be printed --> <list>     <level min="40" max="86" ip="127.0.0.1"/>     <minChatMessages party="3" clan="5" ip="127.0.0.1"/>     <minChatMessages shout="5" ip="127.0.0.1"/>     <minChatMessages all="15" trade="5" ip="127.0.0.1"/>     <minChatMessages pm="3" clan="5" ip="127.0.0.1"/>     <mask mask="0.0.0.0/4" ip="127.0.0.1"/>     <mask mask="16.0.0.0/4" ip="127.0.0.1"/>     <mask mask="32.0.0.0/4" ip="127.0.0.1"/>     <mask mask="48.0.0.0/4" ip="127.0.0.1"/>     <mask mask="64.0.0.0/4" ip="127.0.0.1"/>     <mask mask="80.0.0.0/4" ip="127.0.0.1"/>     <mask mask="96.0.0.0/4" ip="127.0.0.1"/>     <mask mask="112.0.0.0/4" ip="127.0.0.1"/>     <mask mask="128.0.0.0/4" ip="127.0.0.1"/>     <mask mask="144.0.0.0/4" ip="127.0.0.1"/>     <mask mask="160.0.0.0/4" ip="127.0.0.1"/>     <mask mask="176.0.0.0/4" ip="127.0.0.1"/>     <mask mask="192.0.0.0/4" ip="127.0.0.1"/>     <mask mask="208.0.0.0/4" ip="127.0.0.1"/>     <mask mask="224.0.0.0/4" ip="127.0.0.1"/> </list> ========================================================== ==========================================================   If anyone could help it would be great.  
    • @Celestinewasnt this guy banned for selling shared stuff? 😄
    • I know xD ... please clean the topic. It's okay!
    • link off    anyone can share it ?   thks
  • 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 Disbaled AdBlock