13

» WarCraft 3 / Открытая виртуальная машина

IceFog, Я пока карту поделаю, вдруг успею до окончания наработок на UjAPI. Пока время есть. Ладно буду знать, что это аналог той функции.
13

» WarCraft 3 / Открытая виртуальная машина

IceFog, В общем надо дорабатывать проект. Остановился пока на файле hook.hpp там большая ассемблерная вставка. Там нужен результат. И весь проект надо проверять. Если добьёшь выкладывай новый. Я пока не буду его дорабатывать.
Загруженные файлы
13

» WarCraft 3 / Вылет редактора при сохранении

nazarpunk, Не знаю. У меня получается и по отдельности вставлять куски кода в редактор триггеров.
13

» WarCraft 3 / Вылет редактора при сохранении

Такая же ошибка на Фрозен Троне. Если ты файл редактора не изменяешь в архиве карты. А внедряешь в него только новый jass код. А потом сразу лезешь запускать карту в игре, после сохранения архива. То вар может зависнуть, что даже диспетчер задач не поможет. Лучше скопируй джасс куски кода в блокнот. И открой редактор карт. Открой карту. Вставь из блокнота куски кода. Или тебе придётся удалять файл редактора из архива. Как это делают на протекте карт. Но потом карту не открыть пока не найдёшь этот файл и не вставишь его обратно в архив карты. Можно из других карт его брать. Пробуй.)

А бывает, что и сам редактор вылетает при сохранении, но оставляет папку темп в виде архива. Если открыть фар менеджер. То можно зайти в папку и увидеть твои файлы проекта. Это связано вроде бы с ошибками в jass коде. Или в самом редакторе близардовском.
13

» WarCraft 3 / Ищу программиста кто шарит за оффсеты и C

Какой вопрос и всё деньги платишь. Неужели мемхак тебе прибыль сделает. Посмотри ресурс Пятиминутка в вампов там есть способ через мемхак загрузить библиотеку. Модельки должны быть загружены или сразу в карте или через библиотеку для открытия mpq архивов. Но этот мемхак это доступ к твоему компьютеру. Так что кто этим будет пользоваться?
13

» WarCraft 3 / Городские жители

Создай массив из координат, где должны стоять юниты. А в другом массиве умер юнит или нет. И при смерти спавни снова. С помощью функции создать юнита. И ещё при смерти юнита создать триггер и вызывать функцию РемовеЮнит(ТриггерЮнит()). А то вроде бы память засоряется, как с поднятием монеток в некоторых картах, но может я ошибаюсь.
13

» WarCraft 3 / ExecuteFunc и параметры

ScorpioT1000, мне таймер останавливать не надо. Он у меня каждую 0.1 секунду запускается. Если процесс не выполнен он проверит данные в хеш таблице и пойдёт дальше обрабатываться в зависимости от результатов.
13

» WarCraft 3 / Как отследить удар из невидимости?

Каждую 0.1 секунду проверяй стремительность на юните.)

Запусти таймер игрового времени. При уходе в стремительность засеки время. Если юнит атакован и получает дамаг я не знаю, что там по бафам. Если юнит каким то образом вышел из стремительность можно проверить по таймеру. И если время ухода в стремительность плюс время до выхода из стремительности меньше текущего времени, то кради золото.
13

» WarCraft 3 / Название команды

Выбери в группу всех юнитов около точки в радиусе, пока не за компом функцию не помню. Помню что рейдж там есть. Перебери всех инитов в группе с первого по последний по своим критериям например радиус наименьший или мало хп и атакуй выбранного одного юнита через команду атака. Второй триггер напиши по смерти вражеского юнита повторить первый триггер или при определённых условиях, например, вражеский юнит входит в регион или подходит к твоему юниту в радиусе. И получится в итоге милишный бот.) Потом будешь узнавать как пройти к юниту и закричишь караул?
13

» WarCraft 3 / ExecuteFunc и параметры

Моя задача. Пока выполняется триггер по времени. В нем обрабатывать другой поток для анализа проходимости юнитов. Я так понимаю потребуется хеш-таблица глобальная куда хендл от таймера помещю. Забью параметры. А в потоке возьму текущий таймер и заберу параметры.
13

» WarCraft 3 / Как отследить какой игрок нажал кнопку?

Создаёшь глобалку SyncCache тип буфер игры.
Инициализируешь кэш
set udg_SyncCache = InitGameCacheBJ("Sync")
Пишешь первый триггер на отправку числа в кэш и синхронизацию значения в кэше. Который реагирует на событие выбор пехотинца в центре карты.
    local string vKeyLocalPlayer
    set vKeyLocalPlayer = I2S(GetPlayerId(GetLocalPlayer()))
    call StoreInteger(udg_SyncCache ,"Select",vKeyLocalPlayer,1)
    call SyncStoredInteger(udg_SyncCache ,"Select",vKeyLocalPlayer)
    call DisplayTextToForce( GetPlayersAll(), vKeyLocalPlayer)
Пишешь второй триггер на перебор всех игроков в кэше и если значение получено по выводишь сообщение. Триггер реагирует на событие таймер каждую секунду.
    local integer vvi = 0
    local integer MAX_PLAYERS = 2
    local string vKeyLocalPlayer
    loop
        exitwhen vvi>=MAX_PLAYERS
        set vKeyLocalPlayer = I2S(vvi)
        if (GetStoredInteger(udg_SyncCache,"Select",vKeyLocalPlayer ) == 1) then
	    call DisplayTextToForce( GetPlayersAll(), "NPlayer = " + vKeyLocalPlayer )
            call StoreInteger(udg_SyncCache ,"Select",vKeyLocalPlayer,0)
	    endif
        set vvi = vvi + 1
    endloop
Первое сообщение появляется сразу по выбору пехотинца. Второе через секунду как придёт синхронизация данных в кэше.
Прикрепляю тестовую карту.
Загруженные файлы
13

» Unryze Jass API / UjAPI - AngelScript

Когда появятся указатели на объект?) И ещё вопрос. Как реализованы потоки в Ангел скрипте?
13

» WarCraft 3 / Открытая виртуальная машина

IceFog, я доделываю перевод твоего JassAccelerator'a с Pascal на с++. Скоро выложу здесь в комментах проект. Посмотришь на него с другой стороны.)
13

» WarCraft 3 / Пятиминутка в вампов

Наверное только Шелдан сможет найти ошибки по рассинхронизации в этой карте. Самый умный парень на земле, как он говорит.) Обновил ещё раз проект. Одиночка работает нормально. Исправил зависание при убийстве рабочих. Убрал спящий режим в начале игры. Начало хорошее. Но потом, где-то в коде есть нюанс, который мне мешает синхронизировать сетевую игру. Блинки исправил на таймер. Был триггер. Теперь вроде меньше рассинхронов стало. Из-за этих блинков мейн хуманов. Выкладываю новый архив с теме же программами для тестирования. Но плюс одна для сверки логов для игроков. Тестил через программу 2 окна. Добавил в папку с картой JassApi.dll файл для тестирования через два окна. Потому что не всегда подхватывает эту dll'ку другая dll'кa Vampirism_fire.dll, когда тестируешь через два окна. И приходится из корня Warcraft'a доставать эту dll.
Вот новый архив:
Загруженные файлы
13

» WarCraft 3 / Пятиминутка в вампов

Модернизировал проект. Одиночка работает нормально. Прошу поискать ошибку в проекте по рассинхронизации в сетевой игре. А, то двигаться дальше пока не хочется пока не исправлю эту ошибку. Выкладываю проект для создания dll'ки Vampirism_fire.dll, программу 2 окна для Warcraft'a, что бы потестить сетевую игру, программу winmpq для внедрения dll'ки в карту, карту и dll'ки для Visual Studio 2010, которые нужно разместить в корне папки с Warcraft'ом. Версия Warcraft'a таже (1.26a).
Архив:
Загруженные файлы
13

» WarCraft 3 / Генератор карт VF

Cancel, мемхак может всё!
Как ты будешь внедрять в запущенную карту, карту путей? А капаться в памяти вряд ли кто будет.
13

» WarCraft 3 / Генератор карт VF

Считаю проект довольно таки сырым, так как в путях которые я создаю для карты есть недочёты, какие как этот:
Открыть
Кто хочет править правте, мне уже не до проекта.
Загруженные файлы