Добавлен
Добрий день, вопроса будет 3
  1. Я зделал чтоби нейтрально-пасивное существо давало дерево (призовая древесина) но оно почему-то не даеться, как исправить
  2. Можно ли зделать тактику для нейтрально пассивного существа чтоби он убегал от игрока
  3. Как зделать так чтоби в здании юнит нанимались рандомно, например либо охотник за головами либо бугай
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
2 года назад
0
Похожие вопросы:

ответ
Работай с real (числа с запятой) вместо регионов, занеси в бд или проверяй условиями нужные координаты и выбирай.
Точка не будет утекать, если хранить одну точку в глобальной переменной и для мгновенных операций перемещать ее и использовать дальше по назначению.
  1. В шапку над триггерами вставляешь этот код:
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

  1. Создаешь глобальные переменные типа:
    • точка с названием GL
    • регион массив с названием Region
    • целочисленная с названием RegionNumber - для хранения номера выбранного региона
    • реальное число с названиями RegionX1, RegionX2, RegionY1, RegionY1 - для хранения координат выбранного региона
После действий на картинке в инициализацию вставляешь кастом скрипт:
call RegionInit()

  1. Перед каждым созданием юнита вставляешь кастом скрипт:
call MoveLocation(udg_GL, GetRandomReal(udg_RegionX1, udg_RegionX2), GetRandomReal(udg_RegionY1, udg_RegionY2))
В окне действия с созданием юнита используешь свою переменную GL
ответ
Лови карту.
ответ
циклом (данного юнита от 1-6 слотов, на jass от нумерация слотов начинается так 0-5) пробегаешься по каждому слоту и проверяешь тип, кол-во зарядов. я на гуи что-то не нашел эту команду UnitItemInSlot
native 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
ответ
добавляешь обоих
блокируешь улучшенного при старте карты всем игрокам
лучший и простейший вариант
ответ
без мемхака - нет

1
37
2 года назад
1
Предупреждение автору публикации

2 пункта: 1.2 Безграмотность и сленг в количестве, не позволяющем понять написанное.
0
27
2 года назад
Отредактирован rsfghd
0
ScorpioT1000, ты немного перепутал, понять то можно без проблем, а вот что вопросов 3 вот это да

  1. древесина даётся, но не отображается в отличии от золота, помимо базового значения нужно ещё выставить грани костей больше 0, как в случае с золотом, если ты убиваешь игрока а не нейтрала, то нужно в триггерах так же переключить награду за уничтожение для игроков
  2. можно, но ты не указал при каком событии нейтральный должен убегать от игрока, можно выдать квалификацию работника либо абилку бродячего, "может бежать" должно оставаться на "да", будут убегать при атаке по ним
  3. сделать юнита пустышку и указать его в найме, при событии найма, а точнее при появлении на карту, заменять юнита на рандомного, если вариантов больше двух, то придётся делать целочисленную переменную с указанием от 0 до максимума возможных юнитов, потом веткой если тогда иначе сравнивать каждую целочисленную и заменять на соответствующего юнита
0
29
2 года назад
0
ты немного перепутал, понять то можно без проблем
Тут сверху можно ещё добавить пунктов за несколько вопросов в одном
Чтобы оставить комментарий, пожалуйста, войдите на сайт.