pochwy na miecze 12340 35

O temacie

Autor Fors

Zaczęty 15.03.2018 roku

Wyświetleń 12340

Odpowiedzi 35

Fors

Fors

Użytkownicy
Chrząszcz
posty190
Propsy14
ProfesjaNierób
  • Użytkownicy
  • Chrząszcz
No to witam
Otóż gdzieś na forum przeczytałem że można zrobić pochwy na miecze/kołczany przy użyciu VFX i PFX. Ktoś coś o tym wie?

Druga sprawa jest taka, że zrobiłem sobię muzykę do Gothica przy użyciu DMP ale jest problem. Przy starcie muzyka normalnie gra lecz gdy odpali się muzyka do walki zaczyna się ona na siebie nakładać i robi się z tego "earrape" a gdy ta przestanie grać to normalna również zaczyna się na siebie nakładać. Nie wiem co jest problemem bo muzyka jest dobrze zrobiona w tym programie.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Przy zakładaniu i ściąganiu miecza możesz wywołać funkcję. Pierwsza z nich musi odpalać vfx na postaci (wld_playeffect), a druga go usuwać. Efekt vfx musisz napisać tak, żeby był przyczepiony do kości związanej z miednicą i odpalał twój własny efekt pfx. Pfx piszesz tak, żeby nie emitował żadnych cząsteczek, a zamiast tego miał widzialny emitter oparty o mesh. Przykład czegoś podobnego znajdziesz w tutorialu orcwarriora o zbrojach z części:
https://themodders.org/index.php?topic=7792.msg74739#msg74739

Cruc

Cruc

Użytkownicy
posty667
Propsy236
Profesjabrak
  • Użytkownicy
Czy ja dobrze rozumiem, że według pomysłu OrcWarriora to te pfxy odświeżają się co sekundę?

Jakie to ma skutki w "gothicowej optymalizacji"? :/
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Chujowe xD Pochwa odskakuje przez co miecz prześwituje przez pfx'a.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Cruc

Cruc

Użytkownicy
posty667
Propsy236
Profesjabrak
  • Użytkownicy
A jak to wygląda tak ogólnie przy wykorzystaniu pakietów skryptowych, albo AST?

Jest jakaś klasa załatwiająca to, czy trzeba samemu "podczepić" model pod odpowiednie kości NPCa?
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!

Fors

Fors

Użytkownicy
Chrząszcz
posty190
Propsy14
ProfesjaNierób
  • Użytkownicy
  • Chrząszcz
@Siemekk a nie dało by się tego podobnie zrobić jak zrobiłeś kołczan w UNB?
 

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Da się, ale trzeba edytować wszystkie pancerze, aby dodać nową kość dla pochw.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko
Co do tej muzyki to nakłada się na siebie przez brak przejścia, ewentualnie źle dopasowałeś nuty do długości utworu, ale raczej to pierwsze. Gdzieś tu jest tutorial o tworzeniu w DMS muzyki wraz z przejściami.
 
Lieb Vaterland magst ruhig sein

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Pfxów z tego co pamiętam nie trzeba odświeżać w ten sposób w który zrobił to Orc. Jeśli tworzysz pod G2, wystarczy użyć wld_stopeffect. W G1 tej opcji niestety nie było.

Rozwiązanie z AST / LeGo+Ikarusem byłoby lepsze, w czasach kiedy używaliśmy tricków opartych o VFX tych pakietów jeszcze nie było.

Cruc

Cruc

Użytkownicy
posty667
Propsy236
Profesjabrak
  • Użytkownicy
A jakie jest rozwiązanie z AST/LeGo+Ikarus? :P
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
A jakie jest rozwiązanie z AST/LeGo+Ikarus? :P
zCModelNodeInst::SetNodeVisual(zCVisual*, int)
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Cruc

Cruc

Użytkownicy
posty667
Propsy236
Profesjabrak
  • Użytkownicy
Gra zapamiętuje taką zmianę czy należy ją odświeżać co wczytanie świata?
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Należy odświeżać - znośny błąd, bo wystarczy przeszukać listę NPC w świecie i odświeżyć Visual.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Cruc

Cruc

Użytkownicy
posty667
Propsy236
Profesjabrak
  • Użytkownicy
W AST jest jakiś analog Ikarusowego DoForAll, czy trzeba napisać własną funkcję?
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota

zCListSort<oCNpc>* list = ogame->GetGameWorld()->GetVobListNpcs();
for(int i = 0; i < list->GetNumInList(); i++)
{
oCNpc* pSelf = list->Get(i);
...
}
Tylko niech ci nie przyjdzie do głowy używać tego co klatkę. W mieście FPS spadną do 10.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Cruc

Cruc

Użytkownicy
posty667
Propsy236
Profesjabrak
  • Użytkownicy
Może i jestem leniem, ale nie aż takim, że bym sobie nie napisał tej pętli. Chciałem tylko wiedzieć czy jest już coś takiego. Ale skoro się już pofatygowałeś to dziękuję :3

> Wywoływanie pętli co klatkę.
> Ok xD
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
> Wywoływanie pętli co klatkę.

Zobacz sobie dyrektywę force(a); z AST. Niekiedy opyla się wywołać pętlę co klatkę np. przy rozszerzaniu klasy sposobem "na tablicę"
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Fors

Fors

Użytkownicy
Chrząszcz
posty190
Propsy14
ProfesjaNierób
  • Użytkownicy
  • Chrząszcz
Hehe czyli będę miał trochę roboty xd. Zacznę może najpierw od tego sposobu z VFX i PFX.
Ale jeszcze 3 pytanka.

1. Jak się tworzy trucizne? Wiem że potrzeba do tego tick_tocka (czytałem tutka jak by co).

2.Czy można zrobić system teleportacji podobny do tego z Returninga 2.0 tylko na takiej zasadzie że masz 1 runę która nazywa się np "globalny teleport" i do niej dodaje się jak by inne runy np "do farmy Onara".

3.Wiem że to było poruszane na forum :facepalm: ale ponawiam pytanie. Chodzi tu o takie cuś że masz np "topór berserkera" i Hero ma 60% walki dwuręczną to się odpala taka i taka animacja. Próbowałem to robić tak że dopisywałem "if npc_talen_2hd  60" czy jakoś tak ale wywala błąd. Wiem że można to też również zrobić chyba edytując plik "B_Addfightskill".
 

Cruc

Cruc

Użytkownicy
posty667
Propsy236
Profesjabrak
  • Użytkownicy
Podam Ci ogólne odpowiedzi. Po szczegóły szukaj na forum, albo dopytuj to Cię poinstruuję.

1.
Cytuj
Jak się tworzy trucizne? Wiem że potrzeba do tego tick_tocka (czytałem tutka jak by co).
Spoiler
Byłoby trochę roboty. Przede wszystkim musisz napisać własną funkcję odpowiedzialną za zatruwanie bohatera w wybranym momencie. Następnie "podpiąć" tę funkcję do PC_Hero przez PERCa. No i później ewentualny tick_tock, w którym np. odejmowałbyś hp. (Nie wiem jak wygląda tick_tock jeśli chodzi o optymalizację, teoretycznie można go wyłączać w momencie gdy zatrucie się zakończy, dzięki czemu warunki nie będą sprawdzane przez całą grę.)

2.
Cytuj
Czy można zrobić system teleportacji podobny do tego z Returninga 2.0 tylko na takiej zasadzie że masz 1 runę która nazywa się np "globalny teleport" i do niej dodaje się jak by inne runy np "do farmy Onara".
Spoiler
Jasne, że można. Skoro inni modderzy to zrobili to i Ty możesz :>
Przede wszystkim musisz stworzyć monolog dla tej "globalnej runy", który załączałby się w momencie rzucenia zaklęcia. Po drugie, musisz mieć zmienne(wystarczą poszczególne bity zmiennych - jakby nie było, wartości 0 i 1 są wystarczające), w których przechowywałbyś informację o aktywowanych już teleportach i w zależności o tej informacji dodawał do monologu kolejne opcje dialogowe.

3.
Cytuj
Wiem że to było poruszane na forum :facepalm: ale ponawiam pytanie. Chodzi tu o takie cuś że masz np "topór berserkera" i Hero ma 60% walki dwuręczną to się odpala taka i taka animacja. Próbowałem to robić tak że dopisywałem "if npc_talen_2hd  60" czy jakoś tak ale wywala błąd. Wiem że można to też również zrobić chyba edytując plik "B_Addfightskill".
Spoiler
Zgaduję, że chcesz, aby postać po prostu posługiwała się wybranym rodzajem broni przy pomocy wybranej animacji walki. Najprościej będzie Ci to zrobić poprzez dodanie do broni funkcji on_equip i on_unequip (strzelam) i kolejno w nich dodawać swoją animację, jeśli warunek 60% specjalizacji w broni jest spełniony, lub nie. No i w drugiej funckji usuwasz swoją animację, żeby inną bronią nie posługiwać się z tą animacją.

I jeszcze jedno. W Init_Global musisz odświeżać te animacje, bo po wczytaniu świata "style walki" dodane w sten sposób "znikają" i trzeba ponownie założyć broń.

Powyższe rozwiązanie jest przy założeniu, że nie jesteś jeszcze zaznajomiony z Ikarusem czy AST. Z tymi narzędziami wyglądałoby to zupełnie inaczej, ale wymagałoby to od Ciebie już pewnej wiedzy.
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!

Fors

Fors

Użytkownicy
Chrząszcz
posty190
Propsy14
ProfesjaNierób
  • Użytkownicy
  • Chrząszcz
EEE dobra nie chciałem robić nowego tematu więc napiszę tu


Mam skrypt regeneracji ale wywala mi błąd : Expected ";" (line 21). Tylko że ten średnik tam jest. ;-;

Skrypt
Spoiler
func void Regeneracja()
{
   
   if (hero.attribute[ATR_HITPOINTS] > 0)
   {
   
     if (level_regeneracji == 1)
     {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + 1;
     };
     if (level_regeneracji == 2)
     {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + 2;
        hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 1;
     };
     if (level_regeneracji == 3)
     {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + 3;
        hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 2;
        hero.exp = hero.exp + 1;
     };
     if (hero.attribute[ATR_HITPOINTS]>hero.attribute[ATR_HITPOINTS_max])
     {
         hero.attribute[ATR_HITPOINTS]=hero.attribute[ATR_HITPOINTS_max];
     };
     if (hero.attribute[ATR_MANA]>hero.attribute[ATR_MANA_max])
     {
         hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA_max];
     };
   };
 


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