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

    Статус
    Оффлайн
    Регистрация
    09.02.2014
    Сообщений
    93
    Репутация:
    8 ±

    Показ большего массива

    Есть массив:
    PHP код:
    static const list_animations [] =
            !
    "1. Танец 1\n2. Танец 2\n3. Танец 3\n4. Танец 4\n5. Танец 5\n6. Танец 6\n\
            7. Махать рукой\n8. Лечь на землю\n9. Походка пьяного\n10. Кувыркаться\n\
            11. Попрощаться\n12. Читать рэп\n13. Укрыться\n14. Подложить бомбу\n\
            15. Надеть маску\n16. Вытянуть руку перед собой\n17. Сложить руки вместе\n\
            18. Съел что-то не то...\n19. Перекусить\n20. Шлёпнуть кому-то по заднице\n\
            21. Предложить наркотики\n22. Эффект электрошокера\n23. Мужское курение\n\
            24. Женское курение\n25. Присесть\n26. Восточное единоборство\n27. Выпить напиток\n\
            28. Танец на одной ноге\n29. Поза вратаря\n30. Facepalm\n\
            31. Элемент восточного танца\n32. Позвать кого-то\n33. Руки вверх!\n\
            34. Спать на боку\n35. Спать на спине\n36. Смотреть по сторонам\n\
            37. Облокотиться на бок\n38. Толкнуть боком\n39. Раздумье\n\
            40. Лечь, оперевшись на ладонь\n41. Сесть на стул\n\
            42. Сидеть уставшим за компьютером\n43. Сидеть за столом\n\
            44. Сидеть и печатать\n45. Взять что-то и рассмотреть\n\
            46. Сесть, закинув ногу на ногу\n\47. Отказаться от чего-либо\n\
            48. Поцелуй 1\n49. Поцелуй 2\n50. Поцелуй 3\n\
            51. Размахивать руками на месте\n52. Искуственное дыхание\n\
            53. Пощёчины для лежачего\n54. Подглядывать через что-то\n\
            55. Движение тореодора\n56. Сесть на стул (2)\n57. Сесть на стул (3)\n\
            58. Смотреть наверх\n59. Указать рукой наверх\n60. Быть в страхе\n\
            61. Призывать к чему-либо\n62. Сходить по-маленькому\n63. Гангстерский жест\n\
            64. Голосовать на остановке\n65. Удар ногой\n66. Стучаться в дверь\n\
            67. Устроить бунт\n68. Пританцовывать\n69. Лечь на землю (2)\n\
            70. Плохое самочувствие\n71. Приветствие 1\n72. Приветствие 2\n\
            73. Приветствие 3\n74. Приветствие 4\n{33cc00}Информация"

    Собственному любому понятно, что он слишком большой (даже огромный), и компилятор, конечно, отказывается с ним работать. Есть какой нибудь выход из данного положения? Кроме как использования компилятор от Zeex, и разделения массива с использованием форматирования.

    Дабы вот так просто показать массив:
    PHP код:
    ShowPlayerDialog(playeridDIALOG_ANIMATIONDIALOG_STYLE_LIST,
                !
    "{660099}Анимации"list_animations, !"Выбрать", !"Закрыть"
            
    ); 

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    PHP код:
    static const ololo_1[] = "1 строка";
    static const 
    ololo_2[] = "2 строка";
    static const 
    ololo_3[] = "n-ая строка и т.д.";

    new 
    str[sizeof(ololo_1) + sizeof(ololo_2) + sizeof(ololo_3) + 1];

    //сцепить эти три(или более) строки через strcat и дело в шляпе 
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    02.11.2016
    Сообщений
    131
    Репутация:
    23 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    PHP код:
    static const ololo_1[] = "1 строка";
    static const 
    ololo_2[] = "2 строка";
    static const 
    ololo_3[] = "n-ая строка и т.д.";

    new 
    str[sizeof(ololo_1) + sizeof(ololo_2) + sizeof(ololo_3) + 1];

    //сцепить эти три(или более) строки через strcat и дело в шляпе 
    static const - без форматирования будет работать не корректно (а именно ошибки при компиляции)
    Так-же не понимаю зачем считать кол-во ячеек всех массивов, если можно посчитать один массив с самой длинной строкой.

    Скрепление можно произвести в сегменте данных.

    PHP код:
    static fmt_str1[] = "text";
    static 
    fmt_str2[] = "text2"
    PHP код:
    fmt_str1[sizeof fmt_str1 1] = '\n';
    fmt_str2[sizeof fmt_str2 1] = '\0'
    PHP код:
    SendClientMessage(playerid, -1fmt_str1); 
    Тем самым не вызывая лишних нативный функций и операторов.

  4. Пользователь сказал cпасибо:
    Web (26.01.2018)
  5. #4
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от Long- Посмотреть сообщение
    static const - без форматирования будет работать не корректно (а именно ошибки при компиляции)
    У тебя компилятор своей сборки что ле какие ещё ошибки))
    Покажи как ты код накидываешь и ошибки какие...


    Цитата Сообщение от Long- Посмотреть сообщение
    Скрепление можно произвести в сегменте данных.

    PHP код:
    static fmt_str1[] = "text";
    static 
    fmt_str2[] = "text2"
    PHP код:
    fmt_str1[sizeof fmt_str1 1] = '\n';
    fmt_str2[sizeof fmt_str2 1] = '\0'
    PHP код:
    SendClientMessage(playerid, -1fmt_str1); 
    Тем самым не вызывая лишних нативный функций и операторов.
    согласен) подзабыл что так можно

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

    Цитата Сообщение от Long- Посмотреть сообщение
    Так-же не понимаю зачем считать кол-во ячеек всех массивов, если можно посчитать один массив с самой длинной строкой.
    Логики у тебя нету вот ты и не понял, заметил что ты один это спросил?

    PHP код:
    ///у человека проблема в том что не вмещается объёмный текст
    ///я его поделил на части
    static const ololo_1[] = "1 строка";
    static const 
    ololo_2[] = "2 строка";
    static const 
    ololo_3[] = "n-ая строка и т.д.";

    ///далее создаю массив подсчитывая на ходу сколько всего в нём объёма должно быть для всех строк
    new str[sizeof(ololo_1) + sizeof(ololo_2) + sizeof(ololo_3) + 1];

    ///ещё дальше и отсталый понял бы что тут написано, в массив str закинуть все строки и потом уже юзать готовый объёмный текст
    //сцепить эти три(или более) строки через strcat и дело в шляпе 
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  6. #5
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от 123 Посмотреть сообщение
    Есть какой нибудь выход из данного положения?
    Самый простой и логичный - использовать исправленный компилятор от Zeex. В нём далеко не только эта проблема исправлена + скорость компиляции увеличена
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    09.02.2014
    Сообщений
    93
    Репутация:
    8 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Самый простой и логичный - использовать исправленный компилятор от Zeex. В нём далеко не только эта проблема исправлена + скорость компиляции увеличена
    Помню пытался его использовать в далеком 2014, тогда и получил побочный эффект в виде крашей. С тех пытаюсь не прибегать к использованию этого детище, также как и плагина JIT, поведение которого не всегда стабильно.

  8. #7
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от 123 Посмотреть сообщение
    Помню пытался его использовать в далеком 2014, тогда и получил побочный эффект в виде крашей. С тех пытаюсь не прибегать к использованию этого детище, также как и плагина JIT, поведение которого не всегда стабильно.
    JIT крашит чаще всего с #emit
    А сей компилятор ни разу не вызывал крашей, сколько пользуюсь. Да и логично, что если выпущено столько версий, значит он имеет свою актуальность и кто-то им пользуется => всё норм
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

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

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

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

Ваши права

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