Difference between revisions of "DarkRP:CustomJobFields:ru"

From Official DarkRP Wiki
Jump to navigation Jump to search
m (Add RewriteRequired)
Line 62: Line 62:
  
 
== Описание полей ==
 
== Описание полей ==
'''color'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=color
Цвет никнейма/имени игрока в чате.
+
|type=Color
</div>
+
|description=Цвет никнейма/имени игрока в чате.
 +
|required=true
 +
}}
  
'''model'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=model
Модель для профессии, можно установить одну единственную, а можно несколько на выбор игрока; вот примеры:<br />
+
|type=string
 +
|type2=table
 +
|description=Модель для профессии, можно установить одну единственную, а можно несколько на выбор игрока; вот примеры:<br>
 
Как вы видите, у этой профессии будет одна моделька.
 
Как вы видите, у этой профессии будет одна моделька.
 
{{Code|1=model = "models/player/Group03/Female_01.mdl"}}
 
{{Code|1=model = "models/player/Group03/Female_01.mdl"}}
Line 77: Line 81:
 
"models/player/Group03/Female_01.mdl",
 
"models/player/Group03/Female_01.mdl",
 
"models/player/Group03/Female_02.mdl"
 
"models/player/Group03/Female_02.mdl"
}
+
}
 +
}}
 +
|required=true
 
}}
 
}}
</div>
 
  
'''description'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=description
Описание профессии отображается в меню, которое по умолчанию можно открыть на F4.
+
|type=string
</div>
+
|description=Описание профессии отображается в меню, которое по умолчанию можно открыть на F4.
 +
|required=true
 +
}}
  
'''weapons'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=weapons
Всё, что указанно в этом поле(в скобках), игрок получает при выборе профессии.
+
|type=table
 +
|description=Всё, что указанно в этом поле(в скобках), игрок получает при выборе профессии.
 
К примеру:
 
К примеру:
 
{{Code|1=weapons = {"arrest_stick", "unarrest_stick", "weapon_deagle2", "stunstick", "door_ram", "weaponchecker"}}}
 
{{Code|1=weapons = {"arrest_stick", "unarrest_stick", "weapon_deagle2", "stunstick", "door_ram", "weaponchecker"}}}
</div>
+
|required=true
 +
}}
  
'''command'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=command
Чат-команда для быстрого выбора профессии.<br />
+
|type=string
 +
|description=Чат-команда для быстрого выбора профессии.<br>
 
Пример: напишите /example в чат.
 
Пример: напишите /example в чат.
 
{{Code|1=command = "example"}}
 
{{Code|1=command = "example"}}
  
 
'''Заметка''': Ежели поле vote установлено на true(требуется голосование), то команду нужно вводить с префиксом "/vote", то есть: "/voteexmaple".
 
'''Заметка''': Ежели поле vote установлено на true(требуется голосование), то команду нужно вводить с префиксом "/vote", то есть: "/voteexmaple".
</div>
+
|required=true
 +
}}
  
'''max'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=max
Максимальное количество игроков, которые могут выбрать данную профессию.</br>
+
|type=number
 +
|description=Максимальное количество игроков, которые могут выбрать данную профессию.<br>
 
Можно указать вещественное число, например: 0.3, что означает - 30% от всех игроков.
 
Можно указать вещественное число, например: 0.3, что означает - 30% от всех игроков.
</div>
+
|required=true
 +
}}
  
'''salary'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=salary
Заработная плата.
+
|type=number
</div>
+
|description=Заработная плата, которую игрок будет получать через определённое время.
 +
|required=true
 +
}}
  
'''admin'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=admin
Кто может выбрать данную профессию.
+
|type=number
 +
|description=Устанавливает группу игроков, которым доступна данная профессия.
 
{{Code|1=
 
{{Code|1=
 
admin = 0 -- любой игрок
 
admin = 0 -- любой игрок
admin = 1 -- только админы
+
admin = 1 -- только администраторы
admin = 2 -- только супер админы
+
admin = 2 -- только супер-администраторы
 
}}
 
}}
 
 
Вы также можете настроить доступ к профессии определённой группе игроков(donator, vip и д.р.). Чтобы узнать как это сделать и увидеть пример, прокрутите страницу до описания поля '''customCheck'''.
 
Вы также можете настроить доступ к профессии определённой группе игроков(donator, vip и д.р.). Чтобы узнать как это сделать и увидеть пример, прокрутите страницу до описания поля '''customCheck'''.
</div>
+
}}
  
'''vote'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=vote
Требуется ли голосование для получения работы.</br>
+
|type=boolean
 +
|description=Требуется ли голосование для получения работы.<br>
 
true - да, false - нет.
 
true - да, false - нет.
</div>
+
}}
  
'''hasLicense'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=hasLicense
Выдаётся ли лицензия на оружие по умолчанию.</br>
+
|type=boolean
 +
|description=Выдаётся ли лицензия на оружие по умолчанию.<br>
 
true - да, false - нет.
 
true - да, false - нет.
</div>
+
}}
  
'''NeedToChangeFrom'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=NeedToChangeFrom
Требуется ли устроиться на одну профессию, для получения другой.</br>Пример: вы можете стать шефом полиции, если вы работаете полицейским:
+
|type=number
 +
|type2=table
 +
|description=Требуется ли устроиться на одну профессию, для получения другой.<br>Пример: вы можете стать шефом полиции, если вы работаете полицейским:
 
{{Code|1=NeedToChangeFrom = TEAM_POLICE}}
 
{{Code|1=NeedToChangeFrom = TEAM_POLICE}}
  
 
Пример: Вы можете стать мэром, если вы работаете шефом полиции/полицейским
 
Пример: Вы можете стать мэром, если вы работаете шефом полиции/полицейским
 
{{Code|1=NeedToChangeFrom = {TEAM_CHIEF, TEAM_POLICE} }}
 
{{Code|1=NeedToChangeFrom = {TEAM_CHIEF, TEAM_POLICE} }}
</div>
+
}}
  
'''customCheck'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=customCheck
Подробнее на этой странице http://wiki.darkrp.com/index.php/DarkRP-Config
+
|type=function
</div>
+
|description=Подробнее на [http://wiki.darkrp.com/index.php/Donator_Job_configuration этой странице].<br>
 +
Аргументы функции:
 +
* {{Type|Player}} ply
 +
}}
  
'''CustomCheckFailMsg'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=CustomCheckFailMsg
Сообщение, которое увидит игрок, если условие, указанное в customCheck, является ложным, неистинным(возвращает false).</br>
+
|type=string
Пример, который можно найти в коде выше, работает следующим образом: он осуществляет проверку кошелька игрока и если там есть сумма больше 10000, то вы сможете выбрать эту профессии, в ином случае, выводится сообщение, указанное в этом поле.
+
|type2=function
</div>
+
|description=Сообщение, которое увидит игрок, если условие, указанное в customCheck, является ложным, неистинным(возвращает false).<br>
 +
Пример, который можно найти в коде выше, работает следующим образом: он осуществляет проверку кошелька игрока и если там есть сумма больше 10000, то вы сможете выбрать эту профессии, в ином случае, выводится сообщение, указанное в этом поле.<br>
 +
Функция имеет следующие аргументы:
 +
* {{Type|Player}} ply
 +
* {{Type|table}} jobTable
 +
}}
  
'''modelScale'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=modelScale
Масштаб модели игрока.
+
|type=number
{{Code|1=modelScale = 1 -- 100% - по молчанию
+
|description=Масштаб модели игрока.
 +
{{Code|1=modelScale = 1 -- 100% - по умолчанию
 
modelScale = 1.2 -- 120%
 
modelScale = 1.2 -- 120%
 
modelScale = 0.9 -- 90%.
 
modelScale = 0.9 -- 90%.
 
}}
 
}}
 
 
'''Рекомендуем сильно не изменять данное значение, так как это может привести к тому, что игроки не смогут нормально прыгать и приседать.'''
 
'''Рекомендуем сильно не изменять данное значение, так как это может привести к тому, что игроки не смогут нормально прыгать и приседать.'''
</div>
+
}}
  
'''maxpocket'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=maxpocket
Количество предметов, которые может поместить в карман игрок, имея данную профессию. Если это поле не установлено, то будет использоваться стандартное значение из config.lua, значение которого равно 10.
+
|type=number
</div>
+
|description=Количество предметов, которые может поместить в карман игрок, имея данную профессию. Если это поле не установлено, то будет использоваться стандартное значение из config.lua, значение которого равно 10.
 +
}}
  
'''maps'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=maps
Это поле отвечает за отображение профессии в списке доступных на определённых картах.
+
|type=table
</div>
+
|description=Это поле отвечает за отображение(доступность) профессии в списке доступных на определённых картах.
 +
}}
  
'''candemote'''
+
{{Field
<div style="margin-left: 16px; margin-bottom: 8px;">
+
|name=candemote
Отвечает за возможность понижения игрока, который выбрал данную профессию, в должности до гражданина.</br>
+
|type=boolean
 +
|description=Отвечает за возможность понижения игрока, который выбрал данную профессию, в должности до гражданина.<br>
 
true - могут, false - не могут
 
true - могут, false - не могут
</div>
+
}}
 +
 
 +
{{Field
 +
|name=mayor
 +
|type=boolean
 +
|description=Если истинно, то игроки, имеющие данную профессию, получают те же права(включение комендантского часа, например), что и мэр.
 +
}}
 +
 
 +
{{Field
 +
|name=chief
 +
|type=boolean
 +
|description=Если истинно, то игроки, имеющие данную профессию, получают те же права(выдача лицензий, например), что и шеф полиции.
 +
}}
 +
 
 +
{{Field
 +
|name=medic
 +
|type=boolean
 +
|description=Если истинно, то игроки, имеющие данную профессию, получают те же права, что и медик.
 +
}}
 +
 
 +
{{Field
 +
|name=cook
 +
|type=boolean
 +
|description=Если истинно, то игроки, имеющие данную профессию, получают те же права, что и повар.
 +
}}
 +
 
 +
{{Field
 +
|name=hobo
 +
|type=boolean
 +
|description=Если истинно, то игроки, имеющие данную профессию, получают те же права(отсутствие заработной платы, например), что и бездомный.
 +
}}
 +
 
 +
{{Field
 +
|name=ammo
 +
|type=table
 +
|description=Получают амуницию(патроны).<br>
 +
 
 +
Индекс в этой этой таблице - название сорта патрон(pistol, например), а числовое значение - количество.
 +
}}
 +
 
 +
{{Field
 +
|name=category
 +
|type=string
 +
|description=Категория, к которой принадлежит профессия.<br>
 +
 
 +
ЗАМЕТКА: Выдаст ошибку, если установлена несуществующая категория. Руководство по их созданию, можно найти [[DarkRP:Categories:ru|на этой странице]].
 +
}}
 +
 
 +
{{Field
 +
|name=sortOrder
 +
|type=number
 +
|description=Позиция профессии в списке. Меньшее значение(например единица), заставит её отображаться в начале списка. По умолчанию, если ничего не установлено, поле имеет значение равное 100.
 +
}}
  
 
== Более продвинутые поля ==
 
== Более продвинутые поля ==

Revision as of 09:06, 5 February 2017

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


Минуточку внимания, пожалуйста!

Данная страница может не соответствовать английской версии и, как следствие, возможно, содержать неполную или неточную информацию.

Мы рекомендуем вам обратиться к английской версии данной страницы, во избежание возможных неурядиц.

В скором времени страницы, помеченные такой табличкой, будут переписаны, либо дополнены.

Создание профессий

Вы можете создавать собственные профессии, и эта страница посвящена разбору всех тонкостей их создания.

Пример со всеми возможными полями

Вот пример с использованием всех возможных полей:

TEAM_Example = DarkRP.createJob("Торговец", {
	color = Color(255, 255, 255, 255),
	model = {
		"models/player/Group03/Female_01.mdl",
		"models/player/Group03/Female_02.mdl"
		},
	description = [[Описание профессии.]],
	weapons = {"weapon_p2282"},
	command = "example",
	max = 3, -- Максимальное количество игроков - 3. Кстати, вы можете указать вещественно число, например 0.7. Это более удобный подход, так как количество свободных мест на данную вакансию станет зависимым от числа онлайн игроков на сервере.
	salary = 45,
	admin = 0,
	vote = false,
	hasLicense = false,

	-- Необязательные поля
	NeedToChangeFrom = TEAM_CITIZEN,
	customCheck = function(ply) return ply:getDarkRPVar("money") > 10000 end,
	CustomCheckFailMsg = "Вам не хватает денег!",
	modelScale = 1.2,
	maxpocket = 20,
	maps = {"rp_downtown_v2", "gm_construct"},
        candemote = false,
        mayor = false,
        chief = false,
        medic = false,
        cook = false,
        hobo = false,
        ammo = {
		["pistol"] = 60,
	},
        category = "Other",
        sortOrder = 100,

        playerClass = "player_darkrp",
	CanPlayerSuicide = function(ply) return false end,
	PlayerCanPickupWeapon = function(ply, weapon) return true end,
	PlayerDeath = function(ply, weapon, killer) end,
	PlayerLoadout = function(ply) return true end,
	PlayerSelectSpawn = function(ply, spawn) end,
	PlayerSetModel = function(ply) return "models/player/Group03/Female_02.mdl" end,
	PlayerSpawn = function(ply) end,
	PlayerSpawnProp = function(ply, model) end,
        RequiresVote = function(ply, job) for k,v in pairs(player.GetAll()) do if IsValid(v) and v:IsAdmin() then return false end end return true end, -- Люди делают голосование, когда нет администраторов
	ShowSpare1 = function(ply) end,
	ShowSpare2 = function(ply) end,
        OnPlayerChangedTeam = function(ply, oldTeam, newTeam) end,
        canStartVote = function(ply) return ply:Distance(SomeNPC) < 200 end,
        canStartVoteReason = "You must be close to some NPC",
        buttonColor = Color(255, 255, 255, 255),
        label = "Выбрать это!",
})

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

color (Color) (required)

Цвет никнейма/имени игрока в чате.

model (string/table) (required)

Модель для профессии, можно установить одну единственную, а можно несколько на выбор игрока; вот примеры:
Как вы видите, у этой профессии будет одна моделька.

model = "models/player/Group03/Female_01.mdl"

А здесь вам будет предложен выбор модели.

model = {
		"models/player/Group03/Female_01.mdl",
		"models/player/Group03/Female_02.mdl"
}

description (string) (required)

Описание профессии отображается в меню, которое по умолчанию можно открыть на F4.

weapons (table) (required)

Всё, что указанно в этом поле(в скобках), игрок получает при выборе профессии. К примеру:

weapons = {"arrest_stick", "unarrest_stick", "weapon_deagle2", "stunstick", "door_ram", "weaponchecker"
}

command (string) (required)

Чат-команда для быстрого выбора профессии.
Пример: напишите /example в чат.

command = "example"

Заметка: Ежели поле vote установлено на true(требуется голосование), то команду нужно вводить с префиксом "/vote", то есть: "/voteexmaple".

max (number) (required)

Максимальное количество игроков, которые могут выбрать данную профессию.
Можно указать вещественное число, например: 0.3, что означает - 30% от всех игроков.

salary (number) (required)

Заработная плата, которую игрок будет получать через определённое время.

admin (number)

Устанавливает группу игроков, которым доступна данная профессия.

admin = 0 -- любой игрок
admin = 1 -- только администраторы
admin = 2 -- только супер-администраторы

Вы также можете настроить доступ к профессии определённой группе игроков(donator, vip и д.р.). Чтобы узнать как это сделать и увидеть пример, прокрутите страницу до описания поля customCheck.

vote (boolean)

Требуется ли голосование для получения работы.
true - да, false - нет.

hasLicense (boolean)

Выдаётся ли лицензия на оружие по умолчанию.
true - да, false - нет.

NeedToChangeFrom (number/table)

Требуется ли устроиться на одну профессию, для получения другой.
Пример: вы можете стать шефом полиции, если вы работаете полицейским:

NeedToChangeFrom = TEAM_POLICE

Пример: Вы можете стать мэром, если вы работаете шефом полиции/полицейским

NeedToChangeFrom = {TEAM_CHIEF, TEAM_POLICE}

customCheck (function)

Подробнее на этой странице.
Аргументы функции:

CustomCheckFailMsg (string/function)

Сообщение, которое увидит игрок, если условие, указанное в customCheck, является ложным, неистинным(возвращает false).
Пример, который можно найти в коде выше, работает следующим образом: он осуществляет проверку кошелька игрока и если там есть сумма больше 10000, то вы сможете выбрать эту профессии, в ином случае, выводится сообщение, указанное в этом поле.
Функция имеет следующие аргументы:

modelScale (number)

Масштаб модели игрока.

modelScale = 1 -- 100% - по умолчанию 
modelScale = 1.2 -- 120%
modelScale = 0.9 -- 90%.

Рекомендуем сильно не изменять данное значение, так как это может привести к тому, что игроки не смогут нормально прыгать и приседать.

maxpocket (number)

Количество предметов, которые может поместить в карман игрок, имея данную профессию. Если это поле не установлено, то будет использоваться стандартное значение из config.lua, значение которого равно 10.

maps (table)

Это поле отвечает за отображение(доступность) профессии в списке доступных на определённых картах.

candemote (boolean)

Отвечает за возможность понижения игрока, который выбрал данную профессию, в должности до гражданина.
true - могут, false - не могут

mayor (boolean)

Если истинно, то игроки, имеющие данную профессию, получают те же права(включение комендантского часа, например), что и мэр.

chief (boolean)

Если истинно, то игроки, имеющие данную профессию, получают те же права(выдача лицензий, например), что и шеф полиции.

medic (boolean)

Если истинно, то игроки, имеющие данную профессию, получают те же права, что и медик.

cook (boolean)

Если истинно, то игроки, имеющие данную профессию, получают те же права, что и повар.

hobo (boolean)

Если истинно, то игроки, имеющие данную профессию, получают те же права(отсутствие заработной платы, например), что и бездомный.

ammo (table)

Получают амуницию(патроны).

Индекс в этой этой таблице - название сорта патрон(pistol, например), а числовое значение - количество.

category (string)

Категория, к которой принадлежит профессия.

ЗАМЕТКА: Выдаст ошибку, если установлена несуществующая категория. Руководство по их созданию, можно найти на этой странице.

sortOrder (number)

Позиция профессии в списке. Меньшее значение(например единица), заставит её отображаться в начале списка. По умолчанию, если ничего не установлено, поле имеет значение равное 100.

Более продвинутые поля

CanPlayerSuicide

Эта функция решает, что будет с игроком смерти на этой работе.
Аргументы: Player ply

PlayerCanPickupWeapon

Эта функция решает, какое оружие может подобрать игрок с этой профессией.
Аргументы: Player ply, Entity weapon

PlayerDeath

Эта функция срабатывает, когда игрок умирает.
Аргументы: Player ply, Entity weapon, Entity killer

PlayerLoadout

Эта функция срабатывает, когда игрок получает своё оружие. Return true to prevent him from getting his default weapons!
Аргументы: Player ply

PlayerSelectSpawn

Эта функция срабатывает, если у игрока есть своя точка Спауна.
Аргументы: Player ply, Entity spawn

PlayerSetModel

Функция, которая решает какая модель должна быть у игрока. Всегда возвращает строку с моделью текущей работы пользователя.
Аргументы: Player ply

PlayerSpawn

Эта функция срабатывает, когда пользователь спаунится.
Аргументы: Player ply

PlayerSpawnProp

Эта функция срабатывает, когда пользователь спаунит пропы.
Аргументы: Player ply, string model

RequiresVote

Функция отвечает вот за что, Должен ли игрок делать голосование, чтобы устроиться на работу. Внимание: если установлено это поле, то поле vote не срабатывает. (Точнее не имеет смысла использовать поле vote)
Аргументы: Player ply
Номер группы. (Не используйте название команды TEAM_НАЗВАНИЕ ПРОФЕСИИ, так как это работать не будет!)
Пример:

ОписаниеПоявляется голосование, если людей с такой профессией более 3, но голосование исчезает если людей с такой профессией меньше 3.
Код Lua
RequiresVote = function(ply, job) return #team.GetPlayers(job) >= 3 end

Другой пример:

ОписаниеВ этом коде, только V.I.P игроки, могут устроиться на работу без голосования.
Код Lua
RequiresVote = function(ply, job) return ply:GetNWString("usergroup") ~= "vip" end


ShowSpare1

Вызывается, когда игрок нажимает F1
Аргументы: Player ply

ShowSpare2

Вызывается, когда игрок нажимает F2
Аргументы: Player ply