28

» WarCraft 3 / Как сделать максимальную защиту карты?

у китайцев либо битая таблица либо mpq v1
и то и то открывается нормальными mpq архиваторами
а после пересохранения можно и xdep заюзать
любой кто захочет взломать твою карту взломает её
на крайний случай попросит помощи на этом же сайте
DracoL1ch, морозилка фигня
надо жидкий азот
и ты забыл про кислоту
AlexSan, ещё можно для защиты от скрипткиди вставляющих читы по гайдам
особенно в карте с сэйвлоадом
правда там как правило используется проверка хэндлов в коде а не протект всей карты
нуб не сломает
а про не станет тратить время на поиск этой проверки в карте
28

» XGM Team / Выборы Администратора Контента XGM 2018

Maniac_91, шанс шансом но правила никто не отменял
4 контент админа это перебор
по идее должен быть 1 контент админ и несколько менеджеров помогающих ему
28

» XGM Team / Выборы Администратора Контента XGM 2018

ZlaYa1000, с моей точки зрения человек отвечающий "мне пофиг на ваши правила" или "нафига мне твои статьи, мне нужно чтобы вы сделали всё за меня" не достоин моей помощи
тем же кто адекватен я с радостью помогаю
просто неадекватов намного больше(
особенно тех кто зашёл на сайт с 1 нубо вопросом и больше не появлялся
28

» XGM Team / Выборы Администратора Контента XGM 2018

без обид но как по мне маньяк плох как админ
возможно моё мнение связано с тем что он публиковал всякую херню в проекте вар3
или с тем что он недавно на сайте
или тем что ему не хватает опыта в какой либо области
особенно это заметно на фоне остальных кандидатов и других админов
28

» XGM Team / Выборы Администратора Контента XGM 2018

я бы проголосовал за Nerevar'a но в последнее время он появляется очень редко
28

» WarCraft 3 / Кампания героев

God_World, больше описания
больше скринов
глянь как расписано в тех ресурсах что я кинул
28

» Crazy Dwarf Race / Crazy Dwarf Race

Jack-of-shadow, карту к ресурсу прикрепи
ненадо в коменты кидать ссылку на карту
28

» WarCraft 3 / Кастомный blizzard.j

PyCCKuu_4eJl, по поводу порядка подгрузки
это касается только тех данных которые загружаются после старта карты
например модели юнитов и прочее
что касается того что подгружается до старта карты то тут импорт в карту не поможет
uranus, типо чтобы гуи не утекал
28

» WarCraft 3 / Кастомный blizzard.j

PyCCKuu_4eJl, UrsaBoss, внезапно есть ALL.j который исправляет в гуи все возможные утечки
PyCCKuu_4eJl, не все баги гуи можно исправить просто изменив бж функции
у гуи довольно кривая архитектура из за чего так много утечек
чтобы избавится полностью придётся менять сам список доступных функций в гуи
28

» WarCraft 3 / Событие на вход в воду

Тем более jass не совсем яп, это какой то костыльный скрипт, vJass хоть немного делает его похожим на ЯП
вджас лишь добавляет объекты и всякий сахар
jass вполне нормальный структурный яп
если по твоему jass плохой яп то попробуй асм
28

» WarCraft 3 / Событие на вход в воду

UrsaBoss, ScopteRectuS, 0,02 не советую иначе будут сильные лаги
PT153, UrsaBoss, блок global предназначен для объявления переменных
в нём нельзя вызывать функции
это не только в jass
это в любом структурном яп так
28

» WarCraft 3 / Кампания героев

God_World, раздел 2 правил прочти
и глянь примеры оформления
Примеры карт с хорошим описанием: EGTD, UZW, You TD.
28

» WarCraft 3 / По поводу кастомных заклинаний...

Fly123, на чистом jass можно и в обычном редакторе
но многие используют диалекты vjass/cjass для которых нужен Jass New Gen Pack
28

» WarCraft 3 / Событие на вход в воду

UrsaBoss, и не стоит использовать условия триггеров
на них есть множество ограничений
не только по количеству операций но и по времени работы
если всёже хочешь использовать триггеры то период не нужен т.к. можно использовать TriggerSleepAction(0)
он сбросит счётчик количества операций и будет ожидать пока не появится свободное процессорное время
таким образом лагов не будет вообще т.к. чем сильнее нагружен процессор тем медленнее будет работать система
но в замен скорость работы раза в 3 медленнее чем у таймера
library waitRegion initializer init{
    define regionType  = PATHING_TYPE_FLOATABILITY
    
    private region CustomRegion
    private float maxX
    private float minX
    private float maxY
    private float minY
    private float pointX
    private float pointY
    //debug
    private timer time;
    
    private void run(){
        int i=0;
        trigger t=GetTriggeringTrigger();
        loop{
            if( IsTerrainPathable(pointX, pointY, regionType) == false ){
                RegionAddCell( CustomRegion, pointX, pointY )
            }
            
            pointY = pointY-32.
            if( pointY < minY ){
                pointX = pointX-32.
                pointY = maxY
            }
            
            i++;
            exitwhen pointX < minX;
            if(i==5000){
                i=0;
                TriggerSleepAction(0);
            }
        }
        DestroyTrigger( t );
        //dubug
        BJDebugMsg(R2S(TimerGetElapsed(time)));
        BJDebugMsg("trigg end");
    }

    private void init(){
        trigger t=CreateTrigger();
        maxX = GetRectMaxX(bj_mapInitialPlayableArea)
        minX = GetRectMinX(bj_mapInitialPlayableArea)
        maxY = GetRectMaxY(bj_mapInitialPlayableArea)
        minY = GetRectMinY(bj_mapInitialPlayableArea)
        pointX = maxX
        pointY = maxY
        CustomRegion = CreateRegion()
        //degug
        time=CreateTimer();
        TimerStart(time, 100500, false, null);
        
        TriggerAddAction(t, function run);
        TriggerRegisterTimerEvent(t, 0, false)
    }
    

}
28

» WarCraft 3 / Событие на вход в воду

и никаких лагов
library CustomRegion initializer init{
    define regionType  = PATHING_TYPE_FLOATABILITY
    
    private region CustomRegion
    private float maxX
    private float minX
    private float maxY
    private float minY
    private float pointX
    private float pointY
    //debug
    private timer time;

    private void run(){
        timer t=GetExpiredTimer();
        int i=0;
        loop{
            if( IsTerrainPathable(pointX, pointY, regionType) == false ){
                RegionAddCell( CustomRegion, pointX, pointY )
            }
            
            pointY = pointY-32.
            if( pointY < minY ){
                pointX = pointX-32.
                pointY = maxY
            }
            
            i++;
            if(pointX < minX){
                DestroyTimer( t );
                //dubug
                BJDebugMsg(R2S(TimerGetElapsed(time)));
                BJDebugMsg("end");
                
                exitwhen true;
            }
            exitwhen (i==4000);
        }
    }

    private void init(){
        timer t=CreateTimer();
        maxX = GetRectMaxX(bj_mapInitialPlayableArea)
        minX = GetRectMinX(bj_mapInitialPlayableArea)
        maxY = GetRectMaxY(bj_mapInitialPlayableArea)
        minY = GetRectMinY(bj_mapInitialPlayableArea)
        pointX = maxX
        pointY = maxY
        CustomRegion = CreateRegion()
        //degug
        time=CreateTimer();
        TimerStart(time, 100500, false, null);
        
        TimerStart(t, 0.03, true, function run);
    }

}
480*480 полностью заполненную водой заносит за 18 секунд
без воды за 13
если на карте нету других действий выполняемых с самого начала при малом периоде (т.е. других подобных систем) то можно уменьшить период до 0,026
если допустимы незначительные лаги то можно увеличить количество операций с 4000 до 5000
28

» WarCraft 3 / Событие на вход в воду

UrsaBoss, 0,00 период ставить не стоит т.к. он будет тормозить основной поток игры
периода 0,03 вполне достаточно
и толку от многих таймеров?
всеравно они последовательно выполняются
причём обработка самих таймеров тратит дополнительное процессорное время
1 таймер с периодом 0,03 работает быстрее чем твоя система
28

» WarCraft 3 / Событие на вход в воду

UrsaBoss, нафига триггеры используешь?
есть же таймеры
и можно просто в 1 потоке циклом всё сделать
без периодического триггера
из за периодического триггера так долго и работает
28

» WarCraft 3 / Событие на вход в воду

оформи ещё в виде подключаемой библиотеки
чтобы не приходилось копировать код с карты на карту а просто прописать
include "enter_water.j"
и заяви на публикацию