Kopiowanie entity na który patrze
Best Answer Zuzza 13.01.2021 10:32
Klonowanie klocka o podanym id, funkcja tworzy identyczną kopie i zwraca id nowo utworzonego klocka.
public createClone(entView){ new ent=create_entity("func_wall") if( !pev_valid(ent) ){ return -1; } new szClassName[16] pev(entView, pev_classname, szClassName, sizeof(szClassName)) set_pev(ent,pev_classname, szClassName) pev(entView, pev_model, szClassName, sizeof(szClassName)) set_pev(ent,pev_model, szClassName) set_pev(ent,pev_solid, pev(entView, pev_solid)) set_pev(ent,pev_movetype, pev(entView, pev_movetype)) set_pev(ent,pev_modelindex, pev(entView, pev_modelindex)) set_pev(ent,pev_body, pev(entView, pev_body)) set_pev(ent,pev_skin, pev(entView, pev_skin)) set_pev(ent,pev_flags, pev(entView, pev_flags)) set_pev(ent,pev_spawnflags, pev(entView, pev_spawnflags)) set_pev(ent,pev_team, pev(entView, pev_team)) new Float:fFloat[3] pev(entView, pev_mins, fFloat) set_pev(ent, pev_mins, fFloat) pev(entView, pev_maxs, fFloat) set_pev(ent, pev_maxs, fFloat) pev(entView, pev_vuser3, fFloat) set_pev(ent, pev_vuser3, fFloat) pev(entView, pev_vuser1, fFloat) set_pev(ent, pev_vuser1, fFloat) pev(entView, pev_origin, fFloat) entity_set_origin(ent, fFloat) set_pev(ent, pev_iuser4, 3) return ent; }Go to the full post
TafiT
11.01.2021
Witam, próbuje skopiować entity na który patrzę, funkcja jest wywoływana komendą /copy. Niestety nic się nie dzieje po jej wywołaniu.
public Skopiuj(id){ //new ent = get_tr2(trace, TR_pHit) new ent, bodypart get_user_aiming (id,ent,bodypart) if(entity_get_int( ent, EV_INT_iuser4 ) == id){ new NazwaEnta[32], NazwaModelu[32], Float:bmins[3],Float:bmaxs[3]; entity_get_string(ent, EV_SZ_classname, NazwaEnta, sizeof(NazwaEnta)) new byt=create_entity(NazwaEnta) pev(ent, pev_model, NazwaModelu) entity_set_model(byt,NazwaModelu) entity_get_vector(ent, EV_VEC_mins, bmins ) entity_get_vector(ent, EV_VEC_maxs, bmaxs ) entity_set_size(byt,bmins,bmaxs) new Float:origin[3] entity_get_vector(ent,EV_VEC_origin,origin) origin[0]+=50.0 entity_set_origin(byt,origin) entity_set_int(byt,EV_INT_solid,SOLID_BBOX)//ustawiamy dotykalność bytu (bez ustawionego movetype ( MOVETYPE_NONE ) nie przynosi efektu) entity_set_int(byt,EV_INT_movetype,MOVETYPE_TOSS)//ustawiamy sposób poruszania się bytu, wybrany tutaj to po prostu kolidowanie z entitami, grawitacja } }
jakieś pomysły? ;d
Vakos
11.01.2021
Z tego co pamiętam taka opcja była dostępna w modzie BaseBuilder przy kopiowaniu klocków. Nie wiem czy było to w silniku czy jako osobny plugin ale może Cię trochę naprowadzę na trop.
TafiT
11.01.2021
Właśnie to piszę do BB i funkcja powinna działac aczkolwiek nie działa, jest to drobny błąd z którym i tak sobie poradze ale zejdzie mi z tym troche czasu więc napisałem o poradę tutaj
Best Answer
Zuzza
13.01.2021
Klonowanie klocka o podanym id, funkcja tworzy identyczną kopie i zwraca id nowo utworzonego klocka.
public createClone(entView){ new ent=create_entity("func_wall") if( !pev_valid(ent) ){ return -1; } new szClassName[16] pev(entView, pev_classname, szClassName, sizeof(szClassName)) set_pev(ent,pev_classname, szClassName) pev(entView, pev_model, szClassName, sizeof(szClassName)) set_pev(ent,pev_model, szClassName) set_pev(ent,pev_solid, pev(entView, pev_solid)) set_pev(ent,pev_movetype, pev(entView, pev_movetype)) set_pev(ent,pev_modelindex, pev(entView, pev_modelindex)) set_pev(ent,pev_body, pev(entView, pev_body)) set_pev(ent,pev_skin, pev(entView, pev_skin)) set_pev(ent,pev_flags, pev(entView, pev_flags)) set_pev(ent,pev_spawnflags, pev(entView, pev_spawnflags)) set_pev(ent,pev_team, pev(entView, pev_team)) new Float:fFloat[3] pev(entView, pev_mins, fFloat) set_pev(ent, pev_mins, fFloat) pev(entView, pev_maxs, fFloat) set_pev(ent, pev_maxs, fFloat) pev(entView, pev_vuser3, fFloat) set_pev(ent, pev_vuser3, fFloat) pev(entView, pev_vuser1, fFloat) set_pev(ent, pev_vuser1, fFloat) pev(entView, pev_origin, fFloat) entity_set_origin(ent, fFloat) set_pev(ent, pev_iuser4, 3) return ent; }