Используй push.Добавлено (06.10.2012, 13:52:30)
---------------------------------------------
Вот тут есть много чего можно по вытаскивать.
Плагин!
Попробую тебе накалякать то что ты хочешь.
Добавлено (06.10.2012, 13:58:33)
---------------------------------------------
Code
#include <sourcemod>
#include <sdktools>
#define PLUGIN_VERSION "1.0"
new Handle:g_Force = INVALID_HANDLE;
new Handle:g_Distance = INVALID_HANDLE;
public OnPluginStart()
{
g_Force = CreateConVar("sm_push_force", "300.0");
g_Distance = CreateConVar("sm_push_distance", "150.0");
}
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
if(buttons & IN_USE)
{
new ent = GetClientAimTarget(client, false);
if(ent > MaxClients)
{
new String:classname[64];
GetEdictClassname(ent, classname, sizeof(classname));
if(StrContains(classname, "prop_physics")==0)
{
new Float:playerpos[3];
GetClientAbsOrigin(client, playerpos);
new Float:entpos[3];
GetEntPropVector(ent, Prop_Send, "m_vecOrigin", entpos);
if(GetVectorDistance(playerpos, entpos) < GetConVarFloat(g_Distance))
{
new Float:vangles[3];
GetClientEyeAngles(client, vangles);
new Float:velocity[3];
GetAngleVectors(vangles, velocity, NULL_VECTOR, NULL_VECTOR);
NormalizeVector(velocity, velocity);
ScaleVector(velocity, (GetConVarFloat(g_Force)/(GetEntPropFloat(ent, Prop_Send, "m_fMass")/20)));
if(buttons & IN_BACK)
{
ScaleVector(velocity, -1.0);
}
velocity[2] = 0.0;
TeleportEntity(ent, NULL_VECTOR, NULL_VECTOR, velocity);
}
}
}
}
}
Это на сдвиг предметов с места , я думаю сам справишься в переделывание времени нет.