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
Użytkownik Sooldierr edytował ten post 29.03.2015 19:42