Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Как узнать угол поворота игрока?
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 [ +/- ]
Ну так я скорость и меняю)). Не выходит.
 
  • Страница 1 из 1
  • 1
Поиск: