Opisanie "Wld_PlayEffect" co co znaczy 6966 7

O temacie

Autor Bogdan Zwei

Zaczęty 16.05.2012 roku

Wyświetleń 6966

Odpowiedzi 7

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
W tym tutorialu opiszę dla początkujących funkcję wld_PlayEffect.
Ta funkcja, a dokładnie ten kod wygląda tak:

Wld_PlayEffect(FX_EarthQuake, self, self, 0, 0, 0, FALSE );
A teraz po kolei:

1. Wld_PlayEffect = Wywołaj efekt
2. ... FX_EarthQuake ...  = FX_EarthQuake to nazwa czaru.
3. self = przeciwnik; możemy napisać hero, hero to będzie wywoływane na naszej postaci; hero, self poleci od postaci do przeciwnika; self, hero od przeciwnika, do bohatera; other, self / self, other znaczy, że od bohatera do przeciwnika i na odwrót; hero, other / other, hero znaczy od bohatera do bohatera - albo od użytkownika przedmiotu (jeśli to jest miecz runiczny) do bohatera i na odwrót.
4. 0, 0, 0 = żeby było wygodniej do opisania, napiszę to w taki sposób:
Cytuj
Wld_PlayEffect(FX_EarthQuake, self, self, 1, 2, 3, FALSE );
1 = poziom czaru, czyli np. ładowanie Dużej Kuli Ognia, Pięści Wiatru czy Piorunu Kulistego - wraz z poziomem wzrastają obrażenia i koszt many czaru (poziom czaru może być 0 poziom, 1 poziom, 2 poziom i 3 poziom nie więcej! Starczy napisać 0, 1, 2 albo 3 w zależności od efektu.);
2 = obrażenia czaru(nic dodać, nic ująć, nie trzeba więcej tłumaczyć ;p );
3 = RODZAJ obrażeń czaru (np. DAM_FLY, DAM_FIRE itp.);[/color]
5. FALSE / TRUE = Jeśli damy TRUE, to efekt zachowuje się jak pocisk, zaś jak damy FALSE, to będzie to efekt wizualny - tylko dla wyglądu;

Jeśli czegoś nie zrozumiałeś, pisz tutaj, albo przeczytaj to jeszcze raz bardzo powoli.

W razie jakichkolwiek pytań także piszcie tutaj.
 
: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

inż. Avallach
Administrator

Opisanie "Wld_PlayEffect" co co znaczy
#1 2012-05-16, 21:46(Ostatnia zmiana: 2019-04-19, 19:37)
//edit: ten post jest odpowiedzią na starą wersję posta powyżej:
Spoiler
W tym tutorialu opiszę dla początkujących funkcję wld_PlayEffect.

Wld_PlayEffect(FX_EarthQuake, self, self, 0, 0, 0, FALSE );
1. Wld_PlayEffect = Wywołaj efekt
2. ... FX_EarthQuake ...  = FX_EarthQuake to nazwa czaru.
3. self = przeciwnik; możemy napisać hero, hero to będzie wywoływane na naszej postaci; hero, self poleci od postaci do przeciwnika; self, hero od przeciwnika, do bohatera; other, self / self, other znaczy, że od bohatera do przeciwnika i na odwrót; hero, other / other, hero znaczy od bohatera do bohatera - albo od użytkownika przedmiotu (jeśli to jest miecz runiczny) do bohatera i na odwrót.
4. 0, 0, 0 = żeby było wygodniej do opisania, napiszę to w taki sposób:
Cytuj
Wld_PlayEffect(FX_EarthQuake, self, self, 1, 2, 3, FALSE );
1 = poziom czaru, czyli np. ładowanie Dużej Kuli Ognia, Pięści Wiatru czy Piorunu Kulistego - wraz z poziomem wzrastają obrażenia i koszt many czaru (poziom czaru może być 0 poziom, 1 poziom, 2 poziom i 3 poziom nie więcej! Starczy napisać 0, 1, 2 albo 3 w zależności od efektu.);
2 = obrażenia czaru(nic dodać, nic ująć, nie trzeba więcej tłumaczyć ;p );
3 = RODZAJ obrażeń czaru (np. DAM_FLY, DAM_FIRE itp.);[/color]
5. FALSE / TRUE = Jeśli damy FALSE (fałsz!) Gothic nie będzie używał całego ...self, self, 0, 0, 0 (opisane było 1, 2, 3 [PUNKT 4!!!])... tylko wylosuje sobie jedno z tego, czyli może zadać obrażenia, bądź użyć rodzaju obrażeń; Jeśli damy TRUE (prawda!) Gothic odczyta cały skrypt bez żadnego losowania, co wziąć - cały skrypt zada obrażenia, będzie miał rodzaj obrażeń;

Jeśli czegoś nie zrozumiałeś, pisz tutaj, albo przeczytaj to jeszcze raz bardzo powoli.

W razie jakichkolwiek pytań także piszcie tutaj.
Trochę pokręciłeś ;p

Dołączam oficjalną definicję i opis tej funkcji opublikowane przez NicoDE (nie ma jej NIGDZIE w dokumentacji, w tym w externals.d):
func void Wld_PlayEffect(
var string effectInstance, // [string] Name der VisualFX-Instanz
var int originVob, // [C_Vob] Ursprung/Verursacher **
var int targetVob, // [C_Vob] Ziel fuer Effekt + Schaden
var int effectLevel, // [int] <instance>_L<level> *
var int damage, // [int] Hoehe des Schadens
var int damageType, // [int] Schadensart (DAM_Xxx)
var int bIsProjectile // [bool] Effekt ist Projektil
) {};
// * bei Angabe von effectLevel wird nach einer VisualFX-Instanz mit dem
// Namen <effectInstance>_L<effectLevel> gesucht und verwendet falls sie
// gefunden wurde. (es muss trotzdem eine VisualFX-Instanz mit dem Namen
// <effectInstance> definiert worden sein!)
// ** der Schadensverursacher / Effektursprung (zCVob) muss existieren !
    Chyba nie ma potrzeby tłumaczenia angielskich nazw zmiennych, ale na wszelki wypadek są to kolejno:
[list=1]
  • effectInstance - nazwa vfx#msg1036053a
  • originVob - vob z którego efekt pochodzi (w praktyce zwykle item lub npc, ale jeśli ingeruje się w engine, można podać odniesienie do dowolnego voba)
  • targetVob - vob do którego efekt dąży (w praktyce zwykle item lub npc, ale jeśli ingeruje się w engine, można podać odniesienie do dowolnego voba)
  • effectLevel - poziom efektu w przypadku czarów
  • damage - ilość zadawanych celowi punktów obrażeń
  • damageType - rodzaj obrażeń
  • bIsProjectile - czy efekt jest pociskiem (jak kule ognia którymi pluł Śniący, były właśnie z tej funkcji)
Pogubiłeś się najbardziej przy źródle i celu (może to być nie tylko self, hero albo other, ale dowolny npc, item, czy vob jak skrzynia albo przycisk) i pociskowatości (nie ma nic wspólnego z losowaniem stosowanych argumentów) :D

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Właśnie jak da się FAlse to Gothic losuje, przynajmniej ja to zaobserwowałem. A z tym other, chodziło mi o posiadacza broni (czy co tam masz) a nie przedmiotu. ^^

A tak BTW, skąd ty to wszystko wyciągasz i jak? ;p


A tak przy okazji, Avallach, zanim napiszesz całe sprawozdanie, czy tam całą rozprawkę, to napisz najpierw,
czy dobrze mnie rozumiesz. :( To troszkę męczy, jak ktoś zaraz całe sprawozdanie ciśnie,
nie zważając na to, czy dobrze rozumie. ;/
 
: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

inż. Avallach
Administrator

Opisanie "Wld_PlayEffect" co co znaczy
#3 2012-05-16, 22:17(Ostatnia zmiana: 2012-05-16, 22:49)
Rozumieć ma każdy ;p
Żadnego losowania argumentów nie ma, uwierz mi na słowo. Ostatni decyduje o tym czy efekt jest traktowany jako pocisk.
Źródła mam różne - bardzo dużo da się wyczytać z kodu silnika, ale akurat to co zacytowałem napisał NicoDE, członek Piranha Bytes.

Nie ważne kogo miałeś na myśli pisząc other. Ja odpisałem że to w ogóle nie musi być żadna z tych trzech zmiennych. Te dwa argumenty są typu vob, może tam być dowolny obiekt który potrafisz wskazać - można zrobić np vfx ognistego promienia idącego od roślinki do drabiny, czy cokolwiek się tam wymyśli.

Po prostu ty te parametry zgadywałeś/pisałeś na podstawie obserwacji, a ja miałem je w poprawnej formie podanej przez członka PB, więc poprawiłem ;d

BTW, używaj tagów [ code ] do tego do czego są, czyli wklejania fragmentów kodu, np skryptów, stosowanie ich w zwykłym tekście tylko pogarsza jego czytelność i wprowadza chaos.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Rozumieć ma każdy ;p
Żadnego losowania argumentów nie ma, uwierz mi na słowo. Ostatni decyduje o tym czy efekt jest traktowany jako pocisk.
Źródła mam różne - bardzo dużo da się wyczytać z kodu silnika, ale akurat to co zacytowałem napisał NicoDE, członek Piranha Bytes.

Nie ważne kogo miałeś na myśli pisząc other. Ja odpisałem że to w ogóle nie musi być żadna z tych trzech zmiennych. Te dwa argumenty są typu vob, może tam być dowolny obiekt który potrafisz wskazać - można zrobić np vfx ognistego promienia idącego od roślinki do drabiny, czy cokolwiek się tam wymyśli.

Po prostu ty te parametry zgadywałeś/pisałeś na podstawie obserwacji, a ja miałem je w poprawnej formie podanej przez członka PB, więc poprawiłem ;d

BTW, używaj tagów [ code ] do tego do czego są, czyli wklejania fragmentów kodu, np skryptów, stosowanie ich w zwykłym tekście tylko pogarsza jego czytelność i wprowadza chaos.

No ja właśnie widziałem, że jak dałem FALSE to raz zadawało obrażenia, a raz podrzucało (miałem DAM_FLY przy ostatnim). Nie wiem, może to był bug... To jak napisać te FALSE / TRUE? Tzn., Według tego, co napisałeś, rozumiem, że FALSE znaczy, że nie zada obrażeń i nie podrzuci, jeśli jest DAM_FLY, ale podrzuca, przed chwilą sprawdzałem. Może to tylko obrażeń nie zadaje?

A [ code ] używam często, bo to ładnie wygląda. ^^
 
: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

inż. Avallach
Administrator

Opisanie "Wld_PlayEffect" co co znaczy
#5 2012-05-17, 17:00(Ostatnia zmiana: 2012-05-17, 17:51)
Nie wiem jak ma się to do zadawania obrażeń (ani czy w ogóle powinno mieć na to wpływ), ale według definicji funkcji którą podał NicoDE, ostatni argument powinien być ustawiany na true, jeśli efekt który wywołujesz ma zachować się jak pocisk (tak jak kulki ognia którymi pluł Śniący). Jeśli jest to po prostu efekt wizualny, jak ten przy opętywaniu przez Poszukiwacza, bIsProjectile powinno być ustawione na false.

@down: dobrze, przynajmniej tak pisze NicoDE i tak jest to używane w skryptach. Nie wiem jak różnica dokładnie wygląda od strony technicznej, nigdy nie korzystałem z wersji "pociskowej", przy Śniącym została chyba zastosowana jedyny raz.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Nie wiem jak ma się to do zadawania obrażeń (ani czy w ogóle powinno mieć na to wpływ), ale według definicji funkcji którą podał NicoDE, ostatni argument powinien być ustawiany na true, jeśli efekt który wywołujesz ma zachować się jak pocisk (tak jak kulki ognia którymi pluł Śniący). Jeśli jest to po prostu efekt wizualny, jak ten przy opętywaniu przez Poszukiwacza, bIsProjectile powinno być ustawione na false.


Aha, dzięki, zaraz to przemienię, że jeśli jest TRUE, to efekt zachowuje się jak pocisk, a jak FALSE, to jak efekt wizualny. Dobrze gadam, czy coś pokręciłem?
 
: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.

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Wywołanie efektu na vobie: (wymagany ikarus)

func void Wld_VobEffect(var string effect, var string vobName)
{
var int vob; vob = MEM_SearchVobByName(vobName);

if (!vob) {
Print(ConcatStrings("Wld_VobEffect - not found: ",vobName));
return;
};

var zCVob destVob; destVob = _^(vob);
Wld_PlayEffect(effect, destVob, destVob, 0, 0, 0, FALSE );
};

Wywoływać:

Wld_VobEffect("NAZWA_EFEKTU", "NAZWA_VOBA");
 


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