Новости Релиз Of Ash and Steel состоится 6 ноября
  • 4.388
  • 12
Of Ash and Steel: атмосферный экшен выходит 6 ноября 6 ноября станет важной датой для поклонников сложных и атмосферных игр - именно в этот день состоится релиз долгожданного проекта Of Ash and...
Новости В Of Ash and Steel начался закрытый плейтест
  • 10.187
  • 12
Разработчики "Русской Готики" объявили о старте закрытого плейтеста. Если вы оставляли заявку на участие, не забудьте проверить электронную почту или посмотреть свою библиотеку - возможно игра уже...
С Днём России!
  • 8.227
  • 6
Дорогие друзья! Поздравляю вас с Днём России! Этот праздник напоминает нам о богатой истории и культуре нашей страны, о её величии и непоколебимом духе народа! Желаю вам крепкого здоровья...
Новости Анонсирован Atomic Heart II
Иконка ресурса

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

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

Blackmail01

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

ToXaL1

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

Blackmail01

Гвардеец
Команда форума
Редактор раздела
Пользователь VIP
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.569
Реакции
1.588
Баллы
261
Лучшие ответы
78
#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
Сообщения
3.062
Реакции
699
Баллы
285
Лучшие ответы
38
#24
@Blackmail01, спасибо за код но тут много завязано на функциях RX_ которые отсутствуют в Г2 так что запарюсь да и не такой я умелец)))
 

Porcman00x

Новичок
Регистрация
19 Ноя 2023
Сообщения
2
Реакции
0
Баллы
0
Лучшие ответы
0
#25
Undefined function : RX_KEYPRESSED ( line 53 )
------------------

При добавление "Adjustable_Lockpick.vdf" в common\Gothic II\Data\Plugins .
Такая вот ошибка. Blackmail01, может сталкивался или сможешь помочь?

G2 скачена из Steam.
1754787814469.png
 
Последнее редактирование:
Автор
Автор
Blackmail01

Blackmail01

Гвардеец
Команда форума
Редактор раздела
Пользователь VIP
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.569
Реакции
1.588
Баллы
261
Лучшие ответы
78
#26
@Porcman00x, значит пытаетесь не на НБ поставить. Плагин для оригинальной готики и других модов не предназначен.
 

Билгот_туда

Новичок
Участник форума
Регистрация
2 Авг 2014
Сообщения
14
Реакции
3
Баллы
8
Лучшие ответы
0
#27
Не разобрался как применять быстрый ловкостный взлом, на клавишу силового не работает... или это наоборот только требование по ловкости добавляет и нужно все равно также руками отмычку вертеть?

Upd. Отбой, нашел, появляется новый пункт в настройках мода, по умолчанию левый shift + Y (если кто-то тоже будет искать).
 
Сверху Снизу