Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: ProxDetector

  1. #1
    Аватар для Rick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.08.2013
    Сообщений
    68
    Репутация:
    0 ±

    ProxDetector

    PHP код:
    #define ProxDetectorNew(%0,%1,%2,%3) ProxDetector(%0,%1,%2,%3,%3,%3,%3,%3)
    ProxDetectorNew(30.0,playerid,ministring,COLOR_PURPLE); 
    Нужно ведь ещё сток объявить с ProxDetector ? или почему же у меня ошибка выходит?


    PHP код:
     error 017undefined symbol "ProxDetector 

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Вы заменили макросом название старого стока, но его не существует. То есть создавайте функцию ProxDetector, в ней всё что нужно создавайте.

  3. #3
    Аватар для Rick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.08.2013
    Сообщений
    68
    Репутация:
    0 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Вы заменили макросом название старого стока, но его не существует. То есть создавайте функцию ProxDetector, в ней всё что нужно создавайте.
    Ну вы наверное знаете функции ProxDetectora - не поможете создать сток? именно этот, под мою ту фунцию которую я выше скинул, мне просто самому не получается создать, а в модах различных данного стока тоже нету.

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Эта функция в гугле лежит в очень многих экземплярах.

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

    Статус
    Оффлайн
    Регистрация
    10.08.2013
    Сообщений
    68
    Репутация:
    0 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Эта функция в гугле лежит в очень многих экземплярах.
    Я не смог её найти, скиньте её пожалуйста, она мне очень требуется - помогите .

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±

  7. #7
    Аватар для gangzone.ini
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    PHP код:
    stock ProxDetector(playeridFloat:rangestring[])
    {
        new 
    Float:POS[3],Float:radius;
        
    GetPlayerPos(playeridPOS[0], POS[1], POS[2]);
        foreach(new 
    iPlayer)
        {
            if(
    IsPlayerConnected(i) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
            {
                
    radius GetPlayerDistanceFromPoint(iPOS[0], POS[1], POS[2]);
                if(
    radius range/16SendClientMessage(i, -1string);
                else if(
    radius range/8SendClientMessage(i, -1string);
                else if(
    radius range/4SendClientMessage(i, -1string);
                else if(
    radius range/2SendClientMessage(i, -1string);
                else if(
    radius rangeSendClientMessage(i, -1string);
            }
        }
        return 
    1;


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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    #Azumi, количество аргументов выложенной Вами функции не совпадает с количеством аргументов в макросе Rick, будут ошибки.

  9. Пользователь сказал cпасибо:
    gangzone.ini (24.01.2015)
  10. #9
    Аватар для Rick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.08.2013
    Сообщений
    68
    Репутация:
    0 ±
    Воспользовался поиском, нашёл функцию такую вот . Нормальна ли она?


    PHP код:
    forward ProxDetector(Float:radiplayeridstr[], col1col2col3col4col5);
    public 
    ProxDetector(Float:radiplayeridstr[],col1,col2,col3,col4,col5)
    {
        if(
    IsPlayerConnected(playerid))
        {
            new 
    Float:posxFloat:posyFloat:posz;
            new 
    Float:oldposxFloat:oldposyFloat:oldposz;
            new 
    Float:tempposxFloat:tempposyFloat:tempposz;
            
    GetPlayerPos(playeridoldposxoldposyoldposz);
            
    //radi = 2.0; //Trigger Radius
            
    for(new 0MAX_PLAYERSi++)
            {
                if(
    IsPlayerConnected(i))
                {

                    
    GetPlayerPos(iposxposyposz);
                    
    tempposx = (oldposx -posx);
                    
    tempposy = (oldposy -posy);
                    
    tempposz = (oldposz -posz);
                    
    //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
                    
    if (((tempposx radi/16) && (tempposx > -radi/16)) && ((tempposy radi/16) && (tempposy > -radi/16)) && ((tempposz radi/16) && (tempposz > -radi/16)))
                    {
                        
    SendClientMessage(icol1str);
                    }
                    else if (((
    tempposx radi/8) && (tempposx > -radi/8)) && ((tempposy radi/8) && (tempposy > -radi/8)) && ((tempposz radi/8) && (tempposz > -radi/8)))
                    {
                        
    SendClientMessage(icol2str);
                    }
                    else if (((
    tempposx radi/4) && (tempposx > -radi/4)) && ((tempposy radi/4) && (tempposy > -radi/4)) && ((tempposz radi/4) && (tempposz > -radi/4)))
                    {
                        
    SendClientMessage(icol3str);
                    }
                    else if (((
    tempposx radi/2) && (tempposx > -radi/2)) && ((tempposy radi/2) && (tempposy > -radi/2)) && ((tempposz radi/2) && (tempposz > -radi/2)))
                    {
                        
    SendClientMessage(icol4str);
                    }
                    else if (((
    tempposx radi) && (tempposx > -radi)) && ((tempposy radi) && (tempposy > -radi)) && ((tempposz radi) && (tempposz > -radi)))
                    {
                        
    SendClientMessage(icol5str);
                    }
                }
            }
        }
    //not connected
        
    return 1;


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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Если честно, не очень.

    В общем, в конец скрипта:
    PHP код:
    stock ProxDetectorNew(Floatrangeplayeridstring[], color = -1)
    {
        new
            
    Floatx,
            
    Floaty,
            
    Floatz,
            
    GetMaxPlayers(),
            
    world GetPlayerVirtualWorld(playerid);

        
    GetPlayerPos(playeridxyz);

        do
        {
            if(
    == IsPlayerConnected(--i)
            || 
    world != GetPlayerVirtualWorld(i)
            || 
    GetPlayerDistanceFromPoint(ixyz) > range)
                continue;
            
            
    SendClientMessage(icolorstring);
        }
        while(
    0);
        return 
    1;

    И уберите Ваш макрос ( если не поняли это define ).
    Последний раз редактировалось L0ndl3m; 21.01.2015 в 22:02.

  12. Пользователь сказал cпасибо:
    Rick (21.01.2015)
 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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