dosinabox / g2nr_unofficial_update

Исходники скриптов, релизы, хотфиксы и тестовые версии неофициального обновления для игры "Готика 2: Ночь Ворона".
https://worldofplayers.ru/threads/36817
The Unlicense
13 stars 1 forks source link

B_Enter_NewWorld.d B_RemoveNpc #331

Closed Kor-Angar closed 3 years ago

Kor-Angar commented 3 years ago

скрипт каждый раз при загрузки мира пытается убрать НПС, которых уже ранее убрал. надо бы проверку добавить что бы не было такого насилия :-)

B_RemoveNpc(KDW_1400_Addon_Saturas_NW);
B_RemoveNpc(KDW_1401_Addon_Cronos_NW);
B_RemoveNpc(KDW_1402_Addon_Nefarius_NW);
B_RemoveNpc(KDW_1403_Addon_Myxir_NW);
B_RemoveNpc(KDW_1404_Addon_Riordian_NW);
B_RemoveNpc(KDW_1405_Addon_Merdarion_NW);
B_RemoveNpc(PIR_1301_Addon_Skip_NW);
B_RemoveNpc(PIR_1300_Addon_Greg_NW);
dosinabox commented 3 years ago

Это имеет смысл только при полном переходе на Wld_RemoveNpc. Обычный B_RemoveNpc просто убивает нпс и перемещает его в морг - в таком случае повторные убирания при каждой загрузке мира нужны. Хотя бы для того, чтобы у нпс не менялся распорядок дня и чтоб они не выпадали из морга.

Kor-Angar commented 3 years ago

в таких случаях обычно  ты делала проверку и на то включёна ли опция ;-)25.01.2021, 10:22, "dosinabox" notifications@github.com: Это имеет смысл только при полном переходе на Wld_RemoveNpc. Обычный B_RemoveNpc просто убивает нпс и перемещает его в морг - в таком случае повторные убирания при каждой загрузке мира нужны. Хотя бы для того, чтобы у нпс не менялся распорядок дня и чтоб они не выпадали из морга.

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.

dosinabox commented 3 years ago

Допустим:

func void B_ENTER_ADDONWORLD_Kapitel_1()
{
    if(RavenIsDead == TRUE)
    {
        if(ADW_Myxir_Removed_Forever == FALSE)
        {
            B_RemoveNpc(KDW_14030_Addon_Myxir_ADW);
            if(FullNPCRemoval == TRUE)
            {
                ADW_Myxir_Removed_Forever = TRUE;
            };
        };
    };
    if(MissingPeopleReturnedHome == TRUE)
    {
        if(ADW_STRF_Removed_Forever == FALSE)
        {
            B_RemoveNpc(STRF_1118_Addon_Patrick);
            B_RemoveNpc(STRF_1119_Addon_Monty);
            B_RemoveNpc(STRF_1120_Addon_Tonak);
            B_RemoveNpc(STRF_1121_Addon_Telbor);
            B_RemoveNpc(STRF_1122_Addon_Pardos);
            B_RemoveNpc(STRF_1128_Addon_Sklave);
            B_RemoveNpc(STRF_1129_Addon_Sklave);
            B_RemoveNpc(STRF_1130_Addon_Sklave);
            B_RemoveNpc(STRF_1137_Addon_Sklave);
            B_RemoveNpc(STRF_1138_Addon_Sklave);
            B_RemoveNpc(STRF_1139_Addon_Sklave);
            B_RemoveNpc(STRF_1140_Addon_Sklave);
            if(FullNPCRemoval == TRUE)
            {
                ADW_STRF_Removed_Forever = TRUE;
            };
        };
    };
};
func void B_ENTER_NEWWORLD_Kapitel_1()
{
    if(ENTERED_ADDONWORLD == TRUE)
    {
        if(NW_KDW_Removed_Forever == FALSE)
        {
            B_RemoveNpc(KDW_1400_Addon_Saturas_NW);
            B_RemoveNpc(KDW_1401_Addon_Cronos_NW);
            B_RemoveNpc(KDW_1402_Addon_Nefarius_NW);
            B_RemoveNpc(KDW_1403_Addon_Myxir_NW);
            B_RemoveNpc(KDW_1404_Addon_Riordian_NW);
            B_RemoveNpc(KDW_1405_Addon_Merdarion_NW);
            B_RemoveNpc(PIR_1301_Addon_Skip_NW);
            if(FullNPCRemoval == TRUE)
            {
                NW_KDW_Removed_Forever = TRUE;
            };
        };
        if(SC_GotPortalTempelWalkthroughKey == FALSE)
        {
            Wld_InsertNpc(Stoneguardian_MerdarionsSchluessel,"NW_TROLLAREA_PORTALTEMPEL_22");
            SC_GotPortalTempelWalkthroughKey = TRUE;
        };
    };
    if(GregIsBack == TRUE)
    {
        if(NW_Greg_Removed_Forever == FALSE)
        {
            B_RemoveNpc(PIR_1300_Addon_Greg_NW);
            if(FullNPCRemoval == TRUE)
            {
                NW_Greg_Removed_Forever = TRUE;
            };
        };
    };