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

    Статус
    Оффлайн
    Регистрация
    08.08.2018
    Сообщений
    59
    Репутация:
    2 ±

    fatal error 102: table overflow: "staging buffer"

    Hello, World! Распределил я, значит, в samp map construction кучу автомобилей (91, если быть точным), и теперь нужно скопировать в мод.
    В глобальных переменных new cars[91];
    В OnGameModeInit
    1. cars = {
    2. CreateDynamicVehicle (...) , //пробовал вместо запятой ";", не помогает
    3. // тут еще 90 таких Create'ов
    4. };

    Выскакивает ошибка fatal error 102: table overflow: "staging buffer". Писать по одному cars[0], cars[1] и тд 91 раз ну сооовсем неохота. Не знаете, как можно это половче провернуть? У меня еще часто будут такие скопления машин, поэтому писать по одному - не вариант (не, вариант, конечно, но вы же понимаете, лень - двигатель прогресса). Читал похожие темы на этом и других форумах, решения не нашел, только компромисс

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

    Статус
    Оффлайн
    Регистрация
    08.08.2018
    Сообщений
    59
    Репутация:
    2 ±
    решил добавлением переменной и копипастом cars[i++], но тоже не то

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Josan_Solomon Посмотреть сообщение
    fatal error 102: table overflow: "staging buffer"
    Эта ошибка возникает, когда в выражении слишком много кода (а инициализация массива как раз и является одним целым выражением). Обычно нужно здорово постараться, чтобы такую ошибку получить, и ваш случай - не исключение: можно было просто сохранить данные по созданию машин (координаты, поворот, цвет) в константном массиве и с помощью этих данных в цикле создать машины и проинициализировать массив cars.
    1. enum eVehicleInfo
    2. {
    3. vModel, // ID модели
    4. Float:vX, // X
    5. Float:vY, // Y
    6. Float:vZ, // Z
    7. Float:vA, // угол поворота (Angle)
    8. vColor1, // цвет #1
    9. vColor2 // цвет #2
    10. };
    11.  
    12. new const vehicle_info[91][eVehicleInfo] =
    13. {
    14. // ID модели, координаты спавна, угол поворота и цвета,
    15. // указываемые в CreateDynamicVehicle()
    16. { 1000.0, 1000.0, 20.0, 0.0, 1, 1 },
    17. // ...
    18. };
    19. new cars[sizeof(vehicle_info)];

    1. for (new i = 0; i < sizeof(vehicle_info); ++i)
    2. cars[i] = CreateDynamicVehicle(vehicle_info[i][vModel], /* ... */);
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    08.08.2018
    Сообщений
    59
    Репутация:
    2 ±
    Да, я стараюсь по мере возможности делать так, но беда в том что машины я расставлял в редакторе карт, который дал мне код из десятков строк CreateVehicle. Все-таки пришлось написать быдлокод из десятков присваиваний значений ячейкам массива :/ Большое спасибо за ответ, учту на будущее. Тему можно закрыть

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Josan_Solomon Посмотреть сообщение
    Да, я стараюсь по мере возможности делать так, но беда в том что машины я расставлял в редакторе карт, который дал мне код из десятков строк CreateVehicle. Все-таки пришлось написать быдлокод из десятков присваиваний значений ячейкам массива :/ Большое спасибо за ответ, учту на будущее. Тему можно закрыть
    Так можно же просто вставить кусок кода со всеми CreateDynamicVehicle в какой-нибудь текстовый редактор и пройтись автозаменой:
    "CreateDynamicVehicle(" => "{ "
    ");" => " },"

    Ок, закрываю тему.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  7. Пользователь сказал cпасибо:
    Josan_Solomon (13.11.2018)
 

 

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

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

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

Ваши права

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