Params

Параметры (поля, свойства, опций, характеристики) - это величины, которые как-либо меняют поведение работы.

• Общие параметры

name        = 'Имя',        -- Название работы
command     = 'example',    -- Чатовая команда для вступления в работу
category    = 'Категория',  -- Категория работы
description = 'Desc',       -- Описание работы
from        = 'TEAM_MAFIA', -- С какой работы (класса) доступна нынешняя работа? Старый аналог: NeedToChangeFrom
material    = '',           -- Материал модельки игрока, если пустая строка, без материала
map         = 'rp_bloha',   -- Карта, на которой можно устроиться на эту работу
has_weapon  = 'scp_card1',  -- Оружие, которое должен иметь игрок, чтобы устроиться на эту работу

color       = Color(255,0,0),       -- Цвет работы и модельки игрока, если модель позволяет выбрать ей цвет
color_model = Color( 0, 255, 0 ),   -- Цвет полного перекрашивания модели игрока

max                     = 4,    -- Максимум кол-во игроков в работе. 0 - бесконечно, 0.1 и любые дробные значения - это проценты
money                   = 0,    -- Необходимое кол-во денег у игрока для вступления на работу. Деньги тратятся!
admin                   = 1,    -- Админ доступ: 0 - все ранги, 1 - админские ранги, 2 - суперадминские ранги
order                   = 100,  -- Степень превосходства среди других работ, нужно для отсортировки в менюшках
delay                   = 600,  -- Задержка в секундах на устройство на любую работу
block                   = 60,   -- Блок в секундах на устройство на эту работу
hp                      = 4000, -- Здоровье, также есть health
max_hp                  = 4000, -- Максимальное здоровье, также есть max_health
armor                   = 255,  -- Броня
max_armor               = 255,  -- Максимальное количество брони
salary                  = 0,    -- Зарплата
doors_max               = 10,   -- Максимальное количество дверей, которые может купить игрок этой работы
skin                    = 0,    -- Скин модельки при спавне
model_scale             = 1,    -- Размер модельки игрока
walkspeed               = 280,  -- Скорость ходьбы
runspeed                = 590,  -- Скорость бега
maxspeed                = 590,  -- Максимальная скорость передвижения
slowwalkspeed           = 590,  -- Скорость медленной ходьбы
duckspeed               = 0.1,  -- ???, только дробные значения от 0 до 1
unduckspeed             = 0.1,  -- ???
crouchedspeed           = 1,    -- Скорость передвижения сидя, не работает с больше единицы
ladderclimbspeed        = 100,  -- Скорость подъёма по лестнице
jumppower               = 600,  -- Сила прыжка
damage                  = 10,   -- Сколько всего (за любое оружие) игрок нанесёт урона по другому игроку?
add_damage              = 10,   -- Сколько всего (за любое оружие) игрок добавит урона по текущему урону по другому игроку?
multiply_damage         = 10,   -- Сколько всего (за любое оружие) игрок умножит урона на текущий урон по другому игроку?
take_damage             = 0,    -- Сколько урона получит игрок этой работы от другого игрока?
take_add_damage         = 0,    -- Сколько добавленного урона получит игрок этой работы от другого игрока?
take_multiply_damage    = 1,    -- Сколько умноженного урона получит игрок этой работы от другого игрока?

vote               = false, -- Нужно голосование?
mayor              = false, -- Это профессия мэра?
police             = false, -- Это профессия полицейского?
god                = false, -- Игрок бессмертен?
demote             = false, -- Можно уволить игрока?
license            = false, -- Будет настоящая лицензия на оружия при спавне?
fake_license       = false, -- Будет фейковая лицензия на оружия при спавне?
block_user         = true,  -- Запретить для ранга user?
block_admin        = false, -- Запретить для админских рангов?
can_buy_door       = false, -- Игрок может купить двери?
can_arrest         = false, -- Игрока можно арестовать?
can_wanted         = false, -- Игрока могут подать в розыск?
can_warrant        = false, -- На игрока могут подать ордер на обыск?
can_buy_door       = true,  -- Игрок может купить двери?
can_join_command   = true,  -- Игрок может присоединиться через чатовую команду?
can_pickup_weapons = false, -- Игрок может подбирать/взять какое либо оружие?
can_buy_shop_item  = true,  -- Игрок может купить предмет в магазине (энтити, оружие, ящик и т.д)?
can_buy_sell_item  = true,  -- Игрок может продавать предмет из магазина?
demote_after_death = true,  -- Игрок после смерти потеряет профессию? Станет на стандартную!

spawns = { -- Таблица со спавнами, внутри неё по порядку таблицы, где есть pos и ang, map необязателен
    { map = 'rp_bangclaw', pos = Vector( 3983, 72, -270 ), ang = Angle( 0, -90, 0 )},
    { map = 'rp_bangclaw', pos = Vector( 0, 0, 0 ), ang = Angle( 0, -90, 0 )},
},

from_jobs = { -- Список доступных работ для перехода на эту работу
    'TEAM_MAFIA1',
    'TEAM_MAFIA2',
    'TEAM_MAFIA3',
}

models = { -- Модельки игрока
    'models/bloodletter1.mdl' 
},

weapons = { -- Таблица с оружием при спавне
    'weapon_fists', 
    'arccw_ak47' 
}, 

ammo = { -- Таблица с патронами, где ключи это ID патронов, а значение это количество патронов
    [ 14 ] = 9999,
    [ 1 ] = 64,
}

bodygroups = {  -- Таблица с бодигруппами, ключи и значения всегда числа!
    [ 0 ] = 1,
    [ 1 ] = 4,
},

maps = { -- Таблица с картами, которые позволять устроиться на эту работу
    'rp_simpleclaw_alpha',
    'rp_simpleclaw',
}

has_weapons = { -- Таблица с оружием, которое нужно для вступления на работу
    'scp_card1',
    'scp_card2',
    'scp_card3',
},

whitelist_steamid = { -- Таблица со SteamID людей, которые могут вступить на работу
    [ 'STEAM_0:1:95303327' ] = true,
},

whitelist_steamid64 = { -- Таблица со SteamID64 людей, которые могут вступить на работу
    [ '76561198150872383' ] = true,
},

whitelist_ranks = { -- Таблица со User Group (Ранги) людей, которые могут вступить на работу
    [ 'user' ] = false,
    [ 'vip' ] = true,
    [ 'moder' ] = true,
    [ 'admin' ] = true,
    [ 'superadmin' ] = true,
},

whitelist_nicks = { -- Таблица с никами людей, которые могут вступить на работу
    [ 'Titanovsky' ] = true,
},

whitelist_models = { -- Таблица с никами людей, которые могут вступить на работу
    [ 'models/player/Group03m/male_07.mdl' ] = true,
},

whitelist_colors = { -- Таблица с никами людей, которые могут вступить на работу
    [ Color( 255, 0, 0 ) ] = true,
    [ Color( 0, 255, 0 ) ] = true,
    [ Color( 0, 0, 255 ) ] = true,
},

check = { -- Таблица с подтаблицами для простой проверкой: 1 - это параметр игрока, 2 - это нужное значение (если число, то должно быть больше или равно), 3 - причина отказа
    { 'level', 10, 'Вам нужен 10+ уровень для этой работы!' },
    { 'mana', 200, 'Для этого чародейство необходим 200 или выше маны!' },
    { 'nw_power', 100500, 'Вам нужно дофига силёнок!' },
    { 'is_arrested', false, 'Вы не должны быть в тюрьме!' },
    { 'tag', 'плохиш', 'У вас должен быть тег: плохиш' },
}

• Функциональные параметры

-- В аргументах первый символ с маленькой буквы и обозначает тип данных
-- e - Entity, b - Bool, n - Number, c - Color, v - Vector, a - Angle. Например: ePly - игрок, tWeapon - таблица оружия
-- Здесь указано чётко, что может возвращать метод, а что не может.
-- Все хуки работают ТОЛЬКО на сервере.

PlayerSpawn = function( ePly ) return end, -- Срабатывает при каждом спавне игрока
CanPlayerSuicide = function( ePly ) return false end, -- Можно суициднуться с помощью kill?
PlayerCanPickupWeapon = function( ePly, eWeapon ) return true end, -- Можно подбирать оружие?
PlayerDeath = function( ePly, eInflictor, eAttacker ) return end, -- Срабатывает при смерти игрока
PlayerLoadout = function( ePly ) return end, -- Срабатывает при выдаче оружия. ВАЖНО! У ДаркРП своя выдача оружия, используйте хук '[Ambi.DarkRP.PlayerLoadout]'
PlayerSelectSpawn = function( ePly, bTransition ) return end, -- ??? Что-то из sandbox, может не работать в новом ДаркРП
PlayerSetModel = function( ePly ) return end, -- ??? Что-то из sandbox, может не работать в новом ДаркРП 
ShowHelp = function( ePly ) return end, -- Вызывается при нажатий F1
ShowTeam = function( ePly ) return end, -- Вызывается при нажатий F2
ShowSpare1 = function( ePly ) return end, -- Вызывается при нажатий F3
ShowSpare2 = function( ePly ) return end, -- Вызывается при нажатий F4
PlayerChangedTeam = function( ePly, nIndexOldTeam, nIndexNewTeam ) return end, -- Вызывается при смене команды
PlayerSwitchFlashlight = function( ePly, bEnabled ) return true end, -- Можно игроку сменить состояние фонарика (вкл/выкл)?
CanPlayerEnterVehicle = function( ePly, eVehicle, nRole ) return false end, -- Можно игроку сесть в транспортное средство?
CanPlayerUnfreeze = function( ePly, eObj, physicObj ) return true end, -- Можно игроку расфризить предмет?
PlayerCanHearPlayersVoice = function( eListener, eTalker ) return true, false end, -- Может игрок слышать другого игрока? Второй значение возвращает должен ли звук быть 3D?
PlayerSay = function( ePly, sText, bTeamChat ) return '' end, -- Игрок может написать в чат? Если метод вернёт пустую строку, игрок ничего не напишет в чат
PlayerShouldTakeDamage = function( ePly, eAttacker ) return true end, -- Разрешить игроку получить урон от какого-либо энтити (проп, игрок, NPC и т.д)?
PlayerShouldTaunt = function( ePly, nACT ) return true end, -- Игрок может выполнить анимацию act?
PlayerSpray = function( ePly ) return false end, -- Можно игроку сделать спрей?
PlayerSwitchWeapon = function( ePly, eWeaponOld, eWeaponNew ) return true end, -- Игрок может сменить одно оружие на другое?
PlayerGiveSWEP = function( ePly, sClassWeapon, tWeapon ) return true end, -- Игрок может взять оружие из Q Меню?
PlayerSpawnProp = function( ePly, sModel ) return false end, -- Игрок может заспавнить проп?
PlayerSpawnEffect = function( ePly, sModel ) return true end, -- Игрок может заспавнить эффект?
PlayerSpawnNPC = function( ePly, sClassNPC, sClassWeaponOnNPC ) return false end, -- Игрок может заспавнить NPC?
PlayerSpawnObject = function( ePly, sModel, nSkin ) return true end, -- Игрок может заспавнить объект (проп, рэгдолл и эффект)?
PlayerSpawnRagdoll = function( ePly, sModel ) return false end, -- Игрок может заспавнить Ragdoll?
PlayerSpawnSENT = function( ePly, sClass ) return true end, -- Игрок может заспавнить энтити?
PlayerSpawnSWEP = function( ePly, sClassWeapon, tWeapon ) return false end, -- Игрок может заспавнить оружие с помощью тулгана?
PlayerSpawnVehicle = function( ePly, sModel, sName, tVehicle ) return false end, -- Игрок может заспавнить транспортное средство?
CanTool = function( ePly, tTrace, sTool, tTool, nMouseButton ) return true end, -- Игрок может использовать тулган?
CanProperty = function( ePly, sProperty, eObj ) return false end, -- Игрок может использовать или изменять Property в C меню? (Поджечь, убрать коллизию и т.д)
PlayerCanSeePlayersChat = function( sText, bTeamOnly, eListener, eSpeaker ) return false end, -- Игрок может видеть сообщения в чате, сделанные от другого игрока?
CanUndo = function( ePly, tUndo ) return false end, -- Можно сделать обратное действие на Z?
CanPlayerUnfreeze = function( ePly, eObj, physicObj ) return false end, -- Можно расфризить что-либо?
CanExitVehicle = function( eVehicle, ePly ) return true end, -- Можно выйти из транспортного средства?
PlayerUse = function( ePly, eObj ) return true end, -- Может игрок использовать (Е или +use) какой либо предмет?
SetupMove = function( ePly, cmoveInfo, cuserCommand ) return end, -- Срабатывает при любом передвижений (Клавиатура, мышь или их эмуляция)
PlayerButtonDown = function( ePly, nButton ) return end, -- Срабатывает при нажатий клавиш

RequiresVote = function( ePly, tJob ) return false end, -- Нужно ли провести голосование на работу?
CustomCheck = function( ePly, tJob ) return false end, -- Кастомная проверка устройства на работу
CustomCheckFailMsg = function( ePly, tJob ) return 'Ошибка' end, -- Вернёт сообщение при ошибке устройстве на работу
CanStartVote = function( ePly ) return true end, -- Может ли эта работать начать голосовани

Last updated