"OrderBackToLine*" желательно передавать структуру, чтобы он нормально все обрабатывал, что тут невозможно сделать.
Зачем так сложно, можно просто использовать двумерные массивы. Вот вам библиотека Spawn, которая совместима с вашим кодом и не создаёт Location. По необходимости методов можно добавить
zinc
//! zinc
library Spawn {
rect SpawnRect[2][10];
public {
function IsUnitAlive(unit u) -> boolean {
return GetUnitState(u, UNIT_STATE_LIFE) > 0.45; // именно при этом значении наступает смерть
}
function OrderBackToLine(unit u, integer diff) {
integer data = GetUnitUserData(u);
integer data10 = data / 10;
integer modulus = data - (data / 10) * 10;
rect rct;
if (IsUnitAlive(u)){
if (data10 >=1 && data10 <= 3){
rct = SpawnRect[data10+diff][modulus];
} else {
if (udg_isTurnedOnDebug){
rct = SpawnRect[data10+diff][2];
// MakeTextTagAboveUnit нужно объявить до библиотеки Spawn
//MakeTextTagAboveUnit( u, "|c000000FFBack to Home!|r", 1.0, 1.0, 2.0, 0.5, 255, 255, 255, 255);
BJDebugMsg("Юнит побежал домой!");
}
}
IssuePointOrder(u, "attack", GetRectCenterX(rct), GetRectCenterY(rct));
}
rct = null;
}
function OrderBackToLineB(unit u) { OrderBackToLine(u, 0); }
function OrderBackToLineR(unit u) { OrderBackToLine(u, 3); }
}
function onInit(){
//B - Линия 1
SpawnRect[0][1] = gg_rct_WayP_1x1;
SpawnRect[0][2] = gg_rct_WayP_1x2;
SpawnRect[0][3] = gg_rct_WayP_1x3;
SpawnRect[0][4] = gg_rct_WayP_1x4;
SpawnRect[0][5] = gg_rct_WayP_1x5;
SpawnRect[0][6] = gg_rct_WayP_1x6;
SpawnRect[0][7] = gg_rct_RedMainBase;
//B - Линия 2
SpawnRect[1][1] = gg_rct_WayP_2x1;
SpawnRect[1][2] = gg_rct_WayP_2x2;
SpawnRect[1][3] = gg_rct_WayP_2x3;
SpawnRect[1][4] = gg_rct_WayP_2x4;
SpawnRect[1][5] = gg_rct_RedMainBase;
//B - Линия 3
SpawnRect[2][1] = gg_rct_WayP_3x1;
SpawnRect[2][2] = gg_rct_WayP_3x2;
SpawnRect[2][3] = gg_rct_WayP_3x3;
SpawnRect[2][4] = gg_rct_WayP_3x4;
SpawnRect[2][5] = gg_rct_WayP_3x5;
SpawnRect[2][6] = gg_rct_WayP_3x6;
SpawnRect[2][7] = gg_rct_RedMainBase;
//R - Линия 1
SpawnRect[3][1] = gg_rct_WayP_1x6;
SpawnRect[3][2] = gg_rct_WayP_1x5;
SpawnRect[3][3] = gg_rct_WayP_1x4;
SpawnRect[3][4] = gg_rct_WayP_1x3;
SpawnRect[3][5] = gg_rct_WayP_1x2;
SpawnRect[3][6] = gg_rct_WayP_1x1;
SpawnRect[3][7] = gg_rct_BlueMainBase;
//R - Линия 2
SpawnRect[4][1] = gg_rct_WayP_2x4;
SpawnRect[4][2] = gg_rct_WayP_2x3;
SpawnRect[4][3] = gg_rct_WayP_2x2;
SpawnRect[4][4] = gg_rct_WayP_2x1;
SpawnRect[4][5] = gg_rct_BlueMainBase;
//R - Линия 3
SpawnRect[5][1] = gg_rct_WayP_3x6;
SpawnRect[5][2] = gg_rct_WayP_3x5;
SpawnRect[5][3] = gg_rct_WayP_3x4;
SpawnRect[5][4] = gg_rct_WayP_3x3;
SpawnRect[5][5] = gg_rct_WayP_3x2;
SpawnRect[5][6] = gg_rct_WayP_3x1;
SpawnRect[5][7] = gg_rct_BlueMainBase;
}
}
//! endzinc
Та же дота написана на JASS и у нее каждая способность создает временный триггер. Попробую во всяком случае.
JASS автоматически не делает весь код хорошим, а популярность карты не залог оптимального решения.
Порылся я в вашем коде и это ужасно. Копирование триггера, чтобы сделать теже действия, но с другими параметрами повеселило.
Лучше переделать всё пока не позно, а то потом в этой каше ничего не разберёте.
Цель - понять, когда отвечающему приходится пересчитывать предметы для ответа, а когда он отвечает не задумываясь.
Пять рядов по пять яблок можно ответить не пересчитывая.
подавать игроку один и тот же геймплей
тут уже всё размыто донельзя. Если гэймплэй это способ взаимодействия игрой, то я бы выделил:
рефлексы и быструю реакцию как в шутерах, слэшерах
сюжет как в RPG
пошаговые игры как шахматы или герои
А ваш пример с Транзистором некорректен, потому что всё всёравно сводится к затыкиванию кнопок, с тем же успехом жанр файтингов вообще можно называть самым разнообразным по гэйплэю ибо количество комбинаций там просто зашкаливает.
Начал играть один за фиолетового игрока, пока ждал когда красный игрок настроит игру тыкал курсором в магическую лавку - варкарафт повис. Рестартанул за красного игрока, вместо того, чтоб выбрать сложность игры, тыкал курсором в магическую лавку - варкрафт повис.
Убери физический размер крипам, чтобы не застревал герой среди них.
Застревание в крипах нужно, чтоб убивать вражеских героев. Просто ещё не добавлены предметы, которые позволяют выбраться из крипов. На данный момент можно использовать Стремительность, Скачок или купить Кинжал убийцы.
Стоит больше добавить способностей, например, Трансмутация, Божественный щит, Призыв волка...
Трансмутацию и Щит добавлю, а вот с сумонерами печаль ибо есть же ещё Трупоеды, Инфернал, Чёрная стрела, Водяной|Огненный элементаль и балансировать этот зоопарк мне как-то нехочется. Пока что можно использовать Подчинение, в будущем ещё думаю предметов с подчинением добавить.
Ред. nazarpunk
» WarCraft 3 / Баг через 6000 сек
Ред. nazarpunk
» WarCraft 3 / Баг через 6000 сек
local are only supported at the top function
» WarCraft 3 / Инвентарь персонажа
» WarCraft 3 / Инвентарь персонажа
» WarCraft 3 / Триггерное увеличение запаса маны.
» WarCraft 3 / Баг через 6000 сек
Лучше переделать всё пока не позно, а то потом в этой каше ничего не разберёте.
» WarCraft 3 / Баг через 6000 сек
» WarCraft 3 / Баг через 6000 сек
» WarCraft 3 / Баг через 6000 сек
» WarCraft 3 / Три коридора v1.2
» WarCraft 3 / Heavensfall
» XGM Team / XGM — Премия 2018 года
Работа снимается с номинации: лучший проект для WarCraft 3
Работа снимается с номинации: Лучший разработчик
Работа для номинации: лучший проект для WarCraft 3
Ссылка на работу: xgm.guru/p/wc3/three-corridors
Работа для номинации: Лучший разработчик
Ссылка на работу: xgm.guru/p/wc3/three-corridors
» Game Dev / Игра как сущность
» Game Dev / Игра как сущность
» Мир безумного / WarCraft III Reforged - WE (что хотите увидеть?)
Предлагаю
» Storm The Castle / Storm The Castle.v.0.3
Ред. nazarpunk
» WarCraft 3 / Три коридора Плети v1.1
Версия 1.1
» XGM Team / Spotlight
Краткое описание: AOS навеянный ностальгией.
Ссылка на ресурс: xgm.guru/p/wc3/corridors-of-scouge
Ссылка на изображение или гифку: xgm.guru/files/402/97665/comments/402569/Add.jpg
» XGM Team / XGM — Премия 2018 года
Работа для номинации: лучший проект для WarCraft 3
Ссылка на работу: xgm.guru/p/wc3/corridors-of-scouge
Работа для номинации: Лучший разработчик
Ссылка на работу: xgm.guru/p/wc3/corridors-of-scouge
Ред. nazarpunk
» WarCraft 3 / Три коридора Плети v1.1
Версия 1.0
» WarCraft 3 / Три коридора Плети v1.1
Версия 0.07 beta
» WarCraft 3 / Три коридора Плети v1.1
8gabriel8:
Ред. nazarpunk
» Администрация XGM / Оформление текстов - txt2
» WarCraft 3 / Три коридора Плети v1.1
Ред. N7 Molot
» WarCraft 3 / Три коридора Плети v1.1
Версия 0.06 beta