Можно bj_setPlayerTargetColor заменить на локальную, которую даже можно не обнулять.
function StringToPlayerColor takes string color returns playercolor
set color = StringCase(color, false)
if color == "red" then
return PLAYER_COLOR_RED
elseif color == "blue" then
return PLAYER_COLOR_BLUE
elseif color == "cyan" then
return PLAYER_COLOR_CYAN
elseif color == "purple" then
return PLAYER_COLOR_PURPLE
elseif color == "yellow" then
return PLAYER_COLOR_YELLOW
elseif color == "orange" then
return PLAYER_COLOR_ORANGE
elseif color == "green" then
return PLAYER_COLOR_GREEN
elseif color == "pink" then
return PLAYER_COLOR_PINK
elseif color == "light gray" then
return PLAYER_COLOR_LIGHT_GRAY
elseif color == "light blue" then
return PLAYER_COLOR_LIGHT_BLUE
elseif color == "aqua" then
return PLAYER_COLOR_AQUA
elseif color == "brown" then
return PLAYER_COLOR_BROWN
endif
return null
endfunction
function StringToPlayerId takes string color returns integer
local integer i
set bj_setPlayerTargetColor = StringToPlayerColor(color)
if bj_setPlayerTargetColor != null then
set i = 0
loop
if GetPlayerColor(Player(i)) == bj_setPlayerTargetColor then
return i
endif
set i = i + 1
exitwhen i == bj_MAX_PLAYERS
endloop
endif
return -1
endfunction
Можно поступить иначе: создать структуру для играющих игроков с сохранением полученного объекта в структуры в какой-нибудь массив, в которой будет сохранятся строчный цвет игрока (который можно будет определить функцией, обратной StringToPlayerColor), а при написании в чат пробегаться по массиву игроков и смотреть, у кого же нужный цвет.
Можно так не заморачиваться, а менять цвет юнита входящего в область карты на цвет прикреплённый к игроку. А при смене цвета выбирать всех юнитов игрока и делать то же самое.
А можно вообще отключить выбор цвета в меню выбора карты.
Что значит unitToBuild (unitId в Id варианте функции)?
Я так полагаю, что туда можно просто передать любой приказ.
Цитата из твоего ответа.
По сути совет правильный, но приказ (имеется в виду skillmenu) указан неверно: OrderId("attributemodskill") = 852576
Это разные приказы, приказ skillmenu указан абсолютно верно, attributemodskill - другой приказ, это приказ повышения характеристик (равкод способности 'Aamk').
Да, тоже нашёл. Вот нельзя было это и в common.j написать?
интересно ограничение на все типы?
Эти способности есть только у рынка, который продаёт предметы и нейтральных юнитов, которые появляются на карте. Эти функции лишь ставят лимит на кол-во продаваемых предметов или нейтральных юнитов ожновременно.
После этих манипулиций на карте не будет юнитов, которые сами по себе грузят редактор, а также не останется специальных переменных, которые создаются при указании в гуи юнитов, стоящих на карте.
Эти переменные могут использоваться, потому стоит их оставить. А чтобы их окончательно удалить, нужно найти их в блоке globals, что в самом верху war3map.j.
Можно только зарегистрировать смерть виджета. Через custom script, конечно же. Если событие на приказ-цель, то можно узнать сразу цель-разрушаемый объект
Посмотри модель сферы тьмы, там у одного эффекта в качестве текстуры используется чёрный кружок с режимом modulate. Сохрани её и глянь, как она сделана. Я так когда-то сделал такую текстуру.
UPD: вот и сама модель.
Гхм, слишком сложно сделано.
Заведи себе глобальную переменную целочисленного типа. Назови её "Номер игрока". При срабатывании триггера на смерть делай следующее.
Номер игрока = номер игрока(игрок-владелец(умирающий юнит))
массив[Номер игрока] = массив[Номер игрока] - 1
В настройке переменной твоего массива нужно поставить изначальное значение 3, а размер массива на количество игроков в твоей карте.
появилась до того как я создал вот этот триггер с этой фотки.
Ты тут каждые 0.1 секунды увеличиваешь значение на 3. Зачем?
Ну вообще можно делать рамки в самом JNGP сразу с импортом в карту, для этого достаточно знать английский и прочитать этот мануал. Если не нравятся рамки, что он делает, их можно заменить в папке grimext.
Но лично я всё также делаю с помощтю Button Manager, так как мне сразу в карту импорт не нужен. Я в нём все стандартные рамки продублировал и кинул в кастомные, ибо у Button Manager есть баг у стандартных рамок: он всегда делает Disabled версию, хочешь ты этого или нет.
У тебя есть массив со смертями. Номер ячейки есть номер игрока
Также есть триггер, который регистрирует смерть героя.
В нём ты узнаёшь номер игрока-владельца умирающего героя, и уменьшаешь значение в нужной ячейке на 1 (массив[ячейка] = массив[ячейка] - 1). Обновляешь это значение в мультибоарде.
Если всё сделано так, но не работает, то скриншот триггера сюда.
Какой редактор используется?
Если JNGP, то пробовал ли делать карту без JNGP или с выключенным UMSWE? JNGP подгружает много всяких плагинов, которые могут быть и не нужны.
» WarCraft 3 / Вылетает редактор при попытке добавить способность в хеш-таблицу
Сохранить равкод способности можно через сохранение целочисленной (integer).
Ред. PT153
» WarCraft 3 / Как получить номер игрока по его цвету
Ред. PT153
» WarCraft 3 / Как получить номер игрока по его цвету
Ред. PT153
» WarCraft 3 / Как получить номер игрока по его цвету
» WarCraft 3 / Функции отдачи приказа
Ред. PT153
» WarCraft 3 / Функции отдачи приказа
» WarCraft 3 / Некоторые функции юнитов
Вот нельзя было это и в common.j написать? Эти способности есть только у рынка, который продаёт предметы и нейтральных юнитов, которые появляются на карте. Эти функции лишь ставят лимит на кол-во продаваемых предметов или нейтральных юнитов ожновременно.
Ред. PT153
» WarCraft 3 / Некоторые функции юнитов
» WarCraft 3 / Некоторые функции юнитов
Осталось только выяснить, что делает эта функция.
» WarCraft 3 / Некоторые функции юнитов
Ред. PT153
» WarCraft 3 / Как можно узнать что декорация была атакована/выбрана
» WarCraft 3 / Как ускорить работу редактора карт?
» WarCraft 3 / Как можно узнать что декорация была атакована/выбрана
Если событие на приказ-цель, то можно узнать сразу цель-разрушаемый объект
» WarCraft 3 / Ауры
Ред. PT153
» WarCraft 3 / Создание модели искусственной тени
А по поводу видимости модели в белом тумане - виспов тоже в нём видно.
» WarCraft 3 / Создание модели искусственной тени
Ред. PT153
» WarCraft 3 / Создание модели искусственной тени
Ред. PT153
» WarCraft 3 / Создание модели искусственной тени
UPD: вот и сама модель.
Ред. PT153
» WarCraft 3 / Прошу помощи с мультибордом смертей...
Заведи себе глобальную переменную целочисленного типа. Назови её "Номер игрока". При срабатывании триггера на смерть делай следующее.
Ред. PT153
» WarCraft 3 / Иконки на заказ
Но лично я всё также делаю с помощтю Button Manager, так как мне сразу в карту импорт не нужен. Я в нём все стандартные рамки продублировал и кинул в кастомные, ибо у Button Manager есть баг у стандартных рамок: он всегда делает Disabled версию, хочешь ты этого или нет.
Ред. PT153
» WarCraft 3 / Прошу помощи с мультибордом смертей...
Также есть триггер, который регистрирует смерть героя.
В нём ты узнаёшь номер игрока-владельца умирающего героя, и уменьшаешь значение в нужной ячейке на 1 (массив[ячейка] = массив[ячейка] - 1). Обновляешь это значение в мультибоарде.
» WarCraft 3 / Как ускорить работу редактора карт?
Ред. PT153
» WarCraft 3 / Какой необходимый размер иконка как монета и дерево?
Путь: UI\Widgets\ToolTips\Human
Там же и остальные иконки для подсказок.
Путь: UI\Feedback\Resources
Там же и остальные иконки для верхней панели.
» WarCraft 3 / Иконки на заказ
» WarCraft 3 / Как ускорить работу редактора карт?
Если JNGP, то пробовал ли делать карту без JNGP или с выключенным UMSWE? JNGP подгружает много всяких плагинов, которые могут быть и не нужны.