Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Ebhodini

Strony: [1] 2 3 4
1
Skrypty / Skrypty NPC - magów
« dnia: 2022-01-10, 11:48 »
Chodzi mi tu głównie o Gothic 2 nk ale jak ktoś wie jak to wygląda w jedynce albo czy są to bliźniacze skrypty to też może odpowiedzieć.
Jakie skrypty i w jaki sposób są odpowiedzialne za używanie run przez npc? Tzn jeśli jakiś mag ma ustawione na pierwszej pozycji zaklęć ognistą strzałę a na drugiej kulę ognia to będzie korzystał tylko z tej pierwszej? Jak na odwrót, czlyi kula ognia na1 to będzie jej używał dopóki mu się mama nie skończy? Co jak nie ma "założonej" żadnej runy a ma ją w eq, to biegnie z pięściami?
Z góry dzięki za odpowiedź :D

2
Spacer / Brak reakcji npc - G1
« dnia: 2021-03-21, 10:37 »
Ok, zrobiłem mały porządek z wszystkimi meshami i zenami w grze. Wgrałem te z czystej jedynki a problem z chatami w SO dalej występuje. Sprawdzałem różne kombinacje gildii we wszystkich obozach i tylko w SO nie ma reakcji. A skoro ZENy wgrane czyste a problem pozostaje to jednak może być to problemw samych skryptach. Temat do przeniesienia albo zamknięcia. Ale wciąż nie wiem gdzie jest błąd.

3
Spacer / Brak reakcji npc - G1
« dnia: 2021-03-19, 11:20 »
Nie zmieniałem, bo wtedy przy domyślnym makro w spacerze ZENy by się nie połączyły. Zdaję sobie sprawę, że są różne czynniki dlatego testuję wszystko na nowej grze gdzie nie posada się żadnej gildii i wtedy dostęp nawet do chat kopaczy powinien być "zabroniony". Plus zrobiłem dodatkowy test na bagnie i tam reakcje są prawidłowe.
A teraz pojawił sie kolejny problem... W ogóle nie moge odpalić spacera. Po kliknięciu w spacer.exe pojawia się okienko loadingu i zmniejszone okno spacera w lewym rogu, jak zwykle przy ładowaniu. A gdy zwykle uruchamiał się program teraz się wyłącza, nie ma żadnego komunikatu o błędzie i nie ma go w procesach tak jakby się sam zamykał.

Edit. Spacer naprawiony, warto robić backup ;)

4
Spacer / Brak reakcji npc - G1
« dnia: 2021-03-16, 10:44 »
Zakładam, że to nie problem ze skryptami, bo tych nie ruszałem tylko bardziej z kompilacją świata. Tzn, żaden z NPC w Starym Obozie nie reaguje na moje wejście do chaty czy budynku. Nie mówię tu o strażnikach bram tylko zwykłych NPC i tekstach typu "hej ty!" itp. Zakładam, że chodzi o to, że sztuczna inteligencja przez to, że trochę pozmieniałem SO przestała widzieć poprawnie albo całkowicie portale (bo to chyba one są odpowiedzialne za przynależność obiektu do frakcji). Ktoś się już kiedyś spotkał z czymś takim? Wie jak to nieinwazyjnie naprawić? Chodzi mi o to, żeby w  miarę możliwości nie usuwać miejsc, które dodałem do obozu.

5
Spacer / "Odmrożenie" wody po edycji 3ds
« dnia: 2021-03-07, 20:08 »
Miałem jakiś czas temu identyczny problem i poradziłem sobie dokładnie w taki sposób jaki opisuje Paradoxal.
Tylko uważaj bo w moim przypadku wszystkie rzeki zmieniły nurt i zamiast płynąć wzdłuż koryta prąd znosi na brzeg na całej długości. Nawet pisałem na tym forum o moim problemie ale nie otrzymałem odpowiedzi.

6
Skrypty / Nauczanie Baalów w obozie sekty
« dnia: 2021-02-25, 12:23 »
Napisałem prostą funkcję, dzięki której baalowie zamiast po prostu machać łapami wypowiadają tekst o śniącym. Przypisałem do odpowiedniego ZS itp. Ale potem zauważyłem że np taki Angar też ma rutynę Teaching. Więc zrobiłem nowe rutyny
ZS_Angar_Teaching i ZS_Baal_Teaching i  wszystko śmiga pamiętałem o dodaniu w pliku Ta.d i o modyfikacji rutyny, ZS_Listen.
Moje pytanie jest inne. Jak przechodzi się koło takiego NPC, który coś tam bełkocze podczas tej rutyny to jeśli się stoi w miejscu wszystko idzie płynnie, ale jak się poruszymy to rutyna jest przerywana i "ładuje" się kolejne jej wykonanie w pętli.
FUNC void B_Baal_Teach(var int guardreaktion)
{

if (guardreaktion == 0)
{
AI_Output (self, self,"DIA_BaalTaran_Sleeper_05_01"); //Śniący będzie naszym wyzwolicielem. Pięć lat temu ujawnił się nam przez Y'Beriona, naszego wielkiego mistrza.
}
if (guardreaktion == 1)
{
AI_Output (self, self,"DIA_BaalTaran_Sleeper_05_02"); //Od tej chwili, wyrzekliśmy się trzech bogów, co i tobie radzę.
}
[ ... ]
Wyżej jest kawałek kodu, takich powtórzeń jest 7 i to właśnie one przeskakują podczas poruszania.
Dałoby radę zrobić tak żeby dialogi wykonywały się od początku do końca jak już ruszą, oczywiście o ile gracz nie przerwie jakąś swoja akcją, rozmową czy wyciągnięciem broni itp.
Jeszcze kawałek odpowiadającego ZSa:
func void ZS_Baal_Teaching_Loop ()
{
        PrintDebugNpc (PD_TA_LOOP, "ZS_Teaching_Loop");

B_GotoFP (self, "TEACHING");     
var int guardreaktion;
if(guardreaktion>6) {guardreaktion=0;};

B_Baal_Teach(guardreaktion);
guardreaktion+=1;
};

7
Aha, ok to zupełnie zmienia postać rzeczy. W ogóle nie przyglądałem się samym animacjom. Widać czeka mnie dodatkowa robota ;)
Dzięki za pomoc. 

8
Właśnie próbowałem takich praktyk z rutyną ZS_PlayTune.d i dźwiękami lutni.
FUNC VOID ZS_PlayTune()
{
    PrintDebugNpc(PD_TA_FRAME,"ZS_PlayTune");
   
B_SetPerception (self);   
AI_SetWalkmode (self,NPC_WALK);
if !(Npc_IsOnFP(self,"PLAYTUNE"))
{
AI_GotoWP(self, self.wp);               // Gehe zum Tagesablaufstart
};
};

FUNC VOID ZS_PlayTune_Loop ()
{
    PrintDebugNpc(PD_TA_LOOP,"ZS_PlayTune_Loop");

if (Npc_HasItems (self,ItMiLute) <=1)
{
CreateInvItem ( self, ItMiLute);
};
if !(Npc_IsOnFP(self,"PLAYTUNE"))
{
AI_GotoFp (self,"PLAYTUNE");
AI_AlignToFP( self ); //Richte Dich aus
};
if (!C_BodyStateContains(self, BS_ITEMINTERACT))
{
AI_UseItemToState (self,ItMiLute,1);
};

};

FUNC VOID ZS_PlayTune_End()
{
AI_UseItemToState (self,ItMiLute,-1);

PrintDebugNpc(PD_TA_FRAME,"ZS_PlayTune_End");
};
Tak wygląda rutyna grania,
/* Instrum. */
INSTANCE Inst_Conga01 (C_SFX_DEF) {file= "Conga_01.wav"; vol = 65; };
INSTANCE Inst_Conga02 (C_SFX_DEF) {file= "conga_02.wav"; vol = 65; };
INSTANCE Inst_Lute (C_SFX_DEF) {file= "LUTE_01.wav"; vol = 20; };
INSTANCE Inst_Lute_A1 (C_SFX_DEF) {file= "LUTE_02.wav"; vol = 25; };
INSTANCE Inst_Lute_A2 (C_SFX_DEF) {file= "LUTE_03.wav"; vol = 30; };
INSTANCE Inst_Lute_A3 (C_SFX_DEF) {file= "LUTE_04.wav"; vol = 25; };
INSTANCE Inst_Lute_A4 (C_SFX_DEF) {file= "LUTE_05.wav"; vol = 20; };
INSTANCE Inst_Lute_A5 (C_SFX_DEF) {file= "LUTE_06.wav"; vol = 25; };
INSTANCE Inst_Lute_A6 (C_SFX_DEF) {file= "LUTE_07.wav"; vol = 30; };
A tak część kodu w SfxInst.d który odpowiada za lutnię. Ale nie mogę znaleźć skryptu, który by mi łączył te dwa pliki. Jakaś choćby jedna linijka gdzie wywoływana jest instancja Inst_Lute czy coś takiego :D

9
Chciałbym dodać rutynę pozdrowień gladiatorów na arenie. Już zrobiłem nowy ZS_ArenaGreetings.d dodałem w ta.d nową funkcję, sama rutyna działa poprawnie, tak jak sobie zakładałem. Tylko, że podczas wykonywania gestu chciałbym dodać krzyk "Za Gomeza". Znalazłem odpowiedni plik .wav iteraz moje pytanie. Jak go wywołać w tej funkcji ZS_ArenaGreetings_Loop? No i gdzie dodać instancję wykonywania tego dźwięku, w SFXINTSPEECH.d (ponieważ nie będzie przypisane do żadnego przedmiotu), czy SfxInst.d? Czy zrobić to zupełnie inaczej?

Pytanie drugie powiązanie z pierwszym. Chciałbym dodać alternatywną melodię graną na lutni. Wydaje mi się, że najprościej byłoby stworzyć lutnięV2 wizualnie identyczną ze zwykłą lutnią i tylko pozmieniać pliki .wav wykonywane (pewnie stworzyć dla rutyny i innych plików pochodnych wersje V2). Czy to będzie jeden ciągły utwór czy jak w oryginalnej lutni zlepek 6 krótkich dźwięków, to w tej chwili sprawa drugorzędna.

10
Skrypty / PrintScreen
« dnia: 2020-11-28, 16:41 »
Oo, dzięki wielkie. W takim razie będę szukał tej funkcji. Bo w sumie jak to mi się uda reszta skryptu to już jest prosta.

Edit. Ta funkcja to ConcatStrings(). Ogromne dzięki za pomoc.

11
Skrypty / PrintScreen
« dnia: 2020-11-28, 15:47 »
Dzięki za odpowiedź.
Chyba będę musiał się zainteresować tym silnikiem. Wszystko rozbija się o to, że stworzyłem skrypt gry w kości gdzie po każdym wylosowaniu rzutu wyswietla się na ekranie. Skrypt działa poprawnie i sprawnie, tylko jest w ogóle nie zoptymalizowany. Przez to, że każdy możliwy wynik musiałem printnąć osobno w zależności jaki wynik wypadł na kościach. Chciałbym w funkcji wywoławczej umieścić w parametrze krótki koment, np. "Wyrzuciłeś liczbę: " i teraz ta wartość (zakłądam że musi być właśnie przekonwertowana na stringa). W pliku externals.d znalazłem tego printa i w parametrach podaje się tylko jednego stringa plus parę innych parametrów niewyswietlanych na ekranie (pewnie sama zmiana w tym miejscu niewiele zmieni i trzeba będzie grzebać w tym silniku?)

Próbowałem też łączyć stringi:
var int DICE_SUK;
var string str;
[...]
DICE_SUK = Hlp_Random(12);
str = "Wyrzucona liczba oczek: " + IntToString(DICE_SUK);

Ale przy parsowaniiu wywala expected ';'

12
Spacer / Woda...
« dnia: 2020-11-14, 09:48 »
Piszę tutaj bo dotyczy to też wody, mam nadzieję, że ktoś to przeczyta...
Jak mozna zmienić nurt rzeki? Miałem taki sam problem jak wyżej, tzn. po modyfikacji 3ds woda mi "zamarzła". Zrobiłem wszystko jak wyżej i działa. ale nurt rzek zamiast biec wzdłuż koryta to biegnie w poprzek.
Dodatkowo po wgraniu Texture Packa woda cały czas skacze i miga z dużą częstotliwością. Czy zmiana tej jednej tekstury wody z nowej an starą przywróci płynność?

13
Skrypty / PrintScreen
« dnia: 2020-11-06, 23:17 »
Na ile modyfikowalna jest funkcja PrintScreen() w Gothic1?
wiem, że wymaga co najmniej 5 parametrów, pierwszy to albo string albo zmienna odnosząca się do stringa potem dwie zmienne osi X i Y do ustawienia napisu na ekranie, następnie string do odpowiedniego fontu i na koniec czas wyświetlania napisu. I moje pytanie czy można by zmodyfikować tą ostatnią zmienną tak aby wyświetlany napis znikał dopiero gdy w tym samym miejscu ma pokazać się inny napis? Nie chcę tam ustawiać sztywno sekund bo to co chcę zrobić zależy od wybieranych opcji przez gracza co wyklucza identyczny czas za każdym razem.

Edit. I jeszcze inne pytanie... jak zrobić konwersję inta, którego losuję w funkcji do stringa tak aby go potem wyświetlić?

14
MDS i animacje / Tworzenie nowego potwora - Gothic 1
« dnia: 2020-10-31, 09:49 »
Kurde szkoda... Dzięki za odpowiedź, może w takim razie ustawię orkowym psom gilię wilk a zmodyfikuję GIL_ORCDOG. Bo jak rozumiem modyfikacja w obrębie tych 42 zastanych gildii jest dozwolona?

15
MDS i animacje / Tworzenie nowego potwora - Gothic 1
« dnia: 2020-10-30, 10:01 »
Kontynuując nieco ten wątek. Stworzyłem nowego "potwora", zwykłego psa który będzie chodził po SO, nastawiony przyjaźnie do NPC itp. Oczywiście skrypty na podstawie zwykłego wilka, stworzyłem Mst_dog.d dodałem nową gildię w constants.d GIL_DOG jako 42 i rozszerzyłem GIL_MAX do 43.  W B_InitMonsterAttitudes.d dodałem odpowiednie funkcje dal psa jak i dodałem do wszystkich potworów i ludzi. W Spieces też dodałem odpowiednie liniki (oczywiście skoro to ma byc pies to zmodyfikowałem odpowiednio skrypty dla wilka). W końcu dodałem w Startup.d NPC dog w SO.

I tu część erroru z Zspy, nie wiem czy to przez to wywala błąd ale może...

                         GUILDS:Guild-attitude-table changed : GIL_ATTITUDES .... <oGuilds.cpp,#132>
                         GAM: Init-Script finished. .... <oGame.cpp,#846>
[i] 03:42 Info:  3 B:     ---------- 92% ---------- .... <zviewprogressbar.cpp,#142>
[i] 03:42 Info:  5 U:    PAR: Warning : Engine calls an undefined function. (index : 0 ) .... <zError.cpp,#462>

Szybki edit. Kiedyś udało mi się dodać takiego zwierza ale przypisując mu gildię chrząszcza jak widziałem w jakims poradniku, tylko wtedy każdy atak na chrząszcza kończył się atakiem NPCtów, które to widziały ponieważ chrząszcze miały ustawione FRIENDLY dla ludzi. Dlatego chciałem stworzyć nową gildię.

16
MDS i animacje / Tworzenie nowego potwora - Gothic 1
« dnia: 2020-09-23, 11:13 »
Chciałbym stworzyć nowego potwora, powiedzmy wilkołaka na podstawie ciała orka zwiadowcy i głowy wilka. Wypakowałem plik anims.VFD potem sourcerem dekompilowałem MDS orka i wilka. Odpaliłem blenderem .ASC orka zwiadowcy żeby zobaczyć co da się modyfikować, głównie zależy mi na samym modelu 3d, od tego chciałem zacząć na animacje i teksturowanie czas przyjdzie później, a w benderze ani w trybie object ani edit nie mogę modyfikować samego modelu jedynie szkielet. Czy powinienem otworzyć to innym programem czy muszę włączyć jakąś funkcję w belnderze?

17
Zmieniłem kodowanie z UTF-8 na ANSI i wszystko działa jak powinno.

18
Pierwotnie kodowanie jest w ANSI i takie też powinno być w moich skryptach?

19
Skrypty / Gothic 1 - brak polskich znaków po reparsingu
« dnia: 2020-09-17, 09:48 »
Mam problem z polskimi znakami w 1. Gothicu. Po jakiejkolwiek zmianie w skryptach, czy to dodanie nowego zadania czy modyfikacja istniejącego po reparsingu i uruchomieniu gry skrypty wykonują się poprawnie i bez żadnych błędów, ale nie czyta polskich znaków. Dzieje się to głównie podczas wywoływania funkcji PrintScreen(..) i niektórych dialogów (te które dodałem jakiś czas temu posiadają polskie znaki), albo przy zmianie nazwy NPC. Wszystkie dialogi i komunikaty, które były wcześniej w grze wczytują polskie znaki normalnie. Dodam jeszcze, że jest to problem świeży, wcześniej po odpowiednim dodaniu skryptu w samej grze polskie znaki pojawiały się normalnie.

20
Skrypty / "Zadanie" Butcha
« dnia: 2020-07-28, 22:34 »
Jak powiedziałeś tak zrobiłem. Wszystko działa jak należy, dzięki za pomoc.

Strony: [1] 2 3 4
Do góry