30

» The movement of the stars / Совершенно дурацкие новости

И простите, что проект возможно придется закрыть из-за такой чепухи.
Я тоже так хочу, наделать новостей о ломании шаблонов RPG, а потом: "Так пацаны, расходимся, у меня коврик от мышки сломался".
30

» WarCraft 3 / Проблема с описанием предметов и всего остального

быть может эта проблема может быть связана конкретно с картой?
А карту можно на проверить?
30

» WarCraft 3 / Код Jaas, изменение кода в уже готовой наработке.

Bergi_Bear:
Jareded, как только я поборю свою идиотскую систему автосохранений обязательно гляну, займись пока тем, что легко даётся
А чем вам чужие системы не нравятся?
30

» WarCraft 3 / Телепортация по областям в соответствии с координатами

при обьединении всего этого в одну единственную строчку
А зачем плодить зубодробильно нечитаемые строки?
30

» WarCraft 3 / Телепортация по областям в соответствии с координатами

я не нубас
я тупой
Противоречие вижу я.

Clamp:
Тебе разжевали принцип три человека разными способами, попробуй их прочитать и применить.
Присоединяюсь.
30

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

Лучше помоги с jass-триггером, который сегодня ночью обсуждали.
А мне можно к обсуждению присоединиться?))
30

» XGM Конкурсы / Warcraft 3 Custom Maps Contest 2019

И всё же я настаиваю не хитрить и выдвигать на конкурс проекты, которые реально находятся в разработке, а не в готовый проект добавить два кустика и назвать v 2.0
И будут соревноваться 2.5 землекопа(
30

» WarCraft 3 / Возможна ли без JASS автоматическая добыча древесины?

Можно ли обойтись встроенным в ворлд эдитор редактором триггеров, чтобы создать триггер на автоматическое
Можно конвертировать в cJass|vJass|zinc и не париться)
30

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

Не горячись, всё равно конкурс завершён
Слова были сказаны, дела были сделаны!
А так как деньги всё равно небыли переведы, то пусть организаторы решают.

В идеале нужно их равномерно размыть
30

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

не смотрел, но по отзывам ты сделал очень стрёмные ролики чужих карт
Если я сделаю эти ролики ещё раз и откажусь от приза, вас это убедит в моей непредвзятости?

Снимаю с конкурса Mazer

Так как деньги всё равно не перечислены, прошу снять мою работу с конкурса и распорядиться деньгами по вашему усмотрению.
30

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

вы явно представляете, как это лучше всего сделать)
Я уже сделал, только незашло((
30

» WarCraft 3 / Телепортация по областям в соответствии с координатами

придётся прочитать ВЕСЬ код, а не тупо названия методов
А где я говорил, что анонимные функции это панацея? В этом случае это применимо и работает, почему не да.
30

» WarCraft 3 / Телепортация по областям в соответствии с координатами

конфликты имён решаются областями видимости.
В таком простом коде у меня не возникло примера с конфликтом имён.
Clamp:
Названия методов должны нести смысл
В методе уже есть смысл
TriggerAddCondition(t, Condition(function() -> boolean {

Напишите это же, в "хорошем" стиле написания, тогда уж сравним)))
30

» WarCraft 3 / Телепортация по областям в соответствии с координатами

просто омерзительный стиль всё что можно в анонимные функции пихать.
А чем при компиляции анонимная функция от обычной отличается? А так весь код читается сверху вниз и ненужно выдумывать названия функций.
30

» WarCraft 3 / Телепортация по областям в соответствии с координатами

Принятый ответ
Вам всеголишь нужно знать отношение между облатями.
Например:
игровая = 1000x500
измерение = 100х50
dx = ширина_измерения/ширина_игровой = 100/1000 = 0.1
dy = высота_измерения/высота_игровой = 50/500 = 0.1
Ну а дальше просто получаете x,y героя относительно левого верхнего угла игровой и телепортируете в
x1*dx
y1*dx
где x1,y1 левый верхний угол измерения.
Проще кодом объяснить
//! zinc
library Test {
    region R1, R2;
    real X1, Y1, X2, Y2, DX, DY, W1, W2, H1, H2;
    integer AbilityID = 'Aroa';

    function onInit(){
        trigger t = CreateTrigger();
        integer i;
        unit u = gg_unit_edoc_0000;
        
        FogEnable(false);
        FogMaskEnable(false);
        
        SelectUnit(u, true);
        PanCameraToTimed(GetUnitX(u), GetUnitY(u), 0);
        
        X1 = GetRectMinX(gg_rct_R1);
        Y1 = GetRectMinY(gg_rct_R1);
        X2 = GetRectMinX(gg_rct_R2);
        Y2 = GetRectMinY(gg_rct_R2);
        W1 = GetRectMaxX(gg_rct_R1) - X1;
        W2 = GetRectMaxX(gg_rct_R2) - X2;
        H1 = GetRectMaxY(gg_rct_R1) - Y1;
        H2 = GetRectMaxY(gg_rct_R2) - Y2;
        
        R1 = CreateRegion();
        R2 = CreateRegion();
        RegionAddRect(R1, gg_rct_R1);
        RegionAddRect(R2, gg_rct_R2);
        
        for (0 <= i < bj_MAX_PLAYER_SLOTS){
            TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null);
        }
        TriggerAddCondition(t, Condition(function() -> boolean {
            unit u = GetTriggerUnit();
            real x, y, dx, dy;
            boolean isMove = false;
            
            if (GetSpellAbilityId() == AbilityID){
                
                if (IsUnitInRegion(R1, u)){
                    dx = GetUnitX(u) - X1;
                    dy = GetUnitY(u) - Y1;
                    x = X2 + dx*W2/W1;
                    y = Y2 + dy*H2/H1;
                    isMove = true;
                }
                if (IsUnitInRegion(R2, u)){
                    dx = GetUnitX(u) - X2;
                    dy = GetUnitY(u) - Y2;
                    x = X1 + dx*W1/W2;
                    y = Y1 + dy*H1/H2;
                    isMove = true;
                }
                
                if (isMove){
                    SetUnitX(u, x);
                    SetUnitY(u, y);
                    PanCameraToTimed(x, y, 0);
                }
                
            }
            u = null;
            return false;
        }));
        
        BJDebugMsg("Используйте Рев для телепортации");
        
        t = null; u = null;
    }
}
//! endzinc
Загруженные файлы
30

» WarCraft 3 / ZinC: Гнев Деревьев AOE

Импале должен работать по идее.
Я тут проверял, следующий impale прерывает предыдущий, пришлось даммиков плодить.
30

» WarCraft 3 / Polar

Мне бы библиотеку для работы с векторами.
Я пока ещё с векторами не работал, как разберусь, напишу.
30

» WarCraft 3 / ZinC: Гнев Деревьев AOE

Хм, а с Chain Lighting это не работает.
Не со всеми заклинаниям это подходит. С impale тоже такие проблемы.
30

» WarCraft 3 / Атака всех видимых врагов заклинанием

По объёму кода видно насколько проще.
Разверните все BJ в вашем примере и тогда сравним)