Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Evento Blessing of Experience

Iniciado por Swarlog, Ago 06, 2022, 02:13 AM

Tema anterior - Siguiente tema

Swarlog




CitarIntroducción:

Hoy os traigo un evento para Interlude, llamada "Bendición de experiencia." Conozca el evento final Gracia Epilogue, Freya, High Five llamados "Regalo de vitalidad?" Bueno, no lo hacemos Interlude vitalidad, pero sí aumenta la experiencia, por lo que estamos aquí.
Funciona de la misma manera que esta vitalidad hace.

CitarDescripción:

• Script configurable.
• Refuerzo de la experiencia Configurable.
• editable NPC.
• Buff dura 2 horas.
• Al conectar subclases / Die, se retira la piel de ante.
• Icono buff Custom / Descripción / efecto.

CitarCORE

### Eclipse Workspace Patch 1.0
#P aCis_gameserver
Index: java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java (revision 2)
+++ java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java (working copy)
@@ -76,12 +76,15 @@
* <li>If the L2PcInstance increases its level, manage the increase level task (Max MP, Max MP, Recommandation, Expertise and beginner skills...)</li>
* <li>If the L2PcInstance increases its level, send UserInfo to the L2PcInstance</li>
* </ul>
- * @param addToExp The Experience value to add
- * @param addToSp The SP value to add
*/
@Override
public boolean addExpAndSp(long addToExp, int addToSp)
{
+ return addExpAndSp(addToExp, addToSp, false);
+ }
+
+ public boolean addExpAndSp(long addToExp, int addToSp, boolean useBonuses)
+ {
float ratioTakenByPet = 0;
// Player is Gm and acces level is below or equal to GM_DONT_TAKE_EXPSP and is in party, don't give Xp/Sp
L2PcInstance activeChar = getActiveChar();
@@ -88,6 +91,18 @@
if (!activeChar.getAccessLevel().canGainExp())
return false;

+ double bonusExp = Config.EXPERIENCE_BLESSING_BONUS;
+ double bonusSp = Config.EXPERIENCE_BLESSING_BONUS;
+
+ if (useBonuses)
+ {
+ bonusExp = getExpBonusMultiplier();
+ bonusSp = getSpBonusMultiplier();
+ }
+
+ addToExp *= bonusExp;
+ addToSp *= bonusSp;
+
// if this player has a pet that takes from the owner's Exp, give the pet Exp now
if (activeChar.hasPet())
{
@@ -381,4 +396,36 @@

return (getRunSpeed() * 70) / 100;
}
+
+ public double getExpBonusMultiplier()
+ {
+ double bonus = 1.0;
+ double bonusExp = 1.0;
+
+ if (bonusExp > 1)
+ {
+ bonus += (bonusExp - 1);
+ }
+
+ bonus = Math.max(bonus, 1);
+ bonus = Math.min(bonus, 3.5);
+
+ return bonus;
+ }
+
+ public double getSpBonusMultiplier()
+ {
+ double bonus = 1.0;
+ double bonusSp = 1.0;
+
+ if (bonusSp > 1)
+ {
+ bonus += (bonusSp - 1);
+ }
+
+ bonus = Math.max(bonus, 1);
+ bonus = Math.min(bonus, 3.5);
+
+ return bonus;
+ }
}
\ No newline at end of file
Index: config/events.properties
===================================================================
--- config/events.properties (revision 2)
+++ config/events.properties (working copy)
@@ -245,4 +245,14 @@
AltFishChampionshipReward2 = 500000
AltFishChampionshipReward3 = 300000
AltFishChampionshipReward4 = 200000
-AltFishChampionshipReward5 = 100000
\ No newline at end of file
+AltFishChampionshipReward5 = 100000
+
+#=============================================================
+# Blessing of Experience
+#=============================================================
+# If the buff 'Blessing of Experience' is active, you can use this
+# configuration to edit the experience multiplier.
+# When you have the effects of 'Blessing of Experience', the experience
+# will be increased 200%.
+# Default: 2.0
+ExperienceBlessingBonus = 2.0
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 2)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -9136,12 +9136,19 @@
@Override
public void addExpAndSp(long addToExp, int addToSp)
{
- getStat().addExpAndSp(addToExp, addToSp);
+ if (this.getFirstEffect(7065) != null)
+ {
+ getStat().addExpAndSp(addToExp, addToSp, false);
+ }
+ else
+ {
+ getStat().addExpAndSp(addToExp, addToSp, true);
+ }
}

public void removeExpAndSp(long removeExp, int removeSp)
{
- getStat().removeExpAndSp(removeExp, removeSp);
+ getStat().removeExpAndSp(removeExp, removeSp, true);
}

@Override
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java (revision 2)
+++ java/net/sf/l2j/Config.java (working copy)
@@ -223,6 +223,9 @@
public static int ALT_FISH_CHAMPIONSHIP_REWARD_4;
public static int ALT_FISH_CHAMPIONSHIP_REWARD_5;

+ /** Blessing of Experience Bonus */
+ public static double EXPERIENCE_BLESSING_BONUS;
+
// --------------------------------------------------
// HexID
// --------------------------------------------------
@@ -875,6 +878,8 @@
ALT_FISH_CHAMPIONSHIP_REWARD_4 = events.getProperty("AltFishChampionshipReward4", 200000);
ALT_FISH_CHAMPIONSHIP_REWARD_5 = events.getProperty("AltFishChampionshipReward5", 100000);

+ EXPERIENCE_BLESSING_BONUS = events.getProperty("ExperienceBlessingBonus", 1.0);
+
// FloodProtector
ExProperties security = load(FLOOD_PROTECTOR_FILE);
loadFloodProtectorConfig(security, FLOOD_PROTECTOR_ROLL_DICE, "RollDice", "42");

CitarPasos de la instalación:

1 - Instalar núcleo parche.
2 - Pegar la APN y skill.xml en distintos archivos que coincidan.
3 - Ir a: Gameserver / data / scripts y crear una carpeta llamada "eventos" y pegar en la carpeta de eventos con el guión allí. El directorio será como: gameserver / data / scripts / eventos / BlessingOfExperience
4 - Poner esta línea: eventos / BlessingOfExperience / Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate el archivo: scripts.cfg.
5 - Instale el cliente de parche con L2Fileedit.

Créditos: Colet