[Shturman_PVP]

Scrap Mechanic91 views1 favorites8 min readRussianby ШтурманUpdated 20 JulView on Steam ↗

В чём преимущества мода?


/PVP - ГЛАВНАЯ КОМАНДА, ТАМ ЕСТЬ ВСЁ!




Стабильное отображение ников.

Возможность заблокировать обычным игрокам доступ к командам.

Администратор может назначать другим игрокам команды/наборы снаряжения/точки возрождения а также телепортировать их и проводить другие манипуляции.

Хост может назначать администраторов сервера.

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

Бан который никак невозможно обойти, банить можно даже ливнувших игроков.

Возможность настроить урон от всех источников.

Безопасные зоны для команд, больше никакого спавнкемпа.

Наборы снаряжения, отображаются в нике и выдаются после каждой смерти.

Создания жёстких наборов снаряжения, игрок не сможет ничего взять в инвентарь кроме своего набора даже в креатив режиме.

Выбор базовой команды и набора снаряжения, выдаются человеку сразу при заходе на мир.

Возможность включить выносливость.

Возможность ограничения камеры от третьего лица у пехоты и техники отдельно.

Мод адаптирован под работу с множеством миров на сервере.



Базовая информация


[игрок] — ID игрока.
[команда] — название команды.
[набор] — название набора снаряжения.

[me] - я.
[all] - все игроки в мире.
[default] - установить параметр по умолчанию для всех, кто не подходит к другим группам.

[] - один аргумент, число или текст без пробелов, аргументы отделяются одним пробелом.
[цель: игрок/команда] - аргумент это цель, вписать можно либо ID игрока, либо название команды.
true - включить.
false - выключить.
Для переключения режима true/false можно не писать.

Обычные игроки могут применять команды только к себе.

Иерархия точек респавна:

  1. собственная точка игрока
  2. точка команды
  3. точка по умолчания(default)

Если хотите чтобы все игроки респавнились на точке команды - заберите у них личные точки( /deleteSpawn all )!

Основные команды

Данные команды доступны всем игрокам, но блокируются при включении режима контролируемого боя.

/setSpawn
Установить точку возрождения из вашей текущей позиции/сиденья.

/deleteSpawn
Удалить точку возрождения.

/teamsList
Показать список команд.

/setTeam [название]
Вступить в команду.

/kitsList
Показать список наборов снаряжения.

/setKit [название] [набор постоянный?: true/false]
Получить набор снаряжения.

/kill
Убить своего персонажа.

Команды администратора

Данные команды доступны всем администраторам независимо от режима боя.

Настройки сервера

/PVP
Открыть панель управления.

/autoFight [режим: true/false]
Переключить режим контролируемого боя (блокирует команды обычным игрокам).

/godMode [режим: true/false]
Переключить получение урона.

/damageFactors
[множитель урона от взрывов]
[множитель урона от проджектайлов]
[множитель урона от ближнего боя]
[множитель урона от столкновений]
[множитель урона от массы объекта столкновения]
[чувствительность урона падения]
[множитель время нокаута от столкновений]
[чувствительность время нокаута от столкновений]
[множитель урона от столкновения в технике]
[сглаживание урона от столкновений в технике]

Настроить множители урона.

/healData
[частота лечения: тики]
[множитель лечения]
[соотношение здоровья к максимальному здроровью для возрождения]
[время отката после получения урона: тики]
[пассивное лечение: здоровье в секунду]

Настроить лечение (влияет на все аптечки и иные средства лечения КБ "Рубеж").

/inv [режим: true/false]
Переключить инвентарь выживания.

/cameraClamp [стоя: 0-10] [в сиденье: 0-10]
Ограничить отдаление камеры от персонажа.

/stamina [режим: true/false]
Переключить систему выносливости.

/idNames [режим: 0/1/2]
Изменить режим отображения ID игроков.
0 - без ID в нике,
1 - ID в нике,
2 - только ID, ник убирается.

/displayNames [режим: 0/1/2]
Изменить режим отображения имён игроков.
0 - видеть союзников в прямой видимости,
1 - видеть союзников через все припятствия,
2 - видеть всех на карте.

/parade [км/ч]
Включить режим парада (работает для техники КБ "Рубеж").

/setTime [часы]
Установить игровое время.

/setLootLifeTime [секунды]
Установить время существования лута.

Управление игроками

/playersList [показать только онлайн игроков?: true/false]
Показать список игроков, там можно получить их ID и статус.

/kill [цель: игрок/команда/набор/all]
Убить игрока/игроков.

/freeze [заморозить?: true/false] [цель: игрок/команда/набор/all]
Заморозить или разморозить игрока/игроков.

/ban [забанить?: true/false] [цель: игрок/команда/набор/all]
Заблокировать или разблокировать игрока/игроков.

/setAdmin [цель: игрок/команда/набор/all]
Выдать права администратора.

/deleteAdmin [цель: игрок/команда/набор/all]
Забрать права администратора.

Команды

/createTeam [название]
Создать команду.

/deleteTeam [название]
Удалить команду.

/setTeam [название] [цель: игрок/команда/набор/all]
Назначить команду игроку/игрокам.

/setDefaultTeam [название]
Назначить команду для выдачи при заходе на мир.

/teamsList
Показать список команд.

Наборы снаряжения

/createKit
[название]
[цена(для боёв КБ "Рубеж")]
[максимальное здоровье]
[максимальная выносливость]
[множитель скорости передвижения]
[жёсткий набор?: true/false]
[сохранить набор для всех миров?: true/false]

Создать набор снаряжения.
Жёсткий набор запрещает брать в инвентарь предметы которых нет в этом наборе.

/deleteKit [название]
Удалить набор снаряжения.

/setKit [название] [набор постоянный?: true/false] [цель: игрок/команда/набор/all]
Выдать набор снаряжения игроку/игрокам.
Постоянный набор выдаётся после каждой смерти заново.

/setDefaultKit [название]
Назначить набор снаряжение для выдачи при заходе на мир.

/kitsList
Показать список наборов снаряжения.

Телепортация

/createTp [название]
Создать точку телепорта.

/deleteTp [название]
Удалить точку телепорта.

/tp [цель: название точки/игрок/me] [цель: игрок/команда/набор/all]
Телепортировать игрока/игроков.
me - телепортировать на себя.

/tpList
Показать список точек телепорта.

Возрождение

/setSpawn [цель: игрок/команда/all/default]
Установить точку возрождения из вашей текущей позиции/сиденья для игрока/игроков.

/deleteSpawn [цель: игрок/команда/all/default]
Удалить точку возрождения.

/setRespawnCooldown [секунды]
Установить задержку возрождения.

/setRespawnLimit [цель: команда] [лимит]
Установить лимит возрождений команды.

/resetRespawnLimit [цель: игрок/команда/набор/all]
Сбросить лимит возрождений игрока/игроков.

Безопасные зоны

/createSafeZone [цель: команда] [радиус: метры]
Создать безопасную зону для команды.

/deleteSafeZone [цель: команда]
Удалить безопасную зону команды.

Конфиги

/createConfig [название]
Создать новый конфиг мира.

/deleteConfig [название]
Удалить конфиг мира.

/setConfig [название]
Загрузить конфиг в мир.

/configsList
Показать список конфигов.

Для продвинутых


Если вы умеете писать LUA скрипты на компьютерах или у вас свой мод, это для вас.

server+client - данные есть у всех
server - данные есть только на сервере
local sendToPlayer = sm.event.sendToPlayer
local sendToGame = sm.event.sendToGame

sm.SHTURMAN_PVP
корень (server+client)
sm.SHTURMAN_PVP.self_player
свой игрок (server+client)
sm.SHTURMAN_PVP.tool
инструмент (server)
sm.SHTURMAN_PVP.host
хост сервера (server)
sm.SHTURMAN_PVP.admins = { [player_id] = true }
таблица со всеми администраторами (server)
sm.SHTURMAN_PVP.data = { serverDataChangesCount = number, --[[синхронизатор данных]] inv = boolean, godMode = boolean, damageFactors = { explosionFactor = number, projectileFactor = number, meleeFactor = number, tumbleFactor = number, massTumbleFactor = number, tumbleSens = number, tumbleTicksFactor = number, tumbleTicksSens = number, inSeatAccDamageFactor = number, inSeatAccSmooth = number }, autoFight = boolean, cameraClamp = { stand = number, seat = number }, stamina = boolean, parade = boolean, tpPoints = { [tpPoint] = {world = world, pos = Vec3} }, teams = { [team] = {col = string} }, kits = { [kit] = { col = string, kit = table, cost = number, hp = number, stamina = number, isHard = boolean, --[[набор жёсткий?]] isBase = boolean --[[набор сохранён в файлы и является базовым?]] } }, worlds = { main = world, --[[главный мир]] ban = world, --[[мир для забаненых]] [world_id] = world --[[все миры по ID]] }, spawns = { [0] = { --[[резервный спавн, включается вместо базового в экстренных случаях]] noSpawn = boolean, --[[true - нет точной позиции, будет проводится рейкаст, false - спавн без проверки]] world = world, pos = Vec3 }, default = { --[[базовый спавн для всех]] noSpawn = boolean, --[[true - нет точной позиции, будет проводится рейкаст, false - спавн без проверки]] world = world, pos = Vec3 }, [team] = { --[[спавн команды]] world = world, pos = Vec3 }, [player_id] = { --[[личный спавн игрока]] world = world, pos = Vec3 } }, safeZones = { [team] = {world=world, pos=Vec3, radius=number} }, healData = { frequency = number, factor = number, reviveTrigger = number, afterDamageCooldown = number, passiveHeal = number }, respawnCooldown = number, respawnLimits = { [team] = number }, idNames = number, displayNames=number, lootLifeTime = number }
главная таблица с данными, все данные здесь сохраняются в sm.storage (server)
sm.SHTURMAN_PVP.data = { serverDataChangesCount = number, --[[синхронизатор данных]] autoFight = boolean, respawnCooldown = number, idNames = number, displayNames = number, thirdCameraBlock = boolean, stamina = number }
главная таблица с данными (client)
sm.SHTURMAN_PVP.players = { [player_id] = { playerDataChangesCount = number, --[[синхронизатор данных]] player = player, serverName = string, localData = table, ban = boolean, freeze = boolean, spawnProcess = { --[[данные для телепортации/спавна/респавна]] spawnData = spawnData, --[[данные спавна из sm.SHTURMAN_PVP.data.spawns или телепорта из sm.SHTURMAN_PVP.data.tpPoints]] currentWorld = world --[[текущий мир в котором находится игрок]] } stats = { hp = number, maxhp = number, maxStamina = number }, hasRevivalItem = boolean, isConscious = boolean, inChemical = boolean, inOil = boolean, team = string, teamCol = string, kit = string, kitIsPerm = boolean, kitCol = string, name = string } }
данные об игроках (server)
sm.SHTURMAN_PVP.players = { [player_id] = { playerDataChangesCount = number, --[[синхронизатор данных]] player = player, stats = { hp = number, maxhp = number, stamina = number, maxStamina = number }, hasRevivalItem = boolean, isConscious = boolean, inChemical = boolean, inOil = boolean, team = string, teamCol = string, kit = string, kitCol = string, name = string } }
данные об игроках (client если есть флаг о необходимости полных данных)
sm.SHTURMAN_PVP.players = { [player_id] = { playerDataChangesCount = number, --[[синхронизатор данных]] player = player, team = string, teamCol = string, kit = string, kitCol = string, name = string } }
данные об игроках (client если нет флага о необходимости полных данных)
sendToPlayer(player, "sv_setServerPlayerData", { data={ needAllPlayersData = boolean --[[флаг о необходимости полных данных о всех игроках]] needSelfTeamPlayersData = boolean --[[флаг о необходимости полных данных о игроках своей команды]] }, sumData = boolean --[[true - флаг будет суммироваться, это необходимо если этот флаг требуется сразу нескольким объектам, уничтожение одного объекта не приведёт к потере данных]] } )
установка флагов (server)
sendToPlayer(player --[[его данные будут отправлены]], "sv_sendPlayerData", { sendToTable = { [1]=player }, --[[получатели данных, если не указывать то отправит себе]] fullUpdate = boolean --[[true - отослать все данные, false - отослать только те что клиент не знает]] })
отправить все данные игрока (server)
sendToPlayer(player --[[его данные будут отправлены]], "sv_sendPlayerInfo", player --[[получатель данных, если не указывать то отправит себе]] ) )
отправить базовые данные игрока (команда, кит и их цвета) (server)
sendToPlayer(player, "sv_setTeamAndKit", {team=string, kit=string, isPerm=boolean --[[набор постоянный?]] })
выдача команд и наборов снаряжения (server)
sendToPlayer(player, "sv_onDeath")
убийство игрока (server)
sendToPlayer(player, "sv_takeDamage", number)
урон игроку (server)
sendToPlayer(player, "sv_restoreHealth_sht", number)
лечение игрока (можно лечить упавшего в нокаут) (server)
sm.SHTURMAN_PVP.players[player_id].spawnProcess = { spawnData=spawnData, --[[данные спавна из sm.SHTURMAN_PVP.data.spawns или телепорта из sm.SHTURMAN_PVP.data.tpPoints]] currentWorld=world --[[текущий мир в котором находится игрок]] } sendToGame("sv_shturman_playerSpawnRequest", player_id)
телепортировать игрока (не поднимает из нокаута) (server)
sendToPlayer(player, "sv_respawn")
зареспавнить игрока на его точке возрождения (server)
sendToPlayer(player, "sv_freeze", boolean)
заморозка игрока (server)
sendToPlayer(player, "sv_ban", boolean)
бан игрока (server)

This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.