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 classConfig{+publicstatic final String CHAMPION_FILE ="./config/JDev/event/ChampionMobs.properties";+publicstatic boolean L2JDEV_CHAMPION_ENABLE;+publicstatic boolean L2JDEV_CHAMPION_PASSIVE;+publicstaticint L2JDEV_CHAMPION_FREQUENCY;+publicstaticString L2JDEV_CHAMP_TITLE;+publicstaticint L2JDEV_CHAMP_MIN_LVL;+publicstaticint L2JDEV_CHAMP_MAX_LVL;+publicstaticint L2JDEV_CHAMPION_HP;+publicstaticint L2JDEV_CHAMPION_REWARDS;+publicstaticfloat L2JDEV_CHAMPION_ADENAS_REWARDS;+publicstaticfloat L2JDEV_CHAMPION_HP_REGEN;++publicstaticint L2JDEV_CHAMPION_REWARD_LOWER_LVL_ITEM_CHANCE;+publicstaticint L2JDEV_CHAMPION_REWARD_HIGHER_LVL_ITEM_CHANCE;+publicstaticint L2JDEV_CHAMPION_REWARD_ID;+publicstaticint L2JDEV_CHAMPION_REWARD_QTY;+publicstatic 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 instanceofMonster)&&(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..1c2d3e5100644--- 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;+}++publicvoid setChampion(boolean chanpion)+{+ _champion =true;+ _champion = chanpion;++}+publicvoid 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..1570565100644--- 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 instanceofMonster)
_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..6af2c38100644--- 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 =newIntIntHolder(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);+}+}+elseif((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);
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.
Hi there!
Based on the below i adapted the champion mod code for acis 401.
Not my proudest work but it gets the job done.
https://pastebin.com/GR78sg0Z
Lineage 2 Chronicle 2 system folder:
https://mega.nz/file/qckEHIIb#zQP_nCxF0IJDEr5xvxnEBdHWJGIq_i0cEdMT2U_RKrE
Patch for win xp,win7-win10.
Protocol 485.
Default L2ini ip=127.0.0.1 L2ini
Editor in the pack, patch is clear.
A good starting point for most setups would be a server with at least 16 GB of RAM and a multi-core processor. Also, ensure you have SSD storage; it's much faster than traditional hard drives.
If you’re considering Offshore hosting, you might want to check out some providers specializing in this. They often offer excellent privacy and reliability features. Overall, think about your needs and scale accordingly. You want a server that can grow with your business without breaking the bank.
Question
MEIRELES
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![🙏](https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/72x72/1f64f.png)
Propriedades:
Diff:
Link to comment
Share on other sites
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.