Пытался перед телепортацией толкнуть второго игрока... но мне кажется это надо делать через таск... и как то хз...
Вот мой код...
- Код: Выделить всё
static random, i_tele, i_target; random = random_num(1,2)
switch(random){
case 1:{
i_tele = i_Ct
i_target = i_T
}
case 2:{
i_tele = i_T
i_target = i_Ct
}
}
new Float:vVelocity[3]
velocity_by_aim(i_target, 100, vVelocity)
vVelocity[2] = 0.00
set_pev(i_target, pev_velocity, vVelocity)
new Float:origin[3]; get_front_origin(i_target, -48.0, origin);
set_pev(i_tele, pev_origin, origin);
new Float:vangles[3]; pev(i_target, pev_v_angle, vangles);
set_pev(i_tele, pev_v_angle, vangles);
set_pev(i_tele, pev_angles, vangles);
set_pev(i_tele, pev_fixangle, 1);
CheckStuck(id);
- Код: Выделить всё
CheckStuck(id){
static const Float:g_flMoves[][3] =
{
{0.0,0.0,1.0},{0.0,0.0,-1.0},{0.0,1.0,0.0},{0.0,-1.0,0.0},{1.0,0.0,0.0},{-1.0,0.0,0.0},{-1.0,1.0,1.0},{1.0,1.0,1.0},{1.0,-1.0,1.0},{1.0,1.0,-1.0},{-1.0,-1.0,1.0},{1.0,-1.0,-1.0},{-1.0,1.0,-1.0},{-1.0,-1.0,-1.0},
{0.0,0.0,2.0},{0.0,0.0,-2.0},{0.0,2.0,0.0},{0.0,-2.0,0.0},{2.0,0.0,0.0},{-2.0,0.0,0.0},{-2.0,2.0,2.0},{2.0,2.0,2.0},{2.0,-2.0,2.0},{2.0,2.0,-2.0},{-2.0,-2.0,2.0},{2.0,-2.0,-2.0},{-2.0,2.0,-2.0},{-2.0,-2.0,-2.0},
{0.0,0.0,3.0},{0.0,0.0,-3.0},{0.0,3.0,0.0},{0.0,-3.0,0.0},{3.0,0.0,0.0},{-3.0,0.0,0.0},{-3.0,3.0,3.0},{3.0,3.0,3.0},{3.0,-3.0,3.0},{3.0,3.0,-3.0},{-3.0,-3.0,3.0},{3.0,-3.0,-3.0},{-3.0,3.0,-3.0},{-3.0,-3.0,-3.0},
{0.0,0.0,4.0},{0.0,0.0,-4.0},{0.0,4.0,0.0},{0.0,-4.0,0.0},{4.0,0.0,0.0},{-4.0,0.0,0.0},{-4.0,4.0,4.0},{4.0,4.0,4.0},{4.0,-4.0,4.0},{4.0,4.0,-4.0},{-4.0,-4.0,4.0},{4.0,-4.0,-4.0},{-4.0,4.0,-4.0},{-4.0,-4.0,-4.0},
{0.0,0.0,5.0},{0.0,0.0,-5.0},{0.0,5.0,0.0},{0.0,-5.0,0.0},{5.0,0.0,0.0},{-5.0,0.0,0.0},{-5.0,5.0,5.0},{5.0,5.0,5.0},{5.0,-5.0,5.0},{5.0,5.0,-5.0},{-5.0,-5.0,5.0},{5.0,-5.0,-5.0},{-5.0,5.0,-5.0},{-5.0,-5.0,-5.0}
};
new i, flags, Float:vOrigin[3], Float:vNewOrigin[3], Float:vMins[3];
flags = pev(id, pev_flags);
pev(id, pev_origin, vOrigin);
if(is_user_stuck(id, vOrigin, flags))
{
pev(id, pev_mins, vMins);
for(i = 0; i < sizeof(g_flMoves); i++)
{
vNewOrigin[0] = vOrigin[0] - vMins[0] * g_flMoves[i][0];
vNewOrigin[1] = vOrigin[1] - vMins[1] * g_flMoves[i][1];
vNewOrigin[2] = vOrigin[2] - vMins[2] * g_flMoves[i][2];
if(!is_user_stuck(id, vNewOrigin, flags))
{
set_pev(id, pev_velocity, Float:{0.0, 0.0 , 0.0});
set_pev(id, pev_flags, flags | FL_DUCKING);
set_pev(id, pev_size, Float:{-16.0, -16.0, -18.0}, Float:{16.0, 16.0, 18.0});
set_pev(id, pev_origin, vNewOrigin);
break;
}
}
}
}