Ночные эльфы задры не одобряют яркость 1го скрина
Бухгалтер располагает больно уж яркими книгами имхо(в наше время журналы и те темнее)
Хотелось бы повидать скринов глазами игрока, особенно касательно кладбища
На 5 скрине было бы приятно видеть легкий зеленый/серый туман, имхо(в зависимости от атмосферы)
когда посередине поля - двигаешь нормально по диагонали и т.д кораблем
но когда втыкаешься в левый бок, то с зажатой стрелкой <влево> нельзя лететь вверх и вниз, только отпустив кнопку влево...
касание краев игрового поля полностью останавливает движение игрока - сделано чтобы игрок не залетал в "читерские" углы, где камни летят с вероятностью 3-5%
Он это к тому, что управлять не удобно. Пускай летит тупо вверх если игрок у левого края и жмет вверх и влево
Чем ждать ответа попробуй вникнуть в код?
X2=SquareRoot(X2*X2+Y2*Y2) присваивает переменной X2 значение расстояния между юнитом U и текущим юнитом, обрабатываемым ForGroup.
Бегло пробежался по коду- ошибок у себя не вижу. Могу потратить еще время, мне не шибко то жалко, но говори конкретнее что не ясно? Могу оформить с использованием #define, будет понятнее. Но, на мой взгляд, тут и так все норм.
В переменной с плавающей запятой R содержится дистанция от ближайшего юнита U3 до нашего U.
В локальной группе G все юниты-здания(ну или какие-либо еще, удовлетворяющие вашим условиям)
Тогда для каждого юнита из группы G:
Если юнит ближе предыдущего, он становится ближайшим.
Итого имеем нечто вроде:
Ближайший юнит находится сравнением расстояний, кэп. Дабы не возникал- вот тебе код(примерный).
globals
unit U
unit U2
unit U3
real R
real X
real Y
real X2
real Y2
endglobals
function BuildingFilter takes nothing returns boolean
set U2=GetFilteredUnit()
return IsUnitType(U2,UNIT_TYPE_BUILDING) and U!=U2
endfunction
function ActionOfTrigger2 takes nothing returns nothing
set U2=GetEnumUnit()
set X2=X-GetUnitX(U2)
set Y2=Y-GetUnitY(U2)
set X2=SquareRoot(X2*X2+Y2*Y2)
if X2<R then
set U3=U2
set R=X2
endif
endfunction
function ActionOfTrigger takes nothing returns nothing
local group G=CreateGroup()//Глобалка не подходит ибо довольно долго будут осуществляться операции с ней. С другой стороны почему бы и нет? Но это уже твоя забота.
set U=Юнит-константа
set X=GetUnitX(U)
set Y=GetUnitY(U)
call GroupEnumUnitsInRect(G,РЕГИОН ВЫБОРА,Condition(function Filter))//По логике: выделение по региону быстрее
set U3=FirstOfGroup(G)
set X2=X-GetUnitX(U3)
set Y2=Y-GetUnitY(U3)
set R=SquareRoot(X2*X2+Y2*Y2)
call GroupRemoveUnit(G,U3)
call ForGroup(G,function ActionOfTrigger2)
//Итого U3- ближайший юнит
endfunction
Даже если так, не заметил его спустя 5.5 часов после 1го ответа. Что конкретно из Diaboliko:
Область видимости переменной u не позволяет работать с ней так, как вам хочется. Следует заменить глобалкой.
не ясно? Вы используете локальную переменную внутри ForGroup. При том очень криво. При выборе каждого юнита у вас будет создаваться переменная u с адресом NULL. Даже если убрать аннулирование- ничего не изменится.
Вопроса задано не было.
Я пытаюсь ответить на вопрос "Почему не работает триггер"
ЛюбоеЗдание и ЛюбойЮнит. Но следуя логике это не вернет необходимого. Либо давайте код как есть, либо IsUnitType(....) or ... т.е. заменять кучу текста троеточием, например.
Ответ был дан исчерпывающий, разве нет?
function Trig_SomeFunc_H takes nothing returns nothing
local unit f = GetEnumUnit()
local unit u = null
if ( R2I(DistanceBetweenPoints(GetUnitLoc(GetTriggerUnit()), GetUnitLoc(f))) <= R2I(DistanceBetweenPoints(GetUnitLoc(GetTriggerUnit()), GetUnitLoc(u))) ) then
set u = f
endif
call IssuePointOrderLoc(GetTriggerUnit(), "move", GetUnitLoc(u))
endfunction
Область видимости переменной u не позволяет работать с ней так, как вам хочется. Следует заменить глобалкой. Ну и оптимизировать есть что, например
if ( R2I(DistanceBetweenPoints(GetUnitLoc(GetTriggerUnit()), GetUnitLoc(f))) <= R2I(DistanceBetweenPoints(GetUnitLoc(GetTriggerUnit()), GetUnitLoc(u))) ) then
Будет производить лишнее вычисление(скорее всего), поэтому кратчайшую дистанцию следует присваивать глобалке. +работа с локациями намного медленнее чем с просто X,Y
Да и 'SomeBuilding' & 'SomeUnit' разве вернет любого здания & юнита?
Очевидный момент- триггер изначально выключен. Не думаю что это было упущено.
Пассивные способности позволяют аттачить спецэффекты. Вместо триггерного создания этого эффекта, быть может, достаточно дать абилку предмету, которая даст такой спецэффект? Если не ошибаюсь эффект таким образом может дать любая пассивная способность(во всяком случае точно дают Сфера(способность мага без коня у людей) и способности повышения характеристик предмета(в т.ч. защиты и атаки)) где что прописывать посмотрите в способности Сфера.
1 или 2 или нечто подобное.
Разрешить все команды по работе с регионами, предварительно нормально их настроив(мне все еще не хватает region select)
Разрешить редактировать некоторые флаги регионов вроде размещения и уничтожения вагонеток/лодок
Добавить крафта из юзлесс предметов вроде плоти зомбей(помню делали 8 плоти+1 грязь= 1 песок душ. Не так уж плохо.) и семян пшеницы(например 8семян+1булыган=1 замшелый булыган). Да и вообще декоративного крафта.
Также было бы круто добавить модов на мобов вроде Mo's creatures, но сервер и без этого умирает судя по скорости роста бамбука(очень медленно)
Добавить chestshop который позволит менять лут на лут, например. Главное чтоб был админшоп с возможностью купить пускай даже за бешеную плату блоки воды, например(для размещения в аду) и мб декоративный лут, который нельзя будет собрать и т.п.
Запретить эндерманам воровать блоки или сделать чтоб после их смерти они дропались.
Сделать собственную сборку без которой нельзя было бы войти на серв :3
как блин там зарегаться?! я захожу, меня кидает вверх вниз и трубает через 5 сек потому что "полеты запрещены"! я ничего не успеваю вбить в чат а с копипаста пишет "пароль не принят". что делать?
» XGM MCRPG Обитель легенды / XGM MCRPG Обитель легенды
» XGM Конкурсы / «32x32» - последний день сдачи карт
» XGM Конкурсы / Конкурс ландшафта «32x32»
» XGM Team / Опросы? Опросы!
» Arcania Tales / Скриншоты: Свеженькие
эльфызадры не одобряют яркость 1го скринаБухгалтер располагает больно уж яркими книгами имхо(в наше время журналы и те темнее)
Хотелось бы повидать скринов глазами игрока, особенно касательно кладбища
На 5 скрине было бы приятно видеть легкий зеленый/серый туман, имхо(в зависимости от атмосферы)
» Wrath of Energy / День пятый: ХП-бар и враги
Ред. asesmo
» Third Generation Games / Space Sprint version 0.2
» Third Generation Games / Space Sprint version 0.2
Ред. Diaboliko
» WarCraft 3 / как найти самого близкого юнита
X2=SquareRoot(X2*X2+Y2*Y2) присваивает переменной X2 значение расстояния между юнитом U и текущим юнитом, обрабатываемым ForGroup.
Бегло пробежался по коду- ошибок у себя не вижу. Могу потратить еще время, мне не шибко то жалко, но говори конкретнее что не ясно? Могу оформить с использованием #define, будет понятнее. Но, на мой взгляд, тут и так все норм.
Ред. Diaboliko
» WarCraft 3 / как найти самого близкого юнита
В локальной группе G все юниты-здания(ну или какие-либо еще, удовлетворяющие вашим условиям)
Тогда для каждого юнита из группы G:
Если юнит ближе предыдущего, он становится ближайшим.
Итого имеем нечто вроде:
» WarCraft 3 / как найти самого близкого юнита
Diaboliko:
» WarCraft 3 / как найти самого близкого юнита
Я пытаюсь ответить на вопрос "Почему не работает триггер"
ЛюбоеЗдание и ЛюбойЮнит. Но следуя логике это не вернет необходимого. Либо давайте код как есть, либо IsUnitType(....) or ... т.е. заменять кучу текста троеточием, например.
Ответ был дан исчерпывающий, разве нет?
Ред. Diaboliko
» WarCraft 3 / как найти самого близкого юнита
» Minecraft / XGM Griefing Contest #2
» Minecraft / XGM Griefing Contest #2
» Pin's Journal / Дневник путешественника по Скайриму. Запись первая
» StarCraft 2 / Специальная скидка 40% на StarCraft II: Wings of Liberty
» WarCraft 3 / Задержка при исчезновении аттачей
» Прочее / Смартфон Intelegent x86 или карманный WorldEdit
» WarCraft 3 / Высота юнита (Москит)
» XGM Vanilla / XGM Vanilla
» Minecraft Servers / Технический раздел
Разрешить все команды по работе с регионами, предварительно нормально их настроив(мне все еще не хватает region select)
Разрешить редактировать некоторые флаги регионов вроде размещения и уничтожения вагонеток/лодок
Добавить крафта из юзлесс предметов вроде плоти зомбей(помню делали 8 плоти+1 грязь= 1 песок душ. Не так уж плохо.) и семян пшеницы(например 8семян+1булыган=1 замшелый булыган). Да и вообще декоративного крафта.
Также было бы круто добавить модов на мобов вроде Mo's creatures, но сервер и без этого умирает судя по скорости роста бамбука(очень медленно)
Добавить chestshop который позволит менять лут на лут, например. Главное чтоб был админшоп с возможностью купить пускай даже за бешеную плату блоки воды, например(для размещения в аду) и мб декоративный лут, который нельзя будет собрать и т.п.
Запретить эндерманам воровать блоки или сделать чтоб после их смерти они дропались.
Сделать собственную сборку без которой нельзя было бы войти на серв :3
» XGM Vanilla / Правила Vanilla сервера
» Minecraft / Snapshot 13w03a
» Game Dev / Как попасть в гейм-индустрию и как там чего-то добиться