Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 1 из 1
  1. #1
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1093 ±

    a_angles (Вычисление углов)

    PHP код:
    //a_angles.inc 
     //Geometric angle functions 
     //Created by: 
     //Tannz0rz 

     #if defined _a_angles_included 
       #endinput 
     #endif 
     #define _a_angles_included 

     #include <a_samp> 

     
    stock IsPlayerBehindPlayer(playeridtargetidFloat:dOffset
     { 

      new 
          
    Float:pa
          
    Float:ta

      if(!
    IsPlayerConnected(playerid) || !IsPlayerConnected(targetid)) return 0
       
      
    GetPlayerFacingAngle(playeridpa); 
      
    GetPlayerFacingAngle(targetidta); 
       
      if(
    AngleInRangeOfAngle(patadOffset) && IsPlayerFacingPlayer(playeridtargetiddOffset)) return true

      return 
    false

     } 

     
    stock SetPlayerToFacePlayer(playeridtargetid
     { 

      new 
       
    Float:pX
       
    Float:pY
       
    Float:pZ
       
    Float:X
       
    Float:Y
       
    Float:Z
       
    Float:ang

      if(!
    IsPlayerConnected(playerid) || !IsPlayerConnected(targetid)) return 0

      
    GetPlayerPos(targetidXYZ); 
      
    GetPlayerPos(playeridpXpYpZ); 

      if( 
    pY ang = (-acos((pX) / floatsqroot((pX)*(pX) + (pY)*(pY))) - 90.0); 
      else if( 
    pY && pX ang = (acos((pX) / floatsqroot((pX)*(pX) + (pY)*(pY))) - 450.0); 
      else if( 
    pY ang = (acos((pX) / floatsqroot((pX)*(pX) + (pY)*(pY))) - 90.0); 

      if(
    pXang = (floatabs(floatabs(ang) + 180.0)); 
      else 
    ang = (floatabs(ang) - 180.0); 
       
      
    SetPlayerFacingAngle(playeridang); 

       return 
    0

     } 

     
    stock IsPlayerFacingPlayer(playeridtargetidFloat:dOffset
     { 

      new 
       
    Float:pX
       
    Float:pY
       
    Float:pZ
       
    Float:pA
       
    Float:X
       
    Float:Y
       
    Float:Z
       
    Float:ang

      if(!
    IsPlayerConnected(playerid) || !IsPlayerConnected(targetid)) return 0

      
    GetPlayerPos(targetidpXpYpZ); 
      
    GetPlayerPos(playeridXYZ); 
      
    GetPlayerFacingAngle(playeridpA); 

      if( 
    pY ang = (-acos((pX) / floatsqroot((pX)*(pX) + (pY)*(pY))) - 90.0); 
      else if( 
    pY && pX ang = (acos((pX) / floatsqroot((pX)*(pX) + (pY)*(pY))) - 450.0); 
      else if( 
    pY ang = (acos((pX) / floatsqroot((pX)*(pX) + (pY)*(pY))) - 90.0); 

      if(
    AngleInRangeOfAngle(-angpAdOffset)) return true

      return 
    false

     } 

     
    stock AngleInRangeOfAngle(Float:a1Float:a2Float:range
     { 

      
    a1 -= a2
      if((
    a1 range) && (a1 > -range)) return true

      return 
    false

     } 
    Автор: Tannz0rz.

  2. Пользователь сказал cпасибо:
    Salvacore (03.01.2014)
 

 

Информация о теме

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

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •