Иконка ресурса

L2Scripts - Rev. 24990 Classic 2.0 2018-01-24

Нет прав для скачивания
я уже сто раз убедилтся что у л2скрипт не надо покупать сборку или исходник такое гомно лушее в помойку выкинут
 
Интересно, хоть 1 наезд на них они опровергнут?
 
а смысли они даже не могу ответит судь вопроса типо напишут где пруф если уже кик уже показал что к чему или я не права

скрипт как был гомно так им и осталтся или я не прав или у них все руоффу ,евро где их код родной их все по птсу
 
Последнее редактирование модератором:

    jois

    Баллов: -7
    Русский подучи
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Интересно, хоть 1 наезд на них они опровергнут?

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

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

Доказывать участников "спора" - нечего, вас ничего не убедит в обратном, по этому мы будем молчать дальше.

Успехов.
 
l2s-guard слуш вы даже не можете ответит на вопрос который задали вам где ваш код который вы самий написали )))
 



Oh yes.
 
Не хочу становиться ни на чью сторону, но давайте посмотрим на сервера: большАя доля из них стоят на эмуле скриптов, какая-то часть - ритейл, пара-троечка на эмулях каких-то ноунеймов, а бОльшая часть вообще на пвсофте. Потом на счет копипасты: на дворе не век перфокарт, есть множество исходников в свободном и не в свободном доступе, всяческих библиотек и т.п. Суть программирования в основном в том, чтобы не изобретать по 100 раз один и тот же велосипед, а делать более костыльный навороченный, используя при этом максимум костылей минимум усилий, пусть даже взяв за основу какой-то другой велосипед. Если судить как вы, то тут должны ребята из лыжи всех говнить мол чего спиздили наши исходники.
P.S.: Небось половину из тех, кто говнит скриптов, можно спросить мол "почему ты так о них думаешь", а он в ответ "та мне там чел сказал". Человеки из толпы...
 
вот ответ тебе пример
Код:
package l2s.gameserver.data.xml.parser;

import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.dom4j.Element;
import l2s.commons.collections.MultiValueSet;
import l2s.commons.data.xml.AbstractDirParser;
import l2s.commons.geometry.Circle;
import l2s.commons.geometry.Polygon;
import l2s.commons.geometry.Rectangle;
import l2s.gameserver.Config;
import l2s.gameserver.data.xml.holder.SpawnHolder;
import l2s.gameserver.model.Territory;
import l2s.gameserver.templates.StatsSet;
import l2s.gameserver.templates.spawn.PeriodOfDay;
import l2s.gameserver.templates.spawn.SpawnNpcInfo;
import l2s.gameserver.templates.spawn.SpawnTemplate;
import l2s.gameserver.utils.Location;

/**
 * @author VISTALL
 * @date  18:38/10.12.2010
 */
public final class SpawnParser extends AbstractDirParser<SpawnHolder>
{
    private static final SpawnParser _instance = new SpawnParser();

    public static SpawnParser getInstance()
    {
        return _instance;
    }

    protected SpawnParser()
    {
        super(SpawnHolder.getInstance());
    }

    @Override
    public File getXMLDir()
    {
        return new File(Config.DATAPACK_ROOT, "data/spawn/");
    }

    @Override
    public boolean isIgnored(File f)
    {
        return false;
    }

    @Override
    protected void readData(Element rootElement) throws Exception
    {
        Map<String, Territory> territories = new HashMap<String, Territory>();
        for(Iterator<Element> spawnIterator = rootElement.elementIterator(); spawnIterator.hasNext();)
        {
            Element spawnElement = spawnIterator.next();
            if(spawnElement.getName().equalsIgnoreCase("territory"))
            {
                String terName = spawnElement.attributeValue("name");
                Territory territory = parseTerritory(terName, spawnElement);
                territories.put(terName, territory);
            }
            else if(spawnElement.getName().equalsIgnoreCase("spawn"))
            {
                String group = spawnElement.attributeValue("group");
                String name = spawnElement.attributeValue("name") == null ? (group == null ? "" : group) : spawnElement.attributeValue("name");
                int respawn = spawnElement.attributeValue("respawn") == null ? 60 : Integer.parseInt(spawnElement.attributeValue("respawn"));
                int respawnRandom = spawnElement.attributeValue("respawn_random") == null ? 0 : Integer.parseInt(spawnElement.attributeValue("respawn_random"));
                int count = spawnElement.attributeValue("count") == null ? 1 : Integer.parseInt(spawnElement.attributeValue("count"));
                PeriodOfDay periodOfDay = spawnElement.attributeValue("period_of_day") == null ? PeriodOfDay.NONE : PeriodOfDay.valueOf(spawnElement.attributeValue("period_of_day").toUpperCase());
                if(group == null)
                    group = periodOfDay.name();
                SpawnTemplate template = new SpawnTemplate(name, periodOfDay, count, respawn, respawnRandom);

                for(Iterator<Element> subIterator = spawnElement.elementIterator(); subIterator.hasNext();)
                {
                    Element subElement = subIterator.next();
                    if(subElement.getName().equalsIgnoreCase("point"))
                    {
                        int x = Integer.parseInt(subElement.attributeValue("x"));
                        int y = Integer.parseInt(subElement.attributeValue("y"));
                        int z = Integer.parseInt(subElement.attributeValue("z"));
                        int h = subElement.attributeValue("h") == null ? -1 : Integer.parseInt(subElement.attributeValue("h"));

                        template.addSpawnRange(new Location(x, y, z, h));
                    }
                    else if(subElement.getName().equalsIgnoreCase("rectangle"))
                    {
                        int x1 = Integer.parseInt(subElement.attributeValue("x1"));
                        int y1 = Integer.parseInt(subElement.attributeValue("y1"));
                        int x2 = Integer.parseInt(subElement.attributeValue("x2"));
                        int y2 = Integer.parseInt(subElement.attributeValue("y2"));
                        int zmin = Integer.parseInt(subElement.attributeValue("zmin"));
                        int zmax = Integer.parseInt(subElement.attributeValue("zmax"));

                        Rectangle rectangle = new Rectangle(x1, y1, x2, y2);
                        rectangle.setZmin(zmin);
                        rectangle.setZmax(zmax);

                        Territory territory = new Territory();
                        territory.add(rectangle);

                        template.addSpawnRange(territory);
                    }
                    else if(subElement.getName().equalsIgnoreCase("circle"))
                    {
                        int x = Integer.parseInt(subElement.attributeValue("x"));
                        int y = Integer.parseInt(subElement.attributeValue("y"));
                        int zmin = Integer.parseInt(subElement.attributeValue("zmin"));
                        int zmax = Integer.parseInt(subElement.attributeValue("zmax"));
                        int radius = Integer.parseInt(subElement.attributeValue("radius"));

                        Circle circle = new Circle(x, y, radius);
                        circle.setZmin(zmin);
                        circle.setZmax(zmax);

                        Territory territory = new Territory();
                        territory.add(circle);

                        template.addSpawnRange(territory);
                    }
                    else if(subElement.getName().equalsIgnoreCase("territory"))
                    {
                        String terName = subElement.attributeValue("name");
                        if(terName != null)
                        {
                            Territory g = territories.get(terName);
                            if(g == null)
                            {
                                error("Invalid territory name: " + terName + "; " + getCurrentFileName());
                                continue;
                            }
                            template.addSpawnRange(g);
                        }
                        else
                        {
                            Territory temp = parseTerritory(null, subElement);

                            template.addSpawnRange(temp);
                        }
                    }
                    else if(subElement.getName().equalsIgnoreCase("npc"))
                    {
                        int npcId = Integer.parseInt(subElement.attributeValue("id"));
                        int max = subElement.attributeValue("max") == null ? 0 : Integer.parseInt(subElement.attributeValue("max"));
                        MultiValueSet<String> parameters = StatsSet.EMPTY;
                        for(Element e : subElement.elements())
                        {
                            if(parameters.isEmpty())
                                parameters = new MultiValueSet<String>();

                            parameters.set(e.attributeValue("name"), e.attributeValue("value"));
                        }
                        template.addNpc(new SpawnNpcInfo(npcId, max, parameters));
                    }
                }

                if(template.getNpcSize() == 0)
                {
                    warn("Npc id is zero! File: " + getCurrentFileName());
                    continue;
                }

                if(template.getSpawnRangeSize() == 0)
                {
                    warn("No points to spawn! File: " + getCurrentFileName());
                    continue;
                }

                getHolder().addSpawn(group, template);
            }
        }
    }

    private Territory parseTerritory(String name, Element e)
    {
        Territory t = new Territory();
        t.add(parsePolygon0(name, e));

        for(Iterator<Element> iterator = e.elementIterator("banned_territory"); iterator.hasNext();)
            t.addBanned(parsePolygon0(name, iterator.next()));

        return t;
    }

    private Polygon parsePolygon0(String name, Element e)
    {
        Polygon temp = new Polygon();
        for(Iterator<Element> addIterator = e.elementIterator("add"); addIterator.hasNext();)
        {
            Element addElement = addIterator.next();
            int x = Integer.parseInt(addElement.attributeValue("x"));
            int y = Integer.parseInt(addElement.attributeValue("y"));
            int zmin = Integer.parseInt(addElement.attributeValue("zmin"));
            int zmax = Integer.parseInt(addElement.attributeValue("zmax"));
            temp.add(x, y).setZmin(zmin).setZmax(zmax);
        }

        if(!temp.validate())
            error("Invalid polygon: " + name + "{" + temp + "}. File: " + getCurrentFileName());
        return temp;
    }
}

и да кстати это код уже как не изменялтся лет 5 может и больше
 
Последнее редактирование модератором:
Это мне должно было что-то сказать? оО
В ответ на твой ответ:

Юзается в ~99% исходников. По ссылке тот самый mmocore лыжи за 6 мая 2007. Потом они выпустили обновление, где начали юзать свои NIO-буфферы - обана - сразу пошли изменения и в других исходниках.
 
Последнее редактирование:
мда парень ты не вкурсе что данный исход делано VISTALL и он основател и не как лыжа
 
Ну судя по javadoc-комменту я это то понял. Ну и что? Выделенное не понял.
походу ты не понял что к чему если бы не VISTALL то они бы так бы и сосасй лыжы да у витал есть косяки но это уже другае история и да о нем не кто плохово не пишит так что лыжа лесом и скрипт кто у нас личер VISTALL или они

и того когда я правду написал даже пример перевел я в минус ушоль что мне все равно пуст будет как есть что тольку говорит если так и есть и да вы говорите за тех который за вас людей не читает скрипт это гомно одним слово п--ры и ш----и а по чет лыжы это уже другая история так что ты этим что ты доказал про даже ты не мог пример перести уважаемый Infernal Ashes ток может лесом или как да кстати я не проф я любитель
 
Последнее редактирование модератором:
Я тебя с трудом понимаю. И то не уверен, что правильно...
Я привел пример с модулем сети, который юзается в ЛС и ГС 99% эмулей и который написал челик из лыжи. И это сделал я к тому, чтобы показать, что использовать чужой код - вполне обыденно. Не скриптов проблема, что они на этом зарабатывают, а ты нет!
 
с тобой все ясно ты один из зомбаков который не поняль и вериш что у лыжи и скрыпты все по офу и они не личеры и да при чем это Я привел пример с модулем сети, который юзается в ЛС и ГС 99% эмулей и который написал челик из лыжи тогда я другое писал мне тя жаль что ты такой найвный и да мне п-х на рус так как сори родитса таким как пишу сори так и есть
 
только не говори что ты хохол
 
Ты как Хокинг через речевой апарат тексты набираешь, или к чему тут логопед вообще?
Логопед занимается исправлением дефектов речи, произношения букв и тд., так что ты 5 лет потратил не туда, нужно было на учителя русского языка 5 лет жахнуть
 
ты походу не был у логопеды я сражу скажу тебе что человек вопринятией по слуху очень плох по речю и писанию если что если он не поняль слово жигурда то он будет говорит жигурда или еще пример тебе перевестит
 
нет, ненужно, пожалуйста