Как узнать угол поворота игрока?
|
|
horr0r
|
Дата: Среда, 02.01.2013, 11:23:45 | Сообщение # 1 |
|
Сообщений: 149
Репутация: 40 [ +/- ]
|
|
Как узнать угол поворота игрока? И еще какой функцией узнать синус и косинус?
|
|
| |
Scarface_slv
|
Дата: Среда, 02.01.2013, 15:24:52 | Сообщение # 2 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
1.GetClientAbsAngles(client, Float:ang[3]); 2.Хз, зачем это тебе? =)
|
|
| |
horr0r
|
Дата: Среда, 02.01.2013, 18:45:52 | Сообщение # 3 |
|
Сообщений: 149
Репутация: 40 [ +/- ]
|
|
Хочу сделать отталкивание при получении урона). Так вот, нужно узнать синус и косинус угла поворота камеры игрока. Чтобы двинуть его на 180 градусов).
Нашел функции:Код native Float:Sine(Float:value); native Float:Cosine(Float:value);
Стоп, а функция GetClientAbsAngles получает 3 вектора чтоли? Раз там 3 переменных нужно указать? Есть какая-нибудь простенькая? Которая просто угол(не больше 360 градусов)?
Сообщение отредактировал horr0r - Среда, 02.01.2013, 18:55:57 |
|
| |
Scarface_slv
|
Дата: Среда, 02.01.2013, 19:25:51 | Сообщение # 4 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
незнаю) Код new Float:ang[3]; GetClientAbsAngles(client, ang); PrintToChat(client, "%.1f",ang[1]); так он получает только от -180 до 180Добавлено (02.01.2013, 19:25:51) --------------------------------------------- И 360 получить так можно, лучше с ним) Код new Float:ang[3]; GetClientEyeAngles(client, ang); PrintToChat(client, "%.1f", ang[1]);
|
|
| |
horr0r
|
Дата: Среда, 02.01.2013, 19:37:41 | Сообщение # 5 |
|
Сообщений: 149
Репутация: 40 [ +/- ]
|
|
О, спасибо, а есть функция, которой можно подбросить игрока(не телепортировать, за стену например)? Только, у которой можно указать направление?
|
|
| |
Scarface_slv
|
Дата: Четверг, 03.01.2013, 01:28:32 | Сообщение # 6 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
Я о такой не слышал и не видел) может есть хотя врядли)Добавлено (03.01.2013, 01:28:32) --------------------------------------------- Ws отправил это - TeleportEntity(index, NULL_VECTOR, 1, 2); Незнаю это ли тебе нужно или нет
|
|
| |
horr0r
|
Дата: Четверг, 03.01.2013, 10:44:15 | Сообщение # 7 |
|
Сообщений: 149
Репутация: 40 [ +/- ]
|
|
Блин, сделал вроде все, но ничего не выходит. Сделал пока на прыжках, чтобы при прыжке дальше лететь. Вот код:Код new Handle:PlugLoaded; public OnPluginStart() { //PlugLoaded = CreateConVar("sm_slapdamage_enable", "1", "Enable/Disable slap on take damage", FCVAR_PLUGIN); HookEvent("player_jump", Event_PlayerJump); }
public Event_PlayerJump(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); new Float:vec[3], Float:vel[3]; GetClientEyeAngles(client, vec); PrintToChat(client, "Angles: %f,%f,%f", vec[0], vec[1], vec[2]); vel[0] += Sine(-vec[1])*4; vel[1] += Cosine(-vec[1])*4; PrintToChat(client, "Sin: %f | Cos: %f", vel[0], vel[1]); TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, vel); }
|
|
| |
Scarface_slv
|
Дата: Четверг, 03.01.2013, 10:59:24 | Сообщение # 8 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
native TeleportEntity(entity, const Float:origin[3], const Float:angles[3], const Float:velocity[3]);
entity Client index. origin New origin, or NULL_VECTOR for no change. angles New angles, or NULL_VECTOR for no change. velocity New velocity, or NULL_VECTOR for no change.
|
|
| |
horr0r
|
Дата: Четверг, 03.01.2013, 11:34:16 | Сообщение # 9 |
|
Сообщений: 149
Репутация: 40 [ +/- ]
|
|
Да это я читал). Не получается кинуть игрока вперед. Ничего не происходит.
|
|
| |
Scarface_slv
|
Дата: Четверг, 03.01.2013, 15:24:44 | Сообщение # 10 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
Так толкает но куда попало, я в тригонометрии даже в банальных ЛОХ) Код vel[0] += Sine(-vec[1]) * 4; vel[1] += Cosine(-vec[1]) * 4; vel[2] = 0.0;
Сообщение отредактировал Scarface_slv - Четверг, 03.01.2013, 15:43:35 |
|
| |
horr0r
|
Дата: Четверг, 03.01.2013, 18:08:52 | Сообщение # 11 |
|
Сообщений: 149
Репутация: 40 [ +/- ]
|
|
У тебя толкает? Это круто! У меня даже куда попало не толкает.) Минус убрать нужно). Это из "SA-MP", там язык программирования тоже PAWN. Но функции для получения синуса и косинуса отличаются от этих. Код vel[0] += Sine(vec[1]) * 4; vel[1] += Cosine(vec[1]) * 4; vel[2] = 0.0;
|
|
| |
Scarface_slv
|
Дата: Четверг, 03.01.2013, 20:20:37 | Сообщение # 12 |
|
Сообщений: 737
Репутация: 61 [ +/- ]
|
|
телепорт, это если вместо NULL_VECTOR координаты укажешь какие-то а так - толкнет 1 - углы 2 - скорость вроде WS написал:)
Сообщение отредактировал Scarface_slv - Четверг, 03.01.2013, 20:25:31 |
|
| |
horr0r
|
Дата: Пятница, 04.01.2013, 10:49:51 | Сообщение # 13 |
|
Сообщений: 149
Репутация: 40 [ +/- ]
|
|
Ну так я скорость и меняю)). Не выходит.
|
|
| |