PDA

Просмотр полной версии : [Вопрос] Вопрос по объектам и т д



Paradox
29.01.2020, 23:18
Доброе время суток Pro-Pawn.
В общем пишу динамическую сис-му домов (То есть игроки сами строят что хотят), и объекты на сколько я понял создавать нужно через CreatePlayerObject. так вот, каким образом сделать так что бы не превысить лимит в 1 000 (default)?

И вот еще вопрос: CreateObject/CreatePlayerObject/AttachObject/Vehicle|Player входит в одно кол-во слотов (1 000)?
И так же интересует по 3DText'у и прочему такому как иконки на карте и т д.

Не помешает пару советов если есть.

Pa4enka
30.01.2020, 00:09
Для подобных систем нужно юзать не CreatePlayerObject, а CreateDynamicObject, дабы не загонять себя в рамки какого-то лимита. Да, стример тоже имеет ограничение на 1к объектов в зоне стрима игрока, но не на весь сервер 1к, как у дефолтных объектов. Соответственно, остальные вопросы отпадают сами по себе.

Paradox
30.01.2020, 01:34
Для подобных систем нужно юзать не CreatePlayerObject, а CreateDynamicObject, дабы не загонять себя в рамки какого-то лимита. Да, стример тоже имеет ограничение на 1к объектов в зоне стрима игрока, но не на весь сервер 1к, как у дефолтных объектов. Соответственно, остальные вопросы отпадают сами по себе.

Не совсем, остальные объекты CreatePlayerObject/AttachObject/Vehicle|Player, входят в кол-во тоже, ну вот допустим я сделал банк из 500 объектов, пришел игрок или приехала машина с прикрепленным объектом, это как считать мне? будет столько же объектов 500 или 501?

Все равно не понял как быть если вот есть допустим у меня квадрат в пол, стены, потолок, и это и есть интерьер дома для игроков и уже в нем они строят, разве не во всех домах будут видны объекты если я сделаю через CreateDynamicObject/CreateObject/

whale
30.01.2020, 03:21
Не совсем, остальные объекты CreatePlayerObject/AttachObject/Vehicle|Player, входят в кол-во тоже, ну вот допустим я сделал банк из 500 объектов, пришел игрок или приехала машина с прикрепленным объектом, это как считать мне? будет столько же объектов 500 или 501?

Все равно не понял как быть если вот есть допустим у меня квадрат в пол, стены, потолок, и это и есть интерьер дома для игроков и уже в нем они строят, разве не во всех домах будут видны объекты если я сделаю через CreateDynamicObject/CreateObject/

1. Считается количество объектов в зоне прорисовки игрока.
2. У функции CreateDynamicObject существует параметр playerid, который позволяет создать объект для конкретного игрока.


CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1)

Paradox
30.01.2020, 04:27
1. Считается количество объектов в зоне прорисовки игрока.
2. У функции CreateDynamicObject существует параметр playerid, который позволяет создать объект для конкретного игрока.


CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1)


Понял, спасибо за ответ.

DeimoS
30.01.2020, 19:25
Не совсем, остальные объекты CreatePlayerObject/AttachObject/Vehicle|Player, входят в кол-во тоже, ну вот допустим я сделал банк из 500 объектов, пришел игрок или приехала машина с прикрепленным объектом, это как считать мне? будет столько же объектов 500 или 501?

Все равно не понял как быть если вот есть допустим у меня квадрат в пол, стены, потолок, и это и есть интерьер дома для игроков и уже в нем они строят, разве не во всех домах будут видны объекты если я сделаю через CreateDynamicObject/CreateObject/

CreateObject и CreatePlayerObject имеют общий лимит в 1000 объектов. Не важно где ты их создашь (в интерьере или нет) - они загружаются в память игрока сразу после создания. Так что тебе не получится создать больше 1000 объектов одновременно.


Объекты стримера работают через CreatePlayerObject. Вся магия стримера в том, что он создаёт только те объекты, которые находятся рядом с игроком. Если объект далеко - стример вызывает DestroyPlayerObject для этого объекта, дабы удалить его из памяти клиента. В итоге лимит в 1000 объектов становится не для всей карты, а только для зоны стрима вокруг игрока.


И да: так как стример работает всё через ту же CreatePlayerObject, каждый CreateObject и CreatePlayerObject, которые ты пропишешь в моде, будут убавлять количество объектов, которые стример сможет создать. Поэтому без особой нужны пользоваться стандартными функциями не стоит.