SA-MP Forums Archive
Инкогнито стример - удаление объектов - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Инкогнито стример - удаление объектов (/showthread.php?tid=607223)



Инкогнито стример - удаление объектов - Silicium - 16.05.2016

Есть функция, которая удаляет все объекты стримера:
PHP код:
DestroyAllDynamicObjects(); 
Если же использовать, например, цикл с удалением по одному объекту:
PHP код:
for(new start_numend_num; ++iDestoyDynamicObject(i); 
то удаляются не все объекты.
Вопрос следующий: нам нужно удалить не все объекты, а конкретный диапазон объектов, например с 228 по 1488 и циклом удаляет не все. И при повторной загрузке объектов получаются дублированные объекты (друг в друге).
Как быть?


Re: Инкогнито стример - удаление объектов - Mcc - 16.05.2016

Стример не при делах, скорее всего. А одной строки на скорую руку для демонстрации недостаточно. Быть может все что угодно. От сбитого порядка загрузки до дублирования еще на старте.


Re: Инкогнито стример - удаление объектов - Diman777 - 16.05.2016

Ты лучше кинь побольше кода, будет куда яснее.
Наверно нужно вот так делать, чтобы точно знать, что создалось, и что было удалено. Не проверял:
PHP код:
new object_id[32];
CreateObjectTest()
{
    for (new 
isizeof object_idi++)
    {
        
object_id[i] = CreateDynamicObject(...);
        if (
IsValidDynamicObject(object_id[i]))
        {
            
printf("object_id[%d] = %d успешно создан"iobject_id[i]);
        }
        else
        {
            
printf("object_id[%d] = %d не был создан"iobject_id[i]);
        }
    }
}
DestroyObjectTest()
{
    
// Пробуем удалять объекты в диапазоне 5-10
    
for (new 510k++)
    {
        if (
IsValidDynamicObject(object_id[k]))
        {
            
DestroyDynamicObject(object_id[k]);
            
printf("object_id[%d] = %d успешно удалён"kobject_id[k]);
        }
        else
        {
            
printf("object_id[%d] = %d не был удалён"kobject_id[k]);
        }
    }




Re: Инкогнито стример - удаление объектов - NotAdequate - 16.05.2016

Quote:

А одной строки на скорую руку для демонстрации недостаточно.

Чего вам не достаточно, гений? Речь о том, что большое кол-во объектов в стримере можно удалить функцией
Quote:

DestroyAllDynamicObjects();

а если ты будешь их удалять по циклу, например так:
Quote:

for(new i = 0; i < CountDynamicObjects(); ++i) DestoyDynamicObject(i);

То половина останется


Re: Инкогнито стример - удаление объектов - Mcc - 17.05.2016

Quote:
Originally Posted by NotAdequate
Посмотреть сообщение
Чего вам не достаточно, гений?
Кода загрузки объектов.

Quote:
Originally Posted by NotAdequate
Посмотреть сообщение
Речь о том, что большое кол-во объектов в стримере можно удалить функцией
а если ты будешь их удалять по циклу, например так:
Че правда?


Re: Инкогнито стример - удаление объектов - kaZax - 13.06.2016

Тебе нужно сохранять ID первого объекта и последнего.
После удалить этот отрезок когда тебе будет нужно.


Re: Инкогнито стример - удаление объектов - NotAdequate - 13.06.2016

Quote:

Тебе нужно сохранять ID первого объекта и последнего.
После удалить этот отрезок когда тебе будет нужно.

Так и делается. При большом количестве объектов удаляются не все


Re: Инкогнито стример - удаление объектов - eakwarp - 13.06.2016

Храните ID объектов в массиве, и удаляйте по этому массиву. Никак иначе.