piątek, 15 lipca 2016

Modding #5 - Tworzenie przedmiotów

Tak więc wytłumaczę zasady tworzenia nowych przedmiotów. Nowy przedmiot należy dać w tym samym folderze co inne, a nazwa pliku może być dowolna, ale musi mieć IT_ na początku (a plik ma być w formacie takim jak inne).

INSTANCE RodzajPrzedmiotu_EwentualnyNapisAddonLubInny_NazwaPoAngielsku (C_Item)
  INSTANCE musi być, bo to znaczy, że teraz będziemy coś definiować
  Nazwa, którą podałem jest tylko sugerowana, może być Dupa, ale jakakolwiek by nie była powinna być czytelna i musi być unikatowa
  (C_Item) mówi Gothikowi, że to jest przedmiot

{
  Klamra otwiera definicję przedmiotu

name     = "Nazwa";
  Jest to nazwa, która jest wyświetlana, gdy przedmiot leży na ziemi, nie w ekwipunku

mainflag    = KATEGORIA_PRZEDMIOTU;
  Dzięki temu Gothic wie jak ma traktować ten przedmiot (ogólnie)
  Oto kategorie główne występujące w Gothiku:
  ITEM_KAT_NF  - Broń do walki w zwarciu ("Near Fight")
  ITEM_KAT_FF  - Broń do walki na odległość ("Far Fight")
  ITEM_KAT_MUN  - Amunicja do broni do walki na odległość
  ITEM_KAT_ARMOR - Zbroje
  ITEM_KAT_FOOD  - Jedzenie
  ITEM_KAT_DOCS  - Dokumenty (listy, książki, itd.)
  ITEM_KAT_POTIONS - Mikstury
  ITEM_KAT_LIGHT - Pochodnie
  ITEM_KAT_RUNE  - Runy i zwoje
  ITEM_KAT_MAGIC - Przedmioty magiczne (pierścienie, amulety, itd.)
  ITEM_KAT_NONE - To co nie pasuje nigdzie indziej (np. muszle)
  ITEM_KAT_KEYS  - klucze
 
flags     = FLAGA;
  Dzięki temu Gothic wie jak ma traktować ten przedmiot (szczególnie)
  Oto flagi występujące w Gothiku (używane):
  Bronie:
  ITEM_SWD - Miecze jednoręczne
  ITEM_AXE - Topory jednoręczne
  ITEM_2HD_SWD - Miecze dwuręczne
  ITEM_2HD_AXE - Topory dwuręczne
  ITEM_BOW - Łuki
  ITEM_CROSSBOW - Kusze
  Przedmioty magiczne:
  ITEM_RING - Pierścienie
  ITEM_AMULET - Amulety
  ITEM_BELT - Pasy
  Inne:
  ITEM_MISSION - Ważne, taki przedmiot nie może być usunięty (czyli np. NPC, który ma taki przedmiot w ekwipunku nie zniknie po śmierci
  ITEM_MULTI - Czasami trzeba dać, żeby można było "kumulować" przedmiot w ekwipunku
  ITEM_TORCH - Pochodnie

value     = Liczba;
  Wartość przedmiotu

damagetype    = TYP_OBRAŻEŃ;
  Tylko do broni, oto typy obrażeń (używane do broni):
  DAM_BLUNT - Obuchowe (do młotów, maczug, itp.)
  DAM_EDGE - Sieczne (do mieczy, toporów, itp.)
  DAM_FIRE - Ogień
  DAM_FLY- "Latające", jak się to da, to po trafieniu "delikwent" odlatuje (jak u trolla)
  DAM_MAGIC - Magiczne
  DAM_POINT - Od pocisków

damageTotal    =  Liczba;
  Obrażenia broni - tylko do broni
 
damage   [TYP_OBRAŻEŃ]  = Liczba;
  Jeśli broń ma więcej niż jeden typ obrażeń można dla każdego typu ustawić wartość

wear      = MIEJSCE_ZAŁOŻENIA;
  Od miejsca założenia zależne jest to jak ubierany będzie przedmiot
  WEAR_TORSO dla zbroi
  WEAR_EFFECT dla amuletów itp.

protection [RODZAJ_OBRAŻEŃ] =  Liczba;
  Ochrona przed danym typem obrażeń, dla każdego trzeba podać osobno
  Rodzaje ochron używane w zbrojach, są takie same jak przy obrażeniach (zamiast DAM, należy wpisać PROT), z tym, że PROT_FLY nie jest używane (czyt. nigdy nie ustawiamy PROT_FLY, ponieważ gdy ochrona celu przed obrażeniami "latającymi" jest wyższa niż obrażenia "latające" przeciwnika, to cel nie poleci)

cond_atr[2]     = ATRYBUT;
  Atrybut wymagany do założenia przedmiotu (oczywiście tylko przedmioty, które można założyć), tą dwójkę należy zignorować bo to raczej porzucony pomysł (ale chyba musi być)
  Oto zmienne atrybutów:
  ATR_HITPOINTS - Aktualne punkty trafień (moja ulubiona nazwa na punkty oznaczające "poziom życia")
  ATR_HITPOINTS_MAX - Maksymalne punkty trafień
  ATR_MANA  - Aktualna mana
  ATR_MANA_MAX - Maksymalna mana
  ATR_DEXTERITY  - Zręczność
  ATR_STRENGTH - Siła

cond_value[2]    = Liczba;
  Wartość atrybutu ustalonego powyżej, wymagana do założenia

on_equip   = Nazwa_Funkcji;
  Tu można wpisać nazwę funkcji (tylko nazwę, bez nawiasów), która ma się wykonać po założeniu przedmiotu, oczywiście tylko dla tych przedmiotów, które można założyć

on_unequip   = Nazwa_Funkcji;
  Jak wyżej, ale przy zdejmowaniu przedmiotu

on_state[0]  = Funkcja;
  Tylko dla przedmiotów z warunkiem sceneName
  Funkcja (bez nawiasów trzeba podać) wykona się podczas "utylizacji" przedmiotu

visual     = "Nazwa.3DS";
  Nazwa modelu tego przedmiotu (raczej musi być format .3DS)

visual_change    = "Nazwa.ASC";
  Model dla zbroi, należy podać nazwę pliku w formacie .ASC

effect   = "NAZWA_EFEKTU";
  Nazwy efektów można znaleźć w pliku VisualFxInst.d w folderze System

visual_skin    = liczba;
  Dla sprytnego zmieniania tekstur zbroi, opisane będzie później dokładnie. Powinno być 0.

scemeName  = "NAZWA_SCENY";
  Przedmiot, który ma coś tu wpisane można "zutylizować" klikając na niego w ekwipunku. Nazw scen najlepiej szukać przy innych przedmiotach

material    = MATERIAŁ;
  Od tego zależy jakie dźwięki przedmiot będzie wydawał (np. przy upuszczaniu)
  Oto materiały jakie występują w grze:
  MAT_WOOD - Drewno
  MAT_STONE - Kamień
  MAT_METAL - Metal
  MAT_LEATHER - Skóra (ale i materiał)
  MAT_CLAY - Glina (?)
  MAT_GLAS - Szkło (?)
 
munition = Instancja_Amunicji;
  Dla broni dystansowych, instancja amunicji do tej broni

spell    =  Nazwa_Zaklecia;
  Dla run i zwojów

range       =   Liczba;
  Zasięg broni (cm), tylko dla broni do walki wręcz

mag_circle    = Liczba;
  Krąg magii wymagany do użycia przedmiotu (raczej runy)

description   =   "Nazwa";
  Nazwa w ekwipunku, można też napisać:
  description   =   name;
  Wtedy nazwa w ekwipunku jest taka sama jak name

TEXT[Liczba]    = Słowo; COUNT[Liczba] = Liczba;
  To służy do opisu przedmiotu
  TEXT jest z lewej strony i jest tekstem
  COUNT jest z prawej strony i jest liczbą
  Każdego może być po 6, dając indeks (0-5) ustawia się miejsce, w którym się znajduje (wiersz)
};

  Przede wszystkim nowe przedmioty należy tworzyć na bazie starych (kopiować, a następnie przerabiać tylko to, co chce się zmienić).

  Tam gdzie napisałem, że coś raczej jest do czegoś znaczy, że nie jestem pewien, ale w oryginale jest tylko tak używane.

1 komentarz: