Перейти к содержанию
Демид

Удаление объектов через include

Рекомендуемые сообщения

Демид

Мне бы объяснить и ответить на один вопросик:D83DDE02:
Вопросик: Возможно ли удалить весь маппинг с сервера CRMP ( стоковый маппинг ) без лаунчера?
Проблема: я заливаю в include Remove.inc >> удаление объектов
Подключаю его через stock | в OnPlayerConnect пишу RemoveObject();

public OnGameModeInit()
RemoveObject();

stock RemoveObject()
{
	#include"../include/Mapping/Remove.inc"
}

У меня не удаляется маппинг с сервера...
В Remove.inc
 

#if defined _removeobject
#endinput   
#endif  
#define _removeobject
RemoveObject()
{
	MAPPING
return 1;
}

Так-же пробовал без данного кода

#if defined _removeobject
#endinput   
#endif  
#define _removeobject
RemoveObject()
{
return 1;
}

Мне банально выдавал ERROR по типу не существует playerid 
RemoveBuildingForPlayer(playerid, x, y ,z );

Пробовал так же вариацию добавить в stock LoadObject
Мне выдавал ERROR по типу не существует playerid 
RemoveBuildingForPlayer(playerid, x, y ,z );
Убирал playerid выдавал ERROR по типу не существует данного Float
Из за допольнительных координат но это бред их убирать...

Так же пробовал чисто добавить удаление маппинга в мод... OnPlayerConnect и потом пробовал в OnGameModeInt
У меня либо крашило при входе либо банально зависало на авторизаций. И просто 0 реакций от КРМП.. но картинки CRMP двигаются и проявляются..
Я как понял это из за того что много удалено.. но как выше написал в include у меня не получается залить нормально.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Функция RemoveBuildingForPlayer, как несложно догадаться из названия, удаляет объект для конкретного игрока, указанного переменной playerid. Чтобы поместить все вызовы в инклуде, в функцию RemoveObject нужно передавать id игрока, для которого удаляются объекты. Объекты удаляются для подключённых игроков. Вызывать RemoveBuildingForPlayer на пустые слоты бесполезно.

Игра может зависнуть из-за RemoveObjectForPlayer при двух ситуациях:

1) Некоторые объекты нельзя чисто удалить с сервера

2) Вы удаляете уже удалённый объект (т.е. либо RemoveBuildingForPlayer вызывается несколько раз, либо у Вас есть дупликаты этой функции)

Кстати говоря, судя по это строке

20 часов назад, Демид сказал:

RemoveBuildingForPlayer(playerid, x, y ,z );

Вы даже не заглянули в документацию:

RemoveBuildingForPlayer(playerid, modelid, Float:fX, Float:fY, Float:fZ, Float:fRadius)

В которой также указано, что на функцию существует ограничение в 1000 объектов/вызовов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Демид
2 часа назад, 16Shadows сказал:

Функция RemoveBuildingForPlayer, как несложно догадаться из названия, удаляет объект для конкретного игрока, указанного переменной playerid. Чтобы поместить все вызовы в инклуде, в функцию RemoveObject нужно передавать id игрока, для которого удаляются объекты. Объекты удаляются для подключённых игроков. Вызывать RemoveBuildingForPlayer на пустые слоты бесполезно.

Игра может зависнуть из-за RemoveObjectForPlayer при двух ситуациях:

1) Некоторые объекты нельзя чисто удалить с сервера

2) Вы удаляете уже удалённый объект (т.е. либо RemoveBuildingForPlayer вызывается несколько раз, либо у Вас есть дупликаты этой функции)

Кстати говоря, судя по это строке

Вы даже не заглянули в документацию:


RemoveBuildingForPlayer(playerid, modelid, Float:fX, Float:fY, Float:fZ, Float:fRadius)

В которой также указано, что на функцию существует ограничение в 1000 объектов/вызовов.

Я читал документацию, а эту строчку написал чисто как пример. 
 

RemoveBuildingForPlayer(playerid, x, y ,z );

По счёт 1000 объектов я как раз и спрашивал, возможно ли обойти это ограничение без лаунчера.
По счёт RemoveObject -  буду знать и попробую через эту функцию выполнить удаления.
По счёт зависания игры, спасибо учту эти моменты перепроверю удаления объектов :D83DDE0A:

Изменено пользователем Демид

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Думаю, ограничение в ~1000 вызовов нельзя обойти. Вы можете удалять объекты сразу по всей карте, но моделей всё-равно больше 1000.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.