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

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

Ответ
 
Borodach

offline
Опыт: 5,767
Активность:
[СИСТЕМА] Many Attribute System
В данной системе вы можете редактировать юнитам 13 основных характеристик и 13 дополнительных
  • + Хорошее разнообразие для РПГ
  • + Более сложный расчет с кем стоит драться
  • + Больше возможностей для новых способностей
  • + 13 основных аттрибутов, которые влияют на дополнительные такие как: Физ.Урон, Маг.Урон,Точность,Уклонение,Криты,Здоровье,Мана, Скорость атаки
  • + Прокачка оружия, убийством. Типы оружий, опыт, бонусы можно настроить самим.
  • + Возможность просмотра в мультиборде или текстаге
  • -- Надо отказатся от ваших орбов
  • -- Сложная новичкам
Система пока еще в стадии доработки, но основной триггер с вашими данными о юнитах не будет менятся
В триггере "Info" немного о том как пользоваться
Прикрепленные файлы
Тип файла: w3x MSS v 0.07.w3x (184.2 Кбайт, 16 просмотров )
Тип файла: w3x MSS v 0.08.w3x (196.7 Кбайт, 43 просмотров )

Отредактировано Borodach, 31.12.2013 в 16:41.
Старый 08.11.2013, 19:04
youtube
сктыщь
offline
Опыт: 8,025
Активность:
-- Сложная новичкам
тогда смысл от нее? не новичкам она будет бесполезна
Старый 08.11.2013, 20:58
Borodach

offline
Опыт: 5,767
Активность:
youtube, Есть люди у кого пока нет опыта сделать такое, но хватает ума копировать и пользоваться функциями .
Старый 08.11.2013, 21:35
Borodach

offline
Опыт: 5,767
Активность:
Обновил до 0.08
-Исправил несколько багов
-Добавил типы оружий
-Добавил прокачку каждого оружия, убийством
-Добавил возможность просмотра статы текстагом или мультибордом (можно тем и другим)
-Для удобства добавлены функции спрятать или показать мультиборд
Вот не знаю как мультиборд работает в мультиплеере и хотелось попросить желающих проверить, есть ли дессинк или отображение "чужих" статов, то есть когда другой герой выбирает БЕ, а статы показиваются в твоей.
Старый 31.12.2013, 09:55
Anufis

offline
Опыт: 6,290
Активность:
Borodach:
Вот не знаю как мультиборд работает в мультиплеере и хотелось попросить желающих проверить, есть ли дессинк или отображение "чужих" статов, то есть когда другой герой выбирает БЕ, а статы показиваются в твоей.
Наработку нет возможности посмотреть, но в мультиборде рекомендую
  1. записать в строку значение, которое надо вписать в мультиборд
  2. взять ячейку мультиборда в переменную
  3. if GetLocalPlayer...... then
    ВписатьВЯчейку(mb,s)
    endif
Старый 31.12.2013, 12:27
Borodach

offline
Опыт: 5,767
Активность:
Anufis, Вот у меня сделано:
if GetLocalPlayer != Player() then
return
endif
ВписатьВЯчейку(mb,s)
Так будет норм работать?

Отредактировано Borodach, 31.12.2013 в 17:43.
Старый 31.12.2013, 16:04
Hate
конь вакуумный
offline
Опыт: 43,030
Активность:
нужно каждому игроку показывать свой мульти, а не стралюдать локальным перезаписыванием ячеек
Старый 31.12.2013, 18:18
Borodach

offline
Опыт: 5,767
Активность:
Hate, слышал лишние переменные и действия будут... вот так эксперментирую
Старый 31.12.2013, 19:25
Anufis

offline
Опыт: 6,290
Активность:
Цитата:
Сообщение от Borodach
~Hate, слышал лишние переменные и действия будут... вот так эксперментирую

Код:
nothing MultiboardSetStat(player p,integer row,integer stat) {
    unit u=PlayerCharacter(p)
    multiboarditem mb=MultiboardGetItem(MB,row,1)
    integer value=GetHeroSecondaryStat(u,stat)
    integer level=GetHeroLevel(u)
    integer cap1=8*level//мягкий кап характеристики
    integer cap2=16*level//жесткий кап характеристики
    string s=""
    if value==0 then
      s="0"
    elseif value<cap1 then
      s="|c0000ff00"+I2S(value)+"|r"
    elseif value<cap2 then
      s="|c00ffff00"+I2S(value)+"|r"
    else
      s="|c00ff0000"+I2S(value)+"|r"
    endif
    if GetLocalPlayer()==p then
      MultiboardSetItemValue(mb,s)
    endif
    mb=null
    u=null
}

nothing MultiboardSetStat2(player p,integer row,string s) {
    multiboarditem mb=MultiboardGetItem(MB,row,3)
    if GetLocalPlayer()==p then
      MultiboardSetItemValue(mb,s)
    endif
    mb=null
}

Делаю как-то так, десинхронизаций нет.
Старый 01.01.2014, 13:31
Hate
конь вакуумный
offline
Опыт: 43,030
Активность:
кстати, а учитывается то что некоторые юниты могут по разному получать бонус от характеристик? вроде глянул, и тут для всех одинаково
рекомендовал бы не хранить тип оружия строкой, а юзать инт
а еще перевести это на структуры, было бы шустрее все таки и надежнее)
Старый 01.01.2014, 21:32
Borodach

offline
Опыт: 5,767
Активность:
Hate:
кстати, а учитывается то что некоторые юниты могут по разному получать бонус от характеристик?
Нет, мне кажется не актуальным было б так делать. Еще + к коду, + к сложности баланса и сложности понимания.
рекомендовал бы не хранить тип оружия строкой, а юзать инт
Так меньше вероятности что напутаю с числами и они будут пересекаться.
а еще перевести это на структуры
Мне пока лень учить структуры
Старый 04.01.2014, 23:48
Hate
конь вакуумный
offline
Опыт: 43,030
Активность:
Borodach:
Мне пока лень учить структуры
тот же массив, только в удобной обертке
Borodach:
Так меньше вероятности что напутаю с числами и они будут пересекаться.
а где что пересечется? как вообще можно спутать 1 с 2?
Старый 05.01.2014, 07:04
Buulichkaa
Делаю спеллы за еду
offline
Опыт: 20,146
Активность:
Borodach, поняв алгоритм структур можно действовать и на массивах, а про пересечение лол) алгоритм будет делать все за вас.
Старый 05.01.2014, 12:42
ScorpioT1000
Работаем
online
Опыт: отключен
Используйте Перечисления вместо голых чисел!
Пример:
  enum (moves) { MOVING_ANIM_STATE_WALK, MOVING_ANIM_STATE_WALKBACK, MOVING_ANIM_STATE_STOP }

  void MovingAnimationControl (unit u, integer state) {
      if (state == MOVING_ANIM_STATE_WALK) {
          SetUnitTimeScale(u, 1)
          SetUnitAnimationByIndex(u, "Walk" )
      } elseif (state == MOVING_ANIM_STATE_WALKBACK) {
          SetUnitTimeScale(u, -1)
          SetUnitAnimationByIndex(u, "Walk" )
      } elseif (state == MOVING_ANIM_STATE_STOP) {
          SetUnitAnimation(u,"Stand")
          SetUnitTimeScale(u, 1)
      }
  }
Старый 13.01.2014, 07:45
Ответ

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

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

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

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



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