Новости В Of Ash and Steel начался закрытый плейтест
  • 3.856
  • 9
Разработчики "Русской Готики" объявили о старте закрытого плейтеста. Если вы оставляли заявку на участие, не забудьте проверить электронную почту или посмотреть свою библиотеку - возможно игра уже...
С Днём России!
  • 4.969
  • 6
Дорогие друзья! Поздравляю вас с Днём России! Этот праздник напоминает нам о богатой истории и культуре нашей страны, о её величии и непоколебимом духе народа! Желаю вам крепкого здоровья...
Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 3.185
  • 2
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...

В процессе Эффектные эффекты: как перевесить эффекты(не визуал!) со стрел на само оружие?

Ержан

Новичок
Участник форума
Регистрация
22 Авг 2022
Сообщения
20
Реакции
0
Баллы
6
Лучшие ответы
0
#1
вопрос в чистом виде:
после декомпиляции марвином хелпером, ищем файлы со стрелами/болтами . находим, например, огненные itrw_addon_firearrow.d:
instance ITRW_ADDON_FIREARROW(C_ITEM)
{
NAME = "Огненная стрела";
MAINFLAG = ITEM_KAT_MUN;
FLAGS = ITEM_BOW | ITEM_MULTI | ITEM_MISSION;
WEAR = WEAR_EFFECT;
VALUE = 30;
EFFECT = "SPELLFX_FIREARROW";
VISUAL = "ItRw_Arrow_Sky_Claim.3ds";
MATERIAL = MAT_WOOD;
DESCRIPTION = NAME;
TEXT[3] = "Наносит дополнительный урон огнем";
TEXT[4] = "Шанс поджечь противника: 35%";
TEXT[5] = NAME_VALUE;
COUNT[5] = VALUE;
INV_ANIMATE = TRUE;
INV_ANIMATE = 1;
};
дальнейший поиск по файлам по эффекту EFFECT = "SPELLFX_FIREARROW" результата не дал.
А хочется сделать так, чтобы эффект поджога (с %% шансом) повесить например на булаву или, например, на сам лук/арбалет вне зависимости от стрел которыми он в данный момент заряжен (кстати, эффекты стакнутся если поджог и от лука и от стрел? а если заморозка и огонь: повесят оба?).
куда для instance с_item прописывается эффект взаимодействия (поджог,заморозка, отхил)? и в каком скрипте эти эффекты посмотреть можно?

или ещё пример:
в игре есть молот (Ледяной молот), с локации ледяные горы орков:
instance ITMW_2H_ICEHAMMER(C_ITEM)
{
NAME = "Ледяной молот";
COND_ATR[2] = ATR_STRENGTH;
COND_VALUE[2] = 400;
DAMAGETOTAL = 400;
DAMAGETYPE = DAM_BLUNT;
DESCRIPTION = NAME;
FLAGS = ITEM_2HD_AXE | ITEM_MISSION;
INV_ANIMATE = 1;
MAINFLAG = ITEM_KAT_NF;
MATERIAL = MAT_WOOD;
ON_EQUIP = EQUIP_2H_ICEHAMMER;
ON_UNEQUIP = UNEQUIP_2H_ICEHAMMER;
RANGE = 150;
VALUE = 2000;
VISUAL = "ice_hammer_2h.3DS";
TEXT[0] = "Дробящий урон: 400";
TEXT[1] = "Длина оружия: 150 | Двуручное";
TEXT[3] = "Пробивание брони: 35%";
TEXT[2] = "Требуется силы: 400";
TEXT[4] = "Шанс заморозить: 30%";
TEXT[5] = NAME_VALUE;
COUNT[5] = VALUE;
RX_SETWEIGHTVALUE(SELF, RX_W_CRUSHINDEX, 2);
RX_SETWEIGHTVALUE(SELF, RX_W_MELEEWEAPONINDEX, 8);
};
я в глаза долблюсь, но в упор не вижу, где прописывается функция на шанс 30% заморозку при ударе этим молотом.
Вспоможение не помешало бы...
 

Blackmail01

Гвардеец
Команда форума
Редактор раздела
Пользователь VIP
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.274
Реакции
1.293
Баллы
251
Лучшие ответы
70
#2
@Ержан, заморозка, как и большинство других штук от оружия прописаны огромной в функции rx_weapondamage
C:
        if ((((((hlp_isitem(otherweap, itmw_2h_icehammer) == true) && (!issplashdamage)) && (slf.aivar[43] != id_sandgolem)) && (slf.aivar[43] != id_ghost)) && (hlp_getinstanceid(slf) != hlp_getinstanceid(ogre))) && (slf.guild != gil_troll)) {
            if (rx_isboss(slf)) {
                if ((hero.attribute[atr_mana] >= 50) && rx_getchance(6)) {
                    ast_freezenpc(slf, 2, 0);
                    npc_changeattribute(hero, atr_mana, -50);
                };
            }
            else {
                if (rx_getchance(30)) {
                    ast_freezenpc(slf, 2, 0);
                };
            };
        };
Урон и доп. эффекты стрел ищи в функции rx_rangeweapon
 
Автор
Автор
Е

Ержан

Новичок
Участник форума
Регистрация
22 Авг 2022
Сообщения
20
Реакции
0
Баллы
6
Лучшие ответы
0
#3
@Ержан, заморозка, как и большинство других штук от оружия прописаны огромной в функции rx_weapondamage
C:
        if ((((((hlp_isitem(otherweap, itmw_2h_icehammer) == true) && (!issplashdamage)) && (slf.aivar[43] != id_sandgolem)) && (slf.aivar[43] != id_ghost)) && (hlp_getinstanceid(slf) != hlp_getinstanceid(ogre))) && (slf.guild != gil_troll)) {
            if (rx_isboss(slf)) {
                if ((hero.attribute[atr_mana] >= 50) && rx_getchance(6)) {
                    ast_freezenpc(slf, 2, 0);
                    npc_changeattribute(hero, atr_mana, -50);
                };
            }
            else {
                if (rx_getchance(30)) {
                    ast_freezenpc(slf, 2, 0);
                };
            };
        };
Урон и доп. эффекты стрел ищи в функции rx_rangeweapon
как ты сделал, чтобы показывалось?
if ((hero.attribute[atr_mana]
ибо у меня показывается так:
if (HERO.ATTRIBUTE[2] >= 50) && RX_GETCHANCE(6)
 

Blackmail01

Гвардеец
Команда форума
Редактор раздела
Пользователь VIP
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.274
Реакции
1.293
Баллы
251
Лучшие ответы
70
#4
как ты сделал, чтобы показывалось?
if ((hero.attribute[atr_mana]
ибо у меня показывается так:
if (HERO.ATTRIBUTE[2] >= 50) && RX_GETCHANCE(6)
Декомпилировал скрипты с помощью decdat tool. В процессе - Обновление боссов
Регулярным выражением ещё потом лишние комментарии убрал.
 
Сверху Снизу