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

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    72
    Репутация:
    16 ±

    Как делаються функции с передачей массива через ссылку?

    PHP код:
    GetPlayerRangName(pl, const ppo[])
    {
        new 
    PlayerInfo[pl][GangID];
        switch(
    PlayerInfo[pl][GangR])
        {
            case 
    1ppo GangInfo[g][RangName1];
            case 
    2format(ppo50"%s"GangInfo[g][RangName2]);
            case 
    3format(ppo50"%s"GangInfo[g][RangName3]);
            case 
    4format(ppo50"%s"GangInfo[g][RangName4]);
            case 
    5format(ppo50"%s"GangInfo[g][RangName5]);
            case 
    6format(ppo50"%s"GangInfo[g][RangName6]);
        }

    Тут я пробовал по разному, везде ошибки были. Пробовал и &ppo[] - =/. Залез в a_players, посмотрел что там const name[] в GetPlayerName, в инете уроков не нашёл.

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

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    72
    Репутация:
    16 ±
    Максимальная длина GangInfo[g][RangNameN] и массива по ссылке 50.

  3. #3
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Присмотрись к заголовку функции.
    PHP код:
    GetPlayerRangName(pl, const ppo[]) 
    Строка "ppo" - константа. Нельзя изменить её значение. Если хочешь что-то вернуть через неё по ссылке - просто убери ключевое слово const.

    Насчёт стандартных функций (типа GetPlayerName) - там хоть const, хоть не const, компилятор Pawn не выдаст ошибки, т.к. он не может контролировать аргументы нативных функций.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  4. 2 пользователя(ей) сказали cпасибо:
    KakbeYura (03.01.2014) L0ndl3m (02.01.2014)
  5. #4
    Аватар для Tracker1
    Проверенный

    Статус
    Оффлайн
    Регистрация
    30.07.2013
    Сообщений
    54
    Репутация:
    84 ±
    Нельзя передавать массивы по ссылке в Pawn.

  6. 2 пользователя(ей) сказали cпасибо:
    KakbeYura (03.01.2014) ^_^ (02.01.2014)
  7. #5
    Аватар для KakbeYura
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    72
    Репутация:
    16 ±
    Я сделал так:
    new rang[50];
    format(rang, 50, "%s", GetPlayerRangName(playerid));
    GetPlayerRangName(pl)
    {
    new g = PlayerInfo[pl][GangID];
    switch(PlayerInfo[pl][GangR])
    {
    case 1: return GangInfo[g][RangName1];
    case 2: return GangInfo[g][RangName2];
    case 3: return GangInfo[g][RangName3];
    case 4: return GangInfo[g][RangName4];
    case 5: return GangInfo[g][RangName5];
    case 6: return GangInfo[g][RangName6];
    }
    return 0;
    }
    =/

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

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    72
    Репутация:
    16 ±
    // close topic

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

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    72
    Репутация:
    16 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Присмотрись к заголовку функции.
    PHP код:
    GetPlayerRangName(pl, const ppo[]) 
    Строка "ppo" - константа. Нельзя изменить её значение. Если хочешь что-то вернуть через неё по ссылке - просто убери ключевое слово const.

    Насчёт стандартных функций (типа GetPlayerName) - там хоть const, хоть не const, компилятор Pawn не выдаст ошибки, т.к. он не может контролировать аргументы нативных функций.
    Ну я так то знал о константах, но я же говорил, что посмотрел там как и думаю попробую, ну вам так и скинул.

  10. #8
    Аватар для Osetin
    •Администратор•

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

 

 

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

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

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

Ваши права

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