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

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

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

Blackmail01

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

ToXaL1

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

Blackmail01

Гвардеец
Команда форума
Редактор раздела
Пользователь VIP
Участник форума
Регистрация
27 Дек 2019
Сообщения
1.219
Реакции
1.242
Баллы
251
Лучшие ответы
70
#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.739
Реакции
601
Баллы
230
Лучшие ответы
38
#24
@Blackmail01, спасибо за код но тут много завязано на функциях RX_ которые отсутствуют в Г2 так что запарюсь да и не такой я умелец)))
 
Регистрация
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.219
Реакции
1.242
Баллы
251
Лучшие ответы
70
#26
@Porcman00x, значит пытаетесь не на НБ поставить. Плагин для оригинальной готики и других модов не предназначен.
 
Сверху Снизу