L2JMobius
Public Development => Bug Reports => Topic started by: emptyslash on July 29, 2025, 11:25:49 AM
-
file:
L2J_Mobius\L2J_Mobius_01.0_Ertheia\java\org\l2jmobius\gameserver\model\quest\QuestState.java
i didn't make a patch, because it's a core code. one of these two methods doesn't work properly. for example, quest10359 has lines:
if (getQuestItemsCount(killer, FRAGMENT) == 20)
{
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
qs.setCond(3);
}and it doesnt change condition to 3. but if i change it to
if (getQuestItemsCount(killer, FRAGMENT) == 20)
{
// playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
qs.setCond(3,true);
}it works: sets condition properly and plays the sound.
there are two different actions in these two methods:
set(COND_VAR, String.valueOf(value));
set(COND_VAR, Integer.toString(value)); - probably wrong?
public void setCond(int value, boolean playQuestMiddle)
{
if (_simulated)
{
return;
}
if (!isStarted())
{
return;
}
set(COND_VAR, String.valueOf(value));
if (playQuestMiddle)
{
_player.sendPacket(QuestSound.ITEMSOUND_QUEST_MIDDLE.getPacket());
}
}
public void setCond(int value)
{
if (_simulated)
{
return;
}
if (isStarted())
{
set(COND_VAR, Integer.toString(value));
}
}