L2JMobius

Public Development => Bug Reports => Topic started by: emptyslash on July 29, 2025, 11:25:49 AM

Title: quest handler, setCond method
Post 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:
Code: [Select]
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
Code: [Select]
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?

Code: [Select]
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));
}
}