Wysłany: 2007-07-23, 03:32 [PORADNIK] Podstawy tworzenia skilli
Witam.
Ostatnio dostałem trochę PW na temat skilli więc pomyślałem że przyda się 'pomoc' w ich tworzeniu.
A więc proszę, oto poradnik.
Najważniejszą rzeczą jest... gra w Diablo. Jeśli ktoś nie grał to polecam A na poważnie to nie tyle sama gra a zauważenie umiejętności w niej używanych.
Najpopularniejsze skille:
- Klątwy - czyli umiejętności obszarowe mające na celu obniżenie pewnych rzeczy u przeciwnika
- Skille wspomagające - przykładem takiego skilla jest Urok, pozwala na wzmocnienie sojusznika.
- Nova - umiejętność która rozchodzi się od rzucającego czar w kształcie okręgu.
- Skille obszarowe - Czyli Zamieć. Polega na zadawaniu obrażeń na wskazanym obszarze.
- Meteor - umiejętność która aktywuje się we wskazanym miejscu po chwili
- Skille defensywne - czyli Zbroja Kości, Cyklonu, Tarcza Ostrzy - to co 'lata' wokoło postaci.
- Inferno - skill w stylu: póki trzymasz przycisk to działa
- "Młotki" - umiejętność ze specyficzną trasą lotu
- Zwykłe pociski - czyli Kule ognia, lodowe pociski, jednym słowem - to co wylatuje i uderza bez zbędnych ceregieli.
- Aury
Kolejną rzeczą jest to że musimy wiedzieć jaki skill chcemy zrobić. W tym przykładzie ujmijmy że to będzie jakiś zwykły pocisk.
I tutaj zaczyna się prawdziwa robota, potrzebujemy pliki:
Skills.txt
Missiles.txt
to dwa najbardziej potrzebne nam pliki do tworzenia skilli. Oczywiście innymi przydatnymi mogą być:
States.txt - korzystają z niego najczęściej aury i skille defensywne, oraz wspomagające
SkillDesc.txt - tutaj wpisuje się skille w jakich miejscach i na jakich kartach mają być u postaci.
Więc chcemy zrobić Pocisk który przy uderzeniu wybucha. w Skills.txt:
szukamy linii Fire Ball - to ten skill czarki ognisty co wybucha przy uderzeniu. Kopiujemy sobie ją w całości do nowej linii. Następnie zmieniamy wpis w kolumnie skill na np. Wybuchajaca Czaszka. w Kolumnie id zmieniamy istniejący numer na następny w kolejności. Pole charclass zmieniamy na takie, jakiej postaci chcemy dać skilla: ama, ass, nec, bar, pal, sor, dru - chyba nie trzeba tłumaczyć co dany skrót oznacza (skróty spisane z kolejnością występowania postaci przy jej tworzeniu, jeśli jeszcze ktoś by nie wiedział ). w kolumnie skilldescwpisujemy nazwę naszego skilla, najlepiej nie używając polskich znaków, bez spacji i z małych liter w tym przypadku wybuchajacaczaszka. Będzie trzeba ją użyć w SkillDesc.txt. Następnie patrzysz co jest wpisane w kolumnach:
srvmissile, srvmissilea, srvmissileb, srvmissilec, cltmissile, cltmissilea, cltmissileb, cltmissilec.
Są to wpisy odpowiedzialne za pociski - tak, każdy skill dystansowy to pocisk, obojętnie czy to kula ognia, czy też nova, albo strzała ognista. W naszym przykładzie w polach srvmissile i clt missile możemy zobaczyć napis fireball. Kolumny srv odpowiadają za odpowiednie użycie skilla, są one dla nas nie widoczne a jedynie dla serwera (czyli tez dla kodu gry). Kolumny z clt w nazwie to efekt widoczny dla nas gołym okiem (czyli graficzny)
Brak wpisu w srv może powodować, że skill nie zada obrażeń mimo że go widzimy
Brak wpisu w clt może powodować, że skill zada obrażenia ale będzie dla nas niewidoczny.
Skoro wiemy że pociskiem który szukamy jest fireball, to otwieramy plik Missiles.txt
Tam szukamy w kolumnie Missile wpisu fireball. Kopiujemy sobie do nowej linii ten wpis, oczywiście pamiętamy o zmianie nazwy w polu Missiles i o zmianie na id. W tym przykładzie damy mu nazwę czaszka1. Naszym celem tutaj jest kolumna CelFile, jednak możemy pozmieniać wcześniejsze kolumny (o ile są one używane) pamiętając o jednym:
Kolumny Param1-3 oraz sHitPar1-3 to kolumny które nie są widoczne gołym okiem podczas używania skilla, a jedynie odczytywane przez grę. kolumny CPar1-3 i chitPar1-3 to kolumny widoczne przez człowieka podczas gry, ale nie czytane przez kod gry.
Wynika więc z tego że jeśli wpisane było 1 w kolumnie Param2, to to samo powinno być wpisane w cPar2. Dokładniej wytłumaczę to na przykładzie który omawiam:
sHitPar1 - 4. W opisie pisze że jest to zasięg obrażeń (po wybuchu). Więc wiemy że w zasięgu 4 'pól' uderzy innych (4 pola = 1 metr)
cHitPar1 - 3. Z tego wynika że w zasięgu 3 pól pokazana jest animacja wybuchu - a więc może być tak że przeciwnik zostaje uderzony mimo że animacja go nie objęła. A więc zmieniamy na 4.
cHitPar2 - 1. Czyli 'gęstość' wybuchu. Im mniejsza liczba tym bliżej siebie fragmenty animacji są osadzone
Pola Vel i MaxVel określają jaką szybkość ma mieć nasz pocisk, zaś pole Accel - przyśpieszenie (może być ujemne wtedy pocisk zwalnia). Pole Range to zasięg, 4 - 1 metr gry. LevRange to zasięg dodatkowy który dochodzi z każdym poziomem umiejętności. Jednak pola Range i LevRange nie określają jedynie zasięgu, ale niekiedy czas trwania danej umiejętności! Dobrym przykładem jest Zamarznięta Kula - jeśli chcemy zwiększyć czas jej trwania = jej przebytą drogę wystarczy zwiększyć jej Range. W przypadku zmiany Vel na 0 dla Zamarzniętej Kuli będzie kręciła się ona w miejscu (wtedy range = czas 'kręcenia się'. Każda sekunda to 25 klatek więc jeśli chcemy, żeby kręciła się przez sekundę wpisujemy 25, jeśli przez dwie to wpisujemy 50 itp).
Ok, Jesteśmy przy polu CelFile. Tutaj możemy zmienić wygląd naszego skilla.
Pierw musimy znaleść pocisk który ma interesującą nas animację. Użyjemy do tego animacji ducha z Ducha Kości. Idziemy do linii o id 193, tam następnie do kolumny przed CelFile i kopiujemy kolumy LoopAnim (czy animacja ma się zapętlać), CelFile (wygląd), animrate (przeważnie 1024), AnimLen (jej długość), AnimSpeed (szybkość).
Następnie wklejamy to do naszego skilla. Od tej chwili pocisk będzie wyglądał jak Duch Kości (jednak będzie wybuchał przy uderzeniu. NIE będzie szukał swojej ofiary! Za to odpowiada rodzaj pocisku, a nasz miał być 'zwykłym'). Jeśli chcemy żeby nasz pocisk przeszywał się przez wroga a nie rozwalał się na nim w kolumnie ColiteKill usuwamy cyfrę 1 jeśli istniała. Bardzo ważną kolumną jest kolumna Skill!!!. Jeśli zostawimy ją pustą/z niewłaściwym wpisem nasz pocisk będzie widoczny, jednak nie zada żadnych obrażeń. Powód: gra nie będzie wiedziała jak ma obliczyć obrażenia, z jakiej umiejętności. A więc - w naszym przypadku - wpisujemy tutaj Wybuchajace Czaszka czyli to samo, co wpisaliśmy w kolumnie Skills w pliku Skills.txt . Kolejną kolumną wartą odwiedzin jest EType - czyli animacja podczas uderzenia, jeśli coś tutaj pisze (tak jak w tym przykładzie) to zmieniamy to na:
fire - efekt uderzenia ogniem
cold - efekt uderzenia lodem
light - efekt uderzenia błyskawicą
pois - efekt oberwania trucizną
mag - brak efektu (powinien być jakiś efekt uderzenia magią)
To tylko efekt graficzny chyba że w kolumnach EMin do EMaxLvl5 wpisane są cyfrt oznaczające obrażenia, wtedy skill zadaje obrażenia od danego żywiołu (dodatkowe obrażenia). TravelSound i HitSound są to odpowiednio dźwięki odpowiedzialne za 'podróż' pocisku i jego uderzenie.
Pole ExplosionMissile - czyli pocisk jaki zostanie stworzony bo wybuchu tego pocisku. Możemy odnaleść go, skopiować do nowej linii, zmienić nazwę i zedytować np. typ obrażeń, wygląd wybuchu itp. Nalezy pamiętać o wpisaniu nowej nazwy tutaj. W naszym przypadku jest tutaj explodingarrowexp, czyli efekt... rozwalenia się wybuchającej strzały. Ale nie kopiujemy nic, bo wystarczy nam zwykły wybuch taki jak jest
Pola SubMissile1-3 i CltSubMissile1-3 to pola pocisków tworzonych z naszego głównego. Jeśli coś tutaj mamy wpisane to odnajdujemy sobie ten wpis, kopiujemy zmieniamy nazwę i edytujemy dowolnie według upodobań. Możemy np. skopiować linie lightningbolt zamiast tych co tu piszą, zmienić jej nazwę, wygląd, szybkość, zasięg itp. i wpisać tutaj. Np. Burza ognia (skill druida co idzie po podłodze) ma wpis w Missiles firestormmaker, który tworzy firestorm. Jeśli zmienimy te frestorm na lightningbolt, wtedy druid rzucałby błyskawicami które idą zygzakiem po podłodze (nie sprawdzałem jak to wygląda .
Pola HitSubMissile1-3 i CltHitSubMissile1-3 to pola które odpowiadają za tworzenie pocisku po uderzeniu w cel. Np. Pięść Niebios po uderzeniu wyzwala fistoftheheavensbolt, czyli te Święte pociski.
Zapisujemy plik (najlepiej zostawić otwarty).
Wracamy do pliku Skills.txt - w polach srvmissile, srvmissilea, srvmissileb, srvmissilec, cltmissile, cltmissilea, cltmissileb, cltmissilec (w zależności które edytowaliśmy) wpisujemy nazwę naszego 'nowego' pocisku. W tym przykładzie było to pole srvmissile i cltmissile - wpisujemy tutaj czaszka1.
W polu reqlvl wpisujemy minimalny wymagany poziom dla umiejętności.
W polu maxlvl wpisujemy maksymalny poziom umiejętności (ile punktów możemy wpakować).
W polach reqskill1-3 wpisujemy nazwę skilli (po angielsku, z kolumny Skill w pliku Skills.txt) wymaganych, żeby wpakować tutaj punkt. W tym przykładzie usuwamy ich zawartość.
Ciekawą może okazać się kolumna delay. Tutaj możemy określić, ile czasu potrzeba żeby użyć na nowo skilla. Jednak to pole ma jedną wadę - jeśli użyjemy jakiegoś skilla, co odnawia się po 5 minutach, to inne skille które mają cokolwiek wpisane w tej kolumnie będą dostępne też po pięciu minutach - niestety, przez to zostaje używanie delaya tylko dla najpotężniejszych skilli. Należy pamiętać, że jedna sekunda to 25 klatek, a w Diablo czas mierzymy właśnie w klatkach
Pola Manashift, Mana i Levelmana - pierwsza z nich określa mnożnik/dzielnik ogólnej liczby punktów many wymaganej do rzucenia czaru (o tym za chwilę).
Drugie pole to podstawowa liczba punktów many wymaganych do rzucenia czaru. Trzecie zaś to przyrost wymogów wraz z rozwijaniem danej umiejętności, może być ujemne co spowoduje obniżanie kosztu many.
Wartości pola Manashift (dla przykładu było wymagane 100 many i co poziom 10 dodatkowo):
9 - podwójna liczba punktów many (200 i 20)
8 - normalna liczba punktów many (100 i 10)
7 - 1/2 liczby punktów many (50 i 5)
6 - 1/4 liczby punktów many (25 i 2,5) itd.
Następnym ciekawym polem jest pole HitShift, czyli "mnożnik obrażeń". Działa na tej samej zasadzie co Manashift.
Jednym z istotniejszych pól jest EType (takie, jak było w Missiles.txt takie jest i tutaj,w Skills.txt), czyli rodzaj zadawanych obrażeń (trucizna, zimno, ogień itd). Po nim znajduje się kilka pól z cyferkami:
EMin - startowa MINIMALNA liczba obrażeń
EMinLev1-5 - MINIMALNA liczba obrażeń (wzrost o tyle punktów z poziomu na poziom), nie pamiętam dokładnie ale chyba każde z tych pól odpowiada za 5 poziomów skilla czyli:
EMinLev1 - 2-5
EMinLev2 - 6-10
EMinLev3 - 11-15
EMinLev4 - 16-20
EMinLev5 - 20+
EMax - startowa MAKSYMALNA liczba obrażeń
EMaxLev1-5 - MAKSYMALNA liczba obrażeń (wzrost o tyle punktów z poziomu na poziom)
EDmgSymPerCalc - 'syenergia' do umiejętności
ELen, ELen1-3 - pola dla umiejętności które potrafią ogłuszać/spowalniać/zatruwać. Tutaj podany jest czas działania tych efektów (wiadomo czym jest sekunda w Diablo? )
Zapisujemy plik Skills.txt
Teraz jeśli chcemy dodać naszego skilla do umiejętności danej postaci wystarczy że otworzymy plik SkillDesc.txt i skopiujemy sobie linię dotyczącą skilla który 'przerabialiśmy' (w tym wypadku to wystarczy). W naszym przykładzie przerabialiśmy skilla Fire Ball. w pliku Skills.txt w kolumnie skilldesc miał on wpisane fire ball, więc takiego wpisu szukamy w pliku SkillDesc.txt. Następnie jak to do tej pory robiliśmy - kopiujemy do nowej linii na końcu dokumentu .
Zmieniamy wpis w kolumnie skilldesc (w pliku SkillDesc.txt oczywiście ) na taki jaki wpisaliśmy w kolumnie... skilldesc w pliku Skills.txt - wiem, logiczne to było. U nas: wybuchajacaczaszka.
SkillPage - na której kartce ma być umieszczony skill. Liczba (bez pluginów) od 1 do 3, przy czym 1 to ta na górze w skillach, a trzy - na dole.
SkillRow - w którym wierszu ma być skill umieszczony. Od 1 do 6, jeden to na górze, sześć - na samym dole kartki.
SkillColumn - kolumna w której ma być umieszczony skill. 1-3. Dla jedynki jest to rządek po lewej, dla trójki - po prawej
ListRow - wiersz w którym ma być umieszczony skill w menu gdzie wybieramy którego chcemy użyć. Najczęściej te same co w polu SkillPage
ListPool - jeśli wpiszemy -1, to skill nie będzie wyświetlany wogóle w menu, gdzie wybieramy jaką umiejętność chcemy użyć.
IconCel - ikonka naszego skilla. Powinna być tu wpisana liczba parzysta. Najlepiej jeśli nie dodawaliśmy żadnej nowej wpisać jakąś cyfrę z przedziału 0-30 (parzystą).
Reszty pól nie będę tłumaczył, ponieważ to już powinno być osobnym tematem , to co tutaj pokazałem wystarczy na sam początek, żeby stworzyć swojego skilla
Aha, taka mała uwaga: Wszystkie postacie powinny mieć tyle samo umiejętności - jeśli tak nie będzie to będzie można grać tylko tymi, które mają ich najwięcej. (Inne też się uruchomią, ale tylko raz, a potem będą miały błąd o niewłaściwym ekwipunku postaci). I jeszcze trzeba pamiętać żeby skilla wpakować w puste miejsce tzn. w takie gdzie już nie ma ikonki innego skilla W innym wypadku skill po prostu nie będzie działać mimo że pakujemy w niego punkty. That's All Folks!
_________________ http://r3.bloodwars.pl/r.php?r=10732
Blood Wars - Wojny Krwi. Gra dla lubiących wampiry, walkę i RPG
Twoja rejestracja na pewno mi pomoże. Dziękuję
A ja się tak starałem długo pisać, żeby nikt nie przeczytał No trudno, stało się . I tak w nim wytłumaczone tylko podstawy są czyli najbardziej prosty sposób na robienie skilli. Nie wiem czy pisać jeszcze poradnik dotyczący pliku SkillDesc.txt - cały czas się nad tym zastanawiam, ale może być ciężko bez kolorowania. Ok, postaram się, chyba nawet pokombinuję dzisiaj z tabelkom w AFJ Sheet żeby każdy mógł sobie ją zapisać i wczytać podczas edycji SkillDesca.
_________________ http://r3.bloodwars.pl/r.php?r=10732
Blood Wars - Wojny Krwi. Gra dla lubiących wampiry, walkę i RPG
Twoja rejestracja na pewno mi pomoże. Dziękuję
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 Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum