0
28
7 лет назад
0

» WarCraft 3 / Покупка в спелбуках

quq_CCCP:
Только юзать способность поставка ресурсов, больше никак.
То есть создавать спелы и сувать в бук придётся?
2
28
7 лет назад
2

» WarCraft 3 / Иниц. глоб. переменных

hashtable hash = InitHashtable( )
По-моему, когда я пытался так написать, меня крашился вар. Тоже самое с CreateRegion().
0
28
7 лет назад
0

» WarCraft 3 / DestroyGroup()

А зачем вообще удалять триггеры?
0
28
7 лет назад
0

» WarCraft 3 / GetTimerUserData

quq_CCCP:
PT153, я тебе кинул такую функцию для таймеров. предеаешь инт в таймер, там будет просто локалка со значением, читай.
Это я понял, спасибо. я не очень хочу использовать мемхак как и любые другие баги вара.
PT153:
SetUserData быстрее доступа в хеш?
Хотелось бы это узнать.
0
28
7 лет назад
0

» WarCraft 3 / GetTimerUserData

quq_CCCP:
PT153, одно обращение к хт = 2 обращения к массиву.
Структуры помогают только когда ты записываешь в хт индекс структуры, по которому и ищеш данные в массивах.
Для переодик таймера я уже кинул пример как еще можно, там вовсе локалки.
widget можно дать кастомное число, и туда я записываю номер структуры. SetUserData быстрее доступа в хеш? Просто я хотел лишь иметь такую же функцию у таймеров.
0
28
7 лет назад
Отредактирован PT153
0

» WarCraft 3 / GetTimerUserData

DracoL1ch:
спойлер - хештаблицы медленнее в сравнении с доступом по массиву. как только ты дописываешь еще пару строк к массиву (т.к. тебе надо вычислить ключ), внезапно хт становится быстрее. так что не мудри
нет ничего быстрее нативок. а каждая строка JASS-кода существенно замедляет работу. Экономия на спичках
Ага, то есть
integer array DATA
...
local integer a = DATA[GetHandleId(timer)]
медленнее чем
hashtable DATA
...
local integer a = LoadInteger(DATA, GetHandleId(timer), 0)
Верно?
Я думаю, что нет, но суть понял, спасибо.
0
28
7 лет назад
Отредактирован PT153
0

» WarCraft 3 / как сделать из обычного юнита героя

Можно дать ему равкод с прописной буквы. В игре будет отображаться как герой (иконкой и прочим), а в редакторе как юнит.
Последствия мне неизвестны.
0
28
7 лет назад
0

» WarCraft 3 / Строение структур

Нука попробуй добавить в action функцию с аргументами!
Ну это ясно, парсер не пустит.
0
28
7 лет назад
0

» WarCraft 3 / Строение структур

quq_CCCP:
Триггеры принимают болекспры - для этого Condition, не соответствие типов при возврате == фатал.
Я убирал Condition, и ничего не вылетало.
А зачем тогда добавлять действия, если они никогда не вызываются?
Меня больше мучает этот вопрос.
0
28
7 лет назад
Отредактирован PT153
0

» WarCraft 3 / Строение структур

quq_CCCP:
TriggerEvalute наследует поток из которого запущен
Я вот так тоже думал, хотел убедиться в этом. А зачем тогда добавлять действия, если они никогда не вызываются?
И это нормально, что TriggerAddAction берёт функцию, которая что-то возвращает?
Ещё вот что интересно. В TriggerAddCondition() можно просто передавать функцию (то есть без Condition), причём даже функцию, которая возвращает что-то отличное от boolean (вроде). Но тут всё же используется функция Condition(). Зачем?
0
28
7 лет назад
Отредактирован PT153
0

» WarCraft 3 / Юниты пропали из меню "Технологии"

Покрутите графу "Тип". Если не поможет, то перезапустите редактор. Если и это не поможет, то уберите галку "Нестандартные технологии" и используйте триггеры.
0
28
7 лет назад
0

» WarCraft 3 / Иконки способностей для предметов

bifurcated:
Создай на основе предметной способности Аура Смерти или любой другой, у которой показывается иконка, поставь в неё все данные другого предмета, убрав лишнее, и войну дай ту и ту способность и будет тебе иконка.
Зачем юзать ауры, когда можно взять готовые болванки, типа Asth или Agyb.
0
28
7 лет назад
0

» WarCraft 3 / Как сделать свиток телепорта из доты?

Darknessay:
Clamp:
Darknessay, есть приказ "оглушён (пауза)", id не помню, но суть в том, что у юнита в паузе именно он
  1. Не приказ, а бафф.
Вообще-то есть такой приказ.
0
28
7 лет назад
Отредактирован PT153
0

» WarCraft 3 / Настройка Канала

Вот тут есть. ОСТОРОЖНО, много рекламы.
Только ручное применение - неизвестно, я так и не нашел инфы по этому.
Тут как всегда локализаторы постарались. В оригинале это Unique Cast, что интуитивно понятно, что значит: если отдавать приказ группе, то заклинание будет использовано только одним юнитом, а не всеми.
0
28
7 лет назад
Отредактирован PT153
0

» WarCraft 3 / Утечка или не утечка.

avuremybe:
Death Time
Это анимация смерти?
Это целочисленное значение РО в поле Art.
0
28
7 лет назад
Отредактирован PT153
0

» WarCraft 3 / Утечка или не утечка.

DracoL1ch:
адрес будет переиспользован, когда объект больше в игре не существует. хендл при этом может и не освободиться - т.е. прошлый останется навсегда "занятым". Реальный адрес никакой роли при этом не играет. RemoveUnit заставляет движок забыть о юните, что иногда чревато, лучше убивать, а потом таймером Remove, либо просто позволить ему разложиться (с тем же эффектом, но стандартная работа игры)
Хм, а если у юнита стоит Can't raise, does not decay, то он сразу разложится, как только пройдёт Death Time?
0
28
7 лет назад
0

» WarCraft 3 / Герою отнимается здоровье днем.

quq_CCCP:
Для начала создай триггер, с событием время истекло, периодический, никаких условий в него не ставь, изначально триггер должен быть отключен.
Зачем же делать периодический триггер? Не лучше ли сделать периодический таймер?
0
28
7 лет назад
0

» WarCraft 3 / Десинк при работе триггера создать боевую единицу

ssbbssc:
делаем для каждого игрока точку в центре его экрана, сверяем координаты с центром игрока - инициатора, если не совпало - скип, совпало - делаем
Только тучку делать не надо.
0
28
7 лет назад
Отредактирован PT153
0

» WarCraft 3 / Добыча ресурсов нестандартными юнитами

Действительно, выдаёт ошибку, но у меня виспы идут вовнутрь и добывают золото.
А, это был обычный рудник.
А зачем создавать кастомный рудник?
С кастомным рудником тоже работает, но я ещё создал кастомный оплетённый рудник. Ошибка всё же выдаётся.
Я понял, о чём речь.
Райтклик работает, а вот приказ через саму способность "Собирать" - нет.
Да, это очень странно. Попробуйте создать кастомную способность "Собирать".
Или, как предлагали выше сделать триггерно. Если отдаётся приказ "Собирать", то без всякой паузы отдавайте приказ "smart".
А последнее не работает. :c
0
28
7 лет назад
0

» WarCraft 3 / Hide unit через GetLocalPlayer() вызовет десинк?

pro100master:
Прозрачность круто но не скрыть прогресс бар хп
Можно выключить преселект.
0
28
7 лет назад
0

» WarCraft 3 / PreloadAbility( integer )

quq_CCCP:
Про лимит ничего не знаю, не достигал его.
Но важно чтобы юнита видели игроки - иначе модели и звуки с иконками и текстом не подгрузятся...
То есть надо подгружать после инициализации?
0
28
7 лет назад
Отредактирован PT153
0

» WarCraft 3 / PreloadAbility( integer )

ScopteRectuS:
PT153, зависит от их максимального уровня. Возможно Вам понадобится подгружать не 100500, а уже 50250 способностей.
Добавлять-то можно во время инициализации. Я о том, что у юнита возможно есть лимит способностей. А тогда их и надо удалять (Ваш вопрос).
0
28
7 лет назад
Отредактирован PT153
0

» WarCraft 3 / PreloadAbility( integer )

Я про эток:
call PreloadGenClear()
call PreloadGenStart()
call TriggerSleepActions(2.00)
call PreloadGenEnd("save//mydata.pld")
Вызываем этот код пред созданием героя, чуствуем просадку фпс, побегали, покастовали спеллы (вейт нужно подольше). Идем смотреть что в текстовик сохранилось, там будет полный список того что загружал движок.
Затем Preloader("save//mydata.pld") - это вызов этого скрипта, который загрузит в память все что указанно в этом скрипте.
Это используется в кампаниях.
Можно сделать триггер на команду в чат. Побегал за всех героев, покастовал все спелы, написал команду, файл сохранился.
PlealoadGen() сохраняет абсолютно всё: модельки звуки, текстуры.
Модели всё же стоит ещё и создавать.
Я просто беру всё то, что записал прелоад в файле, копирую в триггер, и все Preload заменяю на PreloadFile.
function PreloadFile takes string s returns nothing
local integer l = StringLength(s)
local string sub = SubString(s, l - 3, l - 1)
call Preload(s)
if sub == "md" or sub == "MD" then
call DestroyEffect(AddSpecialEffect(s, 0, 0))
endif
endfunction
Теперь пролагов при касте спелов и прочего не будет.
PlealoadGen(), насколько я знаю, не подгружает САМИ способности, поэтому их нужно добавлять.
0
28
7 лет назад
0

» WarCraft 3 / PreloadAbility( integer )

quq_CCCP:
Кривоватая подгрузка, удалять не обязательно. Лучше юзать preload без этаких костылей, темболее в JASS есть механизмы автоматического создания pld скриптов.
У меня в карте 100500 способностей. Можно ли их всех тупо добавить одному юниту для подгрузки (без удаления)?
0
28
7 лет назад
0

» WarCraft 3 / Как делать спеллы в предметах?

Тебе нужна способность Книга Заклинаний (Spellbook).