Участник
Пользователь
- Сообщения
- 78
- Реакции
- 7
Всем привет, битый час бьюсь об часть кода с вылетом гильз, инфы, описывающей хоть что-то в интернете откопать не получилось. Моя задача - изменить вектор полета гильзы справа налево на слева направо. Долго пробовал приписывать минусы разным переменным, менять значения, мой максимум - гильза вылетает слева направо чуть ли не вертикально вверх, при этом, если стрелять глядя в пол, то гильза вылетает в обратном направлении. Если кто знает как это отредактировать - прошу поделиться.
Сам код:
Сам код:
Код:
EjectBrass(const iPlayer, const iModelIndex, const iBounce, const Float:flUpScale = -9.0, const Float: flForwardScale = 16.0, const Float: flRightScale = 0.0)
{
static i, msgBrass;
static Float: vecUp[3];
static Float: vecRight[3];
static Float: vecForward[3];
static Float: vecAngle[3];
static Float: vecOrigin[3];
static Float: vecViewOfs[3];
static Float: vecVelocity[3];
pev(iPlayer, pev_v_angle, vecAngle);
pev(iPlayer, pev_punchangle, vecOrigin);
xs_vec_add(vecAngle, vecOrigin, vecOrigin);
engfunc(EngFunc_MakeVectors, vecOrigin);
pev(iPlayer, pev_origin, vecOrigin);
pev(iPlayer, pev_view_ofs, vecViewOfs);
pev(iPlayer, pev_velocity, vecVelocity);
global_get(glb_v_up, vecUp);
global_get(glb_v_right, vecRight);
global_get(glb_v_forward, vecForward);
for (i = 0; i < 3; i++)
{
vecOrigin[i] = vecOrigin[i] + vecViewOfs[i] + vecForward[i] * flForwardScale + vecUp[i] * flUpScale + vecRight[i] * flRightScale;
vecVelocity[i] = vecVelocity[i] + vecForward[i] * 25.0 + vecUp[i] * random_float(100.0, 150.0) + vecRight[i] * random_float(50.0, 70.0);
}
if (msgBrass || (msgBrass = get_user_msgid("Brass")))
{
MESSAGE_BEGIN(MSG_PVS, msgBrass, vecOrigin, 0);
WRITE_BYTE(0 /* dummy */);
WRITE_COORD(vecOrigin[0]);
WRITE_COORD(vecOrigin[1]);
WRITE_COORD(vecOrigin[2]);
WRITE_COORD(0.0 /* dummy */);
WRITE_COORD(0.0 /* dummy */);
WRITE_COORD(0.0 /* dummy */);
WRITE_COORD(vecVelocity[0]);
WRITE_COORD(vecVelocity[1]);
WRITE_COORD(vecVelocity[2]);
WRITE_ANGLE(vecAngle[1]);
WRITE_SHORT(iModelIndex);
WRITE_BYTE(iBounce);
WRITE_BYTE(0 /* dummy */);
WRITE_BYTE(iPlayer);
MESSAGE_END();
}
}