Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Скрипты в Феникс сборках
#1
Сборка l2open (шаровая) Не работают команды, гм, .cfg и прочие. Почему то не грузит классы
[Изображение: qe94xfuS.png]
Так же не грузит скрипты ai из датапака. Не совсем понимаю как в фениксо-подобных сборках подцепить скрипт. В l2j для этого есть script.cfg. А тут что?
Ответ
#2
Шара? Обращайтесь туда, где скачали.
Ответ
#3
SoniPro Написал:Шара? Обращайтесь туда, где скачали.

Да шара, которую revolt team расширила. А скачал я её на этом форуме.Smile 1853 рева
Ответ
#4
Похоже, что ява не та...
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#5
Zubastic Написал:Похоже, что ява не та...
Java 7-я стоит. Как скрипты подцепить? не пихать же их все в ядро...
Ответ
#6
TosyBosy Написал:Java 7-я стоит

6 нужнаSmileSmileSmile
Ответ
#7
server-anons Написал:6 нужнаSmileSmileSmile

не помогает
Ответ
#8
в фениксо/оверо подобных никаких scripts.cfg и т.п. создавать не требуется - сервер должен автоматом грузить любые скрипты из data/scripts и подкаталогов.
обычно если не грузит - проблема в неподходящей версии явы, других вариантов вроде нет.
Ответ
#9
Обычно если ява не та то сразу пишет unsupported minor 6.0
Но однозназно думаю что в те времена 7-ой еще не пользовались
Ответ
#10
Победил проблему с классами, компиляцией сборки другой версией java.

Теперь есть проблема с квестом на Фрею. Если кто шарит прошу помочь, ибо сам уже сутки голову ломаю.

2) Квест _10285_MeetingSirra - не работает момент когда Лакей Фреи должен портнуть к Зинии и Кегору на озеро.
Код:
package quests._10285_MeetingSirra;

import java.util.HashMap;
import javolution.util.FastMap;
import l2rt.common.ThreadPoolManager;
import l2rt.gameserver.cache.Msg;
import l2rt.extensions.scripts.ScriptFile;
import l2rt.gameserver.model.L2Player;
import l2rt.gameserver.model.Reflection;
import l2rt.gameserver.model.L2ObjectsStorage;
import l2rt.gameserver.model.instances.L2NpcInstance;
import l2rt.gameserver.model.L2Spawn;
import l2rt.gameserver.model.L2World;
import l2rt.gameserver.instancemanager.InstancedZoneManager;
import l2rt.gameserver.instancemanager.InstancedZoneManager.InstancedZone;
import l2rt.gameserver.serverpackets.SystemMessage;
import l2rt.gameserver.tables.ReflectionTable;
import l2rt.gameserver.model.quest.Quest;
import l2rt.extensions.scripts.Functions;
import l2rt.gameserver.model.quest.QuestState;
import l2rt.gameserver.tables.NpcTable;
import l2rt.gameserver.templates.L2NpcTemplate;
import l2rt.gameserver.serverpackets.ExStartScenePlayer;
import l2rt.gameserver.serverpackets.ExShowScreenMessage;
import l2rt.gameserver.serverpackets.ExShowScreenMessage.ScreenMessageAlign;
import l2rt.util.Location;
import quests._10284_AcquisitionOfDivineSword._10284_AcquisitionOfDivineSword;

/**
* @author People
*/

public class _10285_MeetingSirra extends Quest implements ScriptFile
{

    private static FastMap<Integer, Long> _instances = new FastMap<Integer, Long>();
    private static FastMap<Integer, Long> _instances2 = new FastMap<Integer, Long>();
    private static final Location TELEPORT_POSITION = new Location(103000, -124360, -2784);
    // NPC
    private static final int Raforti = 32020;
    private static final int Jinia = 32760;
    private static final int Sirra = 32762;
    private static final int Kegor = 32761;
    private static final int Lakey = 32029;
    // MOB
    private static final int FreyaM = 18847;
    
    public _10285_MeetingSirra()
    {
        super(true);
        addStartNpc(Raforti);
        addTalkId(Jinia);
        addTalkId(Sirra);
        addTalkId(Kegor);
        addTalkId(Lakey);
    }

    @Override
    public String onEvent(String event, final QuestState st, L2NpcInstance npc)
    {
        final L2Player player = st.getPlayer();
        String htmltext = event;
        if(event.equalsIgnoreCase("repre_q10285_05.htm"))
        {
            st.setCond(1);
            st.setState(STARTED);
            st.playSound(SOUND_ACCEPT);
        }
        if(event.equalsIgnoreCase("inst"))
        {
            enterInstance(player);
            st.set("cond", "2");
            st.playSound(SOUND_ACCEPT);
            return null;
        }
        if(event.equalsIgnoreCase("jinia_npc_q10285_02.htm"))
        {
            st.set("cond", "3");
            st.playSound(SOUND_ACCEPT);
        }
        if(event.equalsIgnoreCase("kegor_npc_q10285_02.htm"))
        {
            st.set("cond", "4");
            st.playSound(SOUND_ACCEPT);
        }
        if(event.equalsIgnoreCase("jinia_npc_q10285_05.htm"))
        {
            long refId = player.getReflection().getId();
            addSpawnToInstance(Sirra, new Location(-23848, -8744, -5413, 55000), 0, refId);
            L2NpcInstance n1 = L2ObjectsStorage.getByNpcId(Sirra);
            Functions.npcSay(n1, "Вас послушать, получается, что Вы знаете обо всем на свете. Но я больше не могу слушать Ваши мудрствования.");
            st.set("cond", "5");
            st.playSound(SOUND_ACCEPT);
        }
        if(event.equalsIgnoreCase("sirr_npc_q10285_08.htm"))
        {
            L2NpcInstance n = L2ObjectsStorage.getByNpcId(32762);
            n.deleteMe();
            st.set("cond", "6");
            st.playSound(SOUND_ACCEPT);
            
        }
        if(event.equalsIgnoreCase("nazad"))
        {
            st.set("cond", "7");
            returnToAden(player);
            st.playSound(SOUND_ACCEPT);
            return null;
        }
        if(event.equalsIgnoreCase("goTP"))
        {
            st.getPlayer().teleToLocation(TELEPORT_POSITION);
            st.set("cond", "8");
            st.playSound(SOUND_ACCEPT);
            return null;
        }
        if(event.equalsIgnoreCase("gofreya1"))
        {
            enterInstance2(player);
            long refId = player.getReflection().getId();
            addSpawnToInstance(FreyaM, new Location(114700, -115012, -11230, 5000), 0, refId);
            ReflectionTable.getInstance().get(refId).openDoor(23140101);
            st.set("cond", "9");
            st.playSound(SOUND_ACCEPT);
            
            ThreadPoolManager.getInstance().scheduleGeneral(new Runnable(){
                    @Override
                    public void run()
                    {
                        player.showQuestMovie(ExStartScenePlayer.SCENE_SC_BOSS_FREYA_FORCED_DEFEAT);
                        st.set("cond", "10");
                        returnToAden(player);
                    }
                }, 120000);
            
            
            return null;
        }
        if(event.equalsIgnoreCase("exit"))
        {
            st.giveItems(57, 283425);
            st.addExpAndSp(939075, 83855);
            st.setState(COMPLETED);
            st.playSound(SOUND_FINISH);
            st.unset("cond");
            st.exitCurrentQuest(false);
            return null;
        }
        return htmltext;
    }

    @Override
    public String onTalk(L2NpcInstance npc, QuestState st)
    {
        int npcId = npc.getNpcId();
        int id = st.getState();
        int cond = st.getCond();
        
        if(npcId == Raforti)
        {
            if(id == CREATED)
            {
                QuestState qs = st.getPlayer().getQuestState(_10284_AcquisitionOfDivineSword.class);
                if(qs != null && qs.isCompleted() && st.getPlayer().getLevel() >= 82)
                    return "repre_q10285_01.htm";
                else
                    return "npc-lvl.htm";            
            }
            if(id == STARTED)
            {
                if(cond == 1)
                return "npc-01.htm";
                if(cond == 2)
                return "npc-zag.htm";
                if(cond == 10)
                return "npc-1.htm";
            }
            if(id == COMPLETED)
            {
                return "npc-fin.htm";
            }
        }
        if (npcId == Jinia)
        {
            if (cond == 2)
                return "jinia_npc_q10285_01.htm";
            if (cond == 4)
                return "jinia_npc_q10285_04.htm";
            if (cond == 6)
                return "jinia_npc_q10285_07.htm";
            if (cond == 8)
                return "npc-gofreya.htm";
        }
        if (npcId == Kegor)
        {
            if (cond == 3)
                return "kegor_npc_q10285_01.htm";
        }
        if (npcId == Sirra)
        {
            if (cond == 5)
                return "sirr_npc_q10285_01.htm";
        }
        [COLOR="Red"]if (npcId == Lakey)
        {
            if (cond == 7)
                return "lakey.htm";
        }[/COLOR]

        return "noquest";
    }
    
    
    private void enterInstance(L2Player player)
    {
        int instancedZoneId = 703;
        InstancedZoneManager ilm = InstancedZoneManager.getInstance();
        FastMap<Integer, InstancedZone> ils = ilm.getById(instancedZoneId);
        if(ils == null)
        {
            player.sendPacket(Msg.SYSTEM_ERROR);
            return;
        }

        InstancedZone il = ils.get(0);

        assert il != null;

        if(player.isInParty())
        {
            player.sendPacket(Msg.A_PARTY_CANNOT_BE_FORMED_IN_THIS_AREA);
            return;
        }

        if(player.isCursedWeaponEquipped())
        {
            player.sendPacket(new SystemMessage(SystemMessage.C1S_QUEST_REQUIREMENT_IS_NOT_SUFFICIENT_AND_CANNOT_BE_ENTERED).addName(player));
            return;
        }

        Long old = _instances.get(player.getObjectId());
        if(old != null)
        {
            Reflection old_r = ReflectionTable.getInstance().get(old);
            if(old_r != null)
            {
                player.setReflection(old_r);
                player.teleToLocation(il.getTeleportCoords());
                player.setVar("backCoords", old_r.getReturnLoc().toXYZString());
                return;
            }
        }

        Reflection r = new Reflection(il.getName());
        r.setInstancedZoneId(instancedZoneId);
        for(InstancedZone i : ils.values())
        {
            if(r.getReturnLoc() == null)
                r.setReturnLoc(i.getReturnCoords());
            if(r.getTeleportLoc() == null)
                r.setTeleportLoc(i.getTeleportCoords());
            r.FillSpawns(i.getSpawnsInfo());
        }

        int timelimit = il.getTimelimit();

        player.setReflection(r);
        player.teleToLocation(il.getTeleportCoords());
        player.setVar("backCoords", r.getReturnLoc().toXYZString());
        player.sendPacket(new SystemMessage(SystemMessage.THIS_DUNGEON_WILL_EXPIRE_IN_S1_MINUTES).addNumber(timelimit));

        r.setNotCollapseWithoutPlayers(true);
        r.startCollapseTimer(timelimit * 60 * 1000L);

        _instances.put(player.getObjectId(), r.getId());
    }
    
    private void enterInstance2(L2Player player)
    {
        int instancedZoneId = 704;
        InstancedZoneManager ilm = InstancedZoneManager.getInstance();
        FastMap<Integer, InstancedZone> ils = ilm.getById(instancedZoneId);
        if(ils == null)
        {
            player.sendPacket(Msg.SYSTEM_ERROR);
            return;
        }

        InstancedZone il = ils.get(0);

        assert il != null;

        if(player.isInParty())
        {
            player.sendPacket(Msg.A_PARTY_CANNOT_BE_FORMED_IN_THIS_AREA);
            return;
        }

        if(player.isCursedWeaponEquipped())
        {
            player.sendPacket(new SystemMessage(SystemMessage.C1S_QUEST_REQUIREMENT_IS_NOT_SUFFICIENT_AND_CANNOT_BE_ENTERED).addName(player));
            return;
        }

        Long old = _instances.get(player.getObjectId());
        if(old != null)
        {
            Reflection old_r = ReflectionTable.getInstance().get(old);
            if(old_r != null)
            {
                player.setReflection(old_r);
                player.teleToLocation(il.getTeleportCoords());
                player.setVar("backCoords", old_r.getReturnLoc().toXYZString());
                return;
            }
        }

        Reflection r = new Reflection(il.getName());
        r.setInstancedZoneId(instancedZoneId);
        for(InstancedZone i : ils.values())
        {
            if(r.getReturnLoc() == null)
                r.setReturnLoc(i.getReturnCoords());
            if(r.getTeleportLoc() == null)
                r.setTeleportLoc(i.getTeleportCoords());
            r.FillSpawns(i.getSpawnsInfo());
            r.FillDoors(i.getDoors());
        }

        int timelimit = il.getTimelimit();

        player.setReflection(r);
        player.teleToLocation(il.getTeleportCoords());
        player.setVar("backCoords", r.getReturnLoc().toXYZString());
        player.sendPacket(new SystemMessage(SystemMessage.THIS_DUNGEON_WILL_EXPIRE_IN_S1_MINUTES).addNumber(timelimit));

        r.setNotCollapseWithoutPlayers(true);
        r.startCollapseTimer(timelimit * 60 * 1000L);

        _instances.put(player.getObjectId(), r.getId());
    }
    
    
    private void returnToAden(L2Player player)
    {
        Reflection r = player.getReflection();
        if(r.getReturnLoc() != null)
            player.teleToLocation(r.getReturnLoc(), 0);
        else
            player.setReflection(0);
            player.unsetVar("backCoords");
    }
    
    public void onLoad()
    {
       System.out.println("Loaded Quest: 10285: MeetingSirra");
    }

    public void onReload()
    {}

    public void onShutdown()
    {}

}
красным отметил на каком моменте затык. В базе cound = 7 то есть с состоянием квеста всё в порядке.
Сам NPC Лакей Фреи настоятельно подсовывает диалог из квеста _1004_IceFairySirra.

И ещё При загрузке ГС выдаёт информацию о том что скрипт загружен Loaded Quest: 1004: IceFairySirra, я не мог понять грузит ли сервер квест MeetingSirra и добавил в код строки
Код:
public void onLoad()
    {
       System.out.println("Loaded Quest: 10285: MeetingSirra");
    }

    public void onReload()
    {}

    public void onShutdown()
    {}
но это не помоглоSad ГС то ли не грузит скрипт, то ли не выводит об этом информацию...
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Скрипты на питоне flopix 1 1,740 12-10-2017, 01:56 PM
Последний пост: n3k0nation
  Скрипты не найдены defu 23 5,681 06-25-2014, 07:11 PM
Последний пост: defu
  l2 феникс подобные сборки игроков отбрасывает назад Munhgauzen 19 4,713 03-18-2013, 10:38 AM
Последний пост: darkevil
  Ищу Скрипты Kabanitos 3 2,749 03-27-2011, 03:20 PM
Последний пост: aks19
  баюм закен феникс Amorph1s 5 3,740 03-25-2011, 09:06 AM
Последний пост: Ro_0TT
  скрипты для l2p Brandonheat 29 9,062 08-20-2010, 01:18 PM
Последний пост: Brandonheat
  Новые скрипты, место нахождения. Astend 3 3,592 01-23-2010, 09:46 PM
Последний пост: incognito
  Скрипты для создания своей [web]-статистики MMd 0 2,274 12-26-2009, 02:49 PM
Последний пост: MMd

Перейти к форуму:


Пользователи, просматривающие эту тему: 8 Гость(ей)