27

» WarCraft 3 / Помогите мне с типом урона

вот тестируй и думай
quq_CCCP прав, магический тип атаки применяется волшебницами, целителями, шаманами, тролями-знахарями, служителями предков и прочее. То есть это в основном маги. А вот тип заклинание часто применяется в способностях (ну большинство заклинании могут иметь этот тип, иногда некоторые другие типы могут повстречаться, типа физ. урон от мин и прочее).
В РО можно выставить тип атаки "заклинание", но как не странно, нет своей иконки и описании, вместо него отображается меч (иконка обычной атаки), и описание обычной атаки, это если направить мышку на иконку
Загруженные файлы
27

» WarCraft 3 / Придумайте квест

Ну можно сделать так, чтобы при входе в какую-нибудь область на одного члена команды игроков похищают зомби (напоминает что-то мультики терраформеры), и нужно его спасти.
Добыть образцы мутирующего зомби, убив его.
Если есть транспорт, и он сломается, то найти запчасти.
Случайно натыкаются на сооружение, и пытаются в нем выжить. Там мучает холод и голод и прочее, и соответствующе требуется найти одежду, еду, оружие, припасы
Установить связь с землей, требуется особая область где ловит связь
Изучить планету: образцы растущей травы, воды в реке и прочее
Герои решили подкрепиться, одного отправили в лес за дровишками, одного за водичкой и так далее
Принесите голову зомби, руки и прочее
27

» WarCraft 3 / Псс, нужно немного мемхака?

Погляжу, что система крута. Много интересных функции триггеров появилось
Ребята, а какая последовательность действии нужна, чтобы это все заработало? Пишут нужно работать с mpq-архивом. Когда вставил длинный код в шапку карты, то JassHepper выдал ошибку, что существует две одинаковые функции main. Это так, я понимаю нужно j файл редактировать =(. Объясните, пожалуйста.
А еще вопрос а надо ли юзать их, если вызов происходит медленно?
27

» WarCraft 3 / Предметы

Принятый ответ
Sasha72, способность погром - урон в %, а вот со здоровье в % - можно триггерно (имеется функция/команда), запас здоровья в % посложнее - тоже триггерно (своя система), но с использованием предметной способности.
27

» WarCraft 3 / Скил 2 в 1

quq_CCCP, P.s доступен новый ретурн баг, можно кастануть скилл от имени Юнита. Пассивным кастом ( как руной) при этом настроив уровень и цель ( обойтись без дамми юнитов).
Что за баг? ты про руны?
27

» WarCraft 3 / Как сделать массовую способность

Принятый ответ
  1. Выделяешь всех юнитов в определенной области в группу. Так есть определенный радиус действия (круг выбора области заклинанием типа у бурана, огненного столба и др.), в редакторе называется "Область воздействия", вокруг центра каста перебираешь всех юнитов
  2. Создаешь dummi и кастуешь над каждым юнитом в группе способность "гнев деревьев". Или пробуешь полностью триггерно создать эффект обхвата юнитов (эти лозы и корни деревьев), паузишь и периодически таймером наносишь урон до определенного времени (под конец удаляешь эффект, а если кто-то умер, то также удаляешь эффект). Только, когда триггерно делаешь, баффы нацепить не сможешь, придеться также делать. Заморочек со вторым способом больше
Способность пустышку можно создать на основе канала.
27

» WarCraft 3 / Инком

А вообще не понимаю, зачем нужен автокаст. Зачем отключать инком, если в той карте, насколько я помню,
нет никакого штрафа за получения золота.
Obelick, ну может быть хочется автору что-то необычного. Во-вторых, если не автокаст, то тогда автору пришлось бы переодически самому начислять голда, а так все указываешь в автокасте время перезарядки.
  1. При создании фермы заносишь в группу (по событии юнит входит в регион, или юнит завершает строительство). Перечитываешь кол-во ферм, добавляешь в переменную целочисленную.
  2. При уничтожении фермы, наоборот, удаляешь ферму из группы. И вычитаешь из целочисленной переменной единицу.
  3. Отслеживаешь приказ автокаста, затем добавляешь голда (иначе было, если периодически начислять голда. С помощью таймера).
Есть также специальная функция расчета кол-ва юнитов (что говорил Obelick), она использует ранее добавленных всех юнитов, и циклом пробегает по каждому, и прибавляет единицу к переменной. Всех на карте здании в группу добавляешь и рассчитываешь кол-во. Это тоже можно использовать для расчета
Пустую кнопку с автокастом можно сделать xgm.guru/forum/showthread.php?t=21369 пункт 21
27

» WarCraft 3 / Распределение опыта героев.

Попробуй поискать на сайте ответ. На форуме поищи xgm.guru/forum
Или отключи получение опыта на совсем и сделай свою, советую два способа:
  1. При убийстве выбирай всех, кто находится рядом с убитым. Убийце можешь дать больше опыта, остальным чуть меньше,
  2. Проверять, кто наносил урон последние 10-40 секунд. Запили систему урона. При получении урона запоминай кто нанес урон последним (4-5 юнитов), и все. Более справедливый вариант распределения опыта.
27

» WarCraft 3 / Как двигать юнит по таймеру без утечек

darkowlom, не понял, кого автор хочет вращать вперед. Как я понял, он хочет два куска кода (прямолинейное движение, и тоже самое движение юнита, но наносить урон вокруг себя). Это же с даймиком же. тот код, что я скинул -обычно часто повторяющий. Требует доработки, чтобы за границу карты не выходил, сколько расстояния должен переместиться и др.
Ну все то же самое, только вместо даймика перемещается кастер, вместо позиции цели, позиция каста способности (точка каста). Короче все то же самое.
Иначе все будет, если нужно чтобы, перемещался юнит туда, куда смотрит сам юнит (наподобии force staff). Там берется за основу угол. Скинул на GUI (делал не я, а Imba), попробуй на jass переделать и все. Будет тебе формулой
По-поводу второго вопроса, там надо при каждом вызове выбирать группу юнитов вокруг мнимой точки, или вокруг юнита, и наносить урон юнитам в группе и прочее.
Загруженные файлы
27

» WarCraft 3 / После сохранения карты редактор JNGP закрывается

  1. Перед тем как протестировать что-то, не забывайте сохранять карту (если имеете дело с vjass, cjass или вышли за пределы ограничении станд. редактора, или пытаете объявить глобалки). Путь сохранения карты не должен содержать русских символов. Иначе выкидывает в меню игры.
27

» WarCraft 3 / Как двигать юнит по таймеру без утечек

поизучать jass можно, читая статьи, затем посмотреть многие наработки jass как устроены. И во-вторых на сайте заказать можно способность, чтобы они тебе сделали.
В-третьих, как вы хотите сделать прямое перемещение? Можно создать даймика-эффект и перемещать от кастера к цели, или перемещать подальше от кастера противника (или наоборот).
смотреть сюда
function T_X takes nothing returns nothing
local timer tt=GetExpiredTimer() //запускаемый эту функцию таймер
local integer id=GetHandleId(tt) //номер хэндла таймера
local unit u=LoadUnitHandle(udg_Hash,id,0) //кастер
local unit t=LoadUnitHandle(udg_Hash,id,1) //цель
local unit dd=LoadUnitHandle(udg_Hash,id,2) //юнит-даймик
local real dm=LoadReal(udg_Hash,id,4) //урон
//координаты даймика и цели каста
local real x1=GetUnitX(dd) 
local real y1=GetUnitY(dd)
local real x2=GetUnitX(t)
local real y2=GetUnitY(t)
local real dx=x2-x1
local real dy=y2-y1
local real dist = SquareRoot(dx * dx + dy * dy)
local real angle = Atan2(dy,dx)
local real x
local real y
if dist > 40. then //если расстояние между даймиком и цели все еще больше 40, то премещать даймика поближе
//устанавливаем координаты
set x = (x1 + 40. * Cos(angle))
set y = (y1 + 40. * Sin(angle))
//перемещаем
call SetUnitX(dd,x)
call SetUnitY(dd,y)
//сохраняем
set dx=x2-x
set dy=y2-y
set dist = SquareRoot(dx * dx + dy * dy)
call SaveReal(udg_Hash,GetHandleId(tt),3,dist) //пересохраняем дистинцию
else
    call RemoveUnit(dd) //уничтожаем даймика
    call FlushChildHashtable(udg_Hash,id) //чистим хэш
    call PauseTimer(tt) //паузим таймер
    call DestroyTimer(tt) //уничтожаем таймер
    call UnitDamageTarget(u,tt,dm, true, false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
endif

set t=null
set u=null
set tt=null
set dd=null

endfunction
local unit t=GetSpellTargetUnit() //цель каста
local unit u=GetTriggerUnit() //кастер
local integer lv=GetUnitAbilityLevel(u,GetSpellAbilityId()) //уровень абилки
local real dm=(200.00*I2R(lv)) //урон
//координаты кастера и цели каста
local real x1=GetUnitX(u) 
local real y1=GetUnitY(u)
local real x2=GetUnitX(t)
local real y2=GetUnitY(t)
//определение расстояния
local real dx=x2-x1
local real dy=y2-y1
local real dist = SquareRoot(dx * dx + dy * dy)
local timer tt //таймер
local unit dd //юнит-даймик

if dist > 0. and dist < 700. then // если цель каста не находится за пределами каста способности, то ...
    set tt=CreateTimer() //создаем таймер
    set dd=CreateUnit(GetTriggerPlayer(),'h000',x1,y1,0.)
    
    //далее сохраняем все в хэш-таблицу, но не забудьте создать глобалку, и создать в начале игры (при инициализации) хэш-таблицу set udg_Hash = InitHashtable()
    //сохраняются в ячейках хэша, берут GetHandleId - порядковый номер объектов вара
    call SaveUnitHandle(udg_Hash,GetHandleId(tt),0,u) //сохраняем кастера в хэш-таблицу
    call SaveUnitHandle(udg_Hash,GetHandleId(tt),1,t) //сохраняем цель
    call SaveUnitHandle(udg_Hash,GetHandleId(tt),2,dd) //сохраняем даймика
    call SaveReal(udg_Hash,GetHandleId(tt),3,dist) //сохраняем расстояние
    call SaveReal(udg_Hash,GetHandleId(tt),4,dm) //сохраняем урон
    
    call TimerStart(tt,0,02,true,function T_X) //запускаем таймер
    //в функции TimerStart после указа таймера и времени стоит true, короче делаем запуски таймера периодичным или одноразовым
    //после этого всего функцию не забудь указать
endif

set t=null
set u=null
set tt=null
set dd=null
27

» WarCraft 3 / Как отловить тип урона?

Можно узнать (а не определить) отдельный тип атаки, посравнивать с другими типами (заклинания, магический тип атаки, а вот остальные слишком сложно):
Вот тип атаки "заклинание" можно блокировать с помощью предметной способности от рунных браслетов - уменьшение урона от магии. А урон магического типа атаки нейтрализуется способностью невосприимчивостью от магии (недостаток с невозможностью натравить активную способность на воина с невосприимчивостью устраняется костантой или каналом с галочкой универсальное заклинание). Благословление элуны блокирует оба эти типа магический и заклинание. Также если настроить благословление элуны, то и дальний бой.
Остальные типы атаки нельзя вроде узнать. Я имею в виду узнать, а не определить тип по ходу игры. Мне обычно помогает определить тип атаки у стандартной способности, чтобы затем может быть сделать триггерно. Ведь попытаюсь сделать урон на триггерах (
Тип урона (яды, огонь и прочее) нельзя определить, как выше сказали. Они определяют лишь какой урон будет (физический или магический, и универсальный). Можно сделать так и чистый урон. Физический и магический типы урона это проблема как их определить (можешь на сайтах посмотреть как определить), их тут очень много советов. Мне кажется лучше все заклинания сделать триггерными, тогда можно динамично менять урон по ходу игры. Представь, у тебя есть огненная способность, по ходу игры получаешь огненный предмет, который увеличивает огненную магию на несколько процентов. Короче урон будет выше. Затем убил несколько монстров, заряды огненного предмета стало больше, и следовательно, мощь огненной магии также. Ну вот где-то так.
Тут большое множество типов, вот думаешь, нафига так много их. Кажется, они ничего не значат. А может есть что-то есть. Нужно протестировать как ведет урон с защитными пассивками, но руки не доходили
Загруженные файлы
27

» WarCraft 3 / Депротект карты

SurDno, да точно открывается в WE, Желаю на русском перевести, хотя в ней ничего особенного нет, триггеры обычные.
27

» cJass (Adic Jass Helper) / cJass (Adic Jass Helper)

Так много всего, сложно с первого раза понять, запомнить, и использовать. В чем же отличие cjass от vjass?
и почему когда хочу объявить глобалку типа хэша, то не получается. Из-за глобалки типа хэш-таблицы выкидывает в меню игры. А вот с остальные объявленными типа нормально.
globals
    hashtable Hash =InitHashtable()
endglobals
пробовал по-всякому
globals
    hashtable Hash
endglobals

function Trig_in_2_Actions takes nothing returns nothing
set Hash=InitHashtable()
endfunction
Пришлось обычную глобалку брать с приставкой udg_
27

» WarCraft 3 / После сохранения карты редактор JNGP закрывается

Принятый ответ
Короче порылся в ХГМ, потыкал, все испробывал, и сам нашел ответ, вот несколько моментов для того, чтобы заработал:
  1. Требуется установленный Warcraft 3: The Frozen Throne последней версии 1.26a. Скачайте нормальный варкрафт 3, а то попадаются урезанные или нерабочие версии. Лучше оригинальную версии приобрести, и обновить. Хотя пиратки тоже неплохи. Вот использую сборкой от R.G. Mechanics
  2. Путь к программе НЕ ДОЛЖЕН содержать русских символов
  3. Совершайте установку в отдельную от Warcraft 3 папку
  4. Рекомендуется приостановить антивирусные программы до установки, потом выполнить установку, затем добавить папку c JNGP в исключения, и потом только снова включить антивирусы. Эта программа вторгается в процесс worldedit.exe, поэтому может считаться вредоносной
  5. Не трогайте файл worldedit121.exe, он должен быть и в папке игры и в папке JNGP
  6. Сначала "Сохранить карту", только потом "Проверка карты", а ещё иногда бывает лучше сохранять пару раз
Выше, это стандартное описание для работы. Если не сработает, пробуем вот, что:
  1. Выставляем оптимальные настройки к JNGP, указанные на скрине (см. ссылку) xgm.guru/forum/showthread.php?t=13118 Обычно, эти настройки должны быть изначально после установки JNGP (ну мало ли пригодятся)
Теперь суть моей проблемы (не знаю, что из этих ниже пунктов сработало, но сработало):
  1. Я установил игру и JNGP на рабочий стол. Потому что на диске С, в папках типа Program Files.(x86) и др. блокирует браундмер. Обычно требует назойливо для работы права администратора, очень раздражает. Но сомневаюсь, что заработало из-за этого. Раньше не мешало нисколько.
  2. Запустить JNGP в режим совместимости. Заходим в свойство exe-шника. Поставил семерку.
  3. Если UMS изначально включен, то выключить его и включить (Enable UMS). Потом перезапустить WE. Скорее всего из-за него.
Из-за UMS также бывают ошибки: могут выскачить 2-3 окна : что отсутствует TriggerClearActions и layerAll. Когда пропускаешь эти окна, просто нажав на ок, затем появляется ошибка с памятью и уже потом закрывается редактор. Происходят такие ошибки, если пытаешься открыть обычным редактором карту, отредактированную в JNGP. Такая ошибка происходит, если некорректно настроен UMS (выкл. потом вкл.). Такая ошибка происходит, если открыть обычным редактором взломанную карту, которая наверняка сделана в UMS и использует необычный jass и прочие преимущества JNGP. Ошибки с UMS могут иногда происходить, поэтому скорее всего пункт 10 поможет
  1. Если UMS перестает работать (некорректно работает), а 10 пункт не помогает. То есть плагин UMS по каким-то причинам не запускается, а JNGP стоит галочка напротив UMS (говорит, что включен). Короче узнать, что он запущен, можно при открытий редактора вместо стандартного окна выскакивает окно UMS. Если не выскакивает, надо попробовать завести снова работать. Плагин может по каким-то причинам сломаться (один раз баловался в настройках JNGP). Пробуйте потом удалить JNGP и потом заново переустановить. Или выкл. и вкл, UMS затем выйти из jngp, удалить и заново переустановить
пп
27

» WarCraft 3 / (cjass)Фатал при изменениии

Принятый ответ
Все работает. Нужен для работы JNGP. так как используется язык cjass нужно, чтобы в самом редакторе JNGP включены настройки были, и прочее. Если карты написаны на языке cjass или vjass нужно иметь соответствующие настройки jngp, при каждом изменении нужно сохранять в jngp Ответ xgm.guru/p/100/178775
библиотека тоже нужна, без нее никак не перенесешь в другую карту
Загруженные файлы
27

» WarCraft 3 / Как сделать правильно эффект пламя феникса на мече Мастера Клинка?

Принятый ответ
Можно скачать наработку в интернете или на сайте. На форуме. Набираешь в гугл omnislash. Там и смотришь. Я так первое время учился, собирал скилы доты. Потом забросил, пока не надоело, или не устал от варкрафта и понял что было это не нужным занятием. Но многому научился. Там кажется эффект берётся из способности феникса, пламя феникса. А вот как выглядит эффект когда с улучшением я не знаю, не видел его, уже не играю давно (наверное скорее айсфрог в новых версиях обновил эффект каким-нибудь импортным или чем-то существующим, если отличается сегодняшний эффект от нашего)
27

» WarCraft 3 / Скрыть кнопку отмены при строительстве.

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

» WarCraft 3 / Скрыть кнопку отмены при строительстве.

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

» WarCraft 3 / Скрыть кнопку отмены при строительстве.

Можно попробовать передать на время юнита другому игроку, стандартная кнопка отмены у вас не будет, так как вам юнит не принадлежит. Единственное, что нужно сделать так чтобы у вас с другим игроком были общие войска, а то при выделении мышкой на здание круг выбора станет желтым. Отслеживаем по-моему так юнит входит в область, то есть в карту, юнит такой-то. По-моему так вроде, еще здоровье можно сравнить, если меньше максимального, значит строится. Хотя я не уверен. При завершении строительства возвращаем обратно вам. По поводу приказа, он есть
Отменить вроде можно - через покупку юнита, покупаем пустышку, отдаем приказ зданию отмена (хотя не уверен что во время строительства будет отображаться список покупок, значит как-то придумать надо
27

» Necris / Necris

Да не будет никакого продвижения, не ждите. Есть в барахолке на форуме открытая карта.
27

» WarCraft 3 / Триггер условия анимация

Нет, нельзя. Как сказал Хейт, отслеживаем приказы. Но в частности атаки, при атаке можно свою триггером сделать, сделать пункт 5 xgm.guru/forum/showthread.php?t=59760 По событий "юнит атакован" атакующий только начинает проигрывать анимацию, вот ему проигрываем указанную анимацию. Анимация приказ не сбивает. Можно рандом делать, и запоминать в переменную индекс анимации
Хочу еще сказать по поводу приказов. Если есть какой-то приказ, то анимация не всегда будет соотвествовать этому. Например, юнит имеет цель приказа, находящаяся далеко от него, то ему надо будет подойти ближе. То есть будет сначала анимация движения, а потом анимация каста или атаки, или покупки. То есть между события приказа и конкретного события (юнит атакован, применяет способность итд) есть промежуток. Возможно не всегда так бывает. xgm.guru/forum/showthread.php?t=59661 xgm.guru/forum/showthread.php?t=59703
27

» WarCraft 3 / Помощь с триггерами

Честно я не знаю меняет родная защита и прочие характеристики юнита при использовании тёмный. Давно не игрался с этим. Да и делал я типа кур. Говорят там только модель меняется. А вот перевоплощение да там могут меняться атрибуты и прочее. Если так то редактируйте этого юнита. И вообще проверяйте сами все
При использовании абилы тёмный сам юнит никуда не удаляется, просто модель меняется (сам даже удалял много ещё) - трудно проверить?
27

» WarCraft 3 / Помощь с триггерами

Такого у меня не было никогда. Делать нужно правильно. Возможно дополнительная защита берётся из того юнита, на которого вы хотите поменять (редактирует в РО этого юнита). Если хотите кастомную абилу сделать, то берем пустышку, по активации которой триггером отлавиться будет. При событии юнит использует предмет, или юнит применяет способность даем способность тёмный, а когда надо вернуть - удалить тёмный. Также можно использовать Перевоплощение Иллидана