Rozwiązane problemy 25994 9

O temacie

Autor dr inż. Fenix

Zaczęty 14.03.2008 roku

Wyświetleń 25994

Odpowiedzi 9

dr inż. Fenix

dr inż. Fenix

The Modders
Dekadent
posty262
Propsy130
  • The Modders
  • Dekadent
reaktywacja tematu:

Pomyślałem, że dobrze będzie stworzyć coś w stylu FAQ skryptów.
By nie pisać kilku tematów o tym samym, będę tu zbierać odpowiedzi z topiców z tego działu. Tak więc każdy za nim coś napisze, niech najpierw zajrzy tutaj!

To zaczynamy:

1.Jak powiększyć potwora?

Funkcją:
Mdl_SetModelScale (self, x, y, z) ;
self- instancja zmienianej postaci
x,y,z -długość, wysokość i szerokość. Do każdego argumentu dajemy liczbę zmiennoprzecinkową. np, jeśli damy 0.5 postać będzie dwa razy mniejsza, a gdy 2.0, będzie dwa razy większa.

2.Jak zmienić wygląd postaci?

Funkcją Mdl_SetVisualBody (); Jej argumenty w kolejności to:
self, //instancja danej postaci
"hum_body_Naked0", //model postaci
2, //tekstura postaci
1, //kolor skóry
"Hum_Head_Pony", //model głowy
3, //tekstura głowy
2, //tekstura zębów
-1 //zbroja noszona, jeśli jest -1 to zbroi brak

3.Jak zrobić, żeby NPC (w Gothicu 1) Pojawił się na przykład od drugiego rozdziału? I czy tak się da? Jeśli się nie da, to czy można zrobić, żeby pojawiał się do/po jaimś queście??


Funkcją Wld_InsertNpc ();

OrcElita, //instancja istoty którą przywołujemy
"OW_PATH_ORCENTRANCE" //WayPoint w którym się pojawi

dalej w pliku B_Kapitelwechsel.d odnajdujemy linijkę:
"else if (neues_Kapitel == 2)
{"

Poniżej wpisujemy funkcję przywołującą.
Co do pojawienia się po jakimś zadaniu/dialogu. Znajdujemy odpowiedni dialog postaci i wpisujemy funkcję w części "Condition".

6.12.2007

4. W czasie reparse'owania skryptów pojawia się błąd "Syntax Error".
Jest to błąd składniowy. Oznacza to, że w funkcji użyliśmy nieodpowiedniego argumentu.

Na przykład w funkcji Wld_InsertNpc (); mamy 2 argumenty, jeden typu C_NPC (instancja NPCa), a drugi typu String (ciąg znaków w nawiasie). Błędy pojawią się, jeśli użyjemy innych typów. Na przykład w miejsce instancji NPCa damy instancję przedmiotu (gdyż są to dwa różne typy). Podobnie jest w przypadku argumentu String, tu również nie możemy dać innego typu (np int), gdyż wywoła to błąd.

Kolejnym powodem dla którego wyświetla nam się wyżej wymieniony błąd jest, kolokwialnie mówiąc, "zjedzenie" przecinka. Na przykład:

Wld_InsertNpc (ItAt_Meatbug_01 "OW_PATH_ORCENTRANCE");

wyświetli nam błąd, gdyż komputer będzie próbował, do jednego argumentu przypisać dwa typy (i w dodatku niepasujące do argumentu), ponieważ każdy argument musi być oddzielony "," od innych.



Na razie wiem, że mało tego, ale mam nadzieję, iż w czasie, się zapełni. W razie niejasności, proszę kontaktować się ze mną na PW.
 
"Wolna wola jest iluzją!"

"Biorąc pod uwagę, że wszechświat jest układem zamkniętym, w którym wszystkie ruchy cząstek elementarnych, będących bodźcami organizmów żywych są determinowane ruchami Browna trwającymi od wielkiego wybuchu."

Jednak czy wszechświat to tylko cząstki elementarne?





"I am the blade of TheModders!"

Buła

Buła

Użytkownicy
wyłącz komputer i wyjdź z domu
posty2402
Propsy3163
NagrodyV
Profesjabrak
  • Użytkownicy
  • wyłącz komputer i wyjdź z domu

Buła

Rozwiązane problemy
#1 2008-03-27, 19:19(Ostatnia zmiana: 2008-11-26, 11:55)
27.03.08

5. Jak zrobić żeby NPC nas atakował (jak np. bandyta)

Do tego służy Npctype_ROGUE; w skrypcie NPC:

Cytuj
instance ORG_858_Quentin (Npc_Default)
{
   //-------- primary data --------
   
   name =               "Quentin";
   Npctype =            Npctype_ROGUE;
   guild =               GIL_NONE;    
   level =               12;
   
   voice =               7;
   id =               858;

Dodatkowo w G1 musimy w pliku B_SetRoguesToHostile.d dopisać linijkę:
var C_NPC Bandyta; Bandyta = Hlp_GetNpc(instance bandyty); Npc_SetTempAttitude(Bandyta,ATT_HOSTILE); Npc_SetAttitude(Bandyta,ATT_HOSTILE);
6. Jak zrobić w skrypcie wymianę towarów z NPC (kupowanie i sprzedawanie)

Musimy dopisać    trade = 1;:

Cytuj
instance  Stt_311_Fisk_Trade (C_INFO)
{
   npc         = Stt_311_Fisk;
   nr         = 800;
   condition   = Stt_311_Fisk_Trade_Condition;
   information   = Stt_311_Fisk_Trade_Info;
   permanent   = 1;
   description = "Pokaż mi swoje towary.";
   trade      = 1;
};

Towary jakie posiada NPC musimy mu wpisać do ekwipunku.


28.03.08

7. Jak zrobić żeby podczas dialogu NPC odwrócił się do nas tyłem?

Musimy użyć funkcji:
Cytuj
AI_TurnAway        (hero, self);

Jeśli chcemy żeby odwrócił się do innego NPC przodem musimy użyć:
Cytuj
AI_TurnToNpc(self, INSTANCJA_NPC);

01.04.08

8. Jak zrobić żeby NPC w trakcie dialogu wyciągnął lub schował broń?
Musimy wstawić w dialog funkcje:

Cytuj
AI_DrawWeapon (self);
AI_RemoveWeapon (self);

18.05.08

9. Czy orkowie mogą używać łuków i kusz?
Orkowie nie mogą używać łuków, ale mogą kusz.

10. Co oznacza błąd Redefined identifier
Ten błąd oznacza, że w skryptach istnieje już taki instance np.

Cytuj
PAR:Redefined identifier: DIA_MELVIN_EXIT(LINE 5)

29.05.08

10. Jak zrobić żeby NPC był martwy?

Wystarczy dopisać kilka linijek do startup.d. Przykład NPCa o instance FRI_90005_Roger:

Cytuj
Wld_InsertNpc (FRI_90005_Roger,"ROGER");

var C_NPC Roger;
Roger = Hlp_GetNpc(FRI_90005_Roger);
Npc_ChangeAttribute (Roger, ATR_HITPOINTS, -Roger.attribute[ATR_HITPOINTS_MAX]);

29.06.08

11. Co zrobić by opcja "KONIEC" w dialogu była na końcu?

Wystarczy ustawić jej numer 999:

Cytuj
///////////////////////////////////////////////////////////////////////
// Info EXIT
///////////////////////////////////////////////////////////////////////
INSTANCE DIA_Gerder_EXIT (C_INFO)
{
npc = VLK_999999_Gerder;
nr = 999;
condition = DIA_Gerder_EXIT_Condition;
information = DIA_Gerder_EXIT_Info;
permanent = TRUE;
description = DIALOG_ENDE;
};

17.07.08

12. Czemu nie działają dodane do moda dialogi?

To częsty problem wśród nowych modderów.
Polecam zastosować się do TEGO tutoriala.
Jeśli jednak nadal nie widać waszych dialogów w modzie usuńcie pliki GOTHIC.DAT, OU.BIN i OU.CSL, po czym skompilować skrypty i dialogi ponownie.
U mnie to zawsze pomaga.

Polecam też poczytać o kompilacji TUTAJ.

23.08.08

13. Jak zrobić nową gildię??

Jak na razie próby tworzenia nowych gildi kończyły się tylko masą błędów. Więc na razie nie da się utworzyć całkiem nowej gildi, ale dobrym sposobem jest użycie tych, do których nie można dołączyć, np. w G1: Guru, Magnaci...
Żeby ich użyć wystarczy zmienić ich nazwę w pliku _Work\Data\Scripts\Content\Story\Text.d

26 listopada 2008

14. Jak podczas dialogu zmienić imię NPC'owi?

Można zastosować:
Cytuj
var C_NPC ZMIENNA_NPC;
ZMIENNA_NPC = Hlp_GetNpc (INSTANCE_NASZEGO_NPC);
ZMIENNA_NPC.name = "Imię";
 

majaczek

majaczek

DreamVader
The Dreamer
posty404
Propsy191
Profesjabrak
  • DreamVader
  • The Dreamer

majaczek
DreamVader

Rozwiązane problemy
#2 2010-01-07, 20:11(Ostatnia zmiana: 2010-01-07, 20:13)
15. zdekompilowałem skrypty moda GothicSourcerem i nie chcą się skompilować ponownie, co mam robić?
ODP: GothicSourcerowi  zdarzają się błędy i jednym z njabardziej uciążliwych jest podmienianie dużych liczb na losowe identyfikatory (ale jeden dla jednej liczby). Więc jeśli pojawia ci się błąd w stylu "Unknown Identifier" a nie zmieniałeś skryptów, to wyślij kawałek skryptu autorowi modu - on ci powie jaką liczbą zamienić
UWAGA: zamień identyfikator na liczbę tylko w tych liniach gdzie są błędy, w pozostałych identyfikator jestużyty poprawnie!

16. zdekompilowałem skrypty moda rosyjskiego/greckiego/[w innym języku nie używającym łacińskich liter] i pojawiają się dziwne znaki zamiast liter danego języka w plikach *.d, co robić?
ODP: skrypty gothica jak większość programów pisane są w ascii, więc zdefiniowanych na stałe jest tylko 127 pierwszych znaków, pozostałe zależą od kodowania, aby otworzyć plik w innym kodowaniu niż te którego używa twój komputer zapisz plik jako plik tekstowy i otwórz w internet eksplorerze i wybierz z listy odpowiednie kodowanie (sprawdź kilka które są związane z danym językiem) i violla voila! wyświetlą ci się poprawne litery tego języka, jednak tekst skopiowany z eksplorera w tym formacie nie nadaje się do włożenia spowrotem w plikach *.d, ale możesz sobie dowolnie przetłumaczyć na polski/angielski/niemiecki/hiszpański itp.
PORADA: aby zająć się większymi plikami z rosyjskich modów wystarczy edytor BRED, a takźe pozwala on zapisać poprawnie skrypty rosyjskie

17. wreszcie udało mi się przetłumaczyć moda o którym mowa w punkcie 16, ale nie mogę uzyskać polskich liter w grze! co robić?
ODP: do pliku przetłumaczonego moda (archiwum *.mod) dodaj czcionki wypakowane z polskiej wersji gothica (pliki zawierające "FONT" w nazwie). po tym zabiegu i dodaniu moda do gry polskie znaki zaczną działać

18. zrobiłem moda w którym skompilowałem własne skrypty, jednak nie działają one w grze, co mam robić?
ODP: dodaj skompilowane pliki *.DAT i plik ou.bin do archiwum moda. w tym pomoże ci program GothicVDFS

19. chcę przetłumaczyć moda, ale nie znam się na skryptach... co robić?
ODP: zdekompiluj skrypty Gothic sourcerem i wyeksportuj teksty deadalus translator-em, uzyskasz tabelę tekstów do przetłumaczenia, którą możesz od razu poprawić na twoje tłumaczenie lub wyeksportować do pliku i plik przetłumaczyć. następnie gdy mamy tłumaczenie w tym programie, używamy "apply to SRC"
i uzyskamy skrypty które można skompilować zawierające nasze tłumaczenie, potem wystarczy dodać skompilowane pliki *.dat i plik ou.bin do pliku paczki *.mod programem Gothic VDFS
UWAGA: jeśli tłumaczysz translatorem a nie ręcznie, mogą ci się pozamieniać apostrofy na cudzysłowy, co zepsułoby skrypty po włączeniu tłumaczenia do nich więc powinieneś w odpowiednich miejscach pozamieniać je spowrotem na takie jak w oryginalnym tekście
 

Goran

Goran

Użytkownicy
posty168
Propsy39
  • Użytkownicy

Goran

Rozwiązane problemy
#3 2010-04-28, 13:58(Ostatnia zmiana: 2010-04-28, 14:00)
20. Co zrobić, aby NPC szedł za nami?
odp. Trzeba podczas dialogu napisać:
Cytuj
NPC_Exchangeroutine (self , ''FOLLOW'');
A potem w skrypcie NPC'a należy napisać:
Cytuj
FUNC VOID Rtn_FOLLOW_id npc'a ()
{   
   TA_Follow_Player      (06,00,22,00,"WP");
   TA_Follow_Player      (22,00,06,00,"WP");
};

21. Jak zmienić typ obrażeń broni?
Wystarczy w skrypcie broni napisać:
Cytuj
damagetype             =    DAM_EDGE;
I tutaj mamy do wyboru:

Cytuj
CONST INT DAM_INVALID    
CONST INT DAM_BARRIER
CONST INT DAM_BLUNT
CONST INT DAM_EDGE
CONST INT DAM_FIRE    
CONST INT DAM_FLY    
CONST INT DAM_MAGIC    
CONST INT DAM_POINT
z G1.


22. Co zrobić, aby po dialogu NPC biegł do waypointu?

Trzeba zmienić mu rutynę, a w skrypcie napisać:
Cytuj
FUNC VOID Rtn_RunsToPass_713 ()
{
   TA_RunToWP               (08,00,23,00,"START");
    TA_RunToWP               (23,00,08,00,"START");
};
 

gothic1210
  • Gość
Wiele osób ma problemy z rosnącymi plikami skompilowanych dialogów (OU.bin i ten drugi). Można to łatwo naprawić. Po aktualizacji dialogów w Spacerze (jeszcze przed zapisaniem) należy kilka razy je odświeżyć (Przycisk "odśwież" lub "refesh" obok aktualizacji). Kilka powtórzeń tego zabiegu i pliki OU mają realne wartośći (w g1 jest to około 2,8 i 3MB zależnie od pliku). 
 

Finciakowski

Finciakowski

Użytkownicy
posty80
Propsy3
ProfesjaSkrypter
  • Użytkownicy
Spacer nie chce się włączyć?
 CTRL+ALT+DEL[ETE]>>MENEDŻER ZADAŃ>>PROCESY>>SPACER>>ZAKOŃCZ PROCES>>ZAKOŃCZ PROCES
 Spacer już odpali bez problemu
 
Mod będze wyglądał gdzieś tak ^^

Finciakowski

Finciakowski

Użytkownicy
posty80
Propsy3
ProfesjaSkrypter
  • Użytkownicy

Finciakowski

Rozwiązane problemy
#6 2016-04-04, 10:55(Ostatnia zmiana: 2016-04-04, 11:02)
Spacer nie chce się włączyć?
 CTRL+ALT+DEL[ETE]>>MENEDŻER ZADAŃ>>PROCESY>>SPACER>>ZAKOŃCZ PROCES>>ZAKOŃCZ PROCES
 Spacer już odpali bez problemu
Dzięki :D

Post połączony: 2016-04-04, 11:02
Wiele osób ma problemy z rosnącymi plikami skompilowanych dialogów (OU.bin i ten drugi). Można to łatwo naprawić. Po aktualizacji dialogów w Spacerze (jeszcze przed zapisaniem) należy kilka razy je odświeżyć (Przycisk "odśwież" lub "refesh" obok aktualizacji). Kilka powtórzeń tego zabiegu i pliki OU mają realne wartośći (w g1 jest to około 2,8 i 3MB zależnie od pliku).
Dzięki  :trollface: :ok: leci props :D
 
Mod będze wyglądał gdzieś tak ^^

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Spacer nie chce się włączyć?
 CTRL+ALT+DEL[ETE]>>MENEDŻER ZADAŃ>>PROCESY>>SPACER>>ZAKOŃCZ PROCES>>ZAKOŃCZ PROCES
 Spacer już odpali bez problemu
Dzięki :D


Czy mi sie wydaje, czy podziękowałeś samemu sobie?
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Narkan

Narkan

Użytkownicy
posty435
Propsy115
ProfesjaProgramista
  • Użytkownicy
Może zapomniał się przelogować na multikonto XD
 

Splash

Splash

Moderator
posty4207
Propsy3403
ProfesjaNierób
  • Moderator
Myślę, że to kolejny przypadek rozdwojenia jaźni.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry