14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

biridius:
ну и точки потом убить тоже, да
Я не понимаю гетлокал...Что это?
biridius:
ну и точки потом убить тоже, да
Вот там PlayerID и в нем гетлокалплеер, вот это я не понимаю вообще
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

biridius:
я написал выше что надо сделать: убрать цикл, добавить строковую переменную и т.д.
та функция не подойдет т.к. нельзя узнать с одного компа где камера у другого
Знаешь, куда было бы проще, если бы ты вбросил эти жалкие 10 рабоспособных строк кода, вместо пустых вбросов каждое сообщение
biridius:
ocal sound snd = CreateSound(s,false, false, false,10,10,"")
call SetSoundChannel(snd,5)
call SetSoundVolume(snd,127)
call SetSoundPitch(snd, 1)
call StartSound(snd)
call KillSoundWhenDone(snd)
вот этот кусок проигрывает звук по строке s
Ибо миллион вопросов остается, например если убирать цикл, то что юзать в качестве целочисленной для запуска функции
Мде, то чувство, когда объясняешь мне что делает мой код, вместо того, чтобы объяснить принципы работы гетлокал, и его использование.
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

я написал выше что надо сделать: убрать цикл, добавить строковую переменную и т.д.
та функция не подойдет т.к. нельзя узнать с одного компа где камера у другого
И какую юзать?
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

каждый комп считает весь код сам, а потом сверяется с другими компами, и если не совпадают какие-то вещи (например компы красного и синего игрока создали объект звука, а остальные нет) то происходит десинк
В общем, вопрос так и остался нерешенным, что мне нужно сделать чтобы прекратился рассинхрон
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

Я понял уже
Цикл не нужен, код выполняется на компе каждого из игроков отдельно, и расстояние до камеры у каждого посчитается свое.
в твоей переменной P_S[3401] на компе каждого игрока и без цикла будет лежать его собственный центр камеры, а не чей-то еще
Хммм, я не знал, но ведь если несколько данных, то как мне узнать для какого юнита пустая строка, а для какого нет?Я вообще не понимаю логики этой гетлокал
biridius:
Я понял уже
Цикл не нужен, код выполняется на компе каждого из игроков отдельно, и расстояние до камеры у каждого посчитается свое.
в твоей переменной P_S[3401] на компе каждого игрока и без цикла будет лежать его собственный центр камеры, а не чей-то еще
Я ничерта не понимаю принцип работы GetLocal, ибо она оч нелогична
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

biridius:
надо сделать переменную типа строка, и в если расстояние неправильное, задавать пустую строку, а если правильная то путь к звуку. после этого проигрывать звук по этой строке. без цикла и без getlocalplayer
Цикл для игроков происходит, мне нужно проиграть только тем игрокам, которые смотрят рядом
biridius:
надо сделать переменную типа строка, и в если расстояние неправильное, задавать пустую строку, а если правильная то путь к звуку. после этого проигрывать звук по этой строке. без цикла и без getlocalplayer
Ты прямо сейчаас озвучил принцип действия моей функции или что?
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

А что это должно делать?
Я думаю проблема в условии target of current camera view (оно проверяется у локального игрока, и из-за этого создается объект только у какого-о из игроков), но я не понимаю что этот триггер должен делать
Он должен проигрывать звук относительно расстояния источника до камеры
biridius:
А что это должно делать?
Я думаю проблема в условии target of current camera view (оно проверяется у локального игрока, и из-за этого создается объект только у какого-то из игроков), но я не понимаю что этот триггер должен делать
Нууу, типо если рядом смотришь камерой, то звук проигрывается, вот так
14

» WarCraft 3 / Функция GetLocal вызывает дессинхрон

Щас кину
Steal nerves:
Не уверен, возможно ошибаюсь, напишу вот что: в блок вставляй число, например громкость звука. обычно вставляют строки и числа, а если объекты хэндла, то фаталит. Тут ты всунул в блок звук, точнее сказать локалку звука, вот и фаталит.
Все работает не фаталит, только рассинхрон и все
Загруженные файлы
14

» WarCraft 3 / Вопрос о позиционных звуках

заменять через локального игрока пустой путь на звук
Отрывок кода плез
Уже увидел ответ в другом вопросе, закрыто
14

» WarCraft 3 / Вопрос о позиционных звуках

вам обязательно проигрывать звук в радиусе для одного игрока?
Я понял как делать все, мне нужно только одно. Как проиграть звук только у 1 игрока
14

» WarCraft 3 / Вопрос о позиционных звуках

Uber:
Есть статья про GetLocalPlayer(), там всё подробно расписано.
Там сложно, хочу полегче
Все молчат, эээх
14

» WarCraft 3 / Не создаются эффекты на юните

в константах что стоит в поле "время разложения - эффекты"? я как-то поставил на 0,01 все эффекты убирались без анимации смерти
Сейчас гляну, на инглише бы узнать как это будет
nvc123:
quq_CCCP, т.к. не триггерно эффект накладывается то скорее всего проблема не в дровах
LainMikoroso, кинь j файл карты (естественно с убранным удалением эффекта)
существует вероятность что в карте где то есть дефайны либо криво компилится
Не кину.j-файл, соре, слишком он ценен
14

» WarCraft 3 / Не создаются эффекты на юните

Как вариант, последний-распоследний, сделай резервную копию карты и начни работать в ней, вдруг пройдёт.
Баг, что то с виндой или дровами, у меня такое было после адептов - пропали часть спецэффктов, это только у тебя, не стоит переживать дело не в коде.
Ты уверен?
quq_CCCP:
Баг, что то с виндой или дровами, у меня такое было после адептов - пропали часть спецэффктов, это только у тебя, не стоит переживать дело не в коде.
В другой карте все эффекты видны, а в этой нет, сомневаюсь что это трабла винды/драйверов
14

» WarCraft 3 / Не создаются эффекты на юните

Это по меньшей мере странно. Нет идей. Попробуй иные точки крепления #Авось
Не
14

» WarCraft 3 / Не создаются эффекты на юните

Когда ты удаляешь эффект, он проигрывает анимацию исчезновения (Death), если такова имеется. Эффекты, которые не должны сразу же исчезать нельзя сразу же удалять. Хочешь сказать что когда ты отключил команду "удалить эффект" ничего не изменилось?
Ничего не изменилось
Я могу вешать бафы с отображением модели на юните в точке крепления и все нормально, но не могу сделать тоже самое триггерно
14

» WarCraft 3 / Не создаются эффекты на юните

Как это понимать?
Так, что не отображаются эффекты повешенные на юниты, в строго определенной карте
Steal nerves:
ну автор даете. это мы должны угадывать почему в одной карте работает в другой нет.
Ну у вас же опыта больше, мейби сталкивались с подобными проблемами
14

» WarCraft 3 / Не создаются эффекты на юните

GF RaiseD:
Отключи пока команду удаления эффекта и проверь.
Мде...
GF RaiseD:
Отключи пока команду удаления эффекта и проверь.
Представь что есть 2 карты, на одной все работает при том же коде и ситуации, а в другой нет, мне нужно узнать почему это происходит
14

» WarCraft 3 / Не создаются эффекты на юните

GF RaiseD:
Нужен скриншот триггера. Скорее всего ты либо использовал неверную команду, либо верную, но не надлежащим образом. Или же указанная тобой точка крепления отсутствует у модельки юнита.
Все проверялось сотни раз, команда используется верно, точка крепления есть
Сейчас загружу все
Бла-бла
Загруженные файлы
14

» WarCraft 3 / Morth

biridius:
у "другого челика" кроме морфа, первая способность (от которой перезарядка сбрасывается) есть?
Нет, ее нет
14

» WarCraft 3 / Morth

телепаты свалили в отпуск так что пиши подробно
В общем есть челик, у которого есть 2 спелла, первый это просто спелл, какой-нибудь стандарт, второй это морф. При нажатии на морф, он типо превращается в другого челика, у которого тоже есть та же способность морф, при нажатии на которую он обратно становится первым челиком. Так вот, если я использую первый стандартный спелл, юзну морф дважды, то кд будет сброшено, воооот. Скорее всего, морф создает нового юнита того же типа, и поэтому перезарядка спеллов сбрасывается, мне нужно рещить это проблему
Морф был сделан на основе способности:"Превратиться в медведя"
Единственное, что приходит на ум, это использовать этот морф, но спеллы блочить после каста, ну и потом анлокивать
14

» WarCraft 3 / Morth

каким образом делаешь морф(абилкой/руной/триггерно)?
Абилкой
кого его?
спелл или морф
Морф
14

» WarCraft 3 / Morth

я хз как морс может чтото сбивать
но если есть такая лажа то пей чай или кофе вместо морса и будет тебе счастье
Я юзаю первый спелл в базе, после этого перехожу в морф, деактивирую его, и спелл уже отошел от кд, это нормально?
nvc123:
я хз как морс может чтото сбивать
но если есть такая лажа то пей чай или кофе вместо морса и будет тебе счастье
Аааа, боже, дцпшутки подъехали, по поводу мисса Morph от Morth, типо (не знаю WE, и вообще ничего, но зайду и отшучусь), неплохо.
14

» WarCraft 3 / Есть ли где-нибудь статейки, где BJ функции упрощают?

Steal nerves:
попробуй использовать переменную типа filterGetUnitsOfTypeIdAll
function XXX takes nothing returns boolean
    return( GetUnitTypeId(GetFilterUnit()) == 'hfoo' )
endfunction

set filterGetUnitsOfTypeIdAll = Condition(function XXX)
или вообще filterGetUnitsOfTypeIdAll = null
видимо связана эта переменная с bj_groupEnumTypeId. В переменную bj_groupEnumTypeId вбивают id-тип/равкод юнита
Но в jngp не могу увидеть что за переменная, сшита внутри
Вот теперь получилось, с нулом, сейчас пробну функцию заюзать
LainMikoroso:
Steal nerves:
попробуй использовать переменную типа filterGetUnitsOfTypeIdAll
function XXX takes nothing returns boolean
    return( GetUnitTypeId(GetFilterUnit()) == 'hfoo' )
endfunction

set filterGetUnitsOfTypeIdAll = Condition(function XXX)
или вообще filterGetUnitsOfTypeIdAll = null
видимо связана эта переменная с bj_groupEnumTypeId. В переменную bj_groupEnumTypeId вбивают id-тип/равкод юнита
Но в jngp не могу увидеть что за переменная, сшита внутри
Вот теперь получилось, с нулом, сейчас пробну функцию заюзать
Функция также работает, +она юзфулная, спасибо
14

» WarCraft 3 / Есть ли где-нибудь статейки, где BJ функции упрощают?

просто это нужно знать что ты сделал. Скидывай код. Не понял, что ты хочешь сделать. Как ты понял что в группе нет юнитов?
function Lmao takes nothing returns nothing
    call DisplayTextToForce(GetPlayersAll(), "TRIGSTR_4524")
endfunction

function AfterWait takes nothing returns nothing
    local group g = CreateGroup()
    local integer i = GetPlayerId(GetOwningPlayer(udg_U_C[522]))
    call DisplayTextToForce(GetPlayersAll(), I2S(i+1))
    call CreateUnit(Player(0), 'hfoo', x1, y1, bj_RADTODEG * Atan2(y2 - y1, x2 - x1))
    call CreateUnit(Player(i), 'hfoo', x1, y1, bj_RADTODEG * Atan2(y2 - y1, x2 - x1))
    call CreateUnit(GetOwningPlayer(udg_U_C[522]), 'hfoo', x1, y1, bj_RADTODEG * Atan2(y2 - y1, x2 - x1))
    call GroupEnumUnitsOfPlayer(g, Player(i), filterGetUnitsOfTypeIdAll)
    call ForGroup(g, function Lmao)
endfunction

function Minato_W_Actions takes nothing returns nothing
    set udg_U_C[522] = GetTriggerUnit()
    if (GetSpellAbilityId() == 'AHhb') then
        call TimerStart(CreateTimer(), 0.3, false, function AfterWait)
    endif
endfunction

//===========================================================================
function InitTrig_Minato_W_JJ_____________________u takes nothing returns nothing
    set gg_trg_Minato_W_JJ_____________________u = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Minato_W_JJ_____________________u, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddAction( gg_trg_Minato_W_JJ_____________________u, function Minato_W_Actions )
endfunction
local real x1 = 0.00
    local real y1 = 0.00
    local real x2 = 0.00
    local real y2 = 0.00
ВОт это забыл случайно(ласт 4 строки с реальными переменными)
14

» WarCraft 3 / Есть ли где-нибудь статейки, где BJ функции упрощают?

Steal nerves:
filterGetUnitsOfTypeIdAll - фильтр, вместо него должно быть написано либо null или Condition( function XXX) Короче зачем нужен фильтр? Фильтр при выборе всех юнитов сразу отсеивает не нужных, если по условию не подходит, то выкидывает.. Вам сразу достается готовая группа с нужными юнитами
А в качестве переменных используй GetFilterUnit, GetFilterPlayer. На гуи по-другому называют MatchingUnit
где XXX - название функции, эта функция возвращает boolean (то есть истину или ложь)
вбей в поиск названии функции, может найдешь ответ
например выделяем все здания UNIT_TYPE_STRUCTURE, а те, кто не является зданием отсеиваем
function XXX takes nothing returns boolean
    return IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE)
endfunction
насчет статьи не видел, это придет с пониманием. Главное начать. Сначала тупо конверт, и оптимизация. А дальше можешь сам
что у тебя там не работает скидывай сюда
У меня все работает, кроме этого упрощения, т.е. если я использую GetUnitsOfTypeIdAll(), то все исправно, а если GroupEnumUnitsOfPlayer(), то группа получается пустой, хотя игроком я не ошибаюсь
Нууу, если говорить конкретнее, то я конвертнул Pick every unt in group, посмотрел из чего она состоит, решил через GroupEnumUnitsOfPlayer() сделать, нууу, чтобы не loop'ило 12 игроков, а просто взяло юнитов у нужного юнита, и в итоге провал