Ostatnie wiadomości

Jako, że jestem świeżo po ograniu modyfikacji muszę powiedzieć, że Ciemności Gordotha zrobiły na mnie duże wrażenie. Tym czym modyfikacja się zdecydowanie wyróżnia to widoczne położenie ogromnego nacisku autora na efekty dźwiękowe – to było bardzo filmowe gdy po danej kwestii dialogowej pojawiał się jakiś ustawiony dźwięk. Modyfikacja jest dopracowana, co także widać.

Miałbym jednak kilka uwag do ewentualnego przemyślenia. Jeżeli ktoś nie przeszedł modyfikacji to radziłbym nie otwierać spoilerów.

1. Niekiedy trudno było ze względu na te ciemności trafić do miejsc, do których wysyłała nas gra. Chodzi o miejsca poza obozem, bo o ile w Starym Obozie robiła ona naprawdę dobrą robotę o tyle ze względu na brak widoczności nawet z jednocześnie odpalonymi pochodnią i runą światła trudno było trafić do
Spoiler
nawiedzonej chatki, Kanionu Trolli czy z Kanionu Trolli do Starego Obozu.
Dobrym rozwiązaniem mogłoby być dodanie do gry mapy.


2. Miejscami dało się odczuć odrobinę przesadzony poziom trudności.
Spoiler
Mam tu na myśli cieniostwory z finałowej lokacji.


3. Uwagi co do wyglądu pewnej postaci.
Spoiler
Chodzi o tytułowego Gordotha. W wersji, którą ogrywałem miał on wygląd Śniącego co po prostu było słabe i psuło immersję. W wersji, którą ogrywał youtuber WAGON demon miał wygląd królowej pełzaczy. Myślę więc, że tytułowy demon dopiero czeka na swój właściwy, godny tej modyfikacji model ciała bo modyfikacja naprawdę jest przednia :)

Element zręcznościówki pod koniec też był ciekawy.

Polecam Ciemności Gordotha także tym graczom, którzy niekoniecznie celują w horrory. Jakość modyfikacji jest bardzo wysoka.
Ja bym zrobił to chyba tak:
1. Dialog z jakąś postacią. W tym dialogu wstawić

JakaśRzecz = Wld_GetDay();
2. Drugi dialog z tą postacią lub inną. Dialog ten ustawić na IMPORTANT żeby postać sama do nas zagadywała i w tym dialogu dać to co chcemy wywołać (np. zmianę rutyny u jakiejś innej postaci).

Ewentualnie próbowałbym poeksperymentować z podczepieniem tych rzeczy pod coś co każdy gracz będzie musiał prędzej czy później kliknąć - np. pod PC_Sleep w Sleepabit.d albo wypicie mikstury zdrowia.
A masz jakiś pomysł jak wywołać jakieś zdarzenie w świecie po upływie tych 2 dni? Np, że npc zmieni rutynę itp. Próbowałem podpiąć ten warunek Wld_GetDay pod wyzwalacz poklatkowy, ale nie zadziałało w ogóle.
Krótki poradnik na temat tego jak ustawić by dana postać odezwała się do nas dopiero za kilka dni. Sam pierdzieliłem się z ustawianiem tego zdecydowanie zbyt długo, więc może jakiemuś podobnemu świeżakowi oszczędzę podrzucając gotowca.


1. Najłatwiej opisywaną rzecz zrobić biorąc za wzór dialog ze Świstakiem.

Whistler_BuyMySword_Day = Wld_GetDay();
2. To coś wyżej rozpoczyna odliczanie. Dzieli się na "Whistler_BuyMySword_Day" i "Wld_GetDay". To pierwsze zmieniamy na to na co chcemy zmienić, a to drugie zostawiamy. Zróbmy więc sobie przykładowo:

JozekJeKielbaseIpowieNamCzyBylaDobra = Wld_GetDay();
3. Teraz to nasze "JozekJeKielbaseIpowieNamCzyBylaDobra" trzeba wpisać do pliku Story_Globals.d w folderze Gothic\_work\DATA\scripts\Content\Story

var int JozekJeKielbaseIpowieNamCzyBylaDobra;


5. A teraz najważniejsze: jak zrobić by warunek zadziałał tak jak chcemy

if (JozekJeKielbaseIpowieNamCzyBylaDobra <= (Wld_GetDay() - 2))To jest warunek, że coś się stanie PO UPŁYWIE dwóch (?) dni



(JozekJeKielbaseIpowieNamCzyBylaDobra > (Wld_GetDay() - 2))To jest warunek, że coś się stanie ZANIM UPŁYNĄ dwa (?) dni



I tyle. Jak jesteś nowicjuszem to lepiej ze znakami ">" i "<" nie kombinować, bo te znaki na gruncie skryptów Gothica rządzą się chyba jakąś własną ezoteryczną logiką, więc można dostać nerwicy i zmarnować od groma czasu na zabawę z tym szajsem. Po prostu weź z działającego gotowca i miej to z głowy :)
III tura właśnie wystartowała. Ilość poprawek była większa niż się spodziewałem więc trochę to trwało.

https://www.youtube.com/watch?v=9lIZufgE2Vk

[PL] Mroczne Tajemnice 2.5 Unofficial Rebalance - przedpremierowy Q&A-live!
26 cze 2025, 17:00
func void EndlessNight ()
{
var int ptr; ptr = MEM_InstToPtr (MEM_SkyController);
var int skystateslist; skystateslist = MEM_ReadInt (ptr+316);
ptr = MEM_ReadIntArray (skystateslist, 4);

var int R_poly; R_poly = MEM_ReadInt (ptr+4);
var int G_poly; G_poly = MEM_ReadInt (ptr+8);
var int B_poly; B_poly = MEM_ReadInt (ptr+12);

var int R_fog; R_fog = MEM_ReadInt (ptr+16);
var int G_fog; G_fog = MEM_ReadInt (ptr+20);
var int B_fog; B_fog = MEM_ReadInt (ptr+24);

var int i; i = 0;

repeat (i, 7);
ptr = MEM_ReadIntArray (skystateslist, i);
MEM_WriteInt (ptr+4, R_poly);
MEM_WriteInt (ptr+8, G_poly);
MEM_WriteInt (ptr+12, B_poly);
MEM_WriteInt (ptr+16, R_fog);
MEM_WriteInt (ptr+20, G_fog);
MEM_WriteInt (ptr+24, B_fog);
end;
};

Przetestowałem w Gothic 1. Funkcja działa bardzo fajnie. Jest tylko problem z godzinami od szóstej (rano) do dziesiątej (rano). O szóstej (rano) jest bardzo widno, podobnie o siódmej (rano). Dopiero o dziewiątej (rano) zaczyna się robić trochę bardziej wieczorowo ale o nocy też trudno tu mówić. Szczególnie ta ósma (rano) i dziewiąta (rano) odstają. Oprócz tego wszystko ładnie śmiga :)
@frN i @Gother Dobra, rozgryzłem. frN mnie naprowadził, że parsowałem wyłącznie plik Gothic.src.

Rozwiązanie było głupio proste. Zamiast parsować przez Spacera po prostu trzeba było puścić GothicStarter_mod.exe znajdujący się w folderze Gothic\system. Jako początkujący modder z ostrożności wolałem parsować przez Spacera bo wiedziałem, że przed parsowaniem trzeba usunąć pliki OU.csl i OU.bin a w przypadku parsowania przez GothicStarter_mod.exe nie wiedziałem czy nie trzeba czego analogicznie usuwać by się nie duplikowało.

Temat do zamknięcia. Oczywiście dziękuję obu Panom i leci po propsie.
Po pierwsze nie wiem czemu robisz sobie taką krzywdę i używasz spacera do parsowania skryptów, po drugie parsujesz tylko gothic.src (gothic.dat) czyli nie parsujesz w ogóle visualfx/particlefx to nic dziwnego, że nie ma twoich zmian w grze.
@frN W Spacerze biorę "Reparse Scriptfiles" i zaznaczam "Gothic.src".
Jak parsujesz skrypty? Bo to raczej wygląda na to, że parsujesz tylko gothic.dat, a pozostałych już nie.
Do góry