DarkRP:CustomEntityFields:ru

From Official DarkRP Wiki
Jump to: navigation, search
This page is available in the following languages:
Данная версия страницы доступна на следующих языках:
Jarvis-flag 8010.png English | Russia-flag.png Русский

Создание собственных полей для Энтити

Вы можете создавать дополнительный поля для предметов и профессий в DarkRP. You can create custom entities in DarkRP. Но прежде чем Вы начнёте их добавлять, рекомендуем Вам ознакомиться со значением каждого из стандартных полей.

Пример Энтити со всеми полями

Это пример правильного заполнения.

DarkRP.createEntity("Тестовая Энтити", {
	ent = "money_printer",
	model = "models/props_c17/consolebox01a.mdl",
	price = 1000,
	max = 2,
	cmd = "buyexample",
	allowed = {TEAM_GUN, TEAM_MOB},
	customCheck = function(ply) return ply:GetUserGroup() == "donator" end,
	CustomCheckFailMsg = function(ply, entTable) return "Вы должны быть донат-игроком, чтобы приобрести это!" end,
	getPrice = function(ply, price) return ply:GetUserGroup() == "donator" and price * 0.9 or price end,
	getMax = function(ply) return ply:GetUserGroup() == "donator" and 10 or 2 end,
        spawn = function(ply, tr, tblEnt) return ents.Create("prop_physics") end, -- функция, которая переопределяет спаун для этой Энтити
        category = "Прочее", -- Название категории, в которой будет отображаться данный предмет. Учтите, что такая категория должна существовать!
        sortOrder = 100, -- Приоритет данного предмета; Чем ближе число к единице, тем выше предмет в списке
})

Описание полей


Заметка! Далее, слово Энтити будет трактоваться как предмет.

ent (необходимо)

Уникальный id предмета

model (необходимо)

Модель для предмет.

price (необходимо, если значение для getPrice не задано)

Цена за предмет.

max (необходимо, если значение для getMax не задано)

Устанавливает максимальное количество данного предмета, который может купить игрок.

cmd (необходимо)

В этом поле необходимо указать уникальное слово, написав которое, игрок сразу, без открытия меню, покупает этот предмет.
Пример: напишите в чат /buyexample, для того чтобы купить данный предмет.

cmd = "buyexample"

Заметка: Не нужно указывать символ "/" перед уникальным словом в поле cmd.

allowed

Профессии, которым доступна покупка этого предмета.
Если Вы не стали указывать значение для этого поля, то предмет будет доступен для покупки всем профессиям.

customCheck

Смотрите здесь примеры создания донат-профессий.

CustomCheckFailMsg

Сообщение, которое получает игрок, если он не имеет права на покупку. Может содержать либо строку, либо функцию function(ply, entTable).
Подробнее смотрите здесь.

getPrice (необходимо, если поле price не задано)

Установите в этом поле функцию, если Вы хотите, чтобы у донат-игроков была скидка на покупку предмета.
Эта функция вызывается, если:

  • Игрок покупает этот предмет.
  • Цена установлена в поле, если таковое есть.

Так как поле price передается в функцию, то в поле getPrice может быть использован в сочетании с полем цены. Это удобно, если Вы хотите изменит цену. Обратите внимание, что Вы всегда должны отправлять значение для функции в любом случае, даже если это всего лишь аргумент и цена при нём не изменится, так как эта функция перезаписывает поле с основной ценой.
Пример:

getPrice = function(ply, price) return ply:GetNWString("usergroup") == "donator" and price * 0.9 or price end

getMax (необходимо, если поле max не задано)

В этом поле устанавливается функция, которая получает значение максимального количества данного предмета, которое может купить игрок. Это очень удобно, если Вы хотите увеличить этот лимит для донат-игроков.
Эта функция срабатывает, если: игрок покупает этот предмет.

Если оба поля max и getMax заполнены, то скрипт приоритетным будет считать значение переменной getMax.

spawn

Используйте эту функцию, чтобы переопределить место спауна данного предмета. Эта функция должна возвращать именно предмет!

category

Категория, в которой будет находиться предмет. Заметка: Категория, в которую Вы хотите добавить предмет, должна обязательно существовать. Подробнее в статье добавление категорий.

sortOrder

Место в категории. Чем ближе значение этой переменной к единице, тем выше предмет будет находиться в списке. По-умолчанию, значение равно 100.