Używanie zewnętrznych bibliotek dynamicznych w modyfikacjach 6065 11

O temacie

Autor Nuno

Zaczęty 25.02.2020 roku

Wyświetleń 6065

Odpowiedzi 11

Nuno

Nuno

Użytkownicy
posty9
ProfesjaProgramista
  • Użytkownicy
Witajcie!
Czy istnieje możliwość używania zewnętrznych bibliotek w modyfikacjach do Gothic, ewentualnie Gothic 2 NK? Widziałem, że w modyfikacji "Dolina Zombie" używana jest biblioteka BASS. Chciałbym na tej samej zasadzie podpiąć pewne inne biblioteki. Jeżeli to jest do zrobienia to jakie informacje jestem w stanie uzyskać z samej gry? Istnieje możliwość uzyskania informacji takich jak:
*Współżędne ostaci, NPC i obiektów w danym zakresie, w formacie kartezjańskim TJ. (X,y,Z),
*Stan poszczególnych postaci TJ. HP, Mana ETC,
*Sprawdzanie czy obiekt jest dekoracyjny czy klikalny
Za wszelkie odpowiedzi serdecznie dziękuję (nadal walczę o swoje). :)
 

Patrix9999

Patrix9999

Użytkownicy
posty127
Propsy38
Profesjabrak
  • Użytkownicy
Poczytaj o Union SDK.
Rosjanie stworzyli API pozwalające modyfikować silnik gry (API jest stworzone na bazie kodu gry, więc jest dosyć dokładne).
Poza tym, podpięcie libki BASS jest stosunkowo proste, każdy podpunkt który wymieniłeś z pomocą Uniona jest dosyć prosto ogarnąć, dzięki kompletności API.
https://themodders.org/index.php?board=146.0
 

Nuno

Nuno

Użytkownicy
posty9
ProfesjaProgramista
  • Użytkownicy
Dziękuję Ci bardzo. Czuję że moje wieloletnie "badania" zaczynają gdzieś prowadzić :D. Kiedyś bawiłem się w taki sposób, że wstrzykiwałem mój kod bezpośrednio do Exeka ale z wiadomych względów było to dość mocno nieoptymalne. Teraz pora poczytać o Unii.
 

Patrix9999

Patrix9999

Użytkownicy
posty127
Propsy38
Profesjabrak
  • Użytkownicy
Znaczy wiesz, dll injection to w zasadzie podstawa w memory hackingu pod windowsem.
Jedyne co było może mniej optymalne, to to, że nie miałeś dostępu do pełnego API i musiałeś reverse'ować sam wiele rzeczy, Union przynajmniej daje ci taką bazę, w historii Gothica była przynajmniej kilka takich API, ale póki co Union jest najlepszym pakietem (najbardziej kompletnym).

+ Sami twórcy pomyśleli o tym, by można było tworzyć pluginy dla wielu wersji gothica (raczej nie zawsze się to komuś przyda, ale jest to miłe udogodnienie).
 

Nuno

Nuno

Użytkownicy
posty9
ProfesjaProgramista
  • Użytkownicy
Resource Manager niestety nie działa, mam tak bardzo wiele mowiący błąd: ---------------------------

---------------------------
Nie można połączyć sie z serwerem.
---------------------------
OK   
---------------------------
U mnie problemem były call-backi no i tak jak mówiłęś, wszystko musiałęm ręcznie reversować. W moim projekcie niestety jest potrzebna dokladność której sam sobie nie zapewnię.
 

Patrix9999

Patrix9999

Użytkownicy
posty127
Propsy38
Profesjabrak
  • Użytkownicy
Z tego co widzę, to ktoś już też poza tobą to zauważył.
Czasami ciebie połączy, a czasami nie, tu masz odp Gratt'a (jednego z twórców pakietu) przetłumaczoną na język eng (za pomocą google translatora) co do tego problemu:

There is a ... The day before yesterday was updated on the host side, vtechenie 72 hours need to be updated and NS server. In the meantime, Russian roulette - you either connect or not ... We are waiting for more overnight if nothing will change - we will decide something.*sorry*
 

Nuno

Nuno

Użytkownicy
posty9
ProfesjaProgramista
  • Użytkownicy
Dziękuję. Będę czekał z niecierpliwością *zaciera rączki.
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
@Nuno nie wiem co Ci nie działa. Aż sprawdziłem u siebie i wszystko jest OK. Pobierz sobie aktualnego Resource Managera z tej strony

https://worldofplayers.ru/threads/40376/

 

Nuno

Nuno

Użytkownicy
posty9
ProfesjaProgramista
  • Użytkownicy
Zdaje się że to coś z tymi DNSami o których pisał deweloper. U mnie byćmoże nie nastąpiłą jeszcze propagacja. Będę próbował. Czy ktoś między czasie może mi wyciągnąć dokumentację API uniona?
 

Patrix9999

Patrix9999

Użytkownicy
posty127
Propsy38
Profesjabrak
  • Użytkownicy
I tu pojawia się problem.
Jako takiej dokumentacji nie ma, więc jest to lekkie utrudnienie.
Pomocne mogą się okazać tutoriale dotyczące Uniona na rosyjskim forum World of Players:
https://worldofplayers.ru/forums/1129/

Można sobie odpalić google translator, całkiem sporo da się w ten sposób ogarnąć.
Kolejnym źródłem informacji o jakiś konkretnych klasach może być IDA, albo jakikolwiek inny disassembler, oraz inne fora, dosyć dużo ludzi już na pewne pytania odpowiedziało, nie mniej jednak, czasami będziesz musiał poreverse'ować mimo wszystko.
 

Nuno

Nuno

Użytkownicy
posty9
ProfesjaProgramista
  • Użytkownicy
Ja rozumiem rosyjski, z tym nie ma najmniejszego problemu.
Twórcy Uniona nie dali chociaż jakichś nagłówków? Cóż, dziwne, no ale walczymy.
 

Patrix9999

Patrix9999

Użytkownicy
posty127
Propsy38
Profesjabrak
  • Użytkownicy
Nagłówki dali, ale np: argumenty metod nie są ponazywane, przez co i tak musisz trochę poreverse'ować.
 


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