Помощь по WorldEditor'у (новичкам)
|
|
-
стражNIK | Дата: Четверг, 15-08-2013, 15:26:22 | Сообщение # 341 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1534
Репутация: 1621
Статус: Не на сайте
|
xkalex9527, Событие: Юнит входит в область (0) Условие: Если этот юнит типа (1) (если надо) Действие: Установить переменную (2) (область) (0)
Приходится создавать для каждого региона.
╔╦╦╦═╦╗╔═╦═╦══╦═╗─╔═╦╗╔╗─ * ║║║║═╣║║╔╣║║║║║═╣─║║║║║║─ * ║║║║═╣╚╣╚╣║║║║║═╣─║╦║╚╣╚╗ * ╚══╩═╩═╩═╩═╩╩╩╩═╝─╚╩╩═╩═╝ * .
|
| | |
-
Кексоманикус | Дата: Пятница, 16-08-2013, 07:26:52 | Сообщение # 342 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 2
Репутация: 25
Статус: Не на сайте
|
Получился щит:-) Спс за совет:-)
|
| | |
-
AncientPenguin | Дата: Пятница, 16-08-2013, 14:06:24 | Сообщение # 343 |
загрузка наград ...
Группа: Избранные
Сообщений: 449
Репутация: 526
Статус: Не на сайте
|
xkalex9527, ну можно еще записать их в массив и циклом, но в принципе одно и тоже.
|
| | |
-
Skeyven | Дата: Воскресенье, 18-08-2013, 10:46:52 | Сообщение # 344 |
Гражданин
загрузка наград ...
Группа: Проверенные
Сообщений: 25
Репутация: 50
Статус: Не на сайте
|
Darcy: "В каких например?". Конкретно в Доте, Инвокер может себе создавать спелы, но не больше двух. Если он создаёт третий, один из старых спелов забывается, и он не может его использовать. Но если он снова захочет его вернуть, то ему возвратят не откатившийся спел, а спел с корректным кд. Т.е. если он дал санстрайк, с кд (просто придумываю, не вспоминаю реальных цифр) 40 сек, потом в течении 20 секунд создавал другие спелы и пользовал их, а затем успел, скажем ещё через 5 сек сотворить себе санстрайк, то у санстрайка ещё будет 15 секунд до завершения охлаждения кд. Надеюсь, не намудрил и всё понятно. Сам подозреваю, что это делается как-то через спелл-бук, но не разобрался. _____________
стражNIK, не обязательно для каждой области создавать отдельный триггер, AncientPenguin прав - можно их в один триггер засунуть и всё будет ок. _____________
xkalex9527, возможно, ты просто не до конца понял отданные тебе советы (я так-то тоже), но я бы сделал так. Событие: Общее событие отряда - Начинает строительство. Условие: Или. Несколько условий. Перечисляешь условия для каждой из твоих областей. Условия типа: Логическое сравнение. Боевая единица - Юнит В Области. (Твоя область) - содержит - Реакция на событие - Сооружает структуру. Действие. Ну тут ты делай, что хочешь - запоминай область. Запускай другие тригеры, запрещающие там строить или что ты там задумал.
Это будет срабатывать уже тогда, когда рабочий только-только начнёт строительство. Если надо, чтобы срабатывало только после завершения, то измени событие на "Завершает строительство" а условие на "Построенная структура". Но в этом случае если 2 рабочих разных фракций одновременно начнут строительство, то территория перейдёт во владение того, кто первый закончит строительство. Но при этом второй свою работу всё же закончит :) Если что-то непонятно, спрашивай. Я могу ещё подробней. _____________
У меня тоже вопрос. Создаю крипов (нейтрально враждебных) и отправляю их через атаку в область. В этой области есть тавер. Крипы нападают на всё, что видят, кроме тавера. Даже если кроме него там вообще ничего нет. * Дело не в том, что через 7 секунд они отменяют атаку - я им периодически об этом напоминаю. * Дело не в несовместимости типа цели "Здания" и типа разрешённых к атаке целей. * Дело не в "Дистанции получения приказа на атаку" - пробовал направлять прямо на точку, где стоит тавер. (Дистанция равна 200). Они хоровод в упор к нему водят и не бьют. * Приоритет тавера (чтобы ни значила эта хрень) выставил на всякий случай на 20. До этого стояла на 1. Ни то, ни другое не помогает, крипам просто пофиг на тавер.
|
| | |
-
S@ntaria | Дата: Воскресенье, 18-08-2013, 11:26:31 | Сообщение # 345 |
Король Мёртвых
загрузка наград ...
Группа: Модераторы
Сообщений: 2183
Статус: Не на сайте
|
Цитата (Skeyven) если он дал санстрайк, с кд (просто придумываю, не вспоминаю реальных цифр) 40 сек, потом в течении 20 секунд создавал другие спелы и пользовал их, а затем успел, скажем ещё через 5 сек сотворить себе санстрайк, то у санстрайка ещё будет 15 секунд до завершения охлаждения кд. Надеюсь, не намудрил и всё понятно. Вообщем нужно менять спеллы не удалением/добавлением, а блокированием/разблокированием, тогда кд сохраняется (Функция Игрок - Enable\Disable ability)Добавлено (18-08-2013, 11:26:31) ---------------------------------------------
Цитата (Skeyven) У меня тоже вопрос. Создаю крипов (нейтрально враждебных) и отправляю их через атаку в область. В этой области есть тавер. Крипы нападают на всё, что видят, кроме тавера. Даже если кроме него там вообще ничего нет. Скинь на карту с указанной проблемой, так довольно сложно догадаться
|
| | |
-
Skeyven | Дата: Воскресенье, 18-08-2013, 14:40:46 | Сообщение # 346 |
Гражданин
загрузка наград ...
Группа: Проверенные
Сообщений: 25
Репутация: 50
Статус: Не на сайте
|
S@ntaria, спасибо за разъяснения насчёт блокирования/разблокирования спелов. Дам тебе плюсик в карму, как только это станет возможным. _________
По поводу второй моей проблемы, я уже разобрался. Нейтральные силы любой природы (пассивные, враждебные, дополнительные) почему-то никогда не атакуют строения, видимо, исходя их своих религиозных соображений. (А я-то думал, что в той же DotA им специально запрещалось бить вышки). Проблема решается только путём передачи этих войск компьютерному игроку числом от 1 до 12. Я так понимаю, количество игроков нарастить нельзя? Жаль. Выходит, что если ты хочешь сделать карту с крипами, сражающимися на стороне разных игроков и не являющихся их собственными войсками, то максимальное число игроков, которые смогут поиграть в такую карту - 10 (2е отдаются командам). Хочешь сделать 3 команды, то игроков вообще останется 9, по 3 на тиму. А это в некоторых сценариях уже мало. В общем, у меня депрессия.
|
| | |
-
S@ntaria | Дата: Воскресенье, 18-08-2013, 15:19:19 | Сообщение # 347 |
Король Мёртвых
загрузка наград ...
Группа: Модераторы
Сообщений: 2183
Статус: Не на сайте
|
Skeyven, не знаю, у меня они атакуют здания. Нейтрально-враждебный по-крайней мере точно
|
| | |
-
xkalex9527 | Дата: Воскресенье, 18-08-2013, 20:22:37 | Сообщение # 348 |
Раб
загрузка наград ...
Группа: Проверенные
Сообщений: 13
Репутация: 18
Статус: Не на сайте
|
Skeyven, спасибо, но уже по другому сделал) Через массив. Я просто не понимаю как запомнить ту переменную, в которой построил юнит. --------------- Еще вопросик есть, как всё таки триггерно перевести спел у юнита в режим автокаста? Мне надо, чтобы при постройке юнита у него спел сразу был в режиме автокаста.
|
| | |
-
Skeyven | Дата: Вторник, 20-08-2013, 16:19:57 | Сообщение # 349 |
Гражданин
загрузка наград ...
Группа: Проверенные
Сообщений: 25
Репутация: 50
Статус: Не на сайте
|
xkalex9527, убедись, что спел действительно можно применять автоматически. :) Далее, создай триггер с событием на покупку/завершение подготовки юнита, о котором идёт речь. Далее создавай действия серии "Боевая единица - Результат приказа без цели". После этого в окне уточнения приказа нужно отыскать заклинание, на котором основан оговоренный спел. Упорядочивание идёт по алфавиту имён оригинальных владельцев этих спелов. Там, где включается автокаст, перед самим названием способности, после имени его владельца, должно стоять слово "применять" или "включить автоматическое применение". Как-то так. Если, по каким-то причинам, тебе это не поможет - пиши. Будем разбираться. _______
S@ntaria, тогда поищу в настройках поведения. Если кто знает, где именно искать, не стесняйтесь, подсказывайте :)Добавлено (20-08-2013, 11:46:05) --------------------------------------------- xkalex9527, не понял только вот что, по поводу области проблема ещё актуальна, или уже нет? Добавлено (20-08-2013, 16:19:57) --------------------------------------------- Вопрос: как закрепить двух игроков за компьютером так, чтобы при создании карты не было видно, что они занимают слот. Если выставить "Резерв", то триггеры создающие для них юнитов, отдают этих юнитов вместо них следующему за ними по списку игроку. Если выставить "Нет", то он выпадает из настройки союзов во вкладке "Кланы".
|
| | |
-
xkalex9527 | Дата: Среда, 21-08-2013, 17:55:29 | Сообщение # 350 |
Раб
загрузка наград ...
Группа: Проверенные
Сообщений: 13
Репутация: 18
Статус: Не на сайте
|
Skeyven, попробую, спасибо. А на счет области:
Событие: Юнит входит в область 1 Юнит входит в область 2 ... Юнит входит в область 40 И т.д. Условие: Тригеринг юнит = здание. Действие: Xreg=Обасть в которую вошел юнит. (Вот не знаю, как занести в переменную эту область, чтобы не делать для каждой области if else)
|
| | |
-
Skeyven | Дата: Воскресенье, 25-08-2013, 08:07:29 | Сообщение # 351 |
Гражданин
загрузка наград ...
Группа: Проверенные
Сообщений: 25
Репутация: 50
Статус: Не на сайте
|
Давно я не заходил сюда, оставил xkalex9527 без ответа. Наверно уже сам разобрался, но если нет - пишу ответ.
xkalex9527, беда в том, что 1 раз перечислить всё равно придётся. Если это единственный триггер, в котором ты планируешь обращаться к этим областям, то да, можешь перечислять все if else. Но лучше, конечно, смотреть в будущее, мало ли что. Я посоветовал бы тебе инициализировать массив ёмкости 40 (ты вроде говорил, что уже инициализировал его). При инициализации карты: array[0] = область1 array[1] = область2 ... array[39] = область40. Тогда всякий раз, когда тебе нужно будет обратиться к этим областям, тебе лишь придётся организовать цикл-счётчик. (В общем-то, даже с событием это можно провернуть - не уточнять все области - а общее событие отряда - отряд входит в область. В этом случае начало блока действия следует начать с проверки областей). Ну так вот, как это делается. Есть 3 действия (для цикла целой А; для цикла целой В; для цикла целой переменной). Принципиального отличия между ними нет. В первых двух тебе уже выделяют переменную, в третьем ты должен создать переменную сам. Лучше чтобы больше нигде эти переменные не использовались, иначе если запустятся два параллельных цикла с одной переменной-счётчиком, то результат может быть неожиданным, и вряд ли корректным. Внутри цикла будет тело, в котором ты и устроишь проверку на свою область через if else. Смотри чтобы входящий юнит находился в области. Структура: Логическое сравнение | Боевая единица - Юнит в Области | array[для цикла целой А] содержит (Входящий юнит) | равно Да. Разумеется, вместо А может стоять "для цикла целой B" или просто твоя отведённая под цикл целая переменная без всяких слов. В теле условия устанавливаешь переменную "твоя переменная" = array[для цикла целой А]. Лучше всего, чтобы в теле условия после присвоения переменной ещё стояло "пропустить оставшиеся действия" чтобы освободить цикл от необходимости проходить все свои инициализации до конца.
Очевидно, что такой способ будет корректно работать только при условии, что области не скрещиваются между собой. Иначе из двух одновременно занятых областей мы будем запоминать или имеющую в массиве меньший индекс (если сделаем "пропустить оставшиеся действия"), или больший, если оставшиеся действия пропускать не станем.
|
| | |
-
xkalex9527 | Дата: Понедельник, 02-09-2013, 01:24:21 | Сообщение # 352 |
Раб
загрузка наград ...
Группа: Проверенные
Сообщений: 13
Репутация: 18
Статус: Не на сайте
|
Как увеличить юниту атаку (Не основной стат., а именно атаку)? Через триггер. Гуи.
|
| | |
-
oxAlexo | Дата: Понедельник, 02-09-2013, 01:34:07 | Сообщение # 353 |
Раб
загрузка наград ...
Группа: Проверенные
Сообщений: 13
Репутация: 18
Статус: Не на сайте
|
Skeyven, Да я уже разобрался :) По другому немного сделал, но очень похоже на твой совет. И всё равно спасибо, очень помог.
|
| | |
-
Skeyven | Дата: Понедельник, 02-09-2013, 11:32:26 | Сообщение # 354 |
Гражданин
загрузка наград ...
Группа: Проверенные
Сообщений: 25
Репутация: 50
Статус: Не на сайте
|
xkalex9527, создай способность на основе предмета "Боевые когти", они наращивают именно атаку, не изменяющую статы. В своём триггере просто надели юнита этой способностью и всё - она не будет отображаться ни в панели спеллов, ни тем более не займёт места в инвентаре. Но прямо возле показателя атаки героя должны появиться зелёные числа через плюс. Если возникнут проблемы, обрати внимание на графу относится к герою, воину, предмету. По-моему лучше сделать к воину, но если что попробуй разные варианты.
И мой вопросик: создал юниту поддерживаемую способность на основе "Жара преисподней" Иллидана. Поставил ей кулдаун (в оригинале безоткатная). Кулдаун активируется после включения способности, т.е. её некоторое время не то что нельзя использовать повторно, а нельзя даже выключить. Мне как раз надо, чтобы кулдаун запускался после выключения способности. Можно ли с этим бороться, или придётся занулить кулдаун и делать его искусственно через способность-пустышку?
Да, и ещё. S@ntaria говорил, что помимо "отнять/дать" способность, можно как-то "блокировать/разблокировать", а я что-то туплю и всё никак не воткну где эту возможность искать?))) Подскажите глупцу.
|
| | |
-
oxAlexo | Дата: Вторник, 03-09-2013, 20:06:55 | Сообщение # 355 |
Раб
загрузка наград ...
Группа: Проверенные
Сообщений: 13
Репутация: 18
Статус: Не на сайте
|
Skeyven, Да это я знаю, я хотел бы чистый дамаг увеличить, а не дополнительный.Добавлено (03-09-2013, 20:06:55) --------------------------------------------- Всё, уже сам сделал.
|
| | |
-
Skeyven | Дата: Среда, 04-09-2013, 10:01:39 | Сообщение # 356 |
Гражданин
загрузка наград ...
Группа: Проверенные
Сообщений: 25
Репутация: 50
Статус: Не на сайте
|
oxAlexo, раз сделал, поделись открытием - как.
И по моим вопросам ни у кого соображений нет? 1) Как сделать чтобы способность основанная на "Жаре Преисподней" уходила в кулдаун не после применения, а после отмены своего действия? 2) Как закрепить игровое место за компьютером так, чтобы при создании игры не было видно, что эти игроки занимают слот. (В DotA стороны Часовые и Плеть закреплены за Игроком 1 и Игроком 7, но, создавая карту, мы этих слотов не видим). 3) Как блокировать и разблокировать способности?
|
| | |
-
oxAlexo | Дата: Среда, 11-09-2013, 14:46:53 | Сообщение # 357 |
Раб
загрузка наград ...
Группа: Проверенные
Сообщений: 13
Репутация: 18
Статус: Не на сайте
|
Skeyven, через предмет. "Дать предмет юниту, по типу книжки" и он сразу используется, увеличивая атаку. Через "Дать способность" не получилось, не прибавлялась атака. Еще есть несколько вопросов: 1) Есть ли такая переменная, которая содержит атаку юнита? Ну понятно что переменная есть, но как она называется и где её найти. Мне нужно выдать игроку столько золота, сколько атака у убитого юнита. 2) Как включить/выключить во время игры передачу ресурсов?
|
| | |
-
Skeyven | Дата: Четверг, 12-09-2013, 09:41:35 | Сообщение # 358 |
Гражданин
загрузка наград ...
Группа: Проверенные
Сообщений: 25
Репутация: 50
Статус: Не на сайте
|
[url=javascript://]oxAlexo[/url], спасибо, мне это тоже пригодится. По твоим вопросам:
1) Я в своё время облазил всю сеть и убедился в том, что к атаке юнита, как к переменной или прочему числовому явлению, у картодела доступа нет. Во всяком случае, так говорят люди с опытом, сам я тоже ничего не нашёл. Поэтому во всех работах, где нужно, например, показывать количество наносимого урона в виде плавающего текста над головой раненого юнита, используется отлов здоровья. Т.е. мы запоминаем сколько здоровья было у юнита до атаки, и следим, как это значение меняется. Сам по-себе этот метод не без дыр. Да и вам он вообще не подойдёт. Скорее всего вам придётся создать формулу, по которой будете подсчитывать атаку, исходя из базовой атаки, основной характеристики героя и перечня всех способностей, повышающих ему урон. Не самый удобный и быстрый метод. Если придумаете что-то проще, делитесь размышлениями. 2) Не понял вопроса :)
И всё таки, может уже кто-нибудь объяснит мне, как триггерно скрыть/показать изображение способности героя (не удалять/добавлять, ибо нужно сохранить корректную информацию о состоянии кулдауна).
|
| | |
-
S@ntaria | Дата: Четверг, 12-09-2013, 10:10:35 | Сообщение # 359 |
Король Мёртвых
загрузка наград ...
Группа: Модераторы
Сообщений: 2183
Статус: Не на сайте
|
Цитата (oxAlexo) 1) Есть ли такая переменная, которая содержит атаку юнита? Нет Цитата (Skeyven) 2) Как включить/выключить во время игры передачу ресурсов? Используй функцию <Игра - Set Map Flag> Цитата (Skeyven) 3) Как блокировать и разблокировать способности? Цитата (S@ntaria) Функция Игрок - Enable\Disable ability Цитата (Skeyven) 2) Как закрепить игровое место за компьютером так, чтобы при создании игры не было видно, что эти игроки занимают слот. (В DotA стороны Часовые и Плеть закреплены за Игроком 1 и Игроком 7, но, создавая карту, мы этих слотов не видим). Сценарий ==> Свойства игрока. В колонке "Управляет", нужно поставить Резерв., если не ошибаюсь. Цитата (Skeyven) 1) Как сделать чтобы способность основанная на "Жаре Преисподней" уходила в кулдаун не после применения, а после отмены своего действия? Цитата (Skeyven) придётся занулить кулдаун и делать его искусственно через способность-пустышку
|
| | |
-
oxAlexo | Дата: Четверг, 12-09-2013, 12:49:11 | Сообщение # 360 |
Раб
загрузка наград ...
Группа: Проверенные
Сообщений: 13
Репутация: 18
Статус: Не на сайте
|
Skeyven, Спасибо, попробую формулу сделать, раз такие дела. На 2-ой уже верно ответил S@ntaria. S@ntaria, За что тебе огромное спасибо, сам не нашел бы.
|
| | |