-
Публикаций
330 -
Зарегистрирован
-
Посещение
-
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент Anderson
-
1 совет - выкинь нетбинс и поставь Eclipse или IntelliJ IDEA
-
Ну в зависимости на сколько ГВЕ. Но в данный момент я занимаюсь разработкой типо ГВЕ (но можна и свих килять, обмен итд). Не полная интеграция
-
Честно говоря не шарю есть ли у тебя исходы, но если есть, то: идете scripts/handlers/voiced/menu.java и там ищем путь к хтм ке
-
Гайд о том как сделать конфиг на максимальный уровень заточки на Олимпиаде, возможно позволит новичкам освоится в ядре. При входе на стадион олимпиады предмет с точкой выше максимальной будет снят и до конца поединка его одеть будет нельзя. Для этого обязательно наличие сурса (исходного кода). И так поехали: - Добавляем новый конфиг. 1)Идем в java\silentium\gameserver\GameProperties.java 2)Поиском (Ctrl+F) находим строчку(или последнюю строчку конфигов олимпа): public static boolean ALT_OLY_ANNOUNCE_GAMES; 3)После нее вставляем новые 2 строчки(наши конфиги): public static int ALT_OLY_MAX_WEAPON_ENCHANT_LVL; public static int ALT_OLY_MAX_ARMOR_ENCHANT_LVL; 4)Поиском (Ctrl+F) находим строчку(или последнюю строчку вытаскивания конфигов олимпа): ALT_OLY_ANNOUNCE_GAMES = Boolean.parseBoolean(events.getProperty("AltOlyAnnounceGames", "True")); 5)После нее вставляем новые 2 строчки(наше вытаскивание конфигов с файла): ALT_OLY_MAX_WEAPON_ENCHANT_LVL = Integer.parseInt(events.getProperty("AltOlyMaxWeaponEnxhantLvl", "-1")); ALT_OLY_MAX_ARMOR_ENCHANT_LVL = Integer.parseInt(events.getProperty("AltOlyMaxArmorEnxhantLvl", "-1")); 6)Идем в config\game\events.properties 7)После строчки AltOlyDividerNonClassed = 5 (или в конце конфигов олимпа), вставляем: # Максимальный уровень улучшения оружия на олимпиаде, default: -1 - не применять AltOlyMaxWeaponEnxhantLvl =-1 # Максимальный уровень улучшения брони на олимпиаде, default: -1 - не применять AltOlyMaxArmorEnxhantLvl =-1 Ура, первый шаг сделан. Мы добавили переменные - конфиги, и с файла конфигурации вытянули значение. - добавление проверок. 1)Идем в java\silentium\gameserver\model\L2ItemInstance.java 2)Пихаем в класс(кто не знает что это -> гугл -> java классы) после любой функции (кто не знает, аналогично классу) этот код: public boolean checkEnchantCondition(L2Character activeChar) { if(GameProperties.ALT_OLY_MAX_WEAPON_ENCHANT_LVL!=-1) { if (((getItem().getBodyPart()==L2Item.SLOT_R_HAND)||(getItem().getBodyPart()==L2Item.SLOT_LR_HAND))&&(getEnchantLevel()>GameProperties.ALT_OLY_MAX_WEAPON_ENCHANT_LVL)&&(activeChar.getActingPlayer().isInOlympiadMode())) { activeChar.getActingPlayer().sendMessage("Невозможно одеть оружие на Великих Олимпийских Играх с уровнем улучшения выше " + GameProperties.ALT_OLY_MAX_WEAPON_ENCHANT_LVL); return false; } } if(GameProperties.ALT_OLY_MAX_ARMOR_ENCHANT_LVL!=-1) { if (((getItem().getBodyPart()!=L2Item.SLOT_R_HAND)||(getItem().getBodyPart()!=L2Item.SLOT_LR_HAND))&&(getEnchantLevel()>GameProperties.ALT_OLY_MAX_ARMOR_ENCHANT_LVL)&&(activeChar.getActingPlayer().isInOlympiadMode())) { activeChar.getActingPlayer().sendMessage("Невозможно одеть броню на Великих Олимпийских Играх с уровнем улучшения выше " + GameProperties.ALT_OLY_MAX_ARMOR_ENCHANT_LVL); return false; } } return true; } Вы спросите, что делает данный код? Ответ: 1. Проверяет включены ли настройки макс точки (не равно -1) 2. В 1 куске: если это оружие(правая рука или обе) и если его уровень заточки выше максимального и игрок сейчас участвует в олимпиаде, то пишет о невозможности использования предмета на олимпе и возвращает false. 3. В 2 куске все тоже что и в 1, но смотрим на все кроме оружия(бронь) 4. Если ничего выше не выполнилось, то возвращаем false. Итак итог: если уровень улучшения предмета ниже максимального имеем true(он доступен к использованию на олимпе), а если нет, то false(не доступен к использованию на олимпе). 3)Идем в java\silentium\gameserver\network\clientpackets\UseItem.java 4)Находим поиском(или ручками): if (!item.getItem().checkCondition(activeChar, activeChar, true)) { return; } 5)После этого куска кода вставляем: if (!item.checkEnchantCondition(activeChar)) { return; } Что это? При нажатии на итем, вызовется проверка которую мы добавили выше, и если итем не доступен для использование на оли, он не оденется(так как стоит return). 6)Идем в java\silentium\gameserver\model\actor\instance\L2PcInstance.java 7)Ищем руками или поиском: public void checkItemRestriction() { for (int i = 0; i < Inventory.PAPERDOLL_TOTALSLOTS; i++) { L2ItemInstance equippedItem = getInventory().getPaperdollItem(i); if (equippedItem != null && !equippedItem.getItem().checkCondition(this, this, false)) { getInventory().unEquipItemInSlot(i); InventoryUpdate iu = new InventoryUpdate(); iu.addModifiedItem(equippedItem); sendPacket(iu); SystemMessage sm = null; if (equippedItem.getEnchantLevel() > 0) { sm = SystemMessage.getSystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED); sm.addNumber(equippedItem.getEnchantLevel()); sm.addItemName(equippedItem); } else { sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISARMED); sm.addItemName(equippedItem); } sendPacket(sm); } } } и заменяем на: public void checkItemRestriction() { for (int i = 0; i < Inventory.PAPERDOLL_TOTALSLOTS; i++) { L2ItemInstance equippedItem = getInventory().getPaperdollItem(i); if ((equippedItem != null) && (!equippedItem.getItem().checkCondition(this, this, false)|| (!equippedItem.checkEnchantCondition(this)))) { getInventory().unEquipItemInSlot(i); InventoryUpdate iu = new InventoryUpdate(); iu.addModifiedItem(equippedItem); sendPacket(iu); SystemMessage sm = null; if (equippedItem.getEnchantLevel() > 0) { sm = SystemMessage.getSystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED); sm.addNumber(equippedItem.getEnchantLevel()); sm.addItemName(equippedItem); } else { sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISARMED); sm.addItemName(equippedItem); } sendPacket(sm); } } } Эта функция вызывается когда игрока телепортирует на арену олимпиады, она проверяет на доступность итемы. Мы в нее добавляем свою проверку которую добавили раньше. Итог: при тп на олимп, итем у которого уровень улучшения больше максимально будет снят. Мы добавили конфиг на максимальную точку на олимпиаде. Если есть вопросы, пишем, я отвечу. Гайд подготовлен Anderson ом. Если понравилось, то не ленитесь и поставте "Спасибо".
-
Уверены что в клиенте добавили в 2 файла и с тем же ид. Есть ли ошибки при запуске гейм сервера в разделе итемов?
-
Советую IDEA, качай не пожалеешь. Правда немножко подлагивает. Но бери не фри версию
-
И так начнем (буду своим способом): 1)Идем в scripts/handlers/items и там создаем файлик MyItems.java 2)В этот файлик пихаем: public class MyItems implements IItemHandler { @Override public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse) { if (!(playable instanceof L2PcInstance)) { return false; } final L2PcInstance activeChar = (L2PcInstance) playable; int itemId = item.getItemId(); if(itemId==ИД_ХИЛКИ) { activeChar.setCurrentHp(СИЛА_ХИЛКИ_В_ХП + activeChar.getCurrentHp()); activeChar.setCurrentMp(СИЛА_ХИЛКИ_В_МП + activeChar.getCurrentMp()); } return true; } } 3) И в итеме добавляем строчку <set name="handler" val="MyItems"/>
-
Что ты именно хочешь получить? Текущее время в миллисекундах? Ели да, то: System.currentTimeMillis() А дальше сравниваешь.
- 2 ответа
-
- 1
-
А если сделать 2 скила, и впихнуть их к 1 итему? <set name="item_skill" val="ид_скила_хп"/> <set name="item_skill" val="ид_скила_мп"/> Хотя я не уверен. Лично у меня такой пот только на 1 х-ку такой: <skill id="Ид" levels="1" name="Имя"> <set name="power" val="600"/> <set name="hitTime" val="100"/> <set name="staticHitTime" val="true"/> <set name="target" val="TARGET_SELF"/> <set name="reuseDelay" val="2300"/> <set name="skillType" val="COMBATPOINTHEAL"/> <set name="operateType" val="OP_ACTIVE"/> <set name="isPotion" val="true"/> <cond msgId="113" addName="1"> <player flying="False"/> </cond> </skill>
-
Итак: 1) Первое добавляем на стороне сервера: Идем сюда - gameserver\data\xml\items, создаем новый файл (10000-10099.xml) и по примеру других шмоток делаем шмотки там (но их ид должны быть в диапазоне 10000-10099) 2) На стороне клиента, гайдов куча
-
Просто невероятный комплект! Покупал у данного человека дизайн, делает качественно, быстро и так как нужно. Советую.
-
Ну в зависимости что именно=) Если пилит квест - то нет. А добавить и за бесплатно сделаю
-
Реализовать очень просто, стоит хотя-бы знать квест на покраску тряпки у баюма. Создаешь новый квест и в конец добавляешь: @Override public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet) { QuestState st = attacker.getQuestState(qn); if ((st == null) || !st.isStarted() || isPet) { return null; } if (st.getInt("cond") == ТВОЙ_КОНД) { if(rand(100)<ШАНС_ВЫПАДЕНИЯ) { st.giveItems(ИД_ИТЕМА, rand(МАКС_КОЛИЧЕСТВО)); st.playSound(QuestState.SOUND_ITEMGET); } } return null; }
-
Это легко проверяется в ядре, заходите в ... instance/ClassmasterInstance.java и в конце где showHtm() ф-я или как-то так, смотрите откуда берутся диалоги
- 4 ответа
-
- 1
-
Если нету, идешь в hendlers/item, файлы BlessedSpiritShot SpiritShot SoulShot, и в них удаляешь такой код: (где убиваются соул шоты) / Consume bss if player has enough of them if (activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), weaponItem.getSpiritShotCount(), null, false)) { if (!activeChar.disableAutoShot(itemId)) { activeChar.sendPacket(SystemMessageId.NOT_ENOUGH_SPIRITSHOTS); } return false; }
-
Ну от например есть стартовые сертификаты за 500-1500. Как я понял идет шифровка соединения. Но нужно ли это для сайта сервера л2? Платежка - робокаса(не реклама). Как я понимаю будет определенное отсеивание школоло ддосеров? Буду благодарен за ответы, только начал разберется в безопасности. П.С. RapidSSL например (не реклама)
-
Здравствуйте, интересует вопрос сертификатов. Нужен ли он? (стандартный сертификат проверки домена). Шифровка соединения, итд. Что я получу после его покупки?
-
Серв будет грузится в 3 раза дольше. А так перенось куда нужно, делай загрузчик и правь запуск сервера. На силентиуме 10 есть такое чудо, можешь от туда стянуть
-
Можно. Поставил защиту от накрутки в гве не смотря на ип и хвид. Не давать просто так - лучший способ.