С Днём России!
  • 2.112
  • 6
Дорогие друзья! Поздравляю вас с Днём России! Этот праздник напоминает нам о богатой истории и культуре нашей страны, о её величии и непоколебимом духе народа! Желаю вам крепкого здоровья...
Новости Анонсирован Atomic Heart II
Новости Анонсирован ремастер Final Fantasy Tactics
  • 746
  • 1
Культовая пошаговая тактическая RPG от Square Enix получит второе дыхание. На проходящей выставке State of Play, где анонсируются игры для Play Station, состоялся анонс ремастера Final Fantasy...
Новости Моддеры Oblivion Remastered нашли способ внедрения абсолютно любых скриптов
  • 919
  • 4
Сообщество моддинга Oblivion Remastered (ORM) переживает настоящий расцвет. После долгих месяцев работы, энтузиасты научили игру работать с мощным скриптовым языком Lua, открыв перед создателями...
Иконка ресурса

Настраиваемый быстрый взлом. 1.1

Нет прав доступа на загрузку
Настраиваемые значения для быстрого взлома замков.
Автор
Автор
Blackmail01

Blackmail01

Гвардеец
Пользователь VIP
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.010
Реакции
1.023
Баллы
241
Лучшие ответы
60
#21
Полезный плагин, много времени экономит. Может для рубки деревьев тоже можно что-то придумать? По моему уже все можно быстро собирать, кроме них.
Для рубки деревьев или чтения аналоев от меня не жди. По крайней мере в ближайшее время.
Навыков не хватает.
На основе скриптов не вижу где там можно было бы это всё указать-прописать как со взломом. Остаётся вариант пилить ускоренные анимации. Там тоже не просто так. Декомпиляция - правка - компиляция. Попробовал на скорую руку - вылетает при заново скомпилированных анимациях. Толком разбираться с анимациями пока нет желания. Может когда-нибудь однажды.
 

ToXaL1

Рыцарь
Участник форума
Регистрация
8 Окт 2017
Сообщения
2.705
Реакции
586
Баллы
230
Лучшие ответы
37
#22
@Blackmail01, а есть возможность эту фишку переделать под Г2 обычную? хотел VDFS ом открыть так закрытый доступ! сам бы поковырял чуствую из за маг взлома не дает запуск!
 
Автор
Автор
Blackmail01

Blackmail01

Гвардеец
Пользователь VIP
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.010
Реакции
1.023
Баллы
241
Лучшие ответы
60
#23
@ToXaL1, Ничего не закрывал, шифрования тоже не делал.
Пробуй если хочется. Может и получится чего.
Код:
func event GameInit() {
    Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "DexLockpickDiff", 100);
    Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "ForceLockpickDiff", 100);
    Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "OldForceLockpickSystem", 0);
    Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "OldForceLockpickDiff", 12);
    Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "ManaMagicUnlock", 75);
    Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "SkipLPAnims", 1);
};
func void handleevent(var int ukey)
{
    var C_NPC PNPC;
    var int TMPMORPH;
    var int TMPMANA;
    var int TMPHP;
    var C_ITEM WEAPON;
    var int DAYNOW;
    var int TEMPPICKPOCKET;
    var C_ITEM CURHELM;
    var int BCHESTLVL;
    var int BCHESTSTRENGHNEED;
    var int BCHESTLOCKNEED;
    var string CONCATTEXT;
    var C_NPC DETWSP;
    var C_NPC DETWSPR;
    var int BHASRANGEWEAPON;
    var int UNLOCKUSERUNE;
    var int ForceLockpickDiff;
    var int LPAnims;
    var int OldForceLockpickDiff;
    var int OldForceLockpickSystem;
    var int DexLockpickDiff;
    var int ManaMagicUnlock;
    
    DexLockpickDiff = Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "DexLockpickDiff", 100);
    ForceLockpickDiff = Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "ForceLockpickDiff", 100);
    OldForceLockpickSystem = Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "OldForceLockpickSystem", 0);
    OldForceLockpickDiff = Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "OldForceLockpickDiff", 12);
    LPAnims=Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "SkipLPAnims", 1);
    ManaMagicUnlock=Hlp_ReadOptionInt("Gothic", "ADJUSTABLE_LOCKPICK", "ManaMagicUnlock", 75);
    
    if (ForceLockpickDiff < 1) || (ForceLockpickDiff > 1000)
    {
        ForceLockpickDiff = 100;
    };
    if (DexLockpickDiff < 1) || (DexLockpickDiff > 1000)
    {
        DexLockpickDiff = 100;
    };
    if (ManaMagicUnlock < 1) || (ManaMagicUnlock > 1000)
    {
        ManaMagicUnlock = 75;
    };
    if RX_KEYPRESSED("KEY_BREAKCHEST_STR", TRUE, FALSE)
    {
        if (C_BODYSTATECONTAINS(HERO, BS_ITEMINTERACT) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_CLIMB) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_CRAWL) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_JUMP) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_DIVE) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_SWIM) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_FALL) == FALSE) && (HLP_INVENTORYISOPEN() == FALSE) && (BDEVMODE == FALSE) && (STEAL_MODE == FALSE) && (MOUNT_UP == FALSE) && (SHAKOISON == FALSE) && (OPTIONCHECK == FALSE) && (HEROTRANS == FALSE) && (PLAYER_MOBSI_PRODUCTION == MOBSI_NONE) && (HERONOTMOBSI == FALSE) && (ENDGAMECREDITS == FALSE) && (CAPTURECHEAT == TRUE) && (HEROISDEAD == FALSE)
        {
            BCHESTLVL = MOB_GETBREAKNUM();
            if (OldForceLockpickSystem == 1)
            {
            BCHESTSTRENGHNEED = BCHESTLVL * OldForceLockpickDiff;
            } else
            {
            BCHESTSTRENGHNEED = ForceLockpickDiff; //BCHESTSTRENGHNEED = BCHESTLVL * 12;
            };
            UNLOCKUSERUNE = (NPC_HASITEMS(HERO, ITRU_UNLOCK) >= 1) && (PLAYER_TALENT_RUNES[99] == TRUE);
            if UNLOCKUSERUNE && (HERO.ATTRIBUTE[2] < ManaMagicUnlock)
            {
                AI_PRINT(NAME_MANANOREQUIREDAMOUNT);
            };
            if UNLOCKUSERUNE && (HERO.ATTRIBUTE[2] >= ManaMagicUnlock)
            {
                RX_ISMAGICUNLOCKCHEST = TRUE;
                MOB_SETBRAKECHEST();
                if BREAKCHEST
                {
                    if (LPAnims == 0)
                    {
                    AI_WAITMS(HERO, 10);
                    AI_PLAYANI(HERO, "T_FIBCAST_2_FIBSHOOT");
                    AI_PLAYANI(HERO, "T_FIBSHOOT_2_STAND");
                    };
                    RX_RESTOREMANA(-ManaMagicUnlock);
                    if RX_NEWMES
                    {
                        AI_PRINTITEMINFO("Информация", "Успешный взлом!", 2, 1);
                    }
                    else
                    {
                        AI_PRINTCLR("Успешный взлом!", 83, 152, 48);
                    };
                    B_SAY(HERO, HERO, "$ITEMREADY");
                    BREAKCHEST = FALSE;
                };
                RX_ISMAGICUNLOCKCHEST = FALSE;
            } else if RX_FORCEPICKLOCK
            {
                if NPC_HASEQUIPPEDMELEEWEAPON(HERO) == TRUE
                {
                    if HERO.ATTRIBUTE[4] >= BCHESTSTRENGHNEED
                    {
                        RX_ISMAGICUNLOCKCHEST = FALSE;
                        MOB_SETBRAKECHEST();
                        if BREAKCHEST == TRUE
                        {
                            if (LPAnims == 0)
                            {
                                AI_READYMELEEWEAPON(HERO);
                                if EQUIPEDINDEX_1H == TRUE
                                {
                                    AI_PLAYANI(HERO, "T_1HSBRKCHST");
                                }
                                else
                                {
                                    AI_PLAYANI(HERO, "T_2HSBRKCHST");
                                };
                                AI_WAITMS(HERO, 10);
                                AI_REMOVEWEAPON(HERO);
                            };
                            RX_RESTORESTAMINA(-25);
                            if RX_NEWMES
                            {
                                AI_PRINTITEMINFO("Информация", "Успешный взлом!", 2, 1);
                            }
                            else
                            {
                                AI_PRINTCLR("Успешный взлом!", 83, 152, 48);
                            };
                            BREAKCHEST = FALSE;
                            if HERO.ATTRIBUTE[5] < HLP_RANDOM(100)
                            {
                                NPC_SENDPASSIVEPERC(HERO, PERC_ASSESSQUIETSOUND, HERO, HERO);
                            };
                        };
                    }
                    else
                    {
                        AI_PLAYANI(HERO, "T_DONTKNOW");
                        B_SAY(HERO, HERO, "$TOOHEAVYFORME");
                        CONCATTEXT = CONCATSTRINGS("Для взлома требуется еще ", INTTOSTRING(BCHESTSTRENGHNEED - HERO.ATTRIBUTE[4]));
                        CONCATTEXT = CONCATSTRINGS(CONCATTEXT, " силы...");
                        AI_PRINT(CONCATTEXT);
                    };
                } else if RX_ISVAMPIRE() && RX_VAMP_SKILLFIST_NEWOVERLAY && (RX_VAMPIREWAYTYPE == 2)
                {
                    if HERO.ATTRIBUTE[4] >= BCHESTSTRENGHNEED
                    {
                        RX_ISMAGICUNLOCKCHEST = FALSE;
                        MOB_SETBRAKECHEST();
                        if BREAKCHEST == TRUE
                        {
                            if (LPAnims == 0)
                            {
                                AI_READYMELEEWEAPON(HERO);
                                AI_PLAYANI(HERO, "T_FIST_BREAKCHEST");
                                AI_WAITMS(HERO, 10);
                                AI_REMOVEWEAPON(HERO);
                            };
                            RX_RESTORESTAMINA(-25);
                            AI_PRINTITEMINFO("Информация", "Успешный взлом!", 2, 1);
                            BREAKCHEST = FALSE;
                            NPC_SENDPASSIVEPERC(HERO, PERC_ASSESSQUIETSOUND, HERO, HERO);
                        };
                    }
                    else
                    {
                        AI_PLAYANI(HERO, "T_DONTKNOW");
                        B_SAY(HERO, HERO, "$TOOHEAVYFORME");
                        CONCATTEXT = CONCATSTRINGS("Для взлома требуется еще ", INTTOSTRING(BCHESTSTRENGHNEED - HERO.ATTRIBUTE[4]));
                        CONCATTEXT = CONCATSTRINGS(CONCATTEXT, " силы...");
                        AI_PRINT(CONCATTEXT);
                    };
                }
                else
                {
                    AI_PLAYANI(HERO, "T_DONTKNOW");
                    AI_PRINT(PRINT_MISSINGWEAP);
                    B_SAY_OVERLAY(HERO, HERO, "$MISSINGITEM");
                };
            }
            else
            {
                AI_PLAYANI(HERO, "T_DONTKNOW");
                AI_PRINT(PRINT_MISSINGWEAPSKILL);
            };
        };
        
    } else if RX_KEYPRESSED("KEY_BREAKCHEST_DEX", TRUE, FALSE)
    {
        if (C_BODYSTATECONTAINS(HERO, BS_ITEMINTERACT) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_CLIMB) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_CRAWL) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_JUMP) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_DIVE) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_SWIM) == FALSE) && (C_BODYSTATECONTAINS(HERO, BS_FALL) == FALSE) && (HLP_INVENTORYISOPEN() == FALSE) && (BDEVMODE == FALSE) && (STEAL_MODE == FALSE) && (MOUNT_UP == FALSE) && (SHAKOISON == FALSE) && (OPTIONCHECK == FALSE) && (HEROTRANS == FALSE) && (PLAYER_MOBSI_PRODUCTION == MOBSI_NONE) && (HERONOTMOBSI == FALSE) && (ENDGAMECREDITS == FALSE) && (CAPTURECHEAT == TRUE) && (HEROISDEAD == FALSE)
        {
            if NPC_GETTALENTSKILL(HERO, NPC_TALENT_PICKLOCK) > 0
            {
                if HERO.ATTRIBUTE[5] >= DexLockpickDiff
                {
                    BCHESTLVL = MOB_GETBREAKNUM();
                    if BCHESTLVL < 4
                    {
                        BCHESTLOCKNEED = 1;
                    }
                    else
                    {
                        BCHESTLOCKNEED = BCHESTLVL / 3 - HERO.ATTRIBUTE[5] / 150;
                        if BCHESTLOCKNEED < 1
                        {
                            BCHESTLOCKNEED = 1;
                        };
                    };
                    if NPC_HASITEMS(HERO, ITKE_LOCKPICK) >= BCHESTLOCKNEED
                    {
                        MOB_SETBRAKECHEST();
                        if BREAKCHEST == TRUE
                        {
                            if (LPAnims == 0)
                            {
                            AI_PLAYANI(HERO, "T_PLUNDER");
                            };
                            SND_PLAY("PICKLOCK_SUCCESS");
                            if RX_NEWMES
                            {
                                AI_PRINTITEMINFO("Информация", "Успешный взлом!", 2, 1);
                            }
                            else
                            {
                                AI_PRINTCLR("Успешный взлом!", 83, 152, 48);
                            };
                            BREAKCHEST = FALSE;
                            NPC_REMOVEINVITEMS(HERO, ITKE_LOCKPICK, BCHESTLOCKNEED);
                            CONCATTEXT = CONCATSTRINGS("Потрачено ", INTTOSTRING(BCHESTLOCKNEED));
                            if BCHESTLOCKNEED >= 5
                            {
                                CONCATTEXT = CONCATSTRINGS(CONCATTEXT, " отмычек...");
                            } else if BCHESTLOCKNEED > 1
                            {
                                CONCATTEXT = CONCATSTRINGS(CONCATTEXT, " отмычки...");
                            }
                            else
                            {
                                CONCATTEXT = CONCATSTRINGS(CONCATTEXT, " отмычка...");
                            };
                            AI_PRINT(CONCATTEXT);
                        };
                    }
                    else
                    {
                        AI_PLAYANI(HERO, "T_DONTKNOW");
                        B_SAY_OVERLAY(HERO, HERO, "$PICKLOCKMISSING");
                        CONCATTEXT = CONCATSTRINGS("Для взлома требуется ", INTTOSTRING(BCHESTLOCKNEED));
                        if BCHESTLOCKNEED >= 5
                        {
                            CONCATTEXT = CONCATSTRINGS(CONCATTEXT, " отмычек...");
                        } else if BCHESTLOCKNEED > 1
                        {
                            CONCATTEXT = CONCATSTRINGS(CONCATTEXT, " отмычки...");
                        }
                        else
                        {
                            CONCATTEXT = CONCATSTRINGS(CONCATTEXT, " отмычка...");
                        };
                        AI_PRINT(CONCATTEXT);
                    };
                }
                else
                {
                    AI_PLAYANI(HERO, "T_DONTKNOW");
                    B_SAY(HERO, HERO, "$TOOHEAVYFORME");
                    CONCATTEXT = CONCATSTRINGS("Для взлома требуется ", INTTOSTRING(DexLockpickDiff - HERO.ATTRIBUTE[5]));
                    CONCATTEXT = CONCATSTRINGS(CONCATTEXT, " ловкости...");
                    AI_PRINT(CONCATTEXT);
                };
            }
            else
            {
                AI_PLAYANI(HERO, "T_DONTKNOW");
                B_SAY_OVERLAY(HERO, HERO, "$NOPICKLOCKTALENT");
                AI_PRINT(PRINT_NOPICKLOCKTALENT);
            };
        };
    }   
    else {
        handleevent_old(ukey);
    };
};
 

ToXaL1

Рыцарь
Участник форума
Регистрация
8 Окт 2017
Сообщения
2.705
Реакции
586
Баллы
230
Лучшие ответы
37
#24
@Blackmail01, спасибо за код но тут много завязано на функциях RX_ которые отсутствуют в Г2 так что запарюсь да и не такой я умелец)))
 
Сверху Снизу