- Регистрация
- 30 Мар 2019
- Сообщения
- 18
- Лучшие ответы
- 0
- Репутация
- 2
Приветствую всех специалистов! Нужна ваша помощь в легком вопросе.
К примеру, есть 500 зданий, которым необходимы разного рода пикапы.
Для хранения пикапов сделал я глобальную переменную такого типа, так как посчитал, что это наиболее простой и читаемый вариант.
То есть при загрузке сервера создаются пикапы таким образом:
(где i, грубо говоря передается номер, ID дома)
Но до этого момента все работает отлично, пикапы загружаются, все как и должно быть.
Проблема в другом! Как максимально грамотно и оптимизировано обратиться к какому либо пикапу?
Предположим, что мне нужно выполнить один код для всех 500 пикапов с индексом ENTER.
Я пробовал:
Но данное решение попросту не срабатывает. Когда я подбираю пикап, то на экране не высвечивается GameTextForPlayer. Тип пикапа 23, ну так на всякий случай.
Хотя я пробовал данный метод с одномерным массивом и там он работает на ура.
Наверняка причина в том, что все это дело хранится в массиве такого рода. Так вот, повторю вопрос. Какое есть стабильное и оптимизированное решение для этой ситуации? Каким образом лучше хранить pickupid или же как грамотно к ним обращаться? Еще думал про switch, так как начитался, что его хвалят за быстроту и т.д. Но он вообще с массивами не работает, вроде как. Так что я и не знаю, что мне делать. Очень сильно нужна ваша помощь, товарищи-мастера!
К примеру, есть 500 зданий, которым необходимы разного рода пикапы.
Для хранения пикапов сделал я глобальную переменную такого типа, так как посчитал, что это наиболее простой и читаемый вариант.
PHP:
enum landspickups
{
INFOTABLE,
ENTER,
ENTERGARAGE
}
new pu_lands[500][landspickups];
(где i, грубо говоря передается номер, ID дома)
PHP:
stock LoadPickups(i)
{
pu_lands[i][INFOTABLE] = CreateDynamicPickup(modelid, type, X, Y, Z, VW, INTR, PLRID, VIEWDIST);
pu_lands[i][ENTER] = CreateDynamicPickup(modelid, type, X, Y, Z, VW, INTR, PLRID, VIEWDIST);
}
Проблема в другом! Как максимально грамотно и оптимизировано обратиться к какому либо пикапу?
Предположим, что мне нужно выполнить один код для всех 500 пикапов с индексом ENTER.
Я пробовал:
PHP:
public OnPlayerPickUpDynamicPickup(playerid, pickupid)
{
if(pickupid >= pu_lands[0][ENTER] && pickupid <= pu_lands[499][ENTER])
{
GameTextForPlayer(playerid, "~r~Press ~w~[ALT] ~r~to enter", 1500, 1);
}
return 1;
}
Хотя я пробовал данный метод с одномерным массивом и там он работает на ура.
PHP:
public OnPlayerPickUpDynamicPickup(playerid, pickupid)
{
if(pickupid >= lumberPU[0] && pickupid <= lumberPU[2])
{
GameTextForPlayer(playerid, "~r~Press ~w~[ALT]", 1500, 1);
}
return 1;
}