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

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

Ответ
 
inhuman89

offline
Опыт: 3,019
Активность:
100 уровней способности
Всем привет.
У меня есть способность, которая понижает врагу или повышает союзнику % от определенной характеристики.
На данный момент я сделал это путем создания 6! способностей на основе "повышения характеристик":
1ая 100 уровней с повышением силы от 0 до 99
2ая 100 уровней с понижением силы от 0 до -99
и тд.
Все они спрятаны в скрытом спелбуке
Проблема в том, что это очень сильно увеличивает время загрузки карты, собственно вопрос как сделать это более легким путем (если возможно), или хотя бы узнать как реализовано данное в доте или как уменьшить влияние такого количества многоуровневых способностей на загрузку карты.
Спасибо
Старый 19.08.2010, 16:23
RSQR

offline
Опыт: 29,316
Активность:
добавлять Предмет:Повышение характеристик(сила) с отрицательным значением нэ?
Старый 19.08.2010, 16:25
inhuman89

offline
Опыт: 3,019
Активность:
более одной такой способности не вызывает эффекта, я пробовал
Старый 19.08.2010, 16:27
JassMan
свободен
offline
Опыт: 4,193
Активность:
Судя по всему в доте они меняют id способности (от пердмета) и снова добавляют герою
Старый 19.08.2010, 16:31
inhuman89

offline
Опыт: 3,019
Активность:
JassMan, ты хочешь сказать, что если бы в доте было то что я хочу сделать то там вместо 6 способностей по 100 лвлов было бы 600 но по 1 уровню?
Старый 19.08.2010, 16:34
ZregerZ
Мы - лёд!
offline
Опыт: 7,029
Активность:
inhuman89,
добавлять Предмет:Повышение характеристик(сила) с отрицательным значением нэ?
Тебе уже дали ответ
Старый 19.08.2010, 16:47
inhuman89

offline
Опыт: 3,019
Активность:
мне нужно чтобы количество отображалось зеленым/красными циферками, то что вы предлагаете с предметами можно и триггерно менять атрибуты
inhuman89 добавил:
Ну что, неужели никто не подскажет как это сделать правильнее или хотя бы как это сделано в доте у вайпера
Старый 19.08.2010, 17:24
Doc

offline
Опыт: 63,163
Активность:
как уменьшить влияние такого количества многоуровневых способностей на загрузку карты.
перегонять данные в слк.
Старый 19.08.2010, 18:14
Fa1korn
Silenced by Fa1korn
offline
Опыт: 2,578
Активность:
А что если сделать вместо 100 уровней 2 абилки по 10 уровней: первая уменьшает десятки, а вторая единицы.
Старый 19.08.2010, 19:01
RSQR

offline
Опыт: 29,316
Активность:
inhuman89
Положительный эффект отрицательным не сделаешь. я про то текст зелёный\красный. можно только поставить отрицательное значение и перекрасить текст в красный
Старый 19.08.2010, 19:10
Ksan

offline
Опыт: 13,248
Активность:
inhuman89, а не судьба триггерно добавлять нужную характеристику? Оо
Старый 19.08.2010, 19:13
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Все просто. На каждую характеристику нужно по 10 способностей, этого хватит, чтоб увеличивать от 0 до 1024. Если нужен минус, то соответственно нужно чуть больше.
Создаем 10 способностей и проставляем им значения типа 1, 2, 4. 8, 16, 32, ... 1024.
Алгоритм примерно такой:
loop
    exitwhen currentBonusIndex<0
    if (Pow(2,currentBonusIndex)<=currentBonusAmount) then
        UnitAddAbility(u,bonusAbilityArray[currentBonusIndex]
        currentBonusAmount-=R2I(Pow(2,currentBonusIndex))
        currentBonusIndex--
    endif
endloop
Старый 19.08.2010, 19:21
inhuman89

offline
Опыт: 3,019
Активность:
Rescuer:
Положительный эффект отрицательным не сделаешь
сделаешь, отрицательное значение способности повышения характеристик отображается красным.
Ksan, нет не судьба
Hellfim, спасибо за идею, пойду попробую,если что я могу обратится к тебе в лс за помощью?
Старый 19.08.2010, 20:06
inhuman89

offline
Опыт: 3,019
Активность:
Да всем спасибо, буду пробовать по методу Hellfim,
inhuman89 добавил:
Hellfim:
loop
exitwhen currentBonusIndex<0
if (Pow(2,currentBonusIndex)<=currentBonusAmount) then
UnitAddAbility(u,bonusAbilityArray[currentBonusIndex]
currentBonusAmount-=R2I(Pow(2,currentBonusIndex))
currentBonusIndex--
endif
endloop
хотя, было бы здорово если бы мне ктото помог разобраться вот с этим.. обьясните какой тут принцип
Старый 19.08.2010, 21:08
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
inhuman89, ну у нас есть 10 способностей со значениями степеней двоек. currentBonusIndex - текущая степень двойки, currentBonusAmount - кол-во этого бонуса. Этот алгоритм для положительных чисел.
Старый 19.08.2010, 21:26
Shadowlbonel

offline
Опыт: 83
Активность:
Я делал по способу Fa1korn, 3 абилки по 10 уровней, отвечают за единицы, десятки, сотни, вполне работоспособно.
Старый 19.08.2010, 21:47
Ответ

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

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

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

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



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