Скриптер
Моделлер
Участник
Пользователь
- Сообщения
- 846
- Реакции
- 526
- Помог
- 13 раз(а)
Приветствую, нужна ваша помощь
Не правильно сохраняются/обрабатываются координаты
принтую в чат и не понимаю в чем причина, записываю одни координаты, получаю совсем другие (близкие к коодинатам с трейслайна)
Первые два значения - Начальные координаты и проверка того, что находится в pev'е, куда сохранены координаты
Далее идут координаты, которые уже получаю с этого же pev'а, но чуть позднее
Последними идут координаты с трейслайна
Возможно я где-то не внимательно что-то сделал или же какая заморская магия
в общем ищу помощи
Не правильно сохраняются/обрабатываются координаты
принтую в чат и не понимаю в чем причина, записываю одни координаты, получаю совсем другие (близкие к коодинатам с трейслайна)
PHP:
public zp_grenade_primaryattack(id, iWeapon, grenadetype, activegrenade, bZombie)
{
if (bZombie != g_bZombie)
return PLUGIN_CONTINUE;
if (grenadetype == g_iGrenadeType)
{
if (g_iGrenadeID == activegrenade)
{
static Float:flGameTime; flGameTime = get_gametime();
if (get_ced(iWeapon, ced_float, ced_weapon_float_BunkerBuster_SelfCooldown) > flGameTime)
return PLUGIN_HANDLED;
if (get_ced(iWeapon, ced_int, ced_weapon_int_BunkerBuster_Scoped))
{
new iEnt, iSearchIndex, iTrace;
new Float:flOrigin[3], Float:flViewOfs[3], Float:flAngles[3], Float:flStart[3], Float:flForward[3], Float:flForwardCustom[3], Float:flUp[3], Float:flRight[3], Float:flEnd[3], Float:flAnglesCustom[3];
if (get_ced(iWeapon, ced_int, ced_weapon_int_BunkerBuster_Started)) // инициация делея для сброса
{
iTrace = create_tr2();
set_entvar(id, var_viewmodel, g_szViewModel);
set_member(id, m_iFOV, 90);
SendWeaponAnim(id, ANIM_BUSTER_ZOOM_OUT, zp_get_user_hands(id));
set_ced(iWeapon, ced_int, ced_weapon_int_BunkerBuster_Scoped, false);
set_member(iWeapon, m_Weapon_flTimeWeaponIdle, 0.2);
set_member(iWeapon, m_Weapon_flNextPrimaryAttack, 0.2);
set_member(iWeapon, m_Weapon_flNextSecondaryAttack, 0.2);
get_entvar(id, var_origin, flOrigin);
get_entvar(id, var_view_ofs, flViewOfs);
get_entvar(id, var_v_angle, flAngles);
for (new i; i<3; i++)
flOrigin[i] += flViewOfs[i];
angle_vector(flAngles, ANGLEVECTOR_FORWARD, flForward);
xs_vec_mul_scalar(flForward, 4096.0, flForward);
// xs_vec_normalize(flForward, flForward);
xs_vec_add(flOrigin, flForward, flEnd);
engfunc(EngFunc_TraceLine, flOrigin, flEnd, IGNORE_MONSTERS, id, iTrace);
get_tr2(iTrace, TR_vecEndPos, flEnd);
free_tr2(iTrace);
get_entvar(iWeapon, var_origin, flStart);
client_print(id, print_chat, "flStart: %.2f %.2f %.2f", flStart[0], flStart[1], flStart[2]);
new iMarksNum = floatround(get_distance_f(flStart, flEnd)/400.0);
client_print(id, print_chat, "flEnd: %.2f %.2f %.2f | Distance: %.2f | %d", flEnd[0], flEnd[1], flEnd[2], get_distance_f(flStart, flEnd), iMarksNum);
new Float:flCustomVector[3];
xs_vec_add(flStart, flEnd, flCustomVector);
for (new i; i<iMarksNum; i++)
{
xs_vec_mul_scalar(flCustomVector, 400.0, flCustomVector);
xs_vec_add(flStart, flCustomVector, flEnd);
iEnt = CreateMark(id, flEnd);
xs_vec_copy(flEnd, flStart);
}
set_ced(iWeapon, ced_int, ced_weapon_int_BunkerBuster_Started, false);
set_ced(iWeapon, ced_float, ced_weapon_float_BunkerBuster_SelfCooldown, flGameTime + 5.0);
}
else
{
iTrace = create_tr2();
set_member(iWeapon, m_Weapon_flNextPrimaryAttack, ANIM_MARK_TIME);
set_member(iWeapon, m_Weapon_flNextSecondaryAttack, ANIM_MARK_TIME);
set_member(iWeapon, m_Weapon_flTimeWeaponIdle, ANIM_MARK_TIME);
//set_member(id, m_flNextAttack, ANIM_MARK_TIME);
set_ced(iWeapon, ced_int, ced_weapon_int_BunkerBuster_Started, true);
get_entvar(id, var_origin, flOrigin);
get_entvar(id, var_view_ofs, flViewOfs);
get_entvar(id, var_v_angle, flAngles);
for (new i; i<3; i++)
flOrigin[i] += flViewOfs[i];
angle_vector(flAngles, ANGLEVECTOR_FORWARD, flForward);
//for (new i; i<3; i++)
// flEnd[i] = flOrigin[i] + flForward[i] * 4096.0;
xs_vec_mul_scalar(flForward, 4096.0, flForward);
// xs_vec_normalize(flForward, flForward);
xs_vec_add(flEnd, flForward, flEnd);
engfunc(EngFunc_TraceLine, flOrigin, flEnd, IGNORE_MONSTERS, id, iTrace);
get_tr2(iTrace, TR_vecPlaneNormal, flUp);
xs_vec_cross(flForward, flUp, flRight);
xs_vec_cross(flUp, flRight, flForwardCustom);
vector_to_angle(flForwardCustom, flAngles);
vector_to_angle(flRight, flAnglesCustom);
flAngles[2] = -1.0 * flAnglesCustom[0];
get_tr2(iTrace, TR_vecEndPos, flEnd);
iEnt = CreateMark(id, flEnd);
client_print(id, print_chat, "flStart pre: %.2f %.2f %.2f", flEnd[0], flEnd[1], flEnd[2]);
set_entvar(iWeapon, var_origin, flEnd);
get_entvar(iWeapon, var_origin, flEnd);
client_print(id, print_chat, "flStart pre: %.2f %.2f %.2f", flEnd[0], flEnd[1], flEnd[2]);
set_entvar(iEnt, var_angles, flAngles);
free_tr2(iTrace);
}
set_member(iWeapon, m_flStartThrow, 1337.0);
}
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
Далее идут координаты, которые уже получаю с этого же pev'а, но чуть позднее
Последними идут координаты с трейслайна
4 Фев 2020
в общем ищу помощи
Последнее редактирование: