Kingdom od strony technicznej i matematycznej (3 na ???) [zaktualizowane]

Ave zupa mleczna. Niech moras zawsze wam świeci.
Czy coś.
Dziś będzie, wreszcie i nareszcie, o ABS, czyli Absolutnym Braku Szyi... a nie, to nie poradnik medyczny. Nieważne.
Zapraszam do czytania. Dodatkowo link do demka z ABSem.



Zaczniemy od wyglądu drzewka zdarzeń, jak jest rozprowadzane. Obrazkowo zilustruje nam to piękny jotpeg... nie no, szanujmy się, png przynajmniej.
Pinkne, czyż nie?

Legenda:
  •  Zdarzenie inicjujące - kolor niebieski                              
  •  Zdarzenie „po prostu" - kolor afroamerykański             
  •  Połączenie „Lub" - kolor żółty .                                      
  •  Połączenie normalne - kolory niebieski i afroamerykański
  •  Połączenie łączące - kolor zielony                                   
Teraz, gdy schemacik mamy za sobą, możemy umrzeć (chciałbym...) przejść dalej. 
Czyli tłumaczymy dokładnie co czym jest, i co jak działa.

Przeciwnik 

   Myślę (osiągnięcie...), że tłumaczyć czym to zdarzenie jest nie trzeba, natomiast jak działa - już tak. 
Tutaj są zmienne wszelkich informacji o przeciwniku (atak, obrona, szybkość...), a dodatkowo są tu odpowiednie warunki do; tego, czy przeciwnik żyje, jaki tryb walki dystansowej jest ustawiony,  no i najważniejszy, czy przycisk C (domyślnie Enter) jest naciśnięty. No i współrzędnych, ale jest to związane z walką dystansową, ją zostawię na później, bo jest zupełnie dziwnym, choć ciekawym systemem. 

   Od tego, czy naciśniemy Enter w odpowiednim czasie, zależy czy atakuje mob, czy gracz. Trzymanie cały czas Enter nie pomoże, jest przed tym zabezpieczenie. Więc trzeba umieć wyczuć moment. 

   Właściwie najważniejsze co zostało przekazane o przeciwniku. 

Abs - baza

Ta... nie ma co dużo o tym mówić, jako, że całe te zdarzenie jest tylko po to, by pobrać ilość HP bohatera, jego szczęście i szybkość, a dodatkowo sprawdzić, kto atakuje. 

Bohater - mob

Tu zaczyna się magia. Tutaj bohater atakuje moba. Pobierany jest atak i moc magiczna bohatera. Odpalane są moduły (priorytetowe), o nich za chwilkę. Po czym sprawdzamy typ ataku (fizyczny, energetyczny, fizyczno-energetyczny). Tam są liczone obrażenia z odjęciem od nich odporności/obrony moba. Następnie znów są moduły (zwykłe). Po czym liczymy to, czy trafimy. Bierzemy szybkość bohatera, mnożymy przez szczęście, i przez losową liczbę całkowitą od 3 do 6, dzielimy przez szybkość i szczęście moba, po czym kolejno, dodajemy liczbę od 1 do 8, i odejmujemy od 1 do 8. Może komuś nie obeznanemu się wydać, że to nic nie zmieni, ale są to liczby za obydwoma razami losowe, czyli najpierw może być np. 7 a potem 3, i to już coś zmieni. Choć może być sytuacja, że nic się nie zmieni.
Wzór wygląda tak:
ab{3,4,5,6}/cd+{1,2,3,4,5,6,7,8}-{1,2,3,4,5,6,7,8}
a - szybkość bohatera
b - szczęście bohatera
c - szybkość moba
d - szczęście moba
Po czym wykrywamy kierunek, by nie można było zadać obrażeń będąc... bokiem do przeciwnika lub tyłem. Oczywiście można to zmodyfikować, by zdanie ciosu w plecy podwoiło obrażenia, czy coś. Sprawdzamy poprawność ciosu, szanse trafienia (jeśli większa od 10, to trafiamy.), wyświetlamy animacje, dajemy warunek, sprawdzający czy obrażenia zadane są większe od 0, byśmy nie leczyli przeciwnika (był taki błąd xd) no i odejmujemy obrażenia od HP przeciwnika. Jeśli nie trafiamy wyświetla się animacja pudła, domyślnie „Uderzenie" (animacja 19 z RTP). Na koniec jakieś śmieciowe moduły. 

Mob - bohater

Tu to samo co u góry, tylko dane inne są pobierane, i wzór na trafienie jest inny. 
ab{8,9,10,11,12}/cd+{4, 5,6,7,8}-{1,2,3,4}
Ogólnie większa jest szansa, że mob nas trafi, niż my jego. 

Moduły

Tu jest trochę do opowiadania. W modułach może być właściwie wszystko, od prostych mnożników i warunków, do zaawansowanych obliczeń, związanych z tym, czy właśnie w grze pada deszcz, przez co można zmniejszyć obrażenia od ognia, ale zwiększyć od elektryczności. To właśnie moduły czynią ten ABS wysoce modyfikowalnym, i podatnym na zmiany... bo zmiana w module lub dodanie nowego, to nie zmiana samego kodu ABS-u. W uproszczeniu: jeśli masz pasującą na ciebie koszulkę, to jak pomalujesz ją na inny kolor, to po wyschnięciu jej rozmiar raczej się nie zmieni i nadal będzie pasować.
Domyślne moduły to: wykrywanie pancerza (w tym tarcz, akcesoriów...), broni, sprawdzenie typu moba, mnożniki podstawowe, moduł trucizny, wykrywanie kierunku (o tym zaraz) i wykrywanie modyfikacji przez atrybuty, o czym też się rozpowiem. 

   Kierunek
      Jest to na tyle dziwne zdarzenie, że wyjaśnienie go nie ma najmniejszego sensu. I tak nie jest przeznaczone do zmiany. Powiem tylko, że to wymaga pierwiastka, a samego pierwiastka nie ma w RM... Jak liczę pierwiastek? 
Treść dla chętnych:

Chodzi o to, iż mamy wartość a^2+b^2 (dalej jako c)jako zmienną "Obliczenie", musimy do niej obliczyć pierwiastek, dajemy więc zmienną Obliczenia '2', która ma wytyczyć ten pierwiastek, ale nie zrobi tego od tak. Trzeba więc dać '3' zmienną Obliczenia '3', którą ustawiamy na wartość Obliczenia '2', po czym potęgujemy (czyli mnożymy przez siebie samą). Jeżeli ta potęga jest równa 'c', to tyle, jeżeli jest większa, to przechodzimy dalej, jeżeli mniejsza dodajemy 1 (jako cyfre) do zmiennej Obliczenia '2', i wracamy do ustawiania Obliczeń '3' na 2' 'i potęgowania, powtarzamy tak długo, aż potęga będzie większa. Co dalej jak więszka? Chcemy, by zaokrąglało ładnie w dół, więc ustawiamy '3' ponownie na wartość '2', potęgujemy, i sprawdzamy czy jest to mniejsze od 'c', jeżeli tak, to kończymy, jeżeli nie to odejmujemy od dwójki 1, wracamy do ustawiania '3' na wartość '2', potęgujemy i powtarzamy te czynności tak długo, aż potęga '3' będzie mniejsza od 'c', wtedy kończymy.

No, to idziemy dalej. 

   Modyfikacja przez atrybuty
      Jest to blisko związane z walką dystansową. Tylko tam jest używane. Są tu liczone obrażenia i szansa na trafienie. Wzory: 
         Początkowy a*b/c/d/e+1=f 
         Obrażenia 100-c=j
         Trafienie 100*f-c/10=k
     A - szybkość bohatera, b szczęście bohatera, c odległość od moba, d szybkość moba, e szczęście moba, f liczba bazowa, i procent obrażeń, j szansa trafienia.     

   Walka na dystans:

To temat na oddzielny wpis. I tak zresztą będzie, może dokładniej tam omówię obliczenie odległości. 

Oto demko: klik.Powinien też pojawić się z nim temat na gospodzie, ale czy tak będzie, to inna sprawa.
Na razie to tyle.

Pozdrawiam! 

Komentarze

Popularne posty z tego bloga

Handlówka Ważne Informacje!!!

Ważna Informacja

Handlówka 0.1.7 plany