XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
DimanTOoBS

offline
Опыт: 5,791
Активность:
MultiTrainingSystem
Возможности:
Обучение до 10 юнитов в каждой казарме (можно меньше)
После обучения войска идут в точку сбора также как при обычном обучении
Возможность регулирования прогресса и скорости обучения войск с помощью триггеров
Клавиша Escape прерывает последнего юнита в очереди
Данная система пригодится для карт с массовыми сражениями или системами отрядов
Прикрепленные файлы
Тип файла: w3x MultiTrainingSystem.v4.w3x (24.1 Кбайт, 10 просмотров )

Отредактировано DimanTOoBS, 30.07.2012 в 01:37.
Старый 28.07.2012, 13:45
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
хеш таблица нигде не очищается? это минус
гуи? тоже минус.
однако идея интересная.
Старый 28.07.2012, 14:02
DimanTOoBS

offline
Опыт: 5,791
Активность:
хеш таблица нигде не очищается? это минус
про это вспомнил уже когда выложил xP
гуи? тоже минус.
кому как, зато jngp не требует xD
Старый 28.07.2012, 14:06
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
jngp это v/cJass. Обычный jass скушает любой ве.
Hatsume_Hate добавил:
и я не буду пояснять почему гуи это минус. Это всем давно известно, что такое гуи и как там все ужасно сделано.
» почему гуи это неок
да вот возьмем твою же гуи функцию установить такому то юниту столько хп
конвертим
call SetUnitLifeBJ( GetEnumUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetEnumUnit()) + LoadRealBJ(GetHandleIdBJ(GetEnumUnit()), 3, udg_TrainHash) ) )
смотрим начинку SetUnitLifeBJ
function SetUnitLifeBJ takes unit whichUnit, real newValue returns nothing
    call SetUnitState(whichUnit, UNIT_STATE_LIFE, RMaxBJ(0,newValue))
endfunction
смотрим начинку GetUnitStateSwap
function GetUnitStateSwap takes unitstate whichState, unit whichUnit returns real
    return GetUnitState(whichUnit, whichState)
endfunction
ну и
function LoadRealBJ takes integer key, integer missionKey, hashtable table returns real
        return LoadReal(table, missionKey, key)
endfunction
+ функция создать юнита на гуи
call CreateNUnitsAtLoc( 1, GetUnitTypeId(GetEnumUnit()), GetOwningPlayer(GetEnumUnit()), udg_TPos[1], bj_UNIT_FACING )
function CreateNUnitsAtLoc takes integer count, integer unitId, player whichPlayer, location loc, real face returns group
    call GroupClear(bj_lastCreatedGroup)
    loop
        set count = count - 1
        exitwhen count < 0
        call CreateUnitAtLocSaveLast(whichPlayer, unitId, loc, face)
        call GroupAddUnit(bj_lastCreatedGroup, bj_lastCreatedUnit)
    endloop
    return bj_lastCreatedGroup
endfunction
и далее CreateUnitAtLocSaveLast
function CreateUnitAtLocSaveLast takes player id, integer unitid, location loc, real face returns unit
    if (unitid == 'ugol') then
        set bj_lastCreatedUnit = CreateBlightedGoldmine(id, GetLocationX(loc), GetLocationY(loc), face)
    else
        set bj_lastCreatedUnit = CreateUnitAtLoc(id, unitid, loc, face)
    endif

    return bj_lastCreatedUnit
endfunction

Отредактировано Hatsume_Hate, 28.07.2012 в 14:17.
Старый 28.07.2012, 14:11
Темак
jass for everyone
offline
Опыт: 7,200
Активность:
Просто и удобно, класс!
Старый 28.07.2012, 14:15
NixEon
beeg kok
offline
Опыт: 8,143
Активность:
Гуи не всегда минус, в данном случае это предпочтение автора, но вот огорчает факт, что хэш-таблица не очищается, что очень плохо.
Старый 28.07.2012, 14:15
Темак
jass for everyone
offline
Опыт: 7,200
Активность:
Hatsume_Hate, что стоит тебе в своем проекте перевести эту систему в жасс?
Temak1 добавил:
DimanTOoBS, добавь возможность удаления юнитов из очереди клавишей "Esc", как в стандарте.
Старый 28.07.2012, 14:28
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Temak1, что ему стоит сразу такое написать самому?
по сабжу - если гуи и все наглядно сделано то почему бы и нет,ибо сделано это не для гуи-хейтеров,а для новичков которым нужен пример понятный
но если это сделано с ошибками,то плохо,очень плохо
Старый 28.07.2012, 14:31
DimanTOoBS

offline
Опыт: 5,791
Активность:
обновил первый пост, хэш очищается, добавил отмену клавишой "Esc"
Старый 28.07.2012, 15:06
Темак
jass for everyone
offline
Опыт: 7,200
Активность:
DimanTOoBS:
Клавиша Escape прерывает обучение юнита с наименьшим прогрессом
esc должна отменять последнего кликнутого юнита (т.е. последнего в очереди)
нашел баг: если кликнуть исследование, а потом несколько юнитов, то по окончании исследования эти юниты будут обучатся по двое вместо одного.
Старый 28.07.2012, 16:46
ScorpioT1000
Работаем
online
Опыт: отключен
Hatsume_Hate, то, что ты там описал ему - не критично, особенно без периодических действий я сам так делаю
Старый 28.07.2012, 16:48
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
ScorpioT1000:
Hatsume_Hate, то, что ты там описал ему - не критично, особенно без периодических действий я сам так делаю
то что я описал находится в энуме юнитов каждые 0.10 сек
Старый 28.07.2012, 18:22
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 21:22.