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

    Статус
    Оффлайн
    Регистрация
    20.10.2013
    Сообщений
    40
    Репутация:
    1 ±

    Возвращение результаов функции в несколько переменных

    Всем добра! Можно-ли вернуть несколько значении при помощи return оператора?
    т.е для примера, я хочу узнать координаты игрока
    PHP код:
    stock player_getPos(playerid) {
        new 
    Float:xFloat:yFloat:z;//создаем переменные
        
    GetPlayerPos(playeridxyz);//узнаем координаты игрока и записываем в переменные координаты. (если память не изменяет)
        
    return xyz;//возвращаем координаты
    }

    public 
    OnPlayerCommandText(playeridcmdtext[]) {
        if (
    strcmp("/test"cmdtexttrue10) == 0) {
            new 
    xyplayer_getPos(playerid);
            
    printf("x = %f, y = %f, z = %f"xyz);//выводим данные
            
    return 1;
        }
        return 
    0;

    Возможно вопрос глуповатый, не кидайтесь помидорами =)

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    768 ±
    В других ЯП, например в Lua – можно. В pawn же это можно сделать с помощью так называемых "костылей".

  3. #3
    Аватар для VVWVV
    Проверенный

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    660
    Репутация:
    314 ±
    Нет, возвращается только последнее значение, а именно значение переменной z.

    Можно сделать с помощью ссылок, например:
    PHP код:
    AnotherFunction(&a, &b)
    {
        
    b;
        
    5;

    Последний раз редактировалось VVWVV; 13.12.2015 в 22:49. Причина: --

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    768 ±
    Как вариант, VVWVVV предложил вам использовать ссылки.

    Такие функции как:

    уже работают по данному способу.

  5. #5
    Аватар для VVWVV
    Проверенный

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    660
    Репутация:
    314 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Как вариант, VVWVVV предложил вам использовать ссылки.

    Такие функции как GetPlayerPos, GetPlayerFacingAngle, GetPlayerHealth, etc... уже работает по данному способу.
    Забыл про ссылки, вспомнил, когда уже сохранял.

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

    Статус
    Оффлайн
    Регистрация
    20.10.2013
    Сообщений
    40
    Репутация:
    1 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Нет, возвращается только последнее значение, а именно значение переменной z.

    Можно сделать с помощью ссылок, например:
    PHP код:
    AnotherFunction(&a, &b)
    {
        
    b;
        
    5;

    Можно пример с моим примером?)

    - - - Добавлено - - -

    Цитата Сообщение от Londlem Посмотреть сообщение
    В других ЯП, например в Lua – можно. В pawn же это можно сделать с помощью так называемых "костылей".
    Согласен в Lua можно, Костыли везде костыли...

  7. #7
    Аватар для VVWVV
    Проверенный

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    660
    Репутация:
    314 ±
    Цитата Сообщение от Jeff_Monson Посмотреть сообщение
    Можно пример с моим примером?)

    - - - Добавлено - - -


    Согласен в Lua можно, Костыли везде костыли...
    PHP код:
    stock player_getPos(playerid, &Float:x, &Float:y, &Float:z) {
          
    GetPlayerPos(playeridxyz);//узнаем координаты игрока и записываем в переменные координаты. (если память не изменяет)  
          
    return 1;

    public 
    OnPlayerCommandText(playeridcmdtext[]) {
         if (
    strcmp("/test"cmdtexttrue10) == 0) {
             new 
    Float:xFloat:yFloat:z;
            
    player_getPos(playeridxyz);
             
    printf("x = %f, y = %f, z = %f"xyz);//выводим данные
             
    return 1;
         }
         return 
    0;
     } 

 

 

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

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

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

Ваши права

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