Может быть кому-то будет полезно. Небольшой фикс ванильного квеста на отмытие PK.
1. Фикс уровня импа. Если взять ошейник на 80-ом уровне > ошейник дадут 79
2. Фикс гейта по уровню импа. Если взять ошейник на 40-ом, держать его в инвентаре, прокачаться до 50 без ошейника и призвать обратно импа, то имп появится обратно с равным уровнем владельца. А тут у него будет опять на уровень меньше (возможно позже сделаю апдейт чтобы сохранять статус импа в квесте)
1. Фикс уровня импа. Если взять ошейник на 80-ом уровне > ошейник дадут 79
2. Фикс гейта по уровню импа. Если взять ошейник на 40-ом, держать его в инвентаре, прокачаться до 50 без ошейника и призвать обратно импа, то имп появится обратно с равным уровнем владельца. А тут у него будет опять на уровень меньше (возможно позже сделаю апдейт чтобы сохранять статус импа в квесте)
Код:
diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/scripting/quest/Q422_RepentYourSins.java b/aCis_gameserver/java/net/sf/l2j/gameserver/scripting/quest/Q422_RepentYourSins.java
index 1048cf329..a45673ef2 100644
--- a/aCis_gameserver/java/net/sf/l2j/gameserver/scripting/quest/Q422_RepentYourSins.java
+++ b/aCis_gameserver/java/net/sf/l2j/gameserver/scripting/quest/Q422_RepentYourSins.java
@@ -96,7 +96,6 @@ public class Q422_RepentYourSins extends Quest
if (cond == 15)
{
st.setCond(16);
- st.set("level", player.getStatus().getLevel());
playSound(player, SOUND_ITEMGET);
takeItems(player, QITEM_PENITENT_MANACLES, -1);
giveItems(player, PENITENT_MANACLES, 1);
@@ -104,7 +103,6 @@ public class Q422_RepentYourSins extends Quest
// Case you return back to Black Judge with leftover of previous quest.
else if (cond == 16)
{
- st.set("level", player.getStatus().getLevel());
playSound(player, SOUND_ITEMGET);
takeItems(player, LEFT_PENITENT_MANACLES, -1);
giveItems(player, PENITENT_MANACLES, 1);
@@ -127,8 +125,8 @@ public class Q422_RepentYourSins extends Quest
// If Sin Eater is currently summoned, show a warning.
if (summon != null && summon.getNpcId() == 12564)
htmltext = "30981-16.htm";
- // If Sin Eater level is bigger than registered level, decrease PK counter by 1-10.
- else if (findSinEaterLvl(player) > st.getInteger("level"))
+ // If Sin Eater caught up with its owner's current level, decrease PK counter by 1-10.
+ else if (findSinEaterLvl(player) >= player.getStatus().getLevel())
{
takeItems(player, PENITENT_MANACLES, 1);
giveItems(player, LEFT_PENITENT_MANACLES, 1);
@@ -149,7 +147,6 @@ public class Q422_RepentYourSins extends Quest
else
{
htmltext = "30981-14.htm";
- st.set("level", player.getStatus().getLevel());
playSound(player, SOUND_MIDDLE);
player.setPkKills(player.getPkKills() - removePkAmount);
@@ -215,7 +212,7 @@ public class Q422_RepentYourSins extends Quest
else if (cond == 16)
{
if (player.getInventory().hasItems(PENITENT_MANACLES))
- htmltext = (findSinEaterLvl(player) > st.getInteger("level")) ? "30981-13.htm" : "30981-12.htm";
+ htmltext = (findSinEaterLvl(player) >= player.getStatus().getLevel()) ? "30981-13.htm" : "30981-12.htm";
else
htmltext = "30981-18.htm";
}
Код:
diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/instance/Pet.java b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/instance/Pet.java
index 4f42ba89c..90cc0467a 100644
--- a/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/instance/Pet.java
+++ b/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/instance/Pet.java
@@ -546,7 +546,9 @@ public class Pet extends Summon
}
else
{
- pet.getStatus().setLevel((template.getNpcId() == 12564) ? (byte) pet.getOwner().getStatus().getLevel() : template.getLevel());
+ pet.getStatus().setLevel((template.getNpcId() == 12564) ? (byte) Math.max(1, pet.getOwner().getStatus().getLevel() - 1) : template.getLevel());
pet.getStatus().setExp(pet.getStatus().getExpForThisLevel());
pet.getStatus().setMaxHpMp();
pet.setCurrentFed(pet.getPetData().maxMeal());
Последнее редактирование: