Во-первых, для каждого нужно сохранять текущие приказы и цели. Чтобы при отдаче приказа юнит не слушался хозяина и продолжал делать свои дела. Вроде пока справляемся с идеей, можно все сохранить в переменные (правда, занудно). Но изначально, нужно сохранять приказ стоп, а то в ячейке пустует и он ничего не делает. Во-вторых, события приказов срабатывают намного раньше, чем он начинает делать. То есть, если дать сразу в этот момент еще один приказ, то ничего не будет, ибо начинает выполнять текущий. И получается, что нужно делать задержку в 0.00. То есть не получится так что сразу. Не понимаю вот, почему близзарды не сделали, чтоб сразу. И в третьих, зацикливание может привести к вылету, нужно отключать, отдавать приказ, и включать триггер. Короче это нафиг никому не нужное, он успевает сделать что-то, немножко отбежать туда - куда ему игрок указал. Делал на скорую руку.
ой немного недоработанную выложил, там вэйт включите. удалите двойной слэш
Прошу прощения, оказалось, что вэйт лучше не использовать. Вместо него таймер используйте, так как с помощью таймера приказ отдается сразу. Скину другую наработку Block of orders Upgraid
DesiMorti, у тебя в группах есть вэйт? Недавно на сайте xgm делал одному парню наработку, а там часть действии в ForGroup не выполнялось. Дебагом проверял. И понял, что не выполняется после определенных действии. Не понимал я почему. Убирал одну функцию - вэйт. И заработало. А то дальше после вэйта код не работал. ForGroup + вэйт не совместимы
скорее всего обрывается поток (обрыв может быть еще из-за лимита операции, поищи на сайте. Еще некоторые команды могут обрывать поток, например вэйт. Вэйт работает в действии, а в других частях кода не работает), или логическая ошибка в условии (мб условие не прокатывает, это к примеру). Скорее всего обрыв потока, у тебя триггер Destroy Temp_player_group длинный? триггеров много? советую разбить на части или ищи статью на сайте на лимит операции
ssbbssc, ну и у юнита можно, при покупке даешь голды 15 игроку, запоминаешь сколько в переменную, покупаешь его в магазине. Есть нативка. Драколич вроде другое имел в виду.
нативки с приказами
строительство в точку
заставляет юнита строить определенное здание в точке (у нежити с этим проблемы, точнее с рудником)
native IssueBuildOrder takes unit whichPeon, string unitToBuild, real x, real y returns boolean
native IssueBuildOrderById takes unit whichPeon, integer unitId, real x, real y returns boolean чтобы возвести сплетенный рудник эльфов или проклятый рудник нежити вроде используют IssueTargetOrderById, наводя на рудник
function IssueBuildOrderByIdLocBJ takes unit whichPeon, integer unitId, location loc returns boolean
if (unitId == 'ugol') then проклятый рудник
return IssueHauntOrderAtLocBJ(whichPeon, loc)
else
return IssueBuildOrderById(whichPeon, unitId, GetLocationX(loc), GetLocationY(loc))
endif
endfunction
стандартные приказы
применяет абилки без цели, нанимает (тренирует) войска, улучшает здания и проводит исследования
native IssueImmediateOrder takes unit whichUnit, string order returns boolean
native IssueImmediateOrderById takes unit whichUnit, integer order returns boolean
применяет приказы в точку
native IssuePointOrder takes unit whichUnit, string order, real x, real y returns boolean
native IssuePointOrderById takes unit whichUnit, integer order, real x, real y returns boolean
native IssuePointOrderLoc takes unit whichUnit, string order, location whichLocation returns boolean
native IssuePointOrderByIdLoc takes unit whichUnit, integer order, location whichLocation returns boolean
применяет приказы в цель (в качестве цели могут быть юниты, предметы, декорации - деревья)
native IssueTargetOrder takes unit whichUnit, string order, widget targetWidget returns boolean
native IssueTargetOrderById takes unit whichUnit, integer order, widget targetWidget returns boolean
по дереву и золоту:
"harvest" - добывать ресурсы
"eattree" - съесть дерево
"grabtree" - вырвать дерево
"sentinel" - сторожевая сова
необычные приказы
ИСПОЛЬЗОВАНИЕ instantTargetWidget на цель targetWidget
native IssueInstantTargetOrder takes unit whichUnit, string order, widget targetWidget, widget instantTargetWidget returns boolean
native IssueInstantTargetOrderById takes unit whichUnit, integer order, widget targetWidget, widget instantTargetWidget returns boolean Объяснение: на примере IssueInstantTargetOrder, заставляет юнита whichUnit использовать приказ order на targetWidget с помощью instantTargetWidget Пример: есть приказ на гуи "dropitem" передать targetWidget итем instantTargetWidget или использовать какое-нибудь заклинание предмета на него order_dropitem = 852001 С таким же успехом можно юзать итем на цель
ИСПОЛЬЗОВАНИЕ instantTargetWidget в точку
native IssueInstantPointOrder takes unit whichUnit, string order, real x, real y, widget instantTargetWidget returns boolean
native IssueInstantPointOrderById takes unit whichUnit, integer order, real x, real y, widget instantTargetWidget returns boolean Объяснение: на примере IssueInstantPointOrder, заставляет юнита whichUnit использовать приказ order в точку (x,y) или что-то сделать в точке с помощью instantTargetWidget Пример: к примеру есть приказ на гуи "dropitem" выбросить предмет targetWidget или приказ использовать итем instantTargetWidget в точку order_dropitem = 852001
http://xgm.guru/p/wc3/warden-buyitem
юнит передает предмет цели target (можно так и продать в магазин, если магазин будет целью)
native UnitDropItemTarget takes unit whichUnit, item whichItem, widget target returns boolean
перемещает предмет в слот (если там был слот занят, то меняет местами). Иногда можно перемещать исчезнутые итемы в слот (например, они невидимы, заставляем их переместить в слот, и становятся видимы).
native UnitDropItemSlot takes unit whichUnit, item whichItem, integer slot returns boolean
юзаем предмет в цель (в качестве цели могут быть юнит, итем. декорация)
native UnitUseItemTarget takes unit whichUnit, item whichItem, widget target returns boolean
юзаем предмет в точку
native UnitUseItemPoint takes unit whichUnit, item whichItem, real x, real y returns boolean
852002 to 852007 (moveslot): Эти приказы перемещают указанный предмет в соответствующий слот инвентаря героя, отдавшего приказ. Идентификатор 852002 переместит предмет в первый слот, идентификатор 852003 – во второй и т.д. Можно с помощью IssueInstantTargetOrderById перетащить итем самому себе.
852008 to 852013 (useslot): Заставляют героя, отдавшего приказ, использовать предмет, находящийся в соответствующем слоте инвентаря. Идентификатор 852008 использует предмет в первом слоте, идентификатор 852009 – во втором и т.д.
дропают предмет в точку (на землю короче выкидываем)
native UnitDropItemPoint takes unit whichUnit, item whichItem, real x, real y returns boolean
МАНИПУЛЯЦИИ С ПРЕДМЕТОМ (не приказы)
даем итем (не создаем !!!)
native UnitAddItem takes unit whichUnit, item whichItem returns boolean создаем итем определенного типа
native UnitAddItemById takes unit whichUnit, integer itemId returns item создаем итем определенного типа в определенный слот
native UnitAddItemToSlotById takes unit whichUnit, integer itemId, integer itemSlot returns boolean удаляем итем
native UnitRemoveItem takes unit whichUnit, item whichItem returns nothing удаляем итем с определенного слота
native UnitRemoveItemFromSlot takes unit whichUnit, integer itemSlot returns item размер инвентаря
native UnitInventorySize takes unit whichUnit returns integer итем в слоте
native UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
иммитация
как понял ниже три заставляют не только продавать/покупать. но и делать действия от имени игрока иммитация от имени игрока - нанимать войска, которые есть в наличии у лагеря
native IssueNeutralImmediateOrder takes player forWhichPlayer, unit neutralStructure, string unitToBuild returns boolean
native IssueNeutralImmediateOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId returns boolean
Объяснение: IssueNeutralImmediateOrder это иммитация приказа, заставляет нейтральное здание neutralStructure (чаще всего магазин) от имени игрока forWhichPlayer нанимать войска
иммитация от имени игрока - заставляет купить/продать выбранную цель
native IssueNeutralTargetOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, widget target returns boolean
native IssueNeutralTargetOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId, widget target returns boolean
иммитация от имени игрока - заставляет что-то делать с точкой (непонятная нативка). Думаю, эта штука вроде типа помогает разведку делать. Помните, у гоблина можно разведку делать
native IssueNeutralPointOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, real x, real y returns boolean
native IssueNeutralPointOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId, real x, real y returns boolean
если у вас расшарен общий контроль это поможет например синему купить что-то у красного. хотя не всегда работает. Не путайте покупку и тренировку
851971 (smart): Приказ (цель-точка или цель-объект), аналог правой клавиши мыши.
852000 (skillmenu): Приказ (без указания цели), при выполнении которого открывается меню навыков героев. Если же триггерно заставить выполнить этот приказ обычную боевую единицу, то исчезнет ее карта команд, которая возвратится, если выбрать боевую единицу.
851994 (buildmenu): Приказ (без указания цели), открывающий меню строительства воина, способного возводить здания.
851973 (stunned): Этот приказ отдается боевым единицам, подвергшимся оглушающим способностям, таким как ‘AOws’ (Громовая поступь), лишая их возможности двигаться и атаковать.
По сути совет правильный, но приказ (имеется в виду skillmenu) указан неверно: OrderId("attributemodskill") = 852576
заставляет отряд применять приказ
native GroupImmediateOrder takes group whichGroup, string order returns boolean
native GroupImmediateOrderById takes group whichGroup, integer order returns boolean
отряду приказ в цель
native GroupTargetOrder takes group whichGroup, string order, widget targetWidget returns boolean
native GroupTargetOrderById takes group whichGroup, integer order, widget targetWidget returns boolean
заставляет отряд использовать приказ в точку
native GroupPointOrder takes group whichGroup, string order, real x, real y returns boolean
native GroupPointOrderById takes group whichGroup, integer order, real x, real y returns boolean
native GroupPointOrderLoc takes group whichGroup, string order, location whichLocation returns boolean
native GroupPointOrderByIdLoc takes group whichGroup, integer order, location whichLocation returns boolean
ssbbssc, ну и у юнита можно, при покупке даешь голды 15 игроку, запоминаешь сколько в переменную, покупаешь его в магазине. Есть нативка. Драколич вроде другое имел в виду.
нативки с приказами
строительство в точку
заставляет юнита строить определенное здание в точке (у нежити с этим проблемы, точнее с рудником)
native IssueBuildOrder takes unit whichPeon, string unitToBuild, real x, real y returns boolean
native IssueBuildOrderById takes unit whichPeon, integer unitId, real x, real y returns boolean чтобы возвести сплетенный рудник эльфов или проклятый рудник нежити вроде используют IssueTargetOrderById, наводя на рудник
function IssueBuildOrderByIdLocBJ takes unit whichPeon, integer unitId, location loc returns boolean
if (unitId == 'ugol') then проклятый рудник
return IssueHauntOrderAtLocBJ(whichPeon, loc)
else
return IssueBuildOrderById(whichPeon, unitId, GetLocationX(loc), GetLocationY(loc))
endif
endfunction
стандартные приказы
применяет абилки без цели, нанимает (тренирует) войска, улучшает здания и проводит исследования
native IssueImmediateOrder takes unit whichUnit, string order returns boolean
native IssueImmediateOrderById takes unit whichUnit, integer order returns boolean
применяет приказы в точку
native IssuePointOrder takes unit whichUnit, string order, real x, real y returns boolean
native IssuePointOrderById takes unit whichUnit, integer order, real x, real y returns boolean
native IssuePointOrderLoc takes unit whichUnit, string order, location whichLocation returns boolean
native IssuePointOrderByIdLoc takes unit whichUnit, integer order, location whichLocation returns boolean
применяет приказы в цель (в качестве цели могут быть юниты, предметы, декорации - деревья)
native IssueTargetOrder takes unit whichUnit, string order, widget targetWidget returns boolean
native IssueTargetOrderById takes unit whichUnit, integer order, widget targetWidget returns boolean
по дереву и золоту:
"harvest" - добывать ресурсы
"eattree" - съесть дерево
"grabtree" - вырвать дерево
"sentinel" - сторожевая сова
необычные приказы
ИСПОЛЬЗОВАНИЕ instantTargetWidget на цель targetWidget
native IssueInstantTargetOrder takes unit whichUnit, string order, widget targetWidget, widget instantTargetWidget returns boolean
native IssueInstantTargetOrderById takes unit whichUnit, integer order, widget targetWidget, widget instantTargetWidget returns boolean Объяснение: на примере IssueInstantTargetOrder, заставляет юнита whichUnit использовать приказ order на targetWidget с помощью instantTargetWidget Пример: есть приказ на гуи "dropitem" передать targetWidget итем instantTargetWidget или использовать какое-нибудь заклинание предмета на него order_dropitem = 852001 С таким же успехом можно юзать итем на цель
ИСПОЛЬЗОВАНИЕ instantTargetWidget в точку
native IssueInstantPointOrder takes unit whichUnit, string order, real x, real y, widget instantTargetWidget returns boolean
native IssueInstantPointOrderById takes unit whichUnit, integer order, real x, real y, widget instantTargetWidget returns boolean Объяснение: на примере IssueInstantPointOrder, заставляет юнита whichUnit использовать приказ order в точку (x,y) или что-то сделать в точке с помощью instantTargetWidget Пример: к примеру есть приказ на гуи "dropitem" выбросить предмет targetWidget или приказ использовать итем instantTargetWidget в точку order_dropitem = 852001
http://xgm.guru/p/wc3/warden-buyitem
юнит передает предмет цели target (можно так и продать в магазин, если магазин будет целью)
native UnitDropItemTarget takes unit whichUnit, item whichItem, widget target returns boolean
перемещает предмет в слот (если там был слот занят, то меняет местами). Иногда можно перемещать исчезнутые итемы в слот (например, они невидимы, заставляем их переместить в слот, и становятся видимы).
native UnitDropItemSlot takes unit whichUnit, item whichItem, integer slot returns boolean
юзаем предмет в цель (в качестве цели могут быть юнит, итем. декорация)
native UnitUseItemTarget takes unit whichUnit, item whichItem, widget target returns boolean
юзаем предмет в точку
native UnitUseItemPoint takes unit whichUnit, item whichItem, real x, real y returns boolean
852002 to 852007 (moveslot): Эти приказы перемещают указанный предмет в соответствующий слот инвентаря героя, отдавшего приказ. Идентификатор 852002 переместит предмет в первый слот, идентификатор 852003 – во второй и т.д. Можно с помощью IssueInstantTargetOrderById перетащить итем самому себе.
852008 to 852013 (useslot): Заставляют героя, отдавшего приказ, использовать предмет, находящийся в соответствующем слоте инвентаря. Идентификатор 852008 использует предмет в первом слоте, идентификатор 852009 – во втором и т.д.
дропают предмет в точку (на землю короче выкидываем)
native UnitDropItemPoint takes unit whichUnit, item whichItem, real x, real y returns boolean
МАНИПУЛЯЦИИ С ПРЕДМЕТОМ (не приказы)
даем итем (не создаем !!!)
native UnitAddItem takes unit whichUnit, item whichItem returns boolean создаем итем определенного типа
native UnitAddItemById takes unit whichUnit, integer itemId returns item создаем итем определенного типа в определенный слот
native UnitAddItemToSlotById takes unit whichUnit, integer itemId, integer itemSlot returns boolean удаляем итем
native UnitRemoveItem takes unit whichUnit, item whichItem returns nothing удаляем итем с определенного слота
native UnitRemoveItemFromSlot takes unit whichUnit, integer itemSlot returns item размер инвентаря
native UnitInventorySize takes unit whichUnit returns integer итем в слоте
native UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
иммитация
как понял ниже три заставляют не только продавать/покупать. но и делать действия от имени игрока иммитация от имени игрока - нанимать войска, которые есть в наличии у лагеря
native IssueNeutralImmediateOrder takes player forWhichPlayer, unit neutralStructure, string unitToBuild returns boolean
native IssueNeutralImmediateOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId returns boolean
Объяснение: IssueNeutralImmediateOrder это иммитация приказа, заставляет нейтральное здание neutralStructure (чаще всего магазин) от имени игрока forWhichPlayer нанимать войска
иммитация от имени игрока - заставляет купить/продать выбранную цель
native IssueNeutralTargetOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, widget target returns boolean
native IssueNeutralTargetOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId, widget target returns boolean
иммитация от имени игрока - заставляет что-то делать с точкой (непонятная нативка). Думаю, эта штука вроде типа помогает разведку делать. Помните, у гоблина можно разведку делатьДумаю, эта штука вроде типа помогает разведку делать. Помните, у гоблина можно разведку делать
native IssueNeutralPointOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, real x, real y returns boolean
native IssueNeutralPointOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId, real x, real y returns boolean
если у вас расшарен общий контроль это поможет например синему купить что-то у красного. хотя не всегда работает. Не путайте покупку и тренировку
851971 (smart): Приказ (цель-точка или цель-объект), аналог правой клавиши мыши.
852000 (skillmenu): Приказ (без указания цели), при выполнении которого открывается меню навыков героев. Если же триггерно заставить выполнить этот приказ обычную боевую единицу, то исчезнет ее карта команд, которая возвратится, если выбрать боевую единицу.
851994 (buildmenu): Приказ (без указания цели), открывающий меню строительства воина, способного возводить здания.
851973 (stunned): Этот приказ отдается боевым единицам, подвергшимся оглушающим способностям, таким как ‘AOws’ (Громовая поступь), лишая их возможности двигаться и атаковать.
По сути совет правильный, но приказ (имеется в виду skillmenu) указан неверно: OrderId("attributemodskill") = 852576
заставляет отряд применять приказ
native GroupImmediateOrder takes group whichGroup, string order returns boolean
native GroupImmediateOrderById takes group whichGroup, integer order returns boolean
отряду приказ в цель
native GroupTargetOrder takes group whichGroup, string order, widget targetWidget returns boolean
native GroupTargetOrderById takes group whichGroup, integer order, widget targetWidget returns boolean
заставляет отряд использовать приказ в точку
native GroupPointOrder takes group whichGroup, string order, real x, real y returns boolean
native GroupPointOrderById takes group whichGroup, integer order, real x, real y returns boolean
native GroupPointOrderLoc takes group whichGroup, string order, location whichLocation returns boolean
native GroupPointOrderByIdLoc takes group whichGroup, integer order, location whichLocation returns boolean
нативок таких нет. поэтому стандартным способом никак.
только костыльным можно забить базу данных
можно использовать поля объектов. Например, уровень предмета, хп-предмета. Их в редакторе объектов забиваем заранее. Там можно узнать стоимость и др. Смотри какие поля можно использовать, часто в игре остается много не используемых полей. Еще есть у предметов и у юнитов не используемое поле CustomValue. Его вот триггерно забиваем значениями.
или использовать ячейки хэш-таблицы, переменные, массивы и др. По ключу можно забить равкод или хэндл. Или еще как-нибудь.
Суффикс не получится использовать, но если так уж хочется, то можно использовать текст, ну например, название юнита: "Ферма +1", "+1" можно было бы как-нибудь спрятать. Не знаю можно ли скрыть. Ну из строки доставать значение. Кстати имя можно изменять будет.
как отследить? так таймер + проверка расстояния
там каждую секунду сначала двигают к цели, потом проверяют расстояние. Если расстояние между снарядом и целью меньше чем n, то дамажим.
Ищи наработку на слово arrow, вот скинул пару. только не помню, jass там или гуи. не открывал
что за название темы? и есть для этого специальная тема
была тема о том что нативки которые начинают с GroupEnum....могут не выделять москитов в группу, третий коммент выше - рабочий вариант. Пикаем всех dummy, и даем москитов после того, как добавили в группу.
правда, не все функции. посмотрите код/карту внимательно, сюда добавил все существующие в варе пики и проверял xgm.guru/p/wc3/187447?postid=345848#comment10
с помощью тех нативок GroupEnum..., которые ловят москитов, нельзя указать радиус. Поэтому делаем такую вещь - используем фильтр. Фильтр отсеивает не нужных. Короче берет всех кто попал в круг вокруг цели, и фильтром отсеивает. Если вернет true, то юнита зачисляют в группу, иначе отсеивают. можно проверять с помощью xgm.guru/p/wc3/iscoordsincircle прописываем в нем эту функцию
datar1231, нее. это просто плагин, снимает кучу ограничении и дает новые гуишные команды триггерам. А вот у обычного редактора стоят ограничения, когда он пробует открыть карту (а в ней допустим сняты ограничение на декор, на ландшафт, и др. есть непонятная функция. У меня карта пустая, только триггеры, одну нестандартную гуишную функцию ввел, но стандартный редактор не может распознать функцию. и поэтому не открывает. у тебя плагин отключен, я с этим знаком - также было. там может не запуститься из-за ОС и других непонятных ситуации - решение смотри на странице нового JNGP ) . вот переделал.
вторая 2 кнопка строить, построить
хотите больше 12 зданий , то юзайте канал +способность от игрушечная ферма / игрушечная башня / шкатулка вождей. Можно использовать dummy-юнитов, создавать предметы и каставать.
Можно подогнать строящие участки (типа маленький квадратик - башни, квадратик побольше - фермы, еще больше - бараки и др.). Там когда выбираешь, там просто пустой dummy-юнит без модели, у него площадка зеленым подсвечено.
Под эту площадку подбираешь здание.
Жаль, невозможно подобрать указывающая на цель способность с ресурсами, нельзя. Можно было на участок определить. Хотел конечно юзнуть такую штуку как способность "поставка ресурсов", но с разными id-приказами. Параллельно с этим будет канал без иконки (выключена "Изображение"), но будет одинаковый приказ. Хотел как-то связать канал + поставка ресурсов. Когда жмешь на поставку ресурсов, там срабатывает приказ, приказ от поставки ресурсов одинаков с каналом, то активирует канал. Канал должен показать указатель цели. Кажется не заработает это
А строит еще один дамми-юнит, нет который зеленый, а другой. Строить будет через приказ. Приказы имеют свойство возвращать булеан. Если строить можно, то сам приказ вернет истину, иначе ложь. Там у даймика все прописано.
Vayne, ты знаешь как делать дабл-клик? счетчик + таймер. в виде счетчика целочисленная переменная. когда кликаешь, то нужно проверять счетчик C, если C равно 0, то запустить таймер на 1-3 сек. и прибавить единицу счетчику C, иначе, если C равно 1, то обнулить счетчик C, и обязательно проверить время таймера (то есть не истекло ли оно за 1-3 сек. и тут твои действия). Если время за 1-3 сек. проходит, значит обнуляем счетчик таймером.
если хотите сделать как эффект у духа (не сама механика: имею в виду, когда охотница ночью неподвижна, она просто не видима, и противник атаковать не может ее)
Анимация - изменить окраску верха юнит на (100%,100%,100%) с 50% прозрачность. {Где 50% прозрачный}
правда это только приблизительно, если взять и создать отдельного юнита и дать способность "дух", то будет заметно, что мой только приблизительно. поэксперементируйте с прозрачностью, можно вообще сделать невидимыми для отдельных игроков невидимыми через GetLocalPlayer(), только полностью невидимыми не будут, их атаковать можно будет
там кодировка RGBA (red - красный, green - зеленый, blue - синий) и еще alpha - прозрачность. Вообщем-то кодируются от 0 до 255, в hex от 00 до ff. В триггерах (цвета юнитов, текстагов) пишут проценты (от 0% до 100%).
тоже самое с текстом |cff808080 Текст. |R - очень похож на прозрачный текст, только вот последние 6 символов отвечают за цвета (808080), а первые ff - не понятно за что
канал - это просто пустышка, кнопка. можно или из юнита снаряд сделать и двигать к цели, или взять какую-нибудь другую способность типа молота и там модель сменить
Naadir, тоже думал об этом. приоритет скорее всего за другое отвечает. независимо от того какой приоритет поставишь, крипы агрятся на самого ближнего, и агрятся на тех, кто их спровоцировал (то есть обычно с атакой, если сам юнит ничего не делает, то они не трогают его до сих пор, пока не прибьют всех агрессивных и сопротивляющихся). Если приказать юниту отойти и спрятаться за спинами товарищей, то противники переключаются на его товарищей.
в ро есть приоритет? порылся на сайте, инфы нет точной
приорит у юнита
другие пишут, что за построение. там как раз в редакторе задать значение можно от 0 до 20. влияет на то, каким номером будет группа иконок расположена по порядку при выборе группы рамочкой.. герои - первыми, маги - вторыми.. пехота, саммоны (типа скелетов), нейтралы (если у вас есть кролик, то выбрав группу увидите его иконку в конце). Данная чтука помогает нормально отструктурировать микроконтроль. Например, переключение Tab-ом с героев на магов, потом на пехоту итд по кругу.
Есть в РО у способностей строка "Приоритет для кражи заклинания".
Это поле влияет на одну способность. Известна абилка "Похищение магии", ворует заклинания у врага и направляет обратно. А у способностей приоритет для кражи заклинания т.е поидее какой шанс для кражи заклинания. обычно ворует атакуемые заклинания. Если посмотреть, то можно заметить, что приореты расставлены именно у атакующих заклинании.
приоритет у предметов - пока неизвестно, но склоняюсь к тому, что отвечает за поведение ИИ. типа какой предмет покупать, какой продать. но это не точно
ssbbssc, так вот эта функция LengthString() считает длину строки, а вот как это он сделает - другой вопрос. он хочет наверное с помощью чата типа денежку добавить AntiMage, лови примеры. проверяй дебагом. Кстати пробелы тоже символы, русские буквы считают как за 2 символа. Все это написано в вложенном архиве. Короче как я узнал - дебагом.
Filius Dei, потому что повесил событие на синего игрока. повесь на остальных, общее. Я думал, что немного шаришь. Ну ничего, начнешь с jass-а изучать, с чего-то надо изучать
Ред. MpW
» WarCraft 3 / Блокировка приказов
Ред. MpW
» WarCraft 3 / Не выводится игровой текст
» WarCraft 3 / Не выводится игровой текст
Ред. MpW
» WarCraft 3 / Есть какя нить функция или еще что либо которая позволила бы узн
native IssueBuildOrder takes unit whichPeon, string unitToBuild, real x, real y returns boolean
native IssueBuildOrderById takes unit whichPeon, integer unitId, real x, real y returns boolean
чтобы возвести сплетенный рудник эльфов или проклятый рудник нежити вроде используют IssueTargetOrderById, наводя на рудник
if (unitId == 'ugol') then проклятый рудник
return IssueHauntOrderAtLocBJ(whichPeon, loc)
else
return IssueBuildOrderById(whichPeon, unitId, GetLocationX(loc), GetLocationY(loc))
endif
endfunction
native IssueImmediateOrder takes unit whichUnit, string order returns boolean
native IssueImmediateOrderById takes unit whichUnit, integer order returns boolean
native IssuePointOrder takes unit whichUnit, string order, real x, real y returns boolean
native IssuePointOrderById takes unit whichUnit, integer order, real x, real y returns boolean
native IssuePointOrderLoc takes unit whichUnit, string order, location whichLocation returns boolean
native IssuePointOrderByIdLoc takes unit whichUnit, integer order, location whichLocation returns boolean
native IssueTargetOrder takes unit whichUnit, string order, widget targetWidget returns boolean
native IssueTargetOrderById takes unit whichUnit, integer order, widget targetWidget returns boolean
"harvest" - добывать ресурсы
"eattree" - съесть дерево
"grabtree" - вырвать дерево
"sentinel" - сторожевая сова
native IssueInstantTargetOrder takes unit whichUnit, string order, widget targetWidget, widget instantTargetWidget returns boolean
native IssueInstantTargetOrderById takes unit whichUnit, integer order, widget targetWidget, widget instantTargetWidget returns boolean
Объяснение: на примере IssueInstantTargetOrder, заставляет юнита whichUnit использовать приказ order на targetWidget с помощью instantTargetWidget
Пример: есть приказ на гуи "dropitem" передать targetWidget итем instantTargetWidget или использовать какое-нибудь заклинание предмета на него
order_dropitem = 852001
С таким же успехом можно юзать итем на цель
native IssueInstantPointOrder takes unit whichUnit, string order, real x, real y, widget instantTargetWidget returns boolean
native IssueInstantPointOrderById takes unit whichUnit, integer order, real x, real y, widget instantTargetWidget returns boolean
Объяснение: на примере IssueInstantPointOrder, заставляет юнита whichUnit использовать приказ order в точку (x,y) или что-то сделать в точке с помощью instantTargetWidget
Пример: к примеру есть приказ на гуи "dropitem" выбросить предмет targetWidget или приказ использовать итем instantTargetWidget в точку
order_dropitem = 852001
http://xgm.guru/p/wc3/warden-buyitem
native UnitDropItemTarget takes unit whichUnit, item whichItem, widget target returns boolean
native UnitDropItemSlot takes unit whichUnit, item whichItem, integer slot returns boolean
native UnitUseItem takes unit whichUnit, item whichItem returns boolean
native UnitUseItemTarget takes unit whichUnit, item whichItem, widget target returns boolean
native UnitUseItemPoint takes unit whichUnit, item whichItem, real x, real y returns boolean
native UnitDropItemPoint takes unit whichUnit, item whichItem, real x, real y returns boolean
native UnitAddItem takes unit whichUnit, item whichItem returns boolean
создаем итем определенного типа
native UnitAddItemById takes unit whichUnit, integer itemId returns item
создаем итем определенного типа в определенный слот
native UnitAddItemToSlotById takes unit whichUnit, integer itemId, integer itemSlot returns boolean
удаляем итем
native UnitRemoveItem takes unit whichUnit, item whichItem returns nothing
удаляем итем с определенного слота
native UnitRemoveItemFromSlot takes unit whichUnit, integer itemSlot returns item
размер инвентаря
native UnitInventorySize takes unit whichUnit returns integer
итем в слоте
native UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
иммитация от имени игрока - нанимать войска, которые есть в наличии у лагеря
native IssueNeutralImmediateOrder takes player forWhichPlayer, unit neutralStructure, string unitToBuild returns boolean
native IssueNeutralImmediateOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId returns boolean
Объяснение: IssueNeutralImmediateOrder это иммитация приказа, заставляет нейтральное здание neutralStructure (чаще всего магазин) от имени игрока forWhichPlayer нанимать войска
native IssueNeutralTargetOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, widget target returns boolean
native IssueNeutralTargetOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId, widget target returns boolean
native IssueNeutralPointOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, real x, real y returns boolean
native IssueNeutralPointOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId, real x, real y returns boolean
native SelectHeroSkill takes unit whichHero, integer abilcode returns nothing
native GroupImmediateOrder takes group whichGroup, string order returns boolean
native GroupImmediateOrderById takes group whichGroup, integer order returns boolean
native GroupTargetOrder takes group whichGroup, string order, widget targetWidget returns boolean
native GroupTargetOrderById takes group whichGroup, integer order, widget targetWidget returns boolean
native GroupPointOrder takes group whichGroup, string order, real x, real y returns boolean
native GroupPointOrderById takes group whichGroup, integer order, real x, real y returns boolean
native GroupPointOrderLoc takes group whichGroup, string order, location whichLocation returns boolean
native GroupPointOrderByIdLoc takes group whichGroup, integer order, location whichLocation returns boolean
https://www.xgm.guru/forum/showthread.php?t=44889
https://www.xgm.guru/forum/showthread.php?t=46676
Ред. MpW
» WarCraft 3 / Есть ли функция, которая возвращает стоимость юнита?
native IssueBuildOrder takes unit whichPeon, string unitToBuild, real x, real y returns boolean
native IssueBuildOrderById takes unit whichPeon, integer unitId, real x, real y returns boolean
чтобы возвести сплетенный рудник эльфов или проклятый рудник нежити вроде используют IssueTargetOrderById, наводя на рудник
if (unitId == 'ugol') then проклятый рудник
return IssueHauntOrderAtLocBJ(whichPeon, loc)
else
return IssueBuildOrderById(whichPeon, unitId, GetLocationX(loc), GetLocationY(loc))
endif
endfunction
native IssueImmediateOrder takes unit whichUnit, string order returns boolean
native IssueImmediateOrderById takes unit whichUnit, integer order returns boolean
native IssuePointOrder takes unit whichUnit, string order, real x, real y returns boolean
native IssuePointOrderById takes unit whichUnit, integer order, real x, real y returns boolean
native IssuePointOrderLoc takes unit whichUnit, string order, location whichLocation returns boolean
native IssuePointOrderByIdLoc takes unit whichUnit, integer order, location whichLocation returns boolean
native IssueTargetOrder takes unit whichUnit, string order, widget targetWidget returns boolean
native IssueTargetOrderById takes unit whichUnit, integer order, widget targetWidget returns boolean
"harvest" - добывать ресурсы
"eattree" - съесть дерево
"grabtree" - вырвать дерево
"sentinel" - сторожевая сова
native IssueInstantTargetOrder takes unit whichUnit, string order, widget targetWidget, widget instantTargetWidget returns boolean
native IssueInstantTargetOrderById takes unit whichUnit, integer order, widget targetWidget, widget instantTargetWidget returns boolean
Объяснение: на примере IssueInstantTargetOrder, заставляет юнита whichUnit использовать приказ order на targetWidget с помощью instantTargetWidget
Пример: есть приказ на гуи "dropitem" передать targetWidget итем instantTargetWidget или использовать какое-нибудь заклинание предмета на него
order_dropitem = 852001
С таким же успехом можно юзать итем на цель
native IssueInstantPointOrder takes unit whichUnit, string order, real x, real y, widget instantTargetWidget returns boolean
native IssueInstantPointOrderById takes unit whichUnit, integer order, real x, real y, widget instantTargetWidget returns boolean
Объяснение: на примере IssueInstantPointOrder, заставляет юнита whichUnit использовать приказ order в точку (x,y) или что-то сделать в точке с помощью instantTargetWidget
Пример: к примеру есть приказ на гуи "dropitem" выбросить предмет targetWidget или приказ использовать итем instantTargetWidget в точку
order_dropitem = 852001
http://xgm.guru/p/wc3/warden-buyitem
native UnitDropItemTarget takes unit whichUnit, item whichItem, widget target returns boolean
native UnitDropItemSlot takes unit whichUnit, item whichItem, integer slot returns boolean
native UnitUseItem takes unit whichUnit, item whichItem returns boolean
native UnitUseItemTarget takes unit whichUnit, item whichItem, widget target returns boolean
native UnitUseItemPoint takes unit whichUnit, item whichItem, real x, real y returns boolean
native UnitDropItemPoint takes unit whichUnit, item whichItem, real x, real y returns boolean
native UnitAddItem takes unit whichUnit, item whichItem returns boolean
создаем итем определенного типа
native UnitAddItemById takes unit whichUnit, integer itemId returns item
создаем итем определенного типа в определенный слот
native UnitAddItemToSlotById takes unit whichUnit, integer itemId, integer itemSlot returns boolean
удаляем итем
native UnitRemoveItem takes unit whichUnit, item whichItem returns nothing
удаляем итем с определенного слота
native UnitRemoveItemFromSlot takes unit whichUnit, integer itemSlot returns item
размер инвентаря
native UnitInventorySize takes unit whichUnit returns integer
итем в слоте
native UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
иммитация от имени игрока - нанимать войска, которые есть в наличии у лагеря
native IssueNeutralImmediateOrder takes player forWhichPlayer, unit neutralStructure, string unitToBuild returns boolean
native IssueNeutralImmediateOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId returns boolean
Объяснение: IssueNeutralImmediateOrder это иммитация приказа, заставляет нейтральное здание neutralStructure (чаще всего магазин) от имени игрока forWhichPlayer нанимать войска
native IssueNeutralTargetOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, widget target returns boolean
native IssueNeutralTargetOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId, widget target returns boolean
native IssueNeutralPointOrder takes player forWhichPlayer,unit neutralStructure, string unitToBuild, real x, real y returns boolean
native IssueNeutralPointOrderById takes player forWhichPlayer,unit neutralStructure, integer unitId, real x, real y returns boolean
native SelectHeroSkill takes unit whichHero, integer abilcode returns nothing
native GroupImmediateOrder takes group whichGroup, string order returns boolean
native GroupImmediateOrderById takes group whichGroup, integer order returns boolean
native GroupTargetOrder takes group whichGroup, string order, widget targetWidget returns boolean
native GroupTargetOrderById takes group whichGroup, integer order, widget targetWidget returns boolean
native GroupPointOrder takes group whichGroup, string order, real x, real y returns boolean
native GroupPointOrderById takes group whichGroup, integer order, real x, real y returns boolean
native GroupPointOrderLoc takes group whichGroup, string order, location whichLocation returns boolean
native GroupPointOrderByIdLoc takes group whichGroup, integer order, location whichLocation returns boolean
Ред. MpW
» WarCraft 3 / Есть какя нить функция или еще что либо которая позволила бы узн
Ред. MpW
» WarCraft 3 / Есть какя нить функция или еще что либо которая позволила бы узн
Ред. MpW
» WarCraft 3 / Как быть со зверями, которые блокируют путь?
» WarCraft 3 / Ошибка компиляции Jass(Function redeclared)
Ред. MpW
» WarCraft 3 / вопрос по спеллам
там каждую секунду сначала двигают к цели, потом проверяют расстояние. Если расстояние между снарядом и целью меньше чем n, то дамажим.
Ищи наработку на слово arrow, вот скинул пару. только не помню, jass там или гуи. не открывал
что за название темы? и есть для этого специальная тема
Ред. MpW
» WarCraft 3 / Добавление в группу юнитов с "Москитами"
правда, не все функции. посмотрите код/карту внимательно, сюда добавил все существующие в варе пики и проверял xgm.guru/p/wc3/187447?postid=345848#comment10
с помощью тех нативок GroupEnum..., которые ловят москитов, нельзя указать радиус. Поэтому делаем такую вещь - используем фильтр. Фильтр отсеивает не нужных. Короче берет всех кто попал в круг вокруг цели, и фильтром отсеивает. Если вернет true, то юнита зачисляют в группу, иначе отсеивают. можно проверять с помощью xgm.guru/p/wc3/iscoordsincircle прописываем в нем эту функцию
Ред. MpW
» WarCraft 3 / Предметы (триггер)
» WarCraft 3 / Предметы (триггер)
» WarCraft 3 / Предметы (триггер)
Ред. MpW
» WarCraft 3 / Вторая кнопка "Построить"
хотите больше 12 зданий , то юзайте канал +способность от игрушечная ферма / игрушечная башня / шкатулка вождей. Можно использовать dummy-юнитов, создавать предметы и каставать.
https://www.xgm.guru/forum/showthread.php?t=59903
https://www.xgm.guru/forum/showthread.php?t=29432
https://www.xgm.guru/forum/showthread.php?t=11414
https://www.xgm.guru/forum/showthread.php?t=49725
https://www.xgm.guru/forum/showthread.php?t=44160
https://www.xgm.guru/forum/showthread.php?t=7157
https://www.xgm.guru/p/wc3/191016
Ред. MpW
» WarCraft 3 / Как запретить обмениваться ресурсами между игроками-союзниками?
https://www.xgm.guru/forum/showthread.php?t=26853
https://www.xgm.guru/forum/showthread.php?t=21302
Jass function: call SetMapFlag(MAP_RESOURCE_TRADING_ALLIES_ONLY, true)
Ред. MpW
» WarCraft 3 / Как отследить двойной клик на юнита? Гуи
Ред. MpW
» WarCraft 3 / Призраки
» WarCraft 3 / Призраки
там кодировка RGBA (red - красный, green - зеленый, blue - синий) и еще alpha - прозрачность. Вообщем-то кодируются от 0 до 255, в hex от 00 до ff. В триггерах (цвета юнитов, текстагов) пишут проценты (от 0% до 100%).
» WarCraft 3 / Запуск перезарядки
» WarCraft 3 / Канал Дистанционная атака
Ред. MpW
» WarCraft 3 / Поведение ИИ. Агрессия. Нубский вопрос
другие пишут, что за построение. там как раз в редакторе задать значение можно от 0 до 20. влияет на то, каким номером будет группа иконок расположена по порядку при выборе группы рамочкой.. герои - первыми, маги - вторыми.. пехота, саммоны (типа скелетов), нейтралы (если у вас есть кролик, то выбрав группу увидите его иконку в конце). Данная чтука помогает нормально отструктурировать микроконтроль. Например, переключение Tab-ом с героев на магов, потом на пехоту итд по кругу.
Это поле влияет на одну способность. Известна абилка "Похищение магии", ворует заклинания у врага и направляет обратно. А у способностей приоритет для кражи заклинания т.е поидее какой шанс для кражи заклинания. обычно ворует атакуемые заклинания. Если посмотреть, то можно заметить, что приореты расставлены именно у атакующих заклинании.
Ред. MpW
» WarCraft 3 / Как проверить длину строки?
AntiMage, лови примеры. проверяй дебагом. Кстати пробелы тоже символы, русские буквы считают как за 2 символа. Все это написано в вложенном архиве. Короче как я узнал - дебагом.
» WarCraft 3 / Невозможно открыть файл основной карты
Ред. MpW
» WarCraft 3 / Не могу разобраться с оформлением