8

» WarCraft 3 / Что быстрее ForGroup() или Loop?

нужно понимать в каких областях ты юзаешь глобалки
Я про это же, куча нативок вызывают обработку разных событий и в них тоже может встретиться вызов какой-то твоей системы, которая использует твои глобалки, поэтому идея "одна глобальная группа на все" тем, что потенциально приведет к неприятной ошибке, которую вы вероятно не сразу заметите, а игрокам жизнь она будет портить, возможно, как в представленном примере, ощутимо, пусть это всего лишь демонстративный пример.
8

» WarCraft 3 / Новые нативки для мемхака.

Ну и думаю ивенты без норм декларации нативок для триггеров не добавить...
Прикрепленные файлы
Прикольно, пусть и непонятно. Нужно будет потыкаться. Спасибо за помощь!...
А по поводу ивентов я мало что понимаю, к несчастию.
8

» WarCraft 3 / Новые нативки для мемхака.

ну как в либе IceFog'а, либо лаунчер как у айкапа. Хотя можно взять левую ИИ нативку, взять её адресс и назначить ей твои дейсвия. К примеру Rmem.
Печально, но я недавно придумал Уууууу костыль, использовать мне его не очень нравится, но можно создать jass функцию с названием, совпадающим с названием нативки и подменить в функции её вызывающей вызов обычной функции на вызов нативки, которую мы предварительно зарегистрировали. Из плюсов - нативку не надо объявлять, из минусов - их добавления ужасно.
Загруженные файлы
8

» WarCraft 3 / Новые нативки для мемхака.

Ну тебе нужно задекларировать нативку и в своем коде сделать, заготовку,
При наличии такого объявления, варкрафт начинает злобно ругаться и валиться с примерно таким текстом:
unregistered native function on line 553 (war3map.j)
Получается, если я хочу использовать эти функции в war3map.j, я должен их каким-то образом загрузить заранее?
8

» WarCraft 3 / Что быстрее ForGroup() или Loop?

Можешь сделать эти переменные локальными - ничего не поменяется. Этот код всегда будет работать так, как ты его написал. Никаких зависимостей от внешних условий тут нет.
Вы карту даже не запускали, а я ведь её приложил. Там есть второй триггер, который не делает ничего, только меняет местами значения глобалок. И, в зависсимости от того включен он или нет, первый будет работать определенным образом, несмотря на то, что второй не делает ничего.
rsfghd:
что этот код вообще должен делать непонятно, ведь юнит даже не сможет кастануть абилку, сразу удалившись
Для меня это стало новостью, но если поставить время каста способности и точку каста в ноль даммик успеет кастануть до удаления, посмотрите карту
=(
8

» WarCraft 3 / Что быстрее ForGroup() или Loop?

Наложения в использовании тоже не будет.
Если быть достаточно неаккуратным - будет. Например вот такой вот код, при использовании глобалок сработает совсем не так, как ожидалось:
globals
    unit u1
    unit u2
    unit u3
endglobals
function Trig_REVENGE_Actions takes nothing returns nothing
    set u1 = GetTriggerUnit()
    set u2 = GetEventDamageSource()
    set u3 = CreateUnit(GetOwningPlayer(u1),'h000',GetUnitX(u2),GetUnitY(u2),0)
    call UnitAddAbility(u3,'A000')
    call IssueTargetOrder(u3,"thunderbolt",u2)
    call RemoveUnit(u3)
endfunction
И все это, о ужас! будет зависить от внешних условий, так что использование глобалок - способ получить обидную и неприятную ошибку.
Загруженные файлы
8

» WarCraft 3 / Дождь для отдельного игрока

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

» WarCraft 3 / Утечки в вызванной функции

не желательно оставлять в attacktype и damagetype нулевые значением
Насколько мне известно, это не важно, как минимум большая часть нативок вида Conert@Type в случае валидного числа вернут его же. ConvertDamageType - из их числа. Нулл - он точно тождественно ноль. Это может меняться в других патчах, но я о таких изменениях не слышал.
8

» WarCraft 3 / Время каста

это на мемхаке?
Да, но может в рефорже что-то такое тоже есть.
8

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

Там нет ничего особо сложного, на самом деле, просто читаешь названия функций и плюс-минус понятно, что они делают. Но статьи, которые я видел:
Что-то там для рефоржа, но в мемхаке аналогичные функции либо есть, либо их не сложно найти самому/поспрашивать, может кто знает.
Плюс что-то можно найти в исходниках render-edge:
8

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

Тут есть вариант манабара на ассемблере с небольшим добавлением си. Таким же образом можно сделать и щит. В целом, можно даже на мемхаке, ну или собрать кастомную dll и мемхаком подгрузить.
8

» WarCraft 3 / Не могу найти причину

Без карты я конечно не смогу протестировать, но мана - флоат, поэтому возможно стоит считать условие выполненным, например, если у юнита кол-во маны меньше чем максимум минус 1, возможно проблема в этом.
8

» WarCraft 3 / Время каста

Насколько я понимаю, GetUnitAbilityCastTime вернет время, в течении которого юнит будет стоять и ничего не делать, после чего начнет анимацию каста, а GetUnitAbilityCastPoint - вернет время, после начала анимации каста, через которое он абилку таки докастует.
8

» WarCraft 3 / Время каста

Мемхаком читать из памяти, или писать все времена в хэштаблицу и из нее читать.
8

» WarCraft 3 / Не запускается карта с мемхаком

Тут где-то был скрин, что проблема возникает именно при проверке жасс хелпером.
Гуванч:
уже сменил 3 таких
Ты точно в правильную папку ставиш? папка - ".\Jass New Gen Pack\jasshelper" В используемом тобой редакторе.
8

» WarCraft 3 / Не запускается карта с мемхаком

Вероятно, не та версия pjass? Можешь попробовать ту версию, которая стоит у меня. Она точно не будет воровать твои куки.
Загруженные файлы
8

» WarCraft 3 / Обязательно ли обнулять локальные переменные?

Насколько я понимаю, игра точно считает количество созданных объектов. У меня даже табличка, выглядящая довольно правдоподобно, для 1.26 для cheat engine была.
Загруженные файлы
8

» WarCraft 3 / Обязательно ли обнулять локальные переменные?

то используй глобальные переменные чтобы не тратить время на выделение памяти.
Главное при использовании глобалок в ногу себе не выстрелить. Они могут быть перезаписаны в коллбеке триггера, вызванного тем или иным действием в коде. Поэтому желательно, как минимум, использовать разные глобалки в разных системах.
8

» WarCraft 3 / Бафф на 1 секунду

Для такой системы не жалко запускать по 1му самоуничтожающемуся таймеру для игрока (ну или делать то же самое с глобальным таймером, что чуть сложнее) .
Пока клик не произошел есть массив заполненный нулями.
Второй массив - для хранения юнитов, которые были последними, в которых кликнул игрок.
Соответственно, клик произошел, если в ячейке игрока ноль - запустить таймер., сложить в массив. Сложить юнита в массив. Если игрок кликнул до его истечения, то в соотв. ячейке массива не ноль. Уничтожить таймер. Дать героя. запретить игроку использовать систему. Если таймер закончился - в соответствующую ячейку массива положить ноль, а таймер уничтожить. Кликнутого юнита в массиве занулить.
Конечно, система чуть не оптимальна, но это мелочь, не заслуживающая нашего внимания. Вряд ли она будет использоваться хоть сколько-нибудь часто.
8

» WarCraft 3 / Система целевой способности

разве три стихии прячет героя помоему он просто исчезает
Попробуйте на досуге использовать ShowUnit на панде под действием трех стихий.
8

» WarCraft 3 / Система целевой способности

Из недостатков - молоток, работающий в данной системе без проблем убьёт юнита, спрятанного через ShowUnit(u,false), в отличии от стандартного молотка. Например, он бы убил панду, использующую три стихии, если бы она не была в момент работы этой способности неуязвимой.
При этом, если будет необходимость эту систему развивать, например накладывая бафы, двигая юнита или что-то еще, то из-за этого могут начаться чудеса.
8

» WarCraft 3 / Становление героя: Исазам

Мне тут кажется несколько сомнительным момент, когда герой бегает во время сцен. Например в сцене с кучей скелетов его успевают скушать, если он до них добежит, что мне не нравится. Возможно стоит героя паузить+вручать неуязвимость во избежание казусов.
Еще одно сомнительное как по мне решение - невидимые сюжетные стены на карте, по-моему лучше уж по-старинке воротами... А так не очень понятно где просто стена а где стена, которая потом, когда ты сделаешь 10 квестов исчезнет.
Так же не уверен, что давать опыт за дерущихся в другом конце карты пехотинцев - правильно.
А так да, отлично, это тот самый очень старый-добрый варкрафт.

Ну и еще капитан, говорящий пойди и помоги в соборе, но только если хочешь, пожалуйста - несколько портит атмосферу.
8

» WarCraft 3 / не станит дамми

Но конкретно тут, я вижу, что одному юниту мгновенно отдаются приказы кинуть молотки по всем юнитам в области.
Он не кидает молоток мгновенно, пока повернется, пока покурит, пока кастанет, конечно он ничего не успевает.
Для нанесения урона и стана можно использовать варстомп, его нужно кастануть ровно единожды.
Если хочется можно наносить урон триггерно а стомпом только станить.
8

» WarCraft 3 / не станит дамми

rsfghd:
Дамми должен принадлежать игроку, а не нейтральному (хз почему, но они порой не реагируют на приказы).
У нейтралов свой ии, с которым особо ничего не сделаешь, он может перебивать приказы, чем достаточно часто и занимается.
8

» WarCraft 3 / Что за объект или integer вызывает фатал на Варкрафт III?

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

А может ей просто поставили некорректную buttonpos