Перейти к содержанию

CaribStyle

Постоялец
  • Публикаций

    197
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2
  • Отзывы

    0%

CaribStyle стал победителем дня 27 февраля 2016

CaribStyle имел наиболее популярный контент!

Репутация

25

7 Подписчиков

Информация о CaribStyle

  • Звание
    Постелил коврик

Информация

  • Пол
    Мужчина

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Закройте пожалуйста тему =)
  2. Бывает ) Но всё ровно будет полезно.Спасибо.
  3. Ребята кто может помочь под ПВ переделать? Попробовал, но сантаксические ошибки... package events.FarmZones; import java.util.logging.Logger; import fpr.common.ThreadPoolManager; import fpr.extensions.listeners.L2ZoneEnterLeaveListener; import fpr.gameserver.instancemanager.ZoneManager; import fpr.gameserver.model.L2Character; import fpr.gameserver.model.L2Object; import fpr.gameserver.model.L2Player; import fpr.gameserver.model.L2Summon; import fpr.gameserver.model.L2Zone; import fpr.gameserver.model.L2Zone.ZoneType; import fpr.gameserver.model.items.L2ItemInstance; import fpr.gameserver.templates.L2Item; /** * @author Calypso */ public class FarmZone { private static Logger _log = Logger.getLogger(FarmZone.class.getName()); // Вкл/Выкл скрипт private boolean enable = false; // Максимально возможный уровень заточки для Армора/Бижутерии/Оружия private int maxEnchArmor = 10; private int maxEnchAccessory = 10; private int maxEnchWeapon = 10; // Грейд вещей, который запрещен в данной зоне. NG - NONE private String [] nonAllowedGradeArmor = {"S84", "S80"}; private String [] nonAllowedGradeAccessory = {"S84", "S80"}; private String [] nonAllowedGradeWeapon = {"S84", "S80"}; // Список ID предметов, которые будут запрещены в этой зоне private int [] notAllowedItems = {6578, 6577}; // Через сколько секунд, после входа в зону, телепортировать в город игрока, который не прошел проверку private int tpDelay = 5; // Здесь указывается зона, сейчас это колизей private static L2Zone _Zone = ZoneManager.getInstance().getZoneByIndex(ZoneType.battle_zone, 4, true); L2Item.Grade cryType; ZoneListener _ZoneListener = new ZoneListener(); public void onLoad() { if(enable) { _Zone.getListenerEngine().addMethodInvokedListener(_ZoneListener); _log.info("Loaded Script-Event: Zone with conditions."); } } public void onReload() { if(enable) { _Zone.getListenerEngine().removeMethodInvokedListener(_ZoneListener); _Zone.getListenerEngine().addMethodInvokedListener(_ZoneListener); } } public void onShutdown() { if(enable) _Zone.getListenerEngine().removeMethodInvokedListener(_ZoneListener); } private class ZoneListener extends L2ZoneEnterLeaveListener { @Override public void objectEntered(L2Zone zone, L2Object object) { if(object == null || !object.isPlayer() || !enable) return; L2Player player = object.getPlayer(); if(!canEnterToZone(player)) ThreadPoolManager.getInstance().scheduleGeneral(new TeleToTown((L2Character) object), tpDelay * 1000); } @Override public void objectLeaved(L2Zone zone, L2Object object) {} } /** * Определяет, может ли игрок войти в эту зону * Так же проверяем инвентарь пета * * @param player * @return true, если может */ private boolean canEnterToZone(L2Player player) { L2ItemInstance[] inv = player.getInventory().getItems(); for (L2ItemInstance item : inv) { if(item.canBeEnchanted()) { cryType = item.getItem().getCrystalType(); // Если это броня if(item.isArmor()) { if(item.getEnchantLevel() > maxEnchArmor) { NotifyPlayer(player, item, 1, 1, cryType); return false; } for(String abort : nonAllowedGradeArmor) { if(cryType.toString() == abort) { NotifyPlayer(player, item, 1, 2, cryType); return false; } } } // Если это оружие else if(item.isWeapon()) { if(item.getEnchantLevel() > maxEnchWeapon) { NotifyPlayer(player, item, 2, 1, cryType); return false; } for(String abort : nonAllowedGradeWeapon) { if(cryType.toString() == abort) { NotifyPlayer(player, item, 2, 2, cryType); return false; } } } // Если это бижутерия else if(item.getItem().getType2() == L2Item.TYPE2_ACCESSORY || cryType.equals(nonAllowedGradeAccessory)) { if(item.getEnchantLevel() > maxEnchAccessory) { NotifyPlayer(player, item, 3, 1, cryType); return false; } for(String abort : nonAllowedGradeAccessory) { if(cryType.toString() == abort) { NotifyPlayer(player, item, 3, 2, cryType); return false; } } } } if(notAllowedItems.length > 1) for(int id : notAllowedItems) { if(item.getItemId() == id) { NotifyPlayer(player, item, 0, 3, L2Item.Grade.NONE); return false; } } } L2Summon pet = player.getPet(); if(pet != null) { L2ItemInstance[] petInv = pet.getInventory().getItems(); for (L2ItemInstance item : petInv) { if(item.canBeEnchanted()) { L2Item.Grade cryType = item.getItem().getCrystalType(); // Если это броня if(item.isArmor()) { if(item.getEnchantLevel() > maxEnchArmor) { NotifyPlayer(player, item, 1, 1, cryType); return false; } for(String abort : nonAllowedGradeArmor) { if(cryType.toString() == abort) { NotifyPlayer(player, item, 1, 2, cryType); return false; } } } // Если это оружие else if(item.isWeapon()) { if(item.getEnchantLevel() > maxEnchWeapon) { NotifyPlayer(player, item, 2, 1, cryType); return false; } for(String abort : nonAllowedGradeWeapon) { if(cryType.toString() == abort) { NotifyPlayer(player, item, 2, 2, cryType); return false; } } } // Если это бижутерия else if(item.getItem().getType2() == L2Item.TYPE2_ACCESSORY || cryType.equals(nonAllowedGradeAccessory)) { if(item.getEnchantLevel() > maxEnchAccessory) { NotifyPlayer(player, item, 3, 1, cryType); return false; } for(String abort : nonAllowedGradeAccessory) { if(cryType.toString() == abort) { NotifyPlayer(player, item, 3, 2, cryType); return false; } } } } if(notAllowedItems.length > 1) for(int id : notAllowedItems) { if(item.getItemId() == id) { NotifyPlayer(player, item, 0, 3, L2Item.Grade.NONE); return false; } } } } return true; } private class TeleToTown implements Runnable { L2Character target; /** * Телепорт игрока в ближайший город * * @param target - игрок, который будет телепортирован * */ public TeleToTown(L2Character target) { this.target = target; } public void run() { target.teleToClosestTown(); } } /** * Отсылает уведомление игроку о том, какая вещь не прошла проверку * * @param player * @param item * @param equipType: 1 - броня, 2 - оружие, 3 - бижутерия * @param failType: 1 - не подходит по заточке, 2 - по грейду, 3 - запрещенный предмет * @param grade */ private void NotifyPlayer (L2Player player, L2ItemInstance item, int equipType, int failType, L2Item.Grade grade) { if(equipType == 1 && failType == 1) player.sendMessage("Уровень заточки предмета " + item.getName() + " (+" + item.getEnchantLevel() + ") превышает максимально допустимый для этой зоны. Допустимый уровень заточки брони: +" + maxEnchArmor); if(equipType == 2 && failType == 1) player.sendMessage("Уровень заточки предмета " + item.getName() + " (+" + item.getEnchantLevel() + ") превышает максимально допустимый для этой зоны. Допустимый уровень заточки оружия: +" + maxEnchWeapon); if(equipType == 3 && failType == 1) player.sendMessage("Уровень заточки предмета " + item.getName() + " (+" + item.getEnchantLevel() + ") превышает максимально допустимый для этой зоны. Допустимый уровень заточки бижутерии: +" + maxEnchAccessory); if(failType == 2) player.sendMessage("Предметы, с таким грейдом как " + item.getName() + " (" + grade.toString() + "), запрщены в этой зоне!"); if(failType == 3) player.sendMessage("Предмет " + item.getName() + " запрщен в этой зоне!"); } }
  4. Просьба закрыть тему.Она не актуальна более.
  5. CaribStyle

    Посоветуйте

    Ага ) Сейчас он скажет да )
  6. CaribStyle

    Пару вопросов по АА

    xD Арчедж конечно же )
  7. 1. http://forummaxi.ru/user/27271-caribstyle/ 2. Василий 22 3. https://vk.com/mafiavr Скайп: yavskaype4 4. Обычно с утра по МСК и до ночи так же по МСК. (если так ,то сутками сижу) 5. Знания в разных областях. Владею русским языком, азербайджанским, турецким,немного английским и немецким. Большой опыт модератора и администратора, в играх, на форумах, вконтакте в группах, в различных чатах. Учусь на юриста. Взрослый, адекватный, с чувством юмора. Ответственный. Как вы знаете курирую тему сообщество по PW сборке. Готов ответить на вопросы.
  8. Тоже интересно, на пв есть что нибудь этакое ?
  9. CaribStyle

    Ошибка АК

    Тип npc Можно через шифт клик в игре
  10. Отписывайся помогу
  11. CaribStyle

    Телепорт

    html teleport в базу ещё надо добавить либо своего нпц делай
×
×
  • Создать...