Jump to content
  • 0

CHAMPION MOD ACIS 398


Question

Posted

Olá amigos bom dia, sou novo ainda estou aprendendo e estou tendo muita dificuldade pra add este mod na minha acis 398 não encontro alguns diretórios e também da alguns errors enfim. Alguém poderia por favor adaptar esse mod para acis 398 ? dês de já muito obrigado 🙏
 

Propriedades:
 

Citação
# ---------------------------------------------------------------------------
# Custom - non-retail-like systems that have been integrated into the project.
# Be warned that there may be no support for these mods ban the original author's assistance.
# ---------------------------------------------------------------------------
# Champion mobs - Turn random mobs into Champions
# ---------------------------------------------------------------------------

# Enable/Disable Champion Mob System.
ChampionEnable = True

# Force Champion mobs to be passive?
# To leave champion mobs to default/Aggressive, set to False.
# To set all champion mobs to Passive, set True.
ChampionPassive = False

# % chance for a mob to became champion (0 to disable).
ChampionFrequency = 20

# Title of all Champion Mobs.
ChampionTitle = C H A M P I O N

# Min and max levels allowed for a mob to be a Champion mob.
ChampionMinLevel = 20
ChampionMaxLevel = 80

# Hp multiplier for Champion mobs.
ChampionHp = 4

# Hp Regen Multiplier for Champion mobs.
ChampionHpRegen = 1

# Standard rewards multiplier for Champion mobs.
ChampionRewards = 2

# Adena & Seal Stone rewards multiplier for Champion mobs.
ChampionAdenasRewards = 2

# Specified reward item ID
ChampionRewardItemID = 6393

# The amount of the specified reward a player will receive if they are awarded the item.
ChampionRewardItemQty = 10

# % Chance to obtain a specified reward item from a higher level Champion mob.
# Default: 0
ChampionRewardLowerLvlItemChance = 100

# % Chance to obtain a specified reward item from a lower level Champion mob.
# Default: 0
ChampionRewardHigherLvlItemChance = 100

 


Diff:
 

Citação
diff --git a/java/net/sf/l2j/Config.java b/java/net/sf/l2j/Config.java
--- a/java/net/sf/l2j/Config.java
+++ b/java/net/sf/l2j/Config.java

 public final class Config
 {

+    public static final String CHAMPION_FILE = "./config/JDev/event/ChampionMobs.properties";
     
+    public static boolean L2JDEV_CHAMPION_ENABLE;
+    public static boolean L2JDEV_CHAMPION_PASSIVE;
+    public static int L2JDEV_CHAMPION_FREQUENCY;
+    public static String L2JDEV_CHAMP_TITLE;
+    public static int L2JDEV_CHAMP_MIN_LVL;
+    public static int L2JDEV_CHAMP_MAX_LVL;
+    public static int L2JDEV_CHAMPION_HP;
+    public static int L2JDEV_CHAMPION_REWARDS;
+    public static float L2JDEV_CHAMPION_ADENAS_REWARDS;
+    public static float L2JDEV_CHAMPION_HP_REGEN;
+    
+    public static int L2JDEV_CHAMPION_REWARD_LOWER_LVL_ITEM_CHANCE;
+    public static int L2JDEV_CHAMPION_REWARD_HIGHER_LVL_ITEM_CHANCE;
+    public static int L2JDEV_CHAMPION_REWARD_ID;
+    public static int L2JDEV_CHAMPION_REWARD_QTY;

+    public static final void CHAMPION()
+    {
+        final ExProperties CHAMPION = initProperties(CHAMPION_FILE);
+        
+        L2JDEV_CHAMPION_ENABLE = CHAMPION.getProperty("ChampionEnable", false);
+        L2JDEV_CHAMPION_PASSIVE = CHAMPION.getProperty("ChampionPassive", false);
+        L2JDEV_CHAMPION_FREQUENCY = CHAMPION.getProperty("ChampionFrequency", 0);
+        L2JDEV_CHAMP_TITLE = CHAMPION.getProperty("ChampionTitle", "Champion");
+        L2JDEV_CHAMP_MIN_LVL = CHAMPION.getProperty("ChampionMinLevel", 20);
+        L2JDEV_CHAMP_MAX_LVL = CHAMPION.getProperty("ChampionMaxLevel", 60);
+        L2JDEV_CHAMPION_HP = CHAMPION.getProperty("ChampionHp", 7);
+        L2JDEV_CHAMPION_HP_REGEN = CHAMPION.getProperty("ChampionHpRegen", 1);
+        L2JDEV_CHAMPION_REWARDS = CHAMPION.getProperty("ChampionRewards", 8);
+        L2JDEV_CHAMPION_ADENAS_REWARDS = CHAMPION.getProperty("ChampionAdenasRewards", 1);
+        
+        L2JDEV_CHAMPION_REWARD_LOWER_LVL_ITEM_CHANCE = CHAMPION.getProperty("ChampionRewardLowerLvlItemChance", 0);
+        L2JDEV_CHAMPION_REWARD_HIGHER_LVL_ITEM_CHANCE = CHAMPION.getProperty("ChampionRewardHigherLvlItemChance", 0);
+        L2JDEV_CHAMPION_REWARD_ID = CHAMPION.getProperty("ChampionRewardItemID", 6393);
+        L2JDEV_CHAMPION_REWARD_QTY = CHAMPION.getProperty("ChampionRewardItemQty", 1);
         
     }
     
--- a/java/net/sf/l2j/gameserver/model/actor/Attackable.java
+++ b/java/net/sf/l2j/gameserver/model/actor/Attackable.java
@@ -108,7 +108,19 @@
         if (Config.PART_ZONE_MONSTERS_ID.contains(Integer.valueOf(getNpcId())))
             DropZoneManager.addReward(killer);
         
-        
+        setChampion(false);
+        if (Config.L2JDEV_CHAMPION_ENABLE)
+        {
+            // Set champion on next spawn
+            if (!(killer instanceof Monster) && (Config.L2JDEV_CHAMPION_FREQUENCY > 0) && (getStatus().getLevel() >= Config.L2JDEV_CHAMP_MIN_LVL) && (getStatus().getLevel() <= Config.L2JDEV_CHAMP_MAX_LVL))
+            {
+                
+                if (Rnd.get(100) < Config.L2JDEV_CHAMPION_FREQUENCY)
+                {
+                    setChampion(true);
+                }
+            }
+        }
\ No newline at end of file
diff --git a/java/net/sf/l2j/gameserver/model/actor/Creature.java b/java/net/sf/l2j/gameserver/model/actor/Creature.java
index d970f82..1c2d3e5 100644
--- a/java/net/sf/l2j/gameserver/model/actor/Creature.java
+++ b/java/net/sf/l2j/gameserver/model/actor/Creature.java

         return "[Creature objId=" + getObjectId() + "]";
     }
     
+    private boolean _champion = false;
+    
+    public boolean isChampion()
+    {
+        return _champion;
+    }
+    
+    public void setChampion(boolean chanpion)
+    {
+        _champion = true;
+        _champion = chanpion;
+        
+    }
+    

     public void reduceCurrentHp(double i, Creature attacker, boolean awake, boolean isDOT, L2Skill skill)
     {
-        getStatus().reduceHp(i, attacker, awake, isDOT, false);
+        if (Config.L2JDEV_CHAMPION_ENABLE && isChampion() && (Config.L2JDEV_CHAMPION_HP != 0))
+        {
+            getStatus().reduceHp(i / Config.L2JDEV_CHAMPION_HP, attacker, awake, isDOT, false);
+        }
+        else
+            getStatus().reduceHp(i, attacker, awake, isDOT, false);

diff --git a/java/net/sf/l2j/gameserver/network/serverpackets/AbstractNpcInfo.java b/java/net/sf/l2j/gameserver/network/serverpackets/AbstractNpcInfo.java
index 262c0c6..1570565 100644
--- a/java/net/sf/l2j/gameserver/network/serverpackets/AbstractNpcInfo.java
+++ b/java/net/sf/l2j/gameserver/network/serverpackets/AbstractNpcInfo.java
@@ -109,6 +109,9 @@
             if (Config.SHOW_NPC_LVL && _npc instanceof Monster)
                 _title = "Lv " + _npc.getStatus().getLevel() + (_npc.getTemplate().getAggroRange() > 0 ? "* " : " ") + _title;
             
+            if (Config.L2JDEV_CHAMPION_ENABLE && _npc.isChampion())
+                _title = "" + Config.L2JDEV_CHAMP_TITLE;
+            

diff --git a/java/net/sf/l2j/gameserver/model/actor/instance/Monster.java b/java/net/sf/l2j/gameserver/model/actor/instance/Monster.java
index deaed87..6af2c38 100644
--- a/java/net/sf/l2j/gameserver/model/actor/instance/Monster.java
+++ b/java/net/sf/l2j/gameserver/model/actor/instance/Monster.java
+import net.sf.l2j.commons.random.Rnd;
                     if (attacker.isPremium())
                     {
                         exp *= Config.VIP_XP_SP_RATE;
                         sp *= Config.VIP_XP_SP_RATE;
                     }
                     
+                    if (Config.L2JDEV_CHAMPION_ENABLE && isChampion())
+                    {
+                        exp *= Config.L2JDEV_CHAMPION_REWARDS;
+                        sp *= Config.L2JDEV_CHAMPION_REWARDS;
                     }


+        if (attacker != null && isRaidBoss() && isChampion())
+         {

+        // Apply Special Item drop with random(rnd) quantity(qty) for champions.
+        if (Config.L2JDEV_CHAMPION_ENABLE && isChampion() && ((Config.L2JDEV_CHAMPION_REWARD_LOWER_LVL_ITEM_CHANCE > 0) || (Config.L2JDEV_CHAMPION_REWARD_HIGHER_LVL_ITEM_CHANCE > 0)))
+        {
+            int champqty = Rnd.get(Config.L2JDEV_CHAMPION_REWARD_QTY);
+            IntIntHolder item = new IntIntHolder(Config.L2JDEV_CHAMPION_REWARD_ID, ++champqty);
+            
+            if ((player.getStatus().getLevel() <= player.getStatus().getLevel()) && (Rnd.get(100) < Config.L2JDEV_CHAMPION_REWARD_LOWER_LVL_ITEM_CHANCE))
+            {
+                if (Config.AUTO_LOOT || isFlying())
+                {
+                    player.addItem("ChampionLoot", item.getId(), item.getValue(), this, true); // Give the item(s) to the L2PcInstance that has killed the L2Attackable
+                }
+                else
+                {
+                    dropItem(player, item);
+                }
+            }
+            else if ((player.getStatus().getLevel() > player.getStatus().getLevel()) && (Rnd.get(100) < Config.L2JDEV_CHAMPION_REWARD_HIGHER_LVL_ITEM_CHANCE))
+            {
+                if (Config.AUTO_LOOT || isFlying())
+                {
+                    player.addItem("ChampionLoot", item.getId(), item.getValue(), this, true); // Give the item(s) to the L2PcInstance that has killed the L2Attackable
+                }
+                else
+                {
+                    dropItem(player, item);
+                }
+            }
+        }
@@ -604,6 +622,7 @@
         {
             ItemInstance item = ItemInstance.create(holder.getId(), holder.getValue(), player, this);
             item.setDropProtection(player.getObjectId(), isRaidBoss());
+            item.setDropProtection(player.getObjectId(), isChampion());
             item.setInstance(getInstance(), false);

 

 

1 answer to this question

Recommended Posts

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
Answer this question...

×   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

    • Hello, I'm looking for classic client for l2 gold or l2 gold weapons for classic 166 version
    • Good afternoon   ⚡CAN'T GO TO THE ONLINE STORE? OPEN THE SITE VIA VPN OR TOR BROWSER⚡ ⚡PREMIUM QUALITY ACCOUNTS, INSTANT DELIVERY, FREE CONSULTATIONS, RELIABLE WORK⚡   ✔ Ready accounts ✔   BUSINESS ACCOUNTS ☟ Blackcatcard Business LV, Volet com (AdvCash) Business EU, Xapo Bank Business EU, Finom Business, PayPal Business, Payset Business, Stripe Business, Payoneer Business EU, Wise Business UK/EU, Revolut Business EU/UK, N26 Business DE, Wallester Business EU, Mistertango Business LV   BANKS, NATIONAL BANKS ☟ Ceska Sporitelna, KASIKORNBANK, BBVA, CommerzBank, Santander, Kaspi Bank, AlfaBank, Raiffeisen, mBank, Paribas, Bereke Bank, Freedom Bank   PAYMENT SYSTEMS ☟ Bunq on emulator (DE, NL, FR, ES, IE ibans), Revolut on emulator (UK/EU), ICard, BlackCatCard, Vivid DE, Bankera, Bitsa, Wise EU/UK, N26 DE on emulator, Skrill, Neteller, Trasta, Wirex, Lama, Paysera, 4x4 io, Weststein, Paysafecard, Paysend, Genome, Conotoxia, Mybrocard, Payz Silver, Pockit UK, NagaPay, Volet com, SpectroCoin, SwissMoney, Yuh, Lydia / Sumeria, Ka.App, Wittix, Western Union, MyGuava   CRYPTOEXCHANGE ☟ Poloniex, Bitmart, Kraken, WhiteBit, Quppy, Nexo, Gate, OKX, Paybis, Paxful, Huobi (HTX), xcoins com, Bit2Me, Bybit LVL 2, KuCoin, Binance LVL 2, Mexc, Latoken   Contact via telegram - in the first post of the topic!
    • Sell "Amoral" Classic Armor and Weapon.   Custom "Amoral" Draconic Set YouTube Custom "Amoral" Imperial Set YouTube Custom "Amoral" Dark Crystal Robe YouTube Custom "Amoral" Classic S-Grade Weapon YouTube My Contacts Telegram  
    • Greetings to all! I offer a scope for client modification. What services do I provide: 1) Transfer of any Weapon, Armor, Accessories, from any chronicles to yours. 2) Creating exclusive add-ons. 3) Repainting of Armor, Weapons аnd Accessories. 4) Packing the icons you need and other things. 5) Creating NPCs with and without effects. 6) Create Monsters and Raid bosses, with effects and sounds. 7) HTLM NPC design. Creating Buttons and other things for your project. And much more If you have any questions, write in  Telegram. You can find some of the works here  YouTube
  • Topics

×
×
  • Create New...