←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

odpychanie (velocity)

Zablokowany

  • +
  • -
kyku - zdjęcie kyku 05.09.2010

Witam, jest sposób by odepchnąć graczy stojących wokół jakiegoś punktu / bytu tak jak na obrazku poniżej ? (czerwone to ten punkt)
Dołączona grafika

new i =0;
while ((i = engfunc(EngFunc_FindEntityInSphere, i, pozycja, 200.0)))
{
if(is_valid_ent(i)){

new Float:velocity[3];
entity_get_vector(i, EV_VEC_velocity, velocity);
velocity[0] = ???;
velocity[1] = ???;
velocity[2] = ???;
entity_set_vector(i, EV_VEC_velocity, velocity);

}
}

Użytkownik kyku edytował ten post 05.09.2010 01:31
Odpowiedz

  • +
  • -
Owner123 - zdjęcie Owner123 05.09.2010

stock get_velocity_from_origin( ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3] )
{
new Float:fEntOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fEntOrigin );

// Velocity = Distance / Time

new Float:fDistance[3];
fDistance[0] = fEntOrigin[0] - fOrigin[0];
fDistance[1] = fEntOrigin[1] - fOrigin[1];
fDistance[2] = fEntOrigin[2] - fOrigin[2];

new Float:fTime = ( vector_distance( fEntOrigin,fOrigin ) / fSpeed );

fVelocity[0] = fDistance[0] / fTime;
fVelocity[1] = fDistance[1] / fTime;
fVelocity[2] = fDistance[2] / fTime;

return ( fVelocity[0] && fVelocity[1] && fVelocity[2] );
}


// Sets velocity of an entity (ent) away from origin with speed (speed)

stock set_velocity_from_origin( ent, Float:fOrigin[3], Float:fSpeed )
{
new Float:fVelocity[3];
get_velocity_from_origin( ent, fOrigin, fSpeed, fVelocity )

entity_set_vector( ent, EV_VEC_velocity, fVelocity );

return ( 1 );
}


Używasz set_velocity_from_origin na encie który ma być odepchnięty i wsio ;)
Odpowiedz

  • +
  • -
kyku - zdjęcie kyku 05.09.2010

dzięki owner, dziala idealnie ^D^
Odpowiedz
Zablokowany