255 tutorial (вырезать)

Psycho

Просветленный
Модератор
Орден Золотого Заката
Победитель в номинации 2023
Победитель в номинации 2022
Победитель в номинации 2021
Участник Новогоднего Фонда 2021
Неукротимое пламя
Старожил II степени
Победитель в номинации 2020
Победитель в номинации 2019
Знаток великого письма
Знаток письма
Веселый флудер
Мастер реакций
Любитель реакций
Знаток Lineage2
Старожил I степени
Победитель в номинации 2017
Победитель в номинации 2016
Медаль за активность на Форуме
За веру и верность форуму
Сообщения
4 571
Розыгрыши
1
Решения
3
Репутация
4 360
Реакции
2 927
Баллы
2 438
Всем привет)
Ребят, как отключить его? Чтобы не появлялся квест, вопросик, и хтмл'ка.
Рылся в Player, EnterWorld, QuestState, нашел упоминания о нем, но пока не трогал. Мб ещё где-то привязан?
Сурсы лосты.
 
Код:
public String onEvent(String event, QuestState st, NpcInstance npc)
     {
         Player player = st.getPlayer();
         if(player == null)
               return null;
как вариант можно в условие всунуть что-то и квест не будет срабатывать
 
Player.java В нескольких местах
Найди метод onDeath
protected void onDeath(Creature killer)
и в нём найди и удали
if(getLevel() < 6)
processQuestEvent(255, "CE30", null);
Потом найди метод levelSet
private void levelSet(int levels)
и в нём удали
processQuestEvent(255, "CE40", null);
Дальше найди метод pickupItem
public boolean pickupItem(ItemInstance item, ItemLog logType)
и в нём удали
if(item.getItemId() == ItemTemplate.ITEM_ID_ADENA || item.getItemId() == 6353)//FIXME [G1ta0] хардкод
processQuestEvent(255, "CE" + item.getItemId(), null);
В пакете EnterWorld.java удали
activeChar.processQuestEvent(255, "UC", null);
Найди пакет CharacterCreate.java
Удали метод public static void startTutorialQuest(Player player)
public static void startTutorialQuest(Player player)
{
Quest q = QuestManager.getQuest(255);
if(q != null)
q.newQuestState(player, Quest.CREATED);
}
И в этом же пакете обращение к этому пакету startTutorialQuest(newChar);

Выпилить из RequestTutorialQuestionMark в методе protected void runImpl()
RequestTutorialPassCmdToServer аналогично
RequestTutorialLinkHtml аналогично
RequestTutorialClientEvent аналогично
в QuestState выили метод public void showTutorialHTML(String html)
public void showTutorialHTML(String html)
{
Player player = getPlayer();
if(player == null)
return;
String text = HtmCache.getInstance().getHtml("quests/_255_Tutorial/" + html, player);
player.sendPacket(new TutorialShowHtml(text));
}
В AdminQuests.java в методе ShowQuestList
private static boolean ShowQuestList(Player targetChar, Player activeChar)
Удали проверку на квест 255
if(qs != null && qs.getQuest().getId() != 255)
Стать должно так
if(qs != null)
Не забудь выпилить 999 квест
 
да хватит вполне заглушку в onEvent этого квеста воткнуть и все - чтобы при входе в него сразу обратно выносило
З.Ы. кстати да - кому вобще в свое время пришло в голову еще один туториал, 999, вводить? чем 255 то не хватало...
 
  • Мне нравится
Реакции: Influence

    Influence

    Баллов: 23
    поддерживаю, тоже самое написал выше
да хватит вполне заглушку в onEvent этого квеста воткнуть и все - чтобы при входе в него сразу обратно выносило
З.Ы. кстати да - кому вобще в свое время пришло в голову еще один туториал, 999, вводить? чем 255 то не хватало...
Точно так же как и с бинго и квестами на 3 профу
 
ну с квестами на 3 профу разумный подход, ибо там отличий то всего ничего, так что общий суперкласс просто напрашивался.

у меня и на линде так же сделано для 3 профы - ибо там квесты, раздельные для каждой расы отличаются друг от друга всего парой деталей, так что общий класс тоже сам напрашивался.
в итоге сами классы квестов на 3 профу лаконичные донельзя :)
Код:
package quests;

import l2p.gameserver.enums.Race;

/**
 * @author Gaikotsu
 * @version 4.1
 * @url https://l2central.info/wiki/Роковой_день_-_судьба_Людей
 */
public class _10341_DayOfDestinyHumansFate extends QuestDayOfDestiny
{
	private static final int Orven = 30857;

	public _10341_DayOfDestinyHumansFate()
	{
		super(17748);

		addRaceCheck(true, Race.HUMAN);
		addStartNpc(Orven);
	}
}
 
Player.java В нескольких местах
Найди метод onDeath
protected void onDeath(Creature killer)
и в нём найди и удали
if(getLevel() < 6)
processQuestEvent(255, "CE30", null);
Потом найди метод levelSet
private void levelSet(int levels)
и в нём удали
processQuestEvent(255, "CE40", null);
Дальше найди метод pickupItem
public boolean pickupItem(ItemInstance item, ItemLog logType)
и в нём удали
if(item.getItemId() == ItemTemplate.ITEM_ID_ADENA || item.getItemId() == 6353)//FIXME [G1ta0] хардкод
processQuestEvent(255, "CE" + item.getItemId(), null);
В пакете EnterWorld.java удали
activeChar.processQuestEvent(255, "UC", null);
Найди пакет CharacterCreate.java
Удали метод public static void startTutorialQuest(Player player)
public static void startTutorialQuest(Player player)
{
Quest q = QuestManager.getQuest(255);
if(q != null)
q.newQuestState(player, Quest.CREATED);
}
И в этом же пакете обращение к этому пакету startTutorialQuest(newChar);

Выпилить из RequestTutorialQuestionMark в методе protected void runImpl()
RequestTutorialPassCmdToServer аналогично
RequestTutorialLinkHtml аналогично
RequestTutorialClientEvent аналогично
в QuestState выили метод public void showTutorialHTML(String html)
public void showTutorialHTML(String html)
{
Player player = getPlayer();
if(player == null)
return;
String text = HtmCache.getInstance().getHtml("quests/_255_Tutorial/" + html, player);
player.sendPacket(new TutorialShowHtml(text));
}
В AdminQuests.java в методе ShowQuestList
private static boolean ShowQuestList(Player targetChar, Player activeChar)
Удали проверку на квест 255
if(qs != null && qs.getQuest().getId() != 255)
Стать должно так
if(qs != null)
Не забудь выпилить 999 квест
А 999 как? Не искал его ещё.
 
Player.java В нескольких местах
Найди метод onDeath
protected void onDeath(Creature killer)
и в нём найди и удали
if(getLevel() < 6)
processQuestEvent(255, "CE30", null);
Потом найди метод levelSet
private void levelSet(int levels)
и в нём удали
processQuestEvent(255, "CE40", null);
Дальше найди метод pickupItem
public boolean pickupItem(ItemInstance item, ItemLog logType)
и в нём удали
if(item.getItemId() == ItemTemplate.ITEM_ID_ADENA || item.getItemId() == 6353)//FIXME [G1ta0] хардкод
processQuestEvent(255, "CE" + item.getItemId(), null);
В пакете EnterWorld.java удали
activeChar.processQuestEvent(255, "UC", null);
Найди пакет CharacterCreate.java
Удали метод public static void startTutorialQuest(Player player)
public static void startTutorialQuest(Player player)
{
Quest q = QuestManager.getQuest(255);
if(q != null)
q.newQuestState(player, Quest.CREATED);
}
И в этом же пакете обращение к этому пакету startTutorialQuest(newChar);

Выпилить из RequestTutorialQuestionMark в методе protected void runImpl()
RequestTutorialPassCmdToServer аналогично
RequestTutorialLinkHtml аналогично
RequestTutorialClientEvent аналогично
в QuestState выили метод public void showTutorialHTML(String html)
public void showTutorialHTML(String html)
{
Player player = getPlayer();
if(player == null)
return;
String text = HtmCache.getInstance().getHtml("quests/_255_Tutorial/" + html, player);
player.sendPacket(new TutorialShowHtml(text));
}
В AdminQuests.java в методе ShowQuestList
private static boolean ShowQuestList(Player targetChar, Player activeChar)
Удали проверку на квест 255
if(qs != null && qs.getQuest().getId() != 255)
Стать должно так
if(qs != null)
Не забудь выпилить 999 квест

чёт сложно очень :D
 
чет вы совсем аж под корень рубите
не проще ли вывести в конфиг и там вырубить?
или это будет совсем не ла2?
 
Назад
Сверху Снизу