Model Placer - byty solidne również dla broni
Sooldierr
29.03.2015
Witam.
Jak zapewne wielu użytkowników plugimu:
http://amxx.pl/topic...7-model-placer/
wie, o ile postać gracza może stawać na wstawianych modelach przez plugin to dla broni są one przenikalne.
Wie ktoś jak rozwiązać taki problem?
Jak sprawić, aby wyrzucane bronie zachowywały się tak samo przy kontakcie z tymi modelami jak i z resztą ścian?
Sooldierr
29.03.2015
A dokładniej w pluginie?
Bo z tego co patrzyłem to on ustawia SOLID_BBOX już
Ale pełno tak też sprawdzania warunków jest, gdzie pojawia się pev_solid i tego już nie ogarniam, prawdopodobnie ustawia gdy bytem stykający się jest gracz.
A żeby dodać do tego gracz lub broń...
Poniżej fragmenty kodu:
setSolid(ent, model)<edit>{ #pragma unused model set_pev(ent, pev_solid, SOLID_BBOX); } setSolid(ent, model)<normal>{ if(pev(ent, pev_iuser4)) set_pev(ent, pev_solid, pev(ent, pev_iuser3)); else set_pev(ent, pev_solid, ArrayGetCell(giSolid, model)); }
if(pev_valid(gLastEnt)){ iTemp = str_to_num(szTemp); set_pev(gLastEnt, giPevs[param], iTemp); if(giPevs[param] == pev_solid){ set_pev(gLastEnt, pev_iuser3, iTemp); set_pev(gLastEnt, pev_iuser4, 1); } } }
public editModeBegin(id)<normal>{ state edit; new ent = -1; while((ent = find_ent_by_class(ent, gszClassname))){ set_pev(ent, pev_solid, SOLID_BBOX); } forwardPreThink = register_forward(FM_PlayerPreThink, "fwPlayerPreThink", 1); client_print(id, print_chat, "%L", id, "EDITMODE_BEGIN"); }
public editModeEnd(id)<edit>{ state normal; new ent = -1; new model; while((ent = find_ent_by_class(ent, gszClassname))){ model = pev(ent, pev_body); if(pev(ent, pev_iuser4)) set_pev(ent, pev_solid, pev(ent, pev_iuser3)); else set_pev(ent, pev_solid, ArrayGetCell(giSolid, model)); } unregister_forward(FM_PlayerPreThink, forwardPreThink, 1); client_print(id, print_chat, "%L", id, "EDITMODE_END"); giChoosedEnts[id] = 0; }
Co to jest:
pev_iuser1
pev_iuser2
pev_iuser3
pev_iuser4
Edited by Sooldierr, 29.03.2015 19:42.
wiwi249
08.04.2015
To dodatkowe właściwości bytu, do których możesz przypisywać wartości, niektóre pluginy z tego korzystają, przydatne, gdy chcesz zapisać jakieś dane do konkretnego bytu. pev_iuser* to inty, a pev_fuser* to chyba floaty jak sie nie myle.
pev_iuser2, o ile sie nie myle, przechowuje id gracza którego obserwujemy (spect).
pev_fuser2 też ma swoje zastosowanie, zobacz http://amxx.pl/pevresearch#pev_fuser2
Sooldierr
10.04.2015
A reszta tych parametrów?
jeszcze są pev_euser'y
A generalnie ktoś wie jak wykonać to co opisałem w problemie?
Czy w pluginie określone jest zdarzenie, gdy byt broni ma kontakt z bytem modelu wstawianego poprzez Model Placer?
Wtedy wystarczyłoby poprawić, tak aby były względem siebie solid, "func_wall" czy coś tam.
A jeśli nie, to jak złapać zdarzenie lub ID bytu, które wchodzi w kontakt z bronią?
Sooldierr
18.04.2015
Sooldierr
19.04.2015
Nie rozumiem, w jaki sposób miało by my to pomóc?
Czy masz na myśli, że broń nie ma rozmiaru i dlatego przelatuje przez te modele?
Sooldierr
19.04.2015
Udało mi się złapać event, gdy broń wchodzi w kontakt z modelami za pomocą funkcji:
register_touch("weaponbox","customone", "WeaponModel")
Teraz mam problem, co mogę zrobić z weaponbox, aby jakoś naturalnie się zachowywał do np skrzynek wstawianych przez Model Placer tak samo jak do skrzynek wbudowanych w mapę. Próbowałem nadać przeróżne MOVETYPE , nadawałem broni SOLID_BBOX . Ale przy nadawaniu movetype, broń jakoś albo odlatuje, odbija się mocno. Jak nadałem jej SOLID_BBOX to znieruchomiała w momencie kontaktu z Modelem i stała się bytem przenikalnym w powietrzu.
Puchate
22.04.2015
Weaponbox jest dość specyficzny w kwestii jego dotyku nawet na broniach które są wbudowane w mapę, więc może stąd też wynikają Twoje problemy. Jednak powinieneś jeszcze spróbować nadać tym entity rozmiar (size).
Teraz mam problem, co mogę zrobić z weaponbox, aby jakoś naturalnie się zachowywał do np skrzynek wstawianych przez Model Placer tak samo jak do skrzynek wbudowanych w mapę. Próbowałem nadać przeróżne MOVETYPE , nadawałem broni SOLID_BBOX . Ale przy nadawaniu movetype, broń jakoś albo odlatuje, odbija się mocno. Jak nadałem jej SOLID_BBOX to znieruchomiała w momencie kontaktu z Modelem i stała się bytem przenikalnym w powietrzu.