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

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.



  • Posts

    • DISCORD : utchiha_market telegram : https://t.me/utchiha_market SELLIX STORE : https://utchihamkt.mysellix.io/ Join our server for more products : https://discord.gg/hood-services https://campsite.bio/utchihaamkt  
    • Server Rates: » Xp 500x. » Sp 500x. » Aden 500x. » Drop 1x. » PartyXp 2x. » PartySp 2x. » Starting character level -61. Enchant rates: » Safe enchant +4. » Blessed and simple scrolls max enchant (+16). » Crystal scrolls max enchant (+20). » Simple enchant scrolls chance – 65%. » Blessed enchant scrolls chance – 100%. » Crystal enchant scrolls chance – 50% Augmentations: » Mid life stone skill chance – 5%. » High life stone skill chance – 10%. » Top life stone skill chance – 20%. » Augments 1+1 Unique features: » Main town – Giran » Automatic-Manual Potions. » Working 2 castle sieges. (Giran-Aden) » SPS cancel lasts 10 seconds and than buffs come back. » Stackable scrolls, lifestones, book of giants. » Unique pvp zone » More then 11 active raid bosses. » Wedding system. » Unique farming areas. » Npc skill enchanter. » Full npc buffer with auto buff. » Max count of buffs – 55. » Max subclasses – 4. » Free and no quest class change. » Free and no quest sub class. » Raid boss drop nobless item. » No weight limit. » Unique protection anti-hwy armor for archers/daggers etc. » Ingame password change. » Top pvp/pk/online ranks NPC. » Unique monsters & NPC. » Interlude retail skills. » Server up-time [24/7] [99]%. » Perfect class balance (all class can kill all class depending on players skill and setup knowledge,gear,augmentations). » Announcements on double kills triple kills etc. » Announcements on Grand Boss death , with the name of the killer as well as clan name of the player. » Information Npc in game with all servers infromations. Custom server gear : 1). Titanium Armor Lv.1 2). Epic Armor Lv.2 3). Epic Weapons-Kamikaze-Black S grade (Same Stats) 4). Demonic-Angelic Wings-Baium Hair-Custom Accessories (SameStats) 5). Custom Fighter/Mage tattoo Lv1-Lv2-Lv3 6). Shirt (STR,CON,INT +1) 7). Custom Shields Server Commands: .tvtjoin .tvtleave – Join or leave tvt event. .ctfjoin .ctfleave – Join or leave ctf event. .dmjoin .dmleave – Join of leave dm event. .online – current online players count. .repair – repairs stuck character in world. .menu – opens online menu panel. .exit – PVP zone exit in case you are bullied. .changepassword - Opens online menu then u can change ur password in game. .farm - Enable/disable autofarm Event system: » TVT event » CTF event » DM event » Tournament Event » Party Zone » Unique event shop. Olympiad game: » Retail olympiad game. » Competition period [1] week. » Olympiad start time [18:00] end [00:00] GMT+2. » New Heroes every Sunday.
    • Tomorrow grand opening lests go 🙂 
  • Topics

×
×
  • Create New...