38

» WarCraft 3 / Добавить buff триггерами

у меня на стейт "алкоголя в крови" было так
void DrinkDummyCast(int abilId) {
    unit x = CreateUnit(Player(0),LINK_DGUI_TYPEUNIT,GetUnitX(GetJack()),GetUnitY(GetJack()),0.0)
    ShowUnit(x,false)
    UnitApplyTimedLife(x,'BTLF',1.2)
    IFDEBUG(! UnitAddAbility(x,abilId), )
    IssueTargetOrder(x,"drunkenhaze",GetJack())
    x = null
}
весь код
// JC_MainEngine_DrinkMode.j
// с поддержкой русского

#guard _JC_MainEngine_DrinkMode_j

library DrinkMode uses ENGINE, Ifdebug, String
{
enum (drinkmodestates) { DRM_NONE, DRM_EASY, DRM_NORMAL, DRM_HARD, DRM_VGOVNO }

#define private TIME_START_SEC = 2.8
#define private LITE_K = 0.08
#define private NORM_K = 0.16
#define private HARD_K = 0.25
#define private SUB_K = 0.006
#define private DRM_ANIM0 = "alternate"
#define private DRM_ANIM1 = "medium"
#define private DRM_ANIM2 = "large"

private timer tcounter = CreateTimer()
private timer tchanger = CreateTimer()

private trigger actor = CreateTrigger()

private unit GetJack() { return CANSAY_HERO }

real JackDrinkState = 0.0 //0.0-none, 1.0-vgovno
real GetJackRealDrinkState() { return JackDrinkState }
int GetJackDrinkState() {
    if(JackDrinkState<0.01) { return DRM_NONE }
    if((JackDrinkState>=0.01) && (JackDrinkState<0.25)) { return DRM_EASY }
    if((JackDrinkState>=0.25) && (JackDrinkState<0.5)) { return DRM_NORMAL }
    if((JackDrinkState>=0.5) && (JackDrinkState<0.75)) { return DRM_HARD }
    //if((JackDrinkState>=0.75)) {}
    return DRM_VGOVNO
}


void SetJackDrinkState(real st) {
    JackDrinkState = st
    SetJackSpeedModifyer(1.00 - JackDrinkState)
}

void DrinkDummyCast(int abilId) {
    unit x = CreateUnit(Player(0),LINK_DGUI_TYPEUNIT,GetUnitX(GetJack()),GetUnitY(GetJack()),0.0)
    ShowUnit(x,false)
    UnitApplyTimedLife(x,'BTLF',1.2)
    IFDEBUG(! UnitAddAbility(x,abilId), )
    IssueTargetOrder(x,"drunkenhaze",GetJack())
    x = null
}

void DrinkSetJackAnimProperties(int WhichState) {
    if(WhichState == DRM_NONE) {
        AddUnitAnimationProperties(GetJack(),DRM_ANIM0,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM1,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM2,false)
    }
    if(WhichState == DRM_EASY) {
        AddUnitAnimationProperties(GetJack(),DRM_ANIM0,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM1,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM2,false)
    }
    if(WhichState == DRM_NORMAL) {
        AddUnitAnimationProperties(GetJack(),DRM_ANIM0,true)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM1,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM2,false)
    }
    if(WhichState == DRM_HARD) {
        AddUnitAnimationProperties(GetJack(),DRM_ANIM0,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM1,true)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM2,false)
    }
    if(WhichState == DRM_VGOVNO) {
        AddUnitAnimationProperties(GetJack(),DRM_ANIM0,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM1,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM2,true)
    }
}

void CastDrinkToJackS(int WhichState) {
    if(WhichState == DRM_NONE) {
        AddUnitAnimationProperties(GetJack(),DRM_ANIM0,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM1,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM2,false)
        PauseTimer(tchanger)
        return
    }
    if(WhichState == DRM_EASY) {
        AddUnitAnimationProperties(GetJack(),DRM_ANIM0,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM1,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM2,false)
        DrinkDummyCast(LINK_DRM_ID1)
    }
    if(WhichState == DRM_NORMAL) {
        AddUnitAnimationProperties(GetJack(),DRM_ANIM0,true)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM1,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM2,false)
        DrinkDummyCast(LINK_DRM_ID2)
    }
    if(WhichState == DRM_HARD) {
        AddUnitAnimationProperties(GetJack(),DRM_ANIM0,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM1,true)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM2,false)
        DrinkDummyCast(LINK_DRM_ID3)
    }
    if(WhichState == DRM_VGOVNO) {
        AddUnitAnimationProperties(GetJack(),DRM_ANIM0,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM1,false)
        AddUnitAnimationProperties(GetJack(),DRM_ANIM2,true)
        DrinkDummyCast(LINK_DRM_ID4)
    }
}

void CastDrinkToJack() {
    CastDrinkToJackS(GetJackDrinkState())
}

void JackSubDrink() {
    SetJackDrinkState(GetJackRealDrinkState()-SUB_K)
    if(GetJackRealDrinkState()<0.0) {
        SetJackDrinkState(0.0)
        PauseTimer(tcounter)
    }
}

void JackAddDrink(real k) {
    SetJackDrinkState(GetJackRealDrinkState() + k)
    if(GetJackRealDrinkState()>1.0) {
        SetJackDrinkState(1.0)
    }
    TimerStart(tcounter,1.0,true,function JackSubDrink)
}

void JackAddDrinkById() {
    int id = GetSpellAbilityId()
    if(id == LINK_DRM_SRC1) { JackAddDrink(LITE_K) }
    elseif(id == LINK_DRM_SRC2) { JackAddDrink(NORM_K) }
    elseif(id == LINK_DRM_SRC3) { JackAddDrink(HARD_K) }
    else { return }
    CastDrinkToJack()
    TimerStart(tchanger,TIME_START_SEC,true,function CastDrinkToJack)
}

void DrinkMode_Init() {
    TriggerRegisterPlayerUnitEvent(actor,Player(0),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
    TriggerAddAction( actor, function JackAddDrinkById )
}


}
Как видно, таймер периодически вызывает нужный каст от дамми на юнита. А как только надо снять бафф, таймер останавливается и бафф сам снимается через несколько секунд. Юнит же создается с временной жизнью и сам умирает.

Через ауру опасно - если юниты будут стоять слишком близко, может задеть соседа.
38

» WarCraft: Armies Of Azeroth / Давайте по-быстрому

Фон какой-то слишком светлый, не очень хорошо с текстом гармонирует. А так вообще збс.
Жду новой инфы =)
38

» XGM Team / Spotlight

Mister Proper, нельзя такую картинку, она под авторскими правами Blizzard Ent. Нужны авторские работы.
Кроме того, это вводит в заблуждение пользователей.
38

» XGM Team / XGM v9 на Russian DevCup

Jusper, да не, я о том, что сервисов для путешественников... миллионы их, даже описание хз кто будет читать. Это всё равно что "Сервис поиска ресторанов"
38

» XGM Team / XGM v9 на Russian DevCup

Всрали чтоли?) Вот так оно бывает #serious_business xD не переживайте, раскручиваться надо не таким способом.
Надо было кошечек добавить. Ну или тюленей.
Меня, кстати, Сервис для путешественников радует больше.
38

» XGM Team / XGM v9 на Russian DevCup

Народ, если вас просят голосовать за 3 проекта, не голосуйте за три, идущие подряд, просто чтобы отвязаться. Лучше посмотреть и выбрать, что ещё действительно интересно. А то получается, что вы просто конкурентов поднимаете.
Я не говорю, что за соседние не рекомендуется голосовать, но "от балды" не стоит выбирать соседние)
H:
мы и обновляем, т.е для вас в самом худшем случае сайт просто будет выглядеть внешне по другому. Но он будет выглядеть лучше, удобнее, функциональнее. А если принять все новые фичи, то тогда будет намного лучше, это и удобный менеджер файлов, инструменты для проектов, интеграция с внешним миром, разные схемы монетизации..
#яндекс #кинопоиск
38

» Shapik: the quest 2 / Мы прошли Greenlight!

Мои позравления. Расскажете процесс для своих?)
38

» Программирование / PHP для нубоов

Для работы php
  • не обязателен apache, если не подразумевается веб-сервер. Для веб-сервера рекомендуется nginx.
  • не обязательна и не желательна MySQL (он не развивается). Для простых бд рекомендую NoSQL решение MongoDB, для SQL рекомендуется PostgreSQL.
  • не обязателен браузер, если не подразумеваются веб-страницы (а, допустим, php сервис или REST API).
38

» WarCraft 3 / World Editor(Язык)

тогда откуда русский взялся
38

» Космический Базар / Космический Базар

Почему всегда находятся такие люди, которые отключают антиалиасинг?)
38

» StarCraft 2 / ARENA - готовый ландшафт

Теперь осталось реализовать Rocket League =)
38

» WarCraft 3 / World Editor(Язык)

Ну да, у жнгп нету языковых привязок
38

» Game Dev / ТриКи: (не совсем) Коллекционная карточная игра

Какой-то я невзрачный получился :)
А по сути - есть игра Манчкин же настольная
38

» WarCraft 3 / Логер JASS для WC3

TAHK90, естественно, там защита от хаков. Твой аккаунт скорее всего забанен системой Warden.
38

» XGM Team / XGM на NextCastle Party

Желаю успехов нашим участникам, давайте мутите трансляцию
38

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4

Да вы просто криво что-то делаете
Загруженные файлы
38

» WarCraft: Armies Of Azeroth / WarCraft: Armies Of Azeroth

Я думаю, у них описан стандарт на это дело.
38

» Несыть / Переработка существ (часть 3)

В этом и проблема, что на самом деле они могли бы немного смещаться относительно траектории головы. Это добавит естественности в игру.
38

» Несыть / Переработка существ (часть 3)

Я вот думаю, может, внести в ограничение узлов изгиба немного хаотичности? А то уж больно он похож на пилу когда поворачивает на 360 градусов. Просто внести небольшой рандомный коэффииент на максимальный изгиб каждой ячейке.
38

» Администрация XGM / Оформление текстов - txt2

в идеале что-то вроде этого надо www.flickr.com/search/?text=abstract
я кстати писал такую штуку в качестве тестового задания для одной конторы)