02:32
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: Dima-kun  
[Include] RemoveBuilding
FiLEДата: Воскресенье, 01.01.2012, 18:08 | Сообщение # 1
Группа: Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус:
RemoveBuilding
Global "RemoveBuildingForPlayer"


Уважаемые пользователи SAMP!
Я с радостью хочу представить вам функцию "RemoveBuilding" (Удаление Стандартных Обьектов Игры)

Инструкция:

В последнее время игроки на моем сервере просили создавать постройки на участках карты, где это было невозможно раньше, но теперь реально с функцией RemoveBuildingForPlayer.
Я еще не использовал эту функцию на своем сервере и мне было интересно, чтобы лучше всего применить эту функцию для всех игроков, независимо от того, сейчас они на сервере или только зашли. Моим решением было использование инклуда (include)!

Короче говоря: этот инклуд устраняет необходимость использования RemoveBuildingForPlayer для всех игроков (используя цикл), а также избавляет от необходимости вызова этой функции когда игрок соединяется с сервером. Этот инклуд также создает такие функции как: 'RestoreBuilding' и 'RemoveSpecificBuilding'

Функции:

RemoveBuilding

Code
RemoveBuilding(modelid, Float:oX, Float:oY, Float:oZ, Float:oRadius = 0.25, Float:orX = 0.0, Float:orY = 0.0, Float:orZ = 0.0)


Эта функция такая-же как и RemoveBuildingForPlayer, но в ней нету параметра "playerid". Она помещает обьект в глобальный массив (в пределах инклуда) и удаляет его для всех подключенных игроков. Если игрок заходит на сервер, даже после использования этой функции, то все равно функция удаления для этого игрока срабатывает. В этом инклуде указание радиуса не является обязательным. Вы просто можете сделать

Code
RemoveBuilding(modelid, x, y, z);


и эта функция будет работать прекрасно. Эта функция также имеет возможность вращения координат объектов. Если вы хотите использовать 'RestoreBuilding' в какой-то момент, то Вы должны указать её. Эта функция возвращает 'slotid' который является массивом слотов данных, которые сохранятся после вызова этой функции. Если Вы хотите вызвать RestoreBuilding для конкретного объекта, Вы должны сохранить в переменной, что возвращает эта функция. Соблюдайте:

Code
new rem_obj = RestoreBuilding(modelid, x, y, z, radius, rx, ry, rz);


Чтобы удалить здание точно, то вам нужно указать координаты вращения.

RemoveSpecificBuilding

Code
RemoveSpecificBuilding(modelid)


С помощью этой функции вы можете просто указать 'modelid' для удаления объекта по всей карте. Она возвращает 'slotid' для данного конкретного объекта, однако Вы не можете восстановить объекты после этой функции, т.к. не даются координаты.

RestoreBuilding

Code
RestoreBuilding(slotid)


Эта функция позволяет восстановить конкретное здание, которое было удалено с помощью функции RemoveBuilding. Вы должны указать 'slotid', которое возвращает функция RemoveBuilding. Функция RestoreBuilding будет заново создавать объект с помощью функции SAMP CreateObject. Как это работает:

Code
new RemoveObjectVar;

public OnFilterScriptInit()
{
      RemoveObjectVar = RemoveBuilding(1697, 236.9922, 1835.3438, 23.2344, 0.25, 356.8584, 0.0000, -0.7854);
}

CMD:restore(playerid, params[])
{
      #pragma unused params
      RestoreBuilding(RemoveObjectVar);
      return SendClientMessage(playerid, COLOUR_GREEN, "The static object has been restored."), 1;
}


CountRemovedObjects

Code
CountRemovedObjects()


Эта функция возвращает, сколько было уничтожено объектов функцией "RemoveBuilding"

Установка

Вам нужно будет скачать инклуд (и скопировать в pawno > includes). Ссылка для скачивания расположена ниже в статъе.

Code
#include <removebuilding> //Example


По умолчанию "лимит удаляемых объектов" = 100. Если хотите увеличить, то редактируйте инклуд.

Code
#define MAX_REMOVED_OBJECTS 500
#include <removebuilding>


Помните, чем выше число - больше массив и больше потребления памяти.

После этого можно приступить к использованию "RemoveBuilding". Вам нужно будет изменить строки RemoveBuildingForPlayer на RemoveBuilding и тогда все будет правильно.

Ошибки\Вопросы

Ошибки и вопросы, список обновлений, исправлений смотрите в источнике.

Заключение:
Я тестировал этот скрипт, и могу подтвердить, что он работал отлично для меня. Я еще не тестировал его на публичном сервере, и поэтому скрипт не был полностью протестирован., хотя и должен работать прекрасно. Если у Вас возникли вопросы, не стесняйтесь спрашивать!



Переведено - FiLE --Источник статьи--
Переведено на скорую руку, все ошибки и корректировки статьи указывайте, исправим.

Прикрепления: removebuilding.inc (2.0 Kb)





Сообщение отредактировал FiLE - Воскресенье, 01.01.2012, 18:13
Kw33ckДата: Воскресенье, 01.01.2012, 20:16 | Сообщение # 2
Местный
Группа: Продвинутые
Сообщений: 620
Награды: 8
Город: Empire Bay
Репутация: 1405
Замечания: 60%
Статус:
Чето опять все функции сампа дорабатываются скриптизёрами...


>>> Внимание: GTA 5 Online на пиратке! <<<

>>> Внимание: Mafia 2 Multiplayer ВКонтакте! <<<

Мои завистники:
1 место - Eakwarp (постоянная зависть в сторону моих успехов и уровня развития) - Стаж > 4х лет!
2 место - PeRaN (подлиза, признавшая моё превосходство, но не желающая что-либо исправлять по моим советам) - Стаж > 3х лет!
3 место - Тут можешь оказаться ты!
JasonGordonДата: Среда, 24.05.2017, 23:48 | Сообщение # 3
Уверенный в себе
Группа: Продвинутые
Сообщений: 190
Награды: 0
Город: Париж
Репутация: 100
Замечания: 0%
Статус:
Сколько всего объектов можно удалить с помощью "RemoveBuilding"? Больше 1000 можно?
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua