Проблема c функцией стримера -
Salik - 05.08.2017
Хаю хай с вами Иван.. Ой не то, хеллоу почаны тут проблемка вышла с функцией стримера никак не могу понять как взять количество(count) объектов с указанной позиции, т.e функция -
PHP код:
Streamer_GetNearbyItems(X, Y, Z, type, items[], sizeof(items), 300.0);
т.e в тип вбиваю - STREAMER_TYPE_OBJECT
но как то странно мне что в items идет массив, показываю информацию принтом printf(..."", items)
Выводит 1 или вообще 0 что я делаю не так?
Re: Проблема c функцией стримера -
stabker - 05.08.2017
Скорее всего так:
PHP код:
new count;
for(new i; i < sizeof items && items[i] != 0; i++)
{
count++;
}
printf("%d", count);
Странно, конечно, что она просто не возвращает количество найденных предметов.
Re: Проблема c функцией стримера -
Salik - 05.08.2017
Quote:
Originally Posted by stabker
Скорее всего так:
PHP код:
new count;
for(new i; i < sizeof items && items[i] != 0; i++)
{
count++;
}
printf("%d", count);
Странно, конечно, что она просто не возвращает количество найденных предметов.
|
Неа вообще не то, вообще 0 эффекта.
Re: Проблема c функцией стримера -
Salik - 06.08.2017
Кто нибудь поможет, нет?
Re: Проблема c функцией стримера -
stabker - 06.08.2017
Quote:
Originally Posted by Salik
Кто нибудь поможет, нет?
|
PHP код:
for(new i; i < sizeof items; i++)
{
printf("%d", items[i]);
}
Если так сделать, то что выводит?
Re: Проблема c функцией стримера -
Salik - 08.08.2017
Разные вещи и то каждый раз почти рандом
Re: Проблема c функцией стримера -
stabker - 08.08.2017
Только что проверил, все работает как надо.
Re: Проблема c функцией стримера -
Salik - 08.08.2017
Можешь скинуть пример что-бы Объекты ловил.
Re: Проблема c функцией стримера -
stabker - 08.08.2017
Quote:
Originally Posted by Salik
Можешь скинуть пример что-бы Объекты ловил.
|
PHP код:
CreateDynamicObject(19500, 10000.0, 10000.0, 10000.0, 0, 0, 0);
CreateDynamicObject(19500, 10000.0, 10000.0, 10000.0, 0, 0, 0);
CreateDynamicObject(19500, 10000.0, 10000.0, 10000.0, 0, 0, 0);
new items[10] = { -1, ... }; //массив должен быть заполнен одинаковыми значениями (функция не обнуляет массив!), которые не могут быть идом предмета из стримера
Streamer_GetNearbyItems(10000.0, 10000.0, 10000.0, STREAMER_TYPE_OBJECT, items, sizeof items, 10.0);
new amount;
printf("Иды найденных объектов:");
for(; amount < sizeof items && items[amount] != -1; amount++) //-1 это значение, которым были забиты все ячейки массива
{
printf("%d", items[amount]);
}
printf("Всего найдено объектов: %d", amount);
Примерно так я тестил и все работало.
Re: Проблема c функцией стримера -
Salik - 08.08.2017
Это типа для 500 объектов массив на 500? Жесть получается какая-то...
--
Я хотел сделать функцию фриза с кол-вом объектов т.e (сколько объектов * 2 + пинг + 250) таймером фриз, получается нагруженной функцией для большого онлайна, т.e если в массиве перезапись идет то норм?
Re: Проблема c функцией стримера -
stabker - 08.08.2017
Quote:
Originally Posted by Salik
Это типа для 500 объектов массив на 500? Жесть получается какая-то...
--
Я хотел сделать функцию фриза с кол-вом объектов т.e (сколько объектов * 2 + пинг + 250) таймером фриз, получается нагруженной функцией для большого онлайна, т.e если в массиве перезапись идет то норм?
|
Оказывается, инфа в вики устарела (
https://github.com/samp-incognito/sa...gin/issues/225). Функция уже возвращает количество ВСЕХ предметов в радиусе, так что можете делать так:
PHP код:
new items[1];
new amount = Streamer_GetNearbyItems(10000.0, 10000.0, 10000.0, STREAMER_TYPE_OBJECT, items, sizeof items, 10.0);
//amount будет хранить количество объектов
если нужно просто получить их количество.
Re: Проблема c функцией стримера -
Salik - 09.08.2017
Воу воу воу, спасибо, теперь нужно сделать функцию фриза индивидуальной)