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

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

Ответ
 
Extremator

offline
Опыт: 39,522
Активность:
Doc, может хватит спорить со мной? я ж всё равно прав буду
Старый 19.02.2011, 20:45
Elisar

offline
Опыт: 2,031
Активность:
3 абилки по 10 лвл [0-9] [00-90] [000-900]
меняя лвлы можно выставить любое число от 0 до 999 4 абилы - 9999 и т.д.
еще есть похожий способ только с факториалами [2]
Старый 19.02.2011, 21:49
Doc

offline
Опыт: 63,163
Активность:
Extremator, ты НЕ прав.
Elisar, а вот ты прав :3 ну почти.
Старый 19.02.2011, 21:58
Ajaccio

offline
Опыт: 1,007
Активность:
Способ со степенями 2, вероятно, самый лучший. Вот пример от 16GB:
Прикрепленные файлы
Тип файла: w3x Bonus Attack.w3x (12.5 Кбайт, 14 просмотров )
Старый 19.02.2011, 22:37
Doc

offline
Опыт: 63,163
Активность:
и еще один способ со степенями двойки.
Старый 19.02.2011, 22:42
Extremator

offline
Опыт: 39,522
Активность:
а вот если два скилла придётся соединить?
пример из доты: Ancestral Spirit, Empowering Haste, Berserker's Blood, Death Pact, Nethertoxin, Enrage.
имея два любых битная система дамага разлетается..... предложите делать битную систему дамага для каждого скилла? ...........куда экономнее чем сделать пару много уровневых скиллов...)))
Старый 20.02.2011, 00:03
Doc

offline
Опыт: 63,163
Активность:
Extremator, тем не менее в доте они не соединены.
Старый 20.02.2011, 00:09
Ajaccio

offline
Опыт: 1,007
Активность:
Кошмар, опять все разлетается. Когда научимся доделывать все сами, как нужно?
library SAS initializer InitSAS

globals
    private integer array s4a
    private integer array c4a
endglobals

function GetUnitBonusAttack takes unit w returns integer
    local integer i = 1
    local integer r = 0
    loop
        exitwhen (i > 9)
        if (GetUnitAbilityLevel(w, s4a[i]) != 0) then
            set r = r + c4a[i]
        endif
        set i = i + 1
    endloop
    return r
endfunction

function AddUnitBonusAttack takes unit w, integer c returns nothing
    local integer i = 1
    set c = GetUnitBonusAttack(w) + c
    loop
        exitwhen (i > 9)
        call UnitRemoveAbility(w, s4a[i])
        set i = i + 1
    endloop
    set i = 1
    loop
        exitwhen (i > 9)
        if (c4a[i] <= c) then
            call UnitAddAbility(w, s4a[i])
            set c = c - c4a[i]
        endif
        set i = i + 1
    endloop
endfunction

private function InitSAS takes nothing returns nothing
    //Создаём базу данных -> заполняем массивы...
endfunction

endlibrary
Примерно так...
Теперь можно указать функции AddUnitBonusAttack НА сколько нужно изменить атаку.
При этом не в ущерб другим способностям.
Старый 20.02.2011, 00:22
DioD

offline
Опыт: 45,134
Активность:
Extremator ты блин лечись или не пиши на форумах, не шаришь совершенно, а понтов мама не горюй.
все указанные абилки на одной системы, они не разлетаются и ничего с ними не происходит, так как там лимит на дамаг в 2048.
Старый 20.02.2011, 09:06
Extremator

offline
Опыт: 39,522
Активность:
DioD, да ты что? ...запусти лод и проверь сам... не?
Ну да, просще стороить системы на дамаг, считать и вычислять по разным симтемам...
А с другой стороны стоит многоуровеный скилл который имеет только один недочё - лаг при инициализации... и всё!
Огромная система _ VS _ лаг инициализации __________________ who WIN ?
Старый 20.02.2011, 14:44
Doc

offline
Опыт: 63,163
Активность:
Extremator, конечному пользователю глубоко в долину насколько у тебя огромные системы, ему важно насколько быстро и правильно работает карта, а ты выродок, который этого не понимает. Если в лод что-то не так, значит лишь что у автора кривые руки.
Старый 20.02.2011, 14:51
Velociraptor
В пространстве и времени
offline
Опыт: 14,801
Активность:
Doc, +1. Самому приходится иногда, если абилка должна даваться в процессе игры, а она многоуровневая, бить её на одноуровневые. Потому что лаг раздражает гораздо больше, чем кажется.
Старый 20.02.2011, 14:54
Extremator

offline
Опыт: 39,522
Активность:
Doc, мне глуко похер на то что ты меня оскарбляешь и на то что модерация этого не видет Оо
[+] замечание от DioD: 3 (обсуждение действий модератора) я всё вижу, просто ты раковый
Старый 20.02.2011, 15:00
Elisar

offline
Опыт: 2,031
Активность:
Extremator, в чем проблема посчитать бонус от первого скилла, посчитать бонус от второго скилла, посчитать бонус от третьего скилла, далее сложить первый бонус со вторым и прибавить третий, выставить уровни абилок что бы получилось нужное число?
система одна всего и строк в 30 кода вместится
Старый 20.02.2011, 21:06
DioD

offline
Опыт: 45,134
Активность:
система которая используется в доте даёт бонус в 2047 и прекрасно возвращает текущий бонус-битфлаги юнита, добавить еще бонусов не проблема.
Старый 21.02.2011, 05:30
Ответ

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

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

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

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



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