Admin (5 postów dotychczas) | | Do tworzenia własnych postaci będzie potrzebny program Data Changer, albo konkretniej mówiąc program, który potrafi odszyfrować pliki .dat ponieważ na takich plikach opiera się całe LF2. Obsługa tego programu jest tak prosta jak obsługa Notatnika.
Potrzebny będzie również program do obróbki plików .bmp. Najczęściej używanym programem tego typu jest wbrew wszelkim pozorom MS Paint.
A więc zaczynamy? Z góry ostrzegam, że aby zrozumieć ten poradnik trzeba mieć dużo cierpliwości, a żeby stworzyć porządną postać trzeba jej jeszcze więcej. Nie zamierzam tłumaczyć jak kopiować ataki, ponieważ to znajdziecie np. na stronie ?http://www.littlefighter.gsi.pl/?. Zamierzam po prostu wytłumaczyć jak to działa.
Plik dat każdej postaci zaczyna się od tak zwanej części bmp. Wygląda ona tak:
name: Davis - imię postaci, spację oznaczamy jako '_'
head: spritesysdavis_f.bmp główka postaci widoczna przy wybieraniu jej. Ma format 120x120 pikseli
small: spritesysdavis_s.bmp miniaturka postaci widoczna przy pasku życia. Ma format 40x45 pikseli
file(0-69): spritesysdavis_0.bmp w: 79 h: 79 row: 10 col: 7
file(70-139): spritesysdavis_1.bmp w: 79 h: 79 row: 10 col: 7
file(140-209): spritesysdavis_2.bmp w: 79 h: 79 row: 10 col: 7
Są to pliki graficzne dla postaci, numery te będą później wykorzystywane w poszczególnych klatkach.
w: szerokość jednej klatki, h: wysokość jednej klatki, row: ilość klatek w rzędzie, col: ilość klatek w kolumnie
walking_frame_rate 3 ? ilość czasu między kolejnymi klatkami chodzenia, niezależna od parametru wait: w tych klatkach (o parametrze wait będzie później)
walking_speed 5.000000
walking_speedz 2.500000
Szybkość chodzenia, odpowiednio w lewo i w prawo lub górę i w dół (podane bodajże w pikselach na TU (TU=jednostka czasu))
running_frame_rate 3
running_speed 10.000000
running_speedz 1.600000
Te trzy oznaczają to samo co w klatkach chodzenia, więc ich nie tłumaczę
heavy_walking_speed 3.700000
heavy_walking_speedz 1.850000
heavy_running_speed 6.200000
heavy_running_speedz 1.000000
Szybkość chodzenia/biegania podczas trzymania ciężkiego przedmiotu (Typu 2)
jump_height -16.299999
Wysokość skoku jest zawsze ujemna.
jump_distance 10.000000
jump_distancez 3.750000
Dystansy pokonywane podczas skoku w bok/w górę
dash_height -10.000000
dash_distance 18.000000
dash_distancez 5.000000
Są to wartości wykorzystywane przy skoku podczas biegu. Jeśli zrozumiałeś poprzednie części to ta nie powinna być zagadką.
rowing_height -2.000000
rowing_distance 5.000000
Wartości podczas ?salta? w tył podczas spadania (klawisz J podczas spadania)
To by było na, tyle jeśli chodzi o pierwszą część. Kolejna to już klatki. Klatki to najważniejsza część gry. To one decydują o tym, co będzie się działo na ekranie.
Każda klatka zawiera podstawowe informacje takie jak czas, po jakim pojawi się następna, ruch w danej klatce, czy chociażby, jaki obrazek pokaże się podczas wykonywania klatki.
399 dummy (powiadomienie, iż zaczyna się nowa klatka, numer klatki, nazwa (łatwiej się zorientować co jest czym))
pic: 0 (obrazek klatki)
state: 0 (stan postaci, jest około 50 stanów postaram się je wszystkie później opisaćsmiley
wait: 0 (ile komputer będzie oczekiwał na następną klatkę(w TU (1TU=1/30 sekundy jakby ktoś zapomniałsmiley))
next: 0 numer następnej klatki
dvx: 0 dvy: 0 dvz: 0 (ruch pstaci w danej klatce (x= w lewo prawo, y=góra (skok), z=głębia(góra, dół stojąc na ziemii)
centerx: 39 centery: 79 (miejsce, w którym pojawi się cień oraz miejsce z którego liczone są wszystkie inne wartości dotyczące położenia)
hit_a: 0 hit_d: 0 hit_j: 0 (określa co stanie się po wciśnięcu odpowiednich klawiszy, więcej poniżej)
bdy:
kind: 0 x: 21 y: 18 w: 43 h: 62
bdy_end:
(Jest to akurat funkcja specjalna więc jej tu nie opiszę.)
Co do funkcji hit_a itd. warto wspomnieć o wszystkich możliwych kombinacjach klawiszy:
hit_a oznacza przyciśnięcia ataku
hit_d obrony
hit_j skoku
hit_Fa obrony+kierunku+ataku
hit_Ua obrony+góry+ataku
hit_Da obrony+dołu+ataku
hit_Fj obrony+kierunku+skoku
hit_Uj obrony+góry+skoku
hit_Dj obrony+dołu+skoku
hit_Ja obrony+skoku+ataku
Warto wspomnieć o podstawowych klatkach, jakie powinna mieć każda postać. Są to:
0 ? standing, 5 ? walking, 9 ? running, 12 - heavy_obj_walk, 16 - heavy_obj_run, 19 - heavy_stop_run, 20 / 25 - normal_weapon_atck, 30 - jump_weapon_atck, 35 - run_weapon_atck, 40 - dash_weapon_atck, 45 - light_weapon_thw
50 - heavy_weapon_thw, 52 - sky_lgt_wp_thw, 55 - zwanweapon_drink, 60 / 65 ? punch, 70 - super_punch, 80 - jump_attack, 85 - run_attack, 90 - dash_attack, 95 - dash_defend, 100 / 102 / 108 ? rowing, 110 ? defend, 112 - broken_defend, 115 - picking_light, 116 - picking_heavy, 120 ? catching, 20 / 25 - normal_weapon_atck, 130 / 133 - picked_caught, 180 / 186 ? falling, 200 ? ice, 203 ? fire , 207 ? tired, 210 ? jump, 213 / 214 ? dash, 215 ? crouch, 218 - stop_running, 219 - crouch2, 220 / 222 / 224 / 226 ? injured, 230 / 231 ? lying , 232 - throw_lying_man, 399 ? dummy
Wszystkie te nazwy powinny być zrozumiałe pod warunkiem, że czytacie ten poradnik od początku. Gdybyście czegoś nie rozumieli wystarczy sprawdzić daną klatkę i obejrzeć przypisany jej rysunek. Powinno to rozwiać wasze wątpliwości.
Przejdę teraz do funkcji specjalnych w klatkach. Pierwsza i najprostsza z nich to funkcja bdy.
bdy: - początek funkcji
kind: 0 (kind jest zawsze 0 (jest wyjątek ale o nim później) x: 21 y: 18 w: 43 h: 62(koordynaty (punkt startowy, wysokość, szerokośćsmiley
bdy_end:
To jest jak widzicie baaardzo trudne. Funkcja jest używana, aby określić obszar w który należy uderzyć aby postać odniosła obrażenia (bdy=skrót od body=ciało).
Kolejna funkcja to funkcja itr (interaction=interakcja(wpływ na otoczenie jakby ktoś nie wiedziałsmiley). Jest trudniejsza, ponieważ występuje kilka jej typów. Jednakże prawdopodobnie będziecie korzystali tylko z jednego bądź dwóch?
Typ pierwszy to zwykłe uderzenie.
itr:
kind: 0
x: y: w: h: (miejsce gdzie zostanie zadane uderzenie )dvx: dvy: (jak zachowa się przeciwnik po uderzeniu = odrzut ) vrest: ( lub arest: )(określa czas po jakim ten sam atak może uderzyć ponownie postać (vrest jest jeśli bijesz wielu przeciwników arest jeśli jednego (nigdy nie użyłem arest więc nie wiem jak działa)
fall: każda postać ma 70 punktów upadku. Każde uderzenie zabiera ich trochę. Poniżej macie pewne wartości ( wartość parametru fall, ilość ciosów do przejścia w Dance of Pain, ilość ciosów do upadku)
20 - 3, 4
30 - 2, 3
60 - 1, 2
70 - 1 (od razu upada)
bdefend: podobne do fall tyle że jest 10 punktów. Kiedy zejdą poniżej zera przeciwnik który się broni przejdzie do klatki broken defend.
injury: ilość punktów życia odebranych wrogowi.
zwidth: jest to szerokość ataku w kierunkach góra dół. Nie umiem tego bardziej zrozumiale wytłumaczyć
effect: jaki efekt wywoła atak. Poniżej umieszczam listę.
itr_end:
Lista efektów:
0. Normalny atak
1. Krew
2. Ogień
3. Zamrożenie
4. Działa jak odbijająca Johna
5. Jest to taki sam efekt jak byśmy w ogóle nie napisali effect. W grze nie jest użyty
20. Zapala, odporność na efekty 20, 21. Np. użyte w każdej płonącej postaci i w ogniu, który zostawia Firen, kiedy robi ognisty bieg.
21. Zapala, odporność na efekty 20, 21. Np. ognisty bieg
22.Zapalam, eksplozja. dvx, dvy muszą być negatywne ponieważ inaczej wciągnie postać do środka. Np. wybuch Firena.
23. To samo, co wyżej tyle, że nie zapala. Np. wybuch Juliana.
30. Zamrożenie. Zamrożone postacie są odporne na ten efekt. Np. Lodowe kolumny Freeza.
40. Nie wiem co to jest.
Kolejny rodzaj interakcji to łapanie.
itr:
kind: 1
(obszar)
caughingact: (tutaj podajemy 2 numery klatek do jakich przejdzie nasza postać po złapaniu (jedna dotyczy łapanie od przodu druga od tyłu)) caughtact: (to samo tyle, że chodzi o klatkę do której przejdzie złapana postaćsmiley
itr_end:
Używamy
Podniesienie broni:
itr:
kind: 2
x: y: w: h: (obszar)
vrest: 1 (zawsze)
itr_end:
Używamy w pierwszej klatce uderzenia pięścią (zwykłego uderzenia (bo np. Rudolf rzuca szriukenem smiley ) )
Następna to łapanie postaci która nie robi Dance of Pain:
itr:
kind: 3
x: y: w: h: (obszar)
caughingact: caughtact: to samo co w kind: 1
itr_end:
Używane w klatkach Louisa kiedy próbuje złapać postać.
Kolejny to uderzenie jakie wykonuje twoja postać po rzuceniu przez kogoś.
itr:
kind: 4
?
Stawiam 3 kropki ponieważ reszta funkcji została opisana w kind: 0, a są takie same. W razie wątpliwości patrz kind: 0
?
itr_end:
Kolejna to uderzenie bronią. Jest o tyle dziwna że musi się odwoływać do siły danej broni. Dlatego wartości powinny być zawsze takie same (zaraz je podam)
itr:
kind: 5
x: y: w: h: (obszar)
dvx: 8 (zawsze)
fall: 20 (zawsze)
bdefend: 16 (zawsze)
injury: 789 (zawsze)
itr_end:
Kolejna to informacja dla innych postaci, że należy wykonać Super Punch, czyli atak kończący np. uderzenie pałką Johna w góre.
itr:
kind: 6
x: y: w: h: (obszar)
vrest: 1
itr_end:
Jest to używane w klatkach Dance of Pain oraz Broken Demence
Kolejny typ to podnoszenie broni podczas turlania
itr:
kind: 7
Reszta jak w zwykłym podnoszeniu broni
itr_end:
Kolejny to leczące kulki (np. Johna)
itr:
kind: 8
x: y: w: h: (obszar)
dvx: numer klatki do której przejdzie kulka po uleczeniu kogoś
injury: ilość hp możliwych do wyleczenia. Zazwyczaj 100
Kolejna to tarcza odbijająca pociski. WAŻNE! Nie używać w postaciach. Użyć kind: 0 /effect 4
itr:
kind: 9
?
itr_end:
Nigdy nie używałem. Nie rozumiem tego do końca.
Kolejny rodzaj jest wykorzystany w klatkach fletu Henrego
itr:
kind: 10
x: y: w: h: (obszar)(wszystkie bronie i postacie unoszone są do górnej krawędzi tego obszaru
vrest: 1
injury: niska wartość ( kind: 10 automatycznie zabiera przeciwnikowi życie więc spokojnie możemy zostawić to w spokoju)
zwidth: patrz kind: 0
itr_end:
kind: 11 sprawia że przeciwnik przebywa cały czas w klatkach falling. Jednak kind: 10 ma ten sam efekt więc kind: 11 jest niepotrzebny.
Następny rodzaj tylko blokuje drogę
itr:
kind: 14
x: y: w: h: (obszar)
vrest: 1
itr_end:
Używany np. w kamieniu czy lodowej ścianie Freeza.
itr:
kind:15
?
itr_end:
Użyty w wichurze Freeza, odpowiada za wirowanie.
itr:
kind: 16
?
itr_end:
To samo, co wyżej tyle, że odpowiada za zamrażanie.
NO! To tyle o interakcji.
Kolejna funkcja, którą się zajmę to bpoint.
Odpowiada za pasek krwi na twarzy postaci.
bpoint:
x: y: (pozycja)
bpoint_end:
Kolejna, bardzo ważna to point, który odpowiada za zachowanie broni w rękach:
wpoint:
kind: (1 używamy do wszystkiego, oprócz wypuszczania broni z ręki bo do tego jest kind: 3)
x: y: Punkt w którym postać trzyma broń.
weaponact: Określa jak zachowa się broń podczas trzymania przez postać. (numer klatki)
attacking: od 1 do 4. Określa, jaki atak wykonuje broń. Jest to odnośnik do pliku broni.
cover: 1=broń ukryta 0=broń widoczna
dvx: dvy: dvz: wykorzystane przy ruchu. Jeśli chcesz upuścić broń z zerowymi koordynatami używasz wpoint / kind: 3
Point to to, na co czekaliście: tworzenie obiektów:
opoint: początek
kind: 1 dla wszystkiego, 2 dla lekkich broni.
x: y: gdzie pojawia się obiekt
action: numer klatki, w której zostanie aktywowany obiekt
dvx: dvy: impuls początkowy
oid: numerek obiektu (z pliku data.txt)
facing: 0 jeden obiekt z przodu (pozytywny dvx oddala od postaci) 1 jeden obiekt z tyłu. Liczby dwucyfrowe: 10: tu był jakiś kruczek, ale nie pamiętam. Pierwsza liczba określa ilość obiektów, druga kierunek (0 przód, 1 tył, 2 nie wiem smiley)
opoint_end: koniec
Jest jeszcze cpoint, ale dodam go innym razem (tak tak nie skończyłem jeszcze tego pisać smiley)
Staty (stany postaci)
0 - stanie, reakcja na wszystkie klawisze i przejście do standardowych klatek (podałem jużsmiley
1 - chodzenie (prędkość ustalana automatycznie, według bmp_part), reakcja na to samo, co w 0
2 - bieg reakcja na wszystkie klawisze i przejści do odpowiednich klatek, prędkość z bmp.
3 - atak pięścią z tym statem używana jest interakcja
4 - skok, reakcja na strzałki lewo- prawo (zmienia ustawienie postaci) i klawisz ataku
5 - dash, czyli atak w biegu
6 - rowing
7 - obrona
8 - przełamana obrona
9 - łapanie, jeśli w klatce jest cpoint trzeba użyć state: 9 żeby działało bez problemu
10 - złapany do wszystkich klatek, w których postać jest złapana (brak kontroli nad postaciąsmiley
11 - uderzony brak kontroli nad postacią (standardowej)
12 - spadanie
13 - lód może być uderzony przez przyjaciół, pierwsze uderzenie rozbija lód
14 - leżenie ciekawy state, gdyż można go użyć do ruchu po śmierci postaci, ignorowany przez komputer.
15 - inny, brak specjalnych właściwości
16 - uderzony 2 ( nie wiem po co)
17 - picie z butelek
18 - płonięcie. Interakcja może wpływać na przyjaciół!
19 - ognisty bieg. Możesz ruszać się na osi z ale nie skrzywdzisz przyjaciół
100 - uderzenie w ziemię. Jest użyte w dash ataku louisa z dużym parametrem wait:. Za parę dni opracuje ten state dokładnie.
301 - odpowiada za atak, przy którym można poruszać się na osi z. Patrz: Deep - Dashing Strafe (bieg z mieczem?)
400/401 - teleport Woodyego 400 teleport do najbliższego wroga na dystans 121 pikseli, 401 do najdalszego przyjaciela na dystans 60 pikseli
500/501 - przemiana Rudolfa. Wytłumaczę później.
1000 - odpowiada za zachowanie się lekkiej broni w powietrzu
1001 - l. broń w ręce
1002 - rzucona l. broń
1003 - l. broń odbijająca się od ziemi (nie jestem pewien)
1004 - lekka broń na ziemi
1700 - leczy 10 hp (tylko z ciemnego paska) to samo co itr/kind: 8
2000 - ciężka broń w powietrzu
2001 - c. broń w ręce
2004 - rzucona c. broń
3000 - lecąca kulka. Po uderzeniu z innym atakiem który ma state: 3000 atak jest niszczony
3001 - używane w klatkach uderzenia w coś. To samo co 3002 i 3004 więc ich nie opiszę
3003 - odbicie ataku (chodzi o atak ze statem 3000)
3005 - atak bez cienia. Najsilniejszy, niszczy wszystkie inne.
3006 - super atak. Niszczy 3000 ale jest niszczony przez 3005
80xx - (xx to id postaci z pliku data.txt) przemiana w wybraną postać (tutaj jest bug i trzeba do wszystkich numerów obrazków (picsmiley dodać 140... (muszę przyznać że ten state zawsze mi się przydawał smiley)
9995 - transformacja w postać o id: 50 (Louis EX)(BTW: id tłumaczyłem w części z opoint: więc jeśli czytasz od końca to tam zajrzyj)
9996 - zbroja louisa. Aktywowane: są 4 razy id 217(i lecą na boki) i raz id 218 (i zostaje w środku). Mogą "skrzywdzić" twoją postać.
9997 - wiadomości max 80x80 z tego co pamiętam. Jeśli aktywujesz opointem musisz dać dvy: 550 bo inaczej będzie spadać smiley.
9998 - usunięcie obiektu z gry. To samo co next: 1000 ale jeśli pracujesz z cpointami i broniami to lepiej użyć tego.
9999 - patrz 15.
Przemiana rudolfa:
Potrzebny będzie cpoint, ale chwilowo nie wiecie co to smiley. Podpowiem że w klatkach dotyczących trzymania wroga trzeb umieścić odnośnik do klatki z transformacją.
Klatka musi mieć:
state: 9
cpoint z wartościami : vaction: 181 (żeby przeciwnik przeszedł do klatki falling)throwvx: 10 throwvy: -5 (żeby przeciwnik nie została w tym samym miejscu) throwinjury: -1 (odpowiada za samą transformacjęsmiley
Tyle. Jesteście już inną postacią. Z powrotem zmieniacie się przez kombinację D+J+A. Tak jest niestety w kodzie gry.
Żeby przemienić się w postać którą już byliście trzeba:
stworzyć jedną klatkę z state: 500. Stworzyć drugą klatkę z state 501. Tyle. Warto uwzględnić w tej drugiej next: 999 ale nie jest to konieczne. (500 odpowiada za blokadę w razie gdybyś nie był jeszcze żadną inną postacią (wrócisz wtedy do klatki standing)
Jest to poradnik Napisany przez bardzo dobrego gracza "Już Legenda" Żubra.Ma wam na celu pomóc w tworzeniu postaci. |