Jump to content

Recommended Posts

Posted

Title says it all, im looking for a script which would allow me to set maximum enchantment limit for olympiad (Chronicle - Interlude (c6)).
Yes. bla bla bla, im stupid enough and can't find the code myself. Sorry if i post in wrong section, ain't big user of this forum :<<<<
This should be not only important for me, but for those 'legit' servers, where you can't find balance in olympiad.

Posted (edited)

Title says it all, im looking for a script which would allow me to set maximum enchantment limit for olympiad (Chronicle - Interlude (c6)).

Yes. bla bla bla, im stupid enough and can't find the code myself. Sorry if i post in wrong section, ain't big user of this forum :<<<<

This should be not only important for me, but for those 'legit' servers, where you can't find balance in olympiad.

I have shared this restriction in acis share section.

But this restriction is included in a bigger much so you have to export it on your own. :P

 

//Edit

 

Code: http://www.maxcheaters.com/topic/174057-share-acis-patch-no1/

Edited by `iAndre
Posted

I got the code from iAndre and addapt in on my source (rev 300 - acis ). I'm not 100% that is works!

 

what I did is:

 

Config.java

 

ALT_OLY_DIVIDER_NON_CLASSED = events.getProperty("AltOlyDividerNonClassed", 3);
ALT_OLY_ANNOUNCE_GAMES = events.getProperty("AltOlyAnnounceGames", true);
+ALLOW_OLY_GRADE_RESTR = events.getProperty("AllowOlyGradeRestr", false);
+MAX_ENCHANT_RESTR = events.getProperty("MaxEnchantRestr", 65535);
 
 
public static int ALT_OLY_DIVIDER_CLASSED;
public static int ALT_OLY_DIVIDER_NON_CLASSED;
public static boolean ALT_OLY_ANNOUNCE_GAMES;
+public static boolean ALLOW_OLY_GRADE_RESTR;
+public static int MAX_ENCHANT_RESTR;
 
event.properties
 
# Divider for points in classed and non-classed games, default: 3, 5.
AltOlyDividerClassed = 3
AltOlyDividerNonClassed = 5
+
+# Oly Grade Restriction #
+AllowOlyGradeRestr= True
+MaxEnchantRestr = 8
 
 
l2olympiadmanagerinstance.java
 
import net.sf.l2j.Config;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.L2Multisell;
import net.sf.l2j.gameserver.model.entity.Hero;
+import net.sf.l2j.gameserver.model.itemcontainer.Inventory;
import net.sf.l2j.gameserver.model.olympiad.CompetitionType;
import net.sf.l2j.gameserver.model.olympiad.Olympiad;
 
 
 
case 3: // There are %points% Grand Olympiad points granted for this event.
int points = Olympiad.getInstance().getNoblePoints(player.getObjectId());
html.setFile(Olympiad.OLYMPIAD_HTML_PATH + "noble_points1.htm");
html.replace("%points%", String.valueOf(points));
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
break;
 
case 4: // register non classed based
+                       if (meetsRequirements(player))
+                      {
+                          OlympiadManager.getInstance().registerNoble(player, CompetitionType.NON_CLASSED);
+                      }
+break;
 
+case 5: // register classed based
+if (meetsRequirements(player))
+{
+       OlympiadManager.getInstance().registerNoble(player, CompetitionType.CLASSED);
+}
+break;
 
case 6: // request tokens reward
passes = Olympiad.getInstance().getNoblessePasses(player, false);
if (passes > 0)
{
html.setFile(Olympiad.OLYMPIAD_HTML_PATH + "noble_settle.htm");
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
}
else
{
html.setFile(Olympiad.OLYMPIAD_HTML_PATH + "noble_nopoints2.htm");
html.replace("%objectId%", String.valueOf(getObjectId()));
player.sendPacket(html);
}
break;
 
 
 
 
 
 
}
else
super.onBypassFeedback(player, command);
}
      
+       public boolean meetsRequirements(L2PcInstance p)
+      {
+               if (Config.ALLOW_OLY_GRADE_RESTR)
+               {
+                       // Enchant checks.
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your weapon's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your armor's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your armor's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your armor's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your armor's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your armor's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_UNDER).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your tattoo's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_NECK).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your necklace's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEAR).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your earring's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_REAR).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your earring's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LFINGER).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your ring's enchant level is not the appropriate.");
+                               return false;
+                       }
+                       if (p.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RFINGER).getEnchantLevel() > Config.MAX_ENCHANT_RESTR)
+                       {
+                               p.sendMessage("You may not register for the Olympiad, as your ring's enchant level is not the appropriate.");
+                               return false;
+                       }
+               }
+              
               return true;
       }
}
 
I know they way I post it is a mess but I don't know how to post them correctly (lazy ass here). If you have some decent skills you can adapt it. 
Hope it works, if no correct me.
 
thank you.
 

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

    • Γεια σε ολους, προσπαθω εδω και 2 μερες να κανω αυτο το πραγμα να λειτουργει. το καταφερα για ενα διαστημα 5 ωρων. αλλα φαινεται οτι το discord μου κανει block to dll. ή κατι αλλο που δεν μπορω να ειμαι σιγουρος για το τι φταιει... αν καποιος γνωριζει κατι ας στειλει ενα pm να το δουμε μαζι.  *το source το εφιαξα εγω. https://youtu.be/kMvrbo9VBZc  ενα βιντεο που δειχνει πως δουλευε πριν σταματησει να δουλευει...   
    • thank you, please move to the desired category
    • wrong section, you need move this post to https://maxcheaters.com/forum/72-marketplace-l2packs-files/
    • Unlock Unlimited Access with GoProxy's Residential Proxies!   Experience seamless, secure, and unrestricted connectivity worldwide with GoProxy's Unlimited Residential Proxies. Our service offers access to a global network of rotating residential IPs, ensuring top performance for your large-scale data collection, streaming, and more.     ✔️Unlimited Traffic & IPs: Enjoy unrestricted access with our rotating residential proxies, delivering high performance through a vast global IP pool. ✔️High Success Rate: Achieve a 99.96% success rate with a rapid 0.6-second response time, ensuring efficient and reliable operations. ✔️Flexible Sessions: Customize IP rotation to fit your project needs, with options for automatic rotation and sticky sessions lasting up to 60 minutes. ✔️Global Coverage: Access IPs from over 120 countries, making it ideal for businesses requiring high bandwidth without region-specific constraints.     All plans include unlimited traffic and IPs, unlimited concurrent requests, and access to real residential IP addresses. Elevate your online operations with GoProxy's Unlimited Residential Proxies—your smart choice for large-scale projects.   👉 Learn more and get started today: GoProxy Unlimited Proxies
  • Topics

×
×
  • Create New...