Перейти к содержанию
Авторизация  
IOPUCT

Статы STR, DEX, CON, INT, WIT, MEN получение за квест

Рекомендуемые сообщения

Доброго времени суток! Можно сделать как награду за квест, например +5 WIT или что другое на выбор? А в условии получения поставить "итем вещь" и 322 SP к примеру.

Спасибо!

HF 5 

Изменено пользователем IOPUCT

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно решить скриптом. Берем текущее значение и плюсуем к нему нужное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно решить скриптом. Берем текущее значение и плюсуем к нему нужное.

Я так понимаю в коде квеста добавить "<add order="0x40" stat="STR" val="4" />"

 

Только не знаю как тут его оформить в виде награды, файл лежит в "\gameserver\data\scripts\quests":

 

package quests;

 

import l2m.gameserver.model.base.Race;

import l2m.gameserver.model.instances.NpcInstance;

import l2m.gameserver.model.quest.Quest;

import l2m.gameserver.model.quest.QuestState;

import l2m.gameserver.scripts.ScriptFile;

 

/**

* Рейты не учитываются, награда специфичная

*/

public class _006_StepIntoTheFuture extends Quest implements ScriptFile {

//NPC

private static final int Roxxy = 30006;

private static final int Baulro = 30033;

private static final int Windawood = 30311;

//Quest Item

private static final int BaulrosLetter = 7571;

//Items

private static final int ScrollOfEscapeGiran = 7126;

private static final int MarkOfTraveler = 7570;

 

@@override

public void onLoad() {

}

 

@@override

public void onReload() {

}

 

@@override

public void onShutdown() {

}

 

public _006_StepIntoTheFuture() {

super(false);

addStartNpc(Roxxy);

 

addTalkId(Baulro);

addTalkId(Windawood);

 

addQuestItem(BaulrosLetter);

}

 

@@override

public String onEvent(String event, QuestState st, NpcInstance npc) {

String htmltext = event;

if (event.equalsIgnoreCase("rapunzel_q0006_0104.htm")) {

st.setCond(1);

st.setState(STARTED);

st.playSound(SOUND_ACCEPT);

} else if (event.equalsIgnoreCase("baul_q0006_0201.htm")) {

st.giveItems(BaulrosLetter, 1, false);

st.setCond(2);

st.playSound(SOUND_MIDDLE);

} else if (event.equalsIgnoreCase("sir_collin_windawood_q0006_0301.htm")) {

st.takeItems(BaulrosLetter, -1);

st.setCond(3);

st.playSound(SOUND_MIDDLE);

} else if (event.equalsIgnoreCase("rapunzel_q0006_0401.htm")) {

st.giveItems(ScrollOfEscapeGiran, 1, false);

 

st.giveItems(MarkOfTraveler, 1, false);

st.unset("cond");

st.playSound(SOUND_FINISH);

st.exitCurrentQuest(false);

}

return htmltext;

}

 

@@override

public String onTalk(NpcInstance npc, QuestState st) {

String htmltext = "noquest";

int npcId = npc.getNpcId();

int cond = st.getCond();

if (npcId == Roxxy) {

if (cond == 0)

if (st.getPlayer().getRace() == Race.human && st.getPlayer().getLevel() >= 3)

htmltext = "rapunzel_q0006_0101.htm";

else {

htmltext = "rapunzel_q0006_0102.htm";

st.exitCurrentQuest(true);

}

else if (cond == 1)

htmltext = "rapunzel_q0006_0105.htm";

else if (cond == 3)

htmltext = "rapunzel_q0006_0301.htm";

} else if (npcId == Baulro) {

if (cond == 1)

htmltext = "baul_q0006_0101.htm";

else if (cond == 2 && st.getQuestItemsCount(BaulrosLetter) > 0)

htmltext = "baul_q0006_0202.htm";

} else if (npcId == Windawood)

if (cond == 2 && st.getQuestItemsCount(BaulrosLetter) > 0)

htmltext = "sir_collin_windawood_q0006_0201.htm";

else if (cond == 2 && st.getQuestItemsCount(BaulrosLetter) == 0)

htmltext = "sir_collin_windawood_q0006_0302.htm";

else if (cond == 3)

htmltext = "sir_collin_windawood_q0006_0303.htm";

return htmltext;

}

}

 

Изменено пользователем IOPUCT

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я так понимаю в коде квеста добавить "<add order="0x40" stat="STR" val="4" />"

 

Только не знаю как тут его оформить в виде награды, файл лежит в "\gameserver\data\scripts\quests":

 

package quests;

 

import l2m.gameserver.model.base.Race;

import l2m.gameserver.model.instances.NpcInstance;

import l2m.gameserver.model.quest.Quest;

import l2m.gameserver.model.quest.QuestState;

import l2m.gameserver.scripts.ScriptFile;

 

/**

* Рейты не учитываются, награда специфичная

*/

public class _006_StepIntoTheFuture extends Quest implements ScriptFile {

//NPC

private static final int Roxxy = 30006;

private static final int Baulro = 30033;

private static final int Windawood = 30311;

//Quest Item

private static final int BaulrosLetter = 7571;

//Items

private static final int ScrollOfEscapeGiran = 7126;

private static final int MarkOfTraveler = 7570;

 

@@override

public void onLoad() {

}

 

@@override

public void onReload() {

}

 

@@override

public void onShutdown() {

}

 

public _006_StepIntoTheFuture() {

super(false);

addStartNpc(Roxxy);

 

addTalkId(Baulro);

addTalkId(Windawood);

 

addQuestItem(BaulrosLetter);

}

 

@@override

public String onEvent(String event, QuestState st, NpcInstance npc) {

String htmltext = event;

if (event.equalsIgnoreCase("rapunzel_q0006_0104.htm")) {

st.setCond(1);

st.setState(STARTED);

st.playSound(SOUND_ACCEPT);

} else if (event.equalsIgnoreCase("baul_q0006_0201.htm")) {

st.giveItems(BaulrosLetter, 1, false);

st.setCond(2);

st.playSound(SOUND_MIDDLE);

} else if (event.equalsIgnoreCase("sir_collin_windawood_q0006_0301.htm")) {

st.takeItems(BaulrosLetter, -1);

st.setCond(3);

st.playSound(SOUND_MIDDLE);

} else if (event.equalsIgnoreCase("rapunzel_q0006_0401.htm")) {

st.giveItems(ScrollOfEscapeGiran, 1, false);

 

st.giveItems(MarkOfTraveler, 1, false);

st.unset("cond");

st.playSound(SOUND_FINISH);

st.exitCurrentQuest(false);

}

return htmltext;

}

 

@@override

public String onTalk(NpcInstance npc, QuestState st) {

String htmltext = "noquest";

int npcId = npc.getNpcId();

int cond = st.getCond();

if (npcId == Roxxy) {

if (cond == 0)

if (st.getPlayer().getRace() == Race.human && st.getPlayer().getLevel() >= 3)

htmltext = "rapunzel_q0006_0101.htm";

else {

htmltext = "rapunzel_q0006_0102.htm";

st.exitCurrentQuest(true);

}

else if (cond == 1)

htmltext = "rapunzel_q0006_0105.htm";

else if (cond == 3)

htmltext = "rapunzel_q0006_0301.htm";

} else if (npcId == Baulro) {

if (cond == 1)

htmltext = "baul_q0006_0101.htm";

else if (cond == 2 && st.getQuestItemsCount(BaulrosLetter) > 0)

htmltext = "baul_q0006_0202.htm";

} else if (npcId == Windawood)

if (cond == 2 && st.getQuestItemsCount(BaulrosLetter) > 0)

htmltext = "sir_collin_windawood_q0006_0201.htm";

else if (cond == 2 && st.getQuestItemsCount(BaulrosLetter) == 0)

htmltext = "sir_collin_windawood_q0006_0302.htm";

else if (cond == 3)

htmltext = "sir_collin_windawood_q0006_0303.htm";

return htmltext;

}

}

 

То что выделено выше относится только к умениям. Как вариант: создать пассивное умение с этим статом и добавить ее игрокам за квест.

Изменено пользователем zGosu
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То что выделено выше относится только к умениям. Как вариант: создать пассивное умение с этим статом и добавить ее игрокам за квест.

Не могу вспомнить и найти, а есть квест напободие такого? Ну чтоб после выполнения какой нибудь скил давали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не могу вспомнить и найти, а есть квест напободие такого? Ну чтоб после выполнения какой нибудь скил давали.

не вспомню. но можете взять в пример добавления скила из админки. обычно за это отвечает метод addSkill(skill_id)

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не вспомню. но можете взять в пример добавления скила из админки. обычно за это отвечает метод addSkill(skill_id)

Только ещё не забыть его сохранить на игроке, да и скорее всего есть проверка на "левые скиллы" у игроков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только ещё не забыть его сохранить на игроке, да и скорее всего есть проверка на "левые скиллы" у игроков.

Что то вообще дремучий лес какой то) есть мысли как это сделать проще, получиться если отпишусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

предмет по типу руны опыта/сп, с пассивкой дающей прибавки к базовым статам.

 

простейший вариант

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

предмет по типу руны опыта/сп, с пассивкой дающей прибавки к базовым статам.

 

простейший вариант

Как вариант да, интересный, использовать их в качестве этого. Подумаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как вариант да, интересный, использовать их в качестве этого. Подумаю.

Ещё вариант → запихнуть в талики. Да и сам браслет можно использовать для этих целей.

a336ad4a851847b7bb7334ecaabf71f5.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как вариант да, интересный, использовать их в качестве этого. Подумаю.

я к примеру целый эвент у себя делал с самопальными рунами - их сбор из частей, выпадаемых с мобов, и использование для получения доп. бонусов к разным статам

 

примеры рун

http://l2i-ertheia.gaikotsu.ru/?show=item_info&id=90505

http://l2i-ertheia.gaikotsu.ru/?show=item_info&id=90509

http://l2i-ertheia.gaikotsu.ru/?show=item_info&id=90513

http://l2i-ertheia.gaikotsu.ru/?show=item_info&id=90517

Изменено пользователем Gaikotsu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...