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

    Статус
    Оффлайн
    Регистрация
    05.05.2014
    Сообщений
    47
    Репутация:
    11 ±

    Возможно ли оптимизировать эту функцию?

    Здравствуйте. Функция PlayerDistance ставит условие в некоторых командах, такие как /pay - передать деньги (игроки должны быть рядом друг с другом). Возможно ли оптимизировать эту функцию?
    PHP код:
    stock PlayerDistance(Float:radiplayeridtargetid)
    {
      if(
    IsPlayerConnected(playerid) && IsPlayerConnected(targetid))
      {
        new 
    Float:posxFloat:posyFloat:posz;
        new 
    Float:oldposxFloat:oldposyFloat:oldposz;
        new 
    Float:tempposxFloat:tempposyFloat:tempposz;
        
    GetPlayerPos(playeridoldposxoldposyoldposz);
        
    GetPlayerPos(targetidposxposyposz);
        
    tempposx = (oldposx -posx);
        
    tempposy = (oldposy -posy);
        
    tempposz = (oldposz -posz);
        if(((
    tempposx radi) && (tempposx > -radi)) && ((tempposy radi) && (tempposy > -radi)) && ((tempposz radi) && (tempposz > -radi))) return true;
      }
      return 
    false;


  2. #2
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    По моему всё хорошо.

  3. Пользователь сказал cпасибо:
    Just_Fenix (31.05.2014)
  4. #3
    Аватар для Just_Fenix
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.05.2014
    Сообщений
    47
    Репутация:
    11 ±
    Ну хорошо, когда всё хорошо

  5. #4
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Можно например так сделать:
    PHP код:
    stock PlayerDistance(const Floatradius, const playerid, const targetid)
    {
        new
            
    Floatp_pos_x,
            
    Floatp_pos_y,
            
    Floatp_pos_z
        
    ;
            
        
    GetPlayerPos(playeridp_pos_xp_pos_yp_pos_z);

        return 
    IsPlayerInRangeOfPoint(targetidradiusp_pos_xp_pos_yp_pos_z);


  6. Пользователь сказал cпасибо:
    Just_Fenix (01.06.2014)
  7. #5
    Аватар для Just_Fenix
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.05.2014
    Сообщений
    47
    Репутация:
    11 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Можно например так сделать:
    PHP код:
    stock PlayerDistance(const Floatradius, const playerid, const targetid)
    {
        new
            
    Floatp_pos_x,
            
    Floatp_pos_y,
            
    Floatp_pos_z
        
    ;
            
        
    GetPlayerPos(playeridp_pos_xp_pos_yp_pos_z);

        return 
    IsPlayerInRangeOfPoint(targetidradiusp_pos_xp_pos_yp_pos_z);

    Спасибо огромное!

  8. #6
    Аватар для OKStyle
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    12.05.2013
    Сообщений
    205
    Репутация:
    49 ±

 

 

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

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

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

Ваши права

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