Daedra: Блог

 

Daedra

новичок

В фортресе вставка кристала в оружие лоу Ц стоит 250 гемстонов.
В л2сф стоит 97 гемстонов + 97 * 3000 аден.
Аналогично и с другим оружием.
Возник вопрос сколько стоит вставка кристала на офе?
 

Daedra

новичок

В квестах на смену профы часто нужно убить моба квестовым оружием.
Сейчас все равно чем убивать, лишь бы квестовое оружие было в инвентаре.
Можно добавить в класс QuestState такой метод:
 public int getActiveWeaponId() { return player.getActiveWeaponItem().getItemId(); } 

Тогда в квестах можно будет использовать конструкцию:
 if int(st.get("cond")) == 2 and st.getActiveWeaponId() == OLD_KNIGHT_SWORD_ID : 

Вместо:
 if int(st.get("cond")) == 2 and st.getQuestItemsCount(OLD_KNIGHT_SWORD_ID) > 0 : 
 

Daedra

новичок

Если у игрока нету древней адены, то Priest телепортирует в катакомбы бесплатно.
Исправляется так:
Файл D:\L2Fortress\L2_Fortress\java\l2f\gameserver\model\instances\L2SignsPriestInstance.java
класс L2SignsPriestInstance
метод onBypassFeedback
Если я правильно понял строка 101
int ancientAdenaAmount = ancientAdena == null ? 0 : ancientAdena.getCount();
в переменной ancientAdenaAmount сохраняется количество древней адены в инвенторе игрока
Далее строка 394 - обработка команды телепорта в катакомбы:
 if(ancientAdenaCost > 0) { L2ItemInstance temp = player.getInventory().findItemByItemId(SevenSigns.ANCIENT_ADENA_ID); if(temp != null && ancientAdenaCost > temp.getCount()) { player.sendPacket(new SystemMessage(SystemMessage.YOU_DO_NOT_HAVE_ENOUGH_ADENA)); break; } player.getInventory().destroyItemByItemId(SevenSigns.ANCIENT_ADENA_ID, ancientAdenaCost, true, true); } 

Ошибка кроется во втором условии, temp != null т.е. если древней нету вообще, то ничего и не забирается.
Этот код можно упростить так, одновременно исправляя ошибку бесплатного телепорта:
 if(ancientAdenaCost > 0) { if(ancientAdenaCost > ancientAdenaAmount) { player.sendPacket(new SystemMessage(SystemMessage.YOU_DO_NOT_HAVE_ENOUGH_ADENA)); break; } player.getInventory().destroyItemByItemId(SevenSigns.ANCIENT_ADENA_ID, ancientAdenaCost, true, true); } 

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

Daedra

новичок

Ошибка заключается в том, что дважды умножается на коэффициент уровня.
файл Formulas.java класс FuncPAtkMod метод calc
должно быть:
 env.value *= STRbonus[env._player.getSTR()]; 

Потому, что в Методе Formulas.addFuncsToNewCharacter есть следующий код
 cha.addStatFunc(FuncMultLevelMod.getInstance(Stats.POWER_ATTACK)); cha.addStatFunc(FuncPAtkMod.getInstance()); 

В первой строке регистрируется функция умножающая PAtk на коэффициент уровня, во второй на коэффициент силы, который сейчас в добавок еще раз умножает на коэффициент уровня
 

Daedra

новичок

Угостите кто-нибудь информацией по этому квесту, или скриптом с С4ПТС. Интересует игра с Collector Trumpin, а то в существующем квесте, очень запросто можна получить огромное количество квестовых итемов.
Идеи конечно есть в чем там ошибка, но хотелось бы подтверждения.
Награда за игру как я понял должна выдаваться вся сразу в момент когда заканчиваешь игру, а не при каждом угаданном варианте.
 

Daedra

новичок

1. Исправлена награда согласно http://lineage2.stratics.com/content/library/quests/index.php?id=15030
2. Добавлен русский перевод
3. Квестовые итемы падают с вероятностью отличной от 100%
4. Награда выдается только при наличии RECIPE_OF_SUPPLY

3 и 4 как на офе не знаю, но без них уж очень халявный квест получается.
 
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru