Dodanie mikstury zwiększającej DMG na określony czas 3362 4

O temacie

Autor themo

Zaczęty 28.11.2017 roku

Wyświetleń 3362

Odpowiedzi 4

themo

themo

Użytkownicy
posty4
Propsy3
ProfesjaNierób
  • Użytkownicy
Witam
Ostatnio chciałem dodać miksturę zwiększająca DMG na określony czas np. 10 min. Wszystko działa dobrze oprócz zwiększonego DMG. W skrypcie mikstury szybkość, a dokładniej w funkcji Use jest linijka Mdl_ApplyOverlayMDSTimed   (self, "HUMANS_SPRINT.MDS", Time_Speed); i nie wiem  jak przerobić ją zwiększenie DMG.
Jak ktoś wie to prosiłbym o pomoc.
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Zwykłymi skryptami tego nie zrobisz. Musisz edytować funkcje silnika (za pomocą Ikarusa lub AST) odpowiedzialną za zadawane obrażenia. Mdl_ApplyOverlayMDS zmienia tylko animacje postaci na te podaną w cudzysłowie.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Właściwie to może dałoby się to "wyhackować" w ograniczonym czasowo overlay MDS dodając w nim trwające przez cały czas wyprowadzania ciosu eventy DEF_DAM_MULTIPLIER.
eventTag (0 "DEF_DAM_MULTIPLIER" "2.0")
Nie prowadzę pomocy technicznej w sprawie powyższego rozwiązania. To dość zaawansowane - jeśli nie masz pomocy nikogo zaawansowanego, polecam odpuścić sobie tą drogę.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Nie łatwiej jest zwiększyć siłę czasowo ?
 
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Nie działałoby z bronią dystansową ani magią. Jak iść na łatwiznę, zrobiłbym to inaczej.

U wszystkich npc (w tym potworów) podpiąłbym pod PERC_ASSESSDAMAGE funcję która zadaje dodatkowe obrażenia jeżeli atakującym jest gracz i od czasu wypicia mikstury minęło mniej niż X czasu, mierząc za pomocą Wld_GetTime (dostępne tu: https://forum.worldofplayers.de/forum/archive/index.php/t-752130.html). Czas wypicia mikstury zapisujesz w zmiennej i czyścisz w B_RefreshArmor (wywoływane przez silnik o północy świata gry) oraz w kodzie snu.
Nie jestem pewien jakie efekty wydajnościowe może mieć wołanie tej implementacji Wld_GetTime za każdym razem kiedy ktoś otrzymuje obrażenia - jest tam wykorzystane przeszukiwanie binarne i rekurencja. Trzeba sprawdzić czy przy używaniu czarów zadających obrażenia wielu npc na raz (np fala śmierci w środku armii szkieletów) nie zawiesza gry.


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