Jigsaw 10 Опубликовано 13 апреля, 2021 Привет. Что нужно изменить в квесте, что бы давало не 30, а 1000 репутации за коготь? private static final int CLAN_POINTS_REWARD = 1000 - не помогает. Я - ноль в джава, перечитывание тем с мануалами о создании и редактировании квестов не помогло. Господа говорят, что эта (тык) моя тема относится к ядру, поэтому помощь приветствуется. СБОРКА (тык) Спойлер package quests; import l2ft.gameserver.model.pledge.Clan; import l2ft.gameserver.model.Player; import l2ft.gameserver.model.instances.NpcInstance; import l2ft.gameserver.model.quest.Quest; import l2ft.gameserver.model.quest.QuestState; import l2ft.gameserver.network.l2.s2c.SystemMessage; import l2ft.gameserver.scripts.ScriptFile; public class _510_AClansReputation extends Quest implements ScriptFile { private static final int VALDIS = 31331; private static final int CLAW = 8767; private static final int CLAN_POINTS_REWARD = 1000; @Override public void onLoad() { } @Override public void onReload() { } @Override public void onShutdown() { } public _510_AClansReputation() { super(PARTY_ALL); addStartNpc(VALDIS); for(int npc = 22215; npc <= 22217; npc++) addKillId(npc); } @Override public String onEvent(String event, QuestState st, NpcInstance npc) { int cond = st.getCond(); String htmltext = event; if(event.equals("31331-3.htm")) { if(cond == 0) { st.setCond(1); st.setState(STARTED); } } else if(event.equals("31331-6.htm")) { st.playSound(SOUND_FINISH); st.exitCurrentQuest(true); } return htmltext; } @Override public String onTalk(NpcInstance npc, QuestState st) { String htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html> Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rolo 279 Опубликовано 13 апреля, 2021 Судя по названию должно работать, Вы бы не могли выложить сам скрипт отдельно, чтобы не качать всю сборку? ) Возможно там напрямую указана цифра и заданная переменная в награде не используется. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jigsaw 10 Опубликовано 14 апреля, 2021 23 часа назад, Rolo сказал: Судя по названию должно работать, Вы бы не могли выложить сам скрипт отдельно, чтобы не качать всю сборку? ) Возможно там напрямую указана цифра и заданная переменная в награде не используется. _510_AClansReputation.java Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rolo 279 Опубликовано 14 апреля, 2021 Вот это, конечно, какая-то странная история: if(count > 10) pointsCount += count % 10 * 118; однако выглядит адекватно, заданное Вами значение должно считываться и работать адекватно, если я внимательно смотрел. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Frider1k 0 Опубликовано 14 апреля, 2021 _510_AClansReputation.java Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Phoenix 63 Опубликовано 14 апреля, 2021 st.takeItems(CLAW, -1); забрали всё int pointsCount = CLAN_POINTS_REWARD * (int) count; 1000 * на количество итемов которые забрали if(count > 10) если итемов больше чем 10 то расчет по формуле ниже pointsCount += count % 10 * 118; тогда вернее будет вырезать if(count > 10) pointsCount += count % 10 * 118; и будет за каждый итем CLAW давать по 1к репы Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rolo 279 Опубликовано 15 апреля, 2021 (изменено) 3 часа назад, Phoenix сказал: st.takeItems(CLAW, -1); забрали всё int pointsCount = CLAN_POINTS_REWARD * (int) count; 1000 * на количество итемов которые забрали if(count > 10) если итемов больше чем 10 то расчет по формуле ниже pointsCount += count % 10 * 118; тогда вернее будет вырезать if(count > 10) pointsCount += count % 10 * 118; и будет за каждый итем CLAW давать по 1к репы Ну не совсем по формуле ниже. Если итемов строго больше 10-ти, тогда к текущему количеству идет кривой и нелогичный бонус в виде остатка от целочисленного деления умноженного на 118 (т.е. бонус при сдаче 19 итемов будет намного больше чем при сдаче соткни, логично). Но это бонус к текущему количеству, а не замена текущей формулы. Но насчет вырезать эти строки нафиг - полностью согласен. )) Изменено 15 апреля, 2021 пользователем Rolo Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jigsaw 10 Опубликовано 17 апреля, 2021 В 14.04.2021 в 23:17, Phoenix сказал: тогда вернее будет вырезать if(count > 10) pointsCount += count % 10 * 118; и будет за каждый итем CLAW давать по 1к репы В 15.04.2021 в 02:22, Rolo сказал: Ну не совсем по формуле ниже. Но насчет вырезать эти строки нафиг - полностью согласен. )) Увы, что-то по-прежнему не так Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rolo 279 Опубликовано 17 апреля, 2021 Такое впечатление, что квест читается совсем не из скрипта выше, либо он не компилится после правок. Учитывая приведенный выше код, значению в 30 клан поинтов просто неоткуда взяться, потому ошибка где-то не там. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
spain 7 Опубликовано 17 апреля, 2021 можно голову не ломать. взять ид итема квеста за рахну пок лан репутации. вставить куда нужно в дроп или продажу. поменять его с квеста на обычный итем для передачи. брать квест и менять за 1шт по 1000 репы Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 17 апреля, 2021 скрипты уже скомпилированы и находятся в l2ft-scripts.jar Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты