PDA

Просмотр полной версии : [Вопрос] Динамические пикапы. Лимит.



Edwin
15.07.2016, 08:00
Всем здарова
У меня вопрос: как выделить массив под динамические пикапы? У них же, насколько я понимаю, нет лимита
То есть:


new pickup_id[MAX_PICKUPS],
dyn_pickup_id[?];

DeimoS
15.07.2016, 10:44
Установи этот лимит для себя сам и увеличивай его по мере необходимости.

Edwin
15.07.2016, 11:14
А другие варианты есть?
Конкретного лимита не будет, он тоже плавающий..

DeimoS
15.07.2016, 11:39
А другие варианты есть?
Конкретного лимита не будет, он тоже плавающий..

Ну можешь рискнуть использовать плагин, который прикручивает некое подобие динамической памяти.
Хотя я бы не стал. Выделил 2000 ячеек и если лимит к концу подошёл, выделил ещё. Хотя 2000 пикапов с головой должно хватить на все нужды

Edwin
15.07.2016, 12:18
Не, писать плагин ради одного инклуда - не вариант
Хотя можно сделать что-то наподобие плагина динамической памяти)
Который сам будет высчитывать индексы

Sp1ke
15.07.2016, 15:09
Не, писать плагин ради одного инклуда - не вариант
Хотя можно сделать что-то наподобие плагина динамической памяти)
Который сам будет высчитывать индексы

Чего же ты такие вопросы на ПИ не задаешь? И кстати, такой плагин уже есть.

Edwin
15.07.2016, 15:22
Чего же ты такие вопросы на ПИ не задаешь? И кстати, такой плагин уже есть.

А ты хочешь мне посоветовать где задавать вопросы?
Не вариант, говорю, ради одного инклуда ставить плагин..

vovandolg
15.07.2016, 15:25
Ну если плагин даст преимущество в скорости работы, то почему не вариант? Взял бы попробовал поставил сравнил скорость хотя бы..

Sp1ke
15.07.2016, 15:27
А ты хочешь мне посоветовать где задавать вопросы?
Не вариант, говорю, ради одного инклуда ставить плагин..

А я хочу просто узнать почему бы не спросить тоже самое, но на ПИ? Или человек, который отвечает почти в каждой теме на любые вопросы не сможет что-то спросить сам? Тогда ничего больше не остается как сделать "лимит" для самого себя, не думаю что у кого на сервере будет 2000-3000 пикапов

Nexius_Tailer
15.07.2016, 16:18
Бери лимит обычных пикапов в 4096. Если уж кому-то не хватит и таких значений, то уж и не грех потом тому пользователю их увеличить (всё-же далеко не каждый не укладывается в такие лимиты).

Daniel_Cortez
15.07.2016, 16:37
Не вариант, говорю, ради одного инклуда ставить плагин..
Такой уж язык Pawn, что в нём ничего без лимита не сделаешь, только через плагины. Смиритесь с этим.
Можно ещё с setproperty повозиться, но это будет неоправданно сложная и медленная реализация.

Edwin
15.07.2016, 17:57
vovandolg: Не спорю насчёт плагина, что в скорости он выиграет, но там дело не совсем в этом..
Там немного не та ситуация)

Sp1ke: а может я хочу здесь спросить. Или сюда говнарей, вроде меня, не пускают?

Nexius_Tailer: Спасибо, так уже и сделал. Просто не известно ещё, кто сколько их будет использовать. Бывают же и такие люди, которые ставят на всё, что видят. А в моде может быть и 1500 домов, 1000 бизов, и каждому нужно по пикапу на вход, выход, пикап управления, плюс так какие-нибудь пикапы, разбросанные по городу: больницы, мэрия, департаменты, фракции, работы, квесты, и так далее...
Ладно, в принципе, будем от этого и отталкиваться
Всем спасибо

DeimoS
15.07.2016, 18:30
Спасибо, так уже и сделал. Просто не известно ещё, кто сколько их будет использовать. Бывают же и такие люди, которые ставят на всё, что видят. А в моде может быть и 1500 домов, 1000 бизов, и каждому нужно по пикапу на вход, выход, пикап управления, плюс так какие-нибудь пикапы, разбросанные по городу: больницы, мэрия, департаменты, фракции, работы, квесты, и так далее...
Ладно, в принципе, будем от этого и отталкиваться
Всем спасибо

Пытаться удовлетворить всем и вся - такая себе затея. Для таких людей, которых ты описываешь, делается отдельный макрос, в котором указывается лимит, и делается возможность этот макрос изменять, не вмешиваясь, при этом, во внутренности инклюда. То бишь, типа:

#if !defined MAX_VAX_PAX_SHMAX_PICKUPS
#define MAX_VAX_PAX_SHMAX_PICKUPS 3000
#endif

И если кому-то понадобится это число изменить, достаточно добавить вот такую строку

#define MAX_VAX_PAX_SHMAX_PICKUPS 1000
Перед объявлением твоего инклюда.
Пишешь об этом в теме с релизом и всё, к тебе вопросов никаких быть не может.

P.S. Ты это, я уверен, и так знал. Просто информация для тех, кто однажды наткнётся на твою тему и задастся таким же вопросом.


Если появятся ещё вопросы по этой же теме - пиши в личку и открою тему.
А пока: закрыто.