PDA

Просмотр полной версии : [Вопрос] Как прятать пикап на определенном расстоянии? (Streamer)



h3ckphy
29.05.2020, 11:57
Допустим если я близко подхожу к пикапу, то я хочу, чтобы он не отображался для игрока, который подошел к этому пикапу. Как это сделать через Streamer?

MassonNN
29.05.2020, 12:45
Создаешь пикап, создаешь в точке с пикапом динамическую сферу:

CreateDynamicSphere

устанавливаешь ей какой хочешь радиус и в паблике

OnPlayerEnterDynamicArea

прячешь от игрока пикап, сам не знаю как сделать для одного игрока одной функцией, но для всех игроков:

DestroyDynamicPickup

execution
29.05.2020, 13:25
Если я не ошибаюсь, при создании динам. пикапа есть параметр принимающий areaid.

new
areaid = CreateDynamicCircle(x, y, size, world, interiorid);
CreateDynamicPickup(modelid, type, x, y, z, worldid, interiorid, .areaid = areaid);

tnc
29.05.2020, 14:49
Если я не ошибаюсь, при создании динам. пикапа есть параметр принимающий areaid.

new
areaid = CreateDynamicCircle(x, y, size, world, interiorid);
CreateDynamicPickup(modelid, type, x, y, z, worldid, interiorid, .areaid = areaid);

Только вот параметры идут в таком порядке:


CreateDynamicPickup(modelid, type, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_PICKUP_SD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1)

execution
29.05.2020, 14:52
Только вот параметры идут в таком порядке:


CreateDynamicPickup(modelid, type, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_PICKUP_SD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1)


Всё правильно, я его и не нарушал)

tnc
29.05.2020, 14:57
Всё правильно, я его и не нарушал)

Дело в том, что преимущество пропуска через . над _ в том, что лучше указывать все параметры и просто оставлять их по дефолту, чтобы потом легче было изменять систему и не смотреть wiki (какие параметры за кем идут). Типа такого:


CreateDynamic3DTextLabelEx(
HOTELS_RECEPTION_3D_TEXT,
HOTELS_RECEPT_3D_TEXT_COLOR,
x_reception,
y_reception,
z_reception,
HOTELS_RECEPT_MAX_3D_TEXT_RANGE,
.attachedplayer = INVALID_PLAYER_ID,
.attachedvehicle = INVALID_VEHICLE_ID,
.testlos = 0,
.streamdistance = STREAMER_3D_TEXT_LABEL_SD,
.worlds = vw,
.interiors = interior_id
);

Nexius_Tailer
29.05.2020, 15:06
Дело в том, что преимущество пропуска через . над _ в том, что лучше указывать все параметры и просто оставлять их по дефолту, чтобы потом легче было изменять систему и не смотреть wiki (какие параметры за кем идут). Типа такого:


CreateDynamic3DTextLabelEx(
HOTELS_RECEPTION_3D_TEXT,
HOTELS_RECEPT_3D_TEXT_COLOR,
x_reception,
y_reception,
z_reception,
HOTELS_RECEPT_MAX_3D_TEXT_RANGE,
.attachedplayer = INVALID_PLAYER_ID,
.attachedvehicle = INVALID_VEHICLE_ID,
.testlos = 0,
.streamdistance = STREAMER_3D_TEXT_LABEL_SD,
.worlds = vw,
.interiors = interior_id
);

Но указывая каждый параметр стример в следующих версиях с гораздо большей вероятностью может:
а) поменять значение по умолчанию какого-то из параметров
б) удалить какой-то из параметров

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

Насчёт самой темы: использование динамических зон + Streamer_ToggleItemInvAreas (если нужно, чтобы пикап пропадал именно при входе в некую зону, в которой он находится, а не наоборот).

h3ckphy
29.05.2020, 17:16
Спасибо всем за ответы, разобрался:thank_you: