Czar gromu z G1 w G2? 9725 26

O temacie

Autor Unelith

Zaczęty 25.10.2014 roku

Wyświetleń 9725

Odpowiedzi 26

Unelith

Unelith

Użytkownicy
posty40
  • Użytkownicy
Właśnie nie parsuję spacerem tylko GothicStarter_modem. Jak zmienię ChainLightning na Lightning to będę miał tą błyskawicę z G2, a ona wygląda zupełnie inaczej, a nie o to mi chodzi.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Jeśli chodzi ci o ten czar w którym między postaciami pojawia się "łuk elektryczny", to jego część wizualna jest zaimplementowana po stronie silnika, nie skryptów. Nie pamiętam jak duża, ale jeśl przywracanie wszystkich VFX z dokladnie tą samą nazwą nie działa, to odpowiedni kod mógł zostać usunięty z silnika.

Unelith

Unelith

Użytkownicy
posty40
  • Użytkownicy
Tak też coś myślałem że to po prostu nie zadziała pod G2 NK, ale czy jest może jakaś inna metoda by wywołać zbliżony efekt?
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Nierealne bez ingerowania w silnik.

Efekt o którym wspomianałem to "wstęga polygonów" (polystrip). Możesz ją stworzyć z poziomu skryptów, ustawiając w wybranym VFX'ie visName_S = "NAZWA_TESKTURY.trl". Za "magię" odpowiada końcówka ".trl", która wygląda jak rozszerzenie (i która ma zastąpić prawdziwe rozszerzenie .tga). Przykładowo jeśli masz teksturę menu.tga, to ustawiasz "visName_S = menu.trl".

Następnie za pomocą tablicy userString masz podać parametry wstęgi. Niestety nie wiadomo jakie są (i nigdzie tego nie znajdziesz, na 99% jako pierwszy w ogóle znalazłem ten efekt - nie był nigdy użyty w skryptach, trafiłem na jego ślad w zdekompilowanym kodzie silnika). Jedyne co mogę doradzić to randomowe wklepywanie tam różnych liczb - chyba że dobrze ogarniasz assemblera / reverse engineering, to mogę dać wskazówki co do tego gdzie szukać w gothic.exe. Mi wyszło np coś takiego:


Problem w tym, że musiałbyś:
 - przyczepić jeden koniec do dłoni bohatera (proste)
 - przyczepić drugi koniec do ofiary (trudne bardzo)
 - stamtąd zrobić rozgałęzienia do innych (jeszcze trudniejsze)
 - losowo deformować wstęgę w czasie (trudne bardzo)

Możesz rzucić okiem tutaj: http://themodders.org/index.php?topic=17406

Unelith

Unelith

Użytkownicy
posty40
  • Użytkownicy
A więc wygląda na to że byłoby sporo roboty z tym. Nawet jeśli by pominąć rozgałęzienia, które w sumie nie są mi aż tak potrzebne.

Załóżmy jakbym miał pisać coś takiego, to jakieś jeszcze pozycje, które normalnie są w instancji efektu, takie jak  "visAlphaBlendFunc_S", "emTrjOriginNode", mają zostać ustawione, czy to działa jakby niezależnie od tego wszystkiego, i opiera się tylko na tych tajemniczych liczbach?

I jeszcze kwestia, czy zadziałałoby to w Gothic 2, ale to już sobie sprawdzę doświadczalnie.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Musisz ustawić tylko czas trwania efektu, o ile pamiętam pozostałe parametry nie mają tu znaczenia. Zamiast nich trzeba wklepać odpowiednie userStringi.

Właściwie jest ktoś kto mógłby powiedzieć ci więcej na ten temat, ale jego dorwiesz raczej tylko na forum worldofgothic.de - niemiecki modder Lehona, który ogarnia reverse engineering silnika dużo lepiej odemnie.

Unelith

Unelith

Użytkownicy
posty40
  • Użytkownicy

Unelith

Czar gromu z G1 w G2?
#26 2014-10-27, 22:54(Ostatnia zmiana: 2014-10-27, 23:44)
Tak, działa to w G2NK. Tylko muszę się pobawić parametrami, o dalszym postępie będę tu informował w tym poście, jak ktoś jest zainteresowany.

Edit 1: Zauważyłem, że userString[0] odpowiada za szybkość zanikania tej wstęgi. Im mniejsza ta wartość, tym dłuższe są te smugi. Wolno tu wpisać float, przy 0.1 uzyskałem efekt nieco zbliżony do tego z twoich screenów. Taki sam (chyba) był przy 0.01, smugi oderwały się od postaci po chwili przemieszczania się. Co do userString[1] to nie mam pojęcia, próbowałem nadawać temu różne wartości i sprawdzać, ale póki co nic to nie robi. Jak patrzyłem na inne efekty, to może tu także być konieczność by wprowadzić coś innego niż pojedynczą liczbę.
 


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