Угол полёта энтити

Сообщения
18
Реакции
0
Ошибка
Неправильный угол полёта энтити
ОС
Linux
Amx Mod X
v1.9.0.5294
Билд
3.13.0.788-dev
ReGamedll
5.26.0.668-dev
Версия Metamod
Metamod-r v1.3.0.131, API (5:13)
Metamod-r build: 18:51:02 Jul 11 2022
Список метамодулей
-
Список плагинов
-
Автор плагина
-
Версия плагина
-
Исходный код
public create_rocket(id)
{
new ent, Float:Origin[3], Float:Angles[3], Float:Velocity[3]

ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
engfunc(EngFunc_GetAttachment, id, 0, Origin, Angles)
pev(id, pev_angles, Angles)

set_pev(ent, pev_origin, Origin)
set_pev(ent, pev_angles, Angles)
set_pev(ent, pev_solid, 2)
set_pev(ent, pev_movetype, 5)
set_pev(ent, pev_classname, "at4ex_rocket")
set_pev(ent, pev_owner, id)
engfunc(EngFunc_SetModel, ent, s_model)

set_pev(ent, pev_mins, {-1.0, -1.0, -1.0})
set_pev(ent, pev_maxs, {1.0, 1.0, 1.0})

// Скорость полёта ракеты
velocity_by_aim(id, 2250, Velocity)
set_pev(ent, pev_velocity, Velocity)

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // TE id
write_short(ent) // entity:attachment to follow
write_short(g_spr_trail) // sprite index
write_byte(15) // life in 0.1's
write_byte(2) // line width in 0.1's
write_byte(255) // r
write_byte(255) // g
write_byte(255) // b
write_byte(200) // brightness
message_end()

set_pev(ent, pev_iuser4, 0)
set_pev(ent, pev_nextthink, halflife_time() + 0.1)
emit_sound(ent, CHAN_AUTO, at4cs_sound[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
При стрельбе прямо моделька энтити(ракеты) летит как и положено прямо, а при стрельюе вверх или с возвышенности вниз, то моделька отображается под углом.

1.PNG
2.PNG
 
В этой теме было размещено решение! Перейти к решению.

Garey

ninjaCow
Сообщения
445
Реакции
1,098
Помог
11 раз(а)
попробуй вместо pev_angles взять pev_v_angle
 
Сообщения
18
Реакции
0
Garey, уже лучше, теперь при горизонтальном и вертикальном полёте моделька правильно отображается, а при наведении под углом так-же летит боком:
Код:
    new Float:Angles2[3]
    pev(id, pev_angles, Angles2)
    pev(id, pev_v_angle, Angles)
    client_print(id, print_chat, "Angles[0]: %f", Angles[0]);
    client_print(id, print_chat, "Angles[1]: %f", Angles[1]);
    client_print(id, print_chat, "Angles[2]: %f", Angles[2]);
    
    client_print(id, print_chat, "Angles2[0]: %f", Angles2[0]);
    client_print(id, print_chat, "Angles2[1]: %f", Angles2[1]);
    client_print(id, print_chat, "Angles2[2]: %f", Angles2[2]);
    set_pev(ent, pev_origin, Origin)
    set_pev(ent, pev_angles, Angles)
## Строго вверх
Angles[0]: -88.994750
Angles[1]: 47.933349
Angles[2]: 0.000000
Angles2[0]: 29.664916
Angles2[1]: 47.933349
Angles2[2]: 0.000000

## Строго вниз
Angles[0]: 88.994750
Angles[1]: 14.474487
Angles[2]: 0.000000
Angles2[0]: -29.664916
Angles2[1]: 14.474487
Angles2[2]: 0.000000

## Примерно прямо
Angles[0]: -0.098876
Angles[1]: -0.032958
Angles[2]: 0.000000
Angles2[0]: 0.032958
Angles2[1]: -0.032958
Angles2[2]: 0.000000

## Под углом
2.PNG


Angles[0]: 16.836547
Angles[1]: -3.724365
Angles[2]: 0.000000
Angles2[0]: -5.612182
Angles2[1]: -3.724365
Angles2[2]: 0.000000
 
Сообщения
77
Реакции
83
Помог
7 раз(а)
Код:
public create_rocket(id)
{
    new ent, Float:Origin[3], Float:Angles[3], Float:Velocity[3];
    
    ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
    engfunc(EngFunc_GetAttachment, id, 0, Origin, Angles);
    
    set_pev(ent, pev_solid, SOLID_TRIGGER);
    set_pev(ent, pev_movetype, MOVETYPE_FLY);
    set_pev(ent, pev_classname, "at4ex_rocket");
    set_pev(ent, pev_owner, id);
    engfunc(EngFunc_SetModel, ent, s_model);
    engfunc(EngFunc_SetOrigin, ent, Origin);
    
    set_pev(ent, pev_mins, {-1.0, -1.0, -1.0});
    set_pev(ent, pev_maxs, {1.0, 1.0, 1.0});
    
    // Скорость полёта ракеты
    velocity_by_aim(id, 2250, Velocity);
    set_pev(ent, pev_velocity, Velocity);
    engfunc(EngFunc_VecToAngles, Velocity, Angles);
    set_pev(ent, pev_angles, Angles);
    
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
    write_byte(TE_BEAMFOLLOW) // TE id
    write_short(ent) // entity:attachment to follow
    write_short(g_spr_trail) // sprite index
    write_byte(15) // life in 0.1's
    write_byte(2) // line width in 0.1's
    write_byte(255) // r
    write_byte(255) // g
    write_byte(255) // b
    write_byte(200) // brightness
    message_end()   
    
    set_pev(ent, pev_iuser4, 0);
    set_pev(ent, pev_nextthink, get_gametime() + 0.1);
    emit_sound(ent, CHAN_AUTO, at4cs_sound[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу