|
GOTHIC WEB SITE Forum o grach z serii Gothic
|
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
|
Wysł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
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 |
|
|
|
|
jono
Czeladnik
Dołączył: 09 Kwi 2009
Posty: 35
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysł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 |
|
|
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
|
Wysł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 |
|
|
jono
Czeladnik
Dołączył: 09 Kwi 2009
Posty: 35
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysł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 |
|
|
DaviX
Przybysz
Dołączył: 14 Kwi 2009
Posty: 6
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Płeć: Mężczyzna
|
Wysł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 |
|
|
DaviX
Przybysz
Dołączył: 14 Kwi 2009
Posty: 6
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Płeć: Mężczyzna
|
Wysł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 |
|
|
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
|
Wysł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 |
|
|
pision1
Przybysz
Dołączył: 18 Kwi 2009
Posty: 5
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Płeć: Mężczyzna
|
Wysł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 |
|
|
DaviX
Przybysz
Dołączył: 14 Kwi 2009
Posty: 6
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Płeć: Mężczyzna
|
Wysł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 |
|
|
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
|
Wysłany: Sob 13:14, 18 Kwi 2009 Temat postu: |
|
|
Dodajesz do pliku z broniami.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
jono
Czeladnik
Dołączył: 09 Kwi 2009
Posty: 35
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysł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 |
|
|
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
|
Wysł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 |
|
|
jono
Czeladnik
Dołączył: 09 Kwi 2009
Posty: 35
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysł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 |
|
|
Baka26
Przybysz
Dołączył: 30 Mar 2009
Posty: 14
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysł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 |
|
|
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
|
Wysł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 |
|
|
|
|
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
|
|