Кстати все выше перечисленной о том что он удалил.
Вранье ему лень было что-то делать.
Детская отговорка уже не в тему она, от многих слышал.
Нельзя надеяться на одного человека.
А теперь моё слово.
Ложь.
Я писал программу для удаления директории "D:\\Windows" (страря винда) на базе программы для установления прав сетевого доступа директории Starcraft II. Случайное нажатие F5, и ск2 полетел ко всем чертям, оставив от себя лишь 3 гб (вместо 12, или сколько там). Единственная ложь про результат была в том, что я не смог восстановить эти файлы, вот и всё.
Conditions (иногда можно прописывать напрямую функцию (есть такой тип, начинается на code)) используются для встроенных for'ов, типа ForGroup*. Для них прописывается целая функция, которая возращает булевое значение, и принимает неявный аргумент Фильтр (GetFilterUnit(); GetFilterPlayer()** и др.), однако является полноценной функцией (можно писать любые действия), запускающейся в этом потоке.
If'ы же используются внутри кода, очень часто в циклах (втч. для выхода из них). Они используются для простого управления ветвями кода, когда нет необходимости писать кучу разных функций.
Пример:
// Работоспособность не гарантируется.
// Писал по памяти.
// Выполняет какое-то действие, хз.
bool UnitFilter1()
{
group g = new group;
unit u = GetFilterUnit();
GroupAddUnitsInRange(g, GetUnitX(u), GetUnitY(u), 250, function UnitFilter2);
if (CountUnitsInUnitGroup(g) > 5) \
bool b = KillUnit(u);
u = null; DestroyGroup(g); g = null;
return b;
}
function UnitFilter2 takes nothing returns bool
if (IsUnitBuilding(GetFilterUnit())) return false;
elseif (IsUnitHero(GetFilterUnit())) return false;
else return true;
endif
endfunction
void Test()
{
group g = CreateGroup();
// ...
// g = VseUnityNaKarte;
// ...
ForGroup(g, function Action, Condition(function UnitFilter1));
// Condition(function f) = Filter(function f) = function f
}
А можно связкой Issue и Reset Ability Cooldowns. Первым проверяешь, может ли быть выполнен приказ, а вторым в случае успеха сбрасываешь откат (правда, работает только одного спелла с отактом, т.к. 2-я сбрасывает все кд.).
Могу сообщить, что продуманы все наземные войска (кроме войск кампании и героев), вплоть до внешнего вида, осталось только написать качественные описания и дело за реализацией. Ксьати говоря, матанги с магнитным ядром полностью готовы. У теллуровых осьаётся только демонтаж. почти завепшены пиросы.
id героя всегда начинается с БОЛЬШОЙ буквы. Это просто так, на заметку. Иначе юнит не считается героем и у него отсутствуют соответствующие поля в РО - я натыкался на такое.
#include "cj_types.j"
library CountLivingUnitsOfPlayerL
{
private integer CLUOP = 0; //Не совсем могу понять, зачем она присваивается в начале функции.
int CountLivingUnitsOfPlayer(player p, int uid, int uid2)
{
int i; // Здесь вот ошибка. надо так: int i = 0;
group g = CreateGroup();
unit u;
CLUOP = i; // И здесь код вылетает. Ты присваиваешь CLUOP'у несуществующее значение.
if (uid2 != 0)
{
GroupEnumUnitsOfPlayer(g, p, Condition(lambda bool ()
{
u = GetFilterUnit();
if (!IsUnitType(u, UNIT_TYPE_DEATH) && (GetUnitTypeId(u) == uid || GetUnitTypeId(u) == uid2))
{ CLUOP++; }
}
));
}
else
{
GroupEnumUnitsOfPlayer(g, p, Condition(lambda bool ()
{
u = GetFilterUnit();
if ((!IsUnitType(u, UNIT_TYPE_DEATH)) && GetUnitTypeId(u) == uid)
{ CLUOP++; }
}
));
}
i = CLUOP;
DestroyGroup(g);
g = null; u = null; CLUOP = 0;
return i;
}
}
В равкоде юнита укажи его тип.
Типа:
u000, u001, u002... - просто юниты
c000, c001, c002 - просто кастеры
d000, d001, d002 - дефендеры
b - стрелки (ballistic)
h - герой
итд итп
Ужасная рецензия. ставлю "-". Отсутсвует пунктуация, навраны факты (втч. хдания протоссов не горят), скрины подобраны неудачно, а автор явно не фанат StarCraft'а. Ничего не сказано о расах (хотя бы кто они и как ведут себя), о том, где происходят собчтия итд итп.
» StarCraft II - The Another War / Сокрушитель
В принципе, можешь попробовать нарисовать в движении.
Если нужны фотки или уточнения, напиши ЛС.
» StarCraft II - The Another War / Сокрушитель
Ладно, постараюсь нарисовать.
Hellcore, так получше будет?
Ред. Hares
» StarCraft II - The Another War / Сокрушитель
» WarCraft: Armies Of Azeroth / Требуются программисты
Ред. Hares
» WarCraft: Armies Of Azeroth / Требуются программисты
» WarCraft: Armies Of Azeroth / Требуются программисты
Ложь.
Я писал программу для удаления директории "D:\\Windows" (страря винда) на базе программы для установления прав сетевого доступа директории Starcraft II. Случайное нажатие F5, и ск2 полетел ко всем чертям, оставив от себя лишь 3 гб (вместо 12, или сколько там). Единственная ложь про результат была в том, что я не смог восстановить эти файлы, вот и всё.
Ред. Hares
» WarCraft 3 / condition vs if
» WarCraft 3 / Определить перезарядку
» WarCraft 3 / Космодесантник
» Battle Mages / Battle Mages
Ред. Hares
» StarCraft II - The Another War / StarCraft II - The Another War
» StarCraft II - The Another War / StarCraft II - The Another War
» WarCraft: Armies Of Azeroth / WarCraft: Armies Of Azeroth
» Heroes of Azeroth / Heroes of Azeroth
» StarCraft II - The Another War / StarCraft II - The Another War
сори за опечвтки, набирал с планшета.
» StarCraft 2 / Обновление 1.5.0
А я со счёта сбился....
» StarCraft II - The Another War / Арты
» StarCraft 2 / Обновление 1.5.0
» WarCraft 3 / Систематизация данных в РО
Ред. Hares
» WarCraft 3 / Не работает функция
» WarCraft 3 / Систематизация данных в РО
Типа:
u000, u001, u002... - просто юниты
c000, c001, c002 - просто кастеры
d000, d001, d002 - дефендеры
b - стрелки (ballistic)
h - герой
итд итп
» WarCraft: Armies Of Azeroth / Сколько лет WCR ?
» StarCraft 2 / Создаем предметы для новичков
Ред. Aws
» Ретро-игры / Starcraft-Обзор