С Новым 2025 годом!
  • 1.279
  • 18
Вот и завершается этот год - местами странный, местами крутой, но точно запоминающийся, полный неожиданностей и ярких моментов. Мы благодарны вам за то, что вы были рядом, за все наши совместные...
Новости В Heroes of Might and Magic 3 теперь можно поиграть в веб-браузере
  • 638
  • 3
Совсем недавно энтузиасты из России смогли портировать игру HoMM3 в браузер. Причем веб-версия позволяет пройти все сюжетные компании и даже поиграть по сети. Чтобы сыграть в классику необходимо...
Новости Зал Славы российского геймдева - кто вошел в этом году?
  • 627
  • 7
Зал Славы - проект, который был создан в прошлом году для увековечивания достижений российских разработчиков, киберспортсменов, а также ключевых фигур российского геймдева. Инициатором проекта...
Новости Of Ash and Steel - Ответы на вопросы №4 от 20 декабря 2024 года
  • 498
  • 0
Ответы на вопросы №4 от 20 декабря 2024 года Приветствую вас, искатели приключений! Спасибо за все вопросы, которые вы оставили нам в Steam и Discord по игре Of Ash and Steel. Сегодня мы...
EthernalBreeze

EthernalBreeze 3.0 (build 6.0.0)

Нет прав доступа на загрузку
Сей мод направлен на расширение Нового Баланса в формат Дьяблоида и схожих рпг игр.
Автор
Автор
StonedWizzard

StonedWizzard

Гвардеец
Участник форума
Регистрация
10 Июн 2013
Сообщения
1.816
Реакции
1.702
Баллы
364
Лучшие ответы
0
Это с фиксами, но без пресетов. Я их обновлю сейчас и скину под этот патч.

@StonedWizzard, я сравниваю с предыдущим скриптом DamageUtils и вижу ты правил ту ошибку, которую я заметил, но там же не в одной строке был косяк, а в трех. Выделил на скрине.
Посмотреть вложение 148353
лол, поправлю) хотя по факту та функция вообще не используется.
 
Автор
Автор
StonedWizzard

StonedWizzard

Гвардеец
Участник форума
Регистрация
10 Июн 2013
Сообщения
1.816
Реакции
1.702
Баллы
364
Лучшие ответы
0
@StonedWizzard , я тут не так давно предлагал сделать привязку статов к типу предмета.
EthernalBreeze

Я могу заполнить json, но, естественно, для этого тебе нужно будет доработать генератор, чтобы он выбирал только подходящие статы.
Или, как вариант, я могу заполнить массивы, например:
const int StExt_Int_1hMelee[9] = { 1, 2, 5, 10, 11, 12, 13, 40, 150 };
Среди массива просто можно будет выбрать чарку для шмота.

Собственно начну, если дашь добро.
Так у каждого стата в конфиге генератора уже есть поле для запрещения спавна на определённых типах вещей
 

DanilaDNL

Труженик
Участник форума
Регистрация
2 Май 2018
Сообщения
278
Реакции
110
Баллы
47
Лучшие ответы
0
Так у каждого стата в конфиге генератора уже есть поле для запрещения спавна на определённых типах вещей
Ты про IncopatibleItemTypes ?
Просто нужно в 1 у всех возвести его?
1735720104451.png

А как оно работает вкратце можешь объяснить?
Как оно понимает куда ему повесится?
 

the9mm

Наемник
Участник форума
Регистрация
22 Окт 2017
Сообщения
569
Реакции
104
Баллы
85
Лучшие ответы
1
Автор
Автор
StonedWizzard

StonedWizzard

Гвардеец
Участник форума
Регистрация
10 Июн 2013
Сообщения
1.816
Реакции
1.702
Баллы
364
Лучшие ответы
0
Ты про IncopatibleItemTypes ?
Просто нужно в 1 у всех возвести его?
Посмотреть вложение 148356
А как оно работает вкратце можешь объяснить?
Как оно понимает куда ему повесится?
Тут самое интересное. Несовместимые типы, это "флаговое" значение, которое содержит в себе перечень типов вещей. Какие вещи запретить для спавна можно посчитать путём выполнения побитового "или" для перечня типов вещей. Потом после этой операции нужно будет записать сюда получившееся значение в десятичном формате.
По факту же нужно просто сложить значения типов вещей, которые не должны иметь подобные свойства и записать в это поле.

C++:
const int StExt_ItemType_None = 0;
const int StExt_ItemType_Helm = 1;                // 1 << 0 = 1
const int StExt_ItemType_Armor = 2;               // 1 << 1 = 2
const int StExt_ItemType_Pants = 4;               // 1 << 2 = 4
const int StExt_ItemType_Boots = 8;               // 1 << 3 = 8
const int StExt_ItemType_Gloves = 16;             // 1 << 4 = 16
const int StExt_ItemType_Belt = 32;               // 1 << 5 = 32
const int StExt_ItemType_Amulet = 64;             // 1 << 6 = 64
const int StExt_ItemType_Ring = 128;              // 1 << 7 = 128
const int StExt_ItemType_Shield = 256;            // 1 << 8 = 256
const int StExt_ItemType_Sword1h = 512;           // 1 << 9 = 512
const int StExt_ItemType_Sword2h = 1024;          // 1 << 10 = 1024
const int StExt_ItemType_Axe1h = 2048;            // 1 << 11 = 2048
const int StExt_ItemType_Axe2h = 4096;            // 1 << 12 = 4096
const int StExt_ItemType_Mace1h = 8192;           // 1 << 13 = 8192
const int StExt_ItemType_Mace2h = 16384;          // 1 << 14 = 16384
const int StExt_ItemType_MagicSword = 32768;      // 1 << 15 = 32768
const int StExt_ItemType_Staff = 65536;           // 1 << 16 = 65536
const int StExt_ItemType_Rapier = 131072;         // 1 << 17 = 131072
const int StExt_ItemType_DexSword = 262144;       // 1 << 18 = 262144
const int StExt_ItemType_Halleberd = 524288;      // 1 << 19 = 524288
const int StExt_ItemType_Spear = 1048576;         // 1 << 20 = 1048576
const int StExt_ItemType_DualL = 2097152;         // 1 << 21 = 2097152
const int StExt_ItemType_DualR = 4194304;         // 1 << 22 = 4194304
const int StExt_ItemType_Bow = 8388608;           // 1 << 23 = 8388608
const int StExt_ItemType_CrossBow = 16777216;     // 1 << 24 = 16777216
const int StExt_ItemType_MagicStaff = 33554432;    // 1 << 25 = 33554432
const int StExt_ItemType_Potion = 67108864;       // 1 << 26 = 67108864
const int StExt_ItemType_Scroll = 134217728;      // 1 << 27 = 134217728
const int StExt_ItemType_Torso = 268435456;        // 1 << 28 = 268435456
 

DanilaDNL

Труженик
Участник форума
Регистрация
2 Май 2018
Сообщения
278
Реакции
110
Баллы
47
Лучшие ответы
0
Тут самое интересное. Несовместимые типы, это "флаговое" значение, которое содержит в себе перечень типов вещей. Какие вещи запретить для спавна можно посчитать путём выполнения побитового "или" для перечня типов вещей. Потом после этой операции нужно будет записать сюда получившееся значение в десятичном формате.
По факту же нужно просто сложить значения типов вещей, которые не должны иметь подобные свойства и записать в это поле.

C++:
const int StExt_ItemType_None = 0;
const int StExt_ItemType_Helm = 1;                // 1 << 0 = 1
const int StExt_ItemType_Armor = 2;               // 1 << 1 = 2
const int StExt_ItemType_Pants = 4;               // 1 << 2 = 4
const int StExt_ItemType_Boots = 8;               // 1 << 3 = 8
const int StExt_ItemType_Gloves = 16;             // 1 << 4 = 16
const int StExt_ItemType_Belt = 32;               // 1 << 5 = 32
const int StExt_ItemType_Amulet = 64;             // 1 << 6 = 64
const int StExt_ItemType_Ring = 128;              // 1 << 7 = 128
const int StExt_ItemType_Shield = 256;            // 1 << 8 = 256
const int StExt_ItemType_Sword1h = 512;           // 1 << 9 = 512
const int StExt_ItemType_Sword2h = 1024;          // 1 << 10 = 1024
const int StExt_ItemType_Axe1h = 2048;            // 1 << 11 = 2048
const int StExt_ItemType_Axe2h = 4096;            // 1 << 12 = 4096
const int StExt_ItemType_Mace1h = 8192;           // 1 << 13 = 8192
const int StExt_ItemType_Mace2h = 16384;          // 1 << 14 = 16384
const int StExt_ItemType_MagicSword = 32768;      // 1 << 15 = 32768
const int StExt_ItemType_Staff = 65536;           // 1 << 16 = 65536
const int StExt_ItemType_Rapier = 131072;         // 1 << 17 = 131072
const int StExt_ItemType_DexSword = 262144;       // 1 << 18 = 262144
const int StExt_ItemType_Halleberd = 524288;      // 1 << 19 = 524288
const int StExt_ItemType_Spear = 1048576;         // 1 << 20 = 1048576
const int StExt_ItemType_DualL = 2097152;         // 1 << 21 = 2097152
const int StExt_ItemType_DualR = 4194304;         // 1 << 22 = 4194304
const int StExt_ItemType_Bow = 8388608;           // 1 << 23 = 8388608
const int StExt_ItemType_CrossBow = 16777216;     // 1 << 24 = 16777216
const int StExt_ItemType_MagicStaff = 33554432;    // 1 << 25 = 33554432
const int StExt_ItemType_Potion = 67108864;       // 1 << 26 = 67108864
const int StExt_ItemType_Scroll = 134217728;      // 1 << 27 = 134217728
const int StExt_ItemType_Torso = 268435456;        // 1 << 28 = 268435456
Ого. Сложновато.
Я отлично разбираюсь, когда приводят пример.
Можешь привести пример, где ты например StExt_ItemType_Sword1h запрещаешь брать параметр StExt_PcStats_Index_2hMastery?
1735726404715.png

Думаю мне хватит 1го примера.
 
Автор
Автор
StonedWizzard

StonedWizzard

Гвардеец
Участник форума
Регистрация
10 Июн 2013
Сообщения
1.816
Реакции
1.702
Баллы
364
Лучшие ответы
0
Ого. Сложновато.
Я отлично разбираюсь, когда приводят пример.
Можешь привести пример, где ты например StExt_ItemType_Sword1h запрещаешь брать параметр StExt_PcStats_Index_2hMastery?
Посмотреть вложение 148360
Думаю мне хватит 1го примера.
тупо для мечей это 512 и будет.
для всех одноручных типов это будет:
StExt_ItemType_Shield + StExt_ItemType_Sword1h + StExt_ItemType_Axe1h + StExt_ItemType_Mace1h + StExt_ItemType_MagicSword + StExt_ItemType_Rapier + StExt_ItemType_DexSword + StExt_ItemType_DualL + StExt_ItemType_DualR или же
256 + 512 + 2048 + 8192 + 32768 + 131072 + 262144 + 2097152 + 4194304
1735726869488.png

Обрати внимание что в двоичном представлении у нас 9 единиц, что логично ибо мы сложили 9 флагов. Вообще если вводить последовательно 2, 4, 8, 16... и тд, то можно увидеть как одна лишь единица смещается влево, характеризуя собой определённый и конкретный бит. Короче обычные битовые операции из любого учебника по яп.
 

DanilaDNL

Труженик
Участник форума
Регистрация
2 Май 2018
Сообщения
278
Реакции
110
Баллы
47
Лучшие ответы
0
Ааа. Стоп. Перечитав 10 раз я понял. Подверди...
Для того, чтобы заблокировать стат StExt_PcStats_Index_2hMastery на StExt_ItemType_Sword1h я пишу в IncopatibleItemTypes число
512
А чтобы заблокировать StExt_PcStats_Index_2hMastery на типах (StExt_ItemType_Sword1h,StExt_ItemType_Axe1h,StExt_ItemType_Mace1h) я пишу 10752 в поле IncopatibleItemTypes, что значит (512 + 2048 + 8192) ?
--- Добавлено: ---

Да. Написали одновременно. Понял кароч) Спасибо большое!
 

khellzhao

Труженик
Участник форума
Регистрация
22 Ноя 2021
Сообщения
295
Реакции
116
Баллы
55
Лучшие ответы
0
рефлект и урон не в ту школу пофиксили?
 
Автор
Автор
StonedWizzard

StonedWizzard

Гвардеец
Участник форума
Регистрация
10 Июн 2013
Сообщения
1.816
Реакции
1.702
Баллы
364
Лучшие ответы
0
Сверху Снизу