L2JMobius

Public Development => General Discussion => Topic started by: ZhanetL2 on March 05, 2025, 12:03:24 AM

Title: Quest Drop Rate
Post by: ZhanetL2 on March 05, 2025, 12:03:24 AM
Hello again everyone , today i have try to make quest drop rate 25 , and i have try to kill some mobs in hot springs but still drop 1 quest item ?
 Any idea what is the problem?
(https://ibb.co/gFQxpyFJ)
https://ibb.co/gFQxpyFJ
Title: Re: Quest Drop Rate
Post by: BazookaRpm on March 05, 2025, 12:07:14 AM
Which quest are you reviewing? You should also review the Java for the corresponding quest.

check this.
Title: Re: Quest Drop Rate
Post by: ZhanetL2 on March 05, 2025, 12:31:22 AM
Which quest are you reviewing? You should also review the Java for the corresponding quest.

check this.
The Finest Food , hot springs quest for TT recs
Title: Re: Quest Drop Rate
Post by: Naker on March 05, 2025, 12:50:32 AM
Hello again everyone , today i have try to make quest drop rate 25 , and i have try to kill some mobs in hot springs but still drop 1 quest item ?
 Any idea what is the problem?
(https://ibb.co/gFQxpyFJ)
https://ibb.co/gFQxpyFJ
You are sure that is not the rate to get the item? I mean is rate not amount .
If is only for one quest change it on the script of the quest
Title: Re: Quest Drop Rate
Post by: BazookaRpm on March 05, 2025, 01:09:28 AM
check.

Code: [Select]
/*
 * This file is part of the L2J Mobius project.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package quests.Q00623_TheFinestFood;

import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;

public class Q00623_TheFinestFood extends Quest
{
// NPC
private static final int JEREMY = 31521;
// Monsters
private static final int FLAVA = 21316;
private static final int BUFFALO = 21315;
private static final int ANTELOPE = 21318;
// Items
private static final int LEAF_OF_FLAVA = 7199;
private static final int BUFFALO_MEAT = 7200;
private static final int ANTELOPE_HORN = 7201;

public Q00623_TheFinestFood()
{
super(623);
registerQuestItems(LEAF_OF_FLAVA, BUFFALO_MEAT, ANTELOPE_HORN);
addStartNpc(JEREMY);
addTalkId(JEREMY);
addKillId(FLAVA, BUFFALO, ANTELOPE);
}

[member=79]override[/member]
public String onEvent(String event, Npc npc, Player player)
{
String htmltext = event;
final QuestState st = getQuestState(player, false);
if (st == null)
{
return htmltext;
}

if (event.equals("31521-02.htm"))
{
if (player.getLevel() >= 71)
{
st.startQuest();
}
else
{
htmltext = "31521-03.htm";
}
}
else if (event.equals("31521-05.htm"))
{
takeItems(player, LEAF_OF_FLAVA, -1);
takeItems(player, BUFFALO_MEAT, -1);
takeItems(player, ANTELOPE_HORN, -1);

final int luck = getRandom(100);
if (luck < 11)
{
giveAdena(player, 25000, true);
giveItems(player, 6849, 1);
}
else if (luck < 23)
{
giveAdena(player, 65000, true);
giveItems(player, 6847, 1);
}
else if (luck < 33)
{
giveAdena(player, 25000, true);
giveItems(player, 6851, 1);
}
else
{
giveAdena(player, 73000, true);
addExpAndSp(player, 230000, 18250);
}

st.exitQuest(true, true);
}

return htmltext;
}

[member=79]override[/member]
public String onTalk(Npc npc, Player player)
{
String htmltext = getNoQuestMsg(player);
final QuestState st = getQuestState(player, true);

switch (st.getState())
{
case State.CREATED:
{
htmltext = "31521-01.htm";
break;
}
case State.STARTED:
{
final int cond = st.getCond();
if (cond == 1)
{
htmltext = "31521-06.htm";
}
else if (cond == 2)
{
if ((getQuestItemsCount(player, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(player, BUFFALO_MEAT) >= 100) && (getQuestItemsCount(player, ANTELOPE_HORN) >= 100))
{
htmltext = "31521-04.htm";
}
else
{
htmltext = "31521-07.htm";
}
}
break;
}
}

return htmltext;
}

[member=79]override[/member]
public String onKill(Npc npc, Player player, boolean isPet)
{
final QuestState qs = getRandomPartyMemberState(player, 1, 3, npc);
if (qs == null)
{
return null;
}
final Player partyMember = qs.getPlayer();

final QuestState st = getQuestState(partyMember, false);
if (st == null)
{
return null;
}

switch (npc.getId())
{
case FLAVA:
{
if (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) < 100)
{
giveItems(partyMember, LEAF_OF_FLAVA, 1);
if ((getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100) && (getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
case BUFFALO:
{
if (getQuestItemsCount(partyMember, BUFFALO_MEAT) < 100)
{
giveItems(partyMember, BUFFALO_MEAT, 1);
if ((getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100) && (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
case ANTELOPE:
{
if (getQuestItemsCount(partyMember, ANTELOPE_HORN) < 100)
{
giveItems(partyMember, ANTELOPE_HORN, 1);
if ((getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100) && (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
}

return null;
}
}


only chatgpt, u resolve u problem
Title: Re: Quest Drop Rate
Post by: ZhanetL2 on March 05, 2025, 09:15:43 AM
check.

Code: [Select]
/*
 * This file is part of the L2J Mobius project.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package quests.Q00623_TheFinestFood;

import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;

public class Q00623_TheFinestFood extends Quest
{
// NPC
private static final int JEREMY = 31521;
// Monsters
private static final int FLAVA = 21316;
private static final int BUFFALO = 21315;
private static final int ANTELOPE = 21318;
// Items
private static final int LEAF_OF_FLAVA = 7199;
private static final int BUFFALO_MEAT = 7200;
private static final int ANTELOPE_HORN = 7201;

public Q00623_TheFinestFood()
{
super(623);
registerQuestItems(LEAF_OF_FLAVA, BUFFALO_MEAT, ANTELOPE_HORN);
addStartNpc(JEREMY);
addTalkId(JEREMY);
addKillId(FLAVA, BUFFALO, ANTELOPE);
}

[member=79]override[/member]
public String onEvent(String event, Npc npc, Player player)
{
String htmltext = event;
final QuestState st = getQuestState(player, false);
if (st == null)
{
return htmltext;
}

if (event.equals("31521-02.htm"))
{
if (player.getLevel() >= 71)
{
st.startQuest();
}
else
{
htmltext = "31521-03.htm";
}
}
else if (event.equals("31521-05.htm"))
{
takeItems(player, LEAF_OF_FLAVA, -1);
takeItems(player, BUFFALO_MEAT, -1);
takeItems(player, ANTELOPE_HORN, -1);

final int luck = getRandom(100);
if (luck < 11)
{
giveAdena(player, 25000, true);
giveItems(player, 6849, 1);
}
else if (luck < 23)
{
giveAdena(player, 65000, true);
giveItems(player, 6847, 1);
}
else if (luck < 33)
{
giveAdena(player, 25000, true);
giveItems(player, 6851, 1);
}
else
{
giveAdena(player, 73000, true);
addExpAndSp(player, 230000, 18250);
}

st.exitQuest(true, true);
}

return htmltext;
}

[member=79]override[/member]
public String onTalk(Npc npc, Player player)
{
String htmltext = getNoQuestMsg(player);
final QuestState st = getQuestState(player, true);

switch (st.getState())
{
case State.CREATED:
{
htmltext = "31521-01.htm";
break;
}
case State.STARTED:
{
final int cond = st.getCond();
if (cond == 1)
{
htmltext = "31521-06.htm";
}
else if (cond == 2)
{
if ((getQuestItemsCount(player, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(player, BUFFALO_MEAT) >= 100) && (getQuestItemsCount(player, ANTELOPE_HORN) >= 100))
{
htmltext = "31521-04.htm";
}
else
{
htmltext = "31521-07.htm";
}
}
break;
}
}

return htmltext;
}

[member=79]override[/member]
public String onKill(Npc npc, Player player, boolean isPet)
{
final QuestState qs = getRandomPartyMemberState(player, 1, 3, npc);
if (qs == null)
{
return null;
}
final Player partyMember = qs.getPlayer();

final QuestState st = getQuestState(partyMember, false);
if (st == null)
{
return null;
}

switch (npc.getId())
{
case FLAVA:
{
if (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) < 100)
{
giveItems(partyMember, LEAF_OF_FLAVA, 1);
if ((getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100) && (getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
case BUFFALO:
{
if (getQuestItemsCount(partyMember, BUFFALO_MEAT) < 100)
{
giveItems(partyMember, BUFFALO_MEAT, 1);
if ((getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100) && (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
case ANTELOPE:
{
if (getQuestItemsCount(partyMember, ANTELOPE_HORN) < 100)
{
giveItems(partyMember, ANTELOPE_HORN, 1);
if ((getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100) && (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
}

return null;
}
}


only chatgpt, u resolve u problem


Yes bro but there in this file i don’t see where u can edit drop of quest item
Title: Re: Quest Drop Rate
Post by: CostyKiller on March 05, 2025, 10:47:24 AM
Try changing
Code: [Select]
giveItems to
Code: [Select]
rewardItems in the quest script.
Title: Re: Quest Drop Rate
Post by: ZhanetL2 on March 05, 2025, 12:37:00 PM
Try changing
Code: [Select]
giveItems to
Code: [Select]
rewardItems in the quest script.
That it’’s when u complied the quest to give you 1x rec if i change reward id to 2/3-4 will givme  more recs ,,
 I need the  quest item drop not  quest reward drop
Title: Re: Quest Drop Rate
Post by: Naker on March 05, 2025, 01:15:20 PM
That it’’s when u complied the quest to give you 1x rec if i change reward id to 2/3-4 will givme  more recs ,,
 I need the  quest item drop not  quest reward drop
Then change the amount of items on the method onkill….
Code: [Select]
public String onKill(Npc npc, Player player, boolean isPet)
{
final QuestState qs = getRandomPartyMemberState(player, 1, 3, npc);
if (qs == null)
{
return null;
}
final Player partyMember = qs.getPlayer();

final QuestState st = getQuestState(partyMember, false);
if (st == null)
{
return null;
}

switch (npc.getId())
{
case FLAVA:
{
if (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) < 100)
{
giveItems(partyMember, LEAF_OF_FLAVA, [color=red]1)[/color];
if ((getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100) && (getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
case BUFFALO:
{
if (getQuestItemsCount(partyMember, BUFFALO_MEAT) < 100)
{
giveItems(partyMember, BUFFALO_MEAT, [color=red]1)[/color];
if ((getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100) && (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
case ANTELOPE:
{
if (getQuestItemsCount(partyMember, ANTELOPE_HORN) < 100)
{
giveItems(partyMember, ANTELOPE_HORN,[color=red] 1[/color]);
if ((getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100) && (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
}
On red you have the number you need to change for whatever number you want
giveItems(partyMember, BUFFALO_MEAT, 1);
giveItems(partyMember, LEAF_OF_FLAVA, 1);
giveItems(partyMember, ANTELOPE_HORN, 1);
Title: Re: Quest Drop Rate
Post by: BazookaRpm on March 05, 2025, 01:49:06 PM
One tries to help, but does not do his part, check the java code, take it and paste it into chatgpt, tell him to explain how the quest works, how the quest item drop method and reward works, it did not cost much.
Title: Re: Quest Drop Rate
Post by: ZhanetL2 on March 05, 2025, 04:35:11 PM
Then change the amount of items on the method onkill….
Code: [Select]
public String onKill(Npc npc, Player player, boolean isPet)
{
final QuestState qs = getRandomPartyMemberState(player, 1, 3, npc);
if (qs == null)
{
return null;
}
final Player partyMember = qs.getPlayer();

final QuestState st = getQuestState(partyMember, false);
if (st == null)
{
return null;
}

switch (npc.getId())
{
case FLAVA:
{
if (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) < 100)
{
giveItems(partyMember, LEAF_OF_FLAVA, [color=red]1)[/color];
if ((getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100) && (getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
case BUFFALO:
{
if (getQuestItemsCount(partyMember, BUFFALO_MEAT) < 100)
{
giveItems(partyMember, BUFFALO_MEAT, [color=red]1)[/color];
if ((getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100) && (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
case ANTELOPE:
{
if (getQuestItemsCount(partyMember, ANTELOPE_HORN) < 100)
{
giveItems(partyMember, ANTELOPE_HORN,[color=red] 1[/color]);
if ((getQuestItemsCount(partyMember, ANTELOPE_HORN) >= 100) && (getQuestItemsCount(partyMember, LEAF_OF_FLAVA) >= 100) && (getQuestItemsCount(partyMember, BUFFALO_MEAT) >= 100))
{
st.setCond(2, true);
}
else
{
playSound(partyMember, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
break;
}
}
On red you have the number you need to change for whatever number you want
giveItems(partyMember, BUFFALO_MEAT, 1);
giveItems(partyMember, LEAF_OF_FLAVA, 1);
giveItems(partyMember, ANTELOPE_HORN, 1);
okey good man , thank you for your time. :P