PlayGround.ru
Ropnet
, мод для Pro Evolution Soccer 2011, Sacred патч, Трансформеры: Месть падших


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

RwC Private League   2 марта 2010 в 12:51

Повторюсь:

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

timber1111   2 марта 2010 в 17:36

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

JassMan   2 марта 2010 в 18:06

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

JassMan   2 марта 2010 в 19:43

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

Dr. Manhattan   2 марта 2010 в 21:05

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

SaRoF   3 марта 2010 в 17:20

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

JassMan   3 марта 2010 в 20:49

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

Dr. Manhattan   3 марта 2010 в 20:55

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

JassMan   3 марта 2010 в 21:15

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

Dr. Manhattan   3 марта 2010 в 21:24

Не сработало

JassMan   4 марта 2010 в 22:57

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

TimArs   5 марта 2010 в 12:40

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

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

Dr. Manhattan   5 марта 2010 в 14:13

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

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

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

TimArs   5 марта 2010 в 14:55

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

TimArs   5 марта 2010 в 14:58

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

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

Dr. Manhattan   5 марта 2010 в 22:58

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

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

JassMan   5 марта 2010 в 23:12

согласен

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

TimArs   6 марта 2010 в 00:10

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

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

JassMan   6 марта 2010 в 00:27

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

Dragon27   6 марта 2010 в 19:38

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

TimArs   6 марта 2010 в 20:48

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

Dragon27   6 марта 2010 в 21:09

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

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

TimArs   6 марта 2010 в 21:17

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

TimArs   6 марта 2010 в 21:21

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

JassMan   6 марта 2010 в 21:27

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

Dr. Manhattan   7 марта 2010 в 10:30

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) делает все шесть проходов. В чем проблема?

Dragon27   7 марта 2010 в 11:12

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

Dragon27   7 марта 2010 в 11:12

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

Dr. Manhattan   7 марта 2010 в 11:38

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

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

JassMan   7 марта 2010 в 12:09

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

local group g=CreateGroup()

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

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

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

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

Dr. Manhattan   7 марта 2010 в 12:37

local group g=CreateGroup()

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

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

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

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

Dr. Manhattan   7 марта 2010 в 14:02

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

Dr. Manhattan   7 марта 2010 в 14:55

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

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

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

JassMan   7 марта 2010 в 16:16

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

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

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

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

Dr. Manhattan   7 марта 2010 в 16:33

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

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

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

JassMan   7 марта 2010 в 16:38

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

Dr. Manhattan   7 марта 2010 в 16:50

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

JassMan   7 марта 2010 в 17:34

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

Dr. Manhattan   7 марта 2010 в 17:43

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

JassMan   7 марта 2010 в 18:35

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

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

Dr. Manhattan   7 марта 2010 в 18:38

И это пробовал.

JassMan   7 марта 2010 в 19:45

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

Dragon27   7 марта 2010 в 21:01

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

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

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

Dr. Manhattan   8 марта 2010 в 03:51

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

Dragon27   8 марта 2010 в 04:08

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

Dr. Manhattan   10 марта 2010 в 14:10

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

JassMan   10 марта 2010 в 21:23

SaRoF как там у тя дела?

SaRoF   10 марта 2010 в 23:15

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

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

Dragon27   11 марта 2010 в 00:13

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

SaRoF   11 марта 2010 в 13:32

мм нашел на другом сайте )), неважно вобщем.Теперь у мну есть хеш ТаблиЦо!!
Мм пришлось указать индекс 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

Dr. Manhattan   11 марта 2010 в 18:32

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

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

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

Brown002-human   11 марта 2010 в 18:50

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

SaRoF   11 марта 2010 в 21:23

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

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

SaRoF   12 марта 2010 в 00:03

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

Dragon27   12 марта 2010 в 00:27

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

SaRoF   12 марта 2010 в 00:42

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

Dr. Manhattan   12 марта 2010 в 08:56

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

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

Условие можно поставить с помощью 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 отслеживать расстояние, которое он уже прошел. Вот и подумай, как это сделать.

JassMan   12 марта 2010 в 11:07

Dr. Manhattan +1 ))

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

SaRoF   12 марта 2010 в 16:56

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

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

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

Dr. Manhattan   12 марта 2010 в 17:43

Пример:

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


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

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

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

JassMan   12 марта 2010 в 19:23

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

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

Dragon27   12 марта 2010 в 20:43

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

Dr. Manhattan   13 марта 2010 в 16:05

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

SaRoF   13 марта 2010 в 16:52

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

JassMan   13 марта 2010 в 17:59

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

GetSpellTargetLoc()

Hellacopter   14 марта 2010 в 05:43

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

SaRoF   14 марта 2010 в 11:55

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

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 и все но я же везде поставил помогите исправить плз ?) а то джазз крафт отказывается работать я туда уже всунул с xgm.ru/forum/showthread.php?t=25760 Common.j (18kb) но всеравно оно не дает новые команды =( вснулу причем во все папки XD.

Dragon27   14 марта 2010 в 13:29

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

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

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

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

Dragon27   14 марта 2010 в 13:34

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

SaRoF   14 марта 2010 в 14:59

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

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

Dr. Manhattan   14 марта 2010 в 15:11

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


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

JassMan   14 марта 2010 в 16:43

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

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

SaRoF   14 марта 2010 в 18:32

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

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

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

Dragon27   14 марта 2010 в 19:08

О_о нужно создать групу 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)


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

JassMan   14 марта 2010 в 19:14

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

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

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

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


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

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

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

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

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

Dragon27   14 марта 2010 в 20:25

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

SaRoF   14 марта 2010 в 21:14

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

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

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

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


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

Dragon27   14 марта 2010 в 22:21

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

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

JassMan   15 марта 2010 в 08:39

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

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

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

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

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


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

SaRoF   15 марта 2010 в 22:48

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

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

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

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

JassMan   15 марта 2010 в 23:11

endfunction забыл))

SaRoF   16 марта 2010 в 00:04

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

JassMan   16 марта 2010 в 00:31

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

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

Dragon27   16 марта 2010 в 00:37

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

SaRoF   16 марта 2010 в 18:12

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

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

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

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

Dragon27   16 марта 2010 в 19:42

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?

SaRoF   16 марта 2010 в 20:23

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

Dragon27   16 марта 2010 в 20:50

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)))
Ты уверен, что эта функция написана верно? :)

Dragon27   16 марта 2010 в 20:51

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

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

SaRoF   16 марта 2010 в 22:33

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

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

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

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

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

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

Dragon27   16 марта 2010 в 23:49

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

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

SaRoF   17 марта 2010 в 00:03

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

SaRoF   17 марта 2010 в 00:44

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

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

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

Dragon27   17 марта 2010 в 01:02

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 и шо за запятая? Может это таймер, который ты не объявил и не присвоил?

SaRoF   17 марта 2010 в 11:19

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)

JassMan   17 марта 2010 в 13:27

ну так надо не 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)

SaRoF   17 марта 2010 в 14:30

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

SaRoF   17 марта 2010 в 15:03

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))

SaRoF   17 марта 2010 в 17:33

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

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 что Неумел обнулять значение переменных ? Нафиг в каждой следуещей функции другие локалки О_О так можно запутатся что повестися проще )), или раньше нельзя было обнулять ?

Dragon27   17 марта 2010 в 20:01

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

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

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

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

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

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

SaRoF   17 марта 2010 в 20:21

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

SaRoF   17 марта 2010 в 21:14

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

JassMan   17 марта 2010 в 21:44

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 не плохо написал. Без грубых ошибок.

SaRoF   17 марта 2010 в 23:42

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

Dragon27   17 марта 2010 в 23:56

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

SaRoF   18 марта 2010 в 00:20

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


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

JassMan   18 марта 2010 в 00:31

Чтоб заставить юнита выполнить какую-либо анимацию:
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

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

JassMan   18 марта 2010 в 00:39

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

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

SaRoF   18 марта 2010 в 09:35

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

JassMan   18 марта 2010 в 09:48

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

SaRoF   18 марта 2010 в 17:23

=((( да что ж такое =( опять ему не так.. ну зделал как ты говорил у мну вроде все правельно, неправельно только 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

JassMan   18 марта 2010 в 18:37

после 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%)

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

SaRoF   18 марта 2010 в 18:50

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

SaRoF   18 марта 2010 в 21:12

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

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

Dragon27   18 марта 2010 в 23:29

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

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

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

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

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

SaRoF   19 марта 2010 в 01:17

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

SaRoF   19 марта 2010 в 01:31

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

Dragon27   19 марта 2010 в 01:51

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

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

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

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

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

Dragon27   19 марта 2010 в 01:58

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'ы между локалками недопустимы.

Dragon27   19 марта 2010 в 20:57

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

SaRoF   20 марта 2010 в 17:19

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

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

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

Dragon27   20 марта 2010 в 17:49

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

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

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

Dragon27   20 марта 2010 в 20:23

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

SaRoF   21 марта 2010 в 00:30

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

Dragon27   21 марта 2010 в 02:20

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

SaRoF   21 марта 2010 в 13:06

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

Dragon27   21 марта 2010 в 16:37

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

SaRoF   21 марта 2010 в 18:04

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

Dragon27   21 марта 2010 в 19:27

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

ГИППЕР МАППЕР   22 марта 2010 в 01:29

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

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

ГИППЕР МАППЕР   22 марта 2010 в 16:25

Mr_ILYAS
ога=) заранее спасяб

ГИППЕР МАППЕР   23 марта 2010 в 08:37

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

ГИППЕР МАППЕР   23 марта 2010 в 17:16

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

ГИППЕР МАППЕР   23 марта 2010 в 17:17

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

SaRoF   23 марта 2010 в 19:08

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

Dragon27   23 марта 2010 в 22:52

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

JassMan   24 марта 2010 в 04:44

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

Dragon27   24 марта 2010 в 21:09

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

Warbossik   25 марта 2010 в 13:05

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

xD xDO_O   25 марта 2010 в 13:48

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

JassMan   25 марта 2010 в 15:53

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

Warbossik   25 марта 2010 в 16:18

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


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

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

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

JassMan   25 марта 2010 в 16:54

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

ГИППЕР МАППЕР   26 марта 2010 в 02:22

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

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

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

Warbossik   26 марта 2010 в 09:32

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

Wortecs   26 марта 2010 в 23:18

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

JassMan   27 марта 2010 в 06:01

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

ГИППЕР МАППЕР   27 марта 2010 в 07:18

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

ГИППЕР МАППЕР   27 марта 2010 в 13:53

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

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

Dragon27   27 марта 2010 в 15:26

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

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

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

JassMan   27 марта 2010 в 15:45

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


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

ГИППЕР МАППЕР   27 марта 2010 в 20:09

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

Wortecs   27 марта 2010 в 23:36

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

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

SaRoF   28 марта 2010 в 00:22

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

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

JassMan   28 марта 2010 в 04:01

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

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

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

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

JassMan   28 марта 2010 в 19:34

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

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

ГИППЕР МАППЕР   29 марта 2010 в 02:45

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

Wortecs   29 марта 2010 в 12:46

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

Wortecs   29 марта 2010 в 12:48

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

Wortecs   29 марта 2010 в 14:45

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

ГИППЕР МАППЕР   29 марта 2010 в 16:27

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

Wortecs   29 марта 2010 в 18:01

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

Dragon27   29 марта 2010 в 20:43

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

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

SaRoF   29 марта 2010 в 22:20

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

ГИППЕР МАППЕР   30 марта 2010 в 02:52

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

JassMan   30 марта 2010 в 09:15

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

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

SaRoF   30 марта 2010 в 17:53

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

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

Wortecs   30 марта 2010 в 18:21

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

SaRoF   30 марта 2010 в 20:00

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

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

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

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

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

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

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

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

SaRoF   30 марта 2010 в 21:06

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

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

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

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

JassMan   30 марта 2010 в 22:09

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

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


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

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

Результатом чего будет:
Локальные переменные

Можно и жирным сделать добавив тег < b >тут получится жирный текст< /b >
и дабавим его во внутрь предыдущего тега:

< а href=httр://wvvw.xgm.ru/project.php?id=100рage=jass_local_vars> < b >Локальные переменные< /b > < /а >

рузультат:
Локальные переменные

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

SaRoF   30 марта 2010 в 22:27

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

JassMan   30 марта 2010 в 23:42

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

Wortecs   31 марта 2010 в 23:56

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

SaRoF   1 апреля 2010 в 00:52

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

JassMan   1 апреля 2010 в 01:18

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

SaRoF   1 апреля 2010 в 17:56

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

Dragon27   1 апреля 2010 в 23:23

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

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

sirius-sir   2 апреля 2010 в 12:22

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

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

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

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

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

SaRoF   2 апреля 2010 в 15:41

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

SaRoF   2 апреля 2010 в 19:59

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

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

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

Dr. Manhattan   2 апреля 2010 в 21:41

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

SaRoF   2 апреля 2010 в 22:28

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

Dr. Manhattan   2 апреля 2010 в 22:34

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

sirius-sir   2 апреля 2010 в 23:17

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

JassMan   3 апреля 2010 в 06:34

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

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

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

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

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

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

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

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

Dr. Manhattan   3 апреля 2010 в 11:58

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

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

JassMan   3 апреля 2010 в 13:12

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

SaRoF   3 апреля 2010 в 13:34

Не по китайски.. ты как всегда.. На татарском 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 минуты:
Копец половину текста не написал.. долбаный форум.. пришлось еще раз печтать.

Dr. Manhattan   3 апреля 2010 в 13:52

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

SaRoF   3 апреля 2010 в 14:11

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

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

. PROJECT
. AVATAR:
. The Four Eleventals

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

Dragon27   3 апреля 2010 в 18:55

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

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

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

Wortecs   3 апреля 2010 в 23:26

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

SaRoF   3 апреля 2010 в 23:58

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

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

Dragon27   4 апреля 2010 в 00:33

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

&
n
b
s
p

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


                        глююючит...


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

Dr. Manhattan   4 апреля 2010 в 13:41

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

Wortecs   4 апреля 2010 в 17:13

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

JassMan   5 апреля 2010 в 08:59

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

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

        ыы

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

Fe0nx   5 апреля 2010 в 13:23

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

Dr. Manhattan   5 апреля 2010 в 13:54

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

Fe0nx   5 апреля 2010 в 16:36

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

Fe0nx   5 апреля 2010 в 16:37

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

Dragon27   5 апреля 2010 в 21:19

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

JassMan   5 апреля 2010 в 22:02

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

SaRoF   7 апреля 2010 в 00:19

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

JassMan   7 апреля 2010 в 02:47

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

SaRoF   7 апреля 2010 в 11:15

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

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

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

SaRoF   7 апреля 2010 в 14:37

я уже битый час пытаюсь зделать тригер на "Пихание" или "толкание" моба.
Каст вот какой при ударе по юниту, у юнита (которого ударили) есть 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 ?

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

JassMan   7 апреля 2010 в 14:48

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

Fe0nx   7 апреля 2010 в 18:04

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

SaRoF   7 апреля 2010 в 19:39

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

JassMan   7 апреля 2010 в 19:47

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


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

JassMan   7 апреля 2010 в 19:51

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

Fe0nx   7 апреля 2010 в 20:17

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

JassMan   7 апреля 2010 в 20:31

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

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

Fe0nx   7 апреля 2010 в 20:39

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

SaRoF   7 апреля 2010 в 21:14

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

Dr. Manhattan   7 апреля 2010 в 21:31

SaRoF
07.04.10 14:37

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

JassMan   7 апреля 2010 в 22:31

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

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

Dragon27   7 апреля 2010 в 22:38

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

SaRoF   7 апреля 2010 в 22:59

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

Dragon27   7 апреля 2010 в 23:05

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

SaRoF   8 апреля 2010 в 19:41

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

Dragon27   9 апреля 2010 в 00:37

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

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

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

ГИППЕР МАППЕР   21 апреля 2010 в 16:27

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

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

JassMan   23 апреля 2010 в 14:22

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

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

Dragon27   23 апреля 2010 в 23:56

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

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

DenisGiD   26 апреля 2010 в 11:59

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

JassMan   26 апреля 2010 в 16:18

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

DenisGiD   26 апреля 2010 в 16:44

А обойти не как???

ГИППЕР МАППЕР   26 апреля 2010 в 17:43

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

DenisGiD   26 апреля 2010 в 17:57

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

ГИППЕР МАППЕР   30 апреля 2010 в 17:48

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

JassMan   30 апреля 2010 в 20:13

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

Dragon27   30 апреля 2010 в 22:08

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

ГИППЕР МАППЕР   1 мая 2010 в 15:34

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

ГИППЕР МАППЕР   1 мая 2010 в 15:35

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

JassMan   1 мая 2010 в 20:03

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

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

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

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

Х.о.м.я.к   2 мая 2010 в 11:07

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

technome   2 мая 2010 в 16:32

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

Dragon27   2 мая 2010 в 17:46

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

JassMan   13 мая 2010 в 17:00

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

Dragon27   13 мая 2010 в 18:49

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

JassMan   13 мая 2010 в 19:37

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

SaRoF   13 мая 2010 в 23:06

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

RwC Private League   14 мая 2010 в 16:12

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

RwC Private League   14 мая 2010 в 16:14

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

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

RwC Private League   14 мая 2010 в 16:15

Mr_ILYAS = Kapa6acuk ? :_:

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


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

SaRoF   14 мая 2010 в 21:05

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

JassMan   15 мая 2010 в 11:21

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

Aspectym   15 мая 2010 в 12:16

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

RwC Private League   15 мая 2010 в 13:23

Ааа Mr_ILYAS = KiLLING SPREEE :DD

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

. . . . . .

Точечки)

ГИППЕР МАППЕР   15 мая 2010 в 19:19

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

JassMan   16 мая 2010 в 09:47

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

ГИППЕР МАППЕР   16 мая 2010 в 21:15

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

WPkMOR   17 мая 2010 в 20:40

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

JassMan   18 мая 2010 в 02:43

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

RwC Private League   18 мая 2010 в 14:04

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

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

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

RwC Private League   18 мая 2010 в 14:25

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

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

ГИППЕР МАППЕР   18 мая 2010 в 16:20

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

ГИППЕР МАППЕР   18 мая 2010 в 17:37

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

RwC Private League   18 мая 2010 в 17:44

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

JassMan   18 мая 2010 в 18:37

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

JassMan   18 мая 2010 в 18:51

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

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

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

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

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

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

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

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

ГИППЕР МАППЕР   18 мая 2010 в 19:18

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

JassMan   18 мая 2010 в 20:03

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

Andreya   18 мая 2010 в 20:29

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

JassMan   18 мая 2010 в 20:48

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

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

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

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

RwC Private League   18 мая 2010 в 20:56

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

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

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

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

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

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

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

RwC Private League   18 мая 2010 в 20:58

Mr_ILYAS

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

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

JassMan   18 мая 2010 в 23:16

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

RwC Private League   18 мая 2010 в 23:38

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

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

RwC Private League   19 мая 2010 в 00:02

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

JassMan   19 мая 2010 в 04:59

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

RwC Private League   19 мая 2010 в 14:49

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

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

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

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

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

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

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

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

JassMan   20 мая 2010 в 11:48

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

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

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

RwC Private League   20 мая 2010 в 13:00

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

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

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

Не могу правильно настроить 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


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

JassMan   20 мая 2010 в 13:43

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


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

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

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

RwC Private League   20 мая 2010 в 15:25

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

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

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

JassMan   20 мая 2010 в 16:53

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

RwC Private League   20 мая 2010 в 18:26

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

JassMan   21 мая 2010 в 05:09

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

ГИППЕР МАППЕР   23 мая 2010 в 12:25

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

JassMan   23 мая 2010 в 13:12

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

Andreya   25 мая 2010 в 14:52

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

JassMan   25 мая 2010 в 18:23

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, то есть в то, что я написал.

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

ГИППЕР МАППЕР   26 мая 2010 в 10:20

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

JassMan   26 мая 2010 в 10:31

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

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

ГИППЕР МАППЕР   26 мая 2010 в 17:48

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

Dragon27   26 мая 2010 в 19:59

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

Andreya   26 мая 2010 в 20:34

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

new dlalv   26 мая 2010 в 21:24

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

ГИППЕР МАППЕР   26 мая 2010 в 22:53

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

JassMan   27 мая 2010 в 00:34

Andreya не совсем тебя понял. . .

просто находишь угол между текущим юнитом из группы и перемещаешь по этому углу, каждый юнит отлетит в сою сторону

или что ты имел ввиду?

new dlalv   27 мая 2010 в 09:15

ГИППЕР МАППЕР
Мне много чем гидра не нравится. В карте, что я делаю, гидра не получится. Просто там у меня зона, где респятся мобы, а рядом с порталом зона где они умирают, так если один попадет в эту зону, то все остальные, что будут из него появляться, тоже пропадут. Именно по этому мне надо что бы они ПОЯВЛЯЛИСЬ В ОПРЕДЕЛЕННОЙ ЗОНЕ, а не где попало.

Andreya   27 мая 2010 в 13:00

Mr_ILYAS, вот нечто такое :) savepic.ru/1180523.htm

JassMan   27 мая 2010 в 13:07

Ну я так и подумал . . . жди

JassMan   27 мая 2010 в 16:30

Andreya, вот на смотри наработку.

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

Число 22, найдёшь его — это кол-во раз он пронесётся на скорости 25.

А дальше там число 32 — это максимальное количество перемещений. После 22 и до 32 раза (последнего) он уже будет перемещаться на скорости 10. То есть более плавная остановка, так на мой взгляд реалистичней выглядит.

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

Будут вопросы — спрашивай, не молчи!

Andreya   27 мая 2010 в 20:06

Воо то что надо:)) Спасибо большое! Меня вот только одно удивляет: в наше время еще находятся люди, которые могут потратить своё личное время и усилия на помощь кому-то, совершенно незнакомому человеку!
Я оч благодарен..Спасибо) Правда jass остается для меня еще мало доступным и непонятным, но основную идеи я уловил)

new dlalv   28 мая 2010 в 11:37

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

Axel89   28 мая 2010 в 21:49

Можно просто попробовать при смерти моба создать подобного на том месте, где ты хочешь. Нафига тебе так париться, а?

JassMan   28 мая 2010 в 23:09

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

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

Axel89   28 мая 2010 в 23:44

Да. И не забывать периодически прверять число ЖИВЫХ мобов в группе, если хочешь, чтобы те и дальше респились. Если таковых не присутствует, то УБИРАЕШЬ(а не убиваешь!) всех юнитов из группы...

А если хочешь, чтобы после смерти появлялся подобный моб, то :

Это проще всего - После смерти создаешь юнита подобного типа(Unit-type of (Dying unit)) в нужном месте

Есть и другие способы решения проблемы...

_RoZoR_   29 мая 2010 в 16:28

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

Axel89   29 мая 2010 в 16:50

????
Что же здесь сложного? Отключи скрипт при его выполнении. Т.е. испльзуй в скрипте задания функцию Turn off(this trigger), вне зависимости от последовательности

_RoZoR_   30 мая 2010 в 10:16

о спс чел)

_RoZoR_   30 мая 2010 в 10:22

а как можно сделать знак восклицания над головой?

Axel89   30 мая 2010 в 12:04

Мужик, используй: спецэффект ->Create a special effect on unit
Create a special effect attached to the overhead of **** using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
Только вместо **** указывай нужного юнита, естесственно...

XenoOxotnik   30 мая 2010 в 15:18

народ а как в редакторе убить юнита и оставить его тело чтоб не исчезало?

_RoZoR_   30 мая 2010 в 18:32

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

RwC Private League   31 мая 2010 в 19:10

Ильяс дикая помощь нужна!!! В аську зайди умоляю...

Kapa6acvlk   2 июня 2010 в 14:44

XenoOxotnik
Сделай нового юнита с нужной тебе моделькой, дай ему способность "москиты", и триггером (после старта карты) поставь проигрывать анимацию трупа.
_RoZoR_
Создаешь массив переменных (integer), записываешь каждый тип предмета в переменную, создаешь функцию которая будет выдавать рандом число, по этому числу выбирать предмет из массива, и совать его на продажу.

2ALL
Возможно я вернулся, мне что-то скучно в последнее время, так что я тут =)))

JassMan   2 июня 2010 в 17:59

Это называется:
"Я зашёл только щас, потому что только в данный момент мне скучно, так что не расчитывайте. . . Всё всем пока. . . Я больше не вернусь." ))

Kapa6acvlk   2 июня 2010 в 18:28

Просто меня задрали всякие черти которые тоннами шлют разные вопросы мне на почту, причем 99% этих вопросов, это тупая мура которая 100500 раз обсуждалась на всех форумах посвященных WE. Так же несмотря на то, что любой поисковик типа Яндекса или Гугла дает ответ на этот тупой вопрос, люди предпочитают слать тонны текста и ждать ответа. Нет что бы приложить хоть каплю усилий, и почитать небольшую статью, попытаться понять, как что-то работает, НЕТ же, гораздо более *beep* слать мне кучу *beep* на почтовый ящик, что бы я это для кого-то делал. Я никому *beep* ничем не обязан. Я делаю то что мне нравится, но когда тебе начинают пихать одно и то же, начинает бесить жутко, и уже задумываешься, а не послать ли всех *beep*.
Короче, я хотел что бы мой мозг не окончательно засох, чем-то его занять, но мне пишут, что я высокомерный кусок дерьма. Спасибо Mr_ILYAS, ты же именно это хотел написать. Я был очень сильно обижен твоим постом.

Axel89   2 июня 2010 в 18:50

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

JassMan   2 июня 2010 в 19:23

Я про твоё высокомерие ничего не говорил, я намекал на твою очень. . . эмм . . . "занятость" типа бб ждите еще пол года меня ))

Кстати а кто те на мыло шлёт чота? мне то ничего не приходит. . .

А по поводу дуратских вопросов я в игноре держу, или как спам отмечаю)

Kapa6acvlk   2 июня 2010 в 19:36

Иногда вопросы доходят до абсурда, типа как сделать соединение предметов, ну зайди ты в гугл, напиши свой вопрос, первая же ссылка ведет на FAQ на этом форуме, нет надо написать письмо типа:
"Превед я тут на форуме нашел твою почту, и почитал твои сообщения ты хорошо разбираешься в картах для варкрафт, подскажи пожалуйста, я вот тут делаю карту и уже целую неделю не могу понять как в доте аллстарс сделано соединение предметов."

Нуж ЁКЛМН, за неделю то можно было бы найти ответ на свой вопрос даже и без гугла, тупо почитав все подряд статьи на каком-нибудь XGM или подобном сайте.
Просто ппц, у меня нет слов...

JassMan   2 июня 2010 в 21:35

кстати меня на "кс ж м" забанили (xgm)) )

У меня тут вопросец: так как пользоваться разделом globals, я вот создаю его в триггере или в нестондартном коде, а редактор ругается

Alex_RozZ   2 июня 2010 в 21:39

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

Kapa6acvlk   3 июня 2010 в 02:00

Mr_ILYAS
Не совсем понимаю о чем речь. globals инициализирует все глобальные переменные во время инициализации карты, зачем он тебе я не совсем понимаю.

JassMan   3 июня 2010 в 04:23

Ну кароч я видел как люди в сами создавали свой раздел globals как это сделать? у меня не получается

Kapa6acvlk   3 июня 2010 в 16:40

Mr_ILYAS
Может быть те люди пользовались vJass или cJass, в каком -то из них можно создавать globals в любом месте кода, компилятор потом сам собирает все разбросанные по коду globals'ы в одну функцию.
Так же некоторые люди, когда публикуют свой скрипт на форумах, перед скриптом пишут globals, и там все глобалки, что бы человек потом не путался.

JassMan   3 июня 2010 в 18:30

Блин. . . чтож. . . жалко, что в обычном Jass такое не возможно :-(

Andreya   3 июня 2010 в 18:45

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

И еще. Mr_ILyas , который мне сделал Stomp Spell, если ты помнишь в триггере была некая лок. реал. переменная "а". От чего зависит её значение?

Kapa6acvlk   3 июня 2010 в 18:58

Andreya
Чесно скажу, играл в АллСтарс 2 раза, и была это версия 5-какая-то, поэтому попрошу описать скилл. Ну или Mr_ILYAS возможно играет(л) в эту карту и поможет тебе без описания скилла.
А от себя добавлю, чего вы все к этой доте прицепились, у вас, что вооброжения никакого нет. Если сами испытываете проблемы с придумыванием скиллов, то у вас наверняка есть други, и други тоже могут что-то напридумывать. У меня к примеру есть около 10 героев не воплощенных в реальность, но придуманных другами, причем вполне забавных =)).

maclaud007   3 июня 2010 в 20:47

Привет всем гуру) Я Олег. Начинающий картостроитель. Читал читал форум но так и не нашол ответов на пару вопросов. Разбираюсь в редакторе довольно не плохо уже. но всё же есть мелочи которые не когда не делал и поэтому не знаю:

1) Как сделать при загрузке карты что бы у каждого игрока был клик по мини карте ALT+A или как клавишами там. ну чтобы такой круг делался на мини карте.?

2) Есть игроки и оин может бить неизвесное количество мобов. Карта типа Shango. Как сделать статистику игроков по убийствам мобов?

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

буду ждать ответа.

Andreya   3 июня 2010 в 21:16

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

JassMan   3 июня 2010 в 22:07

Andreya по поводу вопроса с переменной a: там она устанавливается в зависимости от некоторых факторов. a является углом между каждым пехотинцем и минотавром.

Для каждого юнита находится свой угол.
Там идёт цикл ForGroup, и все действия внутри функции Move_Units будут повторятся для каждого юнита, но со своими значениями, так как для каждого юнита данные (углы (в радианах, а не в °)   ) сохраняются и выгружаются из своей категории в хеш-таблице.

То есть вместо категории я писал ссылку (handle —номер ячейки памяти игры какого-либо объекта) каждого юнита: GetHandleId(c), где c — это текущий юнит из цикла (из группы).

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

И поэтому я сделал так:
Чтобы юниты отлетали по первичному углу, для этого я использовал логическую (boolean) и сравнивал:
если она равна true то находил угол и записывал его в переменную a, ну а если false, то в переменную a записывался предыдущий угол.

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

Думаю если прочесть раза три, то поймёшь что я тут сказал))
_________________________________________________________________________________________________________

По поводу мп регена. Есть такая штука, искать её надо в integer (целочисленных)
в гуи: Предмет - item Charges Remaining (количество оставшихся зарядов)
в Jass: GetItemCharges(твой пердмет)

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

Кстати число зарядов тоже можно триггерно менять, к примеру, как в Доте, если убить гера, установить кол-во зарядов +1. Это уж ты сам поищи в триггерах . . .

maclaud007   3 июня 2010 в 22:57

Mr_ILYAS, подскажи мне

JassMan   3 июня 2010 в 23:41

1)stat.ipicture.ru/uploads/100604/bCb5R2m20b.png

2)Если это касается мультбоардов, то тут помочь не могу, ибо с ними не работал.

3) Можно попробовать так:
сделать так чтоб в данном здании покупались предметы (естественно изменит их описание, то есть написать мол: "апгрейд чего-то там . . ." )

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

В общем идею я думаю понял, дальше сам раскрутишь. . .

Kapa6acvlk   4 июня 2010 в 00:45

maclaud007
Вместо предметов лучше использую юнитов, и тут же их удаляй, тогда не будет косяка со свободными слотами, уровень абгрейда можно менять триггерно.
call SetPlayerTechResearched(Player(0), 'R000', I) - где I - уровень твоего апгрейда R000 для первого игрока.

По мультибордам скажу, ничего сложного, на ХГМ есть очень хорошие по ним статьи. При желании разберешься, ибо делать для тебя борд явно никто не будет, т.к. обычно это геморрой =). Если ты хочешь лидерборд, тут все просто, одна переменная и игрок.

Mr_ILYAS
Можно менять реген МП у героя с помощью триггера?? о_0 или ты предлагаешь добавлять триггером МП каждую секунду?

JassMan   4 июня 2010 в 02:07

второе конешно. . .

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

maclaud007   4 июня 2010 в 10:03

спасибо большое.

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

maclaud007   4 июня 2010 в 10:14

тыкаю помощ в редакторе пишет версия 1.24c
ipicture.ru/uploads/100604/LZErAlM7TW.jpg
нету спец эфектов таких. чето не врубаюсь куда делись. или надо версию выше редактора?

maclaud007   4 июня 2010 в 10:16

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

JassMan   4 июня 2010 в 13:11

Там 2 класса спец эффектов, ищи наверху, у тебя между прочем в единственном числе, а у меня во множественном "Спецэффекты".

maclaud007   4 июня 2010 в 16:46

Спасиб:)
А может ктонить помоч написать Мультиборд

1 столбец ник 2 столбец нанято мобов 3 столбец убито мобов
8 игроков. 4х4 игрок 1,2,3,4 против 5,6,7,8
чтобы былопримерно вот так ipicture.ru/uploads/100604/MRxQ18nHv2.jpg
пробелм по созданию нет. но как записывать у этих игроков все значения не получается(((


И еще по зданию: "3) есть область. в ней 4 игрока строят здания. в цетре этой области стоит стоит здание. и вот задача. я вэто здание сделал улучшение (+ жизни и + броня) чтобы можно было вкачивать. но как сделать доступ к этому зданию всем 4-ём игрокам ??? его надо сделать как магазин или что? апгрейд (+ жизни и + броня) не один. 1 ап потом 2 ап и так далее до 10ти апов там. Как осуществить чтобы все игроки могли делать апгрейд???"

Так и не понял как вы расписали . что со зданием то делать:)

Kapa6acvlk   4 июня 2010 в 16:59

maclaud007
Ве что нужно тебе знать о мультибордах есть тут: xgm.ru/p/wc3/multiboard_main
Большего от тебя не требуется. Если ты не понимаешь, что такое переменная, тебе сюда: xgm.ru/project.php?id=100&page=trigger_basic.. а потом уже в мультиборды.

По апгрейдам. Самое простой способ, как это сделал я, что бы не изобретать некий летательный аппарат.
Стоит наше здание, вокруг него локация, в здании продаются мобы (нейтралы) у них стоит иконка твоего апгрейда, и описание апгрейда. Вокруг здания есть локация. При попадании в которую эти самые мобы исчезают с помощью удаления (т.к. события покупки моба в магазине по моему нету, ну или плохо искал). Триггер прост как 2х2, всего 2 строки. Событие моб встал в локацию, в действии ветвление if, если мод такого типа, то тото, если другого, то иначе и так на всех мобов, так вот, если моб такого-то типа, то установить уровень нужного тебе апгрейда (SetPlayerTechResearched) на один выше, для игрока купившего моба. Как проще расписать, даже не знаю. А делать наработку ради триггера в 2 строчки просто глупо.

JassMan   4 июня 2010 в 17:50

а зачем с локациями мудрить разве не достаточно события "покупки юнита" ?

Andreya   4 июня 2010 в 20:02

Mr_ILYAS, Да, я понял, но мне нужно сам принцип нахождения угла (то есть чему равняется переменная "а" для каждого юнита)
я увидел, что это arcctg расстояний координат Х и Y между юнитом "с" и "u", но, скопировав это, у меня ничего не вышло

PS спасибо за толкование блудстона)

JassMan   4 июня 2010 в 20:39

Всё очень просто:
Допустим у нас есть тока 1 и точка 2
Чтобы найти между ними угол (естественно в радианах), используем эту функцию Atan2.
Где в скобках указываются координаты этих точек.

Но порядок в котором нужно указывать эти координаты таков:
Во-первых нужно видеть разницу в углах [между 1 и 2] и [между 2 и 1]. То есть найти направление (то есть тот самый угол) вектора, соединяющего эти две точки.

К примеру, в первом случае (между 1 и 2) концом вектора является точка 2.

Так вот вернёмся к нашей функции Atan2. Она использует два параметра (реальных числа).
Эти два числа являются разницами между координатами точек:

2x - 1x   и   2y - 1y

Так я к чему заводил разговоры о векторах и их началах и концах — вычитать нужно из конечной точки начальную.
И сначала (так уж устроена функция) нужно вычитать координаты Y-овые, а во втором параметре (после запятой) X-овые координаты.

Итак угол между 1 и 2 получаем:
Atan2( 2y-1y , 2x-1x )
______________________________________________________________________________________________________________________

Там мы находили угол между юнитом u и c. Следовательно c — конечная тока. Поэтому для их нахождения вычитали в таком порядке:
set a=Atan2( GetUnitY(c)-GetUnitY(u) , GetUnitX(c)-GetUnitX(u) )

Получаем угол в радианах. Нам это как раз и нужно, так как функции Cos(a) и Sin(a) работают в Jass'e тоже в радианах.

maclaud007   4 июня 2010 в 21:29

Kapa6acvlk, Mr_ILYAS

По апгрейдам я так понимаю если я так сделаю то оно будет как маркет? тоесть как таверна.
Но на карте у меня мобы должны это здание бить. То они его будут бить то? И все ли игроки которые в клане смогут нажимать на это здание и грейдить его? И кому это здание надо присваивать по цвету??? Расскажите плз поподробнее как сделать.

Мультиборд я делал правильно. но ошибся где делать обновление. щас это всё сделал. клики по карте сделал. пока вот этот вопрос только остается

Kapa6acvlk   4 июня 2010 в 22:03

Mr_ILYAS
а зачем с локациями мудрить разве не достаточно события "покупки юнита" ?
Ответ заключается в моем посте, который ты не дочитал до конца, а именно я написал: "т.к. события покупки моба в магазине по моему нету, ну или плохо искал".
Ведь я не тренирую юнита, а покупаю наемника, это разные вещи.

maclaud007   4 июня 2010 в 22:53

покупку то я юнита сделал))) а как сделать доступ к этому зданию другими игроками? ??? каким цветом надо делать это здание или надо делать как маркет его? то как его сделать так?

JassMan   4 июня 2010 в 23:23

здание делаешь владельцем игрока 14 или 15 (резервные игроки)

Ну а дальше через действия в категории Игрок установить альянс
заставить такого то игрока считать игрок 14 как нейтральный (с общим или не общим полем зрения)
а для какого нибудь игрока например для красного сделаешь так чтобы он был союзником и чтоб были "общие войска-все"

maclaud007   4 июня 2010 в 23:39

А если слотов нет больше свободных?

JassMan   4 июня 2010 в 23:50

хз кароч)) я не супер мозг по редактору. . . не всё могу знать. Это мне надо самому уже пробовать пытаться.

maclaud007   5 июня 2010 в 11:23

Kapa6acvlk к тебе вопрос тогда. помоги плз. опиши поподробнее

Andreya   6 июня 2010 в 10:56

во все стало на свои места))

Kedrevich   6 июня 2010 в 23:52

Здрасте всем можете сказать 1 вещь
Как сделать так чтоб появились мобы на крте и пошли на героев которого ты выбрал в таверне типо как жизнь на аренуплиз буду очень благодарен (Kapa6acvlk жду от тебя особой помощи)

JassMan   7 июня 2010 в 00:54

Он тебе не ответит, подобные вопросы всех уже достали

Kedrevich   7 июня 2010 в 09:16

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

JassMan   7 июня 2010 в 19:29

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

Kapa6acvlk   7 июня 2010 в 19:43

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

Kedrevich
Для того, чтобы мобы шли на героя, необходима ОЧЕНЬ сложная система, навигации для мобов. Для нее нужны особые знания в программировании на ассемблере, тут без таких знаний ну просто никуда. Ну если ты не умеешь програмить, то попробуй создать триггер создающий мобов (Create unit), и добавить в него целую 1 строчку помимо первой, в которой ты направишь (отдашь приказ) своего созданного мобы, атаковать твоего героя. Это просто невероятно сложно, строка приказа скрыта за 7-ю печатями, некоторым мапперам, ну или мапмейкерам, кому как больше нравится, требуются десятилетия, что бы найти это строку.

Kedrevich   7 июня 2010 в 20:11

ладно обойдусь а Kapa6acvlk а знаеш мапу жизнь на арене так ка сделано не наешь ??

Kapa6acvlk   8 июня 2010 в 00:21

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

JassMan   8 июня 2010 в 15:53

Видима сарказма он не понял. . .

Kedrevich   8 июня 2010 в 17:39

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

JassMan   8 июня 2010 в 19:14

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

Kapa6acvlk   9 июня 2010 в 01:40

Kedrevich
Вот держи наработку, там целых 2 строчки.
webfile.ru/4540995

JassMan   9 июня 2010 в 05:26

беднягу гнома завалила толпа мобов))

Kapa6acvlk   9 июня 2010 в 12:15

Mr_ILYAS
Да, ему явно сегодня не фортит =))

NyaAndNya   12 июня 2010 в 13:54

у мя проблема с триггером
Вкратце о том что я хочу замутить):
заходит герой в область, подлетает вертолет (верт нейтрально-пассивный), использует отредактированное "перевоплощение" эльфов - становится наземным. Рядом стоящие герои умирают (типа от лопастей)) поэтому нужно отойти от него), забирает героев в небольшой области рядом с ним, снова использует способность - взлетает, и летит обратно.
Я не понимаю как сделать так, чтобы это заработало:
Отряд - Pick every unit in (Units in *название области* gen matching ((Unit-type of (Matching unit)) равно *имя героя*)) and do (Боевая единица - Explode (Picked unit))
в условиях-событиях ничего не стоит. Этот триггер активируется предыдущим. Предыдущий работает полностью, т.к. в конце его должен проигрываться звук, который так и делает.

Помогите пожалуста кто чем может))

Andreya   13 июня 2010 в 21:36

Mr_ILYAS, помогай)) я се про тотже stomp spell)

function aaee takes nothing returns nothing
local unit c = GetEnumUnit()
local location u = GetSpellTargetLoc()
local real o = Atan2(GetUnitY(c)-GetLocationY(u),GetUnitX(c)-GetLocationX(u))
set o=udg_ooo
call DisplayTextToForce( GetPlayersAll(), ( R2S(o)))
endfunction

вот такая вот функция, сделал всё как надо( вроде бы)... НО..., вот ета штука Atan2(GetUnitY(c)-GetLocationY(u),GetUnitX(c)-GetLocationX(u))
почему то всегда равна нулю, для наглядности даже сделал отображение её значения на дисплее..я в ауте..

JassMan   13 июня 2010 в 23:35

После Atan2 добавь ниже еще 2 строчки:

call BJDebugMsg("Ссылка юнита c= "+I2S(GetHandleId(c)))
call BJDebugMsg("Ссылка локации u= "+I2S(GetHandleId(u)))


И посмотри, что выдает на экране, если нули, то в проблема в одном из них. . . Тоесть что-то из них равняется null

Ах да и еще, если ты находишь угол [между юнитом и локацией] то:
Atan2(GetLocationY(u)-GetUnitY(c),GetLocationX(u)-GetUnitX(c))

Потому что в твоём случае он находит угол [между локацией и юнитом] — это уже совсем другой угол (на 180° в другую сторону).

Не забудь учесть это, хотя я не знаю, мб ты так и хотел . . .

Dr. William Blake   14 июня 2010 в 17:11

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

JassMan   14 июня 2010 в 17:24

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

Dr. William Blake   14 июня 2010 в 18:32

Э, ну я как бы только начал все это делать. То есть я вообще не представляю понятия, как это реализовать. А хоть как то можно научить ии создавать нестандартные (мои) боевые
единицы?

JassMan   14 июня 2010 в 21:23

Хз это тогда уже не ко мне

Загляни лучше сюда

gosu.killer.men   15 июня 2010 в 22:06

Кто знает, что мне надо делать: Когда игра запускается, через 2 секунды мне пишет что поражение!
Как исправить? Может виноват парящий текст, который вылезает в начале игры?

JassMan   15 июня 2010 в 22:37

эмм удали все триггеры)   (если они стандартные)

gosu.killer.men   16 июня 2010 в 10:49

2 Mr_ILYAS
Думал не поможет, а помогло! Спс)

ГИППЕР МАППЕР   16 июня 2010 в 22:20

Помогите плиз)
Туфта вообще-то))
вот тут инвентарь xgm.ru/forum/showthread.php?p=723129#post723129
Я запарился с его импортированием.. делаю всё как надо, но пишет "Для триггера LIS отсутсвует функция InitTrig_LIS" как это исправить... ВЫручайте

Kapa6acvlk   17 июня 2010 в 00:38

NyaAndNya
Покажи карту, или создай отдельную наработку с тем, что ты хочешь видеть, сложно по одной сточке сказать, что именно не так.
Dr. William Blake
С AI здесь никто не работал, в основном триггеры, а на триггерах писать систему поведения компа это большой гемор, особенно если карта будет мили, лучше разбираться по статьям, посмотри вот это, тут что-то про AI редактор написано. warcraft3ft.info/board/ai_redaktor/14-1-0-1127 Ну а потом иди по ссылке, что дал Mr_ILYAS
ГИППЕР МАППЕР
Код триггера в карте написан на vJASS, на обычном редакторе скомпилировать такой код не удастся, ищи редактор с поддержкой vJASS. Я модификациями jass'а не пользуюсь, может Mr_ILYAS пробовал писать на нем, может посоветует чего.

JassMan   17 июня 2010 в 01:13

Я тоже не хочу учить vJass и cJass, так что это не ко мне. . .

P.S. Карабас, где ты тут увидел пользователя NyaAndNya?

ГИППЕР МАППЕР   17 июня 2010 в 05:45

Ильяс)) это Gosu.killer.men))

Kapa6acvlk   17 июня 2010 в 17:59

Mr_ILYAS
Привожу пост целиком:

NyaAndNya
12.06.10 13:54
у мя проблема с триггером
Вкратце о том что я хочу замутить):
заходит герой в область, подлетает вертолет (верт нейтрально-пассивный), использует отредактированное "перевоплощение" эльфов - становится наземным. Рядом стоящие герои умирают (типа от лопастей)) поэтому нужно отойти от него), забирает героев в небольшой области рядом с ним, снова использует способность - взлетает, и летит обратно.
Я не понимаю как сделать так, чтобы это заработало:
Отряд - Pick every unit in (Units in *название области* gen matching ((Unit-type of (Matching unit)) равно *имя героя*)) and do (Боевая единица - Explode (Picked unit))
в условиях-событиях ничего не стоит. Этот триггер активируется предыдущим. Предыдущий работает полностью, т.к. в конце его должен проигрываться звук, который так и делает.

Помогите пожалуста кто чем может))

JassMan   17 июня 2010 в 23:29

я слепой) причом 3 раза пересмотрел чат и не видел его ника)

Kedrevich   17 июня 2010 в 23:30

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

Kapa6acvlk   18 июня 2010 в 01:07

Mr_ILYAS
Это форум =))

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

ГИППЕР МАППЕР   18 июня 2010 в 06:24

Слухайте.
Впервые столкнулся... Вопрос опять-же нубский)) Я представляю как это делается но функций найти не могу=(
Как сделать чтобы вместо того чтобы юнит двигался в точку куда его отправляешь стрелял? т.е. даёшь приказ двигаться, а он чтоб стрелял в ту точку?Хотябы функции назовите дял построения такой системы =_+

JassMan   18 июня 2010 в 07:01

Держи DamageTarget (Right Click).w3x

Элементарно, Ватсон. . .

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

ГИППЕР МАППЕР   18 июня 2010 в 09:46

Спасипа *_* опять спасаете ребят

Kedrevich   18 июня 2010 в 22:47

Kapa6acvlk
18.06.10 01:07 как вопще прога самому рисовать модельки называется!

Kapa6acvlk   19 июня 2010 в 02:59

Kedrevich
полагаю 3DS MAX
есть еще War3 Model Editor есть на www.xgm.ru в утилитах

gosu.killer.men   19 июня 2010 в 16:45

У меня несколько вопросов:
1) Как сделать, чтобы враг появлялся через 10 секунд, а союзники могли убежать (принцип как в "Маньяк с пилой")?
2) Как добавить ману работнику за альянс? Я пробовал добавить "Изначальное количество маны" изменять, но все равно маны не видно и скилы нельзя юзать
3) Где взять заклинание как из "Маньяк с пилой" РАДАР, чтобы при использовании на мини-карте мигало местонахождение врагов?

gosu.killer.men   19 июня 2010 в 17:12

Ответьте кто-нибудь!! Мне срочно нужно!

JassMan   19 июня 2010 в 18:03

Как они замутили так: после окончания игры показывается мультибоард на фоне картинки, причём картинка живая как в компании.
Вот скрин.

gosu.killer.men Зачем копировать какие-то карты слабо свою сделать?

gosu.killer.men   19 июня 2010 в 18:12

Mr_ILYAS
При чем тут СЛАБО? *лоло*
Вдруг я интересуюсь просто? Мне интересно, че я должен терпеть и мучаться, не зная ответа благодаря тебе?
Не знаешь ответа не лезь плз, спс

JassMan   19 июня 2010 в 18:29

Не надо говорить, что я чего-то там не знаю . . . Я знаю побольше тебя! Уж поверь наслово.

1) Вопрос составлен не корректно, должен сначало сказать что именно у тебя не получается. . .
2) Там есть строка "Характеристики - Максимум маны"
3) Есть такое действие: Спецэффекты - Ping Minimap With Color

gosu.killer.men   19 июня 2010 в 19:01

Mr_ILYAS я и не говорю, что ты не знаешь. Лан, тут вопрос задают а не разбираются)
1) Мне бы хотелось узнать, как сделать, чтобы враг появлялся через 10 секунд. Я его поставил на определённое место, а он появился только через 10 секунд? Мне можно не подробно, что делать в триггерах написать только.

JassMan   19 июня 2010 в 20:10

А зачем его заранее ставить? — Создай в нужный момент. . .
(англ. Create)

gosu.killer.men   19 июня 2010 в 21:09

по 1 вопросу я сам разобрался, по 2-ому - вспомнил

FapQq   20 июня 2010 в 04:23

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

FapQq   20 июня 2010 в 04:25

Когда ставлю через редактор объектов у юнита награду за убийство, ничего не дают

JassMan   20 июня 2010 в 05:22

Ищи в действиях триггеров в категории "Игрок - " (или "Игра - " . . . точно не помню).

Kapa6acvlk   20 июня 2010 в 19:39

Mr_ILYAS
модельку экрана заставки вставляй в карту, не знаю можно ли ее дать просто (без модернизирования модели в редакторе) некоему эффекту, скорее всего придется открыть в редакторе и изменить адреса до текстур, задник не вставится, поэтому рельеф сзади нужно руками сделать, потом настраиваешь камеру для того, что бы создать эффет просмотра меню, "замораживаешь" камеру. Создаешь мультиборд. Вообще в WEU в эфектах вороде можно одну заставку в карту вставлять. Да и несколько карт (синематиков) я видел с использованием заставок из меню, нов есили такие карты по 60 МБ =))
FapQq
Игрок - Turn Награда за убийство Вкл. for Игрок 1 (красный)

JassMan   21 июня 2010 в 05:16

Да не. . . та карта весит 324 кб. . .

gosu.killer.men   21 июня 2010 в 12:21

Можно вопрос? Я хочу чтобы, когда определённый unit открывал область, то звучал звук
Я делаю следующее:
События Боевая единица- a unit enters Область
Условия (Unit type of (triggering unit)) равно "тот"
Действия Звук-Play CryptFiendPissed2
Но когда "тот" открывает область, которую я выбрал, то ничего не воспроизводиться! Что делать, кто знает?

JassMan   21 июня 2010 в 12:28

На Гуи звук криво настроен, в jass'e все гораздо проще. . .
Возможно не то действия для воспроизведения звука выбрал.

gosu.killer.men   21 июня 2010 в 12:39

А при выборе звука есть 2 Value, их надо обязательно поставить. Я поставил рандомно 5 и 5. Это как нибудь влияет?

gosu.killer.men   21 июня 2010 в 13:24

+ вопрос: При использовании заклинания хочу чтобы unit лёг на землю (НЕ УМИРАЛ!). Что выбрать в действиях?

JassMan   21 июня 2010 в 14:50

побалуйся с действиями анимации, может чо получится

gosu.killer.men   21 июня 2010 в 15:25

Чет пробовал) Не получалось. Ну ладно, придётся все попробовать

Kapa6acvlk   22 июня 2010 в 04:01

gosu.killer.men
настрой свой звук в редакторе звука, иначе он не будет воспроизводиться, я где-то тут раньше об этом писал.
Для того чтобы юнит "лег" на землю проиграй анимацию смерти и в конце проигрываия анимации поставь скорость анимации 0%

Mr_ILYAS
В Гуи со звуком все нормально =)

Andreya   23 июня 2010 в 15:36

Mr_ILYAS, пробовал поменять местами - не работает
Можешь пояснить что там в функции Debug нужно указывать?
И вообще как то странно, я прописал чтобы вывело на дисплей сам результат этого вычисления ( не переменную "о") и воаля высветилось реальное число
PS сори что ответил спустя много времени.

SlawkoBond   24 июня 2010 в 09:47

У меня очень важный вопрос!
Как сделать что бы у героя после использования спела менялась модель?
Заранее спасибо.

Deidara Sempai   24 июня 2010 в 10:09

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

SlawkoBond   24 июня 2010 в 10:24

Deidara Sempai нужно прописать текстуры.

Deidara Sempai   24 июня 2010 в 10:43

А можно по подробней=))))))))))))))))а то я нуб в созданиях картах

SlawkoBond   24 июня 2010 в 10:50

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

SlawkoBond   24 июня 2010 в 11:10

да.
ответьте на мой вопрос плис

SlawkoBond   24 июня 2010 в 12:00

а все уже не надо) Я просто добавил юниту скил перевоплощение, а в нем все настроил.

Kapa6acvlk   24 июня 2010 в 16:52

Deidara Sempai
Следует корректно импортировать модель в карту. Обычно вместе с моделью идет файл ReadMe, в котором написаны пути для импортируемых текстур. Если этого файла нет, то можно открыть модель в блокноте и искать ".blp", там же будет и путь.

gosu.killer.men   25 июня 2010 в 14:19

А возможно ли как нибудь, чтобы когда юнит вставал на землю нежити, то он погибал?
Я знаю что так: Юнит открывает область Unit kill, но все мне лень отмечать, слишком много областей будет, а как сделать, чтобы при наступании на опреелённую почву унит kill?

Kapa6acvlk   25 июня 2010 в 14:47

gosu.killer.men
проверяй на каком типе текстуры земли стоит юнит.

gosu.killer.men   25 июня 2010 в 16:40

Kapa6acvlk
В смысле на каком? Текстура: Яд-Фелвуд
Ты про это?

SlawkoBond   25 июня 2010 в 22:26

Kapa6acvlk
Можешь мне на мыло кинуть наработку, что бы при запуске игры выбивало окно диалоговое с количеством килов.
10, 25, 50, 100. Я дальше разберусь. А то когда я пробую у меня окно появляеться но кнопок нет(

ГИППЕР МАППЕР   26 июня 2010 в 05:00

Снова здравствуйте товарищи)
Меня к сожалению тоже "пнули с XGM" то им подпись не нравится то слово "иконки" за которое они ставят нарушение за мат +_+

Уф я уж забыл кто хотел движок с физикой написать. Просьба сделать гранату с реальной физикой как в elimination tournament 2(карта)
способ исполнения без разницЫ желательно конечно попроще)
Способность для воина (точнее для предмета)
Кто сделает тому мегореспектище и будет золотыми буквами внесён в карту.
Большая просьба сделать. Уж как только её сделать не пытался ну не осткакивает от юнитов\клиффов, взрывается просто(

Kapa6acvlk   27 июня 2010 в 00:29

SlawkoBond
Кнопки моя больная тема, не получается у меня их делать, постоянно какая-нибудь фигня выходит.

gosu.killer.men
Ага

ГИППЕР МАППЕР
По моему как раз самое сложное в игростроении, это физика =) Я видел физический движок для Вар3, "Нет спасибо я пешком постою" =) Там только кода мегабайта на 2.

ГИППЕР МАППЕР   27 июня 2010 в 13:41

Карабас веришь-нет мне всё равно сколько весить будет(главное чтобы не больше максимума)
Мне нужна ента системка.(
Кстати я год назад видел такую система весила чуть больше мега-_-
Оказывается с хайва чистят системки((( почти все интересные как раз и снесли

ГИППЕР МАППЕР   28 июня 2010 в 04:39

Kapa6acvlk смеёшься?=) я это уже всё перепробовал. Ничегошеньки не понял. Допустим у меня есть физ движок, как на нём построить гранату?

gosu.killer.men   28 июня 2010 в 13:32

Kapa6acvlk
Ну я сказал тебе: Яд-Фелвуд :D
А как сделать чтобы юнит помирал, когда вставал на этот ЯД?

ГИППЕР МАППЕР   28 июня 2010 в 14:26

Карабас мл0 я спросил как делать гранату. У меня эти две системы есть но я не знаю что делать рву на себе одежду и посыпаю голову пеплом

Kapa6acvlk   28 июня 2010 в 15:38

ГИППЕР МАППЕР
Почему бы не спросить прямо в теме этой системы? Я сам понятия не имею как оно работает, т.е. мне тоже придется в нее вникать, обдумывать, и потом объяснять, почему бы не сократить лишнее действие, и не спросить сразу у ее разработчика. Не сажают в нашей стране за вопросы и штрафы не выписывают, следовательно боятся нечего.

SlawkoBond   28 июня 2010 в 17:04

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

ГИППЕР МАППЕР   28 июня 2010 в 17:24

Карабас ты читай получше.. Меня пнули оттуда!
SlawkoBond Создавай переменную целочисленную, подрпобнее напишу позже сейчас Сильно занят

SlawkoBond   28 июня 2010 в 17:33

ГИППЕР МАППЕР
Да я создавал переменную, но потом не могу найти где ее использовать.
там надо convert integer to string?
напиши плиз как сможешь.

Kapa6acvlk   28 июня 2010 в 20:45

SlawkoBond
События
Игрок - Игрок 1 (красный) types a chat message containing -kills as Подстрока
Действия
Set kills = (Integer((Substring((Entered chat string), 8, 10))))

SlawkoBond   28 июня 2010 в 22:30

Kapa6acvlk
спс, сейчас попробую.

SlawkoBond   28 июня 2010 в 22:35

Kapa6acvlk
а почему именно 8 и 10 числа?

Kapa6acvlk   29 июня 2010 в 01:37

SlawkoBond
это номера (промежуток) выбираемого символа из строки, ты пишешь -kills 542
1) -
2) k
3) i
4) l
5) l
6) s
7) пробел
8) 5
9) 4
10) 2

8 обозначает начало места выборки, 10 конец, если ты напишешь команду как -kills500, это будет 00 т.к. 5 это седьмой символ.

Kedrevich   29 июня 2010 в 10:12

Может кто-нить под кинет можельки ? а желательно мадельку гитлера ивопрос у меня есть
КАК СДЕЛАТЬ ТАК ЧТОБ умер строитель и все что он настроил тоже умерло взарволось как в петросянщине !!

SlawkoBond   29 июня 2010 в 10:49

Kapa6acvlk
спс, понял.

gosu.killer.men   30 июня 2010 в 10:50

ГИППЕР МАППЕР
спс, попробую

gosu.killer.men   30 июня 2010 в 11:50

Вопрос: почему, когда я поставил в таверну несколько войск, и при покупке их в игре мне пишет: Подождите?

gosu.killer.men   30 июня 2010 в 14:34

Кто-нибудь сделайте одолжение, я вам скину мою мапу недоделанную, а вы там поставите
справа таблицу, где будет, например:
Ник: Уровень:
[-GangstA-] 1
Или хотя бы скажите, как делать? Я чё-то повозился в таблицах рекордов, не вышло

ГИППЕР МАППЕР   30 июня 2010 в 15:23

gosu.killer.men
1. Поставь значение строки "Характеристика - Задержка перед первы пополнением" на "0"
2. Учись на примерах мультибоардах.www.hiveworkshop.com/forums/spells.php?search=Mu..

RwC Private League   30 июня 2010 в 21:25

gosu.killer.men - [-GangstA-] так вот я лонг ^_^ (ко)

gosu.killer.men   1 июля 2010 в 12:39

LongMan or Hellicopter O_o
^_^ ЛООООООООООООООООНГ :D

JassMan   2 июля 2010 в 10:39

Парадоксально! — Стоит мне посидеть пару дней без интернета и форум оживает. . .
Просто нет слов. . . Как вы так делаете?. . . ))

SlawkoBond   2 июля 2010 в 11:07

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

JerronnimO   2 июля 2010 в 15:16

Как руссифицировать карту? Какие инструменты нужны?

JerronnimO   2 июля 2010 в 22:44

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

Kapa6acvlk   3 июля 2010 в 01:09

JerronnimO
Открываешь карту в World Editor, извлекаешь текст из карты, переводишь этот текст в любом редакторе, хоть в блокноте, потом импортируешь обратно в карту.

Kedrevich   3 июля 2010 в 23:45

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

JassMan   4 июля 2010 в 00:06

Просто при новой волне мобов уже других юнитов создавать

Andreya   5 июля 2010 в 08:45

Mr_ILYAS привет, я рад что ты вернулся)) посмотри плиз пост 23.06.10 15:36

И вот еще: сделал стрелу как у Мираны на доте (летит стрела, врезается, стан) Так вот при столкновении сделал так: появляется дамми и станит
Но вот это идет с задержкой гдето .5 сек .. Сделал всё что знал, максимальная скорость полета снаряда, минимальное расстояние и т.п..Вообщем как?

JassMan   5 июля 2010 в 18:44

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

RwC Private League   6 июля 2010 в 00:06

Andreya

При кастовании стрелы запускаешь триггер который каждые 0.1 сек прибавляет в переменную по 1. Затем как стрела воткнется в кого нибдуь, вроде ты написал что сделал как, так вот, делаешь действие: установить уровень способности "СТАН" на X для Y юнита - где X число из переменной. Тоесть для пяти сек полета нужно создать 50 уровней способности СТАН. Там уж сделай плавное наростание времени стана, с помощью Автозаполнение уровней. Ну например: 1лвл - 0.1сек 2лвл - 0.2сек... Итд.

JassMan   6 июля 2010 в 03:36

Стан надо делать на основе молота бурь, скорость снаряда 10 000, анимацию убрать и всё будет норм

Andreya   6 июля 2010 в 16:05

Ну да я всё так и сделал, только чтобы не заморачиваться с уровнями поставил действие - ждать (расстояние между точками вылета и столкновения делить на 400) и после этого удалить заклинание оглушение
Дело в том, что пока дамми выполняет способность и пока снаряд летит проходит около 0.5 сек

RwC Private League   6 июля 2010 в 16:25

Ну смотри... может багнутым вариантом оказаться... Не люблю я эту фукнцию - wait...

gosu.killer.men   6 июля 2010 в 16:43

Скиньте кто-нибудь скрин, как делать справа таблицу, где написан уровень ник и т.п.
(скрин триггера)
Почему скрин? Потому что так понятнее
а лучше мапу
спс

gosu.killer.men   6 июля 2010 в 16:51

А все разобрался

Kedrevich   7 июля 2010 в 10:44

у меня вопрос как сделать так чтоб умер строитель и все что он построил тоже умерло как В ПЕТРОСЯНЩИНЕ плиз чуваки!!!

Kedrevich   7 июля 2010 в 10:46

а кто играл в petrovbalans5.13J там вопщем у ьооссов отака больше чем можно прописать
и у бункера атака 75000000000 а токо не риально прописать как они так сделали ???

gosu.killer.men   7 июля 2010 в 11:57

Вопрос: Как сделать так, чтобы определённое здание приносило по 1 золоту и 1 дереву раз в 2 секунды?

gosu.killer.men   7 июля 2010 в 11:59

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

JassMan   7 июля 2010 в 12:58

Это не здание приносит а триггер. Если напрячь мозги то можно найти ответ на каждый вопрос самому, если логически рассуждать:
"Так, мне нужно каждые 2 секунды . . . Ага — значит периодическое событие"
"Добавлять золота и древесины. . . Действия производятся над кем? — над игроком.. . — Аха — значит нужно искать действие в категории Игрок"
Ну а дальше найти действие Игрок - установить свойство (Set Property)

SlawkoBond   7 июля 2010 в 13:17

Mr_ILYAS
а как проверить что у игрока есть это здание?

gosu.killer.men   7 июля 2010 в 13:24

Mr_ILYAS
сам поищу :D

gosu.killer.men   7 июля 2010 в 13:26

Всё нашёл. Просто иногда так не охота напрягать мозги

Kedrevich   7 июля 2010 в 13:52

а кто играл в petrovbalans5.13J там вопщем у ьооссов отака больше чем можно прописать
и у бункера атака 75000000000 а токо не риально прописать как они так сделали ??

SlawkoBond   7 июля 2010 в 14:53

Kedrevich
а зачем такую большую?

Kedrevich   7 июля 2010 в 22:32

карту типо петров делаю меня вопрос как сделать так чтоб умер строитель и все что он построил тоже умерло как В ПЕТРОСЯНЩИНЕ плиз чуваки!!!

Kedrevich   8 июля 2010 в 22:11

что ни кто не знает
как

Kapa6acvlk   9 июля 2010 в 10:18

Kedrevich
А нафига тебе такая атака, если так уж сильно надо, убей триггером от имени владельца здания, а дамаг зданию поставь 1 =)

Kedrevich   9 июля 2010 в 13:30

я ж говорил делаю мапу типо петров такаяя атакак какраз по мне в мапу пойдет 1

Kedrevich   9 июля 2010 в 13:30

может объяните как ?

SlawkoBond   9 июля 2010 в 18:20

Kedrevich
тригер что бы убить:
событие:
юнит атакует
условие:
unit of type of (trigering unit) is твоя башня
действие:
kill target unit.
Что то такое...

Kedrevich   9 июля 2010 в 23:12

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

SlawkoBond   9 июля 2010 в 23:49

Kedrevich
а такая атака и убить не одно и то же?

Kedrevich   11 июля 2010 в 11:25

нет
36к брони и 80 процентов уклона и все пофиг = мега улучшеная хрень

JassMan   11 июля 2010 в 14:55

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

Draconozavr a.k.a. XeN   12 июля 2010 в 01:17

Слушайте, а как заставить AI строить нестандартных юнитов? Пробовал, никак не получается!

SaRoF   12 июля 2010 в 10:54

Ога! Значит вы тут есть! =))) Привет всем я ВернулСо!).
Вобщем появилось желание продолжить создание своей карты т.к я к моему удивлению до сих пор играю в WarCraft 3 ... воть.
Поэтому у меня просто требование!))) Ильяс зайди в СКуйП!)) Спасибо.

Я все вобще забыл.. ну или почти все.. сейчас пока тебя нет сяду делать такой вот скилл - Минотавр(кастер) бьет бревном о землю стунит всех(основа обычный масовый стун) после чего ударной волной и мощью своих копыт подпрыгивает вверх на 400-500 аое и при падении на землю еще раз бьет по ней(земле) бревном таким образом и с такой мощью что от ударной волны все получают урон и разлетаются в разные стороны на 400-500 аое =) воть.

JassMan   12 июля 2010 в 13:11

тока тока название для него не подходящее))) — "удар бревном"
лучше назови "прыжок бревного" пхахахаха

Kedrevich   13 июля 2010 в 23:45

всё понятно

D1xT|Z1rO   21 июля 2010 в 22:28

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

зарание благодарю ... еше много буду обращаться =)

RwC Private League   21 июля 2010 в 22:58

D1xT|Z1rO

Боевая единица - Приказать (Юнит Z) Двигаться (Центр Область X)
Ждать пока ((Область X содержит (Юнит Z)) равно Да), проверяя каждые 0.30 секунд
Боевая единица - Приказать (Юнит Z) Двигаться (Центр Область Y)

D1xT|Z1rO   22 июля 2010 в 06:34

ооо спс =) щас збацаю

D1xT|Z1rO   22 июля 2010 в 08:01

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

D1xT|Z1rO   22 июля 2010 в 08:03

и да еше 1 вопрос редактор тригеров на русском есть ? где скачать моно ? а то напрягает на англ все читать ...

RwC Private League   22 июля 2010 в 10:56

Распакуй в папку, где расположен сам War 3 rwc.mine.nu/mirror/UI.zip

D1xT|Z1rO   22 июля 2010 в 13:12

кароч чет нифига немогу понять =( я из тех людей кому или очень четко разъяснить чтоб дальше робило все или покачзать на деле ...
просто еше немогу ниче понять в тригерах .. а задумка по новай мапе коллосальная ..!!!!

D1xT|Z1rO   22 июля 2010 в 13:18

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

Volker d   22 июля 2010 в 14:59

Помогите плз
Я хочу сделать в карте условия победы
К примеру Команда 1 - условие победы продержатся 15 минут при условии что главный центр не уничтожен

D1xT|Z1rO   22 июля 2010 в 17:04

[RwC]_LongMan
буду рад еси даж обучишь всему что умеешь тама )

RwC Private League   22 июля 2010 в 19:56

D1xT|Z1rO

Всему не обучу, если не за деньги :D Спрашивай что нужно.

D1xT|Z1rO   22 июля 2010 в 20:27

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

D1xT|Z1rO   23 июля 2010 в 09:00

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

Andreya   23 июля 2010 в 09:52

D1xT|Z1rO, гугл в помощь ищи в нете зачем людей терроризировать?

У меня глупый вопрос но всё же подскажите)) Как создать локальный массив в jass?)
И еще: начал по-немногу осваивать таймер, подскажите как производить действия за каждую секунду ( за каждый тик таймера) ? Примерно по аналогу триггера - Периодическое событие каждые ХХ - секунд

Volker d   23 июля 2010 в 10:04

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

Andreya   23 июля 2010 в 17:52

Volker d, нет) это я умею мне нужно примерно такое же но с таймером, чтобы еще один триггер не создавать

D1xT|Z1rO   23 июля 2010 в 23:42

народ кто знает как устанавливать патч iceHUD ДЛЯ ВОВ ??? ЧЕ КУДА КИДАТЬ И ГДЕ ЧЕ НАЖИМАТЬ ?

Andreya   24 июля 2010 в 12:24

Но это уж точно не по теме)

Dragon27   25 июля 2010 в 00:47

Как создать локальный массив в jass?)
Посмотри, как создаётся глобальный и сделай по образу и преподобию.

dpk-79   25 июля 2010 в 20:53

Делал карту,столкнулся с проблемой что нельзя создавать декорации после того,как их кол-во перевалит за 6к.
Дальше все создается,ничего не понимаю.

Как это ограничение влияет на карту,когда декораций за 6к?И можно ли отключить его?

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

RwC Private League   25 июля 2010 в 23:17

народ кто знает как устанавливать патч iceHUD ДЛЯ ВОВ ??? ЧЕ КУДА КИДАТЬ И ГДЕ ЧЕ НАЖИМАТЬ ?

Доказывает что модеры сюда не ходят.

Как это ограничение влияет на карту,когда декораций за 6к?И можно ли отключить его?

WE Unlimit

Dragon27   26 июля 2010 в 00:41

Как связать две карты,чтобы при попадании в область,можно было перемещаться из одной карты в другую?
Методом сохранений и загрузок (save game and set next level, и прочие, есть такие функции в коде). Посмотри триггеры кампании за орков.

dpk-79   26 июля 2010 в 11:43

WE Unlimit

Скачал 2 штуки,в каждой из них троян.
Это троян или просто антивир так на прогу реагирует?


Методом сохранений и загрузок (save game and set next level, и прочие, есть такие функции в коде). Посмотри триггеры кампании за орков.

Аээ...Какую кампанию?Дополнительную,или за Рексара?

RwC Private League   26 июля 2010 в 15:10

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

dpk-79   26 июля 2010 в 22:05

Мда...Пришел,спросил,в итоге одни намеки и посылания посмотреть "там-то"...
Ппц...

RwC Private League   27 июля 2010 в 13:13

ТЕБЕ ДАЛИ ЗАМЕЧАТЕЛЬНЫЙ ПРИМЕР! В этой карте все то что тебе нужно!

Dragon27   30 июля 2010 в 21:19

Аээ...Какую кампанию?Дополнительную,или за Рексара?
Ту, в которой есть система загрузок уровней, как такая, которая тебе нужна. Логично?

Kedrevich   31 июля 2010 в 23:36

НАУЧИТЕ МЕНЯ ПЛИЗ ДЕЛАТЬ ТАКУЮ ШТУКУ В ТРИГЕРАХ ВОПЩЕМ СМЫСЛ ТАКОЙ НАДО ЧТОБ когда умер чел его труп остался его можно было выделить и воскресить и вопще продектуй те способность сделать чтоб нажимашь на труп и оживило плиз помогите !

Jenia_aka_nels   5 августа 2010 в 12:59

Всем привет! У меня тут пара вопросов=)

1. Как добавить в переменную юнита, который подорвался на мине.
2. Как сделать, чтобы с юнита, который подорвался на мине, были сняты все заклинания (неуязвимость, стремительность).
3(самый важный=). Как сделать так, чтобы когда юнит делал скачок через мину, он останавливался на ней (не перепрыгивал через нее).

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

SaRoF   8 августа 2010 в 12:17

Первое.
Интересно, на что человек надеется, когда пишет что либо подобное "вопще продектуй те", или насколько же он глуп?

Второе.
Это ответы на вопросы ). Сразу предупреждаю, что если ты не шариш в джазе то нечего садится за карту ) советую полистать эту тему и начинать учить. Если желание и мозги есть - то все обязательно выйдет. Ответ на первый вопрос - я не очень представляю как можно добавить юнита в переменную используя стандартные мины, но через дамми юнита все делается очень легко. Приказываеш тригеру создать юнита в точке применения каста а потом каждые несколько секунд (вру, не секунд примерно каждые 0.04 "мили-секунды" я думаю) с помощью таймера проверять расстояние между этим юнитом и случайным юнитом из группы g(g- это группа которую мы создаем и вписываем туда юнитов которые подходят под твои условия - условия писать будешь сам =) ) если проверка проходит вписываем действия.. нанести всем юнитам из группы g в области действия мины урон или я бы сделал урон от эпицентра т.е расстояние от юнита до мины * на домаг * на лвл способности ( хотя нет херь получится.. можно сделать через проверки расстояния вот так будет правильно )

Спустя некоторое время:
Чет я тупанул.. просто приказываеш создать в центре каста как раз где мина будет - создать дамми юнита и если растояние между ним и юнитом из группы g <= (расстояние детонации мины) then присвоить этому юниту переменную.



Хотя мне кажется.. что врядли ты тут чтолибо поймеш т.к пишеш ну просто наверняка на ГУИ - стандартный редактор.

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




Если для тебя это все кажется слишком тяжело, то иди учи Джазз, если не хочеш учить джазз кидай карту
( хотя все совсем не тяжело.. тяжело зделать скилл как у Тралаа в доте.. не очень понимаю как работает как у мурлока наверно.. надо еще раз заглянуть в наработку с мурлоком.) - но тогда выходит я в очередной раз потратил силы.. вот Dragon27 умный ) никому ничего особо не поясняет.. а я всегда стараюсь и как всегда все зря.

P.s. Пока что забросил свою стратегию.. все равно они не популярны =)) а проект довольно глобальный а времени у меня на него как всегда не хватает.. и желание делать карту почему-то возникает только ночью когда не могу заснуть.. Хотелось бы для начала создать что нибудь маленькое динамичное и интересное.. вроде варлоков или бучеров ) вот етим и займусь.. пока зделаю арены и изучу таблицы.. а потом уже тригеры ) хотя может какие и сам зделаю.. простенькие типо прыжка за спину с последующей комбой ударов или еще чего ) всем до.. ну короче как загляну =) ы.

P.p.s О_о сори за стену текста =))

Andreya   8 августа 2010 в 18:24

Форум о5 умер) Гг
Прикидываю следущее возрождение конец августа-начало сентябрь
Летом как никак отдыхать нужно)) а от редактора в такую жару мозг кипит, так что давайте возвращайтесь все к осени =)
Приятного всем время провождения !)

RwC Private League   10 августа 2010 в 01:21

Дым. МОЙ СЛАДКИЙ ДЫМ!!!!!!!

Где модераторы ^_^ V BAN MENYA ZA FLOOD :)

Adess Tano   10 августа 2010 в 12:24

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

SaRoF   10 августа 2010 в 15:46

Danzan Levginov
За тебя никто ничего делать не будет ( я на это надеюсь ) , но если действительно есть желание сделать карту то с такими вещами как "2.Как вставить свою магию?" ты должен справляться сам.. потому что элементарнее этого врядли что-то есть.(Ты ищеш свою нестандартную магию в стандартных.. конечно ее там нет.. потому что нужно искать в нестандартных)


"1.Как сделать так чтобы встав на магический круг у получить героя?" Тут тебе нужны тригерры причем до ужаса примитивные ищи материал в интернете и учи.. события,условия и действия.. все просто.освоив обычный редактор и Гуи(тригерры такие какими они подаются в редакторе) ты сможешь сделать примитивную карту с кучей ошибок багов и т.д. Если хочеш зделать что либо действительно стоящее уровня доты.. то садить учить джаз перед этим освоив Гуи и обычный редактор.

narss   11 августа 2010 в 15:25

помогите можете сделать способность такой шар ставиш в определённую область она ещё выглядит область как огненый дождь и она эта сфера всех притягивает и снимает жизни
ещё можно 3 сособность pit lord как в доте где он могилки вытаскивет из земли

SaRoF   12 августа 2010 в 10:41

narss.
Читаем пред идущий ответ.

ЗА ВАС НИКТО НИЧЕГО ДЕЛАТЬ НЕ БУДЕТ (ТОЧКА!)

narss   12 августа 2010 в 14:14

ну лад но можете сказать как сделать такое

NikxD   12 августа 2010 в 17:38

Люди подскажите плиз: как герою придать способность, которая есть у обычного воина(не героя)? например как сделать Паладину скилл "омоложение" который по стандарту есть у друида медведя у Ночных Эльфов?

Andreya   12 августа 2010 в 20:49

SaRoF, нельзя же быть таким строгим) мб человек понимает что такое триггеры, но все равно не усвоит что к чему если наглядно не показать
Я конечно не асс в WE, но всё с ГУИ на 99% разорбрался и мне как раз тоже нужно было чтобы всё "разжевали" и показали, спасибо Хелликоптеру, Киллинг Спрее и Карабасу, хотя что-то я их давно давно не вижу
Danzan Levginov,
1) создаешь триггер: событие -юнит вошел в регион. В этотом регионе ставишь магический круг, и действие - создать 1 "героя" (указываешь какого именно героя) для владельца(указываешь для кого создать(если нужно для владельца ходящего юнита, то так и указываешь "Владельца Входящего Юнита" ))в точке (указываешь точку)
2) по-лучше обьясни, непонятно)
3)в характеристиках юнита ищи строку - Анимация: маштабирование (или что-то в этом роде)

narss, скилл действительно тебе делать тут вряд ли будут, но примерно сказать могу
Создаешь триггер, который при запуске создает эффект (тот шар который тебе нужен) в какой-то точке. Дальше "Выбрать всех юнитов в диапазоне ( указываешь область рядом с шаром) и сделать действия"
и действие "двигать мнгновенно выбранного юнита (указываешь позицию шара)" и действие "установить здоровье выбранно юнита"
Если тебе нужно чтобы юниты двигались и хп уменьшалось постепенно, то необходимо создать еще один триггер, Событие - каждые 0.0х секунд двигать юнита и уменьшать здоровье

NikxD, в характеристиках способности ставишь галочку "относится к герою - да" и можешь спокойно добавлять способность герою

SaRoF   13 августа 2010 в 13:49

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

P.s

Кстати.. то что написал для Narss это примерно и есть то что он хотел. лично я в Гуи сам разбирался.. скачал русификатор пару наработок скилов из доты.. смотрел как там сделано и думал как это можно использовать в своих целях.

Andreya   13 августа 2010 в 14:22

Да еще кстати, если вам нужны скилы на "блюдце с голубой каёмочкой" :) xgm.ru/forum/showthread.php?t=10868&page=1&a..
Тут народ бездельем маеце, если попросите, скорее всего сделают

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

function move_target takes nothing returns nothing
local unit t=GetSpellTargetUnit()
local unit c=GetTriggerUnit()
local lightning l=GetLastCreatedLightningBJ()
call MoveLightningLoc( l, GetUnitLoc(c), GetUnitLoc(t) )
if(DistanceBetweenPoints(GetUnitLoc(c), GetUnitLoc(t)) >= 50.00) then
call SetUnitPositionLoc( t, PolarProjectionBJ(GetUnitLoc(t), ( 2 * I2R(GetUnitAbilityLevelSwapped('A00Y', c)) ), ( GetUnitFacing(c) - 180.00 )) )
else
endif
endfunction

function Trig_Mutka_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit c=GetTriggerUnit()
local unit lol=GetSpellTargetUnit()
call AddLightningLoc( "CLPB", GetUnitLoc(c), GetUnitLoc(lol) )
call TimerStart(t,0.03,true,function move_target)
endfunction

вообще в верхней функции переменные "t" и "c" не присваиваются
я кажется понимаю..это потому что переменные типа "GetTriggerUnit()" и другие существуют только в функции actions? и в других функциях их использовать нельзя?
Тогда как по другому? глобальные трогать не хочу

SaRoF   13 августа 2010 в 22:21

Твое предположение верно и делается все очень просто через хеш таблицы. Хотя в джазе я оцениваю свои возможности 3-4/10 но этому к моему счастью Ильяс меня научил =). присваиваеш переменные в функции Actions а потом с помощью команд SaveUnitHandle,SaveReal,Save"Все что угодно ))" сохраняеш в хеш таблицу.. как это делается ты узнаеш из наработки на которую я сейчас дам ссылку.. там ильяс все подробно расписал. Это наработка на движение юнита к точке и просто вперед ( как у Мираны).
Jass__move_system

Там огромная стена текста ) так что лучше все скопировать и читать в другом файле не через редактор.

И еще ) я тоже глобальные трогать не люблю и не хочю, но для некоторых скилов надо. Вот напирмер я сейчас заканчивал скилл - Юнит кидает сюрикен тот летит всех режет на своем пути снося 25 хп за каждых 0.25 секунд полёта и тот кто кинул имеет еще 2 скилл при использовании которого перемещается к сюрикену при этом последний уничтожается.. вот я не очень понимаю как зделать перемещение именно этого кастера именно к этому сюрикену.. если использовать переменные "X" - то неважно кто юзнет скилл этот а таких юнитов которые швыряют сюрикены может быть очень много.. один юзает а портует другого.. вот так вот.. оставлю пока Ильяс не вернётся.

Я точно не помню.. может и можно присваивать переменным значения в другой функции ( уверен на 80% что нельзя) но дело в том что у тебя действия закончились в функции Trig_Mutka_Actions потому что в функции которую ты указал при старте таймера t нет таймера который сработал там нужно создать таймер например local timer t=GetExpiredTimer() вот так только вместо t может быть все что угодно на сколько я помню.

Andreya   13 августа 2010 в 23:29

интересненько) сейчас заценим)

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

Но конешно всю наработку не прочитал, но основная мысль ясна
непонятно вот что: там каждые значения сохраняются в определенную ячейку: 1,2,3 и тд
А если предположим эту способность применили одновременно несколько раз.. в таком случае не перезапишутся значения ячеек?

SaRoF   13 августа 2010 в 23:53

Бугага +)) щас делаю свой скилл ) такой прикол намутил ) зацените заклинание у героя ) просто бегайте по карте ) rapidshare.com/files/412778251/_________________..

Andreya   14 августа 2010 в 00:55

хаха) забавно..сам придумал?))

SaRoF   14 августа 2010 в 11:43

Конечно сам ))
Эти светляки, когда я закончу, будут лететь таким потоком в точку и взрываться при приближении к вражескому юниту нанося ему 10 урона каждый) будет около 15 светляков.. еще хочю что у каждого светляка было случайная точка назначения, т.е одни будут чуть дальше лететь, другие чуть не долетать до точки на которую указал герой.. это вовсе не светляки должны быть по задумке но удачного импорта я не нашел..я хочю чтоб герой выглядел как черепаха только на 2-ух ногах а светляки были пузырьками ) еще хочю сделать скилл с летающим огромным пузырем. Если найдете чтолибо подобное прошу кинуть ссылку ).

Andreya   17 августа 2010 в 00:05

Mr_ILYAS, привет) с возвращением!

Эхх..все таки перезаписывает...

JassMan   17 августа 2010 в 01:27

Пока мну не было, написал систему захвата точек.
Можете взглянуть, если хотите: Захват точек(.w3x) Уже на Jass.
Хотя когда-то такое на гуи писал, ну и, естественно, с кучей утечек. Ну а в этой версии всё как надо, поэтому настоятельно не рекомендуется менять что-либо в коде.

Там пока только одна область (которую захватить надо). Если хотите добавить еще, то я уже всё сделал удобным. Итак, для каждой конкретной новой области надо повторить кусок кода в самой нижней функции.

От:
set tt=CreateTextTag()

И до:
call TriggerAddAction(trg_leave,function Remove_Hero)  включительно

А, да. . . и вместо gg_rct_Rect_1 нужно ставить уже переменную от другой (которую хотим добавить к этой системе) области.
Этот кусок кода нужно писать сразу после предыдущего.
Вот и всё.

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

PhantomVik   17 августа 2010 в 11:01

Moжно вопрос?

PhantomVik   17 августа 2010 в 11:09

Kak сделати тригер чтобы урон от спелов зависел от атрибутов

JassMan   17 августа 2010 в 18:24

Используй Custom Script действия если в Jass'e не шаришь, ибо объясняю на нём

для этого нужно триггерно наносить урон
call UnitDamageTarget(от какого юнита урон, цель дамага, сколько урона,true,false,ATTACK_TYPE_NORMAL,ATTACK_TYPE_CHAOS,WEAPON_TYPE_WHOKNOWS)

Ну а там где указываешь сколько урона можно поставить
GetHeroStr(u,true)
или
GetHeroAgi(u,true)
или
GetHeroInt(u,true)
где u — это твой герой. А true или false ставишь, если хочешь чтоб в бонусы к характеристикам (от предметов и способностей) тоже зачитывались.

CK-4   17 августа 2010 в 21:05

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

JassMan   17 августа 2010 в 22:06

приведи пример

SaRoF   17 августа 2010 в 22:14

Уряя!! вернулсо!! =)) Памаги!! ))))

Начал я ( как всегда) еще одну карту ) и не могу сделать скилл что описан чуть выше на этой же странице.Мне очень нужно что бы ты заглянул в код и вобще у меня как всегда куча вопросов ) например:Как сделана пасивка Кунки из Доты ? я пробовал "Set GetUnitState(Damage...," но похоже такого стата нет.. как же на него повлиять именно в цифрах ? можно через дамми юнита кастунть скилл шамана или друида из стандартных.. но там по процентам. .. еще хотелось бы понять как же делать тригер в тригере и несколько таймеров в одном тригире.. потому что у меня непонятно почему 2-ой таймер запускается но работает как-то не коректно хотя названия таймеров не совпадают и даже количество букв в переменных разная.
В общем если не испугал :)) - зайди пожалуйста в скайп.

=_= ты же был 8 минут до моего сообщения тут.. куда пропал ?

JassMan   17 августа 2010 в 22:56

ух)) я сюда 4 раза в день захожу а не каждые 5 мин))

по поводу скила кунки, там елементарно ждётся определённое время а затем при ударе (отлов делается как у TimeWalker'а ) заносятся юниты в группу, которые находятся в :
находим угол между кункой и атакованным и все кто за атакованным в радиусе 500 дамагу скока надо

ск-4   17 августа 2010 в 23:44

Вот пример: триггер - игра-загрузить игру. Из-за этого ограничения и некоторых других нельзя создать RPG типа Рексар

JassMan   18 августа 2010 в 00:27

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

NikxD   18 августа 2010 в 11:06

Люди я меня проблема при импортировании иконок для скиллов. Кароче сначало все нормально, но когда у героя недостаточный уровень для изучения скилла с импортированной иконкой, то вместо иконки появляется зеленый квадрат... как это убрать? (Иконки в формате tga и имеют размер 64х64)

SaRoF   18 августа 2010 в 13:31

Зайди в скайп Пожалуйста - это раз.
И я не о дамаге при ударе по всем а про прибавление урона.. просто каждые 4 секунды( в конце) у него не только меч обретает водную оболочку но и сам урон увеличивается на 60. т.е такое ощущение что добавляется арт на +60 урона даже если у тебя нет слотов. Вот об этом и вопрос как сделать так что бы просто урон увеличить, но не на ПРОЦЕНТ.

18.08.2010 20.05

Куда опять делсо то ? О_о.

Andreya   19 августа 2010 в 20:41

Мистер Илья или Сароф, помогите! Вообще создал триггер в jass на движение со всеми хеш таблицами таймерами и т.п. (прикиньте о__О)
И мне нужно отключить локальный таймер через другой триггер
функция движения юнита включается при запуске способности и отключается при прикращении применения способности
пробовал через туже хеш таблицу но там чето не получается.. Save My Soul Please))

NikxD, мне тоже это интересно..Я кажется догадываюсь: дело еще в одной иконке более темного оттенка, которой у тебя нет.. но как ее поставить вместе зеленого квадрата я сам не понимаю еще

JassMan   19 августа 2010 в 21:22

При работе над ошибками в Jass'e, всегда выкладывай код (золотое правило), чтобы сразу было понятно с чем имеем дело. Пока ничем помочь не могу на словах. Жду кода. . . (или карты)

Andreya   19 августа 2010 в 23:31

Вот триггер, он включается при применении способности (похищение жизней)

function *ня* takes nothing returns nothing
local timer tiktak=GetExpiredTimer()
local unit caster=LoadUnitHandle(udg_Hash,GetHandleId(tiktak),1)
local unit target=LoadUnitHandle(udg_Hash,GetHandleId(tiktak),2)
local real atan=Atan2BJ(( GetLocationY(GetUnitLoc(caster)) - GetLocationY(GetUnitLoc(target)) ), ( GetLocationX(GetUnitLoc(caster)) - GetLocationX(GetUnitLoc(target)) ))
if(DistanceBetweenPoints(GetUnitLoc(caster), GetUnitLoc(target)) >= 300.00) then
call SetUnitPositionLoc( target, PolarProjectionBJ(GetUnitLoc(target), 5, ( atan )) )
else
endif
endfunction

function Trig_Life_Drine_Actions takes nothing returns nothing
local timer tiktak=CreateTimer()
local unit caster=GetTriggerUnit()
local unit target=GetSpellTargetUnit()
call SaveUnitHandle(udg_Hash,GetHandleId(tiktak),1,caster)
call SaveUnitHandle(udg_Hash,GetHandleId(tiktak),2,target)
call SaveTimerHandle(udg_Hash,GetHandleId(tiktak),3,tiktak)
call TimerStart(tiktak,0.02,true,function *ня*)
endfunction

Я хочу чтобы когда "юнит прекращает применение способности" таймер "tiktak" отключался

JassMan   20 августа 2010 в 01:27

function Trig_trg_Actions takes nothing returns nothing
local trigger trg=GetTriggeringTrigger()
local timer t=LoadTimerHandle(udg_Hash,GetHandleId(trg),1)
call PauseTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call FlushChildHashtable(udg_Hash,GetHandleId(trg))
call DestroyTimer(t)
call DestroyTrigger(trg)
set trg=null
set t=null
endfunction

function Timer_Actions takes nothing returns nothing
local timer tiktak=GetExpiredTimer()
local unit caster=LoadUnitHandle(udg_Hash,GetHandleId(tiktak),1)
local unit target=LoadUnitHandle(udg_Hash,GetHandleId(tiktak),2)
local real a=Atan2(GetunitY(caster)-GetUnitY(target),GetUnitX(caster)-GetUnitX(target)) //Угод между target/\caster. Если нужен между caster/\target, то везде в этой строке поменяй местами target и caster.
local real L=(GetUnitX(target)-GetUnitX(caster))*(GetUnitX(target)-GetUnitX(caster))+(GetUnitY(target)-GetUnitY(caster))*(GetUnitY(target)-GetUnitY(caster))
if(L>=90000.)then //Находим расстояние по т. Пифагора. (Меньше вычислений для компутера) 90000 — это 300*300. Я не извлекаю корень (к чему лишние вычисления), а сразу сравниваю квадраты чисел.
    call SetUnitX(target,GetUnitX(target)+5.*Cos(a))
    call SetUnitY(target,GetUnitY(target)+5.*Sin(a))
endif
set tiktak=null
set caster=null
set target=null
endfunction

function Trig_Life_Drine_Actions takes nothing returns nothing
local timer tiktak=CreateTimer()
local unit caster=GetTriggerUnit()
local unit target=GetSpellTargetUnit()
local trigger trg=CreateTrigger()
call TriggerRegisterUnitEvent(trg,caster,EVENT_UNIT_SPELL_FINISH) //Событие: завершает применение способности.
call TriggerRegisterUnitEvent(trg,caster,EVENT_UNIT_SPELL_ENDCAST) //Событие: Прекращает (прерывает) применение способности. (Думаю, тоже понадобится)
call TriggerAddAction(trg,function Trig_trg_Actions)
call SaveUnitHandle(udg_Hash,GetHandleId(tiktak),1,caster)
call SaveUnitHandle(udg_Hash,GetHandleId(tiktak),2,target)
call SaveTimerHandle(udg_Hash,GetHandleId(trg),1,tiktak)
call TimerStart(tiktak,0.02,true,function Timer_Actions)
set tiktak=null
set caster=null
set target=null
set trg=null
endfunction

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

Andreya   20 августа 2010 в 16:54

о пасиба, все понятно) Только зачем было добавлять функции типа "SetUnitX" если можно просто "SetUnitPositionLoc" неужели это такая нагрузка на процессор?)

JassMan   20 августа 2010 в 17:53

Привычка делать всё максимально быстродейственно для компа, к тому же у тебя там было много BJ, а это недопустимо

SaRoF   21 августа 2010 в 15:38

Доброго времени суток! =)
Сел я сейчас сам исправлять триггер со светляками ( в очередной раз) ну и как всегда ничего доброго не получилось.. теперь даже дамми юнит почему-то не создается.. я просто в шоке.Вроде как ничего тяжелого нет 2 таймера 2 функции на создание юнита записывание его в хеш таблицу и второй на выгружение этого юнита и движение его... но WTF? не работает и все.. ошибок нет.. смотрю я на этот код смотрю.. вроде все правильно - а не работает. Ильяс помоги ж мне уже )) ну пажалуйсто )).И если устраниш проблему с интернетом то поставь скайп на авто включение ок ?)

P.s Я в принципе знаю обходной путь.. можно просто создать триггер на движение одного светляка но тогда прийдется делать лишний скилл. Создаеш 15 дамми юнитов и по очереди приказываеш через таймер кастануть светляков.. если другого пути нет - буду делать так.

SaRoF   21 августа 2010 в 16:50

Вот если кому интересно код со светляками.. не пойму что там ни так.. я точно знаю что каждый светляк по логике будет пролетать 22 рнг и останавливается )) потому что его в слоте выселит следующий светляк который создастся и уже его двинет ) и до конца долетит только последний.. но это уже другая проблема.

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

function Bubble_Spray_Filter takes nothing returns boolean
local timer t=GetExpiredTimer()
local unit o=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
return IsPlayerEnemy(GetOwningPlayer(o),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())>0.405)and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))
endfunction

function Bubble_Spray_damage takes nothing returns nothing
endfunction

function Bubble_Spray_move takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit d=LoadUnitHandle(udg_Hash,GetHandleId(t),5)
local location p=LoadLocationHandle(udg_Hash,GetHandleId(t),8)
local group g=CreateGroup()
local boolexpr b=Condition(function Bubble_Spray_Filter)
local unit q
local real speed = GetRandomInt(10, 15)
local real s=((LoadReal(udg_Hash,GetHandleId(t),2)-GetUnitX(d))*(LoadReal(udg_Hash,GetHandleId(t),2)-GetUnitX(d))+(LoadReal(udg_Hash,GetHandleId(t),3)-GetUnitY(d))*(LoadReal(udg_Hash,GetHandleId(t),3)-GetUnitY(d)))
local real a=LoadReal(udg_Hash,GetHandleId(t),2)
call GroupEnumUnitsInRangeOfLoc(g,GetUnitLoc(d),75.,b)
set q=FirstOfGroup(g)
if (DistanceBetweenPoints(GetUnitLoc(d), GetUnitLoc(q)) <= 75 ) then
call KillUnit (d)
call ForGroup(g,function Bubble_Spray_damage)
endif
call SetUnitX(d,GetUnitX(d)+22*Cos(a))
call SetUnitY(d,GetUnitY(d)+22*Sin(a))
if(s<=225)then
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call KillUnit (d)
endif
call DestroyBoolExpr(b)
call DestroyGroup(g)
set g=null
set b=null
endfunction

function Bubble_spray_Create takes nothing returns nothing
local timer ft=GetExpiredTimer()
local timer t=LoadTimerHandle(udg_Hash,GetHandleId(ft),3)
local location p=LoadLocationHandle(udg_Hash,GetHandleId(ft),8)
local unit o=LoadUnitHandle(udg_Hash,GetHandleId(ft),1)
local unit d=CreateUnitAtLoc(GetOwningPlayer(o),'e000',GetUnitLoc(o),GetUnitFacing(o))
local real m=LoadReal(udg_Hash,GetHandleId(ft),6)
local real a=Atan2(GetLocationY(p)-GetUnitY(o),GetLocationX(p)-GetUnitX(o))
set m=m+1
if (m>=15) then
call PauseTimer(ft)
call DestroyTimer(ft)
call FlushChildHashtable(udg_Hash,GetHandleId(ft))
endif
call SaveReal(udg_Hash,GetHandleId(ft),6,m)
call SaveReal(udg_Hash,GetHandleId(t),2,a)
set o=null
set d=null
endfunction

function Bubble_Spray_wait takes nothing returns nothing
local timer t=GetExpiredTimer()
call TimerStart(t,0.4,true,function Bubble_Spray_move)
endfunction

function Trig_Bubble_Spray_Actions takes nothing returns nothing
local unit u=GetSpellAbilityUnit()
local timer t=CreateTimer()
local timer ft=CreateTimer()
local location p=GetSpellTargetLoc()
call SaveLocationHandle(udg_Hash,GetHandleId(t),8,p)
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveReal(udg_Hash,GetHandleId(t),6,0)
call SaveTimerHandle(udg_Hash,GetHandleId(ft),3,t)
call TimerStart(ft,0.12,true,function Bubble_spray_Create)
call TimerStart(t,0.13,false,function Bubble_Spray_wait)
call RemoveLocation(p)
set u=null
set p=null
endfunction

//===========================================================================
function InitTrig_Bubble_Spray takes nothing returns nothing
set gg_trg_Bubble_Spray = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Bubble_Spray, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Bubble_Spray, Condition( function Trig_Bubble_Spray_Conditions ) )
call TriggerAddAction( gg_trg_Bubble_Spray, function Trig_Bubble_Spray_Actions )
endfunction

Andreya   23 августа 2010 в 00:12

Благодаря вам,я довольно хорошо овладел самыми сложными функциями в World Editor. Теперь я могу сделать почти всё, что вздумаю (даже на языке jass)
Спасибо и Большое Респектище Вам и этому форуму!! Буду в долгу!)))

SlawkoBond   23 августа 2010 в 18:44

есть ли в GUI функция корень квадратный?

Tapo4eGG   24 августа 2010 в 16:32

Люди помогите мне!
1 как дать другие скиллы герою???
2 как в таверну засунуть героев???
3 Как сделать чтобы скиллы прокачивались до 10 лвл??
4 как сделать чтобы можно было как в доте варить предметы???

SaRoF   24 августа 2010 в 18:45

Тапочег! я тебе памагу!! XD

Прошу вас немедля перейти по этой ссылке forums.playground.ru/warcraft_3_the_frozen_thron.. там вас ждут ответы на все выше перечисленные вопросы.

Спасибо что заглянул!.

p.s а может и не на все О_о
В общем 1-ое: Редактор обьектов рулит!
2-ое: Редактор обьектов рулит!
3-е: Редактор обьектов рулит!

Tapo4eGG   25 августа 2010 в 09:57

да не ты неправельно понял =)))
это всё я знаю где но ,1-ое типо нестандартные скиллы!!!!
2-ое точто в редакторе объектов я тоже знаю но,как это сделать????
3-ье тоже,как это сделать???

SaRoF   25 августа 2010 в 12:52

Блин ну это ж элементарно )
1-ое "как же дать герою другие скилы ? О_о" - ответ прост! В редакторе объектов выбери нужного юнита (героя или другую любую единицу)
и листай кучу текста вниз и ищи строфу "Способности - Возможные способности" тыкаешь на нее 2 раза и вуаля ты можешь удалять существующий способности и вставлять такие какие тебе угодно и еще.. если тебе тяжело отыскать свои нестандартные скилы то поменяй фильтр на нестандартные скилы и круг поиска сузится!


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

3-е ищешь в способности графу "Характеристики - уровни" и меняешь на 10-точку.


Изложил все ну очень подробно если и так не понятно - то.. я не знаю даже что уж делать.


p.s Ильяс 3 день уже жду.

Andreya   25 августа 2010 в 16:49

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

SaRoF   25 августа 2010 в 18:28

а что мне это время ?) я как только сажусь сделать скилл так лень становится.. прям страшно ))
сейчас делаю мастера гравитации.. посмотрим что получится хочю сегодня 2 скила сделать.
если получится кину посмотришь =).

p.s Ник ужасен и он мне не к лицу.. =))) Можеш называть меня 4EL[]BEK либо Revo1teR или RR =) так я себя ощущаю комфортней (OMG LOL HAHAHAHAHA )

SaRoF   25 августа 2010 в 20:34

Это полный


Не могу сделать скилл.. точнее я могу.. и уже сделал.. но он не работает ни фига.Сколько не сравнивал с другими подобными функциями скилами и т.д все делаю также но ТАМ работает а здесь нет, я уже и функции местами переставлял и вобще.. =((.

Andreya, ты же вроде уже разбираешься да ?) Так что я не так тут (V) сделал.

Проблема такая первая функция Epicenter_Actions в частности команда call ForGroup тупо не запускает function Epicenter_Do А ДОЛЖНА емае.

function Epicenter_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00C'
endfunction


function Epicenter_Filter takes nothing returns boolean
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
return IsPlayerEnemy(GetOwningPlayer(u),GetOwningPlayer(GetFilterUnit()))and(GetWidgetLife(GetFilterUnit())>0.405)and(not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)))
endfunction

function Epicenter_Move takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local unit q=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local real a=LoadReal(udg_Hash,GetHandleId(t),3)
local real lvl=LoadReal(udg_Hash,GetHandleId(t),5)
local real tg=LoadReal(udg_Hash,GetHandleId(t),6)+(2*lvl)
call SetUnitX(q,GetUnitX(q)+tg*Cos(a))
call SetUnitY(q,GetUnitY(q)+tg*Sin(a))
set tg=tg+1
if (DistanceBetweenPoints(GetUnitLoc(u), GetUnitLoc(q)) <= 125 ) then
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
endif
set a=Atan2(GetUnitY(u)-GetUnitY(q),GetUnitX(u)-GetUnitX(q))
call SaveReal(udg_Hash,GetHandleId(t),3,a)
call SaveReal(udg_Hash,GetHandleId(t),6,tg)
set u=null
set q=null
endfunction

function Epicenter_Do takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local unit q=GetEnumUnit()
local real a=Atan2(GetUnitY(u)-GetUnitY(q),GetUnitX(u)-GetUnitX(q))
call AddSpecialEffectLoc( "Units\\NightElf\\Wisp\\WispExplode.mdl",GetUnitLoc(u) )
call SaveUnitHandle(udg_Hash,GetHandleId(t),2,q)
call SaveReal(udg_Hash,GetHandleId(t),3,a)
call TimerStart(t,0.02,true,function Epicenter_Move)
set u=null
set q=null
endfunction

function Epicenter_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
local group g=CreateGroup()
local boolexpr b=Condition(function Epicenter_Filter)
local real lvl=GetUnitAbilityLevelSwapped('A00C',u)
call GroupEnumUnitsInRangeOfLoc(g,GetUnitLoc(u),400,b)
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveReal(udg_Hash,GetHandleId(t),5,lvl)
call SaveReal(udg_Hash,GetHandleId(t),6,8)
call ForGroup (g,function Epicenter_Do)
call DestroyBoolExpr(b)
call DestroyGroup(g)
set g=null
set b=null
set u=null
endfunction

//===========================================================================
function InitTrig_Epicenter takes nothing returns nothing
set gg_trg_Epicenter = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Epicenter, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Epicenter, Condition( function Epicenter_Conditions ) )
call TriggerAddAction( gg_trg_Epicenter, function Epicenter_Actions)
endfunction

я даже в функции Epicenter_Do добавил спецэфект который не появляется что говорит нам о том что функция не срабатывает! =( и этому я не рад.

JassMan   25 августа 2010 в 21:33

ты хеш таблицу то инициализировал хоть?))

JassMan   25 августа 2010 в 21:35

Я чота не понял а где ты запустил таймер?

function Epicenter_Do takes nothing returns nothing
local timer t=GetExpiredTimer()

локал таймер т=истёкший таймер()
а где ты его запускал

SaRoF   25 августа 2010 в 22:02

Ты копец... В скайп зайди.

О_О call for group работает только с таймером О_О!?!?!

=( 1 юнита тянет и даже понятно почему.. возникает вопрос.. как подянуть много ? =_= в поле слота т.е куда юнита записать.. переменную подставить нельзя.. а как иначе то ?

JassMan   26 августа 2010 в 01:40

ничо не понял. . .

ты уже не в скайпе((

SaRoF   26 августа 2010 в 11:02

В час ночи ? О_о конечно нет

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

CondorXXX   27 августа 2010 в 03:18

Skajite please, kak cdelat tak chtoby v kajdym sekunde pribavilis zoloto

JassMan   27 августа 2010 в 04:21

Condor, раз ты задаёшь подобные вопросы, значит в триггерах не разбираешься.
Поэтому рекомендую освоить этот ресурс.

SlawkoBond   27 августа 2010 в 10:26

CondorXXX
надеюсь ты знаешь что такое триггер.
событие:
periodic event: every 1 second of game tiyme
условие пропускаем
действие:
Игрок: add 1 gold to нужный игрок

SaRoF   27 августа 2010 в 11:38

Копец.. решил увеличить карту.. создал 256 на 256 оно мне выбило окно кое-то непонятное я не обратил внимания.Перетащил туда всех юнитов все тригеры (тригерры перетаскивать было легче всего т.к все и сразу ) копировал пол часа не меньше умаялся.. потом значит исправил все тиригеры т.к в новой карте поменялись ай-ди скилов и у героев они тоже перемешались. Вобщем.. захожу сегодня утром (вечером не заметил) и вижу.. что карта не 256*256 а 64*64 такая же как и была.. я просто в шоке. Может кто нибудь лишить меня страданий и сказать способ скопировать все и сразу (из редактора объектов) либо увеличить размер уже созданой карты?

SlawkoBond   27 августа 2010 в 18:08

не смейтесь плис над моим вопросом)
есть ли такое событие "юнит начинает атаковать" или "юнит атакует"?
если да - то напишите путь к нему!

SaRoF   27 августа 2010 в 18:43

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

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

Andreya   27 августа 2010 в 20:58

SaRoF, есть в редакторе такая функция "экспорт" только при импорте триггер/ юнитов и т.д. в другую карту, они заменяют все остальные нестандартные явления)

это где-то находится в подстроках сверху

SaRoF   27 августа 2010 в 21:26

Но если экспортировать в пустую карту то все будет оки доки ? =)

И еще вопрос.. может кто посоветовать ченлинг скилл на юнита (не вытягивание маны или жизни т.к при использовании етих скилов даже при полной их "зачистке" на юните цели и на кастере появляется зеленый или синий в случае с маной спецэфект а если удалить характеристики заклинания - то скилл просто нельзя применить цель независимо от того враг иль друг здание или нет.) =(

SlawkoBond   27 августа 2010 в 22:39

SaRoF
спасибо я уже понял)
я видел событие юнит аттакован но зациклился именно на событии юнит атакует

Andreya   28 августа 2010 в 15:53

SaRoF, попробуй огненную сеть, та, которая у ведьмаков у альянса (та же самая сетка у расты на доте :))

SlawkoBond   28 августа 2010 в 20:01

огненная сеть у фениксов)

SaRoF   29 августа 2010 в 16:44

Действительно ) надеюсь подойдет спасибо =).

p.s Ильяс ты в след раз в скайп зайдеш еще через 4 дня ?)

SaRoF   30 августа 2010 в 11:17

Огненная сеть создает эфект огненной клетки.. который тоже никак нельзя убрать.. WTF? что за морока =( а если цель заклинания будет летать вверх вниз в огненной клетке будет выглядеть глупо.. ну да ладно выбора то у меня нет =(

Jenia_aka_nels   30 августа 2010 в 17:18

Скажите плиз, где в редакторе (в редакторе ли?) писать на языке jass ? Читал только, что нужны файлы с расширением *.j, но откуда их взять и как добвлять в карту нигде не сказано.

Andreya   30 августа 2010 в 20:15

SaRoF, мб тебе стоит по лучше разобраться в редакторе обьектов? делается всё просто...


Jenia_aka_nels , Джасс можно писать в разделе триггеры. Создаешь триггер, тыкаешь "правка" и-> "конвертировать в текст"

SaRoF   31 августа 2010 в 10:53

Хех ))) да видимо я очень плохо разбираюсь.. и как же убрать эту долбаную сеть ? я удалил все что только можно кроме возможных целей при этом удалив из фильтра воздух.

Andreya   31 августа 2010 в 11:36

только что сделал сам. Убрал в целях воздушные, удалил эффект молнии и убрал заклинаниях огненное лассо. Но сам эффект всё еще остался, тогда зашел в раздел заклинания>огненное лассо и убрал сам эффект. Всё работает.

LakushaFujin   1 сентября 2010 в 18:20

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

Andreya   1 сентября 2010 в 18:27

[новый пользователь], есть такое действие "Боевая единица - Результат приказа -..." и и там выбираешь свою магию. Если это способность с наведением на юнита - пиши "результат приказа
на юнита", если точка., то "точку" и т.д.

LakushaFujin   1 сентября 2010 в 18:28

О! Огромнейшее спасибо! Пойду проверять...

LakushaFujin   1 сентября 2010 в 18:36

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

LakushaFujin   1 сентября 2010 в 18:43

Andreya
А там ведь не вся магия вроде, если создам свою, то она автоматом появится в списке, или там только стандартная будет?

Andreya   1 сентября 2010 в 22:32

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

JassMan   2 сентября 2010 в 07:37

Andreya и LakushaFujin "Боевая единица - Результат приказа -..." это приказ —так?
Следовательно нужно указывать не способность, а приказ.

В нужной способности есть строка "порядок строк включён"

Если у вас англ редактор то это строка order (приказ)
Так же можно нажать ctrl+d и вы сами увидите английский вариант.

То, что стоит в ордере нужно писать в действии триггера.

Кстати сам приказ можно поменять у способности (чтоб не возникало конфлигтов с похожей способностью с таким же приказом)

LakushaFujin   2 сентября 2010 в 11:16

Andreya Спасибо, пойду пробовать. Надеюсь при экспорте ничего не испортится... (Полностью заменяют нестандартные, это значит всё что было нестандартным у меня - исчезнет?! И будет с экспорта?)

Mr_ILYAS "То, что стоит в ордере нужно писать в действии триггера."
Это всмысле? Писать в триггерах вроде только Jass, а там хз как... Приведи пример пожалуйста, чёт торможу...

JassMan   2 сентября 2010 в 18:47

А, да, пардон, это только для Jass'a. . .
Но можно использовать действие Custom Script, и вписать туда:

для юнита:
call IssueTargetOrder(u,"ордер абилки",с)
где u — это юнит который кастует скилл, с — это юнит на которого указываем

или для точки:
call IssuePointOrderLoc(u,"ордер абилки",точка)
чтоб узнать, что писать вместо точки, в пустом триггере набери действие:
допустим, приказать Triggering Unit двигаться и указываешь куда
Потом переводишь в Jass (правка\конвертировать в текст), и все, что после ,"move", и до ) копируешь и вставляешь в место точки

или без указания цели:
call IssueImmediateOrder(u,"ордер абилки")

Чтобы узнать что нужно вставлять вместо u и c, опять же: конвертируй в Jass нужного юнита, копируй и вставляй.

Там где нужно ставить ордер абилки, кавычки обязательно нужны!

LakushaFujin   2 сентября 2010 в 19:41

Cпасиб, пойду химичить)

AnGeLiK777   3 сентября 2010 в 23:11

Народ спрашивайте если че по редактору не стесняйтесь !!!

_MARTY   4 сентября 2010 в 19:09

Вот у меня вопрос (лень все темы просматривать, хотя может уже говорили об этом)
Как сделать переход с одной карты на другую? То есть как в доп. кампании за Рексара! А-то у меня уже даже места для перехода на карте готовы, но как сделать сам переход не знаю!
Ответьте, пожалуйста!
Заранее спасибо!

JassMan   4 сентября 2010 в 20:55

Для этого нужно уметь работать с кешэм

RwC Private League   4 сентября 2010 в 21:10

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

LakushaFujin   4 сентября 2010 в 22:04

Люди, подскажите пожалуйста, как в триггерах указать всех врагов, на который подействовала массовая магия (АОЕ)? Типо огненый столб в толпу пустил, и все кто пострадал от столба были указанны в триггере. А то максимум 1 есть (Цель применяемой способности).

_MARTY   4 сентября 2010 в 22:11

Mr ILYAS А чё такое кэш?

_MARTY   4 сентября 2010 в 22:13

Если кто знает, то напишите всё-же как сделать этот переход?

RwC Private League   4 сентября 2010 в 23:15

LakushaFujin

Если тебе достаточно того чтобы занести в триггер всех тех, кто были в начале каста, то сделай так:

Поймай триггер на выполнении того скила, дай задержку в несколько десятых секунды (это если юзается скил с задрежкой - Огненный столб),
затем Установить xx = (Юниты в YYY (Целевая точка изданного приказа)) где xx имя переменной, а YYY радиус поражения скилом.

JassMan   4 сентября 2010 в 23:38

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

LakushaFujin   5 сентября 2010 в 00:28

Огромное спасибо, пойду пробовать...

RwC Private League   5 сентября 2010 в 08:17

Подскажите пожалуйста как сделать дугообразную молнию? Ну чтобы от одной руки персонажа до другой и через голову проходила молния.
-_-

JassMan   5 сентября 2010 в 12:54

Ну только через Jass , через несколько соединённых молний, путём установки высоты локаций и проводке через ник молний

Andreya   5 сентября 2010 в 15:04

Ильяс, подскажи плиз как есть ли в условиях такая строка сравнения типа "тип почтвы равно вода" ... просто искал-не нашел

RwC Private League   5 сентября 2010 в 15:29

Но она же будет "ступенчатая"... =( Кривая получится наверно.

JassMan   5 сентября 2010 в 17:34

[RwC]_LongMan если таких ступенек сделать много, то будет незаметно, а погнуть одну целую невозможно, только ступеньками.

Andreya

if(IsTerrainPathable(X,Y,нужный тип проходимости)==true)then
    действия. . .
    . . .
endif


где X и Y — координаты точки, которую проверяем на тип проходимости.

Типы проходимости:
PATHING_TYPE_AMPHIBIOUSPATHING     — могут пройти амфибии
PATHING_TYPE_ANY                               — любой
PATHING_TYPE_BLIGHTPATHING             — хз что это. . .
PATHING_TYPE_BUILDABILITY                — можно строить
PATHING_TYPE_FLOATABILITY                — тоже хз. . .
PATHING_TYPE_FLYABILITY                    — можно пролететь
PATHING_TYPE_PEONHARVESTPATHING  — я так понимаю что-то связанное с рабами или ресурсами судя по слову (Peon)
PATHING_TYPE_WALKABILITY                — можно пройти

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

if(IsTerrainPathable(X,Y,PATHING_TYPE_AMPHIBIOUSPATHING)==true)and(IsTerrainPathable(X,Y,PATHING_TYPE_WALKABILITY)==false)then
    действия. . .
    . . .
endif


Вроде так. . . Ну по экспериментируешь, посмотришь. . .

Andreya   5 сентября 2010 в 19:50

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

LakushaFujin   5 сентября 2010 в 20:48

Люди, а вот ещё одна проблема... Вот в отряд я всех внёс... но, ведь с отрядом ничего не сделать. Можно ли сделать команду, что бы с КАждым юнитом из отряда можно было что-либо сделать? Всмысле что Отряд нельзя спрятать или взорвать так как одного юнита. Типо тыкаешь Отряд, но действие из раздела боевая еденица двигать мгновенно.

JassMan   5 сентября 2010 в 22:03

Andreya ну так и ставь чтоб было PATHING_TYPE_WALKABILITY и PATHING_TYPE_AMPHIBIOUSPATHING оба true

LakushaFujin через цикл прогоняешь:
Вообщето пора уже учить Jass
call ForGroup(твоя группа,function тут имя придуманной тобой функции в которой все действия для каждого юнита)

JassMan   5 сентября 2010 в 22:12

2 мин спустя. . . :
я тут перевёл Float — это плавать
Blight — разрушать (возможно порча)

Andreya   5 сентября 2010 в 22:26

Mr_ILYAS, то есть можно PATHING_TYPE_FLOATABILITY и PATHING_TYPE_WALKABILITY
ураа!)

SlawkoBond   5 сентября 2010 в 22:27

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

RwC Private League   5 сентября 2010 в 22:27

А модель сделать можно самому?) Ну взять да погнуть в редакторе моделей... :)

Andreya   5 сентября 2010 в 22:29

Кстати зачем через Jass, можно и обычным способом...

LakushaFujin, делаешь действие - Отряд-Выбрать каждого юнита из отряда "х" (твой отряд) и сделать действие, и дальше указываешь что делать. например: Двигать (выбранного юнита) мгновенно к ...

LakushaFujin   6 сентября 2010 в 00:01

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

Andreya, такого нету в триггерах.

JassMan   6 сентября 2010 в 00:43

SlawkoBond с мультибоардами не работал, но читал кое-что. Вот тут что-то было про иконки.

[RwC]_LongMan конечно можно, но если сможешь. . .

LakushaFujin Jass только кажется трудным, на самом деле достаточно понять его структуру, его синтаксис, а уж функции не обязательно все учить, ибо достаточно переводить из гуи то, что требуется в скрипт. Ну а в дальнейшем уже всё запоминаться будет как для 2-летнего ребёнка новые слова. . .

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

LakushaFujin   6 сентября 2010 в 10:42

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

LakushaFujin   6 сентября 2010 в 11:10

Mr_ILYAS, Вот попробовал сделать как ты сказал...
call SetUnitPositionLoc( udg_XX, PolarProjectionBJ(GetUnitLoc(udg_XX), 20.00, GetUnitFacing(udg_Elmira_bum)) ) Было
call ForGroup( udg_XX, PolarProjectionBJ(GetGroupLoc(udg_XX), 20.00, GetGroupFacing(udg_Elmira_Bum)) ) Сделал как говорил
call SetGroupPositionLoc( udg_XX, PolarProjectionBJ(GetGroupLoc(udg_XX), 20.00, GetGroupFacing(udg_Elmira_Bum)) ) Попробовал...
В итоге То Отсутствует Название, То неверный Аргумент, то ещё всякие ошибки(( А Охота всю группу сдвинуть с места, чёт не выходит у мня(

LakushaFujin   6 сентября 2010 в 11:15

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

JassMan   6 сентября 2010 в 11:38

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

LakushaFujin   6 сентября 2010 в 12:08

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

JassMan   6 сентября 2010 в 14:17

прочитай циклы потом 3 статью и 4тую (устройство триггера Jass)

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

JassMan   6 сентября 2010 в 20:41

также можешь начать где-то с конца 6 темы, потом 7 тему и эту восьмую

_MARTY   6 сентября 2010 в 20:43

Так кто-нибудь ответит на мой вопрос!?

JassMan   6 сентября 2010 в 20:55

Jass'ом владеешь? если нет, тогда какой смысл на китайском языке объяснять как работает атомный реактор?

_MARTY   7 сентября 2010 в 18:50

В какой папке лежит кампания за Рексара?

_MARTY   7 сентября 2010 в 21:21

В MPQ-файле или где-то среди карт? А-то я найти не могу.

_MARTY   8 сентября 2010 в 15:55

Чего на форуме замолчали-то все?

Coder1994   8 сентября 2010 в 16:56

Здравсвуйте! Дайте пожалуйста ответы на вопросы из этой темы - www.rubattle.net/forums/warcraft_3_the_frozen_th.. .

_MARTY   8 сентября 2010 в 17:17

Ау!? Кто-нибудь ответит мне на вопросы? Или сам например задаст?

Andreya   8 сентября 2010 в 21:59

)))) Мортира, название темы почитай

_MARTY   9 сентября 2010 в 17:16

Ну почитал.

_MARTY   9 сентября 2010 в 17:20

Просто я понять не могу - я вопрос ведь задал? Задал! А никто не отвечает! Вообще мёртвая тишина на форуме. Кроме тебя конечно.

Andreya   9 сентября 2010 в 18:42

)))) Мортира, что ты спросил?))) если это
А чё такое кэш? , то
Mr_ILYAS: "Jass'ом владеешь? если нет, тогда какой смысл на китайском языке объяснять как работает атомный реактор?"

если
В какой папке лежит кампания за Рексара?, то
Andreya: )))) Мортира, название темы почитай

а если это
Если кто знает, то напишите всё-же как сделать этот переход?, то
здесь никто не будет делать за тебя такую прилично сложную и продолжительную работу

_MARTY   9 сентября 2010 в 20:26

Тогда про Рексара хотя-бы ответь.

_MARTY   10 сентября 2010 в 16:51

Где за него кампания лежит? Ну или где скачать. Всмысле в формате w3e.

_MARTY   11 сентября 2010 в 09:03

У меня уже ещё вопрос: как сделать лифт? То есть мне нужно создать такую ситуацию:
воины встают на лифт;
через 3 сек. он стартует;
поднимается на два уровня;
там останавливается;
если на него встает кто нибудь (пока он находится наверху), то он едет обратно вниз.
Однако прикол в том, что если КТО-НИБУДЬ пройдёт СНИЗУ, то лифт не должен опускаться.
Если такой тригер вообще возможно создать напишите как?

SaRoF   11 сентября 2010 в 14:42

Тебе же дали ответ на вопрос - садись учи джазз.Без него, даже если кто-то скажет тебе как сделать эти тригеры, и ты как-то все таки сделаешь это на гуи, то всеравно карта будет очень очень сильно лажить т.к в каждом тригере будет море утечек. Ссылки на обучение найдешь в этой теме, так что садись и учи.

_MARTY   11 сентября 2010 в 15:43

Хорошо, поучу. Только я глюк в редакторе нашёл - если прописать модельку, то когда её занесёшь в менджер импорта, комп её в папку war3mapimported кладёт.
А там она тут-же портится - часть модели исчезает, а оставшуюся часть он грузить отказывается. Можно как-нибудь исправить?

_MARTY   11 сентября 2010 в 16:20

Киньте ссылки на учебники. Лень искать.

SaRoF   11 сентября 2010 в 17:09

)) искать лень а учится не лень стало быть ? =). Осваиваем Jass Читать стоит до темы » Оптимизация: утечки памяти дальше можеш не читать. Если что-то не понятно перечитай.. конечно сразу ты ничего не поймеш.. прочитай первых 4 темы где-то а потом внимательно смотри как сделаны наработки которые есть в конце каждой статьи (не скажу что они легкие) я сам их сразу не понял.. потом уже только разобрался после долгих скитаний по разным сайтам и собственной практике.

SlawkoBond   11 сентября 2010 в 21:25

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

SaRoF   11 сентября 2010 в 22:49

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

SlawkoBond   12 сентября 2010 в 04:15

и как его добавить?

JassMan   12 сентября 2010 в 04:46

11.09.10 21:25 потому что они написаны на старом патче с использованием RB (return bug)

Andrew Z   12 сентября 2010 в 04:48

Mr_ILYAS
ты, я смотрю, тут вообще спец.

RwC Private League   12 сентября 2010 в 11:39

Merseyside Red

А ты сомневался?...

SlawkoBond   12 сентября 2010 в 12:14

ну так как добавить игрока? я смотрел в сценарий - не нашел!

JassMan   12 сентября 2010 в 15:58

SlawkoBond 12.09.10 04:46 для тебя написано.

SlawkoBond   12 сентября 2010 в 16:53

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

_MARTY   13 сентября 2010 в 17:31

Jass изучать начал.
Но есть вопрос с ним не связанный.

SaRoF   14 сентября 2010 в 19:37

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

_MARTY   15 сентября 2010 в 19:13

Не я не совсем правильно написал...
Я сделал триггер, мне нужно чтоб каждый раз, когда он заканчивается, триггер сразу-же повторялся. Только без использования Jass`a.
Я посмотрел, какие могут быть действия - не нашёл.
Может плохо искал?

SlawkoBond   15 сентября 2010 в 19:30

Мортира
в конце триггера создаешь действие триггер-->run on this trigger ignoring или checking condition (как тебе нужно)

JassMan   15 сентября 2010 в 21:17

или использовать циклы

_MARTY   16 сентября 2010 в 15:40

Сработало, спс.
Ещё одна вещь - как создать квест(миссию, задание)?
Только не надо писать "сам поищи" - мне до субботы надо хотяб пол-карты сделать.
А то не очень хорошо выйдет...

_MARTY   16 сентября 2010 в 17:39

Народ... Кто-нибудь? Помогите с квестами.

JassMan   16 сентября 2010 в 22:37

Ты когда-нибудь посещал FAQ этой темы?

_MARTY   17 сентября 2010 в 12:39

Ага. С квестами более-менее разобрался.
Теперь новый вопрос - как правильно создать предмет?
То есть, обьясняю:
Мне нужно создать книжку(словарь). В течении игры ГГ несколько раз
должен воспользоваться ею на обелиски - перевести надписи. Проблема в том, что
книга после создания работает неправильно - она тупо исчезает из инвентаря, а если её положить
на карте, то исчезает после её использования(т.е. как обычная книга).
Как её правильно сделать?

_MARTY   17 сентября 2010 в 12:45

БЛИН! Теперь ещё хуже! Вообще из игры вылетает!
Пишет "FATAL ERROR"!

SlawkoBond   17 сентября 2010 в 16:33

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

Tapo4eGG   17 сентября 2010 в 18:21

Люди ещё вопросики!!
1. Как сделать чтобы можно было токо 1 раз выбирать героя?
2.Как сделать чтобы герой перерождался например через секунд 30?
3. Сдесь у меня с надписями какаято хрень!
События:
Боевая еденица- юнит умирает
Условия:
(Владелец (Убивающий юнит)) равно Игрок 1 (Красный)
((Убивающий юнит) типа герой) равно Да
((Умирающий юнит) типа герой) равно Да
Действия
Установить red[1](целочисленная, массив)=(red[1]+1)
If(все условия истины) then(делай операции) else
Если - Условия
red[1] равно 2
То - действия
Игра - Показать (Все игроки) текст ((Имя(Владелец (Убивающий юнит))) + Совершил Double Kill)
Иначе действия
If(все условия истины) then(делай операции) else
Если - Условия
red[1] равно 3
То - действия
Игра - Показать (Все игроки) текст ((Имя(Владелец (Убивающий юнит))) + Совершил Triple Kill)
Иначе действия
If(все условия истины) then(делай операции) else
Если - Условия
red[1] больше или равно 4
То - действия
Игра - Показать (Все игроки) текст ((Имя(Владелец (Убивающий юнит))) + Ultra kill)
Иначе действия
вот это сделал для каждого игрока и почемуто у меня это не получается =((
у меня пишет токо в том случае если я убью кагото и потом меня токо тогда пишет!!!
плз помогите!!
а там переменную надо для всех оздовать?

SaRoF   17 сентября 2010 в 18:30

Это ты так учится сел ? "Только без использования Jass`a."

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

Tapo4eGG   17 сентября 2010 в 18:35

ммоно вопрос что такое Jass токо плз пожалуйста особо для мну что такое джаас?
И мне обязательно нужно 2 первых вопроса!

Tapo4eGG   17 сентября 2010 в 19:01

о во с надписями я разобрался там надо было каждому свою переменую делать=)
теперь что такое джасс и 2 первых вопросика =)

SaRoF   17 сентября 2010 в 19:44

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

Tapo4eGG   17 сентября 2010 в 21:43

что такое джасс я понел а как первые 2 вопроса немогу понять о_о

Tapo4eGG   17 сентября 2010 в 21:57

1. Как сделать чтобы можно было токо 1 раз выбирать героя?
2.Как сделать чтобы герой перерождался например через секунд 30?
как это аа как? ААААА вынос мозга! найти немогу =(

SaRoF   17 сентября 2010 в 22:28

1- есть событие которое удаляет предмет либо героя из таверны либо магазина.. при определенном событие.. и есть событие "юнит был куплен" либо что-то в таком роде.
2-О_о спроси ченить полегче.. не знаю я ( ЛОЛ).Событие юнит умер
Условие юнит тип=Герой
действия ( создаеш таймер который запустится через я бы зделал через переменную зависящую от уровня героя.. вот подставляеш эту переменную (целочисленную) в переодичность таймера.. и в след функции делаеш событие воскресить умершего юнита ) все это делается через jass и локальные либо глобальные переменные.. так что давай учись. Либо кидай редактор.. дело твое.. я пока не кинул но и особого интузиазма нет.. нужно особое настроение.. тогда только сажусь за дело.

ГИППЕР МАППЕР   18 сентября 2010 в 12:46

КУ РЕБЯТА!!!!!!!! я вернулся!=)

Tapo4eGG   18 сентября 2010 в 17:32

ку блим вроде прочитал столько статей про jass но не понимаю половину=(((
лучше без jass'a помогите мне триггеры сделать!!!

_MARTY   18 сентября 2010 в 18:46

Tapo4egg: Полностью согласен с Sarof`ом - без Jass`а ничего нормального не сделаешь. Так что как и я садись учить Jass и учи, учи, учи!

_MARTY   18 сентября 2010 в 19:24

Slawkobond: попробовал - не получилось!

Tapo4eGG   18 сентября 2010 в 21:10

ахааха скачал программку JassCraft нечего не пойму =))) скиньте несколько примерчиков ааа

JassMan   18 сентября 2010 в 21:27

Вообще то JassCraft это как библиотека. В нём находятся все функции jass'а (в частности файл blizard.j). Допустим любая BJ функция ссылается ну другую (или несколько других) и используя поиск можно найти конечные (native) функции
Также JassCraft можно использовать для написания кода и проверок прямо в нём. Он корректо указывает на ошибку.

Tapo4eGG   18 сентября 2010 в 21:30

блим извини конечто а с помощью чего можно писать с помощью Джасса???
там просто много всего такого а как это всё писать и делать я себе и не имею представления =((

Tapo4eGG   18 сентября 2010 в 21:32

Просто мне SaRoF сказал учи Джасс или тебе енчего делать в Эдиторе вот я и пытаюсь чото делать но не чо не выходит то чото не понимаю то чото не доходит =(

JassMan   18 сентября 2010 в 23:28

не понял вопроса

Tapo4eGG   18 сентября 2010 в 23:38

млин =)кароче Сароф мне сказал лучше учи джасс или тебе нечего делать в Эдиторе!!!
так вот я ещё в тут гдето писал мне наглядно сделать пару примерчиков пожалуйста!!
потомучто я нечего там не понял в JassCraft!!!
примерчики хоть какогото скилла!!прошу хотябы чтонибудь знал!

JassMan   19 сентября 2010 в 02:43

06.09.10 11:13 этот пост мой ищи

_MARTY   19 сентября 2010 в 09:00

Tapo4egg: могу тебе скинуть одну наработку сделанную с помошью jass`а.
Там наложен спецэффект на заклинание благодать.
Это самое простое, что можно сделать в jass`е

Tapo4eGG   19 сентября 2010 в 09:15

ого скинь пожалуйста =))))

_MARTY   19 сентября 2010 в 16:37

Блиииииииииииин. Кто-нибудь, помогите...

_MARTY   19 сентября 2010 в 18:00

Короче, кто-нибудь помогите с несколькими тригерами.
Щас напишу:

_MARTY   19 сентября 2010 в 18:28

1.Триггер, заставляющий воина проигрывать определённую анимацию.
А именно: рабочий, добывающий ресурс. Т. е. рабочий должен НЕ
ДОБЫВАТЬ ресурс, а лишь проигрывать анимацию добычи золота.
То что нужный триггер - Анимация ---> Play unit animation, я знаю.
А как сама анимация добычи называется?

_MARTY   19 сентября 2010 в 19:28

2. Этот вопрос связан с Jass`ом.
Вот на xgm в конце первой части написано создать два триггерных заклинания.
С первым вроде разобрался, а вот со вторым проблемы. Что нужно прописать
для достижения искомого?

Tapo4eGG   19 сентября 2010 в 19:35

ураааа я разобрался с джаззом!!!!!
токо после
function ......... takes nothing return nothing
я хз чо писать =((
к примеру
call AdjustPlayerStateBJ (player(0),PLAYER_STATE_RESOURCE_GOLD,1000)
endfunction вот после этого черта не понимаю это точно =(((
помогите разобратся какнить Т_Т ,хочу уж доконца свою карту доделать =(

Tapo4eGG   19 сентября 2010 в 21:33

Люди вот допустим я хочу сделать скилл на джассе!!!
Холай нова называется!!!
делает вокруг себя волну своих хилит а чужих дамажит!!!
это трудно через джасс сделать???

JassMan   19 сентября 2010 в 21:36

нет

покажи с чего начинаешь и мы направим на путь истинный

Tapo4eGG   19 сентября 2010 в 21:40

Mr ILYAS в том то и дело что для меня сложно я токо начало знаю а дальше я хз чо делать =(((

function что сдесь прописывать вот это???Tring_Holy_Nova_Condition ????
я вот это не помнимаю!!!

Tapo4eGG   19 сентября 2010 в 21:41

плз Mr.ILYAS давай пос кайпу объясни хоть ччучуть пожалуйста =))
о_о!!

Tapo4eGG   19 сентября 2010 в 21:54

Mr.Ilyas можешь наглядный примерчик этого скилла сделать?? ааааа??
пожалуйста а то я год буду его делать!

JassMan   19 сентября 2010 в 22:01

справа наверху посмотри мигающее сообщение

_MARTY   20 сентября 2010 в 09:01

Кто-нибудь, ответьте на вопросы!
Mr ILYAS?

_MARTY   20 сентября 2010 в 15:02

У меня уже вопрос новый назрел,а всё мёртвая тишина...

_MARTY   20 сентября 2010 в 15:17

3. Что делать, если редактор не прорисовывает модельки в окне, но в игре они появляются?
Т.е. как сделать чтобы модельки прорисовывались и в редакторе тоже?

JassMan   20 сентября 2010 в 15:50

по поводу анимации ищи мой пост 18.03.10 00:31

вообще рекомендую просмотреть 7 и 8 тему полностью

ГИППЕР МАППЕР   20 сентября 2010 в 17:13

Мортира
поставь юнита с моделью на карту, сохрани карту, закрой редактор. открой карту.

_MARTY   20 сентября 2010 в 19:01

ГИППЕРМАППЕР:я уже сам разобрался, но всё равно спасибо.

_MARTY   20 сентября 2010 в 19:08

Mr ILYAS: Ага, вроде б понял.
Ещё на второй вопрос ответьте кто-нибудь.

SaRoF   21 сентября 2010 в 11:02

не мог бы ты чуть подробнее описать свой вопрос? Тогда я и отвечу ), а то я не понимаю а каком тригере ты говоришь, и о каком искомом.

_MARTY   21 сентября 2010 в 18:08

2.Короче, объясняю:
На xgm в конце первой статьи автор даёт "д\з" - самому создать два триггерных заклинания.
Первое - закл. "разговор" - над тем, на кого скастовано заклинание появляется надпись плав. текста "привет".
Его я сделал.
А второе - закл. "призрак" - даёт цели способность дух. Саму основу я сделал, а вот каким триггером надо прописывать
чтоб юниту давалась способность - я не понимаю.
Вот и спрашваю - каким?

SaRoF   21 сентября 2010 в 20:59

Емм, все очень просто, создаешь триггер на ГУИ там есть действие Unit addability (по моему так) и конвентируешь все это в текст далее смотришь что у тебя в функции действий.. а там будет нужная тебе команда.. ЖЕЛАТЕЛЬНО а Ильяс бы сказал обязательно) скопируй эту функцию в джазз крафт и посмотри на какую нативку (самую простую функцию) ссылается эта функция.. и уже Нативку вставляй в свой триггер.

p.s И не тригером а командой! все действия(Вызываемые командами) происходят в функциях.. а функции лежат в триггере.

_MARTY   22 сентября 2010 в 08:42

А что такое jasscraft? Уже не впервые слышу про это слово, а что такое только по-названию догадываюсь. :)

SaRoF   22 сентября 2010 в 11:57

Если написать в гугле jasscraft снизайдет на тебя просветление!.. (2 ссылка) не ужели так лень искать?

Tapo4eGG   22 сентября 2010 в 13:43

Люди как менять предметы??
вот пример:
Перчатка скорости даёт По умолчанию к скорости атаке 15%
а как сделать чтобы довало например 50%??

_MARTY   22 сентября 2010 в 16:19

Через РЕДАКТОР ОБЪЕКТОВ, умник!
В разделе "способности" найди "Стандартные\особые\предметы""Предмет: увеличение скорости боя",
там найди строку "данные\увеличение скорости атаки". По стандарту - 0.15. Меняй на сколько нужно
и !ВУАЛЯ! готово!
Вот и всё - ничего сложного!

JassMan   22 сентября 2010 в 17:21

не эффекты а способности\особые\предметы

_MARTY   22 сентября 2010 в 18:53

Mr ILYAS: ага, спасибо за поправку.

Andreya   22 сентября 2010 в 22:26

Всем привет!
Вот я тут думал, думал и так и не додумал, как работает скилл у нового чара на доте светлячка, который выпускает шарики и они вокруг херо крутятся
Всё вроде бы понятно, кроме самого движения шаров. Ставлю таймер на каждые 0.01 сек, а все равно юниты двигаются очень медленно...воть

JassMan   23 сентября 2010 в 00:11

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

local real a=LoadReal(udg_Hash,GetHandleId(t),1) + (da*0.017453277) //загрузили из нужной ячейки угол, и сразу уже увеличили на нужное кол-во
call SetUnitX(u,X+радиус*Cos(a))
call SetUnitY(u,Y+радиус*Sin(a))
call SaveReal(udg_Hash,GetHandleId(t),1,a) //Сохраняем текущий угол, для нового прибавления

где X,Y — это координаты точки или юнита, вокруг которого вращаем.

da — изменение угла (угол поворота)
можно увеличивать на 1 или 2 или сколько хочешь, а потом умножается на 0.017453277 для перевода в радианы, хотя рекомендую сразу умножить и записать туда готовое число в радианах

_MARTY   23 сентября 2010 в 22:16

4. А вот ещё вопрос:
Как развернуть декорацию по оси Z? Т.е. можно декор. поворачивать в её настройках, но мне перевернуть предмет надо вот так:
_
о[ ]
[_______________________] такая была,а вот какой должна стать: с [ ]
основание н [ ]
о[ ]
в[ ]
а[ ]
н[ ]
и[ ]

_MARTY   23 сентября 2010 в 22:20

Чёрт, картинка испортилась...

_MARTY   23 сентября 2010 в 22:26

4.Короче, горизонтальная декор. должна стать вертикальной.

_MARTY   23 сентября 2010 в 22:31

Как это сделать?

GriPet   24 сентября 2010 в 11:06

подскажите как для своей карты поменять названия рас, чтобы в меню сражений при выборе расы вместо Альянс-Орда-Нежить-Ночные эльфы было, например, Телепузики-Смешарики-Хищники-Чужие.

Tapo4eGG   24 сентября 2010 в 11:35

GriPet посмотри в правый верхний угол посмотри в письма!!!

Tapo4eGG   24 сентября 2010 в 12:24

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

_MARTY   24 сентября 2010 в 18:49

4. Есть обычная декор. Она горизонтальная. А как сделать её вертикальной?

_MARTY   26 сентября 2010 в 10:50

С помощью поворота?

_MARTY   26 сентября 2010 в 17:58

Чего замолчали-то все?

_MARTY   27 сентября 2010 в 16:26

Уже 4-ый день все добросовестно молчат...
Чё там поубивали всех что-ли?!

GriPet   28 сентября 2010 в 09:50

К сожалению, ничем не могу тебе помочь Мортира. Tapo4eGG в редакторе объектов выбираешь нужное здание, технологии -> предметов продано -> нужные тебе предметы.
А теперь еще раз вопрос: как для своей карты поменять названия рас, чтобы в меню сражений при выборе расы вместо Альянс-Орда-Нежить-Ночные эльфы было, например, Телепузики-Смешарики-Хищники-Чужие.

_MARTY   28 сентября 2010 в 17:24

Gripet: такой-же вопрос возник недавно. Действительно, как поменять названия рас?

GriPet   29 сентября 2010 в 01:07

кстати еще пара вопросов. 1). у героя-гоблина есть способность ракетный удар, как сделать чтобы она длилась 10 сек, то есть не только стун и собственно урон, который никак к ракетам не привязан, а чтобы сами ракеты летели с определенным промежутком времени напротяжении например 10 сек. покурочил в редакторе объектов, но у меня получилось изменить токмо длительность получения врагами урона (выглядит идиотски: ракеты вылетают за пару секунд, а враги получают урон потом 10 сек), длительность стуна, ракеты как уже сказал все вылетают за первые 2 секунды и никак это не изменить.

GriPet   29 сентября 2010 в 01:10

2). поменял модельку одного юнита на того же героя-механика так вот он после смерти превращается в свою кибер-версию (заклинание 6 уровня) и около минуты засоряет потом этой огромной текстурой карту.

_MARTY   29 сентября 2010 в 16:38

5. И снова вопрос:
Каким условием делается проверка на принадлежность определённому игроку? Т. е. какое условие проверяет какой игрок владеет этим юнитом?

LakushaFujin   29 сентября 2010 в 18:08

Люди! Вот такая проблема появилась...
Начал делать триггер для воскрешения героев, как в доте, но возникла проблема. Герои нормально воскрешаются. НО! Герой умирает, начинается таймер времени, когда он воскреснет. Если умирает герой союзника, то Появляется таймер воскрешения его героя + таймер воскрешения своего героя обновляется, и идёт поновой. ПРи этом свой герой воскрешается именно тогда когда должен был сначала, не дожидаясь таймера. Не Знаю как Сделать что-бы таймер появлялся только для владельца умершего героя + что-бы он не обновлялся. Вот Триггер.

Действие:
local unit HEroD
Local integer HeroWait
local timer time
local timerdialog window
Установить HeroD = Умирающий юнит
Set HeroD = udg_HeroD
Set udg_HeroD = HeroD
Установить HeroWait = Уровень HeroD x 5
set HeroWait = udg_HeroWait
set udg_HeroD = HeroD
Создать окно таймера для Timer с названием Proper name of HeroD
Установить Timer = последний включеный таймер
set time = udg_Timer
Установить Window = последнее окно таймера
set window = udg_window
set udg_Timer = time
set udg_HeroWait = HeroWait
Запустить Timer как однократный таймер, который зазвонит через Real HeroWait секунд
set udg_window = window
set udg_HeroD = HeroD
Показать window для владелец HeroD
set udg_HeroWais = HeroWait
Ждать Real HeroWait игровых секунд
set udg_HeroD = HeroD
Мгновенно оживить HeroD в центр respawn Показать графику оживления
set udg_window = window
Скрыть window
Уничтожить window

_MARTY   29 сентября 2010 в 20:53

Gripet: ага, точно - всё работает. Ещё второй вариант - это проверять враг этот юнит опред. игроку или друг. С ним тоже работало.

GriPet   30 сентября 2010 в 18:13

LakushaFujin не смогу тебе помочь у меня WE на русском. Думаю если к каждому конкретному герою привязывать отдельный таймер проблем возникнуть не должно. А что бы таймер было видно только владельцу умершего героя используй действие Show/Hide Timer Window For Player (у меня во всяком случае так называется) и там прописывай кому показывать таймер, а кому нет

GriPet   30 сентября 2010 в 18:19

кстати как связывать таймер с окном таймера, то есть например если я создаю переменные Timer и TimerWindow и делаю действие "скрыть TimerWindow для такого-то игрока" то исчезало именно окно таймера Timer и никакого другого.

Tapo4eGG   30 сентября 2010 в 20:42

Гриша на счёт вещей я разобрался там просто я сначало способности делал а потом в предметы засунул а как засовавать в здание я ззнаю!!!
Эм такой вопросики :
1.Как сделать чтобы с одной точки тп на др точку??(телепорт)
2.когда выбираешь героя чтобы он на своей стартовой локации оказался!!Как это сделать?
3.Как дать герою скилл чтобы он у него сразу был в начале игры без прокачки?
4.Напишите как вещи в триггерах крафт =) плз чтобы например перчатка скорости + ботинки = нога вирта типо этого!

LakushaFujin   30 сентября 2010 в 22:31

GriPet, так у мня тоже на русском он. То что написанно на англ язе, это GUI (вродь так называется).
Прост всё ж начал изучать Jass, там с него начало... А это я старался для всех сделать ресс с помощью лишь одного триггера (из первого раздела в освоении Джаза). Для каждого свой сделал, но пытался через Гуи сделать всё одним. Всё кроме таймера вышло(

LakushaFujin   30 сентября 2010 в 22:43

Tapo4eGG
1. Действие - Боевая Еденица: Двигать юнит мгновенно. И указываешь куда.
2. Если правильно тебя понял, то можно так...
С - Юнит продаёт боевую еденицу.
У - Проданный Юнит = (нужный герой. Либо тип проданного герой. Либо владелец проданного игрок один (если несколько игроков)) Ну условия сам настроишь.
Д - Двигать мгновенно к "Позиция юнита" (Как юнит указываешь стартовую локацию).
3. Действие: Боевая еденица - Добавить способность.
4. С - Юнит получает предмет
У - Предмет - Перчатки скорости.
Юнит имеет Ботинки.
Д - Убрать у юнита ботинки и перчатки.
Дать Юниту Ногу вирта.
Вообщем так... (4 не стал писать слово в слово, торопился очень, но думаю и так всё понятно)

_MARTY   1 октября 2010 в 08:42

Ну вот... Вопросов накопилось...Ууууугугу...
4.Как сделать вертикальную декорацию горизонтальной?
6.Как поменять названия рас в окне выбора карты?
7.Как сделать чтобы после улучшения юнит получил возможность атаковать духов?

_MARTY   1 октября 2010 в 12:30

8. Как сделать проверку выполнено\не выполнено задание?

_MARTY   1 октября 2010 в 12:50

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

_MARTY   1 октября 2010 в 13:33

10. Каким параметром определяется сколько времени будет строится здание?

GriPet   1 октября 2010 в 19:30

Мортира 1). триггер работает только если все условия соблюдены 2). Характеристики - время строительства

_MARTY   1 октября 2010 в 20:36

Хорошо, спасибо. Ещё на 4,6,7,8 ответь если можешь!

GriPet   1 октября 2010 в 21:03

на 7 и 8 постараюсь завтра ответить сейчас времени нет

GriPet   2 октября 2010 в 19:07

7). создай для нужного юнита атаку 2 (Бой - Атака 2) выставь нужные хар-ки (например такие же, как у атаки 1) только в графе "бой - атака 2 - допустимые цели" поставь нужные пункты в том числе и "духи" если тебе нужно. в закладке "улучшения" редактора объектов создай уникальное улучшение (например на основе улучшения "картечь" Альянса) и там поставь нужные данные и главное "эффект 1 - включить атаки" и "эффект 2 - только атака 2" таким образом после данного улучшения вместо атаки 1 не действующей на духов, будет включаться атака 2, действующая на духов.

GriPet   2 октября 2010 в 19:10

кстати у того юнита для которого делаешь улучшение в редакторе объектов в графе "технологии - улучшения" поставь, то улучшение которое сделал

GriPet   2 октября 2010 в 19:12

кто может ответь пожалуйста на мои вопросы про расы, про таймеры, про ракетное заклинание и про текстуру умерешего механика

GriPet   2 октября 2010 в 19:20

8). не нашел в редакторе триггеров нужного условия. попробуй сделать так: триггер для которого ты хотел сделать это условие сделай изначально выключенным (есть такой пункт в редакторе триггеров), а в триггере отвечающим за выполнение задания в качестве еще одного действия добавь "триггер - Turn On - turn on [тот триггер который должен включаться если задание выполнено]"

LakushaFujin   2 октября 2010 в 21:45

Знающие люди, ответьте пожалуйста на вопрос...
Люди! Вот такая проблема появилась...
Начал делать триггер для воскрешения героев, как в доте, но возникла проблема. Герои нормально воскрешаются. НО! Герой умирает, начинается таймер времени, когда он воскреснет. Если умирает герой союзника, то Появляется таймер воскрешения его героя + таймер воскрешения своего героя обновляется, и идёт поновой. ПРи этом свой герой воскрешается именно тогда когда должен был сначала, не дожидаясь таймера. Не Знаю как Сделать что-бы таймер появлялся только для владельца умершего героя + что-бы он не обновлялся. Вот Триггер.

Действие:
local unit HEroD
Local integer HeroWait
local timer time
local timerdialog window
Установить HeroD = Умирающий юнит
Set HeroD = udg_HeroD
Set udg_HeroD = HeroD
Установить HeroWait = Уровень HeroD x 5
set HeroWait = udg_HeroWait
set udg_HeroD = HeroD
Создать окно таймера для Timer с названием Proper name of HeroD
Установить Timer = последний включеный таймер
set time = udg_Timer
Установить Window = последнее окно таймера
set window = udg_window
set udg_Timer = time
set udg_HeroWait = HeroWait
Запустить Timer как однократный таймер, который зазвонит через Real HeroWait секунд
set udg_window = window
set udg_HeroD = HeroD
Показать window для владелец HeroD
set udg_HeroWais = HeroWait
Ждать Real HeroWait игровых секунд
set udg_HeroD = HeroD
Мгновенно оживить HeroD в центр respawn Показать графику оживления
set udg_window = window
Скрыть window
Уничтожить window

_MARTY   3 октября 2010 в 11:51

GriPet
Ты про ракеты спрашивал. Черз редактор объектов это по-моему нельзя изменить.
Зато если постараешься, то можешь через jass сделать чтоб модельки продолжали лететь нужное время.
Теоретически, это вполне возможно сделать.

_MARTY   3 октября 2010 в 11:55

GriPet
Про механика(где ты про текстуру) не понял. Если же я правильно понял, то тебе надо через MdlVis, через редактор анимаций для модельки
сделать так, чтоб во время анимации смерти модель кибер-версии была скрыта.

_MARTY   3 октября 2010 в 11:59

Ещё извините все за то, что вопрос не связан с редактором, но что означают - и + сбоку от сообщения?

GriPet   3 октября 2010 в 12:23

Короче у механика способность 6 уровня - превратится в кибер-гоблина. Так вот после смерти юнит, которому я поставил внешность этого механика вместо трупа оставляет на поле боя модельку этого кибер-гоблина. Она никак в игре не участвует, юниты бегают сквозь нее, не замечают, но мешается (большая она очень) около минуты валяется, потом растворяется. Кстати что такое MdlVis.

Melanholiy   3 октября 2010 в 20:46

Люди,извините за тупой вопрос,но как поместить в какое-то существо предмет(на карте в сражении)???
Я просто новичёк в эдите.

_MARTY   3 октября 2010 в 22:39

GuRu13
Все были нубами:((((
А вообще слушай, вызываешь свойства юнита (два-три щелчка по нему, если ты совсем нуб), когда его уже поставил на карте, и там найди категорию "выпадающие предметы".
Там будут две таблицы - "таблица предметов (карта)" и "нестанд. таблица предметов". Вот там и создавай. Первое - для всей карты, второе - только для этого юнита.

LakushaFujin   4 октября 2010 в 00:47

Народ! Скажите пожалуйста, как сделать, что бы в начале игры, после выбора героя в таверне, он из таверны пропадал? Что-бы герои не повторялись. Такая фишка в доте есть. Один игрок выбрал, другие не могут уже.

_MARTY   4 октября 2010 в 15:55

Да проще пареной репы! Ставишь условие - что игрок владеет юнитом либо юнит был куплен из таверны. Действие - "нейтральное здание" - remove unit-type from marcetplace (можно from all marcetplace) и там указываешь героя либо юнита и таверну(при all не надо).Вот и всё. Событием можешь сделать - periodic event. ВСЁ!

LakushaFujin   4 октября 2010 в 17:23

Большое спасибо) ДО этого видел, но найти не смог, подумал показалось))

LakushaFujin   4 октября 2010 в 17:32

Не работает почему то...

GriPet   4 октября 2010 в 17:48

что такое immolate improved?

_MARTY   4 октября 2010 в 20:08

Ну я не пробовал сам)))))) Время будет посмотрю!

SaRoF   4 октября 2010 в 20:22

LakushaFujin все что я тебе могу посоветовать, так это учить джазз.. как и всем другим собственно.
А вобще, лично я свою карту забросил опять.. и не знаю когда возьмусь т.к не вижу в этом смысла, ибо ИМХО варкрафт себя уже пережил и скоро все перейдут на StarCraft 2, а насколько я понимаю там тоже есть свой редактор и там тоже можно делать карты.. вот подумываю купить его да начинать разбиратся с тем редатором.

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

+ я и сам уже давненько в него не играю.. HoN For ever.

k0lenval   4 октября 2010 в 21:11

Не надо негатив распускать-вар TFT был, есть и будет!!!!

LakushaFujin   4 октября 2010 в 22:05

SaRoF, ну На сколько я знаю старкрафт второй вроде платный, а не все люди готовы платить за возможность поиграть... (Единственная игра за которую я бы платил, это Вархаммер Дарк Милениум, А на другие пофиг, какими бы они не были). Так что вероятность что все бросят Вар очень мала. Да и даже если СК2 бесплатен, полюбой... А джазз иногда появляется желание учить, иногда пропадает=)

_MARTY   5 октября 2010 в 16:32

SaRoF
Не, я с тобой не согласен. Не кончится Warcraft! Всё равно в него всё ещё многие играют:))) А вообще я просто НА ВСЕ СТО УВЕРЕН, что после starcraft`а 2 студия будет делать Warcraft 4! Сто пудов!

Melanholiy   5 октября 2010 в 17:47

Мортира
Спасибо за подсказку)

GriPet   5 октября 2010 в 23:34

господа можете пожалуйста ответить на вопросы про
1.) расы
2.) таймера
3.) механика
4.) ракеты
5.) новый вопрос - как сделать, чтобы при использовании заклинания Массовая телепортация (Архимаг, 6 уровень) автор не телепортировЗюался?
З.Ы. джаз не знаю

GriPet   5 октября 2010 в 23:35

телепортировался*

GriPet   6 октября 2010 в 10:20

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

_MARTY   6 октября 2010 в 19:52

1.Расы. У самого этот же вопрос.
2.Таймер. Не понял вопроса)))
3.Про механика отвечал.
4.Я тебе правильно сказал - чтоб убрать глюк придётся с MdlVis поработать.
5.Не знаю:((((
6.Легко! Выбери башню, зажми [ctrl] и нажимай [pgdn](поднять) или [pgup](опустить)(можно опустить и под землю). А если уменьшить размер, то тебе нужно
зайти в Редактор Объектов и найти там физ. размер. Меняй его.

GriPet   6 октября 2010 в 20:25

2.) если я создал окна таймера Х как связать его с конкретным таймером У
3,4) что такое MdlVis и как с ним работать
6.) мне надо не просто уменьшить башню, а именно опустить ее, как ты и описал, но мне нужно проделать это не с какой-то конкретной башней, а с типом башни, т.е. чтобы при строительстве башни данного типа она была низкой (частично была под землей)

GriPet   6 октября 2010 в 20:27

1.) не "окна", а "окно"

_MARTY   7 октября 2010 в 15:10

6. Б_я, тогда и ШЕСТОЕ тоже надо делать через Mdlvis.

_MARTY   7 октября 2010 в 15:24

MdlVis - прога, позволяющая редактировать модельки из игры - можно, например, изменить оружие в руках юнита, покрыть новыми текстурами и т.д. В новых версиях ещё одна функция - создание
анимаций. Но есть одно НО: нужно вытащить модель из игровых папок(MPQeditor в этом поможет), а когда она... как объяснить... Короче, модельку после изменения на карту надо будет прописывать
через импорт. Вот, все твои проблемы решаются через MdlVis...

GriPet   7 октября 2010 в 18:43

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

_MARTY   8 октября 2010 в 15:34

Вопрос... 11 вроде. Вот я прописываю через импорт модельку с нестанд. текстурами, но на карте она нормально не отображается - одна тень.
Как исправить? Пишет, что не удалось открыть файл.

Гривуc   8 октября 2010 в 16:39

Либо левая моделька либо перезапусти редактор и она появиться!

_MARTY   8 октября 2010 в 18:08

Гривуc
Про перезапуск я и так знаю. Дело не в этом... Вроде нужно прописывать где-то путь к нстандартным текстурам, вот где? Или как-то по-другому?

FazZzuR   8 октября 2010 в 21:33

У меня возникла такая проблема, нужно сделать один момент и у меня пока вообще ничего не выходит, надеюсь на вашу помощь). Есть 1 учитель и n количество простых крестьян. Они неумеют абсолютно ничего, разве что атаковать. Надо сделать так, Чтобы у учителя(персонаж такой) появилась кнопка рядом с постройкой, при нажатии на которую открывалась бы меню со скилами (типо как у рабочих в troll and elves). А скилы эти вроде обучения, называются они - обучить строительному ремеслу, и второй - Обучение лесоруба. Суть их в том что при использовании скилов на крестьян, они будут превращатся либо в строителей, либо в лесорубов. Может подскажет кто как это осуществить?

Гривуc   9 октября 2010 в 13:53

Мортира
Путь вроде если кликнуть на нужную модельку в менеджере импорта то откроется окно и там поставь галочку, а в строке пропиши путь...
FazZzuR Сделай тригерами - если чел кастует скил на когото то действия - убрать чела на которого кастуют скил, и создать нового чела на позиции которую занимал "крестьянин" . Выглядит примерно так в англ ВЕ :
Event
Unit A unit Begins casting an ability
Condition
тут прописываешь при каком скиле его превратят в "лесоруба"
Actions
Unit - remove (Target unit of ability being cast) from the game
Unit - Create 1 (Тут нужный тебе юнит) for (Owner of ( Target unit of ability being cast) at (Position of (Target unit of ability being cast) facing (facing of (Target unit of ability being cast)
Вот так.

_MARTY   9 октября 2010 в 14:49

Гривус
Тоже не работает. Прямо беда какая-то.

Гривуc   9 октября 2010 в 15:10

Мортира
По своей практике знаю что половина моделей найденных в интернете и сделанных не из файлов варкрафта - левые!

FazZzuR   9 октября 2010 в 16:55

А как сделать кнопку при нажатие на которую список скилов появляется?

Гривуc   9 октября 2010 в 17:15

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

_MARTY   9 октября 2010 в 17:21

Гривус
Правые, ёклмн... Буду надеятся, что правильно сделаю, если все их удалю.

Гривуc   9 октября 2010 в 17:47

Мортира
Оо ... Те что не идут к карте удаляй)

FazZzuR   9 октября 2010 в 18:05

Гривуc
Вот в этом и основная проблема) Пока зделаю так, а потом может умудрюсь troll and elves расковырять)

k0lenval   9 октября 2010 в 19:27

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

_MARTY   10 октября 2010 в 16:31

k0lenval
Ок, сейчас попробую. Блин... Я ж все модели удалил!

_MARTY   10 октября 2010 в 16:34

k0lenval
По крайней мере я помню откуда их качал, так что попробую то что ты предложил.

LakushaFujin   11 октября 2010 в 14:09

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

Tapo4eGG   11 октября 2010 в 16:19

Люди можете чотко написать как вещи соеденять??Я так не разобрался.

Гривуc   11 октября 2010 в 18:36

Tapo4eGG
Вот как сделать тригер:
-Event
Unit - Unit carried an item
-Condition
Тут ставишь по 1 на каждый нужный предмет, к примеру:
Triggering unit has an item of type Камень Манны equal to True
Triggering unit has an item of type Камень Здоровья equal to True
Triggering unit has an item of type Что-нибудь=/ equal to True
-Actions ---- Тут сначала убираешь итемы из инвента гера, потом добавляешь ему получаемый итем :
Item - Remove (Item carried by (Hero manipulating item) of type Камень манны)
Item - Remove (Item carried by (Hero manipulating item) of type Камень Здоровья)
Item - Remove (Item carried by (Hero manipulating item) of type Что-нибудь=/)
Hero - create Королевская корона and give it to (Triggering unit)

Гривуc   12 октября 2010 в 09:50

LakushaFujin
Тригер будет выглядеть примерно так:
-Event
Unit start casting an abiliti
-Condition
Тут пишеш при каком скиле тригер будет выполняться
-Actions
Unit - Create 1 Unit of type (Target Unit of ability being cast) for Owner of Casting unit at position of (Target unit of ability cast)
Unit Group add last created unit to (Units of tipe (Unit tipe of (Target Unit of ability being cast)))
Time - Wait 10 seconds (Время сколько будет жить копия, допустим 10 сек)
Unit -Explode (First Unit of group(Last created unit group)

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

P.S. Теперь и мне нужна кнопка =/

GriPet   12 октября 2010 в 10:04

много новых пользователей появилось
вот мои вопросы
1.) если я создал окна таймера Х как связать его с конкретным таймером У
2.) после смерти юнита, которому я поставил модельку ("Файл модели") героя Механика на поле боя остается модель его кибер-версии (заклинание 6 уровня). Т.е. это сугубо текстура она тупо валяется юниты сквозь нее бегают, стреляют, но она довольно большая и сильно засоряет карту. Как и положено "трупу" где-то через минуту растворяется.
3.) как сделать, чтобы заклинание Массовая телепортация не действовало на автора, т.е. все телепортируются, а тот кто его накастовал - нет.
4.) как поменять названия рас, чтобы в меню сражений вместо Альянс-Орда-Нежить-Ночные эльфы было написаны те названия, которые мне нужны.
5.) надо сделать модельку башни ниже, либо опустить ее под землю. Не одной конкретной башни, а всех башен данного типа
6.) как сделать, чтобы при заклинании ракетный удар ракеты летели 10 секунд.
Все ответы желательно в пределах World Editor (редактор объектов, редактор триггеров)

Гривуc   12 октября 2010 в 10:50

GriPet
1) создай переменную ( set timerX = Last created timer)
2) Если вопрос стоит в том как убрать его, тогда вот тригер:
-Event
Unit - A unit dies
-Condition
Тут прописываешь что дохлый юнит = твоему "Механику"
-Actions
Вот примеры что можно сделать(каждый рассматривать в отдельности)
Unit - explode Trigering Unit
Unit - remove trigering unit from the game
Unit - Hide trigering unit
3)хз
4)хз
5)Создаёшь текстуру ставишь туда модель башни, ставишь на карту и меняешь высоту (если позволяет редактор(Стрелочка вниз+ктрл))
6)В редакторе объектов поменяй у скила missile speed на 100 и будут в 7 раз медленней лететь)

LakushaFujin   12 октября 2010 в 12:57

Гривуc, совсем не то что я имел ввиду. Я имел ввиду создать ИЛЛЮЗИЮ цели, а не такого же юнита... Как просто создать такого же юнита знаю, но нужна иллюзия, как у мастера клинка.

Гривуc   12 октября 2010 в 13:11

LakushaFujin
Илюзия создаётся только с мастера клинка, или нужен импортируемый баф...

Гривуc   12 октября 2010 в 17:33

Всегда рад помочь, особенно по части тригеров!

k0lenval   12 октября 2010 в 22:25

GriPet
3)попробуй так, мож подойдет:
Coбытия
Бoeвaя eдиницa - Пpивoдит cпocoбнocть в дeйcтвиe
Уcлoвия
Пpимeняeмaя cпocoбнocть paвнo Maccoвaя тeлeпopтaция
Дeйcтвия
Уcтaнoвить unit = (Пpимeняющий юнит)
Уcтaнoвить point = (Пoзиция unit)
Ждaть 2.92 ceкунд*
Бoeвaя eдиницa - Двигaть (Пoявившeйcя юнит) мгнoвeннo к point

*время подготовки заклинания(по редактору объектов - 3 сек)

Гривуc   13 октября 2010 в 09:49

k0lenval
Я переделал твой вариант и он теперь рабочий:
Только английский))
-Events
Unit - A unit Starts the efect of an ability
-Conditions
Ability being cast equal to Массовая телепортация
-Actions
Set Unit = Casting unit
Set point = Position of Unit
Wait 3 seconds
Unit -Move triggering unit instantly to Point

*время подготовки заклинания(по редактору объектов) 3 сек - Тогда зачем ты поставил Ждать 2.92 сек? Оо

Sansaney   13 октября 2010 в 14:34

КАК ВСТАВЛЯТЬ КАРТИНКУ ВМЕСТО МИНИ-КАРТЫ ИЛИ ЗНАКА ВОПРОСА К КАРТЕ???

Блин, думал, что весь Редактор знаю. Уже картинку подобрал, а потом вспомнил, что ни разу такого не делал. Покопался в Редакторе, ничего не нашел и теперь я в ступоре.

Наверняка, кто-то знает! Поделитесь опытом.

Гривуc   13 октября 2010 в 14:55

Sansaney
Гуглить не модно уже? Я отстал от жизни....
Для замены изображения мини-карты:

1. Открываем Adobe Photoshop (или любую другую программу, умеющую сохранять *tga-формат). Создаём изображение 128х128. Вставляем туда свою картинку.
2. Производим с картинкой все нужные действия - добавляем текст, эффектов, ну, всего, что вы хотите видеть. Это уже ваше желание.
3. Теперь нужно сохранить изображение под именем war3mapPreview в формате *tga с пропорцией 32 бит\пикс. После сохранения в формате *tga, нам выдаст окошко.
4. Импортируем war3mapPreview.tga в свою карту, используя Менеджер Импорта (F12). Убираем ему из пути по умолчанию war3mapimported\.
5. Запускаем карту в Варкрафте и смотрим на результат

Вот с другого сайта:

Как импортировать свою картинку вместо минимапы?
Сохраните картинку в формате 32 бита с расширением .tga, импортруйте изображение с помощью Import Manager'a, два раза кликти на файл в окне импорта и сотрите весь путь до названия файла. Далее само название поменяйте на war3mapPreview.tga
Для замены игровой миникарты необходимо заменить файл war3map.blp.

k0lenval   13 октября 2010 в 16:44

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

Гривуc   13 октября 2010 в 16:54

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

k0lenval   13 октября 2010 в 17:04

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

Гривуc   13 октября 2010 в 17:10

Я проверил = скил обрывался

k0lenval   13 октября 2010 в 17:21

А у меня всё норм(походу очередной глюк со временем)

Гривуc   13 октября 2010 в 17:26

Наверно, разные версии WЕ + я пользуюсь WEU - значит у мну вероятность глюков 1% =)

k0lenval   13 октября 2010 в 17:32

Тогда всё понятно

Sansaney   13 октября 2010 в 21:11

Гривуc
Ну спасибо, приятель. Ты настоящий PRO.

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

Гривуc   14 октября 2010 в 09:24

Sansaney
Как в доте прыгают я хз, но могу описать простой "прыжок" при касте скила на позицию :
Выберешь скил у орков Духовное око (или который можно кастовать на локацию)
И пишешь к нему тригер:
-Event
Unit A unit starts the effect of an ability
-Conditions
(Ability being cast) Equal to Духовное око
-Actions
Set Casting_unit = (Casting unit)
Set Point = (Target point of ability being cast)
Trigger - Turn on TheEfect -gen-
И 2 который будет отвечать за сам прыжок:
-Event
Time- Every 0.10 seconds of the game time
-Conditions
NONE
-Actions
Unit - Move Casting_Unit instantly to Center of Point facing (Facing of Casting_Unit) Degrees
Special efect - Для зрелищности советую поставить.
Wait 0.1 seconds
Trigger - Turn off (This Trigger)
Ну вот как то так...

_MARTY   14 октября 2010 в 14:38

Вот снова вопрос возник.
Kolenval, ты говорил по моделям к тебе обращатся. В редакторе есть орк-огнемётчик. Но если сделать его копию,
то у копии при стрельбе огня не появляется. Как исправить, не знаешь?

k0lenval   14 октября 2010 в 17:38

Мортира
Поясни, что за копия?

_MARTY   15 октября 2010 в 08:45

Не совсем правильно написал, попозже исправлю.

GriPet   15 октября 2010 в 11:14

Гривус, коленвал, спасибо
хотел бы уточнить по двум вопросам 1.) насчет башен. Как уже сказал мне нужно под землю опустить не одну какую-то конкретную башню, а все башни данного типа, то есть например если рабочий строил бы некую Башню Вселенского зла, то она создавалась бы частично под землей. В общем, этих башен которые надо опустить под землю нет на карте изначально, их потом можно построить
2.) насчет ракет. что такое missle speed у меня редактор русский вроде ничего похожего не нашел, попробовал изменить Графика - Скорость дистанционной атаки, но этот параметр на длину заклинания не влияет. хотя бы в каком разделе этот Missle speed находится и примерно где

_MARTY   15 октября 2010 в 16:38

12.Короче, я через MPQ-editor вытащил модель огнемётчика на свет божий и создал копию модели и кой-чего поменял. Потом через импорт в редактор загрузил,
но во время атаки у копии не появляется огня. Как исправить?
Попозже ещё вопросы напишу, много накопилось.

k0lenval   15 октября 2010 в 16:55

GriPet
1).Предложу один вариант:
вытащи модель необходимой башни с помощью War3ModelEditor, открой ее в Mdlvis и опусти ее относительно
нулевой плоскости на уровень, который тебе необходим.
Мортира
проверь, правильно ли прописаны все пути к текстурам модели, если всё верно, то дай ссылку на эту модель
или напиши путь к ней в MPQ-editor - попробую сам найти ошибку.

_MARTY   15 октября 2010 в 20:44

k0lenval
Я GriPetу это уже несколько раз писал(по-поводу MdlVis).

_MARTY   15 октября 2010 в 20:49

k0lenval
А с моделькой... я сам ещё немного попарюсь, если нифига не получится, то тебе путь напишу:(

Tapo4eGG   15 октября 2010 в 21:20

Люди как сделать эфект на оружее???
например шаман , у него на руках когти как туда сделать какой либо эффект??

Tapo4eGG   15 октября 2010 в 21:44

Люди чучуть изменю предложение моё!!
я сделал скилл на основе ауры Ловкости у мастера Клинка! т.к. мне аура на скорость нужна!
я дал такие стройки Графика - Цель и эфект который добавил BloodElfSpellThiefBlood !!!
это эфект истекаемой кровью! ну я поставил он у меня токо при прокачивание скилла 1 сек истёк кровью и усё ! помогите сделать так чтобы эфект шёл всегда !!

_MARTY   16 октября 2010 в 08:57

Tapo4eGG
Вот примерный триггер:
События:
----Map initialization
Условия:
---- Никаких(просто ничего здесь не пиши)
Действия:
!!!!![спецэффект - create special effect on unit] (это пункт, который надо выбрать)!!!!!
----Спецэффект - create a special effect attached to the [часть тела] of [юнит, на котором спец. должен появиться] using [модель]
----Wait 0.50 seconds
!!!!![триггер - run(ignoring conditions] (это пункт, который надо выбрать)!!!!!
----Триггер - Run (this trigger) (igniring conditions)


Вполне рабочий вариант.
pix.PlayGround.ru

_MARTY   16 октября 2010 в 11:14

Вопрос. Извините, что не связан с редактором.
Как разместить в тексте картинку? Только не ссылку на картинку, а саму картинку.

GriPet   17 октября 2010 в 11:59

Гривус можешь подробнее про таймеры объяснить

GriPet   17 октября 2010 в 12:24

Действие - Обратный отсчет - Start TestTimer например 30 секунд
Действие - Обратный отсчет - Create a timer window for TestTimer with title Х
то есть я создал TestTimer и создал к нему окно с заголовком Х, но оно с ним никак не связано, по крайней мере когда этот таймер заканчивает отсчет я не знаю как убрать именно это окно, можно убрать только "Last created timer window" но если с тех пор уже было создано окно для другого таймера то исчезнет оно, потому как оно и есть последнее созданное. Я также могу например убрать созданное мной окно таймера Lol (переменная "Окно таймера"), но его вообще не существует потому что есть действие Destroy Timer Window - Destroy Lol например, убирающее конкретное окно таймера, но действие Create Timer Window не позволяет создать конкретное окно таймера, там можно создать окно таймера для такого-то таймера, но нельзя прописать, чтобы этим окном было именно Lol
Мне нужно так:
Действие - Обратный отсчет - Start TestTimer например 30 секунд
Действие - Обратный отсчет - Create a timer window for TestTimer with title Х и надо сделать, чтобы зтим окном с заголовком Х созданным для TestTimer было именно окно Lol

_MARTY   17 октября 2010 в 20:21

GriPet
Щас помудрю нат твоей проблемой.

Tapo4eGG   17 октября 2010 в 21:36

Мортира
ты сделал чтобы какойто герой истекал кровью а надо сделать так чтобы через скилл делался как в доте на это будет аура у меня а истекаю кровью я типо так!

Tapo4eGG   17 октября 2010 в 21:37

Кароче прокачиваю я скилл (ауру) и я наченаю истекать кровью!!!! вот

_MARTY   18 октября 2010 в 09:10

Tapo4eGG
Придумаю чего-нибудь.

_MARTY   18 октября 2010 в 14:28

GriPet
Сперва создай 2 переменные: [lol - таймер] и [lolwindow - окно таймера].
Первый тригер:
События:
-----Map initialization(например)
Условия:
-----Если какое-то нужно, то ставь
Действия:
-----Обратный отсчёт - start timer: start lol as an однократный timer that will expire in 30.00 seconds
----- (------------------) - create timer window: create a timer window for lol with title Зверь появится(например)
-----(-------------------) - show\hide timer window: показать (last created timer window)
-----Общие параметры - set variable: set lolwindow - last created timer window
Второй триггер:
Событие:
-----время - timer expires: lol expires
Условие:
-----Лучше никаких не ставь.
Действие:
-----обратный отсчёт - show\hide timer window: скрыть lolwindow
дальше ставь что нужно, например:
-----триггер: run Zver atakyet (ignoring conditions).
Вот. Если помудрить, то можно этому тригеру ещё чего-нибудь оригинального добавить.

GriPet   18 октября 2010 в 19:31

спасибо Мортира

_MARTY   19 октября 2010 в 11:33

Кто-нибудь, напишите как размещать в тексте картинку... Очень нужно.

Tapo4eGG   19 октября 2010 в 14:25

Люди как дать еффект на оружее я забыл чото =(

_MARTY   19 октября 2010 в 18:22

GriPet
Ну как, работает?

Tapo4eGG   20 октября 2010 в 09:16

Мортира ппц вроде ты правельно сказал но не доконца вот что должно было быть
События
Каждые 0.50 секунд игры
Условия
выбираешь либо героя на карте либо выбираешь sold unit is Герой равно ДА
Действия
Устанавливаем переменую со спецэфектом
Set blood=(Las created special effect)
For each (Integer A)from 1 to 100000000,do (Action) ( 100000000 потомучто идёт 0.50 секунд когда еффект сделает 100000000 то он прикратит изливатся кровью)
--Цикл-Дейсвтия
Спецэффект-Creat a special effect attached to the (вот тут я выбрал weapon потомучто лучше выглядит както =)) of (тут выбираешь либо скарты либа sold unit) using тут вставляеш еффект (Objects\Spawnmodels\Human\HumanBlood\BloodElfSpellThiefBlood.mdl) ну сморя какой тебе нраавится.
Wait 0.51second
и усё

_MARTY   20 октября 2010 в 17:20

14. Вот проблема появилась...
Как сделать чтоб герой, подобрав предмет, получил дальний бой вместо ближнего?

_MARTY   20 октября 2010 в 21:33

Или каким тригером сделать исследование?
Т.е. я триггерно пропишу чтоб у него дальний бой был с помощью улучшения.

k0lenval   21 октября 2010 в 16:54

Мортира
Предложу вариант.
Создай второго такого же героя, который берет предмет, в редакторе объектов, но с измененными
характеристиками необходимой дальности и эффектом атаки.
Триггерно меняй героя как только он берет/бросает предмет.

GriPet   21 октября 2010 в 17:35

а.) возможно это можно сделать в редакторе объектов создав необходимую способность. Например помню заметил, что при получении предмета со способностью "Предмет:вампиризм" (например Маска смерти или Кровавая луна) у героя меняется анимация дальнобойной атаки и возможно, что у героя рукопашника атака меняется с ближнего на дальний бой. Правда сейчас попробовал с этими предметами и они никак не подействовали.
б.) Вообще можно использовать Атаку 1 - атаку 2, например исследование меняет атаку 1 (ближний бой) на атаку 2 (дальний бой).
в.) Поменять анимацию и хар-ки дальнобойной атаки можно с помощью создания новой способности, которую в свою очередь можно дать предмету.

_MARTY   21 октября 2010 в 19:06

k0lenval
Если делать так, как ты предлагаешь, то мне придется более... 20 дополнительных ГГ делать!
Так что это не прокатит.

_MARTY   21 октября 2010 в 19:09

GriPet
Ты не понял, что я прошу. Я прошу написать мне характеристики способности, которая даст ГГ дальний бой, понимаешь?
А так я уже даже триггер для этого создал, остаётся только способность вписать!
Вот почему мне это важно!

k0lenval   21 октября 2010 в 22:47

Мортира
Боюсь что такой способности в триггерах ты не найдешь - сам смотрел.

GriPet   22 октября 2010 в 10:26

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

GriPet   22 октября 2010 в 10:35

в триггерах можешь попробовать действие "Боевая единица - Issue Research Order" там пишешь Order [твой юнит] to research [необходимое улучшение]
улучшение - в редакторе объектов создаешь улучшение там напиши "эффект 1 - включить атаки", "эффект 2 - какие атаки включить - только атака 2"
у героя, которому хочешь дать дальний бой вместо ближнего соответсвенно сделай атаку 2 дальнобойной
если не получится напиши герою "Технологии - улучшения - соответствующее улучшение"

GriPet   22 октября 2010 в 10:50

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

GriPet   22 октября 2010 в 10:53

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

_MARTY   22 октября 2010 в 15:14

GriPet
Спасибо, сейчас буду пробовать. Хотя есть проблема - у меня теперь сам предмет загалило(или триггер?).

Kind Ram   23 октября 2010 в 20:53

Народ у меня всего 1 вапрос. Я немогу понять как запустить перезарядку заклинания?

k0lenval   24 октября 2010 в 00:23

В смысле-запустить?

k0lenval   24 октября 2010 в 10:21

GriPet
Отвечаю на часть вопроса, связанного с заменой "модели" юнита. А замена юнита в здании, по-моему,
мона толька через джаз(в тиграх нет ничего подходящего, конечно есть более громоздский способ
это менять все здания для вызова требуемой единицы принадлежащие игроку, а также строителей
данного здания, но это решать тебе).
В триггере ниже происходит замена стрелка на пехотинца, после окончания исследования берсерк,
а также добавлен спецэффект активизирующийся в месте замененной единицы(используй только
нециклический спец)
Coбытия
Бoeвaя eдиницa - A unit owned by Игpoк 1 (кpacный) Зaвepшaeт иccлeдoвaниe
Уcлoвия
(Researched tech-type) paвнo Бepcepк
Дeйcтвия
Oтpяд - Pick every unit in (Units owned by Игpoк 1 (кpacный) of type Cтpeлoк) and do (Actions)
Цикл - Дeйcтвия
Cпeцэффeкт - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl
Бoeвaя eдиницa - Replace (Picked unit) with a Пexoтинeц using Cтapaя cвязь бoeвoй eдиницы life and mana

k0lenval   24 октября 2010 в 11:02

Если всё таки есть желание, то вот ответ на оставшуюся часть вопроса(не слишком оптимистичный способ)
Смысл очень прост - создаешь 2 нестандартные единицы в редакторе объектов: здание, в котором
будут производиться твои новозаменённые бойцы и строителя, который будет строить это здание, по
завершении исследования берсерка, все здания(в моём тигре это Казармы) и строители(это Рабы) меняются
на нестандартные, созданные тобой>>

Действия
Oтpяд - Pick every unit in (Units owned by Игpoк 1 (кpacный) of type Kaзapмы) and do (Actions)
Цикл - Дeйcтвия
Бoeвaя eдиницa - Replace (Picked unit) with a Kaзapмы using Cтapaя cвязь бoeвoй eдиницы life and mana
Oтpяд - Pick every unit in (Units owned by Игpoк 1 (кpacный) of type Paб) and do (Actions)
Цикл - Дeйcтвия
Бoeвaя eдиницa - Replace (Picked unit) with a Paб using Cтapaя cвязь бoeвoй eдиницы life and mana

GriPet   25 октября 2010 в 19:33

попробую
вот новый небольшой вопрос - есть ли в триггерах условие на уровень героя

Kind Ram   25 октября 2010 в 21:20

Есть смотри в вопросе intriger

GriPet   26 октября 2010 в 10:24

k0lenval существует ли условие вроде "исследование Х - завершено(не в данный момент, а в целом уже когда-то было проведено)" просто у меня с так называемым не слишком оптимистичным способом не получилось я решил немного по-другом сделать, мне нужно такое условие
Hectore кто/что такой/е intriger и где?

k0lenval   26 октября 2010 в 19:32

Это уже лень подумать и искатьGriPet
Насчет исследования - когда исследование завершится, создай логическую переменную
и закинь её в условие необходимого тигра.
Насчет уровня героя:
Уcлoвия
(Leveling Hero) paвнo Герой
(Hero level of (Leveling Hero)) бoльшe или paвнo X

FazZzuR   27 октября 2010 в 14:32

Как сделать так чтобы костёр догорал? Тоесть, имеется костёр с количеством хп = 1000. Нужно сделать так чтобы он горел в течении 10 минут, и допустим при хп 100 вычиталось со счёта дерева 4 деревяшки, а у костра здоровье стоновилось в норме. Соответственно при отсутствие дерева он должен самоуничтожится) Есть у кого нибудь идеи по этому поводу?

k0lenval   27 октября 2010 в 17:48

FazZzuR
Попробуй так:
создай нестандартный разрушаемый объект в редакторе объектов например бочка, поменяй её модель
на модель костра и создай триггер:
Coбытия
Bpeмя - Every 600.00 seconds of game time
Уcлoвия
Дeйcтвия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Ecли - Уcлoвия
(Игpoк 1 (кpacный) Дpeвecинa (тeкущ.)) paвнo 0
To - Дeйcтвия
Aнимaция - Play Kocтep 0000 's death animation
Инaчe - Дeйcтвия
Игpoк - Set Игpoк 1 (кpacный) Дpeвecинa (тeкущ.) to ((Игpoк 1 (кpacный) Дpeвecинa (тeкущ.)) - 4)

GriPet   27 октября 2010 в 18:06

События - Periodic Event - Every 3 seconds of game time
Условия - по вкусу
Действия - тут должно по идее должны было быть действие, отнимающее у твоего костра 5 жизней, но я его не нашел. Возмжно можно тут как-то сделать.

Можно попробовать через таймеры (не слишком оптимистичный способ, как говорится), например: заканчивается первый таймер -100 хп, начинается второй таймер, второй таймер заканчивается -еще 100хп и так пока не останется 100. Каким бы способом ты ни делал, когда доходит до 100 хп например такое действие:

События - Life - Unit's life becomes меньше 101
Условия - вместо 2 действия наличие 4 дерева можно прописать через условия, но я не нашел ни одного условия, связанного с ресурсами
Действия - Боевая единица - Set Life (to Percentage) - Set life of Костер to 100%
Действия - здесь должно было быть действие, снимающие 4 дерева, но я его не нашел.
Действия - Обратный отсчет - Start Timer - заново запустить самый первый таймер (если использовать таймера)

GriPet   27 октября 2010 в 18:07

k0lenval уже ответил

k0lenval   27 октября 2010 в 19:54

FazZzuR
Немного поправил триггер и добавил ещё один - теперь вроде то что надо
Триггер №1:
Coбытия
Bpeмя - Every 600.00 seconds of game time
Уcлoвия
Дeйcтвия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Ecли - Уcлoвия
(Игpoк 1 (кpacный) Дpeвecинa (тeкущ.)) бoльшe или paвнo 4
To - Дeйcтвия
Игpoк - Set Игpoк 1 (кpacный) Дpeвecинa (тeкущ.) to ((Игpoк 1 (кpacный) Дpeвecинa (тeкущ.)) - 4)
Дeкopaция - Set life of Kocтep 0000 to 100.00%

Триггер №2:
Coбытия
Bpeмя - Every 2.00 seconds of game time
Уcлoвия
Дeйcтвия
Дeкopaция - Set life of Kocтep 0000 to ((Current life of Kocтep 0000 ) - 3.00)

GriPet   2 ноября 2010 в 10:06

помнится у Мортиры был похожий вопрос меня надо, чтобы после получения предмета у героя вместо атаки 1 становилась атака 2. Я сделал триггер:
События - Юнит получает предмет
Условия - Picked Item type is (например) Ледяной страж
Действия - Order Hero Manipulating Item to research Ледяной страж (исследование переключающие с атаки 1 на атаку 2)

Т.е. я написал, что после того как герой берет предмет Ледяной страж, он проводит исследование (время исследования - 0 сек) и вместо атаки 1 включается атака 2, но почему-то ничего не происходит. Я пробовал убирать условия и вместо Hero Manipulating Item ставить конкретного героя и у него в редакторе объектов в Технологии - Улучшения прописывал исследование Ледяной страж и все равно ничего не происходит. Возможно в триггерах есть действие сразу переключайщее с атаки 1 на 2, мне необзяательно через исследования.

k0lenval   2 ноября 2010 в 17:24

Такого триггера нет. Прокрути ненамного страницу вверх - посмотри на способ, который я сделал
для решения этой проблемы, возможно подойдет.

imperator12   2 ноября 2010 в 22:58

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

JassMan   4 ноября 2010 в 14:17

мда этой теме уже два с лишним года и она до сих пор живёт

RwC Private League   4 ноября 2010 в 18:05

я помнишь прошлый новый год? как мы с кем то еще тут были онлайн :D ... 20 минут оставалось - а форум все еще был онлайн :)

TWISTOS   6 ноября 2010 в 13:22

Народ, помогите. Ворлдедитор жрет от 15 до 45 % ЦП, и жутко лагает.
Раньше такого не было.
Что делать? Невозможно работать с ним с такими лагами.

jassnewgenpack тоже лагает.

k0lenval   6 ноября 2010 в 21:31

TWISTOS
Вообще-то вопрос немного не по теме.
Попробуй восстановить систему на то время, в которое редактор нормально запускался.

Andreya   6 ноября 2010 в 23:34

Ооо..я тоже помню Новый Год) Мне KiLLing_Spree пообещал на праздник скилл марлока, но получил я его к февралю, а прочитать я его смог ток к маю :D

JassMan   7 ноября 2010 в 00:05

я его раньше сделал не ври))

GriPet   7 ноября 2010 в 19:29

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

k0lenval   7 ноября 2010 в 22:38

GriPet
По-моему ответ на этот вопрос я уже давал, причем тебе же (24.10.10).

Tapo4eGG   8 ноября 2010 в 13:41

Люди сделал триггер на Джассе!
Начал проверять и у меня пишет "Отсуствует Название" что такое???

Andreya   8 ноября 2010 в 15:13

А ну да точно... к середине января )

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

imperator12   8 ноября 2010 в 15:48

мне ктонить ответит? Или некто не знает(((((

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

Andreya   8 ноября 2010 в 16:45

andrew-, сделай триггер при событии "игрок покидает игру" Действие - "Дать золото игроку (кол-во золота у покинувшего игрока разделить на кол-во игроков в игре)

Tapo4eGG   8 ноября 2010 в 19:57

local real a=LoadReal(udg_Hash,GetHandleId(t),3)

k0lenval   8 ноября 2010 в 20:43

andrew-
Имей ввиду - триггер рассчитан на двух игроков.
Создай две переменные к примеру в инициализации сражения:
Set player1 = (Units owned by Игpoк 1 (кpacный) matching (((Matching unit) is Здaниe) paвнo Дa))
Set player2 = (Units owned by Игpoк 2 (cиний) matching (((Matching unit) is Здaниe) paвнo Дa))
Далее следует триггер:
Coбытия
Бoeвaя eдиницa - A unit Умиpaeт
Уcлoвия
Дeйcтвия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Ecли - Уcлoвия
(All units of player1 are dead) paвнo Дa
To - Дeйcтвия
Игpoк - Add (Игpoк 1 (кpacный) Зoлoтo (тeкущ.)) to Игpoк 2 (cиний) Зoлoтo (тeкущ.)
Игpoк - Set Игpoк 1 (кpacный) Зoлoтo (тeкущ.) to 0
Инaчe - Дeйcтвия
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Ecли - Уcлoвия
(All units of player2 are dead) paвнo Дa
To - Дeйcтвия
Игpoк - Add (Игpoк 2 (cиний) Зoлoтo (тeкущ.)) to Игpoк 1 (кpacный) Зoлoтo (тeкущ.)
Игpoк - Set Игpoк 2 (cиний) Зoлoтo (тeкущ.) to 0
Инaчe -дeйcтвия

С большим количеством игроков придётся попариться(если голова и охота есть - дело за малым...)

GriPet   8 ноября 2010 в 20:48

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

Tapo4eGG   8 ноября 2010 в 20:53

local group g=LoadGroupHandle(udg_Hash,GetHandleId(g),2)
Вот тут "Отсуствует название" почему так??
Вот весь триггер он не доделан ...


function Trig_New_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='AHtc'
endfunction

function Group takes nothing returns nothing
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(g),3)
local group g=LoadGroupHandle(udg_Hash,GetHandleId(g),2)
call AddGroupUnit(g,c)
set c=null
set g=null
endfunction

function Damage takes nothing returns nothing
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local group g=LoadGroupHandle(udg_Hash,GetHandleId(t),2)
local unit d=LoadUnitHandle(udg_Hash,GetHandleId(t),4)
set u=null
set g=null
set d-null
endfunction

function Trig_New_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
local group g=CreateGroup()
local unit c=GetEnumUnit()
local unit d=CreateUnit(GetOwningPlayer(u),'n001',GetUnitX(u),GetUnitY(u),1)
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveGroupHandle(udg_Hash,GetHandleId(g),2,g)
call SaveUnitHandle(udg_Hash,GetHandleId(g),3,c)
call SaveUnitHandle(udg_Hash,GetHandleId(t),4,d)
call AddGroupUnit(g,function Group)
call TimerStrat(t,0.5,false,function Damage)
set u=null
set g=null
set c=null
set d=null
endfunction

function InitTrig_New takes nothing returns nothing
local trigger trg=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(trg,EVENT_PLAYER_UNIT_SPELL_CAST)
call TriggerAddCondition(trg,Condition(function Trig_New_Conditions))
call TriggerAddAction(trg,function Trig_New_Actions)
set trg=null

Tapo4eGG   8 ноября 2010 в 21:43

function Trig_New_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='AHtc'
endfunction

function Group takes nothing returns nothing
local timer t=CreateTimer()
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(g),3)
local group g=LoadGroupHandle(udg_Hash,GetHandleId(g),2)
set c=AddGroupUnit(g,c)
call SaveUnitHandle(udg_Hash,GetHandleId(t),3,c)
call TimerStart(ft,0.25,true,function Damage)
set c=null
set g=null
endfunction

function Damage takes nothing returns nothing
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local group c=LoadGroupHandle(udg_Hash,GetHandleId(t),2)
local unit d=LoadUnitHandle(udg_Hash,GetHandleId(t),4)
call UnitDamageTarget(u,c,GetUnitAbilityLevel(u,'AHtc')*200.,true,false,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
call CreateUnitAtLoc(1,'n001',GetOwningPlayer(u),GetUnitLoc(u))
set u=null
set g=null
set d-null
endfunction

function Trig_New_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
local group g=CreateGroup()
local unit c=GetEnumUnit()
local unit d=CreateUnit(GetOwningPlayer(u),'n001',GetUnitLoc(u),GetUnitY(u),1)
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveGroupHandle(udg_Hash,GetHandleId(g),2,g)
call SaveUnitHandle(udg_Hash,GetHandleId(g),3,c)
call SaveUnitHandle(udg_Hash,GetHandleId(t),4,d)
call AddGroupUnit(g,function Group)
call TimerStrat(t,0.5,false,function Damage)
set u=null
set g=null
set c=null
set d=null
endfunction

function InitTrig_New takes nothing returns nothing
local trigger trg=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(trg,EVENT_PLAYER_UNIT_SPELL_CAST)
call TriggerAddCondition(trg,Condition(function Trig_New_Conditions))
call TriggerAddAction(trg,function Trig_New_Actions)
set trg=null
endfunction





Вот мой полный триггер:
сделаю ещё 1-2 функции со спецэфектом ради красоты но вот
"Отсуствует название" как это устранить?

k0lenval   8 ноября 2010 в 23:00

GriPet
А что, разве способность превратиться в медведя у эльфов уже не катит?

Tapo4eGG   8 ноября 2010 в 23:08

k0lenval
я ему уже всё сказал =))
ему надо чтобы за деньги было =)
поэтому ссначало улучшение друидов-медведей за деньги
а потом токо скилл медведа =))

JassMan   9 ноября 2010 в 00:31

Соблюдай порядочность действий внутри функции!

local unit c=LoadUnitHandle(udg_Hash,GetHandleId(g),3)
local group g=LoadGroupHandle(udg_Hash,GetHandleId(g),2)


Как ты загружаешь юнита c из категории, используя группу g, если в этой функции она (её переменная) создается после. — Так не бывает! Сначала создаешь те переменные, которые используются раньше, а потом уже остальные.
________________________________________________________________________________________________________________

function Damage takes nothing returns nothing
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local group c=LoadGroupHandle(udg_Hash,GetHandleId(t),2)
local unit d=LoadUnitHandle(udg_Hash,GetHandleId(t),4)


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


Идём дальше:

function Trig_New_Actions takes nothing returns nothing
local timer t=CreateTimer()
local unit u=GetSpellAbilityUnit()
local group g=CreateGroup()
local unit c=GetEnumUnit()


откуда взялась функция "выбранный юнит" — непонятно, ведь она используется внутри ForGroup (специально отведенная функция на действия) либо можно использовать в фильтрациях (хотя там хз почему но я рекомендую использовать GetFilterUnit() )


Идём дальше:
local unit d=CreateUnit(GetOwningPlayer(u),'n001',GetUnitLoc(u),GetUnitY(u),1)
третий параметр где указывается координата X (причём она должна быть типа Real) ты там указываешь локацию


И подводя итоги:

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

Надеюсь, понятие "локальность" теперь для тебя станет более понятным.

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

Tapo4eGG   9 ноября 2010 в 01:12

блим Ильяс всё исправил что ты сказал но там где
local unit g=LoadGroupHandle(udg_Hash,GetHandleId(t),2) и в люых таких случаях.
везде пишет "Отсуствует Название"

Tapo4eGG   9 ноября 2010 в 02:29

Я уже разобрался с этим вопросом =)теперь Сдесь что такое?





call DestroyEffect(AddSpecialEffectTarget("Abilities\Spells\Other\Incinerate\FireLordDeathExplode.mdl",c,"chest"))



Отсуствуе ткорректный список аргументов!!!!!
"с" это GetSpellTargetUnit.

Х.о.м.я.к   9 ноября 2010 в 12:23

а как сделать способность как в варлоках щит - отражает всякие снаряды и скилы, и светится в месте удара?

JassMan   9 ноября 2010 в 16:04

Не может быть! — Тут всё верно. Где-то ты мне врешь, либо переменную  c  создал ниже этой строки. . .

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

Tapo4eGG   10 ноября 2010 в 13:33

Люди как начинать делать если есть какаято область например: огненный столлб???

Tapo4eGG   10 ноября 2010 в 16:26

через Jass имею виду

JassMan   10 ноября 2010 в 18:32

событие такой способности тоже реагирует на точку или юнита:
Event: юнит привёл способность в действие
далее сравниваешь
if(GetSplellTargetUnit()==null)then //тоесть если способность указали не на юнита, то выбирать вокруг точки каста (как раз будет центр той области куда укажешь)
координаты точки находим через эти функции:
GetSpellTargetX()
GetSpellTargetY()
//Тут какие-то действия. . .
else
выбирать вокруг юнита
endif

В общем мысль, я думаю, ты уловил. . .

Х.о.м.я.к   10 ноября 2010 в 20:45

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

JassMan   10 ноября 2010 в 21:02

Если вопрос нубский, на него отвечать никто не будет, ибо лень. . . В большинстве случаев достаточно врубить логику и справится с лёгкой задачей самому.

Tapo4eGG   10 ноября 2010 в 21:28

Mr ILYAS
local integer i=0
ннадо писать?

Tapo4eGG   10 ноября 2010 в 21:45

А как найти эти координаты????
X , Y ????

Tapo4eGG   10 ноября 2010 в 21:50

Мысль я уловил ну чото не понимаю ._.
._.
._.
._.
._.
ОмГ =(((( ._.
._.
._.

JassMan   11 ноября 2010 в 01:22

set x=GetSpellTargetX()
set y=GetSpellTargetY()

и всего навсего. . .


А теперь чтобы дать понять устройство jass'a я я прочитаю маленькую лекцию:

Каждая функция подразумевает какое-то значение
допустим GetSpellTargetX() подразумевает в себе число (реальное — Real)
Поэтому я могу к x присваивать не число, а функцию которая даст это число. (что я и сделал наверху)

Тоже самое и другими типами данных:
local boolean b=(12>20)

То, что слева от равно — это понятно, да? — Мы создали локальную переменную типа boolean (логическая — то есть штука которая может принимать два значения: истина или ложь)
А справа от равно мы написали выражение (условие)
А именно мы задали условие, которое дословно переводится так: Больше ли число 12 относительно числа 20?
И ответом на этот вопрос и будет истина или ложь.
и этот результат запишется в переменную b

Условие может быть любым: (u==c) — к примеру, сравнение: равен ли юнит u юниту c
либо функция (IsUnitLife(u)==true) (перевод: жив ли юнит u?)
или b можно присвоить целую функцию в которой условия, а сама функция должна вернуть булен:
function My_Condition takes nothing returns boolean
и написать set b=My_Condition()

В общем 98% функций уже заложенных в Варкрафте возвращают какой-то аргумент

Допустим функция CreateTimer возвращает таймер:
поэтому мы можем писать set t=CreateTimer()  ( ну или local timer t=CreateTimer() — не важно короч  )

А функция CreateUnit возвращает юнита и можно писать local unit u=CreateUnit(и т.д.

И так со всеми функциями — то есть подводя итоги, я снова повторяю: что функции могут представляться в виде нужного аргумента (числа, юнита, или любого другого объекта или данного)

Надеюсь, я понятно излагаюсь. Рекомендуется прочесть более одного раза.

JassMan   11 ноября 2010 в 01:31

А теперь обдумав все, и получив новые знания, снова пытаемся решить задачу, которая до этого не получалась, прочитав еще раз мои посты: предыдущие перед 11.11.10 01:22

И помни, что во время обучения глупых вопросов не бывает. Поэтому не стесняться! И спрашивать что непонятно.

Х.о.м.я.к   11 ноября 2010 в 16:47

я спросил но не отвечают ((

JassMan   11 ноября 2010 в 19:52

я тебе ответил 10.11.10 21:02

Tapo4eGG   12 ноября 2010 в 01:40

function damage_OR_heal takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local unit y=LoadUnitHandle(udg_Hash,GetHandleId(t),3)
local unit d=LoadUnitHandle(udg_Hash,GetHandleId(t),4)
if(IsPlayerEnemy(GetOwningPlayer(u),GetOwningPlayer(c)))then
call UnitDamageTarget(u,c,GetUnitAbilityLevel(u,'A001')*200.,true,false,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
endif
if(IsPlayerAlly(GetOwningPlayer(u),GetOwningPlayer(y)))then
call SetUnitState(y,UNIT_STATE_LIFE,GetWidgetLife(d)+GetUnitAbilityLevel(u,'A001')*150.)
endif
endfunction



как это можно покороче написать и как добавить эффект я заколебался пишет :
Осуствует корректный список аргументов.

Kot_Matroskin   12 ноября 2010 в 02:11

может пора создать тему №9 ?

JassMan   12 ноября 2010 в 07:37

А зачем тебе по короче? Тут максимально уже сжатый алгоритм. По крайней мере тут всё верно.

Если ты это у меня взял, то я эффекты добавлял снаружи от обоих if-ов. Там было достаточно добавить его 1 раз для одного юнита (тот который GetEnumUnit() )

Что-то у тебя так много юнитов кстати. . . Что это за юниты хоть?

Tapo4eGG   12 ноября 2010 в 14:05

u это я
c это Вражеский юнит который получает урон
y это Союзный юнит который исцеляется
d надо удалить он не нужен ... т.к. это Дамми юнит которы летит
Блим беру к примеру корни
когда я пускаю на врагов нужно сделать спецэфект чтобы было видно!!!!
а когда я пускаю в Союзных не удаётся
в редакторе я Допустимые цели к Союзникам направил ...
но почемуто не идёт
Кстати я на твои скиллы даже глазом не смотрел использовал логику и воспоминания ...
ЭТО МОЙ ПЕРВЫЙ СКИЛЛ =)

Tapo4eGG   12 ноября 2010 в 14:11

а напремеру можно так сделать
ещё 1 функция
в функции damage_OR_heal
local unit f=GetUnemUnit
потом его в конце сохраняем
call SaveUnitHandle...

и в другой функции дать спецэфекты Эти юнитам врагам и союзнику ??
а в функцию
damage_OR_heal
сделать ещё 1 if
if(f!=u)then
call DestroyEffect(AddSpecialEffect(...)
endif

Tapo4eGG   12 ноября 2010 в 14:14

Блим я оказывается в этой функции дамаге ор хиал неправельно написал =)))там я написал востанавливает хп дамми а надо союзному войску... всё проблема решена с исцелением!!! =))

Tapo4eGG   12 ноября 2010 в 16:05

Урааа всё я закончил скилл =))

JassMan   12 ноября 2010 в 16:30

Показывай! Будем проверять домашнее задание))

Tapo4eGG   12 ноября 2010 в 18:44

function Trig_Heal_Conditions takes nothing returns boolean
return GetSpellAbilityId()=='A001'
endfunction

function damage_OR_heal takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local unit y=LoadUnitHandle(udg_Hash,GetHandleId(t),3)
local unit f=GetEnumUnit()
if(IsPlayerEnemy(GetOwningPlayer(u),GetOwningPlayer(c)))then
call UnitDamageTarget(u,c,GetUnitAbilityLevel(u,'A001')*300.,true,false,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
endif
if(IsPlayerAlly(GetOwningPlayer(u),GetOwningPlayer(y)))then
call SetUnitState(y,UNIT_STATE_LIFE,GetWidgetLife(y)+GetUnitAbilityLevel(u,'A001')*150.)
endif
set t = null
set u = null
set c = null
set y = null
endfunction

function go takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local unit c=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local unit y=LoadUnitHandle(udg_Hash,GetHandleId(t),3)
local unit d=LoadUnitHandle(udg_Hash,GetHandleId(t),4)
local real x1=GetUnitX(d)
local real x2=GetUnitX(c)
local real y1=GetUnitY(d)
local real y2=GetUnitY(c)
local real a=Atan2(y2-y1,x2-x1)
call SetUnitX(d,x1+25.*Cos(a))
call SetUnitY(d,y1+25.*Sin(a))
if(((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))

Tapo4eGG   12 ноября 2010 в 18:45

call PauseTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
call DestroyTimer(t)
set t=CreateTimer()
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveUnitHandle(udg_Hash,GetHandleId(t),2,c)
call SaveUnitHandle(udg_Hash,GetHandleId(t),3,y)
call SaveUnitHandle(udg_Hash,GetHandleId(t),4,d)
call TimerStart(t,0.1,false,function damage_OR_heal)
endif
set u = null
set c = null
set y = null
set t = null
endfunction

function Trig_Heal_Actions takes nothing returns nothing
local unit u=GetSpellAbilityUnit()
local unit c=GetSpellTargetUnit()
local unit y=GetSpellTargetUnit()
local unit d=CreateUnit(GetOwningPlayer(u),'n000',GetUnitX(u),GetUnitY(u),0.)
local timer t=CreateTimer()
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
call SaveUnitHandle(udg_Hash,GetHandleId(t),2,c)
call SaveUnitHandle(udg_Hash,GetHandleId(t),3,y)
call SaveUnitHandle(udg_Hash,GetHandleId(t),4,d)
call TimerStart(t,0.03,true,function go)
set u = null
set c = null
set y = null
set t = null
endfunction

function InitTrig_Heal takes nothing returns nothing
local trigger trg=CreateTrigger()
set udg_Hash=InitHashtable()
call TriggerRegisterAnyUnitEventBJ(trg,EVENT_PLAYER_UNIT_SPELL_CAST)
call TriggerAddCondition(trg,Condition(function Trig_Heal_Conditions))
call TriggerAddAction(trg,function Trig_Heal_Actions)
endfunction

Tapo4eGG   12 ноября 2010 в 18:48

if(((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))
тут после этого написано then просто чото не скопировалось!!!

Tapo4eGG   12 ноября 2010 в 18:50

Мр Ильяс дай мне задание сделать какойто скилл ... мне понравилось на Jasse писать =)
и сделай мне екземпляр на такие скиллы как огненный столб ПЛЗ!!!! =)

JassMan   12 ноября 2010 в 19:39

Я что-то не пойму зачем тебе юнит y?

И где тут условие кстати? :  if(((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) — закончи его

Да кстати, когда показываешь скил, скажи, для начала, что он должен делать. . .

Tapo4eGG   12 ноября 2010 в 19:52

y это типо Союзный Юнит!!!!!!!
if(((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))

Tapo4eGG   12 ноября 2010 в 19:54

блим тут не прописывется почемуто там
if((()()()())< = 900.)then

Tapo4eGG   12 ноября 2010 в 19:55

потом
u(тоесть я) кидаю d(снаряд,дамми)до цели,
если цель с(Вражеский юнит) то дамажит
если цель у(Друг,Союзный юнит)то хилит


чего не понятно?? =))

Tapo4eGG   12 ноября 2010 в 19:57

у мну тут почемуто без пробела не пишется
set u = null и прочее
(= =) (! =) тут мне тоже почемуто надо ставить пробел не пишется ...

JassMan   12 ноября 2010 в 20:14

А ты логику вруби, если c и y — один и тот же юнит, то может использовать только c?

Tapo4eGG   12 ноября 2010 в 20:56

а хотя да, ну почемуто скилл работает =)))
ну я же указал
IsPlayerAlly(y,....
тоесть если ИгрокСоюзник(y,... тут же я поставил букувку у,а там написано что у он хилит!!!!
а IsPlayerEnemy(c,...
тоесть если ИгрокВраг(с,... тут же я поставил букву с,а там написано что с он дамажит!!!
так кто прав я или ты??
мб го в скайп я чегонить не понимаю?? =((((

Tapo4eGG   12 ноября 2010 в 21:03

а на счёт докальных ...
вроде же :
GetSpellTargetUnit
это обозначает на каго указывать или полетит снаряд.
или нет =)))

Tapo4eGG   12 ноября 2010 в 21:23

Кстати а не пора новую темку начинать а то тут (1000) постов гдето накоп. =)))

_MARTY   15 ноября 2010 в 21:11

Ну хоть закройте эту тему!

_MARTY   15 ноября 2010 в 21:12

ВНИМАНИЕ! ТЕМА ЗАКРЫТА!
ВСЕМ ПЕРЕХОДИТЬ ПО ССЫЛКЕ ВЫШЕ!!!