Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 111
  • 0
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...
Новости Моддеры Oblivion Remastered нашли способ внедрения абсолютно любых скриптов
  • 218
  • 1
Сообщество моддинга Oblivion Remastered (ORM) переживает настоящий расцвет. После долгих месяцев работы, энтузиасты научили игру работать с мощным скриптовым языком Lua, открыв перед создателями...
Новости Tainted Grail: The Fall of Avalon — Польская «Skyrim» теперь официально
  • 1.586
  • 24
23 мая 2025 после двух лет успешного раннего доступа в Steam польская студия Questline наконец представила свою фэнтези-RPG в полной версии. Tainted Grail: The Fall of Avalon доступна на ПК...

Решено Список мест для сейвов и ловушек на сундках.

Статус
Закрыта

vavi

Наемник
Участник форума
Регистрация
13 Июл 2022
Сообщения
574
Реакции
88
Баллы
63
Лучшие ответы
3
#1
Готовлю небольшой челлендж для своего следующего прохождения. Хочу выставить ограничения на сейвы (в определённых местах) и ловушки включить.
На сколько я помню, ловушки всегда на одних и тех же сундуках, просто срабатывать могут по-разному. (Где-то нежить призовётся, где-то ядом жахнет)
Всё это с 40% аснк, как в соседнем треде посоветовали.
 

Beleriand

Паладин
Пользователь VIP
Участник форума
Регистрация
9 Сен 2021
Сообщения
4.448
Реакции
2.306
Баллы
401
Лучшие ответы
359
#2
есть кольцо от Скипа (в Яркендаре), его надеваешь, и никакие ловушки на сундуках не срабатывают (даже тот что в ратуше на 2 этаже). И когда у тебя 500+ здоровья, то ни одна ловушка тебя не шотнет.
а по точкам сохранения не подскажу, нигде не видел такого списка
 

~𝔻𝕒𝕣𝕜𝕊𝕚𝕕𝕖~

Живая легенда
Почётный пользователь
Участник форума
Регистрация
17 Мар 2022
Сообщения
7.989
Реакции
4.653
Баллы
582
Лучшие ответы
275
#3
Я ни разу не играл с ограниченными сохранениями, но полагаю, что как минимум в точках телепорта они будут.

По ловушкам. Они в строго определённых сундуках, но могут и не прокнуть. По видам ловушек - их виды могут меняться на конкретном сундуке, но обратил внимание, что ловушки с призывом всегда на одних и тех же сундуках, но сам призыв может отличаться - могут заспавниться скелеты-дохлиши, в может и демоническая нежить.

Что касаемо ограничений по сохранению - как по мне это ненужная душка. Если у тебя есть привычка сохраняться перед каждым мобом, то ты и здесь продолжишь это делать, только с кучей беготни.
 

Blackmail01

Наемник
Участник форума
Регистрация
27 Дек 2019
Сообщения
909
Реакции
899
Баллы
186
Лучшие ответы
50
#4
По точкам сохранения данные есть в скриптах. Многие из них с определёнными условиями. Например, в лагере охотников можно сохраняться после вступления к ним. Может кто захочет гайд по точкам этим написать. Функция rx_cansavenofree
Я точно не. Я даже против ограничений всяческих по сохранениям. Что только растягивает игровой процесс.
 

Vorfol

Труженик
Участник форума
Регистрация
26 Май 2020
Сообщения
405
Реакции
100
Баллы
64
Лучшие ответы
22
#5
есть кольцо от Скипа (в Яркендаре), его надеваешь, и никакие ловушки на сундуках не срабатывают (даже тот что в ратуше на 2 этаже). И когда у тебя 500+ здоровья, то ни одна ловушка тебя не шотнет.
а по точкам сохранения не подскажу, нигде не видел такого списка
точно знаю сундуки в Яркендаре могут 700+ вдарить. я был удивлён немало
 

Beleriand

Паладин
Пользователь VIP
Участник форума
Регистрация
9 Сен 2021
Сообщения
4.448
Реакции
2.306
Баллы
401
Лучшие ответы
359
#6
точно знаю сундуки в Яркендаре могут 700+ вдарить. я был удивлён немало
если бы видео записал с подтверждением, то было бы неплохо... я тестировал на разных сундуках, больше 500 мгновенного урона не получал нигде (постепенный урон яда не считается)
так или иначе в Яркендаре получаем кольцо с защитой от ловушек
 

Blackmail01

Наемник
Участник форума
Регистрация
27 Дек 2019
Сообщения
909
Реакции
899
Баллы
186
Лучшие ответы
50
#7
если бы видео записал с подтверждением, то было бы неплохо... я тестировал на разных сундуках, больше 500 мгновенного урона не получал нигде (постепенный урон яда не считается)
так или иначе в Яркендаре получаем кольцо с защитой от ловушек
Чисто теоретически магическая ловушка может на 700 урона вдарить. Но это практически невозможно. Нужно чтобы случайное число от 0 до 600 выпало 600. И магическая защита ГГ была = 0. И сундук должен быть самый жирный. Иначе меньше урона.
Код:
func void activate_trap(var int chesttype, var int traptype) {
    var int trapchance;
    var int dexunchance;
    var int trapon;
    var int damagebasic;
    var int magicvisualfx;
    var int spawnnecrom;
    var int sbmode_damage;

    if (rx_avanfistring) {
        return;
    };
    if (trapstatus == true) {
        if (hero.attribute[atr_dexterity] /*5*/ > 100) {
            dexunchance = ((talentcount_picklock * 2) + 10) + (hero.attribute[atr_dexterity] /*5*/ - 100);
        }
        else {
            dexunchance = (talentcount_picklock * 2) + 10;
        };
        if (((chesttype == 0) || (chesttype == 1)) || (chesttype == 2)) {
            trapon = false;
        };
        if (chesttype == 3) {
            if (dexunchance < 600) {
                trapchance = 600 - dexunchance;
            }
            else {
                trapchance = 1;
            };
            if (hlp_random(1000) < trapchance) {
                trapon = true;
            }
            else {
                trapon = false;
            };
        }
        else if (chesttype == 4) {
            if (dexunchance < 750) {
                trapchance = 750 - dexunchance;
            }
            else {
                trapchance = 1;
            };
            if (hlp_random(1000) < trapchance) {
                trapon = true;
            }
            else {
                trapon = false;
            };
        }
        else if (chesttype == 5) {
            if (dexunchance < 900) {
                trapchance = 900 - dexunchance;
            }
            else {
                trapchance = 1;
            };
            if (hlp_random(1000) < trapchance) {
                trapon = true;
            }
            else {
                trapon = false;
            };
        }
        else if (chesttype == 6) {
            if (dexunchance < 1000) {
                trapchance = 1000 - dexunchance;
            }
            else {
                trapchance = 1;
            };
            if (hlp_random(1000) < trapchance) {
                trapon = true;
            }
            else {
                trapon = false;
            };
        };
        if (trapon == true) {
            if (traptype == 1) {
                sbmode_damage = (5 - sbmode) * 15;
                if (sbmode_damage < 1) {
                    sbmode_damage = 1;
                };
                damagebasic = 150 + (hlp_random(sbmode_damage) * chesttype);
                if (resistpoisonknow == false) {
                    if (hero.attribute[atr_hitpoints] /*0*/ > (damagebasic + 1)) {
                        ai_printred("В сундуке была ядовитая ловушка!");
                        npc_changeattribute(hero, atr_hitpoints, -damagebasic);
                        rx_poisonhero();
                        rx_playeffect("SPELLFX_INCOVATION_GREEN", hero);
                        rx_playeffect("SPELLFX_BLOODDEAD1", hero);
                    }
                    else {
                        if (rx_nexthitignore) {
                            rx_useprotectpotion();
                            return;
                        };
                        ai_stopprocessinfos(hero);
                        hero.aivar[4] = false;
                        player_mobsi_production = mobsi_none;
                        npc_changeattribute(hero, atr_hitpoints, -hero.attribute[atr_hitpoints_max] /*1*/);
                        ai_printred("В сундуке была ядовитая ловушка!");
                        rx_poisonhero();
                        rx_playeffect("SPELLFX_INCOVATION_GREEN", hero);
                        rx_playeffect("SPELLFX_BLOODDEAD1", hero);
                        ai_drawweapon(hero);
                        ai_removeweapon(hero);
                    };
                };
            }
            else if (traptype == 2) {
                sbmode_damage = (5 - sbmode) * 20;
                if (sbmode_damage < 1) {
                    sbmode_damage = 1;
                };
                damagebasic = 100 + (hlp_random(sbmode_damage) * chesttype);
                if (damagebasic > hero.protection[prot_fire] /*3*/) {
                    damagebasic = damagebasic - hero.protection[prot_fire] /*3*/;
                }
                else {
                    damagebasic = 100;
                };
                if (hero.attribute[atr_hitpoints] /*0*/ > (damagebasic + 1)) {
                    npc_changeattribute(hero, atr_hitpoints, -damagebasic);
                    ai_playani(hero, "S_FIRE_VICTIM");
                    rx_playeffect("SPELLFX_BLOODDEAD1", hero);
                    ai_stopfx(hero, "VOB_MAGICBURN");
                    npc_stopani(hero, "S_FIRE_VICTIM");
                }
                else {
                    if (rx_nexthitignore) {
                        rx_useprotectpotion();
                        return;
                    };
                    ai_stopprocessinfos(hero);
                    hero.aivar[4] = false;
                    player_mobsi_production = mobsi_none;
                    b_say(hero, hero, "$Dead");
                    npc_changeattribute(hero, atr_hitpoints, -hero.attribute[atr_hitpoints_max] /*1*/);
                    ai_playani(hero, "S_FIRE_VICTIM");
                    ai_drawweapon(hero);
                    ai_removeweapon(hero);
                    ai_stopfx(hero, "VOB_MAGICBURN");
                    npc_stopani(hero, "S_FIRE_VICTIM");
                };
            }
            else if (traptype == 3) {
                sbmode_damage = (5 - sbmode) * 25;
                if (sbmode_damage < 1) {
                    sbmode_damage = 1;
                };
                damagebasic = 100 + (hlp_random(sbmode_damage) * chesttype);
                if (damagebasic > hero.protection[prot_magic] /*5*/) {
                    damagebasic = damagebasic - hero.protection[prot_magic] /*5*/;
                }
                else {
                    damagebasic = 100;
                };
                if (hero.attribute[atr_hitpoints] /*0*/ > (damagebasic + 1)) {
                    npc_changeattribute(hero, atr_hitpoints, -damagebasic);
                }
                else {
                    if (rx_nexthitignore) {
                        rx_useprotectpotion();
                        return;
                    };
                    ai_stopprocessinfos(hero);
                    hero.aivar[4] = false;
                    player_mobsi_production = mobsi_none;
                    b_say(hero, hero, "$Dead");
                    npc_changeattribute(hero, atr_hitpoints, -hero.attribute[atr_hitpoints_max] /*1*/);
                    ai_drawweapon(hero);
                    ai_removeweapon(hero);
                };
                magicvisualfx = hlp_random(4);
                if (magicvisualfx == 0) {
                    rx_playeffect("spellFX_BELIARSRAGE", hero);
                    rx_playeffect("SPELLFX_BELIARSRAGE_TARGET_CLOUD", hero);
                    rx_playeffect("SPELLFX_BELIARSRAGE_COLLIDE", hero);
                    rx_playeffect("SPELLFX_BLOODDEAD1", hero);
                }
                else if (magicvisualfx == 1) {
                    rx_playeffect("SPELLFX_ICECUBE", hero);
                    rx_playeffect("SPELLFX_ICESHIELD_COLLIDE", hero);
                    rx_playeffect("SPELLFX_BLOODDEAD1", hero);
                }
                else if (magicvisualfx == 2) {
                    rx_playeffect("SPELLFX_FEAR", hero);
                    rx_playeffect("SPELLFX_FEAR_WINGS", hero);
                    rx_playeffect("SPELLFX_FEAR_WINGS2", hero);
                    rx_playeffect("SPELLFX_FEAR_GROUND", hero);
                    rx_playeffect("SPELLFX_BLOODDEAD1", hero);
                }
                else {
                    if (magicvisualfx == 3) {
                        rx_playeffect("SPELLFX_SKULL_COLLIDEFX", hero);
                        rx_playeffect("SPELLFX_GREENTENTACLE_TARGET", hero);
                        rx_playeffect("SPELLFX_BREATHOFDEATH_TARGET", hero);
                        rx_playeffect("SPELLFX_BLOODDEAD1", hero);
                    };
                };
            }
            else {
                if (traptype == 4) {
                    sbmode_damage = (5 - sbmode) * 5;
                    if (sbmode_damage < 1) {
                        sbmode_damage = 1;
                    };
                    spawnnecrom = sbmode_damage + (hlp_random(sbmode_damage) * chesttype);
                    if (spawnnecrom >= 90) {
                        rx_saveparservars();
                        wld_spawnnpcrange(hero, demonlord /*44265*/, 1, 500.0);
                        rx_restoreparservars();
                    }
                    else if (spawnnecrom >= 80) {
                        rx_saveparservars();
                        wld_spawnnpcrange(hero, demon /*44217*/, 1, 500.0);
                        rx_restoreparservars();
                    }
                    else if (spawnnecrom >= 70) {
                        rx_saveparservars();
                        wld_spawnnpcrange(hero, skeleton_warrior_dark /*45122*/, 2, 500.0);
                        rx_restoreparservars();
                    }
                    else if (spawnnecrom >= 60) {
                        rx_saveparservars();
                        wld_spawnnpcrange(hero, skeleton_warrior /*45115*/, 2, 500.0);
                        rx_restoreparservars();
                    }
                    else if (spawnnecrom >= 50) {
                        rx_saveparservars();
                        wld_spawnnpcrange(hero, skeleton_dark /*45104*/, 2, 500.0);
                        rx_restoreparservars();
                    }
                    else if (spawnnecrom >= 40) {
                        rx_saveparservars();
                        wld_spawnnpcrange(hero, skeleton /*45090*/, 2, 500.0);
                        rx_restoreparservars();
                    }
                    else if (spawnnecrom >= 30) {
                        rx_saveparservars();
                        wld_spawnnpcrange(hero, lesser_skeleton_dark /*45089*/, 2, 500.0);
                        rx_restoreparservars();
                    }
                    else if (spawnnecrom >= 20) {
                        rx_saveparservars();
                        wld_spawnnpcrange(hero, lesser_skeleton /*45087*/, 2, 500.0);
                        rx_restoreparservars();
                    }
                    else if (spawnnecrom >= 10) {
                        rx_saveparservars();
                        wld_spawnnpcrange(hero, gobbo_skeleton /*44638*/, 2, 500.0);
                        rx_restoreparservars();
                    }
                    else {
                        rx_saveparservars();
                        wld_spawnnpcrange(hero, gobbo_skeleton /*44638*/, 1, 500.0);
                        rx_restoreparservars();
                    };
                    rx_playeffect("SPELLFX_SKULL_COLLIDEFX", hero);
                    snd_play("MFX_FEAR_CAST");
                    rx_playeffect("FX_EarthQuake", hero);
                };
            };
        };
    };
};
 

romuka

Наемник
Участник форума
Регистрация
24 Июн 2017
Сообщения
674
Реакции
310
Баллы
151
Лучшие ответы
101
#8

Scout92

Герой
Команда форума
Модератор раздела
Почётный пользователь
Участник форума
Регистрация
14 Ноя 2016
Сообщения
5.556
Реакции
1.910
Баллы
571
Лучшие ответы
584
#9
Я кстати тут вспомнил, что есть список мест сохранения, правда он на АБ. Но вроде в НБ +- также, просто ещё новые кое-где добавили для удобства. Например, в Храме Спящего перед финальным боссом и на Идорате где-то. А то раньше вообще приходилось постоянно в начало бегать и обратно - кайф.
 
Последнее редактирование:
Статус
Закрыта
Сверху Снизу