Комментарии проекта WarCraft 3
13

Пик расы через чат

» WarCraft 3
Сделал наработку выбора расы через чат для стандартного милли,но для мили требуется триггер "Ввести условия победы/поражения" и до пика кто-то точно проиграет из-за отсутствия юнитов. Как это можно починить?
eriel222 #1 - 32 минуты назад 0
Пушистый:
eriel222, случайность зависит от выпадения числа. Взять целочисленную, отвечающую за случайность, назначить ей значение от 1 до 8 (случайно; 8 - для примера) и пройтись по всем вариантам значений циклом и все, а дальше юнитов создавать.
а если через переменную случайное число?
Пушистый #2 - 2 часа назад 0
eriel222, случайность зависит от выпадения числа. Взять целочисленную, отвечающую за случайность, назначить ей значение от 1 до 8 (случайно; 8 - для примера) и пройтись по всем вариантам значений циклом и все, а дальше юнитов создавать.
eriel222 #3 - 2 часа назад 0
Пушистый:
eriel222, можно ведь проще через индексы, чтобы не создавать множество переменных, хоть и такое решение имеет место быть (главное помнить, что начальное значение целочисленной равно 0).
это то ладно,но самый главный вопрос: как случайно выдать "расу"?
Пушистый #4 - 2 часа назад (отредактировано ) 0
eriel222, можно ведь проще через индексы, чтобы не создавать множество переменных, хоть и такое решение имеет место быть (главное помнить, что начальное значение целочисленной равно 0).
eriel222 #5 - 3 часа назад 0
Пушистый:
eriel222, например, pick[3] = неправда, то выбрать расу для игрока (ну, как выбрать: создать ему юнитов).
Нет,нет. Я создаю 4 переменных pick(для каждого из игроков) , и если введенная команда = раса,то устанавливаю pick на номер игрока.А если после 10 секунд у кого-то pick не равна номеру игрока,то нужно выдать юнитов случайно. В этом то соль,что я не могу понять как их выдать случайно
Пушистый #6 - 3 часа назад 2
eriel222, например, pick[3] = неправда, то выбрать расу для игрока (ну, как выбрать: создать ему юнитов).
eriel222 #7 - 3 часа назад 0
Пушистый:
eriel222, сделать массив логических переменных (индексами будут номера или индексы игроков). Если игрок сделал выбор, то приравнивать к значению (например, назвать "игрок не сделал выбор" = неправда). И отталкиваться от этого во время создания юнитов (анализировать логические переменные, связанные с выбором игрока).
А можно сделать так: Игрок сделал выбор - Перменная pick[0] = [1] .Прошло 10 секунд и если у кого например игрока 3 переменная pick3[0] , то выбрать ему расу?
Пушистый #8 - 3 часа назад 2
eriel222, сделать массив логических переменных (индексами будут номера или индексы игроков). Если игрок сделал выбор, то приравнивать к значению (например, назвать "игрок не сделал выбор" = неправда). И отталкиваться от этого во время создания юнитов (анализировать логические переменные, связанные с выбором игрока).
eriel222 #9 - 4 часа назад 0
Пушистый:
eriel222, например, у тебя есть 8 рас: 4 стандартные + тролли, иглогривы, огры, големы. Игрок не сделал выбор, в результате чего запускаем триггер с действиями: установить значение переменной равным случайному числу от 1 до 8 (переменная должна быть целочисленной), а потом проходиться условиями. Если число равно 1, то создать юнитов для расы альянс (в списке действий для режима сражения такая функция даже есть) в указанной точке и т.д. Следует уточнить, что для нестандартных рас расписывать создаваемых юнитов придется самостоятельно (например, создать домик троллей + 5 троллей-рабочих).
Увы, в игре игроку расу не назначить функцией. Можно лишь создать необходимых юнитов.
А как угадать для какого игрока создать юнитов? Ведь может случится,что даже выбравшему расу выпадет вторая
Castwork #10 - 7 часов назад 3
Сделать целочисленную переменную "i", и увеличивать ее значение на 1 (i=i+1) после того, как игрок выбрал расу. Когда i будет равна количеству игроков - ввести условия поражения
Пушистый #11 - 13 часов назад (отредактировано ) 3
eriel222, например, у тебя есть 8 рас: 4 стандартные + тролли, иглогривы, огры, големы. Игрок не сделал выбор, в результате чего запускаем триггер с действиями: установить значение переменной равным случайному числу от 1 до 8 (переменная должна быть целочисленной), а потом проходиться условиями. Если число равно 1, то создать юнитов для расы альянс (в списке действий для режима сражения такая функция даже есть) в указанной точке и т.д. Следует уточнить, что для нестандартных рас расписывать создаваемых юнитов придется самостоятельно (например, создать домик троллей + 5 троллей-рабочих).
Увы, в игре игроку расу не назначить функцией. Можно лишь создать необходимых юнитов.
eriel222 #12 - 13 часов назад 1
Пушистый:
Дать всем игрокам сделать выбор расы в определенный промежуток времени, после истечения которого (если игрок не сделал выбор, то сделать случайный выбор за него) применить правила для сражений.
А как сделать случайный выбор расы?
Пушистый:
Дать всем игрокам сделать выбор расы в определенный промежуток времени, после истечения которого (если игрок не сделал выбор, то сделать случайный выбор за него) применить правила для сражений.
получается,мне нужно выставить расу как переменную,и когда пройдет к примеру 10 секунд,то выберется рандом число от 1 до 5 (допустим) , что и выберет расу?
Пушистый #13 - 13 часов назад 5
Дать всем игрокам сделать выбор расы в определенный промежуток времени, после истечения которого (если игрок не сделал выбор, то сделать случайный выбор за него) применить правила для сражений.
17

Warcraft 3 Patch 1.29.2

» WarCraft 3
Близзы все еще пытаются залатать дыры, появившиеся в следствии выката патча, который непонятно как получил коммит.

Читать далее...
Pashka5 #15 - 2 часа назад 0
Raised #16 - 3 часа назад 1
прикреплены файлы
Pashka5 #17 - 3 часа назад (отредактировано ) 0
GetRandomReal и Int генерируют не случайные числа, а всегда одни и теже....начиная с 83-56-2 и так далее если начинать от 1 до 100.Если от 1-1000 то 853-5** и так далее. Даже реал 0-1 будет 0.83-0.56-.0.2
1

Добавление способности через native

» WarCraft 3
Парни, замутите пожалуйста пример добавления способности, которая не пропадет после морфа. Нашел что это делается через натив в этой статье xgm.guru/p/wc3/abilities пункт 3.1 но не могу понять как реализовать
PT153 #1 - 2 часа назад (отредактировано ) 4
call UnitAddAbility(unit_u, ability_rawcode)
call UnitMakeAbilityPermanent(unit_u, true, ability_rawcode)
Если у юнита уже есть способность с равкодом ability_rawcode, то достаточно одного
call UnitMakeAbilityPermanent(unit_u, true, ability_rawcode)
Равкод способности (и не только) можно глянуть в Редакторе объектов, нажав Ctrl+D.
1556

Иконки на заказ

» WarCraft 3
Вы хотели бы использовать в своей карте оригинальные иконки, но не можете участвовать в их реализации? Эта тема для вас. Здесь вы сможете оставить заявку для создания необходимых вам иконок.

Читать далее...
ClotPh #1552 - 3 часа назад 0
Alexsander, да не за что, если бы снимок экрана был в БОЛЬШОМ разрешении, как и была просьба, был бы еще больше доволен. Но это мелочь
Меня бы кто когда крокодилом уже удовольствовал.
Alexsander #1553 - 4 часа назад 2
Большое спасибо, то что надо - я доволен.
ClotPh #1554 - 16 часов назад 0
Alexsander, пойдет, только иконка чуть похуже качеством, т. к. пришлось ее из 49 пикселей до 64 растянуть.
Но, думаю, это не смертельно, выглядит вполне хорошо. Забирай
прикреплены файлы
Alexsander #1555 - 18 часов назад 1
Такой скриншотик пойдет.
прикреплены файлы
ClotPh #1556 - 19 часов назад 0
Alexsander, сделай снимок экрана в большом разрешении, я (или, думаю, в крайнем случае кто-то еще) тебе иконку обрежет и сделает
20

Оптимизировать способности РО НЕ через Widgetizer 1.9.0.3?

» WarCraft 3
Короче, ситуация такая. На данный момент для оптимизации карты используются True Optimization Tool, Warcraft III Widgetizer 1.9.0.3 и WC3 map optimizer.

Читать далее...
ClotPh #17 - 3 часа назад 0
16GB, rusmaps.ucoz.ru/load/6-1-0-24 ?
ок, если проблема после моих вышеописанных действий не решится - беру на заметку
16GB #18 - 11 часов назад 2
МБ юзать Wc3SLKOpt?
Bergi_Bear #19 - 13 часов назад 2
ну да, в принципе логично
ClotPh #20 - 14 часов назад (отредактировано ) 0
ТАК!!! Кажись, есть у меня наконец четкое предположение, из-за чего там порнуха после оптимизации.
Просто прошу, кому не влом, внимательно прочесть вышенаписанное и прокомментировать.
Проверять конкретно ща времени уже нет, т. к. глобально делается новая версия, но перед ее выпуском - будет проверено.
Буквально до последней версии всякие дамми-способности, которых sic! - изначально в Редакторе объектов ни у кого не стояло, но которые были нужны для всяких даммикастов, выдачи потом триггерно создаваемым саммонам и т. п. - прелоадились у стоящих изначально на карте зданий, у которых они никаким способом не могли быть бы обнаружены или использованы.
Такая система спокойно действовала, но была сочтена не слишком удобной и православной, поэтому появилась попытка начать перейти на новую.
Ща при загрузке карты есть ожидание в темноте, примерно через 1-4 секунды после ее загрузки, что ли, фактически доп. время загрузки, когда создаются нестандартные эффекты, юниты и т. д., которые при создании вызывают небольшой лаг в первый раз, чтобы этого лага в игре не было - лучше подождать лишнее время, чем потом раздражаться микролагами.
И вот туда было добавлено - одному из прелоадящихся юнитов, который после этого сразу удалялся, перед его удалением стали добавляться и удаляться дамми-способности, которых ни у кого не было в РО. Вот именно в этой версии такие новые появились и с них и началось.
От лага-то это благополучно в игре избавило, но вот Widgetizer, похоже, видит такие абилы Unused и/или неправильно оптимайзит их... вот и краш как минимум после Remove Unused точно, а, может, и при правее только галочке.
Сделаю прелоад по "старой" системе и посмотрим. Все новые абилы тоже пока сую по "старой".
10

Паучьи коконы

» WarCraft 3
Ретекстур модели кокона

Читать далее...
sleep #10 - 5 часов назад 0
crusader556, что бы используя лишь одну текстуру сделать в патче 26 около 12 новых цветов у юнита и 24 новых цвета в 29 патче.
1 -

Система рынка (продажа и покупка итемов)

» WarCraft 3
В этой наработке представлена возможность использовать полноценный магазин. Изначально магазин пустой, но вы можете заложить вещичку в магазин, и она тут же появится на полке. Или наоборот, купив артефакт, он тут же пропадает с магазина.

Читать далее...
WPACM #1 - 5 часов назад 0
Интересно...
7

War of Leaders 0.0.7.f

» WarCraft 3
Заброшенный остров. Города давно пустуют, но всё таки есть те, которые готовы дать отпор. Вы лидер, покажите свое превосходство.
ОБТ

Читать далее...
molot39 #6 - 7 часов назад (отредактировано ) 1
Kannon:
Ввели оригинальный геймплей, вскроем будущем будет новый ланд и много чего интересного.
Примем баги, предложения и прочее. Спасибо.
Евгений3 #7 - 13 часов назад 0
q1
13

Nine Heroes Remake 1.1.4 (akt I)

» WarCraft 3
Ремейк старой карты 2008 года "9 Героев", приятной игры!
Возвращение старой карты, 10 лет прошло и вот она, но вышло не ее продолжение, а ее ремейк, речь идет о забытых, но в свое время популярных, 9-ти героев. В карте представлено не мало новшеств, улучшение ландшафта, лора вселенной, изменение персонажей, и разумеется новые способности, каждый из героев имеет свой уникальный геймплей, а так же появилось множество заданий и вариативность их выполнения, опробуйте и напишите свое мнение по поводу этого ремейка =)
by IPO N7
Новая версия, подробное описание героев + обзор

Читать далее...
Grey voolf #13 - 8 часов назад 1
kommentator, Вот и новая версия карты
UrsaBoss #1 - 13 часов назад 0
nvc123
сделал
nvc123 #2 - 20 часов назад 0
вынеси все равкоды в константы/дефайны в самое начало библиотеки и добавь комментарии к ним
6

Поддержка cJass

» WarCraft 3
Всех приветствую. Недавно обнаружил для себя, что cJass на 1.29 патчах не работает (JNGP на них не запускается и пришлось перейти на WEX). cJass там не поддерживается, что жаль, так как очень необходимы дефайны и прочие преимущества cJass, чего в вурсте нет. Есть ли какой-либо способ прогнать код карты под новые патчи на компиляторе отдельно, а потом запихнуть в нее уже готовый (чтобы фичи cJass поддерживались)?
PT153 #5 - 14 часов назад 0
Пушистый:
PT153, (old) - старые версии файлов, которые пришлось заменить. Чуда не получилось(
Это лучше спросить у разрабов JNPG:R, может регистрацию новых плагинов нужно делать как-то в .exe файле, либо отредактировать поля в реестре. Я, когда юзал WEX, удалил WurstScript (он в редакторе не отображался), так как не использовал его, потому подумал, что можно просто вставить папку и всё заработает. :)
tesh вообще лучше новый скачать отсюда. JassHelper вроде везде одинаковый, последнюю версию можно взять тут.
Пушистый #6 - 16 часов назад 0
PT153, (old) - старые версии файлов, которые пришлось заменить. Чуда не получилось(
прикреплены файлы
3

Модель Рыцаря

» WarCraft 3
Кто нибудь знает модель рыцаря желательно как в героях 5, что бы бил копьем.но не эта
Naadir #3 - 14 часов назад 0
Эх... Теперь самому понадобилась. Ну ладно, пошёл расчехлять мдлвиз.
3

Вопрос про иконки.

» WarCraft 3
У меня есть иконки формата .PNG и .TGA. Как их конвертировать в BLP?
PT153 #1 - 16 часов назад (отредактировано ) 3
Скачай ещё BLP Lab, там больше возможностей конвертирования, а также оптимизация уже сделанных .blp.
bOrissko #2 - 19 часов назад 5
Тебе нужна программа Button Manager, на сайте по-моему есть.
XGM Bot #3 - 19 часов назад 4
Похожие вопросы:

» ответ
Будет на несколько сек грузится быстрее, будут меньше просадки фпс при вручении абилок если они неподгружены и так далее.
Вес упадет немного, но упадет.

5

Монолит

» WarCraft 3
В карте Монолит частенько видишь, что крипы Монолита начинают бегать туда-сюда и перестают нападать. Особенно это заметно на примере ящериц. С чем это связанно, кто знает? Может, можно что-то подправить в ИИ?
orc01 #3 - 18 часов назад 0
Naadir:
orc01:
Ну всё правильно. Неуязвимые строения не поддаются логике осады.
А я тогда всё никак не мог вдуплить, где же ошибка. В принципе. необходимости делать Неуязвимой не было - это было больше для дебага.
Вот так дебаг создавал интересные баги...
Naadir #4 - 18 часов назад (отредактировано ) 0
orc01:
Ну всё правильно. Неуязвимые строения не поддаются логике осады.
orc01 #5 - 18 часов назад 0
Naadir:
veyman, разлогинься.

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

писал бы свой АИ лучше
Да даже если самому писать АИ - довольно запарная штука. У меня вот трабла возникла - написал АИ тригерный, всё работает, но тут фигакс - они видят неуязвимое строение. принадлежащее нам и не знают, что с ним делать. начинают отступать...
3

Удаление событий из триггера.

» WarCraft 3
У меня такой вопрос, если в триггер можно добавить событие, то есть ли возможность его удалить (аналогичный вопрос по условиям и действиям)?
MATRITSA #1 - 18 часов назад 1
Событие удалить нелизя
Удалить можно тока то событие которое привязано к юниту потому что удаляя юнита удаляеца событие
DracoL1ch #2 - 19 часов назад 2
TriggerRemoveAction
TriggerRemoveCondition
XGM Bot #3 - 19 часов назад 1
Похожие вопросы:

» ответ
Это давно обсуждалось. вопрос удаление события
Создание триггер события — 3 утечки. Стереть переменный триггер, и минус 1. Получается остается 2 утечки.
Вот если удалить юнита (Remove unit), то он стирается из события другого триггера?
Ответ: Да есть способ: вот шпаргалка
» ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
» ответ
События триггера никак нельзя удалить, можно только удалить триггер (с кондишенами и акшенами).
А кстати вот - xgm.guru/p/wc3/venomanser
Будет несомненно полезно, как правильно удалять триггеры.
Да и вовсе полезно для общего развития.
» ответ
нет понятия "подчиненный". Destroy триггера не чистит ни условия, ни действия, если вручную их не разбить через DestroyTriggerAction/Condition. Только вот те же Condition кэшируются и переиспользуются, а Action висят в памяти мертвым грузом при каждом создании.

20

Не работает модель? - Вам сюда!

» WarCraft 3
Данная тема предназначена для того, чтобы оставлять здесь просьбы об исправлении багов/недочётов/ошибок в модели или её доработке, а также исправлении неработоспособности модели в игре.

Читать далее...
Versus6 #20 - 18 часов назад 0
Глючит редактор изза модели, помогите пожалуйста
нехочет открываться
прикреплены файлы
15

Гибель Дренора (версия 2.2.8)

» WarCraft 3
Кампания повествующая о бегстве дренеев, войне орков с дренеев и гибели Дренора.

Читать далее...
Я любимый #15 - 19 часов назад 0
Но если всё же сделать краткий учёт через диалоги или перемешать немного диалогов и описания?
Я пробовал, в этой кампании получилось криво, так что это менять не буду, а то получится хуже.
Kannon:
Можно заменить фон сзади на космос к примеру, а вместо логотипа Альянса поставить логотип войск Дренора.
Попробую переделать.
Kannon:
Можно попробовать поискать замены на некоторых сайтах, я одну-две ссылки могу кинуть с примерами (более менее неизвестные сайты).
Буду рад.
8

Сравнение кода по производительности

» WarCraft 3
У меня есть функция, которая срабатывает каждые 0.05 секунд. Она даёт или обновляет ауру ближайшим наземным миньонам. Для этого она проходит через их массив, где будет не более ~60 занятых ячеек.
» Код функции
caster - источник ауры, p - игрок, к которому был послан caster, range_image - индикатор радиуса ауры, p.minions - массив миньонов, m.minion - ссылка на юнита, который связан со структурой Minion, abildata.range - радиус ауры, call BuffAirSupport.start - старт или обновление баффа ауры.
method cooldownEnd takes nothing returns nothing
    local integer a = 0
    local Minion m = caster
    local CustomPlayer p = m.foe
    call SetImagePosition(range_image, GetUnitX(m.minion), GetUnitY(m.minion), 0.)
    loop
        set m = p.minions[a]
        if IsUnitType(m.minion, UNIT_TYPE_GROUND) and GetDistanceUnits(caster.minion, m.minion) <= abildata.range then
            call BuffAirSupport.start(m, data, caster.owner, armor)
        endif
        set a = a + 1
        exitwhen a > p.minions.top
    endloop
endmethod
Я подумал, что можно это сделать с помощью группы.
((кат Версия через группу
((код JASS
static method filter takes nothing returns boolean
local Minion m = GetUnitUserData(GetFilterUnit())
if IsUnitType(GetFilterUnit(), MinionClass) and IsUnitType(m.minion, UNIT_TYPE_GROUND) and m.out_of_spawn then
call BuffAirSupport.start(m, Data, Owner, Armor)
endif
return false
endmethod

Читать далее...
PT153 #7 - 19 часов назад 2
pro100master, я знаю что 1 с = 1000 мс, и именно по этому у моего таймера период в 50 мс, но я вообще не понимаю, как это относится к моему вопросу. Вопрос о том, какая реализация быстрее.
DracoL1ch #8 - 19 часов назад 6
любой штатный способ быстрее любого велосипеда. группа будет быстрее перебора массива юнитов. переменная лучше, чем постоянные GetFilterUnit()
если дашь мне код в чистом жассе, я могу прямо в лайве замеры сделать
4948

Нужна модель? - Вам сюда!

» WarCraft 3
В данной теме вы можете сделать заказы на модели, и по возможности кто-нить сможет вам помочь в реализации данной модели.

Читать далее...
ClotPh #4948 - 19 часов назад 0

Я все понимаю, но вопль дикий... ну неужели доделать крокодила настолько трудно??? я его красить уже хочу в разные цвета и аватары делать... у меня дел хватает... безобразие форменное...
т. е. понятно никто никому ниче не должен и бла-бла-бла ну скажите че хотите взамен и/или сколько
а то неудобно ппц как
лан забейте нервы