Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

csMaster - zdjęcie

csMaster

Rejestracja: 08.05.2016
Aktualnie: Nieaktywny
Poza forum Ostatnio: 25.11.2024 18:33
-----

Moje posty

W temacie: Problem z WHBlocker

18.10.2024 16:39

Pytam się jaki element kodu może za to odpowiadać a nie plugin. Nie wiem, może tworzenie jakichś entity? Albo przechwytywanie FM_SetModel/FM_ShouldCollide. Czy coś z dźwiękami. A może prowadzenie traceline/hull? Co może kolidować z whblocker'em? Pisze moda i mam tylko 1 plugin (z tym, że całkiem spory). Wszystkie pozostałe których używam do testowania, to domyślne amxx 1.10.0.

W temacie: Problemy z pev_solid

17.07.2024 21:41


Zdaje mi się że przy EF_NODRAW ent nie jest wysyłany do gracza w addtofullpack więc to by miało sens, bo silnik po stronie gracza nie jest informowany że w danym miejscu znajduje się jakiś byt, ale też trzeba to sprawdzić żeby potwierdzić

 

Na to wygląda.

//Part of gamedll's code is moved here to decrease amount of calls to AddToFullPack()
//We don't even try to transmit entities without model as well as invisible entities
if (ent->v.modelindex && !(ent->v.effects & EF_NODRAW)) {
	qboolean add = gEntityInterface.pfnAddToFullPack(&curPack->entities[curPack->num_entities], e, &g_psv.edicts[e], host_client->edict, flags, FALSE, pSet);
	if (add)
		++curPack->num_entities;
}

Ale nie wiem jaki ma to wpływ na blokowanie się dwóch entity. Widziałem że w kodzie odpowiadającym za interakcję między entity jest zmienna, która wygląda jakby dotyczyła "widoczności" jednego entity przez drugi. Ale dokładnie nie sprawdzałem co robi. Na pewno EF_NODRAW ma większy wpływ na byty niż kRenderTransAlpha, bo tylko w tym pierwszym przypadku występowały glitche.
 

 

W temacie: Problemy z pev_solid

17.07.2024 16:08

Dobra jednak już znalazłem rozwiązanie.

 

1. Fakemeta ma jakiś problem z tymi solid i movetype. Czasami się glitchują kolizje z entity, a czasami tych kolizji w ogóle nie ma. Engine jest bardziej pewny i stabilny.

2. Zmiana modelu entity powoduje wyzerowanie EV_FL_mins i EV_FL_maxs oraz EV_FL_size. Wymiary muszą być ustawiane po przypisaniu modelu, a nie odwrotnie. Dotyczy to tylko tych dwóch wartości, położenia nie.

3. Ustawienie SOLID_BSP wymaga żeby model był brush'em, w przeciwnym razie wywala serwer. Wtedy kolizje z entity są uzależnione od modelu i nie da się zmieniać rozmiarów (można zmieniać absmin i absmax i entity będzie gdzie indziej, ale kolizje będą tylko tam, gdzie model ma hitboxy).

4. SOLID_BBOX ewentualnie SOLID_SLIDEBOX jest do tego odpowiednie.

5. Dodanie EF_NODRAW do EV_INT_effects też wydaje się powodować ścinki przy interakcjach z entity. Jeśli ma być niewidoczny to lepiej go ukryć przez EV_INT_rendermode i EV_FL_renderamt.

Wyzerowanie EV_FL_renderamt powoduje, że byt jest niewidoczny nawet na Software.

 

Wow, naprawdę nikt na amxx ani am przez tyle lat nie wpadł na to i nie chciał się podzielić wiedzą?

W temacie: Problemy z pev_solid

17.07.2024 13:31

A masz na myśli że rozwiązałeś problem z tym glitchowaniem się jak stoisz na entity?

 

No ja nie wiem, cały czas zmieniam różne rzeczy i dalej jest tak samo.

Na mapie na której to sprawdzam, obok mojego entity jest drugi, będący elementem mapy. Ma SOLID_BSP i MOVETYPE_PUSH, nie ma origin, ale ma mins, maxs, absmin, absmax i size. Jak na nim stoję to wszystko jest normalnie. Dosłownie wszystkie parametry EV_[INT/FL/VEC]_* przeniosłem na swój entity. Nawet model dałem *12 żeby było tak samo jak na tamtym i rezultat jest taki że eel zaznacza mi tego entity że jest w tym miejscu, ale można przez niego przechodzić jakby go nie było. Próbowałem też tamten entity będący częścią mapy zmieniać, ustawiłem mu SOLID_BBOX, MOVETYPE_FLY, zmieniałem jakieś inne parametry takie jak EV_FL_renderamt, i ten cały czas jest solidny, można po nim chodzić i nic się nie glitchuje mimo tych zmian. Są dwa identycznie ent'y obok siebie i jeden z nich działa a drugi nie...

 

Spoiler

 

I tak samo z engine:

Spoiler

W temacie: [KOSZ] Jak to naprawic

16.07.2024 17:04

Jak dla mnie to powinieneś jeszcze raz zainstalować (re)hlds / metamod.