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

Ошибка скрипта Farm.java

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

Добрый день ув. форумчане, кто может подсказать что нужно подправить в этом скрипте чтобы заработало? Взял его с другой сборки pwsoft,на моей не работает.
 

1. WARNING in /Farm1.java (at line 77)
    if(tpForAll || (canEnter(st.getPlayer()) && checkPay(st.getPlayer())))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dead code
----------
2. WARNING in /Farm1.java (at line 80)
    return No;
    ^^^^^^^^^^
Dead code
----------
2 problems (2 warnings)

 

Спойлер

package quests.Farm1;

import net.sf.l2j.gameserver.ThreadPoolManager;
import net.sf.l2j.gameserver.datatables.ItemTable;
import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.quest.jython.QuestJython;
import net.sf.l2j.gameserver.model.quest.QuestState;
import net.sf.l2j.gameserver.model.quest.State;

import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.templates.L2Item;

public class Farm1 extends QuestJython
{
    //idnpc
    // НПЦ ИД
    private final static int npcId = 100919;
    // Координаты ТП
    private final static int[] coords = {3,-111418,-2475};

    // плата за телепорт: итем ид, кол-во
    private final static int[] price = {13100, 5};
    //Запрещенные скиллы
    private final static int[] forbiddenSkills = {9999};

    // ТП для всех
    private final static boolean tpForAll =  true;
    // Запрет предметов
    private final static int[] ForbiddenItems = {99999};

    // Макс. точка шмота
    private static int maxEnchArmor = 100;
    // Макс. точка бижутерии
    private static int maxEnchAccessory = 100;
    // Макс. точка оружия
    private static int maxEnchWeapon = 100;

    // Запрет для классов
    private final static int[] ForbiddenClass = {999};

    // Проверка на премиум
    private static boolean PremiumCheck = false;

    //Страница когда не выполнены действия
    String No = "no.htm";
    //Стартовая страница
    String START = "start1.htm";

    public Farm1(int questId, String name, String descr)
    {
        super(questId, name, descr, 1);
        State st = new State("Start", this);
        this.setInitialState(st);
        addStartNpc(npcId);
        addTalkId(npcId);
    }

    @Override
    public String onTalk(L2NpcInstance npc, L2PcInstance player)
    {
        if (player.getQuestState(getName()) == null)
            newQuestState(player);
        return START;
    }

    @Override
    public String onEvent(String event, QuestState st)
    {
        if(st.get("TalkFirst") != null && st.get("TalkFirst").equals("false"))
            return null;
        st.set("TalkFirst", "false");
        ThreadPoolManager.getInstance().scheduleGeneral(new fix(st), 1500L);
        if (event.startsWith("teleport1")) {
            if(tpForAll || (canEnter(st.getPlayer()) && checkPay(st.getPlayer())))
                st.getPlayer().teleToLocation(coords[0], coords[1], coords[2]);
            else
                return No;
        }
        return START;
    }

    public class fix implements Runnable
    {
        QuestState st = null;

       public fix(QuestState _st)
       {
           st = _st;
       }

       public void run()
       {
          try
          {
              st.set("TalkFirst", "true");
          } catch (Throwable t)
          {
          }
       }
    }

    private boolean checkPay(L2PcInstance player)
    {
        L2ItemInstance item = player.getInventory().getItemByItemId(price[0]);
        if(item == null)
        {
            player.sendMessage("У Вас нет " + price[1] + " " + ItemTable.getInstance().getItemName(price[0]) + " для совершения телепорта!");
            return false;
        }

        if (item.getCount() < price[1])
        {
            player.sendMessage("Для телепорта необходимо иметь " + price[1] + " " + ItemTable.getInstance().getItemName(price[0]));
            return false;
        }
    
        player.consumeItem(price[0], price[1]);
        SystemMessage sm = new SystemMessage(SystemMessageId.DISSAPEARED_ITEM);
        player.sendPacket(sm.addNumber(price[1]).addItemName(price[0]));

        return true;
    }

    private static boolean canEnter(L2PcInstance player){

        if(player.getActiveWarehouse() != null)
            player.setActiveWarehouse(null);
   
        for(int classId : ForbiddenClass){
            if(classId == player.getActiveClass()){
                return false;
            }
        }

        for(int skillId : forbiddenSkills) {
            if(player.getSkillLevel(skillId) > 0){
                return false;
            }
        }
        
        for(L2ItemInstance item : player.getInventory().getAllItemsEnch()){
            if(item.getEnchantLevel() > maxEnchArmor  & item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR){
                return false;
            }
            if(item.getEnchantLevel() > maxEnchAccessory & item.getItem().getType2() == L2Item.TYPE2_ACCESSORY){
                return false;
            }
            if(item.getEnchantLevel() > maxEnchWeapon & item.getItem().getType2() == L2Item.TYPE2_WEAPON){
                return false;
            }
        }

        for(int fi : ForbiddenItems){
            if(player.getInventory().getItemByItemId(fi) != null){
                return false;
            }
        }
        if (!player.isPremium() && PremiumCheck)
        {
            return false;
        }

        return true;
    }

    public static void main(String[] args)
    {
        new Farm1(-1, "Farm1", "quests");
        _log.info("### \"Farm1\" loaded! ###");
    }
}
 

 

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


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, SambukaRes сказал:

 

1. WARNING in /Farm1.java (at line 77)
    if(tpForAll || (canEnter(st.getPlayer()) && checkPay(st.get

 

Так он у тебя работает

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


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Circalover сказал:

 

Так он у тебя работает

как он работает,если в логах 2 ошибки + когда нажимаю на телепорт мне выбивает крит клиента,о том что якобы не хватает памяти.

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


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, SambukaRes сказал:

как он работает,если в логах 2 ошибки + когда нажимаю на телепорт мне выбивает крит клиента,о том что якобы не хватает памяти.

Ошибка это ERROR

Ты видишь хоть одну ошибку?

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


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Circalover сказал:

Ошибка это ERROR

Ты видишь хоть одну ошибку?

да я вижу что ты посты набиваешь и все. 

Скрипт не прогрузился и в логах две ошибки (а в твоем понимании предупреждение)

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


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, SambukaRes сказал:

да я вижу что ты посты набиваешь и все. 

Скрипт не прогрузился и в логах две ошибки (а в твоем понимании предупреждение)

В твоём понимании предупреждение = ошибка

Как по твоему не прогрузился скрипт, если у тебя уже есть действие на кнопку телепорта?

 

Меньше бы выпендривался, помог бы

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

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


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, Circalover сказал:

В твоём понимании предупреждение = ошибка

Как по твоему не прогрузился скрипт, если у тебя уже есть действие на кнопку телепорта?

 

Меньше бы выпендривался, помог бы

Странный ты и подходы к помощи у тебя странные. Я подожду адекватных людей.

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


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

ну он прав, ворнинг  ≠ ошибка, это предупреждение, но критануть может и из-за него, поменяй точку тп и проверь.

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


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

Если критует при нажатии на кнопку, значит какое-то дейтсвие Вы все же выполняете, иначе не произошло бы ничего. Следовательно, скрипт работает, а крит, вероятнее всего, из-за проблем с клиентом/патчем/допами/датниками/текстурами. 

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


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

Автор ты что куришь? 

Чувак тебе сказал, а ты на него агрессируешь

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


Ссылка на сообщение
Поделиться на другие сайты
В 09.10.2020 в 15:54, SambukaRes сказал:

да я вижу что ты посты набиваешь и все. 

Скрипт не прогрузился и в логах две ошибки (а в твоем понимании предупреждение)

Если error это ошибка JVM 

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


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, ForceUnleashed сказал:

А как может работать скрипт, если у вас мертвый код?

пойди голову помой а потом смотри и отвечай в темах

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


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

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

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

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