13

» WarCraft 3 / ИИ на джасс

Makeba, да так оно и есть скрипт human.ai имеет тоже функцию main, которая вызывается первая для этого скрипта. А main в карте должен содержать инициализацию ai скриптов не помню точную функцию. Помню что AI в конце. Вроде бы, вот эта функция MeleeStartingAI.
13

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

Проверьте, пожалуйста, сетевую игру за двух вампиров против ботов.

Онли Виндовс.
13

» WarCraft 3 / ИИ на джасс

Makeba, в ИИ скриптах не работают многие функции которые можно запихнуть в главный код, так же и в главном коде не работают некоторые функции которые работают в ИИ скриптах. Так что не сравнивай их. Эта два отдельных острова. Где свои законы.
13

» WarCraft 3 / Что это за функция? и как она должна работать? в описании…

Если конвертнёшь в текст, то вроде, эта функция SubString первый аргумент изначальная строка, второй с какого символа, третий по кокой символ (но + 1), конечный аргумент выходная строка.
13

» WarCraft 3 / Парочка приколов: 1. -Учительница: "Что такое невесомость?"…

Так и хочется спеть песню про вампов. Жиган лимон мальчишка симпотичный, урсы чинят вал, дела идут отлично.
13

» WarCraft 3 / Воин из племени кентавроогров

Fasser, прототип - это только наработки для проекта. Первичный интерфейс, например. Сделай уж её трёхмерной, чтобы была модель. Только куда ты её денешь потом? Кому такое убожество нужно?
13

» WarCraft 3 / (MH) Отдача приказа

Ты хочешь сидеть за компом и наблюдать как за тебя играет комп?
13

» WarCraft 3 / Всем ку. Как синхронизировать Real данные локального игрока…

globals
gamecache vSyncCache3
boolean vSync
integer vCountPlayersUser
endglobals

function fInitnData takes nothing returns nothing
set vSyncCache3 = InitGameCache("Sync3")
set vSync = false
set vCountPlayersUser = 3
endfunction

function fSync takes nothing returns nothing
local string vStr
local integer vvi
local real vResult
if (vSync == false) then
    set vStr = I2S(GetPlayerId(GetLocalPlayer()))
    call StoreReal(vSyncCache3,"real_data",vStr, 1.0)
    call SyncStoredReal(vSyncCache3,"real_data",vStr)
    call StoreReal(vSyncCache3,"real_data",vStr, 0.0)
    set vSync = true
else
    set vvi = 0
    loop
        exitwhen vvi >= vCountPlayersUser
        // тут должна быть проверка игрока на лив
        set vResult = GetStoredReal(vSyncCache3,"real_data",vStr)
        if (vResult == 0.0) then
            return
        endif
    endloop
endif
// Ура данные синхронизированы по времени в vResult значение
// fSync - конечно же это функция таймера
endfunction
13

» WarCraft 3 / таймер времени игры

mistwood, тут
    call TimerStart(Bv,1234,false,function QX)
    call TimerStart(t,1.,true,function JR)
    set t=null
    set Kv=true
    set vTriggerMB = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( vTriggerMB, 0.1 )
    call TriggerAddAction( vTriggerMB, function kR )
    set vTimeRound = 60 * 1
    set vTriggerMB2 = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( vTriggerMB2, 0.1 )
    call TriggerAddAction( vTriggerMB2, function qA )

QX это бесконечный таймер который прибаляет к счётчику 1234 сек
JR отображает секунды в мультибораде каждую секунду
kR создаёт мультиборад
qA создаёт таймеры следующего раунда(тебе это не надо)
fE это удобное отображение времени через двоеточие
FR устанавливает итему мультиборада значение
А лучше скачай JassCraft, а то очень неудобно читать однотонный текст jass2. Да ещё и без дебага.)
13

» WarCraft 3 / Десинх карты в Рефоржете после 10-15 сек!Подскажите плз, всё было…

ShadowNinja, проблема с дисинхронами в карте, или когда интернет отваливается у одного из игроков, но тогда он висит и идёт прогресс ожидания. У меня дисинхроны обычно бывали из-за того, что в одну и ту же долю секунды действия не совпадали, так как работали win32 потоки в мапхаке. Я сделал таймер один на всех игроков и решил эту проблему. Но ещё возможно, что в в функции передаёшь передаёшь переменную unit, а тип юнита 0, выдаёт. Ставишь заглушку с сообщением на экран и проблема в смене id unit'ов по непонятной причине. И приходится по новой эту переменную определять. Пример, во время строительства один id юнита, во время постройки другой. Или рабочие которые рубят лес сами по себе меняют свой id, по неизвестной причине Варкрафта 3. И когда ты пытаешься вызвать функцию в которой нет такого юнита, то идёт вылет из игры. Вообщем проверяй своих юнитов на Id функций GetUnitTypeId, если 0 то такого юнита уже нету. И ищи его в зоне наверное в определенной. Ведать и в рефордже та же шляпа, со сменой long значений handle к юнитам. Но проблема может быть и не только в юнитах, но и в итемах и тд. тп. Проверяй их id. Лучшего способа не нашёл.
13

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

native UnitHasBuffsEx               takes unit whichUnit, boolean removePositive, boolean removeNegative, boolean magic, boolean physical, boolean timedLife, boolean aura, boolean autoDispel returns boolean

if (UnitHasBuffsEx(WhichUnit,false,true,true,false,true,false,false) == true) then
    // например каст ветерка
endif
if (UnitHasBuffsEx(WhichUnit,false,true,false,true,false,false,false) == true) then
    // физический дамаг
endif
13

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

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

» WarCraft 3 / Возрождение старых карт Предлагаю написать ИИ для карты 23…

Fasser, ты представь, что такое регионы баз и как они ищутся перед тем, как начинать такую затею. Ты ведь не рандомно будешь отправлять отряды в точку на карте? Потом микро это вторая тема. Когда кто то отходит кто то подходит, кто то окружает, кто то защищается и т.д. и т.п. По этому вообще можно целую книгу писать. А если тупо замес. То кому это будет интересно? Таких ботов ты с лёгкостью вынесешь и кто будет играть твоя аудитория? Если серьезно браться за проект, то придётся отдаться сполна. А оно тебе надо? Сколько у тебя есть времени свободного? Какие перспективы в будущем? Что ты с этого поимеешь? Если ты в погоне за славой, то хоть помолился бы Богу, чтобы Он тебе знания дал. А без этого не куда. Либо ты свихнёшься, либо ты забросишь, либо добьёшься своего. Но я с удовольствием посмотрю на твой проект. На этапе проходимости между юнитами, что ты будешь делать в мапхаке ковыряться? Делать карты данных? Поздравляю ты пришёл к тому же что и я. Но у меня цель игру сделать свою. В итоге. А наработки мне в плюс.
13

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

Кто узнал карту, смотрите в следующем выпуске её с ботами. =)
Загруженные файлы
13

» WarCraft 3 / Конвертер из Jass в C++ dll для запуска из игры

ScorpioT1000, я имел ввиду на диске. Пускай качают на свой диск. =) Не охота нечего переделывать.
13

» WarCraft 3 / Конвертер из Jass в C++ dll для запуска из игры

Fasser, если сделать мапхак для Linux, то можно такие карты и на Irina Bot запускать без опаски. Вот сделал тебе костыли можешь попробовать под Lunux'ом запустить данную карту и конвертер. Но лучше программировать учись, сам всё будешь делать. Закинь файлы RedirectCalls.mix, Vampirism_fire.mix,
JassApi.dll, возможно потребуется ещё и msvcp100.dll, msvcr100.dll в папку с игрой. Если я не ошибаюсь, а могу и ошибиться то функция GetModuleHandle работает под wine. И подхватит библиотеку JassApi.dll. Может и нет. Проверь. И закинь VampirismFire5.10b2[0].w3x в папку с картами. Также сделал Jass_convert_C++.exe под Linux пути. Делаю всё в слепую без Linux'a так что результат не гарантирован. Проверяй.
Загруженные файлы
13

» WarCraft 3 / Конвертер из Jass в C++ dll для запуска из игры

Fasser, офтоп. Если по твоему вопросу, то ответь сначала на вопрос, где ты хочешь запустить exe файл? На телефоне в Android OS? В Linux'ax таких как Ubuntu или других им подобным? Если на телефоне то качай wine для Andoroid'a apk файл. Моё приложение запустить, в Android не получится, потому что пути разные. В Android путь /etc/w3 например. В Windows c:\games\w3. Я под Linux не подстраивал свою программу. Я забыл как там идёт запрос к файлам. Можно по типу пути определять твоё предпочтение вывода файла. Это можно сделать. Но если капать дальше. То все выводы файлов в библиотеке будут Windows'кие. Это тебе не потребуется, а вот для мапхака потребуется. А мне Linux ставить не хочется, что бы проверить, как мапхак работает на wine в Linux'e. И тут похоже без знаний нашего гения IceFoga не обойтись. Но если библиотека в Linux это .so файл, то в Windows это dll. При мапхаке IceFoga dll распаковывается из архива карты в Temp файлы Windows. Там и запускается. А вот, что бы реализовать такое в Linux. То можно кинуть dll в папку с игрой. Переименовать библиотеку в mix. Все необходимые библиотеки тоже кинуть в папку и с игрой в данном случае это RedirectCalls.dll, JassApi.dll их можно найти в карте. Сменить расширение файла RedirectCalls.dll на mix. Получится, что все библиотеки погрузятся в игре. Но их нужно запустить как описано в теме "Своя нативка на С++". Нужно зарегистрировать начальную функцию библиотеки объявить её в common.j файле в новых нативках. Импортировать common.j по пути Scripts\. В war3map.j убрать все мапхаки и вызвать функцию библиотеки которая зарегистрирована в игре в новых нативках. Этот велосипед может и сработать. Но лучше бы сделать мапхак для Linux отдельно, а я в этом не шарю. А если ты решил играть в Warcraft 3 на телефоне, то это порнография.
13

» WarCraft 3 / Конвертер из Jass в C++ dll для запуска из игры

Fasser, если ты имеешь в виду андроид приложение, то это будет то же самое только на flutter, например. Но тебе легче Сишный код запустить, который в проекте, на другой платформе. И будет тот же результат. А ты что в телефоне играешь в Warcraft 3, через wine, как в linux'e?