Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PayDay 2 LUA hook-next Pomysły
#11
Przepraszam, zaczynam od lua, w międzyczasie zorientowałem się, jak nadpisać funkcje pd2 W każdym razie, jeśli nie ma żadnego rozwiązania do autostartowania skryptu po rozpoczęciu misji (nie tylko w momencie rozpoczęcia gry), byłoby wspaniale mieć tę funkcję!
Reply
#12
w jaki sposób zaczepiasz funkcje lua tutaj grasz w grę phantasy star online 2, która używa lua, ale nie możesz być n00b i po prostu użyć lua scriptkiddie .. więc zastanawiam się, czy jest jakaś metoda zahaczania, która mogłaby być użyta?
Reply
#13
Jest kilka funkcji, które chciałbym zrobić z C, głównie analizą list, których Lua po prostu nie potrafi obsłużyć. To trwa zbyt długo, a wynik wygląda jak gówno. Byłoby miło tworzyć funkcje z bibliotekami DLL C, które moduł ładowałby w środowisku wykonawczym, a następnie traktować jak funkcje Lua. Wierzę, że Lua ma teraz wsparcie dla tego, wystarczy, że połączysz się z nim i załadujesz bibliotekę DLL. Poszukujesz wyeksportowanych funkcji w bibliotece DLL, mapujesz je do funkcji, sprawdzasz to w analizie Lua, a następnie przekazujesz do modułu.
Reply
#14
Zacytować: Originally Posted by gir489 Jest kilka funkcji, które chciałbym zrobić z C, głównie analizą list, których Lua po prostu nie potrafi obsłużyć. To trwa zbyt długo, a wynik wygląda jak gówno. Byłoby miło tworzyć funkcje z bibliotekami DLL C, które moduł ładowałby w środowisku wykonawczym, a następnie traktować jak funkcje Lua. Wierzę, że Lua ma teraz wsparcie dla tego, wystarczy, że połączysz się z nim i załadujesz bibliotekę DLL. Poszukujesz wyeksportowanych funkcji w bibliotece DLL, mapujesz je do funkcji, sprawdzasz to w analizie Lua, a następnie przekazujesz do modułu. Lua zawsze miała API C, to jest cały powód, że jest on nawet użyteczny w grach - jak sądzisz, w jaki sposób funkcje Lua, które dodaje DLL? są pewni, że gówno nie zostało napisane w Lua. W każdym razie nie jest to zły pomysł, więc sprawię, że import DLL będzie już zdefiniowany, a następnie rozprowadzę plik nagłówkowy i bibliotekę, aby zapewnić połączenie, dzięki czemu można uzyskać dostęp do funkcji API Lua C za jego pośrednictwem. Polecam, abyś przeczytał listę dostępnych funkcji Lua C i porównał to z tym, które sygnatury są obecnie wyszukiwane przez bibliotekę DLL; jeśli są jakieś inne, które uznasz za potrzebne, wymień je, a wyszukuję dla nich EXE, ale bez obietnic.
Reply
#15
Zacytować: Originally Posted by Harfatus Lua zawsze miała API C, to jest cały powód, że jest on nawet użyteczny w grach - jak sądzisz, w jaki sposób funkcje Lua, które dodaje DLL? są pewni, że gówno nie zostało napisane w Lua. W każdym razie nie jest to zły pomysł, więc sprawię, że import DLL będzie już zdefiniowany, a następnie rozprowadzę plik nagłówkowy i bibliotekę, aby zapewnić połączenie, dzięki czemu można uzyskać dostęp do funkcji API Lua C za jego pośrednictwem. Polecam, abyś przeczytał listę dostępnych funkcji Lua C i porównał to z tym, które sygnatury są obecnie wyszukiwane przez bibliotekę DLL; jeśli są jakieś inne, które uznasz za potrzebne, wymień je, a wyszukuję dla nich EXE, ale bez obietnic. Pomyślałem, że ma coś w rodzaju ekstrapolatora niskiego poziomu, ale nie mogłem się pieprzyć, żeby się temu przyjrzeć. Wygląda na to, że po prostu tworzysz funki __declspecs, a to stawia je na EAT, a Lua automatycznie je przyjmuje.
Reply
#16
Zacytować: Originally Posted by gir489 Pomyślałem, że ma coś w rodzaju ekstrapolatora niskiego poziomu, ale nie mogłem się pieprzyć, żeby się temu przyjrzeć. Wygląda na to, że po prostu tworzysz funki __declspecs, a to stawia je na EAT, a Lua automatycznie je przyjmuje. Po pierwsze, __declspec to dyrektywa kompilująca, która sama w sobie nie ma żadnego znaczenia, pobiera parametr. Po drugie, jako "outsider" jest to przypadek lokalizowania funkcji API Lua C, a następnie ich używania, jednak wywoływanie lua_pushcclosure () i lua_setfield () nie jest strasznie trudne.
Reply
#17
Zacytować: Originally Posted by Harfatus Po pierwsze, __declspec to dyrektywa kompilująca, która sama w sobie nie ma żadnego znaczenia, pobiera parametr. Po drugie, jako "outsider" jest to przypadek lokalizowania funkcji API Lua C, a następnie ich używania, jednak wywoływanie lua_pushcclosure () i lua_setfield () nie jest strasznie trudne. Czy wciąż masz plany dodania podpisu z pliku YAML?
Reply
#18
Zacytować: Originally Posted by gir489 Czy wciąż masz plany dodania podpisu z pliku YAML? Nie jest to priorytet, ale zdecydowanie coś, co włączę w pewnym momencie. Krótka aktualizacja. Zdecydowałem się "naprawić" wymaganie, rzucając go całkowicie i przesłoniłem funkcję require () mojej gry, która sprawdzi najpierw istnienie plików w katalogu gier i wróci do wbudowanego, jeśli nie powiedzie się . Otwiera to interesującą opcję polegającą na wrzuceniu dekompilowanej luki Lua do folderu gry, a te skrypty zostaną użyte zamiast tych dołączonych. Możesz oczywiście wybrać skrypty do skopiowania, struktura katalogów oczywiście musi zostać zachowana. Dodatkowo do konfiguracji YAML dodana jest teraz sekcja ClassOverrides, która pozwala na zdefiniowanie skryptów, które muszą zostać wykonane natychmiast po określonym wywołaniu require (), co oznacza, że można zagwarantować, że dana funkcja klasy zostanie nadpisana, zanim zostanie kiedykolwiek utworzona.
Reply
#19
Podoba mi się pomysł, aby zastąpić główne skrypty w katalogu, ale czy to spowoduje dodatkowe obciążenie czasu przetwarzania?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)