Modding Gothica > Pytania i problemy

Podstawowe pytania i problemy

(1/10) > >>

Adanos:
Podstawowe pytania i problemy

[list=1]
[*]P: Przeczytałem pewien tutorial i brakuje mi katalogu (np. katalogu content, items)...
O: Zainstaluj odpowiednie GMDK (Gothic Mod Development Kit). Odnośnik znajdziesz w dziale download.

[*]P: Pomocy! Spacer/GothicStarter_mod mi się zawiesił!
O: Spokojnie. Program działa tyle, że wykonuje dość „potężne obliczenia”, przez które mamy wrażenie, że program nie odpowiada. Trwa to przeważnie od kilku do kilkunastu minut. Niektórzy radzą, aby w tym czasie zrobić sobie herbatkę albo kawkę ;) Aby zmniejszyć czas działania można powyłączać zbędne programy np. przeglądarkę internetową (FF,IE), program antywirusowy (NOD, Norton, Kaspersky, avast), program firewall (ZoneAlarm), komunikator (GG,AQQ,ICQ,jabber,tlen).

[*]P: Włączam Spacera, wszystko jest ok, ale nie ma okna głównego!
O: Spróbuj kombinację klawiszy ALT+CTRL+DEL, aby uruchomić menedżera zadań. Następnie zaznacz spacer.exe i daj maksymalizuj. Jeśli to nie pomoże, to poklikaj na pasku Spacera.  
O: Zainstaluj ten program, a mianowicie wypakuj z tego katalogu Spacer2Starter do katalogu gothic II\system.

[*]P: Czym otworzyć pliki *.d?
O: Wystarczy zwykły Notatnik, chociaż zaleca się używanie bardziej zaawansowanego programu np. Notepad++, który umożliwia „kolorową składnię” zapewne pomocną nowym skrypterom. Do tego Notepad++ nigdy nie pokazuje skryptu w jednym wierszu (tak czasami robi notatnik).

[*]P: Co zrobić, aby pojawiły się dialogi w grze?
O: Należy skompilować skrypty Spacerem. Więcej tu:
http://themodders.org/index.php?/topic/106-skryptykompilowanie-skryptow/

[*]P: Co to jest za opcja reparse scripts?
O: Reparse scripts jest to ponowne parsowanie skryptów. Parsowanie to inaczej analiza składniowa skryptów, która sprawdza, czy dany skrypt jest napisany poprawnie gramatycznie w danym języku programowania. Język skryptów Gothica jest językiem imperatywnym, C-podobnym (choć mocno okrojonym w stosunku do C).

[*]P: Co to jest kompilacja?
O: Kompilacja jest to tłumaczenie kodu napisanego w danym języku programowania na kod maszynowy. W czasie kompilacji można wyróżnić analizę leksykalną, składniową  i semantyczną.

[*]P: Co to jest egzemplarz?
O: Egzemplarz (ang. instance) to w programowaniu obiektowym wystąpienie, początek bytu obiektu określonej klasy. Egzemplarz oznacza konkretny obiekt istniejący w pamięci operacyjnej.

[*]P: Pomocy nie mogę wstawić pierwszych NPC-ów!
O: Aby wstawić pierwszego NPC-a należy najpierw utworzyć odpowiedni skrypt. Najłatwiej to przekopiować skrypt istniejącego NPC-a i pozmieniać interesujące nas parametry. Można także użyć programu Gothic NPC Maker znajdujący się w dziale download (możliwe że znajdują się tam inne programy pomocne przy tworzeniu moda). Gdy już mamy odpowiedni skrypt sprawdzamy, czy nie ma błędów składniowych za pomocą Spacera bądź GothicStartera. Jeśli nie ma, wpisujemy w pliku startup.d następujący wiersz (UWAGA wpis powinien być w odpowiednim miejscu, czyli w zakresie danej funkcji, która odpowiada za daną część świata!)

--- Kod: ---Wld_InsertNpc (egzemplarz_NPCa,"PUNKT_DROGI");
--- Koniec kodu ---

UWAGA!!! PUNKT_DROGI wielkimi literami!!!
Na wszelki wypadek należy się upewnić, czy dany punkt drogi istnieje, w przeciwnym wypadku nasz ukochany, utworzony przez nas NPC się nie pojawi!!! Jeśli uważamy, że wszystko zrobiliśmy ok, a nasz NPC się nie pojawia, to sprawdzamy kilka rzeczy:
- upewniamy się, czy nasz skrypt jest w odpowiednim katalogu
- sprawdzamy na kodach, czy nasz NPC się pojawia, jeśli się pojawia, to albo źle wpisaliśmy punkt drogi w pliku startup.d, albo uprzednio nie utworzyliśmy w Spacerze odpowiedniego punktu drogi, w przeciwnym wypadku prawdopodobnie nie sparsowaliśmy skryptów.

[*]P: Po wyłączeniu programu Spacer wyświetla mi się komunikat: "Memory leaks found!"
O: Nie należy przejmować się owym komunikatem. Każdy kto miał do czynienia ze Spacerem do G1 ma taki komunikat.

[*]P: Jak zrobić zakończenie moda? Tzn. jak po ukończeniu moda wyjść do menu/pulpitu?
O: W dialogu lub jakiejś funkcji należy użyć:

--- Kod: ---ExitGame (); //wyjście z gry
--- Koniec kodu ---
lub

--- Kod: ---ExitSession (); //wyjście do menu, tylko do G2!!!
--- Koniec kodu ---

[*]P: Co zrobić, aby NPC przemieścił się z jednego punktu drogi do drugiego?
Należy połączyć odpowiednie punkty drogi. Więcej tu: http://themodders.org/index.php?showtopic=46

[*]P: Co zrobić, jeżeli Spacer nie zapisał vobów w naszym świecie .ZEN?
O: Pierwszy sposób: Zapisz pod inną nazwą niż world.zen np. pod world1.zen. Następnie usuń world.zen i zmień nazwę z world1.zen na world.zen.
Drugi sposób: Plik ze światem zapisz w innej lokalizacji np. pulpit, po zapisie podmieniamy. Inaczej nie próbujcie, bo nadpisywanie nie działa.

[*]P: Jak utworzyć nową rutynę?
O: W pliku Ta.d dodajemy wiersz odnośnie nowej rutyny np.

--- Kod: ---func void TA_nowaRutyna (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint) {TA_Min (self, start_h,start_m, stop_h, stop_m, ZS_nowaRutyna, waypoint);};
--- Koniec kodu ---
W katalogu _Work\Data\Scripts\Content\Story\ZS tworzymy plik ZS_nowaRutyna.d no i ją tam definiujemy.

[*]P: Gdzie i co mam wpisać u NPC, żeby określić mu siłę, zręczność itp?
O: W pliku NPC
       
--- Kod: ---//-------- abilities --------
        attribute[ATR_STRENGTH]         = 35; //siła
        attribute[ATR_DEXTERITY]        = 35; //zręczność
        attribute[ATR_MANA_MAX]         = 0; //maksymalna ilość many
        attribute[ATR_MANA]             = 0; //mana
        attribute[ATR_HITPOINTS_MAX]= 160; //maksymalna ilość punktów życia
        attribute[ATR_HITPOINTS]        = 160; //punkty życia
--- Koniec kodu ---

[*]P: Jak zrobić dialog dla NPC typu ambient?
O: Dialog Ambientowi przypisuje się na zasadzie wartości voice. Wystarczy zajrzeć do skryptów w katalogu "B_AssignAmbientInfos".

[*]P: Jak zrobić, żeby w G2NK za siłę, zręczność, manę, walkę bronią itp. płaciło się ciągle 1 PN za 1 punkt umiejętności tak jak to było w G1 i zwykłej dwójce?
O: Otwórz plik B_GetLearnCostAttribute.d znajdujący się w katalogu
--- Kod: ---G:\Program Files\JoWood\Gothic II\_Work\Data\Scripts\Content\Story\B_Story
--- Koniec kodu ---
. A następnie zmień
--- Kod: ---kosten = (i); gdzie i={2,3,4,5} na kosten = (1);
--- Koniec kodu ---

[*]P: Jak zrobić nową gildię dla ludzi?
O: Nie da rady. Aczkolwiek można ją zrobić, ale same kłopoty są z nią. W takiej sytuacji należy wykorzystać istniejąca, zawsze można pozmieniać nazwy tych gildii.

[*]P: Jak zrobić, aby NPC pojawił się podczas gry?
O: Używasz
--- Kod: ---Wld_InsertNpc(egzemplarz_Npc, "PUNKT_DROGI");
--- Koniec kodu ---
np. w dialogu i wtedy podczas rozmowy z NPC pojawia się inny NPC w podanym punkcie drogi.

[*]P: Co zrobić, aby NPC za nami chodził?
O: Na początek w skrypcie postaci, która ma za nami chodzić wpisujemy odpowiednią rutynę:

--- Kod: ---FUNC VOID Rtn_Follow_2001 ()
{
   TA_FollowPC (00,00,23,00,"PUNKT_DROGI");
   TA_FollowPC (23,00,24,00,"PUNKT_DROGI");
};
--- Koniec kodu ---

Rozchodzi się o to "TA_FollowPC" i w dialogu wstawiasz

--- Kod: ---Npc_ExchangeRoutine (self,"FOLLOW");
self.aivar[AIV_PARTYMEMBER] = TRUE;
--- Koniec kodu ---
Odwracasz efekt w podobny sposób przez
--- Kod: ---ExchangeRoutine(self, "nazwa_rutyny");
--- Koniec kodu ---

[*]P: Gdzie w skryptach można z edytować treść głównego menu gry?
O: W tym katalogu są wszystkie skrypty menu: _Work\Data\Scripts\system\MENU. Chodzi o plik menu_main.d

[*]P: Jak zrobić księgę?
O: http://themodders.org/index.php?/topic/3238-ksiega/page__pid__27863#entry27863

[*]P: Jak sprawdzić za pomocą skryptów, czy dany NPC nie żyje?

O:

--- Kod: ---VAR C_NPC Cokowiek;
Cokowiek = Hlp_GetNpc(egzemplarz_NPC);
       
if (Npc_IsDead(Cokowiek))
{
   return 1;
};
--- Koniec kodu ---

[*]P: Pliki Ou.bin i Ou.csl za każdym razem powiększają się o kilka MB! Co zrobić, aby nie miały takich olbrzymich rozmiarów?
O: Przed każdym kompilowaniem skasujcie te pliki. Jak nie kasujecie to rozmiar ciągle rośnie i powstają przez to czasami błędy w dialogach.

[*]P: Nie mogę ustawić, aby kopacze atakowali cieni, strażników, magnatów, gdyż jeżeli ustawimy Wld_INSERTGUILDATTITUDES (GIL_VLK, ATT_HOSTILE, GIL_GRD); to na widok strażników kopacze uciekają, nawet jeżeli damy zmienną fight_tactic z COWARD na STRONG lub MASTER, to nie ma zmiany. Co decyduje o tym, że kopacze boją się strażników?
O: Decyduje o tym poziom postaci.

[*]P: Dlaczego utworzony przeze mnie NPC ma czerwoną teksturę?
O: Dzieje się tak, ponieważ Gothic nie odnajduje odpowiedniej tekstury twarzy. Należy teksturę twarzy umieścić w katalogu \_Work\Data\Textures\NPCs\Head.

[*]P: Zrobiłem nową zbroję i wszyscy mają tą zbroję na sobie i w dodatku inną założoną! Co mam zrobić?
O: http://themodders.org/index.php?/topic/3581-mds-rejestrowanie-modelu-zbroi/
[/list]

Jeśli macie jakieś pytania, sugestie, spostrzeżenia, to piszcie.

muttley:
Dodaj do punktu 4, ze notepad++ nigdy nie pokazuje skryptu w 1 linii (tak czasami mi notatnik robił).

Ok, dopisałem,
Adanos

RafalBudzis:
Ja bym dodał jeszcze jeden punkcik :/

12.Co zrobić jeżeli spacer nie zapisał vob`ów w naszym świecie .ZEN
Plik ze światem zapisz w innej lokalizacji np. pulpit po zapisie podmieniamy inaczej nie próbujcie bo nadpisywanie nie działa

to aż samo się prosi o dodanie ;)  wystarczy spojrzeć na tematy

http://themodders.org/index.php?showtopic=9165
http://themodders.org/index.php?showtopic=9175

muttley:
Spacer zawsze zapisuje voby - trzeba tylko wypakować światy (całe Worlds.vdf), a potem zmienić nazwę rozszerzenie .vdf na .vdf.disabled.

jesterret:
Co się stało z ostatnią stroną?

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej