Współrzędne zamiast waypoint'a 8825 33

O temacie

Autor Toworish

Zaczęty 28.12.2015 roku

Wyświetleń 8825

Odpowiedzi 33

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
Tak, zwykły newworld

Edit: ale soro to podmienia istniejący waypoint to chyba mnie nie ratuje, bardziej myślałem o czyś co napisał Avallach czyli funkcja która dodaje nowy waypoint w miejscu współrzędnych :F
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Podmienia go tylko na moment wstawiania npc. Po wywołaniu komendy wstawienia npc (mamy nadzieję że wykonuje się ona natychmiastowo już na tym zmienionym waypoincie) przywracany jest z powrotem stary. Jeśli zadziała, nie będzie w ogóle widać że coś było podmieniane.
Fakt że nie tak oczywistym wymaganiem jest że lista waypointów w waynecie nie może być pusta.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Trzeba też zwrócić uwagę, że jeśli npc będzie przywołany, a hero będzie za daleko, to pójdzie do swojego WP (jeśli ma przypisany), albo po prostu zniknie.
 
: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
Standardowa sprawa przy braku rutyny. Właściwie to nie jest odpowiedź na pytanie zadane w pierwszym poście, ale czy ty Toworish na pewno masz jakikolwiek powód żeby spawnować NPC w konkretnym miejscu? Gdybyś zajrzał do startupa, to NPC są spawnowani właściwie byle gdzie, po prostu w tej samej okolicy w której mają przebywać. To rutyna sprawia że pojawiają się tam gdzie powinni, nie to co wpiszesz w wld_insertnpc.

Inna sprawa - myślałeś o Wld_SpawnNpcRange? Pozwala na spawnowanie w pobliżu wybranego NPC bez podawania waypointa.

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
Standardowa sprawa przy braku rutyny. Właściwie to nie jest odpowiedź na pytanie zadane w pierwszym poście, ale czy ty Toworish na pewno masz jakikolwiek powód żeby spawnować NPC w konkretnym miejscu? Gdybyś zajrzał do startupa, to NPC są spawnowani właściwie byle gdzie, po prostu w tej samej okolicy w której mają przebywać. To rutyna sprawia że pojawiają się tam gdzie powinni, nie to co wpiszesz w wld_insertnpc.
Faktycznie, w sumie wld_insertnpc każe tylko wrzucić npc w miejsce wykonywania rutyny, zapomniałem o tym, czyli właściwie ja nie chce przywołać npc na na współrzędnych, a chcę aby wykonywał rutynę na współrzędnych, ew na fake wayponcie, ale jeśli system waypointów nie działa to potrzebowałbym tak czy tak najpierw go przywołać na tych współrzędnych, a potem nadać mu na nich rutyne.
Inna sprawa - myślałeś o Wld_SpawnNpcRange? Pozwala na spawnowanie w pobliżu wybranego NPC bez podawania waypointa.Przywołam, załóżmy przywołam Xardasa w jego wieży, ale niema z nim ani dialogu, ani nie wykonuje swojej rutyny,  w TYM momencie mówię o zwykłym g2, niezależnie czy przywołam go jako NONE_100_Xardas czy jako Xardas
To jest chyba stworzone tylko dla potworków.
Bo gdy przywołam go Wld_InsertNpc na jego domyślnym wayponcie to zachowuje się normalnie, tak samo jakby startup go przywołał.
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Jeśli chcesz mieć działającą rutynę to liczbowe współrzędne nie wchodzą w grę, podobnie jak przerabianie waypointa.
MUSISZ tworzyć nowego waypointa, choćby Ikarusem. A jak postać ma mieć możliwość chodzenia, to dodatkowo połączyć go z innymi... To drugie jest praktycznie niewykonalne bo musiałoby znaleźć najbliższe inne waypointy i jakimś algorytmem analizującym mesh świata wytyczyć do nich drogę. To jakbyś chciał automatycznie generować waynet.

Jest alternatywa - za pomocą Ikarusa możesz łatwo znaleźć waypoint najbliższy do danych współrzędnych. W ten sposób na pewno będzie można zespawnować w nim postać, ustawić jej na nim rutynę i być spokojnym że będzie mogła się poruszać.

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh

Jest alternatywa - za pomocą Ikarusa możesz łatwo znaleźć waypoint najbliższy do danych współrzędnych. W ten sposób na pewno będzie można zespawnować w nim postać, ustawić jej na nim rutynę i być spokojnym że będzie mogła się poruszać.
Znasz jakieś pomocne funkcje?

Chociaż i tak wątpie abym coś sklecił

Edit: a wiecie może w jaki sposób marvinmode przywołuje npc do świata? wymusza jakoś ich przywołanie?
Edit2 bo być może gdyby się udało w podobny sposób wymusić przywołanie npc to by mi wystarczyło
Edit3 widze że wątek zniknął z ostatnich wiadomości @Avallach  byłbyś tak miły zajrzeć tutaj jeszcze?
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Cytuj
Edit: a wiecie może w jaki sposób marvinmode przywołuje npc do świata? wymusza jakoś ich przywołanie?
Obstawiam, że któraś z tych funkcji:
00778E70:    oCSpawnManager::SpawnNpc(oCNpc *,zVEC3 const &,float)
00778BA0:    oCSpawnManager::SpawnNpc(oCNpc *,zSTRING const &,float)
00778B20:    oCSpawnManager::SpawnNpc(int,zSTRING const &,float)
00778920:    oCSpawnManager::InsertNpc(oCNpc *,zVEC3 const &)
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
Cytuj
Edit: a wiecie może w jaki sposób marvinmode przywołuje npc do świata? wymusza jakoś ich przywołanie?
Obstawiam, że któraś z tych funkcji:
00778E70:    oCSpawnManager::SpawnNpc(oCNpc *,zVEC3 const &,float)
00778BA0:    oCSpawnManager::SpawnNpc(oCNpc *,zSTRING const &,float)
00778B20:    oCSpawnManager::SpawnNpc(int,zSTRING const &,float)
00778920:    oCSpawnManager::InsertNpc(oCNpc *,zVEC3 const &)
Da się je jakoś zhook'ować? kiedyś chyba zrobiłeś dla mnie, w sumie dla przyszłych pokoleń coś podobnego z usuwaniem miecza po pobiciu
Edit: chyba pomyliłem pojęcia, ale ogółem da się je jakoś wywołać?
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.


Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
Taa właśnie poprawiłem post wyżej, tylko w jaki sposób? to chyba nie funkcje ikarusa a ZEngin'a?

Post połączony: 2015-12-29, 21:33
@Splash @Avallach i inni;p
Próbuje tak:
func void MEM_InsertNpc (var c_npc inst, var zCWaypoint wp)
 {

    Wld_InsertNpc (Hlp_GetInstanceID(inst), wp.name);
};

i

FUNC VOID Equip_ItAm_Prot_Fire_011()
{
MEM_InsertNpc (None_100_Xardas, mkf(NW_XARDAS_START));//Parser mówi o braku nawiasu tutaj
};
Wgl w dobrą stronę kombinuje?
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Cytuj
Wgl w dobrą stronę kombinuje?
Nie.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Współrzędne zamiast waypoint\'a
#33 2015-12-29, 23:39(Ostatnia zmiana: 2015-12-29, 23:48)
@Splash @Avallach i inni;p
Próbuje tak:
...
Wgl w dobrą stronę kombinuje?
Przecież tu w ogóle nie ma żadnej z funkcji o których Splash napisał że mogą ci się przydać, więc chyba sam potrafisz stwierdzić :facepalm:

Do wołania funkcji C++ używa się Ikarusowych funkcji CALL__*. To której z nich masz użyć zależy od rodzaju funkcji wołanej. Po "oCSpawnManager::" możesz poznać że to "member functions", czyli metody. Je wołasz za pomocą CALL__thiscall. Oznacza to że na stos trafi wskażnik na "this" (tutaj: instancja oCSpawnManagera) używany jako ich pierwszy "ukryty" parametr.
Żeby to ogarnąć musiałbyś nauczyć się podstaw programowania obiektowego, najlepiej na przykładzie C++ i tego jakie są konwencje wołania funkcji w MSVC (kompilator użyty do kompilacji Gothica).

To może mam użyć CALL__thiscall :F
Jak tutaj http://themodders.org/index.php?topic=25345.msg1221083#msg1221083?
Tak, ale nie dlatego że ktoś użył tego do czego innego i mu zadziałało, tylko z powodu który podałem wyżej. W innej sytuacji być możesz potrzebować użycia innego CALL__*.

Fajnie byłoby jakby ktoś wygenerował Daedalusowe wrappery na udokumentowane funkcje z silnika. Trochę roboty, ale mogłoby się przydac wielu osobom które nie maja odpowiedniej wiedzy.
Jeśli ktoś ma taką bazę danych funkcji to mógłbym w wolnym czasie spróbować napisać program do generowania ich i go udostępnić. Coś na zasadzie że karmisz go listą taką jak podał Splash i dodatkowo typem zwracanym, np
00778E70:   void oCSpawnManager::SpawnNpc(oCNpc *,zVEC3 const &,float)A on wypluwa plik Daedalusa z wrapperami, np takim
func void oCSpawnManager__SpawnNpc(int oCNpcPtr, zVEC3Ptr, int costam)
{
 // tutaj wygenerowana magia z wrzucaniem na stos, robieniem calla, zwracaniem wyniku
}
Oczywiście to samo da się robić ręcznie.


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