на главную
об игре
Warcraft 3 13.06.2002

Тема по вопросам о WorldEditor №8

Комментарии: 950
Ваш комментарий

Повторюсь:

Гипермапер напиши что писать на лбу :D

0

опа. Уже новая темка)
Меня тут давно не было))

0

Давайте офф-топом не заниматься и сразу к делу.

0

SaRoF ну чо, как там у тя дела?

0

В редакторе объектов описание заклинания не влазит в строку. Можно ее как-нибудь увеличить?

0

да ниче.. недельки через 2 зделаю xD.
А если серьйозно, то я не нашел норм варик вот щас один скачал, а он който каличный не патчится.Вобщем когда будет норм варкрафт я думаю и ошибки пропадут и все норм будет.Вобщем я напишу что будет.

0

Dr. Manhattan скинь сюда полностью описание абилки я возможно знаю, что не так.
Ибо раньше сам сталкивался с такой проблемой

0

Зачем описание? И что там может быть не так? Просто строка, в которую мы описание заносим, не резиновая, но обычно ее хватает. А у меня описание длинное, я уже его сокращал как мог, но все равно не влазит. Вот я и спрашиваю, можно максимальную длину этой строки как-нибудь увеличить?

0

попробуй через шифт нажать энтером по этой строке и написать туда своё описание

0

а вообще стоит учить vJass или cJass?
и если да то какие приемущества перед обычныйм Jass'oм? (помима того, что позволяет быстрее писать код)

0

Помогите плиз
Мне нужно описание триггера для квестов
Суть квеста - есть деревня и в нее 3 входа (ворота) и там сидит палладин
мне надо чтобы задание выполнялось когда палладин и 3 ворот погибают
но у меня не получается сделать так чт бы условия выполнялись как надо

Заранее спасибо

0

События:
палладин 0000 умирает
ворота 1111 dies
ворота 2222 dies
ворота 3333 dies

Условия:
палладин 0000 is dead равно да
ворота 1111 is dead равно да
ворота 2222 is dead равно да
ворота 3333 is dead равно да

Действия:
mark название квеста as выполнено.

0

Большое спасибо
и еще вопрос
в этом квесте есть вот эти четыре условия и они показваютс в панели задания
икак сделать чтобы они отмечались по очереди как выполнено?
для каждого условия должен быть свой триггер?

0

при создании триггера о получении квеста там я делаю

отметки на карте
видимые области ( ворота и палладин)
4 условия квеста (ворота и палладин)
4 переменых аля Ворта 1(переменная)=последнее созданое условие задания

0

икак сделать чтобы они отмечались по очереди как выполнено?

Хз, попробуй через действия с quest requirement. И вообще, прежде чем лезть на форум с вопросами, поройся в триггерах и попробуй сам все сделать. Сюда обычно обращаются с вопросами, на которые самостоятельно не могут найти ответ. А если ты из-за каждой мелочи будешь сюда обращаться, то вряд ли чему-нибудь научишься.

0

согласен

прикиньте вчера не поленился и прочёл все 7 предыдущих тем, у меня ушло где-то 3 с лишним часа. Я к чему клоню? . . — К тому, что если вы хотите реально чему-то научиться, но вам якобы лень читать предыдущие темы, то я думаю потратить 3 часа не составит особого труда чтобы понять многие детали, чем несколько дней пытаться вытащить ответ на какой-либо вопрос у нас.

0

я рылся в триггера сегодня и вчера и позавчера
посмотрел гдето 3 из 7 тем сдесь но ничего не нашел
ломал голову
икал на других форумах итд

и суда пришел только изз атого что мозг себе вынес окончательно
плюс прога вылетает постаянно и все заново приходится делать

0

Я кстати не понял а какова хрена у меня компилятор не ругаеца если я запустил у себя мапу которая сделана через структуры и библиотеки? ведь я не устанавливал JNGP

0

Я кстати не понял а какова хрена у меня компилятор не ругаеца если я запустил у себя мапу которая сделана через структуры и библиотеки?
В код глянь, там есть чего-то JNGP'шного?

0

обращаюсь потому как немогу сделать самостоятельно

0

Что не можешь сделать? Quest Requirements?

Открой Близзовские мапы и исследуй.

0

да там у меня про орков карта но там только одно условие а у меня 4
я пробовал для каждого по разному
тригеры как ни крути по любому там есть только одна функция Last Created quest requirments

0

да я понимаю замут серьезный но узнать то хочеца

0

а почему этого нету в jass crafte этих структур и лайброри, как варик их распознает? они всётки есть в базе данных jassa?

0

loop
exitwhen i>5
set gg = GetUnitsOfPlayerMatching(Player(i),Condition(function Trig_DeathHumanCamp_Func001001002))
call DisplayTextToForce(bj_FORCE_ALL_PLAYERS,I2S(i))
call GroupAddGroup(g,gg)
set i = i+1
endloop


Цикл делает только один проход (при i=0). При отключении строчки call GroupAddGroup(g,gg) делает все шесть проходов. В чем проблема?

0

а почему этого нету в jass crafte этих структур и лайброри, как варик их распознает? они всётки есть в базе данных jassa?
Нету их. Всё это надстройки над обычным jass. В конечном счёте они переводятся в стандартный код.

0

Dr. Manhattan, лучше скинь сразу всю мапу.

0

Всю мапу долго, выложу весь триггер. Триггер отвечает за убийство героя, вошедшего во вражеский лагерь. Главная трудность в том, что герой должен умирать даже находясь в каком-нибудь транспорте.

function Trig_DeathHumanCamp_Func001001002 takes nothing returns boolean
return IsUnitType(GetFilterUnit(), UNIT_TYPE_HERO)
endfunction

function Trig_DeathHumanCamp_Func001A takes nothing returns nothing
local group g = GetUnitsInRectAll(gg_rct_DeathOrcCamp)
local unit u = GroupPickRandomUnit(g)
loop
exitwhen u == null
if IsUnitInTransport(GetEnumUnit(),u) then
call DisplayTextToForce(GetForceOfPlayer(GetOwningPlayer(GetEnumUnit())),"Героям запрещено входить во вражеский лагерь")
call KillUnit(GetEnumUnit())
endif
call GroupRemoveUnitSimple(u,g)
set u = GroupPickRandomUnit(g)
endloop
if RectContainsUnit(gg_rct_DeathOrcCamp,GetEnumUnit()) then
call DisplayTextToForce(GetForceOfPlayer(GetOwningPlayer(GetEnumUnit())),"Героям запрещено входить во вражеский лагерь")
call KillUnit(GetEnumUnit())
endif
call DestroyGroup(g)
set g = null
set u = null
endfunction

function Trig_DeathHumanCamp_Actions takes nothing returns nothing
local group g
local group gg
local integer i = 0
loop
exitwhen i>5
set gg = GetUnitsOfPlayerMatching(Player(i),Condition(function Trig_DeathHumanCamp_Func001001002))
call GroupAddGroup(g,gg)
set i = i+1
endloop
call ForGroup(g,function Trig_DeathHumanCamp_Func001A)
call DestroyGroup(g)
call DestroyGroup(gg)
set g = null
set gg = null
endfunction

//===========================================================================
function InitTrig_DeathHumanCamp takes nothing returns nothing
set gg_trg_DeathHumanCamp = CreateTrigger()
call TriggerRegisterTimerEventPeriodic(gg_trg_DeathHumanCamp,0.02)
call TriggerAddAction(gg_trg_DeathHumanCamp,function Trig_DeathHumanCamp_Actions)
endfunction

0

ну так естественно ты не создал группу g

local group g=CreateGroup()

поэтому он у тя в строке call GroupAddGroup(g,gg) зависает так как некуда пихать юнитов

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

и если уж на то пошло, зачем для таких целй делать периодическое событие. когда можно просто сравнивать:
зашел ли юнить в область:
• Либо сам герой, и затем проверять в транспорте он или нет
• Либо проверять зашел ли транспорт в обл, и проверять сидит ли в нём кто-нибудь

как правило для транспорта можно делать проверку, мол типа обладает ли он способностью "пассажир" или "еда" или прочие скилы для перевоза юнитов внутри себя
Чтоб определять, действительно ли транспорт зашел в зону.

0

local group g=CreateGroup()

О, уже прогресс. Цикл заработал, а герой все равно не умирает. Щас, может, придумаю что-нибудь.

и если уж на то пошло, зачем для таких целй делать периодическое событие.

Я тоже об этом подумал. Поменяю событие на TriggerRegisterEnterRectSimple(gg_trg_DeathHumanCamp,gg_rct_DeathOrcCamp).

ps. Я тут недавно написал, что когда герой входит в область без транспорта, триггер срабатывает как положено. Это я недоглядел чуть-чуть. Там другой триггер срабатывает.

0

Короче, группа g после цикла пустая. Не знаю, что с этим делать.

0

Да пробовал уже. Уничтожение групп в потоке идет после цикла ForGroup, значит, оно не запустится, пока цикл не будет выполнен до конца.

Там даже gg внутри цикла пустая. Я вообще теряюсь.

Можно как-нибудь сделать, чтобы юнита нельзя было выбрать в игре, и чтобы он не отображался на мини-карте? Нужно сделать юнит-снаряд.

0

ну ты чо за вопросы начал задавать, врде jassom владеешь, а такие вопросы идут простые

Что юнита незя было выбрать дай ему скилл "москиты"

Уничтожение групп в потоке идет после цикла ForGroup, значит, оно не запустится, пока цикл не будет выполнен до конца.

блин просто убери строки с уничтожением групп и всё, и посмари что будет

0

Я же говорю - пробовал.

В общем, сделал триггер в гуи по другому алгоритму - все работает. Правда, игрок-владелец героя и транспорта должен быть один и тот же, но это поправимо.

Но, может, кто-нибудь объяснит, почему все-таки группа была пустая?

0

убей гуи сделай на jasse . . .
и выложи снова код, если опять не получится . . .

0

Работает, и хрен с ним. Лучше объясни, почему группа пустая, и где там ошибка в коде.

0

в каком месте ты узнаешь что она пустая?

0

В теле цикла после строчки set gg = GetUnitsOf... провожу проверку, и оказывается, что gg пустая.

0

попробуй и для неё сначало local group gg=CreateGroup()

а дальше уже в любом месте кода set gg=.. . .

0

ну тогда . . . хз
выпей яду) от ужаса

0

А она у тебя после

loop
exitwhen i>5
set gg = GetUnitsOfPlayerMatching(Player(i),Condition(function Trig_DeathHumanCamp_Func001001002))
call GroupAddGroup(g,gg)
set i = i+1
endloop

пустая, или нет?

0

Группа gg пустая внутри цикла после функции set gg=Get...
Группа g после цикла, естественно, тоже пустая.

0

Ты всё-таки скинь мапу с примером нерабочести :)

0

Да я уже удалил тот триггер. Не хочу восстанавливать.

0

=)
Спасибо что помните. Но на самом деле,я мм ленивый гад,т.к. я пытался найти варкрафт скачал 2 тупых каких то,а потом вобще забил на все ето О_О играл в доту все такое, даже в стандартный варкрафт.Кстати очень интересно, вобщем у меня был отпуск ).Может кто-то дать ссылку на рабочий Warcraft 3 ? Можно даже не рабочий ) лиш бы World Editor рабочий и нормальный был 1.24 версии.А то в нете копец найти не могу.

Я опять полн сил, и готов к новым подвигам (всмысле нудоте типо функцию туда сюда =( ) XD.

0

rutracker
org
Найдёшь, я же нашёл :)

0

мм нашел на другом сайте )), неважно вобщем.Теперь у мну есть хеш ТаблиЦо!!
Мм пришлось указать индекс 1 в тригере инстализации карты т.е set udg_hash[1]=InitHashtableBJ() потому что просто ung_hash=.. не катит ) выдает ошибку вобещем.. УРЯЯ заработало )) оно летит вперед! ухуху ) ы. по иксу летит с такой скоростью как было в задании ) + можно поставить чтобы оно набирало высоту там легко вобще просто за сколько секунд и какая высота только я хз как зделать чтобы оно летело вверх а потом когда достигнет например высоты 200 вниз.. ну и хотелось бы еще чтобы оно теперь летело по нормальному ) т.е туда куда указал, и взрывалось когда высота = 0.Вот код точнее его часть т.е действия (я не думаю что остальное нужно просто):




function Move takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u2=LoadUnitHandle(udg_hash[1],GetHandleId(t),1)
local real a=GetUnitFacing(u2)
call SetUnitFlyHeight(u2,200,10)
call SetUnitX(u2,GetUnitX(u2)+5)
endfunction

function Trig_skill_2_bomba_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
local unit u2=CreateUnitAtLoc (GetOwningPlayer(u),'h002',GetUnitLoc(u),0)
call SaveUnitHandle(udg_hash[1],GetHandleId(t),1,u2)
call TimerStart(t,0.01,true,function Move)
set t=null
set u=null
endfunction

0

Можно просто InitHashtable() Глобальную переменную Hash ты, видимо, задал как массив, поэтому он просит индекс [1]. Проверь, является ли она массивом.

call SetUnitFlyHeight(u2,200,10) можно было в функции Trig_skill_2_bomba_Actions поставить, эффект был бы тот же, эато компу работы меньше.

Задание было переместить юнита на 1000. А у тебя он, если я не ошибаюсь, летит сколько угодно без всяких ограничений. Кстати, когда он за пределы карты выходит, игра не зависает?

0

Как сделать переход из одной карты в другую во время игры, и чтобы у героя остались все предметы и опыт.

0

Да нет ) не зависает.Блин ну ты меня нагрузил ) чтобы он еще и останавливался.. можно проще ? Точнее не проще но по делу.Хочю чтобы он когда набирал высоту 200 то выключить как бы набор высоты или оно и так вырубится ? И врубить функцию которая если высота = 0, то уничтожить юнит создать спецефект короче, и нанести урон всем врагам из групы g которую нужно создать в етой же функции.

КОРОЧЕ =) как делать запуск функции сверяясь с условием ?

0

И прозьба, просто написать ответа (желательно с примером),а не спрашивать меня зачем что и куда )) особенно к Dragon27 относится xD, потому что как я уже говорил ето ужасно бесит) и чтобы ты все же даже если решишся уточнять не уночнял ) я сразу напишу что я хочю что чтобы когда "Бомба" обьект u2 набирает высоту 200, он начал снижать высоту, а когда высота станет 0 (чтобы небыло багов начальная высота полета юнита 1), то взорвать юнит зделать дейстия которые написаны постом выше.

0

Ну поставь условие. Поставь переменную is_flying_up = true. Когда высота станет >=200, переменную замени на false. И проверяй, если она true - увеличивать высоту на шаг, иначе уменьшать на шаг. Саму высоту засунь в переменную и проверяй.
Прикрепи все переменные к юниту хэш-таблицей.

0

все ето так просто просто )) а пример ?) Я ж ниче не понял.. нет я понял что делать,а вот как делать ?)Особенно "Поставь условие" я ж и спрашиваю как его "Поставить" а потом насколько я понял в конце функции написать запустить такуюто функцию т.е например call включить функцию(я непомню команду) (gg_trg_Boom,Boom(add Condition(gg_trg_conditionb)) или как то так ну вобщем ето все очень разплывчасто и неточно вот покажи на примере как ето правильно ) плз.

0

И прозьба, просто написать ответа (желательно с примером),а не спрашивать меня зачем что и куда ))

Этого не обещаю. Потому что если тебе объяснить конкретный пример, ты поймешь, как сделать этот пример, а если ты сам его сделаешь, то научишься самостоятельно разрабатывать алгоритмы и уже не будешь обращаться сюда с такими вопросами.

Условие можно поставить с помощью if (условие - значение типа boolean) then (какие-то действия) else (еще какие-то действия).

Насчет строчки call SetUnitFlyHeight(u2,200,10). После ее выполнения юнит начнет подниматься на высоту 200 за время 10 секунд. Пока он будет это делать, таймер снова запустит этот поток, и программа опять наткнется на эту строчку. Это значит, что при каждом срабатывании таймера юнит будет начинать плавно изменять высоту до 200. Имеет смысл при каждом срабатывании таймера изменять высоту маленькими шажками, и не за 10 секунд, а мгновенно. call SetUnitFlyHeight(u2,2,0), например.

Я давал задание не взрывать юнит, а пока просто переместить его на определенное расстояние. Но это было в случае, когда перемещается кастер, а не юнит-снаряд. Юнит-снаряд лучше будет уничтожить в конце пути командой RemoveUnit(u2). В случае с бомбой момент, когда этот юнит надо уничтожить, определяется просто через условие GetUnitFlyHeight(u2) < 0. Но обычно все чуть-чуть сложнее, и снаряды летают на постоянной высоте. Пожтому я предложил уничтожать его не тогда, когда он опустится ниже 0, а тогда, когда он пройдет расстояние 1000. Для этого, очевидно, надо в функции Move отслеживать расстояние, которое он уже прошел. Вот и подумай, как это сделать.

0

Dr. Manhattan +1 ))

SaRoF не забывай что условия достаточно через if запустить

0

через if.. а пример ?)) ну что ж такое ) просто в скобках в последнюю очередь написать ,if( уловия?).

Далее насчет Задания ) я знаю какое было задание)) но я же пытаюсь зделать лутше (тяжелее) + скилл готовый для чара =) получается 2-йная выгода, мне так точно.

"в функции Move отслеживать расстояние" что значит подумай ? Я незнааю )) тут и думать нечего как же я зделаю ? Нужно запустить 3-тю функцию сверяясь с улсловием(что если растояние от точки создания юнита ( как ету точку обозначить и найти (написать)) и позиция юнита (u2) больше или равно 1000 то создать effect at unit position (u2,код взрыва) Ну или как то так.. и Remove(u2) и демедж всех из групы g которая в етой же функции создается. Вот вобщем и все, а как ето в код ?) мне нужно знать как обозначить точку на которой юнит появился.. не позиция же кастера ведь он может бегать.

0

Пример:

if i == 1 then
call RemoveLocation(p)
set v = GetTriggerUnit()
elseif i >= 2 then
call SetUnitX(k,0)
elseif i != 4 then
return
else
call DestroyGroup(g)
endif


Пример ясен? В предыдущем посте я немного объяснил, как это работает. Если не понял, то основная статья http://xgm.ru/project.php?id=100&page=jass_conditions_and_loops

Нужно запустить 3-тю функцию сверяясь с улсловием(что если растояние от точки создания юнита ( как ету точку обозначить и найти (написать)) и позиция юнита (u2) больше или равно 1000

3-ю функцию запускать не надо, условие можно вставить в функцию move. Ты предложил сверять положение юнита-снаряда с точкой стояния кастера в момент применения заклинания. Это один из вариантов, ты на правильном пути, поздравляю. И насчет того что кастер может перемещаться, ты тоже правильно сообразил. Значит, на положение кастера мы ссылаться не можем, и придется как-то обозначить точку, в которой он стоял на момент применения заклинания. Вот и подумай, как обозначить эту точку и как сослаться на нее в функции move. Если тебе удалось каким-то образом сослаться на юнита u2, то эту точку ты тоже как-нибудь обозначишь.

0

а лучше так:
допустим юнит на каждый тик таймера мы перемещаем на 25,
следовательно, чтоб переместит его на расстояние 1000, нужно повторить это 40 раз
вот и создай интеджер i и прибавляй +1 на каждый тик таймера, а затем сравнивай:
если i==20 то начать уменьшать высоту юнита,
если i==40 то завершить таймер и сделать взрыв или чо там . . .
потом там же сохраняй переменную i в хеш-таблице в той же ячейке (чтоб сравнивалось когда таймер будет тикать снова)

потом выпиши сюда код, посмотрим что получилось

0

мне нужно знать как обозначить точку
2 переменные - координата X и Y. Или если тебе не жалко утечек - переменная Location. Приаттачь к таймеру (сохрани в хэш-таблицу).

0

Если мы установили точку сбора для здания, как к ней обратиться в триггерах?

0

мм нужно сразу после создания юнита забить его текущую точку в хеш таблицу ) ну ясно короч.А в функции Move выгрузить ету точку, потом написать if растояния между позиция юнита и етой точкой больше или равно 1000 уничтожить юнит и т.д верно? А потом все выставить на null.

0

Dr. Manhattan "Сборный пункт" — это же всё таки способность (Способности\особые\войска\сбор)

GetSpellTargetLoc()

0

1. Как убрать такую штуку, когда на мапе появляется главное здание и рабы? Я слышал это триггер...
2. Как сделать обычного юнита героем?
3. Как сделать спеллы? Анимация, всё такое...
4. Как сделать так, чтобы постройка зданий стоила не дерева и золота, а маны? (при этом это должен быть спелл)

0

Короче должно получится что то вроде етого:

function Trig_skill_2_bomba_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A002' ) ) then
return false
endif
return true
endfunction

function Move takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u2=LoadUnitHandle(udg_hash,GetHandleId(t),1)
local real a=GetUnitFacing(u2)
local integer i=0
call SetUnitX(u2,GetUnitX(u2)+10)
set i=i+1
if i<25 then
call SetUnitFlyHeight(u2,4,0)
endif
if i>25 then
call SetUnitFlyHeight(u2,-4,0)
endif
if i==50 then
local group g==GetUnitsInRectMatching(RectFromCenterSizeBJ(GetUnitLoc(u2), 200.00, 200.00,),Condition(Условия там нужны +( )
local effect e=Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
call AddSpecialEffectLoc (string e,GetUnitLoc(u2))
endif
endfunction

function Trig_skill_2_bomba_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
local unit u2=CreateUnitAtLoc (GetOwningPlayer(u),'h002',GetUnitLoc(u),0)
call SaveUnitHandle(udg_hash,GetHandleId(t),1,u2)
call TimerStart(t,0.01,true,function Move)
set t=null
set u=null
endfunction

//===========================================================================
function InitTrig_skill_2_bomba takes nothing returns nothing
set gg_trg_skill_2_bomba = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_skill_2_bomba, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_skill_2_bomba, Condition( function Trig_skill_2_bomba_Conditions ) )
call TriggerAddAction( gg_trg_skill_2_bomba, function Trig_skill_2_bomba_Actions )
endfunction

там ошибка ) и я незаю как мне зделать условия в одной функции).Я попробывал гуи перевести в джаз, но О_О там просто психозз какой-то, теперь я точно знаю что лутше сразу на джазз )).
Там ошибка мол нехватает EndIf и все но я же везде поставил помогите исправить плз ?) а то джазз крафт отказывается работать я туда уже всунул с http://xgm.ru/forum/showthread.php?t=25760 Common.j (18kb) но всеравно оно не дает новые команды =( вснулу причем во все папки XD.

0

1. Как убрать такую штуку, когда на мапе появляется главное здание и рабы? Я слышал это триггер...
Да, это триггер. Берёшь его и удаляешь.

2. Как сделать обычного юнита героем?
В hex-редакторе.
Если при создании карты, то в Object Editor'е.

3. Как сделать спеллы? Анимация, всё такое...
Там же, в Object Editor'е. Анимацию можешь нарисовать в каком-нибудь 3D-редакторе.

4. Как сделать так, чтобы постройка зданий стоила не дерева и золота, а маны? (при этом это должен быть спелл)
Лучше всего создать спелл, который будет имитировать обычную постройку.
А можно создать триггер, который будет следить за постройкой и не разрешать её, если маны мало.
Довольно геморройно.

0

local group g==GetUnitsInRectMatching(RectFromCenterSizeBJ(GetUnitLoc(u2), 200.00, 200.00,),Condition(Условия там нужны +( )
Это чё такое?
Какова цель этой строки?

0

О_о нужно создать групу g в которую входят все вражеские юниты (не здания) в 200 аое от u2.. ну а после нанести урон всем из етой групы перед тем как уничтожить u2.

И еще, высота не изменяется.Видимо i+1 не работает, но я незнаю почему.. оно за каждый тик таймера создает новую i и теряется в них или как?

0

set i=i+1
if i25 then
call SetUnitFlyHeight(u2,-4,0)
endif
if i==50 then


Сначала ты присваиваешь i значение 0. Потом прибавляешь 1, получается 1. Затем спрашиваешь, стало ли i больше 25. Чувствуешь логику?

0

Итак, SaRoF, я решил покончить с этим непониманием и сделал для тебя эту наработку.
Пусть она для тебя будет, своего рода, «учебником» по движению объектов.

Я действительно вложил душу в эти триггеры, описав почти каждую строчку максимально подробно.
И, если у тебя всё же найдутся вопросы (в чём я, лично, сомневаюсь), то я готов ответить на них в любое время, лишь бы убить все твои сомнения в каких либо вещах касающихся движения.

0

О_о прочитал я ето 1 разок.Заранее говорю спасибо! Большое спасибо! За то что неполенился ) и наконец реально помощь вот такая.Глаза режет шрифт не удобный ) и голова болит от перенасыщения инфой.. хотя я думаю все таки от перенапряжения зрения у меня просто екран здоровый, и оно реально давит на сознание так сказать.
Вобщем я понял хотя то что написано внизу и т.д можно было впринцыпе не описывать так уж подробно единственное что действительно нужно было так ето про Формулы.Какраз щас учим Теорему Пифагора,но я чето непонял про представляемый треуголник О_о вобщем если очень будет нужно я еще раз прочитай (а мне наврено будет нужно потому что понял я не все к сожелению) т.к начала болеть голова ).

Еще раз спасибо что вложил душу =).

Так же я советую что бы ты воложил ету же наработку на http://xgm.ru/ для остальных. И мне интересно сразу вопрос +),как обозначить ближайшего юнита ? который ближе всего. Спасибо.

0

О_о нужно создать групу g в которую входят все вражеские юниты (не здания) в 200 аое от u2.
Создай отдельную фильтер функцию, возвращающую boolean, что-нибудь типа

function My_Condition takes nothing returns boolean
    return ( ( IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), Player(0)) == true ) and (IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false ) )
endfunction

И вставь в виде: Condition(function My_Condition)


У меня ща ничего нет, глянь, я там бж-функций лишних не напихал?

0

возьми скопируй в обычный текстовой файл и читай нормально

как обозначить ближайшего юнита ?
заноси юниты в группу вогруг нужной тебе точки, а затем используй set твой юнит=FirstOfGroup(твоя группа)

по поводу теоремы Пифагора:

вот тот самый воображаемый треугольник
Только у нас тут наоборот от точки до юнита а не от юнита до точки, но это не важно — принцип ясен, и формула остается такой же.

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

по поводу того, что написано фиолетовыми буквами — не обращай внимания, я ошибался на этот счет, знак плюс или минус (направление) не имеет значения так как всё равно возводим в квадрат.

И я старался не использовать SquareRoot, во избежание не нужных вычислений и загрузки виртуальной памяти игры, вместо этого я прям так и сравнивал квадраты чисел.

По поводу группы: прочти мой пост в 7 теме 27.02.10 15:57
если б ты учился внимательно тыб запомнил этот пост. . .

Если вы не поняли кто я, напомню: я тот самый KiLLiNG_SPREEE, просто ник сменил как на форумах xgm.ru

0

Да, верно, локалки наверху должны быть.

0

Да я понял что ето ты =).Во вторых ) вы же тогда вобще своими вопросами занимались я ето читал, но не вникал как бы потому что меня ето не косалось и тогда я вобще не понял о чем речь так что за невнимательность, лишний раз меня бранить ненада.А Про виртуальную память ты зря заботишся как по мне.. ето уже перебор ) зделал бы как удобно, а не как куску железа удобней +_+.

А что насчет моего джазз крафта ? +( он нехочет новые команды брать.. гад вобще ))...

И спасибо за ответ насчет ближайшего юнита.. действительно выход =). первого юнита из групы +) а они выходит выбираются по растоянию если условием является растояние ? т.е например скилл:Переместить Героя к ближайшему юниту в 500 аое и нанести ему 100 урона ну на пример ) Вот... и щас перед тобой 2 юнита один в 300 аое а другой в 425 например.. и функция сперва обнаружит выходит ближайшего и к нему тебя и двинет. интересно )

мм ну чтож.. теперь я знаю как двигать юнитов и как выбирать ближайшего юнита, ну и естестно ясно как наносить урон)
А что насчет например.. Спецефектов.. меня интересует как зделаны скилы которые создает поток енергии как бы.. от тебя до цели.. анимация высасывания жизни просто берется? как зделать так чтобы она было от (дамми юнита) до всех целей вокруг например? Выбрать всех из групы g и.. что делать ?)


И последнее... Как зделан скил скорпа в доте ? sand King.
Подрыв в частности.. ясно что его перемешает в указаную точку или прячет двигает а потом показывает.НО как зделано чтобы колья были до оперделенного момента а не как у Lion?

0

Спецефектов.. меня интересует как зделаны скилы которые создает поток енергии как бы.. от тебя до цели.. анимация высасывания жизни просто берется?
Ставится куча дамми-юнитов с определёнными условиями, они и светятся :) Либо какие-нибудь молнии, зависит от того, что ты имеешь в виду.
Попробуй сам сделать, например... ты полёт по параболе, кстати, сделал?

Как зделан скил скорпа в доте ?
Скачай opendota и посмотри

0

Когда фантазия есть, и желание, можно осуществить такое, что у всех челюсть отвалится.

Блин SaRoF, еслиб смотрел мою наработку с Морлоком, вообще подобных вопросов не было.

В ней было всё: и движение, и урон, и "потоки энергии" (по-твоему. . .) — они же молнии (виды), и выбор ближайшего юнита там тоже был.

Вообще наработка была уникальной. Там 70% того что ты тут спрашиваешь было. Только разобраться в ней и всё.
Вот настолько настолько она универсальна. . .

И я до сих пор не пойму, что это такое?
function Trig_skill_2_bomba_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A002' ) ) then
return false
endif
return true
endfunction


почему до сих пор так криво делаешь?
Исправь при мне её, чтоб я видел что ты понял.

0

function Trig_skill_2_bomba_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='A002'

и все =) ето чтобы было легче компу верно ?) ну вобщем.. я щас S.T.A.L.K.E.R(а) наконец решил пройти) он у меня уже год назад был но тогда чето нехотелось )) но завтра я обещаю начать наконец делать свою карту использую джазз ).Щас марю твой пример с мурлоком какраз я думаю что и так разберусь без коментариев. +).

Карта будет такая.. будут магазины.. с юнитами и у каждого юнита будут свои скилы.Смысл карты вобще в том, что один игрок защищается, а второй нападет, и получается комбинирует юнитов т.е например у обычных воинов будет "Чардж", он(воин) будет подбегать к ближайшему противнику и бить его.У магов там будут всякие яркие тоже скилы, у титанов скилы на разнос мелких юнитов.Вобщем в куче должно быть интересно ) игра на тактику/стратегию хотя может будет чуть лагать, юнитов то много и у каждого скилы как у геров =).

А и еще ето не я криво делал )) ето все гуи ) я просто написал условие, событиие а потом уже перевел в джазз потому так, хотя так конечно же делать незя )

0

Ааааа О_О =) вопрос.. как зделать чтобы скилл работал только если его юзает одновременно 12 игроков?И может ето легко но просто у меня голова чето не варит.. вот интересно как зделать так что перенаправлять урон ? ну я просто команды незнаю =( т.е например скилл.. поглащать весь урон который наносится цели как делается ? цели и целей* если можно то пример плзз ) а то на словах не всегда ясно.. т.е нужно получается заблокировать урон который идет етой цели нанести равное етому урону урон юниту который кастанул ето защитное заклинание на цель(цели).

0

SaRoF да что ж такое-то. . .)) И на этот случай был пример, помнишь мапу TimeWalker?
В ней 3 скил отлавливает полученный урон и герою снова возвращается то хп которое поранили.

Яж говорил прочти всю №7 тему, лучше будет для закрепления знаний. Я как раз на протяжении всей этой темы ещё сам изучал Jass только.
То есть в №6 теме я был гораздо большим нубом в Jass'e (а точнее полным)

0

т.е например скилл.. поглащать весь урон который наносится цели как делается ?
Мы же уже это вроде говорили. В прошлой теме. Что с твоей памятью? :)

0

Скил о котором я уже говорил.. Воин должен подбежать к ближайшему юниту и стукнуть его =).Вот код:

function Condition takes nothing returns boolean
local u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
return IsPlayerEnemy(GetOwningPlayer(u),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())>0.405)and(IsUnitVisible(GetFilterUnit(),GetOwningPlayer(u)))and(IsUnitType(GetFilterUnit(),UNIT_TYPE_MAGIC_IMMUNE)!= true)and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))


function Trig_Move takes nothing returns nothing
set t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
call SaveGroupHandle(udg_Hash,GetHandleId(t),5,g)
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),6)
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local real a=LoadReal(udg_Hash,GetHandleId(t),4)
local real s=((LoadReal(udg_Hash,GetHandleId(t),2)-GetUnitX(u))*(LoadReal(udg_Hash,GetHandleId(t),2)-GetUnitX(u))+(LoadReal(udg_Hash,GetHandleId(t),3)-GetUnitY(u))*(LoadReal(udg_Hash,GetHandleId(t),3)-GetUnitY(u)))
call SetUnitX(u,GetUnitX(u)+10*Cos(a))
call SetUnitY(u,GetUnitY(u)+10*Sin(a))
if(s<=225)then
call UnitDamageTargetBJ(u,c,(125),ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL)
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
set r=null
set u=null
call RemoveLocation(p)
set t=null
set c=null
set g=null
endfunction

function Trig_Charge_Actions takes nothing returns nothing
local unit u=GetSpellAbilityUnit()
local timer t=CreateTimer()
local group g=set g=GetUnitsInRangeOfLocMatching(500,p1,Condition(function Spell_Filter))
local unit c=FirstOfGroup g
local location p = GetUnitLoc c
local real a=(GetLocationY(p)-GetUnitY(u),GetLocationX(p)-GetUnitX(u))
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveReal(udg_Hash,GetHandleId(t),2,GetLocationX(p))
call SaveReal(udg_Hash,GetHandleId(t),3,GetLocationY(p))
call SaveReal(udg_Hash,GetHandleId(t),4,a)
call SaveGroupHandle(udg_Hash,GetHandleId(t),5,g)
call SaveUnitHandle(udg_Hash,GetHandleId(t),6,c)
call TimerStart(t,0.02,true,function Move)
set r=null
set u=null
call RemoveLocation(p)
set t=null
set c=null
set g=null
endfunction

Тут дето ошибки я хз сколько ) редактор вобще милион нашел )).Прозьба исправить, а то я невижу де там ошибки.. =( слепой я ).

А ну и еще я хотел бы "Сознатся" что использовал наработки с мурлоком и передвижением, и еще раз спасибо что ты их зделал =).

0

set t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
call SaveGroupHandle(udg_Hash,GetHandleId(t),5,g)
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),6)
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)

локалки до любых действий

function Condition takes nothing returns boolean
local u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
return IsPlayerEnemy(GetOwningPlayer(u),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())>0.405)and(IsUnitVisible(GetFilterUnit(),GetOwningPlayer(u)))and(IsUnitType(GetFilterUnit(),UNIT_TYPE_MAGIC_IMMUNE)!= true)and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))

чё это? И где endfunction?

0

мм =) да что то я тупанул совсем.. закрыл endfunction-ом но всеравно ошибок не меряно О_о локалки тоже перевел за set t=GetExpiredTimer()

0

IsPlayerEnemy(GetOwningPlayer(u),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())>0.405)and(IsUnitVisible(GetFilterUnit(),GetOwningPlayer(u)))and(IsUnitType(GetFilterUnit(),UNIT_TYPE_MAGIC_IMMUNE)!= true)and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))
Ты уверен, что эта функция написана верно? :)

0

А это?
local group g=set g=GetUnitsInRangeOfLocMatching(500,p1,Condition(function Spell_Filter))
local unit c=FirstOfGroup g
local location p = GetUnitLoc c

Да вообще до хрена у тебя там. Куда ты так спешишь-то? Проверь каждую строчку, не торопись.

0

блин ну тут грубые такие ошибки реально я вобще =( сори.. но дальше где ошибки ? там в хеш таблицу вроде правельно все в свои ячейки.. еще вместо load написал сейф )) вот так должно быть:

local group g=LoadGroupHandle(udg_Hash,GetHandleId(t),5,g)
и еще нашел вместо u поставил p1

и.. все ? ну не щитая того что ты нашел.

Ето ж мой первый опыт исправления ошибок и вобще самастоятельного тригера на джазз.

"Ты уверен, что эта функция написана верно? :)" ну если ты сомневаешся в Mr_ILYAS то может и не верно =))) я ето "позоимстовавал" из наработки с мурлоком.Вроде все верно хотя маленько непонятно например

(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE))) не стоит =False Но учитывая то что там стоит not похоже все верно... я вобще в условиях не разбераюсь особо.

0

Ну так ты разбери её по косточкам, и проверь - нужна ли она тебе?

Не надо тупо переписывать - надо разбираться.

0

АААЙ!! ТЫ СМЕРТИ МОЕЙ ХОЧЕШ )) ОПЯТЬ ПО КОСТОЧКАМ ) мне блин завтра в школу а он хочет чтобы я в 24.00 сидел и по косточкам xD)) я тебя ненавижу xDDD.

0

Медленно сижу и по очереди добавляю функци.. смарю ошибки..

function Move takes nothing returns nothing
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1,)
endfunction

ГДЕ ТУТ ОШИБКА ? АААААА СОХРАНИЛ В ПРЕДИДУЩЕЙ ФУНКЦИИ ЗАПУСТИЛ ТАЙМЕР ЧТО ЕМУ НЕ ТАК ?

0

function Move takes nothing returns nothing
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1,)
endfunction


local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1,)

(udg_Hash,GetHandleId(t),1,)

(udg_Hash,GetHandleId(t),1,)

шо за t и шо за запятая? Может это таймер, который ты не объявил и не присвоил?

0

set t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)

ну.. теперь он должен понимать что за t.. запятую убрал.. всеравно 2 ошибки Отсутствует название переменной, отстутствует оператор кода. Все относится к 30 строке т.е к set t=GetExpiredTimer() хотя переменную я создавал в предидущей функции local timer t=CreateTimer() а потом запустил его
call TimerStart(t,0.02,true,function Move)

0

ну так надо не set, а local timer t=GetExpiredTimer()
тыж переменную не создал . . . а уже присваиваешь значение


Еще я заметил у тя названия функций не совпадают. Ты вызываешь одну, а называется она по другому.

тоже самое и с таймером:
вызываешь Move, а сама функция называется Trig_Move

Едем дальше:
local unit c=FirstOfGroup g
local location p = GetUnitLoc c
где скобки?

local unit c=FirstOfGroup(g)
local location p = GetUnitLoc(c)

0

ну ето старая версия ) я уже ето все поисправлял скобки там и т.д ) а насчет то что я не создал спасибо.

0

function Trig_Charge_OrKvAr_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A000'
endfunction

function Move takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local group g=LoadGroupHandle(udg_Hash,GetHandleId(t),5)
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),6)
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local real a=LoadReal(udg_Hash,GetHandleId(t),4)
local real s=((LoadReal(udg_Hash,GetHandleId(t),2)-GetUnitX(u))*(LoadReal(udg_Hash,GetHandleId(t),2)-GetUnitX(u))+(LoadReal(udg_Hash,GetHandleId(t),3)-GetUnitY(u))*(LoadReal(udg_Hash,GetHandleId(t),3)-GetUnitY(u)))
call SetUnitX(u,GetUnitX(u)+10*Cos(a))
call SetUnitY(u,GetUnitY(u)+10*Sin(a))
if(s<=225)then
call UnitDamageTargetBJ(u,c,(125),ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL)
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
set u=null
set t=null
set c=null
set g=null
endif
endfunction

function Trig_Charge_OrKvAr_Actions takes nothing returns nothing
local unit u=GetSpellAbilityUnit()
local timer t=CreateTimer()
local group g=GetUnitsInRangeOfLocAll(512, GetUnitLoc(GetTriggerUnit()))
local unit c=FirstOfGroup (g)
local location p = GetUnitLoc (c)
local real a=Atan2(GetLocationY(p)-GetUnitY(u),GetLocationX(p)-GetUnitX(u))
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveReal(udg_Hash,GetHandleId(t),2,GetLocationX(p))
call SaveReal(udg_Hash,GetHandleId(t),3,GetLocationY(p))
call SaveReal(udg_Hash,GetHandleId(t),4,a)
call SaveGroupHandle(udg_Hash,GetHandleId(t),5,g)
call SaveUnitHandle(udg_Hash,GetHandleId(t),6,c)
call TimerStart(t,0.02,true,function Move)
set u=null
call RemoveLocation(p)
set t=null
set c=null
set g=null

endfunction

//===========================================================================
function InitTrig_Charge_OrKvAr takes nothing returns nothing
set gg_trg_Charge_OrKvAr = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Charge_OrKvAr, EVENT_PLAYER_UNIT_SPELL_CHANNEL )
call TriggerAddCondition( gg_trg_Charge_OrKvAr, Condition( function Trig_Charge_OrKvAr_Conditions ) )
call TriggerAddAction( gg_trg_Charge_OrKvAr, function Trig_Charge_OrKvAr_Actions )
endfunction


Ето полностью рабочий тригер.. но он подбегает к ближайшему юниту вобще.. т.е к кастеру ) т.е не подбегает а просто себя лупит все тут XD.Именно поетому мне нужно условие к групе g.. а как его правельно поставить я не шарю.. скопировал рабочее условие из мурлока.. короче показываю что я поменял:

Под стандартным условием какой скилл.. поставил функцию:

function Acondition takes nothing returns boolean
local unit u=LoadUnitHandle(udg_Hash,0,0)
return IsPlayerEnemy(GetOwningPlayer(u),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())>0.405)and(IsUnitVisible(GetFilterUnit(),GetOwningPlayer(u)))and(IsUnitType(GetFilterUnit(),UNIT_TYPE_MAGIC_IMMUNE)!= true)and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))
call FlushChildHashtable(udg_Hash,0)
set u=null
endfunction

после local unit u=caster. . . поставил
Call SaveUnitHandle(udg_Hash,0,0,u)
local location p1=GetUnitLoc(u)
local group g=GetUnitsInRangeOfLocMatching(500,p1,Condition(function Acondition))

0

Хех прикольно ) посмотрел скилл скорпа в доте ) интересно.. вот код:

function Trig_Burrowstrike_Actions takes nothing returns nothing
local unit lTQ=GetTriggerUnit()
local integer lTr=GetUnitAbilityLevelSwapped('A06O',GetTriggerUnit())
local real liD
local location lnM=GetUnitLoc(lTQ)
local location lMP=GetSpellTargetLoc()
if GetSpellTargetUnit()!=null then
call RemoveLocation(lMP)
set lMP=GetUnitLoc(GetSpellTargetUnit())
endif
set liD=AngleBetweenPoints(lnM,lMP)
if(lTr==1)then
call CreateNUnitsAtLoc(1,'e00E',GetOwningPlayer(GetTriggerUnit()),PolarProjectionBJ(lnM,-100.,liD),GetUnitFacing(GetTriggerUnit()))
call UnitAddAbility(bj_lastCreatedUnit,'A075')
call SetUnitAbilityLevelSwapped('A075',bj_lastCreatedUnit,(R2I(DistanceBetweenPoints(lnM,lMP))/100))
call IssuePointOrderByIdLoc(bj_lastCreatedUnit,OrderId("impale"),lMP)
call PolledWait((DistanceBetweenPoints(lnM,lMP)/4000.))
call SetUnitPositionLoc(lTQ,lMP)
call SetUnitAnimation(lTQ,"morph ALTERNATE")


иза етих обозначений жутко не удобных ITQ,IMP .. хрен что поймеш )) но принцып такой ) он создает в позиции скорпа дамии юнит смещение на -100 непонял зачем.. и ,LID лид ето real Но без значения О_О ?! WTF?) повернут юнит в сторону скорпа... потом дает етому юниту абилку..(скилл ) ну походу штыки +),потом идет приказ юзнуть етот скилл на R2I(DistanceBetweenPoints(lnM,lMP))/100)) насколько я понял хотя я непонял.. на какуюто точку которая обозначает растояние от кастера до цели каста ну до точки на которую нажали когда кастовали скилл делёное на 100.. вобще не оч ясно ) хотя вот call IssuePointOrderByIdLoc(bj_lastCreatedUnit,OrderId("impale"),lMP) точный приказ кастануть "impale" Штыки.. на IMP точку скила.. можите обьяснить ) для общего развития так сказать.Потом короч нужно подождать время равное растоянию от кастера во время каста до точки на которую нажали деленое на 4000.. почему на 4000 неясно ну а потом проиграть анимацию как скорп
вырылся из земли.


О_О помоему я понял call SetUnitAbilityLevelSwapped('A075',bj_lastCreatedUnit,(R2I(DistanceBetweenPoints(lnM,lMP))/100)) - ето указывает какая длина штыков должна быть ? А такое вобще можно изменять?) параметры скилы как тебе хочется, или там оно как бы устанавливает лвл етого скила.Так сколько же скилов нужно зделать на все все возможные нажатия? Максимум 7 штыков получается каждый примерно какраз на 100 аое верно?.. а че то я туплю или 1 скилл просто 7 лвл и в кажом лвл ранж на 100 растет.

Извините за неконструктивность.


Еще у меня вопрос, IceFrog что Неумел обнулять значение переменных ? Нафиг в каждой следуещей функции другие локалки О_О так можно запутатся что повестися проще )), или раньше нельзя было обнулять ?

0

иза етих обозначений жутко не удобных ITQ,IMP .. хрен что поймеш ))
да там не так уж и много

он создает в позиции скорпа дамии юнит смещение на -100 непонял зачем..
чуть-чуть назад, чтобы шипы были с места?

и ,LID лид ето real Но без значения О_О ?! WTF?)
угол между точками, глянь выше.

почему на 4000 неясно
скорость передвижения, 4000 на одну секунду

ето указывает какая длина штыков должна быть ? А такое вобще можно изменять?) параметры скилы как тебе хочется, или там оно как бы устанавливает лвл етого скила.
уровень спелла, данного дамми-юниту, что непонятного?

Глядя на реализацию... очень кривая реализация :) Это ты откуда вытащил?

0

opendota v.6.41 =) с xgm.ru скачал.И еще, если тебе совсем не трудно +) ответь на те вопросы что находятся вон в тех ОгрАмАДных ) постах. ОЧ нада )

0

Что тяжело ? +( ну блин я целый день жду.Непонятно де вы лазите, как у меня настроение делать мапу так вас нет =( щас плакать буду ыыы.

0

local group g=GetUnitsInRangeOfLocAll(512, GetUnitLoc(GetTriggerUnit())) не нравится мне эта строка
функция GetUnitsInRangeOfLocAll ссылается на функцию GetUnitsInRangeOfLocMatching

вот она в blizard.j :

function GetUnitsInRangeOfLocAll takes real radius, location whichLocation returns group
return GetUnitsInRangeOfLocMatching(radius, whichLocation, null)
endfunction


А сама функция GetUnitsInRangeOfLocMatching ссылается на другую функцию GroupEnumUnitsInRangeOfLoc:

function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
local group g = CreateGroup()
call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
call DestroyBoolExpr(filter)
return g
endfunction


В принцыпе последняя функция верна, но всётки чутка её подправим:
local group g=CreateGroup()
local boolexpr b=Condition(function и тут указываешь функцию)
call GroupEnumUnitsInRangeOfLoc(g,location,radius,b)
call DestroyBoolExpr(b)
set b=null //Вот тока я не помню нужно ли БулЭкспр обнулять . . .

Пример:

function Filter takes nothing returns boolean
return(какое-то условие)and(можно еще какое-нибудь условие) //и   т.д.
endfunction

function не важно какая takes nothing returns nothing
. . . //Какие-нибудь еще переменные
local location p=GetUnitLoc(какой-нибудь юнит) //вокруг этой точки будем выбирать юнитов
local group g=CreateGroup()
local boolexpr b=Condition(function Filter) //Допустим так назовём её . . .
call GroupEnumUnitsInRangeOfLoc(g,p,100.,b)
call DestroyBoolExpr(b)
. . . //Какие-то действия
endfunction

Либо, если тебе не нужны никакие условия, тогда не надо создавать никаких boolexpr , и не надо создавать лишних функций (в нашем случае Filter)
а в строке:
call GroupEnumUnitsInRangeOfLoc(g,p,100.,null) //Тупо ставить нуль вместо условий
______________________________________________________________________________________________________________________________________________________________________________________

local real a=Atan2(GetLocationY(p)-GetUnitY(u),GetLocationX(p)-GetUnitX(u))

Убедись между чем нахоишь угол: между юнитом и точкой или точкой и юнитом. Это очень важный фактор!
у тебя стоит между точкой и юнитом
______________________________________________________________________________________________________________________________________________________________________________________

Исправлю пока твою нижнюю функцию:

function Trig_Charge_OrKvAr_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
local location p=GetUnitLoc(u)
local group g=CreateGroup()
call GroupEnumUnitsInRangeOfLoc(g,p,500.,null) //Либо можешь добавить фильтрацию, как выше я показал.
local unit c=FirstOfGroup(g)
local real a=Atan2(GetUnitY(c)-GetUnitY(u),GetUnitX(c)-GetUnitX(u))
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveReal(udg_Hash,GetHandleId(t),2,GetLocationX(p))
call SaveReal(udg_Hash,GetHandleId(t),3,GetLocationY(p))
call SaveReal(udg_Hash,GetHandleId(t),4,Atan2(GetUnitY(c)-GetUnitY(u),GetUnitX(c)-GetUnitX(u))) //Я не стал создавать лишние переменные, лучше сразу записать результат в нужное место, так как на объявление переменных тоже тратится время. И я не стал брать точку от юнита c, а сразу вписал его координаты
call SaveGroupHandle(udg_Hash,GetHandleId(t),5,g)
call SaveUnitHandle(udg_Hash,GetHandleId(t),6,c)
call TimerStart(t,0.02,true,function Move)
set u=null
call RemoveLocation(p)
set p=null //Это ты забыл сделать.
set t=null
set c=null
call DestroyGroup(g) //Это ты тоже забыл сделать, кстати это более серьёзная утечка.
set g=null
endfunction
_______________________________________________________________________________________________________________________________________________________________________________________

Насчёт функции Move:

local real s=((LoadReal(udg_Hash,GetHandleId(t),2)-GetUnitX(u))*(LoadReal(udg_Hash,GetHandleId(t),2)-GetUnitX(u))+(LoadReal(udg_Hash,GetHandleId(t),3)-GetUnitY(u))*(LoadReal(udg_Hash,GetHandleId(t),3)-GetUnitY(u)))

Ты в курсе что даже если юнит с будет двигаться, то юнит u будет двигаться только в первоначальное (во время каста тоесть) место, где был юнит c?

Если да, тогда всё норм. (Хотя по идее так и надо — ты правильно сделал, по идее юнит должен лететь по прямой, а не за юнитом, куда тот побежит)

По поводу строки call UnitDamageTargetBJ(u,c,(125),ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL):
Опять ты эти BJ используешь, забудь про них. установи себе JassCraft (для версии 1.24 и выше) и почитай там blizard.j
в нём ты найдешь любую функцию

вот к примеру твоя BJ во что переводится:

function UnitDamageTargetBJ takes unit whichUnit, unit target, real amount, attacktype whichAttack, damagetype whichDamage returns boolean
    return UnitDamageTarget(whichUnit, target, amount, true, false, whichAttack, whichDamage, WEAPON_TYPE_WHOKNOWS)
endfunction


Едем дальше:

У тебя там строка local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1) 2 раза повторяется))

И зачем тебе local group g=LoadGroupHandle(udg_Hash,GetHandleId(t),5), тыж эту группу нигде в этой функции не используешь.

Ну а так, в принципе, ты молодец, функцию Move не плохо написал. Без грубых ошибок.

0

+_+ мм есть одно но =)) если цель куда то портанется к примеру.. то чел будет бежать вечно.. или нет. У него же стоит бежать на точку на которой чел а не на чела значит когда добежит до точки успокоится )) мне бы еще чтобы он топор вверх подымал.. орк воин можите меня еще по анимациям понатаскать )? и чтобы был повернут куда нада.. а то как то боком летит =) лол.

0

Так поверни. Ты хочешь сказать функции поворота не знаешь? >:(

0

у меня еще баг немогу 3 страницу в Oper-е открыть.. только в експлоере открывается ))) пишу на первой странице а читаю что написал в експлоере.. =_= а все потому что там лень авторизироватся XD.
И вопрос как мне забашить всех на 0.1 сек ? ну как бы масовый баш ? создавать юнита приказывать кастовать стун и удалять ? просто у мну как бы пасива.. чел бьет масовым домагом и микростунами постоянно. как такое зделать ?


Dragon27 ты как всегда ) Одна критика.. не так не сяк не так.. ты что незнаеш ? =) вобще я не обижаюсь уже привык но как то ето.. вон Mr_ILYAS оболютная помощь, Реальная помощь! =) я ему оч благодарен.. а ты вот .. от такой ">:(" xD.

0

Чтоб заставить юнита выполнить какую-либо анимацию:
call SetUnitAnimationByIndex(твой юнит, номер анимации)

чтоб узнать, какой номер тебе нужен, создай для удобства триггер, назови его a:

function Animations takes nothing returns nothing
local unit u=твой юнит
call SetUnitAnimationByIndex(u,S2I(SubString(GetEventPlayerChatString(),0,2))) //устанавливает номер анимации, который ты написал в чате (считаются только первые 2 символа (цифры) которые ты написал, начиная отсчёт порадка строки с 0-вого символа (не включительно) )
set u=null
endfunction

function InitTrig_a takes nothing returns nothing
local trigger a=CreateTrigger()
call TriggerRegisterPlayerChatEvent(a,Player(0),"",false) //Перевожу это событие: Игрок 1 (тоесть ты) написал "" (пусто) как подстрока (тоесть как неточное совпадение) То есть среагирует на любой текст.
call TriggerAddAction(a,function Animations)
endfunction

И ту цифру — номер анимации, который ты написал будет выполнять юнит

0

)) выкинь оперу, и установи Мозилу)) Firefox которая))

во блин Ifolder сайт накрыли менты((
какой-то урод разместил запретную информацию на этом хостинге

0

http://www.rapidshare.com/ вот тебе отличный хостинг =) правда до 100 метров но я не думаю что ты что то такое ограмадное решил выкладывать.
Вобщем.. следующим номером нашей програмы.. будет скилл который:
при касте подкидывает всех на 300 (метров ?)) в воздух (впринцыпе как у кунки) после чего они просто падают на землю и получают урон.Скилл простенький но как зделать чтобы чел летал ? ето нужно как бы штыки использовать те что у жуков всяких.. из стандартного варика но как зделать чтобы небыло анимации никаких штыков.. я попробывал убрать просто у скила анимацию но когда до чела скилл доходит всеравно 1 ШТык ) появляется. =( может нужно им всем просто добавить и тут же отнять "Ворон превращение" а потом установить выстоу 300 например за 1 секунду ? а потом if высота юнита из групы g=300 then установить высоту 0 за 1 сек..

0

да делай через таймеры, через действие call SetUnitFlyHeight(юнит,(текущая высота юнита)+какое-то значение,0)

0

=((( да что ж такое =( опять ему не так.. ну зделал как ты говорил у мну вроде все правельно, неправельно только UnitDamageTarget(whichUnit, target, amount, true, false, whichAttack, whichDamage, WEAPON_TYPE_WHOKNOWS) я там попросы написал там где я хз че писать.. но дело не в етом ему условие не нравится и все тут.. :

function aCondition takes nothing returns boolean
local unit u=LoadUnitHandle(udg_Hash,0,0,u)
return IsPlayerEnemy(GetOwningPlayer(u),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())>0.405)and(IsUnitVisible(GetFilterUnit(),GetOwningPlayer(u)))and(IsUnitType(GetFilterUnit(),UNIT_TYPE_MAGIC_IMMUNE)!= true)and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))
call FlushChildHashtable(udg_Hash,0)
set u=null
endfuction

function Move takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),6)
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local real a=LoadReal(udg_Hash,GetHandleId(t),4)
local real s=((LoadReal(udg_Hash,GetHandleId(t),2)-GetUnitX(u))*(LoadReal(udg_Hash,GetHandleId(t),2)-GetUnitX(u))+(LoadReal(udg_Hash,GetHandleId(t),3)-GetUnitY(u))*(LoadReal(udg_Hash,GetHandleId(t),3)-GetUnitY(u)))
call SetUnitX(u,GetUnitX(u)+10*Cos(a))
call SetUnitY(u,GetUnitY(u)+10*Sin(a))
if(s<=225)then
call UnitDamageTargetBJ(u,c,(125),ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL)
call UnitDamageTarget(u,c, (125), true зачем ето ?, false и ето ?,ATTACK_TYPE_NORMAL,Тут че ?),DAMAGE_TYPE_NORMAL)
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
set u=null
set t=null
set c=null
endif
endfunction

function Trig_Charge_OrKvAr_Actions takes nothing returns nothing
local unit u=GetSpellAbilityUnit()
call SaveUnitHandle(udg_Hash,0,0,u)
local timer t=CreateTimer()
local group g
call GroupEnumUnitsInRangeOfLoc(g,p,500.,function aCondition)
local unit c=FirstOfGroup (g)
local location p = GetUnitLoc (c)
local real a=Atan2(GetLocationY(p)-GetUnitY(u),GetLocationX(p)-GetUnitX(u))
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveReal(udg_Hash,GetHandleId(t),2,GetLocationX(p))
call SaveReal(udg_Hash,GetHandleId(t),3,GetLocationY(p))
call SaveReal(udg_Hash,GetHandleId(t),4,a)
call SaveGroupHandle(udg_Hash,GetHandleId(t),5,g)
call SaveUnitHandle(udg_Hash,GetHandleId(t),6,c)
call TimerStart(t,0.01,true,function Move)
set u=null
call RemoveLocation(p)
set p=null
set t=null
set c=null
call DestroyGroup(g)
set g=null
endfunction

0

после return (всмысле всё что на следующей строке и дальше) действия не выполняются:
call FlushChildHashtable(udg_Hash,0)
set u=null


Если ты видел это у меня, как я это делаю . . . Что ж. . . я тогда не знал ещё этого.
Фунция завершается сразу как только выполняется то ради чего её вызвали

Ты вызывал её для того чтоб она вернула "булинку", ты её вернул и функция считает мол типа: всё . . . дальше я ленюсь, чем смогла тем помогла . . .
_______________________________________________________________________________________________________________________________________________________________________________________

По поводу:

UnitDamageTarget(u,c,D,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_SHADOW_STRIKE,WEAPON_TYPE_METAL_HEAVY_SLICE)

А хер его знает . . .)) я сам не разобрался в ней
Знаю одно, самы первый параметр после false отвечает за тип урона:
• обычная
• герой
• артилерия
• сила тьмы
• дальний бой
• магическая
• заклинание (все герои имеют к нему имунитет 25%)

кароче все эти штуки можно настроить в игровых константах
в таблице получения урона

0

да нет ты непонял )) у меня вылетает целая туча ошибок.. 53 штуки.. +_+

0

http://rapidshare.com/files/365082946/Avangard.w3x.html

Там ничего почти нет ) я скопировал тригеры из твоих наработок чтобы сверятся.. на них внимания не обращай я потом удалю )

0

Dragon27 ты как всегда ) Одна критика.. не так не сяк не так.. ты что незнаеш ? =) вобще я не обижаюсь уже привык но как то ето.. вон Mr_ILYAS оболютная помощь, Реальная помощь! =) я ему оч благодарен.. а ты вот .. от такой ">:(" xD.
Ну как можно спрашивать, как повернуть юнита?

ЗЫ: я ещё ленивый очень просто :)

я попробывал убрать просто у скила анимацию но когда до чела скилл доходит всеравно 1 ШТык ) появляется.
если ещё и убрать эффект (тот самый шип) они вообще в воздух подлетать не будут :)
Моделированием можно, в принципе, решить, если уметь.

А хер его знает . . .)) я сам не разобрался в ней
WEAPON_TYPE ни за чё вроде не отвечает, по крайней мере в текущей версии он нафих не нужен, прописать дефолтовые и забить.

А вот DAMAGE_TYPE, насколько я помню, отвечает за тип ущерба. Можно сделать магический (магик-иммуны не будут получать урона) и ещё какой-то.

0

ппс )) спецом зарегался в аське.. вобщем вот мой етот как его.. ну код короче =) :623038929
я вобще пользуюсь SKYPE как по мне намного удобней, хотя я думаю я просто к нему привык.

0

О_о нююю я тоже линивый, но не до такой степени.Я люблю дрыхнуть нифига не делать и думать о глобальных проблемах общества =).Кстати если вам интересно положение в мире.. хотя я еще подросток мне очень интересно, то советую посмотреть парочку очень как бы ето сказать.. "Осведомляющих" фильмов,они откроют вам глаза.. конечно врядли вы чтото начнете делать или сможите чтото изменить, но чтобы вы хотя бы знали: перове http://kino-online.in.ua/documentary/zeitgeistrus.html или дух времени.. увидите как вам дурят на каждом шагу ) очень очень очень нужно посмотреть далее http://video.mail.ru/mail/www.kyznesov/550/552.html Тут уже про доллар хотя в 1-вом фильме о нем тоже идет речь но не так обширно вобщем.. тоже смотреть ну, и хотя я в ето не особо верю так как не выходит но... http://video.mail.ru/mail/angel-a1000/212/214.html если етим реально можно пользоватся хотя ето просто не постижимо.. и достаточно тяжело в ето поверить, но в бога ведь вы верите ) вот попробуйте и в ето если будет работать =)) щитайте вы "избранные" =).

0

О_о нююю я тоже линивый, но не до такой степени.
по-моему, это совсем ещё не высокая степень

Я люблю дрыхнуть нифига не делать и думать о глобальных проблемах общества =)
я Вариком последний раз занимался, как минимум, в прошлом году. И сейчас очень неохота бросать всё то, чем я занимаюсь (мало отношения к играм имеет), и влезать в дебри кода. Лень, короче говоря.

советую посмотреть парочку очень как бы ето сказать.. "Осведомляющих" фильмов
у-у-у...

хотя я еще подросток
Могу посоветовать не смотреть эти фильмы.

но в бога ведь вы верите )
Я не верю :)

0

local unit u=GetSpellAbilityUnit()
call SaveUnitHandle(udg_Hash,0,0,u)
local timer t=CreateTimer()
local group g
call GroupEnumUnitsInRangeOfLoc(g,p,500.,function aCondition)
local unit c=FirstOfGroup (g)
local location p = GetUnitLoc (c)
local real a=Atan2(GetLocationY(p)-GetUnitY(u),GetLocationX(p)-GetUnitX(u))


тебе ведь уже говорили?
все локалки должны быть вначале. Исполняемый код должен идти после них. Call'ы между локалками недопустимы.

0

Я сам ленивый человек, но то что я тут помогаю, идёт действительно от души
Значит я ещё ленивее, чем мне кажется :(

0

ЛОЛ =))).
Интересно кто же теперь будет развивать тему ) я теперь с Mr_ILYAS по аське общаюсь )).
А насчет call-(ов) ПОЧЕМУ?)

Кстати я тоже атеист XD.

"Могу посоветовать не смотреть эти фильмы." Почему ?) Хорошие фильмы, а вобще американцы скоро захватят мир.. вот будет весело. Жаль только не нам XD.

0

А насчет call-(ов) ПОЧЕМУ?)
Так надо :)

Хорошие фильмы
Эффектные. Красивые и захватывающие. Но ненаучные. И источником достоверной информации служить не могут. Для людей, плохо разбирающихся в теме (а таких большинство), очень опасны к просмотру.
Как в анекдоте про Нью-Йорк и Луну.

Интересно кто же теперь будет развивать тему ) я теперь с Mr_ILYAS по аське общаюсь )).
Может у каких-нибудь новичков появится пара идиотских вопросов, или у продвинутых возникнут сложные проблемы, пригодные для обсуждения. Вечно тема просыхать не будет :)

0

Ну вы же не сами с собой переговаривались, а с набигавшими новичками :)

0

Dragon27 ты перебориш свою лень чтобы ответить на идиотские вопросы ? =), а я уже почти зделал сам обычный скилл ) не особо интересный но и не совсем приметивный от.. правда он не работет вот щас жду пока Mr_ILYAS найдет что не так )) ошибок нет вроде все верно.. а не работает и хоть ты тресни ) могу кинуть если интересно.

0

Dragon27 ты перебориш свою лень чтобы ответить на идиотские вопросы ?
Какие?

0

я ж говорю ) " идиотские" =)) я про новичков ).
В том смысле что они будут приходить на етот форум и задавать идиотские вопросы например.. КАК ЗДЕЛАТЬ ТАК ЧТОБЫ НЕ ПОЯВЛЯЛОСЬ ГЛАВНОЕ ЗДАНИЕ С РАБОЧИМИ АААА!!! ХЕЛП!! А!!! ))

0

SaRoF, тебе на какие вопросы ответ нужен? ( только не кидай сюда стопицот строк кода с просьбой "Что не так?" )

0

Ну блин..почему всегда нужно вот такие простые вещи обьяснять ? =(
Я просто спросил тебя из интереса.. если новички будут задавать тебе идиотские вопросы.. перебориш ли ты свою лень чтобы отвечать на такое етакий бред ).
Вот и все ) от тебя мне помощи не нужно впринцыпе потому что форум оч не удобный.

0

Я просто спросил тебя из интереса.. если новички будут задавать тебе идиотские вопросы.. перебориш ли ты свою лень чтобы отвечать на такое етакий бред ).
Ааа! Контекст не очень понятный был.

0

!!! ИЗВИНИТЕ ЧТО НЕ БЫЛО ТАК ДОЛГО=) и за капс тоже))
Вообщем хелликоптер на лбу лучше рану=)
т.к. не в тему на лбу у него Death quest)
лучше на руке сделать

Кстать у меня вот идейка появилась, но не могу её воплотить..
как сделать чтоб при столкновении двух юнитов , тот у кого скорость меньше отлетал?

0

KiLLiNG_SPREEE
мне тебя называть
KiLLiNG_SPREEE
Дядя XD
или
Mr_ILYAS?
кстати я на xgm.ru zZzArTeSzZz если что=)

0

хы=) а ты какие карты выпустил?

0

кстать где карабас Оо чёт всё меньше и меньше людей становится...

0

Mr_ILYAS Вопрос ) че ты на форум пишеш а в аське офф ?

0

Скажу тебе честно, что до тебя в аську заходил раз в месяц.
Аналогично. В последнее время я в аську вообще месяца 2 назад заходил :)

0

Херню в последнее время обсуждаем, думаю лучше всем потереть свои посты. . .

0

Да ладно тебе, это ж не Игромания. :)

0

скажите как сделать предмет чтобы он ничего не делал,а при использовании исчезал?я пытаюсь сделать ниче не получается (а щас вообще при взятии исчезает )))
помогите

0

warbossik, делаешь предмет юзабельным, т.е чтобы на него можно было нажимать и не даешь ему никаких свойств. Допустим твой предмет - Щит Рыцаря
Создаем триггер:
Действие:
Боевая Единица - Использует предмет.
Условие:
Используемый предмет равно Щит Рыцаря
Событие:
Убрать Используемый предмет у Использующего героя.

0

ващет достаточно дать предмету 1 заряд как у свитка, и чтоб итем ничо не делал и он бует тупо исчезать при использовании

0

warbossik, делаешь предмет юзабельным, т.е чтобы на него можно было нажимать и не даешь ему никаких свойств. Допустим твой предмет - Щит Рыцаря
Создаем триггер:
Действие:
Боевая Единица - Использует предмет.
Условие:
Используемый предмет равно Щит Рыцаря
Событие:
Убрать Используемый предмет у Использующего героя.


спс правда я сам потом до этого додумался )))

ващет достаточно дать предмету 1 заряд как у свитка, и чтоб итем ничо не делал и он бует тупо исчезать при использовании

делал ничего он остается

0

ващет достаточно дать предмету 1 заряд как у свитка, и чтоб итем ничо не делал и он бует тупо исчезать при использовании

делал ничего он остается

warbossik
надо было поставить галку "может закончится"

0

Криво ты делал значит
=\

0

Я би бек с картой Куда швирнуть вот ссылка http://epicwar.com/maps/129040/ куда еще мона?

0

ужасная карта, гуи должен умереть

0

Как называется вид джасса который через триггеры пишешь

0

Та ёпт...НАполучал п.и.з.д.ю.л.я.т.о.р.о.в. от модеров XGM
за то что хотел Сайт оживить в целом=)

так KILLING_SPREEE
чё там с физикой

0

так KILLING_SPREEE
чё там с физикой

Совсем не слушается, да? :)
Давно уже должен был сделать, надо бы его наказать. :)

Как называется вид джасса который через триггеры пишешь
А подробнее?

0

Custom script он называется


По поводу физики: Яж сказал что щас не могу, нету времени пока. Может будет настроение начну.

0

По поводу физики: Яж сказал что щас не могу, нету времени пока. Может будет настроение начну.
Хны-хны

0

Mr_ILYAS Умник зделай хотяб что-то а такие карті как дота зделает любой нуп

Де хелекоптер пропал?

0

Wortecs я бы не советовал тебе нагонять на Ильяса )), потому что ето обсолютно безосновательно и глупо ) т.к карту он может зделать много круче твоей,просто лень великая весчь ) и не подумай что я "Подлизываюсь" просто так оно и есть.
А насчет карт как дота.. вот зделай карту как дота я посмеюсь )) только чтобы там был такой же баланс и скилы на тригерах а карта твоя реально кал ) не обижайся но так и есть.Нужно сначала обучится всем примудростям картостроения, а потом уже делать карту.

А теперь насчет меня.. я очень долго ждал пока ты наконец войдеш в аську, но пока безрезультатно.Вобщем извеняюсь что я такой безсовестный егоист но может мы продолжым мое обучение? А то ждать надоело =(.

0

Ой сори, я забыл про асю)) лан завтро жди

Wortecs насчёт доты ты реально перегнул, уж больно громко звучит фраза: "а такие карті как дота зделает любой нуп"

Кстати, мне в той мапе понравилось как там речка сделана. Уж больно реалистично смотрится))

HELLICOPTER покинул нас(( Наверно он не хочет изучать Jass. . .
Я ему писал когда-то в аське . . . мол возвращайся на форум, и изучай с одним парнем (я про SaRoF) jass, пока идёт горячо это обучение, но он так и не появлялся. . .

0

Так я с камерами раньше не работал, мне нужно зафиксировать высоту и угол обзора для игрока. Как это сделать?

Там такой огромный выбор действий, что я запутался что к чему.

0

HELLICOPTER не ушёл=) у него просто появилсь дела(учёба экзамены) я ещё слышал он уехал куда то
Вообщем он заходит сюда из-за меня (он мне лоад скрин делает)

0

ГИППЕР МАППЕР Я пеинтом лоад скрин делаю, мне бі помощь по карте б
Mr_ILYAS ниче не громко Карты типа доты парашша полная просто нужно что бы не лень было делать предметы, героев
SaRoF Мне тоже лень у мну там много чего недоделано на Версии 1.1.0 переделаю большую половину ландшарфа карты, Если я выложусь на всю силу ето будя что-то но лень великая вещь!

0

Кстати еще однозаметил на http://www.epicwar.com/maps/ найболие скачиваемые карты там где есть слова Dota Naruto Wow Green TD Bunker

0

Mr_ILYAS У мну в карте баг в карте в лоадскрине есть?

0

Wortecs ухах то-то я вижу твой лоадскрин....
а помочь с мапой не могу=( на xgm такой-же недоуч(не в обиду) висит как и ты=) + проэкту помогаю одному

0

ГИППЕР МАППЕР Покаж свою мапу мего читер ты наш, и у мну с лоадскрином на компе все хорошо просто у друга часть непоказивает

0

Так я с камерами раньше не работал, мне нужно зафиксировать высоту и угол обзора для игрока. Как это сделать?
Периодическим триггером фиксируешь нужные параметры. Field of View, ещё чё-то там.
Lock Camera Target (либо Camera Source) вроде не подходят для твоей задачи.

Я пеинтом лоад скрин делаю
Лучше, конечно Фотошопом :)
Но можно и чем-нибудь попроще, например, XnView.
Или PaintNet (правда не помню, есть ли у него tga)

0

Мдаа.. Wortecs тригеры ты половину непонятно от куда скопировал, другая просто издевательство )) например 5 тригеров обсолютно одинаковых на воскрешение героя.Что нельзя было чуть чуть подумать и зделать все в одном тригере ? Даже учитывая что ето ГУИ, ето Ужасно написаное Гуи), вот как зделать елементарное воскрешение героя(может можно как то иначе но на тот момент как я писал на гуи, я бы напсал так):
Меняеш Событие на Generic Unit Event юнит умирает.. и все ) а текст пишеш игроку у которого умер юнит, т.е Display текст To Unit ovner (Dying Unit) и все тут.. тоже самое со всем остальным.Я понимаю что карта долеко не доделаная, но до идеала ей очень, очень далеко.И не нужно обижатся и делать выбрыки мол : Скинь свою карту, готов поспорить в 100 раз хуже ) и т.д.. т.к у меня просто нет карты ) у меня есть небольшая недоделаная карта но ето какраз таки типа доты ) но на захват флага.. там 2 способа победы.. но как я уже говорил карта не доделаная но зделана на гуи так что думаю ты разберешся.Кидать ?)

0

Wortecs
Ёп....Хочешь я тебе раскрою мудрость?
"Хорошие Карты никогда не делаются за неделю-две"!!!!!!!!!!!
+ Я не могу выпустить карту из-за скрина, который общеал сделать пол года назад хеликоптер=(

0

в общем все кто хочет чтоб у него была хорошая карта, должен знать, что гуи не существует, он должен здохнуть.

Редактор триггеров это jass. Хотя это не так, но если навязывать себе эту мысль то будет вам щастье.

0

Карта может быть супер пупер с новоротами и крутыми скилами, но без смысл ето тоже очень важно. Чтобы карта была уникальной ) хотя бы в чем-то, а желательно полностью.

p.s Ильяс, почему ты в сети либо утром либо ночью ?) когда я буду карту делать ?

0

НАРОД Я сажусь за карту думаю к 15 Апреля будет карта Добавлю более намученый сюжет, 120 предметов, минимум 5 квестами Постараюсь максимально имправить дизбаланс, нормально зделаю ланшарфт и добавлю монстры пбольше
SaRoF Порашные карты типа доты не люблю с детства, Дота хороший пример
Dragon27 Paint и Right Click Image Converter

0

Что-то я не понимаю, если дота такое гавно ? Почему же все вокруг только в нее да и играют ? Может они все дибилы или как ? и чемпы по ней проводят непонятно почему.. карта ведь хуже некуда,и есть же много действительно интересных карт например твоя XD
.. может ты так ее не любиш потому что не умееш играть (хотя глупо, и мало вероятно) или.. ну я незнаю что то " не хорошее " тебя с ней связывает ? Карта действительно интересная и сколько не играй все равно надоест xD.

До 15 апреля ты не зделаеш хорошую карту и ето точно.. если начнеш учится сейчас то к.. ну например к новому году )) 2011 (если он настанет конечно, а то все орут конец света XD) здлаеш хорошую довольно или отностельно остальных.. хорушую РПГ.

Чтобы тебя было на что ровнятся: http://xgm.ru/p/wc3/dark-invasion ето идеал ) хотя лично меня не очень впечетлил.. потому что играл я от силы 2 часа потом надоело (т.к. играл сам) и http://world-editor-tutorials.thehelper.net/maps.php?view=263 ето действительно интересная орпг Но там нет квестов.. хотя она и так интересна ) довольно популярна была в батл нете в свое время.. на алкаре естестно.

А вобще ОРПГ ето не интересные карты.. чес слово надоедает ты можеш прокачать там даже 2-3 персов до бешенного лвл.. но потом всеравно кинеш.. намного интерснее играть в карты типо таких (ИМХО) :

Варлоки ето фор фан )) и почти не надоедает )) я в ето тоже относительно долго играл

Битвы крепостей Ето очень очень очень )) и еще раз очень интересная карта на стратегию и тим плей.. тут нужно вести постоянные подщеты и делать все быстрее,мудрее и хитрея противника ) обожаю ету карту вот щас кстати буду играть )). Я неуверен малек какая ето версия... та или не так но последняя вроде 10. так что..

и последняя ето:

Фермеры Vs Охотники играл не очень много в ето, но воспоминания хорошие ) защиты нет, тригеры отвратительные )) но игра класная )) и весёлая наверно большинство скажут что отстой но мне было интересно сыграть 8х2 или скоко там ?) есть много еще Тагов подобных но етот мне больше всего запомнился.

0

Ааа )) и еще забыл ) вот тебе, короче учись!:

Осваиваем jass
» Локальные переменные
» Условия и циклы в jass
» Функции в jass
» Устройство триггера в jass
» События с малым периодом
» Полярные координаты (ликбез)
» Оптимизация: утечки памяти

я сам все ето прочитал.. все понял.. и забыл XDD ухахахаха хахахаха вот.. =) но если ты не можег зделать нормальный тригер на гуи врядли у тебя ето получится на джазз.. так что я бы тебе советовал поексперементоровать из зделать хотябы парочку скилов нормальных, даже простеньких на обычным ГУИ (надеюсь ты знаеш что ето стандартный редактор (ОПС пробалтался)).. например скилл на передвижения юнита.. юнит кастует скилл и двигается на точку на которую кастунл скилл.. очень просто.Я сам очень долго не мог понять как в гуи обозначить точку на которую кастуют скилл, так вот открою тебе секрет.. обозначается так )):
Создаеш переменную P например и пишеш P=() пустое место вобщем, вот так вот.

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

0

SaRoF тебе еще не проч HTML теги подучить, чтоб таких ссылкок не давал ))

Вот к примеру тег "слово — ссылка" :

образец:
< а href=httр://wvvw.xgm./project.php?id=100&page=jass_local_vars>Локальные переменные < /а >

(вокруг "галочек" уже пробелы не ставь, это я тебе написал с пробелами, чтоб показать, как должно быть)

Результатом чего будет:


В самом низу под кнопкой "ответить" есть образец, ищи: Cссылка на эту страницу. Там как раз подленные символы, в отличии от того, что я тут написал. Мне пришлось писать с пробелами и некоторые буквы русские. Иначе бы этот текст превратился в конечный результат.

0

Спасибо.. и еще.. ВРУБИ АСЮ наконец )) сколько можно ?) ты можеш поставить чтобы она автоматически врубалась ? я щас скилл рыцарю пытаюсь зделать а он гад бежать не хочет.
Добавлено 78 секунд спустя:
Офигеть я кастера не сохранил, но зато загрузил и нет ошибки )) я фигею )) потому и не бежал.. терь бежит.. еще нуна поставить онимацию и зделать чтобы юнитов толкал и бежал быстрее + спецефект.. короче дофига всего еще зделать)

0

Маладец уже исправил свои посты))

0

SaRoF Может ты просто не понимаеш люди разные то, мне например жанр РПГ больше нравиться комуто ТД комуто дота И еще кто сказал что я хочу зделать мего карту типа доті шо её болеть будут, я карту делаю для себя

0

Не вижу смысла делать карту для себя.. если карта будет не мего мего )) как ты говориш.. если ето будет тупая карта в которой не будет смысла + если ты сам ето все делал самому все ето же проходить ? Просто абсурд.Бред сивой кобылы )), а насчет того что люди разные я конечно же понимаю но у многих людей с обсолютно разными интересами мнения довольно часто сходятся ) например насчет доты.А что толку делать что то обсолютно безкрасочное и скучное ? Ето просто трата времени которая не принесет удовольствия и я тебе ето гарантирую.. хотя я незнаю какой ты человек О_О может есть такие люди которые любят тратить время в пустую.В любом случаее я щитаю что ты не прав если ты не собираешся делать нормальную карту не стоило и садится.

0

Да когда же вы научитесь грамотно писать, а!?

0

Ну, что писать такие вещи нужно бы сначало "грамотно" с 2 буквами м написать XD.

0

"Грамотно" от слова "грамота", а не "грамм".

И не "что писать", а "чтобы писать".

0

Может у кого в практике было такое.

событие
Герой (юнит) применяет способность
условие
Герой (юнит) обладает предметом = да
действие
Передать предмет другому герою (юниту) на котором использовалась способность.
КАК РЕАЛИЗОВАТЬ ЭТО ДЕЙСТВЕ ?

jass - ом не владею если можно без него. Помогите плиз, редактор русифицирован, может просто не правильно переведено действие.

Подскажите еще такое.

Юнит получает предмет и отмечается на мини карте.

0

sirius-sir у меня к тебе стандартный вопрос :), хочеш ли ты чтобы твоя карта была действительно интересной? Если да, то советую все же учить джазз потому что на ГУИ (стандартный редактор) ты ничего путнего не зделаеш.
Вобщем если очень лень учить джазз то советую просто не делать карту =( так как вложеные силы себя не оправдают, чтобы учится джазу тебе нужно прочитать материал который написан в ссылках, которые я кидал в моем посте выше "30.03.10 21:06"

0

но если тебе чисто нечего делать, то пожалуйста )) помогу мне тоже щас нечего делать ))

Знач в действиях делаеш такое.. Удаляеш етот придмет у кастера(героя) И добавляеш Цели каста етот предмет.. и все ничего тяжелого Ну и чтобы было досканално создаеш еще функцию If,then,else и пишеш.. if (target) цель каста не имеет пустых слотов then создать предмет At позиция target.

все елементарно но я непомню какие там функции на гуи но суть ты понял.. я надеюсь.

0

Вот так всего за месяц средненький гуишник превращается в прожженного джассера с большими яйцами.

0

Ето ты про меня чтоли ? )))) Я просто говорю как есть )), + ето мнение многих ))- теперь и мое мнение, потому что я посмотрел как переводится гуи, и скажу что ето ужасно )).Я совсем на "Прожженного джассера" не тяну )), разве что под бафами и зельями :).

0

Зато яйца теперь как у бегемота))

0

хорошо вопрос по другому )
где найти ту самую строчечку с пометкой "каст на юнит" ) потому как обыскал весь этот быдло код и не нашел чего то похожего в своей версии редактора.
нет строчки проверки каста на юнит.

0

Хочу посмотреть на что вы реально способны, а так же в плане качества выполнения работы, в частности я обращаюсь к Dragon27 и Dr. Manhattan.
Хотя и SaRoF тоже можешь над ним посидеть.

Сделаете задание? :
Написать код для скила:

Юнит пускает снаряди в виде торнадо, тот летит до указанной точки. И пока он летит то засасывает всех на пути в центр себя, и все юниты засасаные летят в конечную точку торнадо, кружась вокруг него (довольно быстро).
По достижению точки торнадо поднимает всех в воздух (по прежнему вращая врагов вокруг себя) каждого на рандомную высоту, и далее торнадо через 1.5 сек рассеивается и все отлетают (как при центробежной силе)
Чем выше юнит взлетел тем дальше он отлетает (а точнее падает)
и в зависимости с этим наносить урон.

Ну. . . данные скила, чтоб не путатся, будут такие:

• Расстояние полёта торнадо и радиус применения каста до 1000 на всех, ну скажем, 4 левелах.
• Высота подъема юнитов в конце между 200 и 500 (рандомно)
• урон (магический) если юнит упал с высоты 200 (минимальной) то по левелам: 50, 100, 150, 200
а максимальный урон (если с высоты 500) то на 100 больше чем при минимальной высоте падения.

к примеру:
На 4 левеле при падении с высоты 350 юнит получит 250 урона.

Но мне главное хочется проверить ваши качественные способности.

Не поленитесь, и сделайте это, на мой взгляд, не трудное задание. А я хочу оценить ваше качество.

0

Зачем тебе это?

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

0

такое ощущение что я тут по китайски пишу, яж явно написал зачем это всё. . .

0

Не по китайски.. ты как всегда.. На татарском XD.. а скилл я смагу зделать, но не полностью, и мне лень жутко.. чтобы вихрь их притягивал да ? Ну движение вихря делается елементарно, и чтобы притягивал нужно просто зделать в функции движения (u=вихрь,с=Random in group g) If,Then.Else
if (DistanceBetweenPoints(GetUnitLoc(u),GetUnitLoc(c)<=200) then
(Выбрать каждого из групы G и совершить действия)\\ указываем функцию с действиями а там пишем..

local unit c=PickedUnit() или как там ? ну вобщем выбраный юнит
local real a= Я незнаю чему оно равно )) если нужно чтобы просто притягивал юнитов то по формуле Atan2 А чтобы по кругу вертел я незнаю ).
local real i=GetRandomInt(200.,500.)
call SetUnitX(c,GetUnitX(c)+8*Cos(a))
call SetUnitY(c,GetUnitY(c)+8*Sin(a))
Насчет подьема юнита наверно так
if (f=GetSpellTargetLoc()) (DistanceBetweenPoints(GetUnitLoc(u),f<=20)then
call SetUnitFlyHeight(c,GetUnitFlyHeight(u)+i,1.5)
ну а потом они же должны разлетатся и все такое.. тут я опять же так прямо не скажу =(.

Добавлено через 3 минуты:
Копец половину текста не написал.. долбаный форум.. пришлось еще раз печтать.

0

Зачем тебе проверять наши способности? И зачем мне это надо? И как убрать кнопку в магазине?

0

ну.. ето помоему скилл ( я про кнопку выбора героя) Береш и убираеш етот скилл )) и все тут.. а что бы магазин выбирал гера наверно нужно зделать тригер мол.. если ктото входит в область где стоит магазин то добавить ему етот скилл (выбор героя), приказать юзнуть на гера, и сново удалить.. наверно так.

"Зачем тебе проверять наши способности?"
Может он хочет замутить глобальный проект)).Кстати я думаю что ето так, потому что он мне недавно говорил про карту которую хочет зделать что интересно у меня тоже не так давно идея была тупо такая же ))).
Вобщем будет что то типо такого:
KiLLiNG_SPREE and Форумчане PlayGround Представляют:

. PROJECT
. AVATAR:
. The Four Eleventals

:))
Плять.. я так красиво отступил.. а оно всеравно влево лезет ну БЛИН! =(

0

Плять.. я так красиво отступил.. а оно всеравно влево лезет ну БЛИН! =(
вставляй неразрывной пробел
           вот так :)

Хочу посмотреть на что вы реально способны, а так же в плане качества выполнения работы
У-у-у...
Ты думаешь я сумею перебороть свою первобытную лень? :)

Ща соберусь и прочитаю, что ты там предлагаешь.

0

Кинте все возможные нароботки на инвентарь на патч 1.24с

0

"вставляй неразрывной пробел
вот так :)"
Клево ты обьяснил: Вот так ))) если просто зажать пробел то оно будет отступать вбок до бесконечности.. оно переходит на след строку только если пишеш. а когда я нажал Enter and дето 10 пробелов.. оно обратно прилетает, всмысле здвигается влево все =(.. ВОТ ТАК )

Wortecs иш какой упрямец )), джазз учить нехочем, карту делаем только для себя, да еще и наработки ему на интвентарь кинь, чтобы он тупо взял и скопировал)) номаральненько так )) может ты меня еще удивиш, и скажеш что ты сел учить джазз ?

0

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

&
n
b
s
p

Напишешь это по горизонтали и получишь неразрывной пробел. А между неразрывным пробелом и словом, на всякий случай, поставь ещё один обычный пробел. А то иногда глючит.


                        глююючит...


Между самими неразрывными пробелами обычные пробелы ставить не нужно.

0

Если Mr_ILYAS все еще хочет оценить мои способности, то я сегодня карту на конкурс выложил. А задание про торнадо мне что-то влом делать.

0

SaRoF мне джасс к одному месту потому что ето все волиш игра я лучше выучу Логарифмы

0

SaRoF и Dragon27 неразрывнй пробел делается куда проще)) :

держишь alt, далее пишешь на дополнительной клавиатуре код: 0160, затем отпускаешь alt

        ыы

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

0

Помогите пожалста. Мне нужно выбрать юнитов игроков, которые в союзе с данным игроком и заставить их бежать... как заставить их бежать знаю, а вот как выбрать именно СОЮЗНИКОВ... [Pick every unit matching (*condition*) and do (*action*)]
condition какой должен быть?

0

Boolean Comparison полистай, там есть.

0

Народ, подскажите как делаються "большие" результтаблицы.... если знаете по ним примеры дайте ссылки пжста

0

ииии... может ли кто дать ссилку на jass язык.. обучалку (с нуля :[)

0

держишь alt, далее пишешь на дополнительной клавиатуре код: 0160, затем отпускаешь alt
У меня на ноуте доп-клавы нету. Приходится так :)

0

Fe0nx Ищи выше в этой теме

0

Mr_ILYAS меня ужасно утомила ета путаница с ICQ поетому ну нафиг ее )).Я тебя очень очень очень очень..
10 минут спустя:
Прошу.. прекрати ето)) и скачай Skype!! мой ник там (стыд берет говорить) ))) мне было нефиг делать так что СМЕЙТЕСЬ )) SSOOLLOO and sssooolllooo психозз ).
Написал оба но искать нужно только по второму вроде.. т.е там где по 3 буквы.

0

к чёрту всё давай тут общаца, хоть и долго, но я заметил что тут было более продуктивно.

0

Какое к черту продуктивно? С чего начали к тому и вернулись.Я на етом форуме был сколько ? Недели три наверно.. и все что понял так ето порядок функций и простейшие команды.

А после того как получил возможность быстрого общения (через ICQ) и нароботку.. сразу кучу всего понял изучил.. зделал штук 5-6 своих скилов.А ты предлагаеш вернутся опять к медленно медленно медленому.

Ну нафиг.. тут если за целый день получиш 2 ответа и то невнятных на вопрос.. то ето за щастье +(.

0

я уже битый час пытаюсь зделать тригер на "Пихание" или "толкание" моба.
Каст вот какой при ударе по юниту, у юнита (которого ударили) есть 15% шанса заблокировать удар и отпихнуть нападающего на 250 аое назад (если нападающий не дальний) я здела обычный тригер с таймером на движение но угол по которуму будем твигать поставил такой... local real a=(GetUnitFacing(x)-180).. иногда он даже летит куда надо )) но восновном либо вбок либо вобще вперед... Если поставить угол a=GetUnitFacing(u) т.е тот кого бьют.. то будет тоже самое или еще хуже )).Вобщем в углах я вобще не дружу )) может формула отдаления юнита противоположна формуле Пифогора ?) все наоборот поставить?


И еще вот интересно, как я уже говорил мне нужно чтобы мой моб(владелец абилки) блокировал удар.Я открыл всем известную доту и посмотрел как там зделан блок воида:

function Trig_Backtrack_Conditions takes nothing returns boolean
return GetLearnedSkill()=='A0CZ'and IsUnitIllusion(GetTriggerUnit())==false
endfunction

function Backtrack_Main takes nothing returns nothing
local unit lfo=GetTriggerUnit()
local real lf7=GetEventDamage()
if(lf7>0)then
if(GetRandomInt(1,100)<=(5+(5*GetUnitAbilityLevel(lfo,'A0CZ'))))then
call SetUnitState(lfo,UNIT_STATE_LIFE,GetUnitState(lfo,UNIT_STATE_LIFE)+lf7)
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Weapons\\WingedSerpentMissile\\WingedSerpentMissile.mdl",lfo,"hand,left"))
endif
endif
endfunction

function Trig_Backtrack_Actions takes nothing returns nothing
local trigger ltt
if GetUnitAbilityLevel(GetTriggerUnit(),'A0CZ')==1 then
set ltt=CreateTrigger()
call TriggerRegisterUnitEvent(ltt,GetTriggerUnit(),EVENT_UNIT_DAMAGED)
call TriggerAddAction(ltt,function Backtrack_Main)
endif
endfunction

function StartTrigger_Backtrack takes nothing returns nothing
set gg_trg_Backtrack=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Backtrack,EVENT_PLAYER_HERO_SKILL)
call TriggerAddCondition(gg_trg_Backtrack,Condition(function Trig_Backtrack_Conditions))
call TriggerAddAction(gg_trg_Backtrack,function Trig_Backtrack_Actions)
endfunction

function InitTrig_Backtrack takes nothing returns nothing
endfunction


Если говорить честно то я не очень то понимаю как ето работае.. Оно после домага сразу же возваращает хп равное количеству урона, а вот все остальное.. ето видимо то про что говорил Ильяс.. тригер в тригере и в Backtrack_Actions создается тригер ltt.. а юнит который владеет абилкой является тригеринг юнитом.. но зачем тогда стоит EVENT_PLAYER_HERO_SKILL что нельзя было сразу поставить Backtrack_Actions ?

Извиняюсь за многа БукаФ! =)

0

евент плейер херо скил это событие реагирует (в данном триггере, смотри кондишон) на то что герой изучил этот скил, посл чего включается триггер с блоком урона

0

почему я не погу поставить дальность стрельбы лучницы больше 650. В редакторе ставлю 1000 а рендж остаёться всё-равно 650 в игре...

0

Зажимаеш Shift и жмеш поменять.. ура! =)

0

дело не в этом, смотря что ты там меняешь. . .
Бой — атака 1
  или
Бой — атака 2


максимальный ренж атаки 1300, даже если поставить 10 000 он серавно не будет через пол мапы атаковать, вместо этого ренж поставится стандартный — 600 или сколько там . . .

0

Карабаса и Хелликоптера я думаю мы навсегда потеряли. . .

0

Я меня и атаку 1 и атаку 2... хотя импользуеться только атака 1

0

хз наверное чтото попутал, либо не тому юниту меняешь))

либо из-за улучшения ренж ставится определённый

0

голая карта.. совсем... взял Архимига и не могу ему поставить 700 ренжа

0

А на свой вопрос я ответ не получу да ? +_+ Можно джазз опять забрасывать пока ты скайп не скачаеш.. не вижу смысла получать ложный ответ на 1 вопрос в день..

0

SaRoF
07.04.10 14:37

Гм... я, наверное, сейчас глупость спрошу, но что будет когда герой изучит способность снова
(те повысит ее уровень)? Будет создан еще один триггер?

0

там стоит проверка что левел должен быть 1 уровня))

Хотя мне кажется логичнее было бы его просто отключать сразу
в функции актионс

0

максимальный ренж атаки 1300, даже если поставить 10 000 он серавно не будет через пол мапы атаковать, вместо этого ренж поставится стандартный — 600 или сколько там . . .
Там есть параметр, Combat - Acquisition Range. Он определяет максимум отдачи приказа, и больше него юнит стрелять не может. Если его увеличить - дальность можно хоть через всю карту поставить.

0

+_+ копец вы может будите пост полностью читать ? ЕТО НЕ МОЙ ТРИГЕР!! ето скилл воида из открытой доты.. хотя ладно я всеравно пока в WOW буду играть т.к на форуме мне очень,очень,очень в падло писать, по той причине что во-первых вы не читаете, во-вторых ето долго нудно и не продуктивно т.к ждать ответа по пол часа а если не получиш отодиш от компа.. приходиш через часа 2 О ответ уточняеш вопрос.. еще пол часа сидиш.. думаеш.. ну когда же напишут.. не пишут.. пошел еще погулял НАПИСАЛИ.. и так целый день.А если было бы ICQ or SKYPE вопрос решается за пол часа максимум. Вобщем я обиделся )) не серьйозно конечно и глупо ето все но =( испорили настроение.

0

Есть такой сайт - xgm.ru, ты его очень хорошо должен знать. На тамошнем форуме твои вопросы будут удовлетворять гораздо чаще и быстрее, потому что там народу больше.
СОВЕТ: иди туда, и задавай там вопросы. Здесь же почти никого нет.

0

Я думаю что ИМХО нужно писать после слов "Придумали херню какую-то" )
И еще.. я тут подумал, и понял что либо у тебя какието "проблемы" в учебе что ты не имееш времени тратить на меня как бы.. или ты просто сервер контры делаеш.Так же исходя из твоего последнего комента можно предположить что ты серьйозно взялся за свою карту.
Вопрос таков: когда ты сново сможеш появлятся в сети имеется в виду ICQ ? А то у меня куча вопросов.

0

придумали херню какую-то. Я считаю нахер не нужны эти инные формы джаса
Ну, если умело пользоваться, то можно работать быстрее и эффективнее. Удобнее.

Хотя реально они никаких возможностей не добавляют.

Нормальный IDE с проверкой синтаксиса, и больше ничё, в принципе, не надо.

0

Mr_ILYAS
всё надежда на физику сдохла?

P.S. ОБРАЩАЮСЬ КО ВСЕМ jass,ерам ПОИЩИТЕ В ЭТОЙ МАПЕ утЕчки=)
http://ifolder.ru/17396175

0

Я щас пока занят маленьким проектиком как раз на движение объектов в разных плоскостях, когда закончу возможно начну с движком для физики работать

Кстати, Dragon27, почему я тя на хgm.ru никогда не вижу?

0

Кстати, Dragon27, почему я тя на хgm.ru никогда не вижу?
Потому что я там редко бываю, а когда бываю очень редко постю :)

Надо бы вспомнить, когда я там вообще в последний раз отписывался..

0

Как открывать карты в формате .w3x???

0

Как обычно — жмёшь Enter и карта открывается через редактор, если вылетает окошко, это значит, карта заблокирована создателем, причём намеренно, от чужих глаз, так сказать. . .

0

DenisGiD можно X deprotect в руки.. ТОлько требуются мозги и ум программиста и руки по возможности

0

Ну спасибо!!! Так бы сразу! Программы название сказали и всё!

0

DenisGiD
Ну дык=) Ты задавай почётче вопрос и получишь чёткий ответ:) у на свсё просто

0

где можно скачать текстуру неба, и как её установить?

0

Поройся по каким-нибудь вариковским архивам. Может тут есть http://www.hiveworkshop.com/
Устанавливаться должна как и любая модель/текстура.
У неба вроде своя модель есть, хотя её создавать не обязательно.

0

+_+
Mr_ILYAS
Устанавливать путём замены старых... Я так делаю по крайней мере..Пути на небо ищи в MPQ архивах, а в импортированное небо записывай путь старого. Потом в Параметрах карты указывай небо

0

Dragon27
Кстати о XGM.... Я здесь от Карабаса тебя Ильяса и ХЕлликоптера получил больше знаний чем от Очень умных XGMовцевских Бгатегоф..

0

Это грамотно я так и планировал делать, я вообще так делаю с любым импортом — писать в старый адрес

По поводу xgm: Согласен, я от них 2 месяца получил только 1 нормальный ответ, как раз сегодня)) искал коды текстур в jass'e (ну там: лёд, трава и прочие)

Там тока тупо замечания получаешь, за то что вопрос задал либо не по теме либо слишком сложный либо еще что-нибудь, они найдут за что замечание мне втяхнуть.

ну и Diod успевает везде свой тупой сарказм вставить . . .
типа мол: "Тебя что в гугле забанили?" и прочее . . .

0

помогите способность сделать! вот мне нужн чтобы када я пишу -стоп то игра останавливается (это я сделал) а как сделать чтобы останавливалось все кроме одного юнита?

0

Как сделать чтобы нельзя было носить два одинаковых предмета?
Допустим, когда я одеваю два сапога скорости, один выкидывало из инвентаря?
ПОМОГИТЕ!!!

0

На xgm'е рассчитывают более на самостоятельное обучение людей. Туда входит (не по хронологическому порядку):
- внимательное изучение всех статей на сайте;
- внимательное изучение статей на форуме;
- внимательное изучение FAQ'а, указанных в FAQ тем, указанных в статьях тем, самостоятельный поиск тем;
- изучение статей на других форумах (в какой-то темке в разделе Jass (сдохни грёбаный антимат) указаны ссылки на некоторые старые архивы со статьями);
- вообще изучение сторонних ресурсов интернета :), например world-editor-helper-tutorials, или как-то так, не помню уже;
- изучение близзардовских карт, чужих карт, кода, рельефа, наработок на сайте и форуме, чего кому по душе;
- самостоятельное рытьё в ресурсах игры;
и т.д. и т.п.
А на форуме (в академии) лучше задавать вопросы по каким-то проблемным темам, в которых самостоятельно разобраться не смог (что должен делать в первую очередь, и желательно получше).

0

Всё-таки форум погиб

0

Он просто крепко спит :)

0

он в кому пал какой блин спит . . .

0

Войди в скайп :) у меня есть вопрос, хотя я могу его и здесь написать но всеравно в скайп войди )). Вобщем.. никаких правонарушений я не делал, но уже 2 или 3 месяц каждый раз когда я пытаюсь зайти на форум Xgm.ru меня перенапрявляет на
Веселый сайтик :)

0

Я ПРИШЕЛ ВОСКРЕСИТЬ ФОРУМ!

0

ГИППЕР МАППЕР

Ты так и не написал что напечатать ему на лбешнике :D

0

Mr_ILYAS = Kapa6acuk ? :_:

Как сделать чтобы нельзя было носить два одинаковых предмета?
Допустим, когда я одеваю два сапога скорости, один выкидывало из инвентаря?
ПОМОГИТЕ!!!


Все еще нада помочь?

0

мне нефиг делать и wow задрал маленько поетому я решил зделать скилл ) для минотавра.. выглядеть все будет немного фантастично но зрелищно ).
Минотавр бьет бревном о землю станит всех на 1 секунду взлетает вверх на высоту около 400 потом падает вниз при падении еще раз ударяя бревном о землю, но уже подбрасывая всех окружающих вверх - при падении наносится урон.
Попытаюсь зделать, так сказать освежить память как вобще скил то делается ) напишу что вышло а что не вышло.

0

Карабас уже не вернётся, я думаю. . .

0

Как создовать артефакты в WorldEditor или киньте ссылочку на прогу которая это делает и если можно киньте ещё крату с готовыми закленаниями и эфектами.

0

Ааа Mr_ILYAS = KiLLING SPREEE :DD

Тебя палит это:

. . . . . .

Точечки)

0

Mr_ILYAS
Мне нарушение влепили 6 баллов А комментарий убил "для профилактики" пиз**ц=\
HELLICOPTER
Дарова!
На лбешнике ничо не надо, пиши на плече.. а ещё сзади можешь клонов сделать его.. ну это уже по желанию

0

Хелик сделай мне скрин для мапы "предатор" (играл наверно? англ. — The Predator - Fixed Final)

0

Mr_ILYAS
брр... ХАЧУ ФИЗИКУ!=)))) Ты там не закончил? Прост если я не успею создать проэкт до лета, прийдётся закрыть(((

0

не сочтите за глупый вопрос можно ли например некроманта сделать героем?поставит заклинания на своё усмотрение?

0

Не некроманта героем, а наоборот — героя некромантом. . . можно . . . Заменив строку "файл модели" у твоего героя.

0

ГИППЕР МАППЕР

так а че писать то?? Текст дай...

А там какбы не умещается еще клоны..

0

Хелик сделай мне скрин для мапы "предатор" (играл наверно? англ. — The Predator - Fixed Final)

Не играл, дай тему :D

0

5 баллов!!! ТОЛЬКО!добавь на шее надпись Death quest

0

Можно только уменьшить тень надписи? спс
Mr_ilyas увидел тебя на хгме забаненным.. расстроился... Я тебе там такое сообщение в пм расписал=((

0

Это не тень) это часть татуировки

0

яж сказал на xgm теперь ни ногой, меня админы там жоско взбесили. я им такую телегу написал они меня сразу в бан))

0

Слух, Хелик, а ты красиво рисуешь? Можешь замутить скрин как во доте, чтоб геры дрались как бы. . . Это было бы шикарно.

Там герои:
Assassin (Илидан без крыльев)
Brawler (Зевс)
Berserk (Джагер)
Demon (Пит лорд)
Gorgon (Медуза)
Hunter (Рексар)
Inceriod (Анубарак)
Lich (Король мёртвых)
Mechanik (Тинкер)
Sage (Кель)
Vampire (Повелитель ужаса)

Сущность игры такова:
Жертвы (в виде лекарей у альянса) должны выжить в каждом раунде против одного предатора (1 из любых выше перечисленных героев)

Есть еще секретный герой Jocker, который выглядит как жертвы, тока чёрный. Он может попасться рандомно кому-нибудь если повезет.

Но самое интересное в игре это "бонус-раунд" Когда все становятся предаторами и дерутся друг против друга.
_____________________________________________________________________________________________________________________

И вот я думаю, сделать скрин который касается только БР (бонус-раунда) или же туда еще и жертв с Jocker'ом нарисовать? . . .

Думаю лучше только БР . . .

Итак вот карта http://ifolder.ru/17764149, она в одиночном режиме не работает, придётся проверять исключительно по сети. Но скилы там красивые

0

ильяс
вообщет
Tinker(механик)
))
Хеллик я имею ввиду у татуировки тень уменьшить=)

0

В игре его зову Meshanik я назвал его тинкером чтоб не спутать с Техником (минёром)

0

Здравствуйте:) Очень редко захожу на этот форум, и раз я тут, то у меня есть пара вопросов к вам, знатокам
Недавно стал знакомиться с анимациями в триггерах. Вот вопрос:
1) Когда пишу играть анимацию "walk" (анимация движения), юнит делает короткий и быстрый жест и всё. Мне нужно
чтобы он бежал на месте..можно ли так?
2) Такж мне нужно воспроизводить анимацию атаки разных вариантов. Например пишу воспроизвести attack -2,
а он играет случайную анимацию атаки как 1 так и 2, 3.....

0

Andreya читай этот пост 18.03.10 00:31

У меня тоже есть вопрос, вы не поверите. . .

Итак: Как сделать чтоб юнит был выбран игроком (к примеру как в доте, после воскрешения герой сразу выбирается и им можно управлять)

И еще одну фишку заметил у минёра, кода бомбу ставишь. то бочка добавляется в выбор вместе с минёром как в один отряд, как и такое замутить?

0

Ну на сегодня со скринами хватит - завтра продолжу... Помогите лучше мне)

Решил ландшафт стильнуть у ледяной люягушки... Нашел 6.59d доту без триггеров (они мне и не нужны), но с ландшафтом.

Все запихал туда: свои триггеры, юниты, импорт весь.

НО ЕПТ! Баг))) Т.с. что не ноавая дота то баги) Итак баг, а точнее чую попой неудаленный код JASS от депротектора:

Берешь юнита, пробегаешь около других юнитов, и они становятся твоими, звучит звук и юнит твой)

Затем кто нибудь знает что в доте есть со скилами наработка типо когда кд скила, то иконка не имеет белой рамки. Так вот, если юзнуть
любой скилл то мана потратится а визуальный эффект кд не будет О_О но оно все таки есть... Бред... Я пытался вытащить из карты тока
war3map.w3e и вставить его в новую карту, но нихрена не запускается карта..... КАРОЧЕ КАК МОЖНО ИЗБАВИТСЯ ОТ СТАРОГО КОДА?)))

Ландшафт нужен...

0

Mr_ILYAS

Ты даже это не знаешь?)) Фуу.. :D

Давай чтобы я не сбился я потом отвечу)))

0

импортируй свой war3mao.j и поставь ему такой же адрес, тогда старый заменится на новый как бэ . .

0

Трабла найдена методом перетыка в файле war3mapSkin.txt

Я предположить не мог даже что это из-за него...

0

А неа... трабла с кд прошла а вот захват юнитов остался.. Мб ты посмотришь код?

0

Ты мне сначала на вопрос ответь)) и нечего ники менять))

0

Как сделать чтоб юнит был выбран игроком (к примеру как в доте, после воскрешения герой сразу выбирается и им можно управлять)
После смерти героя поставить wait в нужное время и во время воскрешения юзнуть действие

На русском скажу)

Выбор - Выбрать (Умирающий юнит) для (Владелец (Умирающий юнит)) -> отменит весь выбор игрока и добавит лишь Умершего.

На счет бочки я думаю так:

Бочка создается триггерно, ибо ее так проще поймать в триггере. (Имел ввиду что не скилом создана)

Так вот для этого есть действие

Боевая единица - Создать 1 Бочка для (Владелец (Применяющий юнит)) в (Целевая точка создания способности) поворот на Стандартная ориентация зданий градусов

Выбор - Добавить (Последний созданный юнит) к выбору для (Владелец (Применяющий юнит))

0

Ну ты пипец странный человек. . . Неужели ты думаешь, что до остального я бы не догадался? Достаточно было сказать, что это делается через конкретную категорию, то есть через выбор.

По поводу кода: не надо меня спрашивать, надо иметь наглость и выложив код, сказать: "На смотри. Что тут не так?".))

И, кстати, ты Jass учить собираешься? Или так и будешь сидеть на гуях?

0

Буду но после экзаменов... В июле.

Ну я как сказать... почти решил проблему, просто за красного игрока не нада играть и никого не будет захватывать) Пока нет проблем - пока не будет кода.

У меня сча трабла с озвучкой:

Не могу правильно настроить Double Kill и Triple Kill

Иногда трипл кил всю игру висит, каждое убийство дает трипл...

Сча дам код:

Хотя там так много... хз че делать даже...

Вкратце. Происходит убийство, в переменную X с массивом N игрока = +1 И запускается wait на 20 сек, после 20 сек
вычитается из X с массивом игрока убивающего = -1 (Эти переменные отвечают за "выключение" даблов и триплов.)\

Другой, параллельный триггер, также срабатывает при убийстве. В переменную Y пишется +1. Эта переменная отвечает за сами текста Double Kill и Triple Kill. Там уже проверка, если
Y=2 то Double Kill
Y>=3 Triple Kill


Мда я уже запутался... Помоги сделать новую систему ^_^

0

Это делается через таймеры:
К примеру у нас есть переменная integer (целочисленная) назовём её seriya (серия) для каждого игрока. которая изначально будет равняться нулю.


Игрок совершает убийство, сделать серию+1 и запустить таймер на 20 сек, если таймер истекает то сделать серию =0,

ну а если. . . пока таймер не истек и гер совершил убийство то получается серия +1 это уже будет 2, что и будет являться даблом, запускаем еще 1 таймер для трипл кила и так далее

с таймерами работать удобнее так как у них есть свои события мол таймер такой-то истекает

0

Я раньше, год назад мб делал так:

Ставил дамми юнита на карту в недостягаемом месте, и при юзании скила пускал его в область. Вот это время пока он идет и есть таймер)) Дошел до области - сделал действие триггер :D

Ильяс ну мб наработкой сделаешь?) Я вель всегда наработкой... я же не ленюсь ^_^

0

блин на гуи чтоль сделать?

0

Не делай... Я разобрался... Пока не завоняет не буду беспокоить :D

0

Поиграй по сети в мапу, которую я тут выше скинул. Я на Battle'е всегда в неё играю, оч затягивает. Может потом тебе легче будет придумать скрин для неё

0

Гигантская просьба! Я не умею делать мультибоарды...
А обращаюсь сюда т.к. сайленс на 288 часов на Хугме
И прошу переделать вот этот мультибоард: http://www.hiveworkshop.com/dl/93643dc7ab2c2898624b7de635f261ed/4bf8e1a3/4/spells_3304/tutorialmultiboard.w3x
1.Русифицировать не обязательно.
2.Вместь death мне требуется Статус, и чтоб под ним было написано вместо цифры Жив\мёртв(жел. цветным Жив- зелёный Мёртв-красный)
3.Перед Ником игрока сделать иконки десантника
-----------------------------------------------------

0

прикиньте, до сих пор руки не касались работы с мультибоардами))

0

народ, слухайте: а по какому закону разлетаются юниты в разные стороны от одной точки? ну как их движение в jass описать?) пример: блинк у кипера
или огненная хрень у батрайдера))

0

call SetUnitX(u,GetUnitX(u)+L*Cos(a*0.017453277))
call SetUnitY(u,GetUnitY(u)+L*Sin(a*0.017453277))

Где u — юнит, которого двигаем;
      L — расстояние на которое перемещаем;
      a — угол, в сторону которого двигаем.

0.017453277 — константа, которая переводит градусы в радианы (число "Pi" делённое на 180), так как функции: Cos и Sin — в Jass'е работают только через радианы, в отличии от CosBJ и SinBJ.
Но в конечном эти две переводятся в обычные Cos и Sin, то есть в то, что я написал.

Мой вариант работает быстрее, так как он работает уже с конечными результатами, без всяких предварительных переводов.

0

Поздравляем
Dragon27 с днём рождения!

0

От меня тоже прими поздраву.) Всего те наилучшего.
________________________________________________________________________________________________________________________

Как создать свой раздел globals? я создаю но выдаёт ошибку, хотя я видел как люди в триггерах создавали свои глобалки.

0

Mr_ILYAS
без карабаса будет тебе тяжело...

0

О, спасибо за поздравления :)
ДР завтра.

0

Mr_ILYAS, проблема у меня как раз в угле. Мне нужно чтобы юнитов раскидывало в разные стороны от точки
изданной способности, - и это ни как не зависит от их, к примеру, угла поворота

0

Подскажите плиз, как сделать респ юнитов (мобов, крипов, как хотите так и называйте) ограниченным? Или как сделать что бы в зоне не появлялись мобы, если их там больше 5 (например). Я пробовал сделать, но у меня они либо бесконечно респились (с определенным интервалом), либо еще какой нить сюрприз выдает. Пожалуйста поподробней. И не надо описывать способность аля "гидра" или "месть пауков", я знаю как их делать, но мне надо, что бы мобы респились в определенном месте, а не на месте смерти юнита.

0

new dlalv
а чем тебе не нравится поставить Гидра, и триггерами в зону возвращать?

0
ЗАГРУЗИТЬ ВСЕ КОММЕНТАРИИ