1242) |
Jay |
|
|
 29.4.2025 18:09
Homi, mam otázku, jak si v PHP udělal threads, aby mohlo běžet víc funkcí najednou?
Bo mě nefunguje php_parallel.dll ani jinej DLL, odpovídá verze PHP, Thread safe, mam je v ext/ a zkoušel sem je i registrovat přes regsvr32 a stejně chyba, že to nemůže najít ten DLL modul
Homi 29.4.2025 18:34
Jako ... kde ?
Nejsem si vědom, že bych to někde použil 
|
Jay 29.4.2025 18:53
Mam takovej pocit, že sem to někde viděl v KozoRoh kódu, ale nejsem si jistej na 100%
|
Homi 29.4.2025 19:02
v tom KozoRoh systému to určitě není 
|
Jay 29.4.2025 23:16
Toje jedno hele, jen sem chtěl spustit víc funkcí naráz a nepřišel sem na to, jak to (normálně) udělat, bez blbostí okolo.
|
Jay 29.4.2025 23:20
Nakonec sem to udělal v C#
Dokonce se mi povedlo injectnout guard a nyní mohu sledovat věci jako afkování v menu (případně kickovat hráče co si nevyberou classu, což je super při coopu), zbraně co hráči drží, atd atp..
|
Homi 30.4.2025 08:23
Tak nakopat do řitě afk hráče, nebo ty co si nezvolili classu, to už umí samotný server ne? Máš tam idle player kick v konfigu, to je myslím právě ta funkce.
No a co drží hráči za zbraně a podobný serepetičky ti guard posílá do pod nos do logu, používáš hrubou silu tam, kde to neni vůbec potřeba, stačí umět číst a správně parsovat ty logy, žádný memory hook vůbec není potřeba, což si myslim je i docela risk a náročnější na údržbu, offsety se můžou měnit.
|
Jay 30.4.2025 09:17
No, on to sice vcguard posílá do logu, ovšem až když někoho hráč zastřelí, nikoliv ihned, já sem hooknul celou proceduru přes detour a vytvořil sem si na to event handler, neběží to v žádném loopu, ale ihned při změně zbraně se spustí handler a navrátí mi ID zbraně
A mam takovej pocit že idlekick jde MIN na 2 minuty a nejsem si jistej že v menu fungue 
|
Homi 30.4.2025 11:21
Jasně, to dává smysl – pokud chceš opravdu realtime reakci při výměně zbraně, tak memory hook a event handler ti to dá rychleji než pasivní log, ale pořád je to 🤔 jak bych to řek ... napíšu kernel driver, abych si ztlumil zvuk na YouTube 😱 a pak stačí jeden windows update, co ti rozhází offsety 🤔 a víš co tě čeká 🥱 budeš to zas ladit jak vemeno 😂
Je to něco za něco: musíš udržovat offsety, mít stabilní prostředí, sebemenší změna a jde to do kytek.
Osobně preferuju řešení, co sice není realtime na milisekundy, ale běží stabilně roky bez zásahu, nemusim to sledovat, čekat kdy to klekne – záleží, co od toho člověk čeká.
|
Homi 30.4.2025 11:56
Nešel jsi náhodou touhle cestou už před tím s tím wrapperem vccoop, nebo jak se to jmenovalo?
Tohle co děláš teď dopadne stejně – né že bych ti to přál, ale tak to prostě je. Tudy cesta nevede.
Bude to nestabilní, bude to padat, a hlavně – někdo to bude muset pořád hlídat, tak že žádná výhra.
|
Jay 30.4.2025 12:04
Tak já sahám na statickou adresu v paměti, projedu to pole hráčů co tam je..
Takhle cca vypadá ta struktura, ono je tam toho možná víc, není to originální kód hry (ale funguje to), vytáhl sem z IDA jen to základní, co sem potřeboval
struct s_SC_Player {
wchar_t plname[20];
wchar_t ip[64];
int id[4];
void* weapon_slot1; // pistol (0x13)
void* weapon_slot2; // zbran (0x14)
void* selected_weapon; // ID předmětu: 0x138
s_SC_Vector3** position;
float camera_direction;
float camera_pitch;
};
Na adrese: 0x0E827CA0
ID pistole: 0x13
ID zbraně: 0x14
ID předmětu v ruce 0x138
A každej novej hráč je o 0x28 dál, tak to jen projedu FOR loopem, 10x, pokud je slot prázdnej, vrátí mi to NULL, takže jednoduše zkontroluju
Navíc není nikdo kdo by upravoval game.dll nebo celkově hru, takže si myslim, že jsem safe 
|
Jay 30.4.2025 12:08
Jakej máš na mysli wrapper? Já toho dělal víc hele, vždy zkoušim něco nového, protože musí bejt cesta, ale většinou to fungovalo na bázi Automation UI (TestStack) a tak, do paměti sem zatím nesahal v žádné verzi vccoop, zkoušel sem, ale nikdy sem nenasadil do produkčního kódu a ani na github 
|
Homi 30.4.2025 14:48
Ono to bude loterie – může to fungovat, může to fungovat napůl, ale nikdy ne 100 % stabilně.
Nějak to bude fungovat, ale pořádně to poběží až ve chvíli, kdy budeš naprosto přesně vědět, co děláš.
A to u VCGuardu asi nikdy nebude, protože bez zdrojáku a dokumentace to nikdy nebude dokonalý.
|
Jay 30.4.2025 15:01
Dobrý no  asi to škrtnu a konkrétně tuhle funkci vynechám úplně
Mě asi bude stačit jen rankování misí, hráčů, nic extra, ale chci něco unikátního, nechci přesnou kopii vietcong.tk ale zase nechci klasickej coop  čekám až se někdo joine protože testovat to v jednom hráči je o ničem 
|
|