PDA

Просмотр полной версии : [Вопрос] Как сделать проверку на массив на никнейм и текст в целом



Salik_Davince
23.05.2019, 19:36
Я наверное не правильно изложил вопрос, но суть состоит в том что есть - система, в ней задействован 3D текст, он прикреплен к n координатам, если кто либо заходит в стрим n координат, то 3D текст обновляется и вписывает его ник, т.e -


1. Salik зашел в стрим в 19-00
2. Deimos зашел в стрим в 20-00
3. Antonio зашел в стрим в 21-32

Но проблема заключается вот в чем, то ли я делаю костыли, то ли что то недодумываю, но игрок который выходит из стрима должен так же и убиратся с 3D текста, т.e вышел Salik - убрался текст "1. Salik зашел в стрим в 19-00", то должно быть Deimos встает на 1 номер, и так же если вышел Deimos то убрать текст из массива, и сделать 2м номером Antonio, думаю вы меня поняли, хотелось бы увидеть примерную реализацию/код с вашей стороны, спасибо.

DeimoS
23.05.2019, 21:52
new Iterator:PlayersInStreamZone<MAX_PLAYERS>;
new PlayersInStreamZoneEnterTime[MAX_PLAYERS];


//При входе в зону:
Iter_Add(PlayersInStreamZone, playerid);
PlayersInStreamZoneEnterTime[playerid] = gettime();
foreach(new i: PlayersInStreamZone)
{
//Форматируем список игроков для 3d текста
}
UpdateDynamic3dTextLabel(...);// Обновляем 3d текст


//При выходе из зоны:
Iter_Remove(PlayersInStreamZone, playerid);
foreach(new i: PlayersInStreamZone)
{
//Форматируем список игроков для 3d текста
}
UpdateDynamic3dTextLabel(...);// Обновляем 3d текст

Всё

ihNNNNNify
25.05.2019, 21:02
public OnGameModeInit()
{
Iter_Init(PlayersInStreamZone);
return 1;
}

DeimoS
25.05.2019, 21:28
public OnGameModeInit()
{
Iter_Init(PlayersInStreamZone);
return 1;
}

Итератор имеет одну меру, так что это не требуется. Если бы было, например:
new Iterator:PlayersInStreamZone[4]<MAX_PLAYERS>;
тогда да, нужно было бы инициализировать.