30

» WarCraft 3 / Как сделать чтобы после убийства юнита выходил эффект крови?

этот вариант не оставляет после себя трупа
И что?
В вопросе не было никаких ограничений, я указал самый простой вариант.
30

» WarCraft 3 / Координаты xy

код
вектор (обновлено)
struct vec2 {
    public float x, y;

    public static vec2 create(float x, float y) {
        return vec2.allocate().set(x, y);
    }
    public static vec2 createByUnit(unit u) {
        return vec2.create(GetUnitX(u), GetUnitY(u));
    }
    public static vec2 createByAngle(float angle) {
        return vec2.create(CosBJ(angle), SinBJ(angle));
    }

    public vec2 set(float x, float y) {
        .x = x;
        .y = y;
        return this;
    }

    public vec2 plus(vec2 v) {
        return .set(x + v.x, y + v.y);
    }

    public vec2 minus(vec2 v) {
        return .set(x - v.x, y - v.y);
    }
    public vec2 mult(float num) {
        return .set(x*num, y*num);
    }
    public vec2 div(float num) {
        return .mult(1/num);
    }
    public vec2 normalize() {
        return .mult(1/SquareRoot(x*x + y*y));
    }
    public vec2 rotate(float angle) {
        return .rotateHelper(CosBJ(angle), SinBJ(angle));    
    }
    public float dot(vec2 v) {
        return x*v.x + y*v.y;
    }
    public float radius() {
        return SquareRoot(x*x + y*y);
    }
    public float radiusSqr() {
        return x*x + y*y;
    }

    private vec2 rotateHelper(float aCos, float aSin) {
        return .set(x*aCos - y*aSin, y*aCos + x*aSin);
    }
}
создание снаряда
#define DUMMY_ID = 'u001';
#define DEG2RAD = 0.017453292;

unit CreateSpellParticleUnit(unit source, float offsetAngle, float offsetRadius) {
    float spawnAngle = (offsetAngle + GetUnitFacing(source))*DEG2RAD;
    vec2 pivot = vec2.createByUnit(source);
    vec2 spawn = vec2.createByAngle(spawnAngle).mult(offsetRadius).plus(pivot);

    unit particle = CreateUnit(GetOwningPlayer(source), DUMMY_ID, spawn.x, spawn.y, 0);
    pivot.destroy();
    spawn.destroy();
    return particle;
}
30

» Есть желающие продолжить мою карту? / Gold Fever v1.23 AI

Altf40160, справедливости ради замечу, что номинально FrigatPlay по своему первому пункту прав, сделать хоть как-нибудь контент можно было бы за указанный им срок, но тем не менее не вижу вообще никакой проблемы в том, чтобы повышать свои навыки и попутно улучшать созданное, совмещая приятное с полезным. Сам так делал, однако так и не выпустил ни одного более-менее крупного проекта в варике, что не мешает иметь неплохое портфолио.
FrigatPlay, каждый волен совершить любой выбор в своём хобби, и эти выборы абсолютно точно не основываются на Ваших вкусах и желаниях, как бы сильно не хотелось обратного. Объективно, предъявлять здесь абсолютно не за что, и мне непонятна Ваша мотивация.
30

» WarCraft 3 / Координаты xy

Sergey105, хотя бы идея понятна?

А, вижу косяк, сейчас исправлю

Вроде исправил
30

» StarCraft 2 / Как отобразить область действия способности..

С ходу в голову пришла только идея отдельной "способности", которая служит целеуказанию и не имеет иных механик, но вроде как ещё способы есть
30

» WarCraft 3 / Координаты xy

Для начала замечу, что привычка использовать для обсчёта движения тригонометрические функции - верный путь к длительному, глубокому и жёсткому отсосу в будущем. Курите линал, он совершенно не сложный.

Писал прямо в сообщение, мог что-нибудь напутать, но вроде как не напутал.
код
вектор
struct vec2 {
	public float x, y;

	public static vec2 create(float x, float y) {
		return vec2.allocate().set(x, y);
	}
	public static vec2 createByUnit(unit u) {
		return vec2.create(GetUnitX(u), GetUnitY(u));
	}

	public vec2 plus(vec2 v) {
		return .set(x + v.x, y + v.y);
	}
	public vec2 minus(vec2 v) {
		return .set(x - v.x, y - v.y);
	}
	public vec2 mult(float num) {
		return .set(x*num, y*num);
	}
	public vec2 div(float num) {
		return .mult(1/num);
	}
	public vec2 normalize() {
		return this.div(SquareRoot(x*x + y*y));
	}
	private vec2 set(float x, float y) {
		this.x = x;
		this.y = y;
		return this;
	}
}
создание снаряда
Только создание, остальное сам
#define DUMMY_ID = 'u001'
#define SPAWN_DISTANCE = 100.0

unit createParticle(unit source, unit target) {
	vec2 va = vec2.createByUnit(source);
	vec2 vb = vec2.createByUnit(target).minus(va).normalize().mult(SPAWN_DISTANCE).plus(va);
	unit result = CreateUnit(GetOwningPlayer(source), DUMMY_ID, vb.x, vb.y, 0);
	va.destroy();
	vb.destroy();
	return result;
}

Само движение снаряда реализовать через вектора ни на йоту не сложнее.
30

» WarCraft 3 / Координаты xy

Сейчас допишу правильное решение, терпение.
Sergey105, ты же знаком со структурами?
30

» WarCraft 3 / Координаты xy

Sergey105, направление определяется способностью типа "цель-точка"?
30

» Есть желающие продолжить мою карту? / Gold Fever v1.23 AI

Господа, хочется попросить прекратить агрессивные нападки и начать высказываться по существу.

Автору: моё сообщение из вопроса в QA всё ещё актуально.
30

» WarCraft 3 / Передаем аргументы в фунции callback'ов

плодить овер 100500 не торт
Ты фактически ничего не можешь "плодить" в JASS, он статичный.
30

» WarCraft 3 / Передаем аргументы в фунции callback'ов

По сути небольшой синтаксический сахар, передача параметров весьма легко реализуется и без него. Но за ресёрч определённо плюс!
30

» WarCraft 3 / Долгогрузка

Быстрая загрузка в игре просто делается - подгружай логику только когда она становится нужна (обычно при пике героя), а не всю сразу. За конкретной реализацией - к Open DotA.
30

» Way of Others / Way of Others

Могли бы авторы много лет назад как-нибудь это обыграть, когда морлоки Флека прибыли в Калимдор.
А могли и не обыгрывать, их полное право. Морлоки могли просто не встретиться друг с другом, например.
30

» WarCraft 3 / constant function

DracoL1ch, обычно это называют "сахаром" =)
В данном случае он действительно бесполезный, но тем не менее.
30

» WarCraft 3 / Долгогрузка

грузит долго из-за РО, его я меньше никак не сделаю
если я все данные РО перепишу в slk, то все равно карты долго будут грузиться?
Не должны, по идее. Проверять за тебя в любом случае вряд ли кто-то будет. =)
30

» WarCraft 3 / Продажа предметов

DemonoiD, в этом вопросе есть моменты, которые могут помочь получить хотя бы временное решение.
Не помню точно как, но как-то это без костылей настраивалось...
30

» WarCraft 3 / Есть желающие продолжить мою карту?

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

Автору: вообще-то говоря, подобные вещи обычно публикуют в блогах. В QA (этом разделе) тоже можно, конечно, но вопросы обычно очень быстро пропадают из поля зрения пользователей сайта, а поиск продолжателя может занять значительное время.
Вообще, я бы глянул исходник интереса ради. Продолжать гарантированно не буду, но мб на досуге что-нибудь запилю/перепилю для развлечения и скину тебе. Впрочем, тоже не обещаю.

Остальных комментаторов хотелось бы попросить воздержаться от выкрикивания мнений без конструктива по существу.
30

» WarCraft 3 / Hide unit через GetLocalPlayer() вызовет десинк?

Делается задуманное так:
  1. В РО создаём копию нужного магазина, и полностью удаляем у неё карту путей и модель (Art: model => ".mdl")
  2. Ставим на карту в нужном месте нейтральное оригинальное здание и в те же самые координаты каждому игроку копию без модели
  3. В коде реализуем алгоритм, подобный следующему:
псевдокод
func_1:
	GetLocalPlayer().GetSelection().Remove("нейтральный магазин")
	GetLocalPlayer().GetSelection().Add(PlayerShop[GetPlayerId(GetLocalPlayer())])

func_2:
	return GetLocalPlayer().GetSelection().ContainsUnit("нейтральный магазин")

func_main:
	trigger t = CreateTrigger()
	t.RegisterPeriodicEvent(0.02)
	t.AddCondition(func_2)
	t.AddAction(func_1)

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

» WarCraft 3 / структура и перебирание данных в ней

если у вас не 300+ объектов для перебора
Использовать список практически нецелесообразно.