Добавлен
Можете подсказать как впихнуть в переменную больше одного юнита.
local unit Dummy = CreateUnit(GetOwningPlayer(marine), 'n001', xMarine, yMarine, angle)
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
9 месяцев назад
Отредактирован Таренас
0
local unit array Dummy 
set Dummy[1] = CreateUnit(GetOwningPlayer(marine), 'n001', xMarine, yMarine, angle)
set Dummy[2] = CreateUnit(GetOwningPlayer(marine), 'n002', xMarine, yMarine, angle)
set Dummy[3] = CreateUnit(GetOwningPlayer(marine), 'n003', xMarine, yMarine, angle)
0
8
9 месяцев назад
0
Загруженные файлы
0
27
9 месяцев назад
Отредактирован MpW
0
jasonrus96,
Переменные xMarine, yMarine, angle не объявлены в функции. Их тоже надо хэш таблицей переносить в таою функцию. Поэтому программа считает их неизвестными, и требует указать.
Что-то там ругает на массив Dummy ниже. У вас не показан в пример тк это ниже по скрину, но явно ты не указал наверн индекс массива типа Dummy просто использовать/обращаться к нему просто как Dummy не выйдет. ты уже не можешь. Надо указывать индекс типа Dummy[1]

И что то там про Dummy, оно у тебя не объявлено, и инициировано. Короче, не знаю. Не вижу пример.
0
8
9 месяцев назад
0
function Trig_ShootTest_Actions takes nothing returns nothing


local unit marine = gg_unit_H000_0003
local unit Target = gg_unit_n000_0005
local real xMarine = GetUnitX(marine)
local real yMarine = GetUnitY(marine)
local real xTarget = GetUnitX(Target)
local real yTarget = GetUnitY(Target)
local real angle = bj_RADTODEG * Atan2(yTarget - yMarine, xTarget - xMarine) + GetRandomReal(-12.00, 12.00)
local unit Dummy = CreateUnit(GetOwningPlayer(marine), 'n001', xMarine, yMarine, angle)

local real maxDis = 1200
local real Damege = 50
local real Aoe = 90
local real Speed = 2000

local string BloodEfect = "Objects/Spawnmodels/Human/HumanBlood/HumanBloodKnight.mdl"

local timer TimerAct = CreateTimer()
local integer id = GetHandleId(TimerAct)
 
    if xMarine == xTarget and yMarine == yMarine then
        set angle = GetUnitFacing(marine)
    endif

call SetUnitX(Dummy, xMarine + 106 * Cos(angle * bj_DEGTORAD))
call SetUnitY(Dummy, yMarine + 106 * Sin(angle * bj_DEGTORAD))

call SaveUnitHandle(Hash, id, StringHash("marine"), marine)
call SaveUnitHandle(Hash, id, StringHash("Target"), Target)


call SaveReal(Hash, id, StringHash("Damege"), Damege)
call SaveReal(Hash, id, StringHash("maxDis"), maxDis)
call SaveReal(Hash, id, StringHash("Aoe"), Aoe)
call SaveReal(Hash, id, StringHash("angle"), angle)
call SaveReal(Hash, id, StringHash("Speed"), Speed * 0.03)
call SaveStr(Hash, id, StringHash("BloodEfect"), BloodEfect)
call SaveReal(Hash, id, StringHash("process"), 0)
call SaveGroupHandle(Hash, id, StringHash("group"), CreateGroup())




call SaveUnitHandle(Hash, id, StringHash("Dummy"), Dummy)
call DisplayTextToForce( GetPlayersAll(), "Shoot" )

call TimerStart(TimerAct, 0.03, true, function Trig_ShootTest_Actions2)
    
    
    call SetUnitAnimation( gg_unit_H000_0003, "attack" )

    call StopSoundBJ( gg_snd_GyrocopterImpactHit1, false )
    call PlaySoundBJ( gg_snd_GyrocopterImpactHit1 )
set marine = null
set Target = null
set Dummy = null
set TimerAct = null
    
endfunction
0
19
9 месяцев назад
0
jasonrus96, у вас Dummy, а должно быть Dummy[цифра]
0
8
9 месяцев назад
0
ImNoobTarenas, я сделала как в вашем примере полезли ошибки
0
29
9 месяцев назад
0
я сделала как в вашем примере полезли ошибки
Для начала неплохо бы почитать за массивы.
Этот комментарий удален
0
32
9 месяцев назад
0
Если чо, существует group, если есть нужда создавать и двигать множество даммиков, почему бы не собирать их в группу и перебирать там, то локальные массивы хрень.
0
29
9 месяцев назад
0
quq_CCCP, без очистки перебирать group можно только через ForGroup (ели речь за дореф ванилу), а это проброс юнита через глобалки. Ну а глобалки это зло.
0
18
9 месяцев назад
0
  1. Здравствуйте, судя по коду вы пытаетесь двигать юнита вперед по направлению к цели либо по направлению взгляда. Но так как цели нет движение идет всегда по направлении взгляда
  2. Если вам надо передать несколько юнитов через таймер, то либо используйте структуру/struct, либо используйте индексы вместо StringHash("Dummy")
  3. Если вам надо заставить несколько юнитов лететь вперед, то создайте функцию которая принимает unit dummy. Затем вызовете эту функцию для всех нужных юнитов
Чтобы оставить комментарий, пожалуйста, войдите на сайт.