Potwory 5376 22

O temacie

Autor Maggot

Zaczęty 6.02.2012 roku

Wyświetleń 5376

Odpowiedzi 22

Maggot

Maggot

Użytkownicy
posty19
  • Użytkownicy
Witam.
Chciałbym się dowiedzieć trzech rzeczy:
1. Jak przenieść potwora (np. aligatora) z Gothic II do pierwszej części. Co trzeba zrobić, gdzie wpakować itd. Szukałem, ale nie udało mi się znaleźć czegoś, co by mnie "zadowoliło".
2. Jak stworzyć nowy gatunek stwora z inną teksturą? Na przykład nowego ścierwojada o teksturze, której nie umieszczono w grze (tej owłosionej).
3. Jak do ekwipunku potwora dodać przedmiot? Próbowałem dodać serce demona, jednak nie pojawia się w ciele potwora.

Bardzo proszę o pomoc.
Pozdrawiam.
 
Amen.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
2. Jak stworzyć nowy gatunek stwora z inną teksturą? Na przykład nowego ścierwojada o teksturze, której nie umieszczono w grze (tej owłosionej).
robisz nowa instance i w linijce gdzie sa tekstury wartosci 0 zmienasz na 1
3. Jak do ekwipunku potwora dodać przedmiot? Próbowałem dodać serce demona, jednak nie pojawia się w ciele potwora.
Tak samo jak do NPC używasz CreateItem / s

Maggot

Maggot

Użytkownicy
posty19
  • Użytkownicy
Rafał, czy mógłbyś mi dokładniej wytłumaczyć sprawę z nowym gatunkiem stwora, proszę?

Co do ekwipunku - dziękuję Ci.
 
Amen.

HerrKlebstoff

HerrKlebstoff

Użytkownicy
posty165
Propsy48
Profesjabrak
  • Użytkownicy
To działa bodajże na tej samej zasadzie, co tekstura zbroi. Zapewne zwróciłeś uwagę na to, że nazwy części tekstur mają końcówkę "V1", "V0", itd. Która tekstura ma być wybrana, odpowiada taka linijka:

visual skin = 0
Czyli żeby zrobić nowego ścierwojada z nową teksturą, kopiujesz jego skrypt, zmieniasz instance(możesz też wartości typu siła, ale instance musi być inne), oraz visual skin z 0 na 1. Nie sprawdzę tego, bo chwilowo nie mam gothica, więc głowy nie dam, jak jest ze stworkami.
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Ogólnie to ja to zazwyczaj robię dodając model ze zmienioną nazwą i teksturą do MDS i ustawiam visual na ten model.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Maggot

Maggot

Użytkownicy
posty19
  • Użytkownicy
A teraz mnie możecie zastrzelić, pociąć na kawałki i zjeść.
Jak to zrobić? Nic mi nie wychodzi, nic z tego nie rozumiem.
Proszę, powiedzcie jak to zrobić krok po kroku, ponieważ nie daję rady z dotychczasowymi radami. Tylko ta jedna rzecz.
 
Amen.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

Potwory
#6 2012-02-06, 23:45(Ostatnia zmiana: 2012-02-06, 23:46)
Kopiujesz to i zmieniasz instance nazwe ...
INSTANCE YScavenger (Mst_Default_Scavenger)
{
name = "Młody ścierwojad";
level = 4;

attribute [ATR_STRENGTH] = 6;
attribute [ATR_DEXTERITY] = 6;

attribute [ATR_HITPOINTS_MAX] = 35;
attribute [ATR_HITPOINTS] = 35;

//------------------------------------------------------------
protection [PROT_BLUNT] = 8;
protection [PROT_EDGE] = 8;


fight_tactic = FAI_MONSTER_COWARD;

Set_Scavenger_Visuals();
Mdl_SetModelScale(self, 0.9, 0.9, 0.9);

Npc_SetToFistMode(self);

CreateInvItems (self, ItFoMuttonRaw, 1);
};

i zamiast Set_Scavenger_Visuals podstawiasz to


Mdl_SetVisual (self, "Scavenger.mds");
// Body-Mesh Body-Tex Skin-Color Head-MMS Head-Tex Teeth-Tex ARMOR
Mdl_SetVisualBody (self, "Sca_Body", DEFAULT, DEFAULT, "", DEFAULT,   DEFAULT, -1);

na koniec powinno wyjsc ci coś takiego

INSTANCE Scavenger2 (Mst_Default_Scavenger)
{
name = "Ścierwojad";
level = 4;

attribute [ATR_STRENGTH] = 6;
attribute [ATR_DEXTERITY] = 6;

attribute [ATR_HITPOINTS_MAX] = 35;
attribute [ATR_HITPOINTS] = 35;

//------------------------------------------------------------
protection [PROT_BLUNT] = 8;
protection [PROT_EDGE] = 8;


fight_tactic = FAI_MONSTER_COWARD;

Mdl_SetVisual (self, "Scavenger.mds");

Mdl_SetVisualBody (self, "Sca_Body",1,1, "",1,1,-1);

Npc_SetToFistMode(self);

CreateInvItems (self, ItFoMuttonRaw, 1);
};

DEFAULT to stała liczba 0
const int DEFAULT = 0;więc dlatego pisałem o podmianie z  zera ;)

Maggot

Maggot

Użytkownicy
posty19
  • Użytkownicy
Chwała Ci za to, Rafał.
Bardzo dziękuję.

Czekam jeszcze tylko na odpowiedź, na moje pierwsze pytanie.
 
Amen.

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel

Sawik
Moderator działu

Potwory
#8 2012-02-07, 01:04(Ostatnia zmiana: 2012-02-07, 01:05)
Jak prznieść Aligatora - 3 Proste Kroki
1.Trzeba przenieść jego MDS + wszystkie animacje polecam też przenieść FAI.
PLIKI ASC + MDS
W spoilerze FAI aligatora

Spoiler
// *********************
// Kampf - AI Alligator (43)
// *********************

/*
MOVE_RUN            
MOVE_RUNBACK         
MOVE_JUMPBACK         
MOVE_TURN            
MOVE_STRAFE            

MOVE_ATTACK            

MOVE_PARADE         
MOVE_STANDUP      
MOVE_WAIT            200 ms
*/


// ************************************
// Meine Reaktionen auf Gegner-Aktionen
// ************************************

// ------ Gegner attackiert mich ------
INSTANCE FA_ENEMY_PREHIT_43 (C_FightAI)
{
   move[0] = MOVE_JUMPBACK;
   move[1] = MOVE_WAIT;
};

// ------ Gegner macht Sturmattacke ------
INSTANCE FA_ENEMY_STORMPREHIT_43 (C_FightAI)
{
   move[0] = MOVE_JUMPBACK;
};


// *******************************************
// Gegner in W-Reichweite (Treffer-Reichweite)
// *******************************************

// ------ Ich bin im Combo-Fenster ------
INSTANCE FA_MY_W_COMBO_43 (C_FightAI)
{
   // --- Wird nie erreicht (Neue FAI-Bewertung erst wenn Ani zuende gespielt) ---
};

// ------ Ich renne auf den Gegner zu ------
INSTANCE FA_MY_W_RUNTO_43 (C_FightAI)
{
   move[0] = MOVE_TURN; // --- STANDARDEINTRAG (Stehenbleiben) ---
};

// ------- Ich Strafe gerade ------
INSTANCE FA_MY_W_STRAFE_43 (C_FightAI)
{
   // --- Wird nie erreicht (Neue FAI-Bewertung erst wenn Ani zuende gespielt) ---
};

// ------- Ich habe Gegner im Fokus (kann treffen) -------
INSTANCE FA_MY_W_FOCUS_43 (C_FightAI)
{
   move[0] = MOVE_ATTACK;
   move[1] = MOVE_JUMPBACK;
};

// ------- Ich habe Gegner NICHT im Fokus -------
INSTANCE FA_MY_W_NOFOCUS_43 (C_FightAI)
{
   move[0] = MOVE_TURN; // --- STANDARDEINTRAG ---
};


// *************************************************
// Gegner in G-Reichweite (Sturmattacken-Reichweite)
// *************************************************

// ------ Ich bin im Combo-Fenster ------
INSTANCE FA_MY_G_COMBO_43 (C_FightAI)
{
   // --- Wird nie erreicht (Neue FAI-Bewertung erst wenn Ani zuende gespielt) ---
};

// ------ Ich renne auf den Gegner zu (kann Sturmattacke machen) ------
INSTANCE FA_MY_G_RUNTO_43 (C_FightAI)
{
   move[0] = MOVE_ATTACK; //Sturmattacke
   //move[0] = MOVE_RUN;
};

// ------- Ich Strafe gerade ------
INSTANCE FA_MY_G_STRAFE_43 (C_FightAI)
{
   // --- Wird nie erreicht (Neue FAI-Bewertung erst wenn Ani zuende gespielt) ---
};

// ------- Ich habe Gegner im Fokus -------
INSTANCE FA_MY_G_FOCUS_43 (C_FightAI)
{
   move[0] = MOVE_RUN; // --- STANDARDEINTRAG ---
   move[1] = MOVE_WAIT;
   move[2] = MOVE_WAIT;
   move[3] = MOVE_WAIT;
   move[4] = MOVE_WAIT;
   move[5] = MOVE_WAIT;
};


// ***************************************
// Gegner in FK-Reichweite (weit entfernt)
// ***************************************

// ------- Ich habe Gegner im Fokus -------
INSTANCE FA_MY_FK_FOCUS_43 (C_FightAI)
{
   move[0] = MOVE_RUN; // --- STANDARDEINTRAG ---
};

// ------- Ich habe Gegner NICHT im Fokus (gilt auch für G-Distanz!) -------
INSTANCE FA_MY_G_FK_NOFOCUS_43 (C_FightAI)
{
   move[0] = MOVE_TURN; // --- STANDARDEINTRAG ---
};


// ***********************************
// FAI für Fernkampf
// ---------------------------
// (wird bei jeder Entfernung benutzt)
// ***********************************

// ------ Gegner im Fokus ------
INSTANCE FA_MY_FK_FOCUS_FAR_43 (C_FightAI)
{
   move[0] = MOVE_ATTACK; // --- STANDARDEINTRAG ---
};

// ------ Gegner NICHT im Fokus ------
INSTANCE FA_MY_FK_NOFOCUS_FAR_43 (C_FightAI)
{
   move[0] = MOVE_TURN; // --- STANDARDEINTRAG ---
};


// ***********************************
// FAI für Magie
// ---------------------------
// (wird bei jeder Entfernung benutzt)


// ------ Gegner im Fokus ------
INSTANCE FA_MY_FK_FOCUS_MAG_43 (C_FightAI)
{
   move[0] = MOVE_ATTACK; // --- STANDARDEINTRAG ---
   move[1] = MOVE_WAIT_LONGER;
   move[2] = MOVE_WAIT_LONGER;
   move[3] = MOVE_WAIT_LONGER;
   move[4] = MOVE_WAIT_LONGER;
   move[5] = MOVE_WAIT_LONGER;
};

// ------ Gegner NICHT im Fokus -------
INSTANCE FA_MY_FK_NOFOCUS_MAG_43 (C_FightAI)
{
   move[0] = MOVE_TURN; // --- STANDARDEINTRAG ---
};
2. Kopiujesz skrypt z G2NK i zmieniasz gildię na jaszczurze.
W spoilerze skrypt aligatora z g2nk
 
Spoiler
PROTOTYPE Mst_Default_Addon_Alligator (C_Npc)         
{
   //----- Monster ----
   name                     =   "Aligator";
   guild                     =   GIL_Alligator;
   aivar[AIV_MM_REAL_ID]         =    ID_Alligator;
   level                     =   12;
   
   //----- Attributes ----
   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;

   //----- Protections ----
   protection   [PROT_BLUNT]      =   20;
   protection   [PROT_EDGE]         =   20;
   protection   [PROT_POINT]      =   20;
   protection   [PROT_FIRE]         =   0;
   protection   [PROT_FLY]         =   20;
   protection   [PROT_MAGIC]      =   0;
   
   //----- Damage Types ----
   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;

   //----- Kampf Taktik ----
   fight_tactic   =   FAI_ALLIGATOR;

   //----- Sense & Ranges ----
   senses         =    SENSE_HEAR | SENSE_SEE | SENSE_SMELL;
   senses_range   =   PERC_DIST_MONSTER_ACTIVE_MAX;
   
   aivar[AIV_MM_ThreatenBeforeAttack] = TRUE;
   aivar[AIV_MM_FollowTime]   = FOLLOWTIME_MEDIUM;
   aivar[AIV_MM_FollowInWater] = TRUE;

   //----- Daily Routine ----
   start_aistate            = ZS_MM_AllScheduler;

   aivar[AIV_MM_RoamStart]    = OnlyRoutine;
};

//************
//   Visuals
//************

func void B_SetVisuals_Alligator ()
{
   Mdl_SetVisual         (self,   "Alligator.mds");
   //                        Body-Mesh      Body-Tex   Skin-Color   Head-MMS   Head-Tex   Teeth-Tex   ARMOR
   Mdl_SetVisualBody      (self,   "KRO_BODY",      DEFAULT,   DEFAULT,   "",         DEFAULT,     DEFAULT,   -1);
};


//**************
//   Alligator       
//**************

INSTANCE Alligator   (Mst_Default_Addon_Alligator)
{
   B_SetVisuals_Alligator();
   Npc_SetToFistMode(self);
};
3.Cieszysz się aligatorem w G1.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Maggot

Maggot

Użytkownicy
posty19
  • Użytkownicy
Dziwne... skrypty działają jak należy, jednak gdy przywołuję aligatora w grze, nie widać jego modelu. Brak animacji...

Gdzie mam umieścić te animacje? Próbowałem już wszelkich kombinacji.
 
Amen.

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Animacje + MDS powinny być w  twój_folder_gothica\_Work\data\Anims
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Maggot

Maggot

Użytkownicy
posty19
  • Użytkownicy
Odkopuję, ponieważ dość długo nie miałem możliwości pisania...
Robiłem wszystko zgodnie z Waszymi wskazówkami, jednak gdy przywołuję go w grze - dalej nie ma "ciała". Widać tylko cień, nazwę i pasek życia. Nic poza tym.
Za cholerę nie potrafię tego naprawić.
 
Amen.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Może to być problem z teksturami na pewno dobrze je przeniosłeś i maja odpowiednia liczbę w nazwie ?

HerrKlebstoff

HerrKlebstoff

Użytkownicy
posty165
Propsy48
Profesjabrak
  • Użytkownicy
Tekstury raczej odpadają, gdyby nie znalazł tekstury, jaszczur byłby "z kamienia".
 

Maggot

Maggot

Użytkownicy
posty19
  • Użytkownicy
Tak właśnie myślę, że gdyby nie odnalazło tekstury, byłby "z kamienia". Wszystkie tekstury są w porządku, w odpowiednich miejscach. Skrypt działa dobrze. Coś musi być z animacjami, jednak powinno być OK, bo kierowałem się instrukcjami Sawika.
 
Amen.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Aby zrobić nie widzialnego npc nie wpisuje się funkcji Mdl_SetVisualBody i mamy nie widzialnego npc więc lepiej sprawdź te tekstury.

Cytuj
Skrypt działa dobrze.

skąd wiesz skoro nic nie widzisz ???

Maggot

Maggot

Użytkownicy
posty19
  • Użytkownicy
Sprawdziłem. Wszystko na swoim miejscu.
Skrypt działa na tyle dobrze, że nie wywala mnie z gry...
 
Amen.

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Przeczytaj to co pisałem tam na górze... Jak skończysz i nie zauważysz o czym mówię to odsłoń spoiler.

Spoiler
Nie dałem ci tekstur bo zapomniałem. Więc jeżeli zrobiłeś tylko to co ja napisałem nie masz tekstur.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

HerrKlebstoff

HerrKlebstoff

Użytkownicy
posty165
Propsy48
Profesjabrak
  • Użytkownicy
Łap tekstury - żywcem z gry, tga i tex.

http://www.sendspace.pl/file/d0a219d3727e01e5e59f54b
 

Maggot

Maggot

Użytkownicy
posty19
  • Użytkownicy
och. O teksturach pamiętałem, mimo, że ich nie dałeś. Wyciągnąłem je z NK GoManem. Wrzuciłem do textures/_compiled. To dobry folder na to, prawda? Jeśli nie, to miejsce zawiniło.
 
Amen.


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