HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #211  
Старый 11.02.2016, 13:48
velafrys
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами: 5407316

Репутация: 0
По умолчанию

Цитата:
Сообщение от Visor123  

Ты будешь кривляться и дальше. То есть легализация таких вот цирковых выступлений - это собственно легализация и всего этого дерьма.

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

  #212  
Старый 11.02.2016, 13:48
Visor123
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами: 5732336

Репутация: 0


По умолчанию

Цитата:
Сообщение от Mangol  

Бан был до 14 числа 19 55. Лично проверял в тот день когда с тебя волонд снял бан.
Я не знаю снял ли Волонд или нет, я обратил внимания его что было написано до 9 февраля, а потом без даты, не ошибка ли это.

То есть ты сейчас просто раздуваешь цирк дальше, уже про бан.

Почему ты не забанил чела, который написал оскорбление в 1 посту? Пост еще на месте, но правда ты стер почему-то более плохие слова. Это же цирк называется, и уже ты выкручиваешься, расскажи, почему ты занил меня за то что я написал оскорбление на оскорбление? Причем я дал возможность висеть оскорблению полгода - то есть это было не сразу, что типа "обое" плохие.

Нет - ты прицепился ко мне и сейчас тоже, прицепись к тем кто оскорбляет меня.
 
Ответить с цитированием

  #213  
Старый 11.02.2016, 13:49
velafrys
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами: 5407316

Репутация: 0
По умолчанию

Цитата:
Сообщение от Visor123  

Нет - ты прицепился ко мне и сейчас тоже, прицепись к тем кто оскорбляет меня.
Вот только проблема в том, что тебя никто не оскорбляет.

И не поддерживает тоже, кстати.
 
Ответить с цитированием

  #214  
Старый 11.02.2016, 13:50
Influence
Постоянный
Регистрация: 14.06.2015
Сообщений: 910
С нами: 5744218

Репутация: 1488


По умолчанию

Цитата:
Сообщение от Visor123  

Ты будешь кривляться и дальше. То есть легализация таких вот цирковых выступлений - это собственно легализация и всего этого дерьма.

Поэтому я и обращаю внимание администрации, что нужно либо эту дерьмотему удалить по правилам форума, либо ничего не делать, легализуя любые оскорбления тролей.
Извини конечно, но надо лукавить, я вчера как раз читал тот чат, и не видел чтобы конкретно velafrys тебя оскорблял. Ты же соответственно в чате писал что делаешь скрины и ждешь администрация(которая куда-то пропала) чтобы показать их, так можно, пожалуйста, эти скрины?
 
Ответить с цитированием

  #215  
Старый 11.02.2016, 13:53
Visor123
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами: 5732336

Репутация: 0


По умолчанию

Цитата:
Сообщение от Influence  

Извини конечно, но надо лукавить, я вчера как раз читал тот чат, и не видел чтобы конкретно velafrys тебя оскорблял. Ты же соответственно в чате писал что делаешь скрины и ждешь администрация(которая куда-то пропала) чтобы показать их, так можно, пожалуйста, эти скрины?
Речь вообще не о нем, он появился в теме после создания темы. К примеру пусть тебя назовет говнокодером и что он там еще писал, тебе может это нормально, я же не знаю как ты воспринимаешь тролинг и оскорбления.

Я же не виноват, что нет логов чара, кик бы написал, что не пишите в чат, там все равно что написано. Или "чат не модерируется"
 
Ответить с цитированием

  #216  
Старый 11.02.2016, 13:53
mAnGoL
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами: 8581120

Репутация: 0
По умолчанию

Цитата:
Сообщение от Visor123  

Я не знаю снял ли Волонд или нет, я обратил внимания его что было написано до 9 февраля, а потом без даты, не ошибка ли это.

То есть ты сейчас просто раздуваешь цирк дальше, уже про бан.
Почему ты не забанил чела, который написал оскорбление в 1 посту? Пост еще на месте, но правда ты стер почему-то более плохие слова. Это же цирк называется, и уже ты выкручиваешься, расскажи, почему ты занил меня за то что я написал оскорбление на оскорбление? Причем я дал возможность висеть оскорблению полгода - то есть это было не сразу, что типа "обое" плохие.
Нет - ты прицепился ко мне и сейчас тоже, прицепись к тем кто оскорбляет меня.
Я прицепился с той причиной что ты в данной теме реально "обосрался" ты же такой парень, всех натягиваешь, а тут вдруг тебя натянули по полной. И пытаешься выехать на том что висел пол года, и тебе было побоку.

Я закрывал темы. Ты хотел этой темы продолжение, получи продолжение.
 
Ответить с цитированием

  #217  
Старый 11.02.2016, 13:53
velafrys
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами: 5407316

Репутация: 0
По умолчанию

Цитата:
Сообщение от Visor123  

Речь вообще не о нем, он появился в теме после создания темы. К примеру пусть тебя назовет говнокодером и что он там еще писал, тебе может это нормально, я же не знаю как ты воспринимаешь тролинг и оскорбления.
Тебя уже второй раз просят представить пруфы оскорблений, говнокодер.

Пруфы будут?

Уходи с форума, уходи с форума или не позиционируй себя как разработчик, раз не можешь терпеть критики. Я не называл тебя говнокодером с первого поста, а вполне вежливо с тобой общался, т.к. причин не было общаться с тобой иначе. А потом ты сам доказал, кто ты такой.

Такие дела.
 
Ответить с цитированием

  #218  
Старый 11.02.2016, 13:54
Visor123
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами: 5732336

Репутация: 0


По умолчанию

Цитата:
Сообщение от velafrys  

Тебя уже второй раз просят представить пруфы оскорблений, говнокодер.
Пруфы будут?
Вот оскорбление - прошу принять меры.
 
Ответить с цитированием

  #219  
Старый 11.02.2016, 13:57
velafrys
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами: 5407316

Репутация: 0
По умолчанию

Цитата:
Сообщение от Visor123  

Вот оскорбление - прошу принять меры.
Это не оскорбление, а нарицательное слово. Грубое, конечно, но часто применимое, если "разработчик" этого заслуживает.

У меня нет причин называть кого-то другого в этом треде говнокодером, но если и будут - бьюсь об заклад, кто угодно докажет обратное, и мне станет стыдно.

А вот ты не можешь доказать.

Опровергни тот факт, что ты не говнокодер.
 
Ответить с цитированием

  #220  
Старый 11.02.2016, 13:58
mAnGoL
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами: 8581120

Репутация: 0
По умолчанию

Цитата:
Сообщение от velafrys  

Это не оскорбление, а нарицательное слово. Грубое, конечно, но часто применимое, если "разработчик" этого заслуживает.
У меня нет причин называть кого-то другого в этом треде говнокодером, но если и будут - бьюсь об заклад, кто угодно докажет обратное, и мне станет стыдно.
А вот ты не можешь доказать.

Опровергни тот факт, что ты не говнокодер.
Код:


Код:
/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see .
*/
package instances.IceQueenCastle2;

import java.util.Calendar;
import java.util.concurrent.ScheduledFuture;

import ai.group_template.L2AttackableAIScript;

import net.l2emuproject.gameserver.ThreadPoolManager;
import net.l2emuproject.gameserver.ai.CtrlIntention;
import net.l2emuproject.gameserver.datatables.NpcTable;
import net.l2emuproject.gameserver.datatables.SkillTable;
import net.l2emuproject.gameserver.instancemanager.InstanceManager;
import net.l2emuproject.gameserver.instancemanager.ZoneManager;
import net.l2emuproject.gameserver.instancemanager.InstanceManager.InstanceWorld;
import net.l2emuproject.gameserver.model.L2Effect;
import net.l2emuproject.gameserver.model.L2Party;
import net.l2emuproject.gameserver.model.L2Skill;
import net.l2emuproject.gameserver.model.L2Spawn;
import net.l2emuproject.gameserver.model.actor.L2Character;
import net.l2emuproject.gameserver.model.actor.L2Npc;
import net.l2emuproject.gameserver.model.actor.instance.L2DoorInstance;
import net.l2emuproject.gameserver.model.actor.instance.L2MonsterInstance;
import net.l2emuproject.gameserver.model.actor.instance.L2PcInstance;
import net.l2emuproject.gameserver.model.entity.Instance;
import net.l2emuproject.gameserver.model.quest.QuestState;
import net.l2emuproject.gameserver.model.quest.State;
import net.l2emuproject.gameserver.model.zone.L2BossZone;
import net.l2emuproject.gameserver.model.zone.L2Zone;
import net.l2emuproject.gameserver.network.SystemMessageId;
import net.l2emuproject.gameserver.network.serverpackets.ExShowScreenMessage;
import net.l2emuproject.gameserver.network.serverpackets.SystemMessage;
import net.l2emuproject.gameserver.skills.Formulas;
import net.l2emuproject.gameserver.templates.chars.L2NpcTemplate;
import net.l2emuproject.geoserver.model.Location;
import net.l2emuproject.tools.random.Rnd;

/**
*
* @author Visor123
* L2Emu Enterprise Server
*
*/

public class IceQueenCastle2 extends L2AttackableAIScript
{
    private static final boolean debug = false;
    private static final int INSTANCEID = 139;
    private static final String qn = "IceQueenCastle2";
    private static final String qnPrev = "10286_ReunionWithSirra";
    private static final int PLAYERS_MIN = 10;
    private static final int PLAYERS_MAX = 27;
   
    private static int _zoneScriptId = 200010; //script zone for start
    private static int _zoneBossId = 12015;
    private static L2BossZone _Zone;
    private static final Location _enterLoc = new Location(114025, -112300, -11200);
    private static final Location _centerLoc = new Location(114722, -114797, -11200);
   
    private static final int[][] _iceKnightLoc = {{113845,-116091,-11168,8264}
                                            ,{113381,-115622,-11168,8264}
                                            ,{113380,-113978,-11168,-8224}
                                            ,{113845,-113518,-11168,-8224}
                                            ,{115591,-113516,-11168,-24504}
                                            ,{116053,-113981,-11168,-24504}
                                            ,{116061,-115611,-11168,24804}
                                            ,{115597,-116080,-11168,24804}
                                            ,{112942,-115480,-10960,52}
                                            ,{112940,-115146,-10960,52}
                                            ,{112945,-114453,-10960,52}
                                            ,{112945,-114123,-10960,52}
                                            ,{116497,-114117,-10960,32724}
                                            ,{116499,-114454,-10960,32724}
                                            ,{116501,-115145,-10960,32724}
                                            ,{116502,-115473,-10960,32724}};
    private static final int _maxIceKnigth = 20; //OFF 160
    private static final int[][] _iceKnightLocThrone = {{114713,-115109,-11202,16456}
                                            ,{114008,-115080,-11202,3568}
                                            ,{114422,-115508,-11202,12400}
                                            ,{115023,-115508,-11202,20016}
                                            ,{115459,-115079,-11202,27936}};
    private static final int[] _maxIceKnigthThrone = {12,12,30};//first, second, third
    private static final int[][] _iceIceBreathLoc = {{114713,-115109,-11202,16456}
                                            ,{114008,-115080,-11202,3568}
                                            ,{114422,-115508,-11202,12400}
                                            ,{115023,-115508,-11202,20016}
                                            ,{115459,-115079,-11202,27936}};
    private static final int _maxIceBreath = 10;
    private static final int _maxIceStone = 6;
   
    private static final int FreyaOnThrone = 29177;
    private static final int Freya = 29179;
    private static final int[][] Freya_Skills = {{6274,1},{6275,1},{6276,1},{6277,1},{6278,1},{6279,1},{6280,1},{6282,1},{6283,1},{6284,1},{6285,1}};
    private static final int Glacier = 18853;
    private static final int Glakias = 25699;
    private static final int ArcheryKnight = 18855;
    private static final int ArchersBreath = 18854;
    /*private static final int FreyaController = 18930;
    private static final Location FreyaControllerLoc = new Location(114707,-114793,-11199,0);
    private static final int IceElementalController = 18931;
    private static final Location IceElementalControllerLoc = new Location(114707,-114795,-11199,0);
    private static final int IceCastleController = 18932;
    private static final Location IceCastleControllerLoc = new Location(114707,-114797,-11199,0);*/
    private static final int[] _zoneSkill = {6437,7};
   
    private static final int Kegor = 18851;
    private static final int Jinia = 18850;
    private static final int JINIA2 = 32781;
   
    static class Timer implements Runnable
    {
        @Override
        public void run()
        {
            if (time > 10)
            {
                world.BossZone.broadcastPacket(new ExShowScreenMessage("00 : "+time, 1500), world.instanceId); //need check
                ThreadPoolManager.scheduleGeneral(new Timer(time - 1, world), 1000L);
            }
        }
       
        private int time;
        private FreyaWorld world;
       
        public Timer(int _time, FreyaWorld _world)
        {
            time = _time;
            world = _world;
        }
    }
   
    private static class FreyaWorld extends InstanceWorld
    {
        L2AttackableAIScript _quest;
        L2Npc Npc_Freya;
        L2Npc Npc_Kegor;
        L2Npc Npc_Jinia;
        L2Npc Npc_Glakias;
        L2BossZone BossZone;
        int stage = 0;
        ScheduledFuture knigthController = null;
        int countKnigth = 0;
        ScheduledFuture knigthThroneController = null;
        int countKnigthThrone = 0;
        ScheduledFuture breathController = null;
        ScheduledFuture stoneController = null;
        int countIceBreath = 0;
        int countIceStone = 0;
        ScheduledFuture zoneSkillController = null;
        ScheduledFuture helpMoveController = null;
       
        public FreyaWorld(Instance inst, L2AttackableAIScript quest)
        {
            super(inst);
            _quest = quest;
        }
       
        @Override
        public void decayMe()
        {
            stopHelpMoveController();
            stopBreathController();
            stopKnigthController();
            stopKnigthThroneController();
            stopStoneController();
            stopZoneSkillController();
            super.decayMe();
        }

        synchronized void decCountKnigth()
        { countKnigth --; }
        synchronized void decCountKnigthThrone()
        { countKnigthThrone --; }
        synchronized void decCountIceBreath()
        { countIceBreath --; }
        synchronized void decCountIceStone()
        { countIceStone --; }
        synchronized void incCountKnigth()
        { countKnigth ++; }
        synchronized void incCountKnigthThrone()
        { countKnigthThrone ++; }
        synchronized void incCountIceBreath()
        { countIceBreath ++; }
        synchronized void incCountIceStone()
        { countIceStone ++; }
       
        synchronized void startStoneController()
        {
            if (stoneController != null)
                stoneController.cancel(false);
           
            stoneController =    ThreadPoolManager.scheduleGeneralAtFixedRate(new iceStoneController(_quest, this, 3), 1000L, 30000L);
        }
        synchronized void stopStoneController()
        {
            if (stoneController != null)
                stoneController.cancel(false);
            stoneController = null;
        }
        synchronized void startBreathController()
        {
            if (breathController != null)
                breathController.cancel(false);
           
            breathController = ThreadPoolManager.scheduleGeneralAtFixedRate(new breathController(_quest, this, 3), 1000L, 30000L);
        }
        synchronized void stopBreathController()
        {
            if (breathController != null)
                breathController.cancel(false);
            breathController = null;
        }
        synchronized void startZoneSkillController()
        {
            if (zoneSkillController != null)
                zoneSkillController.cancel(false);
           
            zoneSkillController = ThreadPoolManager.scheduleGeneralAtFixedRate(new zoneSkillController(_quest, this), 1000L, 10000L);
        }
        synchronized void stopZoneSkillController()
        {
            if (zoneSkillController != null)
                zoneSkillController.cancel(false);
            zoneSkillController = null;
            for (L2PcInstance player : getPlayers())
            {
                L2Effect effects[] = player.getAllEffects();
                for (int j = 0; j = 3)
            {
                party.getCommandChannel().broadcastToChannelMembers(new SystemMessage(2104));
                return false;
            }

        }
        if (party.getCommandChannel().getMembers().size()  PLAYERS_MAX)
        {
            party.getCommandChannel().broadcastToChannelMembers(new SystemMessage(2764));
            return false;
        }
        for (L2PcInstance plr : party.getCommandChannel().getMembers())
        {
            if (InstanceManager.getInstance().getPlayerWorld(plr) != null)
            {
                party.getCommandChannel().broadcastToChannelMembers(new SystemMessage(SystemMessageId.ALREADY_ENTERED_ANOTHER_INSTANCE_CANT_ENTER));
                return false;
            }
            if (plr.getLevel()  Calendar.WEDNESDAY)
            result.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);
        else
        {
            if (result.get(Calendar.DAY_OF_WEEK) == Calendar.WEDNESDAY)
            {
                if (result.get(Calendar.HOUR_OF_DAY)  0))
        {
            //_log.info("onEnterZone: "+ zone.getId() + "  Zone Name: "+ zone.getName());
            InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(character.getInstanceId());
            //_log.info("freya2 onEnterZone tmpworld="+tmpworld.getClass().getCanonicalName());
            if (tmpworld != null && tmpworld.templateId == INSTANCEID)
            {
                //_log.info("onEnterZone tmpworld.templateId="+tmpworld.templateId+" INSTANCEID="+INSTANCEID);
                final FreyaWorld world = (FreyaWorld) tmpworld;
                //_log.info("zone.getId(): " + zone.getId() + "  world.status: " + world.status);
                if (zone.getId() == _zoneScriptId && world.status  0)
        {
            InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
            if (tmpworld instanceof FreyaWorld)
            {
                final FreyaWorld world = (FreyaWorld) tmpworld;
                if (npc.getNpcId() == FreyaOnThrone && world.status == 1)
                {
                    endStage(world);
                    world.setStatus(2);
                    world.stage = 2;
                    startStage(world);
                }
                else if (npc.getNpcId() == ArcheryKnight)
                {
                    if (npc.getTag() != null && (Integer)npc.getTag() == 1)
                        world.decCountKnigthThrone();
                    else
                        world.decCountKnigth();
                   
                    if (world.status >= 2 && world.status = 12)
                        {
                            allowBossZone(world);
                            world.BossZone.broadcastMovie(23, world.instanceId);
                            stopAll(world);
                            ThreadPoolManager.scheduleGeneral(new Runnable()
                            {
                                @Override
                                public void run()
                                {
                                    world.Npc_Glakias = IceQueenCastle2.spawn(Glakias, 114722, -114797, -11200, 16384, world);
                                    startAll(world);
                                }
                            }, 7000L);
                        }
                    }
                }
                else if (npc.getNpcId() == ArchersBreath)
                {
                    world.decCountIceBreath();
                }
                else if (npc.getNpcId() == Glakias && world.status == 12)
                {
                    world.Npc_Glakias = null;
                    world.setStatus(world.status + 1);
                    endStage(world);
                    ThreadPoolManager.scheduleGeneral(new Timer(60, world), 100L);
                    ThreadPoolManager.scheduleGeneral(new Runnable()
                    {
                        @Override
                        public void run()
                        {
                            world.stage = 3;
                            IceQueenCastle2.startStage(world);
                        }
                    }, 60100L);
                }
                else if (npc.getNpcId() == Freya/* && world.status == 15*/)
                {
                    world.setStatus(16/*world.status + 1*/);
                    endStage(world);
                    //complete quest 10286_ReunionWithSirra
                    for (L2PcInstance player1 : world.getPlayers())
                    {
                        if (player1 != null)
                        {
                            QuestState qs = player1.getQuestState(qnPrev);
                            if (qs != null && !qs.isCompleted() && qs.getInt("progress") == 2 && qs.getInt("cond") == 6)
                            {
                                qs.set("progress", "3");
                                qs.set("cond", "7");
                                qs.playSound("ItemSound.quest_middle");
                            }
                        }
                    }
                    allowBossZone(world);
                    world.BossZone.broadcastMovie(19, world.instanceId);
                    ThreadPoolManager.scheduleGeneral(new Runnable()
                    {
                        @Override
                        public void run()
                        {
                            world.setStatus(world.status + 1);
                        }
                    }, 16000L);
                    world.getSelfInstance().setDuration(5); //duration 5 min
                }
                else if (npc.getNpcId() == Glacier)
                {
                    npc.setDisplayEffect(3);
                    world.decCountIceStone();
                    addSpawn(ArchersBreath, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), true, 0, false, world.instanceId);
                    world.incCountIceBreath();
                }
            }
        }
        return null;
    }
   
    private static void setInstanceReenterTime(InstanceWorld world)
    {
        if (world != null)
        {
            try
            {
                long nextUpdate = generateUpdateTime();
               
                // set instance reenter time for all allowed players
                for (L2PcInstance player : world.getPlayers())
                {
                    if (player != null)
                        InstanceManager.getInstance().setInstanceTime(player.getObjectId(), INSTANCEID, nextUpdate);
                }
            }
            catch (Exception e) {
                // TODO: handle exception
            }
        }
    }
   
    @Override
    public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isPet)
    {
        if (npc.getInstanceId() > 0)
        {
            InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
            if (tmpworld instanceof FreyaWorld && tmpworld.templateId == INSTANCEID)
            {
                final FreyaWorld world = (FreyaWorld) tmpworld;
                if (npc.getNpcId() == Freya && npc.getCurrentHp() = _maxIceBreath) return;
                   
                    int[] loc = _iceIceBreathLoc[Rnd.get(0, _iceIceBreathLoc.length - 1)];
                   
                    _quest.addSpawn(ArchersBreath, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
                    ww.incCountIceBreath();
                }
            }
        }
    }
   
    static class iceStoneController implements Runnable
    {
        private L2AttackableAIScript _quest;
        private FreyaWorld ww;
        private int count;
        public iceStoneController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
        {
            _quest = quest;
            ww = world;
            count = startCount;
        }
       
        @Override
        public void run()
        {
            if (ww != null && ww.countIceStone = _maxIceStone) return;
                   
                    int[] loc = _iceIceBreathLoc[Rnd.get(0, _iceIceBreathLoc.length - 1)];
                   
                    _quest.addSpawn(Glacier, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
                    ww.incCountIceStone();
                }
                count = 1;
            }
        }
    }
   
    static class zoneSkillController implements Runnable
    {
        //private L2AttackableAIScript _quest;
        private FreyaWorld ww;
        public zoneSkillController(L2AttackableAIScript quest, FreyaWorld world)
        {
            //_quest = quest;
            ww = world;
        }
       
        @Override
        public void run()
        {
            if (ww != null && ww.countIceStone > 0)
            {
                int skillLvl = Rnd.get(1, _zoneSkill[1]);
                L2Skill skill = SkillTable.getInstance().getInfo(_zoneSkill[0], skillLvl);
                for (L2PcInstance player : ww.getPlayers())
                {
                    if (Formulas.calcSkillSuccess(player, player, skill, (byte)0, false, false, false))
                        skill.getEffects(player, player);
                }
            }
           
        }
    }
   
    static class knigthController implements Runnable
    {
        private L2AttackableAIScript _quest;
        private FreyaWorld ww;
        private int count;
        public knigthController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
        {
            _quest = quest;
            ww = world;
            count = startCount;
        }
       
        @Override
        public void run()
        {
            if (ww != null && ww.countKnigth = _maxIceKnigth) return;
                   
                    int[] loc = _iceKnightLoc[Rnd.get(0, _iceKnightLoc.length - 1)];
                   
                    L2Npc knight = _quest.addSpawn(ArcheryKnight, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
                    if (knight != null)
                    {
                        ww.incCountKnigth();
                        knight.setIsImmobilized(true);
                        knight.setDisplayEffect(1);
                        _quest.startQuestTimer("startAggro", 20000L, knight, null);
                    }
                }
            }
        }
    }
   
    static class knigthThroneController implements Runnable
    {
        private L2AttackableAIScript _quest;
        private FreyaWorld ww;
        private int count;
        public knigthThroneController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
        {
            _quest = quest;
            ww = world;
            count = startCount;
        }
       
        @Override
        public void run()
        {
            if (ww != null && ww.countKnigthThrone = _maxIceKnigthThrone[ww.stage - 1]) return;
                   
                    int[] loc = _iceKnightLocThrone[Rnd.get(0, _iceKnightLocThrone.length - 1)];
                   
                    L2Npc knight = _quest.addSpawn(ArcheryKnight, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
                    if (knight != null)
                    {
                        knight.setTag((Integer)1);
                        ww.incCountKnigthThrone();
                    }
                }
            }
        }
    }
   
    static class helpMoveController implements Runnable
    {
        private L2AttackableAIScript _quest;
        private FreyaWorld ww;
        public helpMoveController(L2AttackableAIScript quest, FreyaWorld world)
        {
            _quest = quest;
            ww = world;
        }
       
        @Override
        public void run()
        {
            if (ww != null)
            {
                for (L2Npc npc : ww.getNpcs())
                {
                    if (npc != null && npc != ww.Npc_Freya && npc != ww.Npc_Glakias && npc != ww.Npc_Jinia && npc != ww.Npc_Kegor && !npc.isImmobilized() && !npc.isInCombat())
                        _quest.startQuestTimer("moveTo", Rnd.get(200, 800), npc, null);
                }
            }
        }
    }
   
    private static void moveTo(L2Npc npc, Location loc)
    {
        if (npc != null)
        {
            npc.setRunning();
            npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(loc.getX(), loc.getY(), loc.getZ()), true);
            if (npc.getSpawn() != null)
            {
                npc.getSpawn().setLocx(loc.getX());
                npc.getSpawn().setLocy(loc.getY());
                npc.getSpawn().setLocz(loc.getZ());
            }
        }
    }
   
    @Override
    public final String onSpawn(L2Npc npc)
    {
        if (npc.getNpcId() == Glacier)
        {
            npc.setDisplayEffect(1);
            npc.setIsImmobilized(true);
            startQuestTimer("changeEffect", 1900L, npc, null);
        }
        npc.setIsNoAnimation(true);
        return null;
    }
   
    @Override
    public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
    {
        if (npc != null && npc.getInstanceId() > 0 && InstanceManager.getInstance().getWorld(npc.getInstanceId()) != null && InstanceManager.getInstance().getWorld(npc.getInstanceId()).templateId == INSTANCEID)
        {
            FreyaWorld world = (FreyaWorld) InstanceManager.getInstance().getWorld(npc.getInstanceId());
            if (event.equalsIgnoreCase("changeEffect"))
            {
                //npc.setIsImmobilized(false);
                npc.setDisplayEffect(2);
                npc.broadcastFullInfo();
            }
            else if (event.equalsIgnoreCase("startAggro"))
            {
                npc.setIsImmobilized(false);
                npc.setDisplayEffect(2);
                npc.broadcastFullInfo();
            }
            else if (event.equalsIgnoreCase("moveTo"))
            {
                if (!npc.isImmobilized() && !npc.isInCombat())
                {
                    if (Rnd.chance100(50) && !world.getPlayers().isEmpty())
                    {
                        try
                        {
                            L2PcInstance target = world.getSelfInstance().getRandomPlayer();
                            if (target != null)
                            {
                                npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
                                return null;
                            }
                           
                        }
                        catch (Exception e) {
                            // TODO: handle exception
                            startQuestTimer("moveTo", 3000L, npc, null);
                        }
                    }
                    Location toLoc = _centerLoc;
                    if (world.Npc_Glakias != null)
                        toLoc = world.Npc_Glakias.getLocation();
                    else if (world.Npc_Freya != null && world.stage != 2)
                        toLoc = world.Npc_Freya.getLocation();
                    if (!npc.isInsideRadius(toLoc.getX(), toLoc.getY(), toLoc.getZ(), 500))
                        moveTo(npc, toLoc);
                }
            }
        }
        return null;
    }
   
    @Override
    public String onTalk(L2Npc npc, L2PcInstance player)
    {
        int npcId = npc.getNpcId();
        if (npcId == JINIA2)
        {
            enterInstance(npc, player);
        }
        return "";
    }
   
    public IceQueenCastle2(int id, String name, String descr)
    {
        super(id, name, descr);
        addEnterZoneId(_zoneScriptId);
        addStartNpc(JINIA2);
        addTalkId(JINIA2);
        addKillId(FreyaOnThrone);
        addKillId(ArcheryKnight);
        addSpawnId(ArcheryKnight);
        addKillId(ArchersBreath);
        addSpawnId(ArchersBreath);
        addKillId(Glakias);
        addKillId(Freya);
        addKillId(Glacier);
        addAttackId(Freya);
        addAttackId(ArcheryKnight);
        addSpawnId(Glacier);
        registerSkillsForNpc(Freya, Freya_Skills);

        _Zone = (L2BossZone)ZoneManager.getInstance().getZoneById(_zoneBossId);;       
}
   
    public static void main(String args[])
    {
        new IceQueenCastle2(-1, qn, "instances");
    }
}
Нет, не говнокодер.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.