Forum GOTHIC WEB SITE Strona Główna GOTHIC WEB SITE
Forum o grach z serii Gothic
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy     GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Nauka modowania.
Idź do strony Poprzedni  1, 2, 3, 4, 5, 6 ... 11, 12, 13  Następny
 
Napisz nowy temat   Odpowiedz do tematu    Forum GOTHIC WEB SITE Strona Główna -> Gothic I / Artykuły
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Artex
Wojownik


Dołączył: 06 Sie 2008
Posty: 1048
Przeczytał: 0 tematów

Pomógł: 29 razy
Ostrzeżeń: 0/5

Płeć: Mężczyzna

PostWysłany: Czw 13:22, 16 Kwi 2009    Temat postu:

DaviX napisał:
Dobra moze tak...
JA bardzo bym prosil zeby ktos mi powiedzial gdzie rozpakowac 3DS MAX Stuff ja mam tam tylko jakies pliki..i.VDFS-Tool
ja tu czytalem poradniki sie napalilem bo wszystko dobrze jasno zrobione......ale o programach tez by sie przydalo....


Skąd ty wziąłeś ten 3dsmax stuff? Do moddingu nie jest to potrzebne, a poza tym 3dsa załatwisz sobie tylko przez Torrenta albo buląc 3k$ : ).

Cytat:
Nowe Potwory:

Aby zrobić sobie nowego stworka musimy stworzyć nowy plik .d, najpierw zajrzyjmy do gotowych stworów: X:\Gothic PL\_Work\Data\Scripts\Content\AI\Monster

Kod:
/*************************************************************************
**   Wolf Prototype                                          **
*************************************************************************/

PROTOTYPE Mst_Default_Wolf(C_Npc)         
{
   name                     =   "Wilk";
   guild                     =   GIL_WOLF;
   aivar[AIV_MM_REAL_ID]         =    ID_WOLF;
   level                     =   9;
//-----------------------------------------------------------
   attribute   [ATR_STRENGTH]      =   40;
   attribute   [ATR_DEXTERITY]      =   40;
   
   attribute   [ATR_HITPOINTS_MAX]   =   80;
   attribute   [ATR_HITPOINTS]      =   80;

   attribute   [ATR_MANA_MAX]       =   0;
   attribute   [ATR_MANA]          =   0;
//-----------------------------------------------------------
   protection   [PROT_BLUNT]      =   20;
   protection   [PROT_EDGE]         =   20;
   protection   [PROT_POINT]      =   10;
   protection   [PROT_FIRE]         =   10;
   protection   [PROT_FLY]         =   0;
   protection   [PROT_MAGIC]      =   0;
//-----------------------------------------------------------
   damagetype                   =   DAM_EDGE;
//   damage      [DAM_INDEX_BLUNT]   =   0;
//   damage      [DAM_INDEX_EDGE]   =   0;
//   damage      [DAM_INDEX_POINT]   =   0;
//   damage      [DAM_INDEX_FIRE]   =   0;
//   damage      [DAM_INDEX_FLY]      =   0;
//   damage      [DAM_INDEX_MAGIC]   =   0;
//-----------------------------------------------------------
   fight_tactic               =   FAI_WOLF;
//-----------------------------------------------------------
   senses                  = SENSE_HEAR | SENSE_SEE | SENSE_SMELL;
   senses_range            = 3000;      // 30m

   aivar[AIV_MM_Behaviour]      = PACKHUNTER;
   
   aivar[AIV_MM_PercRange]      = 1500;
   aivar[AIV_MM_DrohRange]      = 1200;
   aivar[AIV_MM_AttackRange]   = 500;
   aivar[AIV_MM_DrohTime]      = 3;
   aivar[AIV_MM_FollowTime]   = 10;
   aivar[AIV_MM_FollowInWater] = TRUE;
//-----------------------------------------------------------
   start_aistate            = ZS_MM_AllScheduler;

   aivar[AIV_MM_RoamStart]    = OnlyRoutine;   
};
//-----------------------------------------------------------
func void Set_Wolf_Visuals()
{
   Mdl_SetVisual         (self,"Wolf.mds");
   //                        Body-Mesh      Body-Tex   Skin-Color   Head-MMS   Head-Tex   Teeth-Tex   ARMOR
   Mdl_SetVisualBody      (self,   "Wol_Body",      DEFAULT,   DEFAULT,   "",         DEFAULT,     DEFAULT,   -1);
};


/*************************************************************************
**   Wolf                                                 **
*************************************************************************/

INSTANCE Wolf   (Mst_Default_Wolf)
{
   Set_Wolf_Visuals();
   Npc_SetToFistMode(self);
};


Jest tu wiele tablic i funkcji, omówię tylko te które są potrzebne żeby przerobić starego/zrobić nowego stworka.

Kod:
PROTOTYPE Mst_Default_Wolf(C_Npc)         
{
   name                     =   "Wilk";
   guild                     =   GIL_WOLF;
   aivar[AIV_MM_REAL_ID]         =    ID_WOLF;
   level                     =   9;


Deklaracja i parę informacji:

Name - imię potworka
Guild - jego gildia, warte uwagi, np. ścierwojady biją się z krwiopijcami, a wilki gonią kretoszczury. Zmiana wilkowi tej gildii na np. ścierwojada sprawi że będą bić się z bloodfly'ami
aivar - tablica ze zmiennymi, nam niepotrzebna, robiąc nowego potworka wzorujemy się na jakimś i zapożyczamy tą wartość.
level - odpowiada za otrzymane przez naszego hero doświadczenie

Kod:
attribute   [ATR_STRENGTH]      =   40;
   attribute   [ATR_DEXTERITY]      =   40;
   
   attribute   [ATR_HITPOINTS_MAX]   =   80;
   attribute   [ATR_HITPOINTS]      =   80;

   attribute   [ATR_MANA_MAX]       =   0;
   attribute   [ATR_MANA]          =   0;


Definiujemy po kolei siłę/zręczność/życie maksymalne/życie początkowe/manę maksymalną/manę początkową.

Kod:
protection   [PROT_BLUNT]      =   20;
   protection   [PROT_EDGE]         =   20;
   protection   [PROT_POINT]      =   10;
   protection   [PROT_FIRE]         =   10;
   protection   [PROT_FLY]         =   0;
   protection   [PROT_MAGIC]      =   0;


Odporności, pozwala na zrobienie potworka odpornego na np. magię, albo na odwrót, możliwego do zabicia tylko przy pomocy magii.

Kod:
fight_tactic               =   FAI_WOLF;


Zależnie od modelu naszego stworka dajemy mu stosowny FAI, możemy dać mu FAI np. krwiopijcy, ale jeżeli gra się nie zatnie to i tak nic z tego nie będzie bo stwór straci dużo czasu na skakanie wokół nas (krwiopijca ma wpisane sekwencję uskoku w bok).

Kod:
senses                  = SENSE_HEAR | SENSE_SEE | SENSE_SMELL;
   senses_range            = 3000;      // 30m

   aivar[AIV_MM_Behaviour]      = PACKHUNTER;
   
   aivar[AIV_MM_PercRange]      = 1500;
   aivar[AIV_MM_DrohRange]      = 1200;
   aivar[AIV_MM_AttackRange]   = 500;
   aivar[AIV_MM_DrohTime]      = 3;
   aivar[AIV_MM_FollowTime]   = 10;
   aivar[AIV_MM_FollowInWater] = TRUE;


A to są "inne takie".

Sense odpowiada za zmysły używane przez stworka, ich range to zasięg wyczuwania potworka.

Dalej widzimy tablice odpowiedzialne za to z jakiej odległości potwór nas goni i ile nas goni, czy goni nas w wodzie itd. Można się np. zabawić robiąc potwora który ściga nas po całej koloni. Przy ustawieniu remove distance na bardzo dużo w "Edit AI" efekt może być ciekawy.

Kod:
func void Set_Wolf_Visuals()
{
   Mdl_SetVisual         (self,"Wolf.mds");
   //                        Body-Mesh      Body-Tex   Skin-Color   Head-MMS   Head-Tex   Teeth-Tex   ARMOR
   Mdl_SetVisualBody      (self,   "Wol_Body",      DEFAULT,   DEFAULT,   "",         DEFAULT,     DEFAULT,   -1);
};


Wygląd potworka, wilk to wilk, nie ma tu zbyt dużego wyboru.


Mam nadzieję że wszystko jest zrozumiałe Laughing


Post został pochwalony 0 razy

Ostatnio zmieniony przez Artex dnia Czw 13:24, 16 Kwi 2009, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
jono
Czeladnik


Dołączył: 09 Kwi 2009
Posty: 35
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pią 16:21, 17 Kwi 2009    Temat postu:

a jak np. robie broń sobie ale chce żeby nie nalezała do nikogo chodzi mi o to: owner = GUR_1201_CORKALOM;

to można usunąć czy jak?

a i jak robić księgi?


Post został pochwalony 0 razy

Ostatnio zmieniony przez jono dnia Pią 17:17, 17 Kwi 2009, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Artex
Wojownik


Dołączył: 06 Sie 2008
Posty: 1048
Przeczytał: 0 tematów

Pomógł: 29 razy
Ostrzeżeń: 0/5

Płeć: Mężczyzna

PostWysłany: Pią 17:38, 17 Kwi 2009    Temat postu:

To po prostu pomiń linijkę, są w klasach linijki które nie są wymagane.

Księgi... nie będę ich teraz dokładnie opisywał, podam parę informacji.

Oto przykładowa księga:

Kod:
INSTANCE ItWr_Book_Circle_01(C_Item)
{   
   name                =   "Pierwszy Krąg";
   
   mainflag             =   ITEM_KAT_DOCS;
   flags                =   0;

   value                =   50;

   visual                =   "ItWr_Book_02_03.3ds";
   material             =   MAT_LEATHER;

   scemeName            =   "MAP";   
   description         = "Pierwszy Krąg Magii";
   
   TEXT[5]            = NAME_Value;
   COUNT[5]         = value;
   on_state[0]         =   UseItWr_Book_Circle_01;
};

   FUNC VOID UseItWr_Book_Circle_01()
   {   
      var int nDocID;
      var string Text;
      Text = ConcatStrings (NAME_Manakosten,IntToString (SPL_SENDCAST_LIGHT));
      var string Text_1;
      Text_1 = ConcatStrings (NAME_Manakosten,IntToString (SPL_SENDCAST_THUNDERBOLT));
      var string Text_2;
      Text_2 = ConcatStrings (NAME_Manakosten,IntToString (SPL_SENDCAST_FIREBOLT));
      nDocID =    Doc_Create      ()           ;                        // DocManager
               Doc_SetPages   ( nDocID,  2 );                         //wieviel Pages

               Doc_SetPage    ( nDocID,  0, "Book_Mage_L.tga",    0       );
               Doc_SetPage    ( nDocID,  1, "Book_Mage_R.tga",   0      );
               
               //1.Seite
                 
                 Doc_SetFont    ( nDocID, -1, "font_15_book.tga"               );    // -1 -> all pages
                 Doc_SetMargins   ( nDocID,  0,  275, 20, 30, 20, 1         );  //  0 -> margins are in pixels
               Doc_PrintLine   ( nDocID,  0, "Pierwszy Krąg"         );
               Doc_PrintLine   ( nDocID,  0, "---------------");
               Doc_SetFont    ( nDocID, -1, "font_10_book.TGA"               );    // -1 -> all pages
               Doc_PrintLine   ( nDocID,  0, "");
               Doc_PrintLines   ( nDocID,  0, "Gdy bogowie obdarzyli ludzkość magicznymi mocami, nauczyli ich również sporządzać runy. Wierni wyznawcy przejęli zatem od swych panów zaszczytne zadanie wytwarzania tych świętych artefaktów i zaczęli je wykorzystywać. Krąg, do którego należy mag, określa, jak zaawansowanymi zaklęciami może się on posługiwać. ");
               
            

               //2.Seite
               Doc_SetMargins   ( nDocID, -1, 30, 20, 275, 20, 1         );  //  0 -> margins are in pixels (Position des Textes von den Ränder des TGAs aus, links,oben,rechts,unten)
               Doc_PrintLine   ( nDocID,  1, "");
               Doc_PrintLine   ( nDocID,  1,  "Światło" );
               Doc_PrintLine   ( nDocID,  1, "---------------");
               Doc_PrintLines   ( nDocID,  1, "Pierwszy dar Innosa dla ludzkości. Lśniąca kula rozświetla bezpośrednie otoczenie maga. ");
               Doc_PrintLine   ( nDocID,  1,  Text);
               Doc_PrintLine   ( nDocID,  1,  "" );
               Doc_PrintLine   ( nDocID,  1, "Sopel lodu");
               Doc_PrintLine   ( nDocID,  1, "---------------");
               Doc_PrintLines   ( nDocID,  1, "Pocisk magicznej energii.");
               Doc_PrintLine   ( nDocID,  1,  Text_1);
               Doc_PrintLine   ( nDocID,  1, "");
               Doc_PrintLine   ( nDocID,  1, "Ognisty pocisk");
               Doc_PrintLine   ( nDocID,  1, "---------------");
               Doc_PrintLines   ( nDocID,  1, "Pocisk magicznego Ognia.");
               Doc_PrintLine   ( nDocID,  1,  Text_2);
               Doc_Show      ( nDocID );
   };


Wybitnie uzdolnieni zapewne zauważyli że to Pierwszy Krąg Magii : ).

Mamy tu dwie deklarację, pierwsza to księgi jako przedmiotu widzianego przez hero, druga to jej treść.

Nie będę się tu teraz rozpisywał bo sam tego nie potrafię, ale wystarczy trochę pokombinować.

Gdyby ktoś chciał się bawić w wielostronicowe księgi, takie jak w GWW (instrukcja), to na TheModders jest stosowny tutek.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
jono
Czeladnik


Dołączył: 09 Kwi 2009
Posty: 35
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pią 19:27, 17 Kwi 2009    Temat postu:

aha, fajnie ale czy da się zrobić takie księgi że jak się je przeczyta to dostaje się np. +10 do PŻ albo do many?

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
DaviX
Przybysz


Dołączył: 14 Kwi 2009
Posty: 6
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

Płeć: Mężczyzna

PostWysłany: Pią 21:30, 17 Kwi 2009    Temat postu:

ok dzięki mysm ze to jest wymafgane ale znalazlem objasnienie co trzeba zrobic a co olac

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
DaviX
Przybysz


Dołączył: 14 Kwi 2009
Posty: 6
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

Płeć: Mężczyzna

PostWysłany: Pią 21:46, 17 Kwi 2009    Temat postu:

Przedmioty znajdują się w ścieżce "X:\Folder z Gothicem\_Work\Data\Scripts\Content\Items" A dalej bronie, albo w "Melee_weapons", "Ranged_weapons", albo w "weapons"

do tego Ranged weapons itp. to trzeba jakos otworzyć i wrzucić nasz plik z bronią?


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Artex
Wojownik


Dołączył: 06 Sie 2008
Posty: 1048
Przeczytał: 0 tematów

Pomógł: 29 razy
Ostrzeżeń: 0/5

Płeć: Mężczyzna

PostWysłany: Sob 06:54, 18 Kwi 2009    Temat postu:

Pliki .d najlepiej otwierać notatnikiem, albo innym edytorem tekstu. Ja polecam notatnik bo jest czytelnie.

Księgi z bonusami są oczywiście możliwe

Kod:
const int   Value_ManaEssenz      =   25;

const int   Mana_Essenz         =   30;


INSTANCE ItFo_Potion_Mana_01(C_Item)
{
   name          =   NAME_Trank;

   mainflag       =   ITEM_KAT_POTIONS;
   flags          =   ITEM_MULTI;

   value          =   Value_ManaEssenz;   

   visual          =   "ItFo_Potion_Mana_01.3ds";
   material       =   MAT_GLAS;
   on_state[0]      =   UseManaPotion;
   scemeName      =   "POTIONFAST";

   description         = "Esencja magicznej energii";
   TEXT[1]            = NAME_Bonus_Mana;            COUNT[1]   = Mana_Essenz;
   TEXT[5]            = NAME_Value;               COUNT[5]   = Value_ManaEssenz;
};

   FUNC VOID UseManaPotion()
   {
      PrintDebugNpc      (PD_ITEM_MOBSI, "UseManaPotion");
      Npc_ChangeAttribute   (self,   ATR_MANA,   Mana_Essenz);
   };


Oto mikstura many, czyli zwykły przedmiot (drink) dodający (uzupełniający) manę. Za jej dodanie odpowiada funkcja UseManaPotion(). Deklaracje przedmiotu poprzedzają dwie stałe, jedna to wartość (cena) manapotiona druga to ilość odnawianej many.

Z księgami trzeba podobnie, trzeba dodać odpowiednie linijki (on_state[0] = UseMyBook;) i stosowną funkcję do tego. Warto przejrzeć inne skrypty aby uzyskać stosowną wiedzę.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
pision1
Przybysz


Dołączył: 18 Kwi 2009
Posty: 5
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

Płeć: Mężczyzna

PostWysłany: Sob 09:17, 18 Kwi 2009    Temat postu:

OMG dzięki brachu przez 3 godziny w nocy to robiłem mod nazywa się ,,Powrót Beliara".
Wstawię go nie długo tylko muszę dopracować go.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
DaviX
Przybysz


Dołączył: 14 Kwi 2009
Posty: 6
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

Płeć: Mężczyzna

PostWysłany: Sob 13:09, 18 Kwi 2009    Temat postu:

i co jak ja zrobie bron to ja poprostu wklejam do pliku broni tak??


EDIT: czyli jest weapons i wpisuje tam co nie??
Nie robie osobnego pliku


Post został pochwalony 0 razy

Ostatnio zmieniony przez DaviX dnia Sob 15:51, 18 Kwi 2009, w całości zmieniany 2 razy
Powrót do góry
Zobacz profil autora
Artex
Wojownik


Dołączył: 06 Sie 2008
Posty: 1048
Przeczytał: 0 tematów

Pomógł: 29 razy
Ostrzeżeń: 0/5

Płeć: Mężczyzna

PostWysłany: Sob 13:14, 18 Kwi 2009    Temat postu:

Dodajesz do pliku z broniami.

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
jono
Czeladnik


Dołączył: 09 Kwi 2009
Posty: 35
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Sob 17:07, 18 Kwi 2009    Temat postu:

nie rozumiem z księgami bonusowymi mógłbyś jedną takową zrobić na pokaz?

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Artex
Wojownik


Dołączył: 06 Sie 2008
Posty: 1048
Przeczytał: 0 tematów

Pomógł: 29 razy
Ostrzeżeń: 0/5

Płeć: Mężczyzna

PostWysłany: Nie 07:02, 19 Kwi 2009    Temat postu:

Wystarczy dodać na początku funkcji (tj zaraz za znakiem "{") frazę:

Kod:
B_RaiseAttribute   (ATR_MANA_MAX,   ManaMax_ElixierEgg);


Teraz za KAŻDYM RAZEM po otworzeniu booka dostaniemy 10 many xD.

Co do pojedyńczego bonusu to muszę pomyśleć.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
jono
Czeladnik


Dołączył: 09 Kwi 2009
Posty: 35
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Nie 11:17, 19 Kwi 2009    Temat postu:

zrobiłem tak i nie dizała

Post został pochwalony 0 razy

Ostatnio zmieniony przez jono dnia Nie 11:30, 19 Kwi 2009, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Baka26
Przybysz


Dołączył: 30 Mar 2009
Posty: 14
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Nie 12:02, 19 Kwi 2009    Temat postu:

Mam pytanie dotyczące spacera, jak zrobić aby zmiany zrobione przeze mnie znalazły się w grze??

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Artex
Wojownik


Dołączył: 06 Sie 2008
Posty: 1048
Przeczytał: 0 tematów

Pomógł: 29 razy
Ostrzeżeń: 0/5

Płeć: Mężczyzna

PostWysłany: Nie 12:48, 19 Kwi 2009    Temat postu:

jono napisał:
zrobiłem tak i nie dizała


Pokaż kod.

Baka26 napisał:
Mam pytanie dotyczące spacera, jak zrobić aby zmiany zrobione przeze mnie znalazły się w grze??


Otwórz paczkę .vdf z światami (worlds) za pomocą GoMana i zmień nazwę .ZEN'a w którym wprowadzasz zmianę na np. World1.zen. Teraz po prostu zapisz zmiany w świecie i zobaczysz je w grze.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum GOTHIC WEB SITE Strona Główna -> Gothic I / Artykuły Wszystkie czasy w strefie CET (Europa)
Idź do strony Poprzedni  1, 2, 3, 4, 5, 6 ... 11, 12, 13  Następny
Strona 5 z 13

Skocz do:  

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001 phpBB Group

Chronicles phpBB2 theme by Jakob Persson (http://www.eddingschronicles.com). Stone textures by Patty Herford.
Regulamin