Не выпадает награда за убийство нейтрально враждебного. В чём причина? (награда не та которая предме, а которая золото по 3 штучки)
P.s. Решил проблему, всем спасибо) (У меня оказывается не враждебные стояли)
Принятый ответ
Похожие вопросы:
ответ
Работай с real (числа с запятой) вместо регионов, занеси в бд или проверяй условиями нужные координаты и выбирай.
Точка не будет утекать, если хранить одну точку в глобальной переменной и для мгновенных операций перемещать ее и использовать дальше по назначению.
- В шапку над триггерами вставляешь этот код:
function RegionInit takes nothing returns nothing //17/11/2016 set udg_GL = Location(0.0, 0.0) set udg_RegionNumber = GetRandomInt(1, 4) // выбрать количество регионов set udg_RegionX1 = GetRectMinX(udg_Region[udg_RegionNumber]) set udg_RegionY1 = GetRectMinY(udg_Region[udg_RegionNumber]) set udg_RegionX2 = GetRectMaxX(udg_Region[udg_RegionNumber]) set udg_RegionY2 = GetRectMaxY(udg_Region[udg_RegionNumber]) endfunction
- Создаешь глобальные переменные типа:
- точка с названием GL
- регион массив с названием Region
- целочисленная с названием RegionNumber - для хранения номера выбранного региона
- реальное число с названиями RegionX1, RegionX2, RegionY1, RegionY1 - для хранения координат выбранного региона
call RegionInit()
- Перед каждым созданием юнита вставляешь кастом скрипт:
call MoveLocation(udg_GL, GetRandomReal(udg_RegionX1, udg_RegionX2), GetRandomReal(udg_RegionY1, udg_RegionY2))
В окне действия с созданием юнита используешь свою переменную GL
ответ
Лови карту.
ответ
Steal nerves:
циклом (данного юнита от 1-6 слотов, на jass от нумерация слотов начинается так 0-5) пробегаешься по каждому слоту и проверяешь тип, кол-во зарядов. я на гуи что-то не нашел эту команду UnitItemInSlotnative UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
кол-во итемовищем в каждом слоте один и тот же тип предмета. Этот код считывает кол-во итемов занимаемые в слотахlocal integer id = ''//id-предмета, забудь указать в кавычках ид local integer i=0 //для цикла local integer c=0 //кол-во предметов local unit u = //нужно не забыть указать юнита //внизу начинается цикл, его блок loop //начало цикла exitwhen i > 5 //условие выхода из цикла if GetItemTypeId(UnitItemInSlot(u,i)) == '' then //если тип в слоте равен .... set c = c + 1 endif set i = i + 1 endloop //конец цикла
кол-во предметов данного типа с N зарядамиlocal integer id = '' //id-предмета, забудь указать в кавычках ид local integer i=0 //для цикла local integer c=0 //кол-во предметов local unit u = //нужно не забыть указать юнита loop exitwhen i > 5 if GetItemTypeId(UnitItemInSlot(u,i)) == id or GetItemCharges(UnitItemInSlot(u,i)) == 5 then //если тип в слоте такой, и и у этого итема зарядов равно 5 set c = c + 1 endif set i = i + 1 endloop set u = null
ответ
добавляешь обоих
блокируешь улучшенного при старте карты всем игрокам
лучший и простейший вариант
ответ
без мемхака - нет
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован PT153
Это действие можно найти в кастомках от близзард, как правило, во время инициализации.