Ark:Донат-Магазин/Кастомные предметы: различия между версиями

Материал из SurvivalHost Wiki
Перейти к навигации Перейти к поиску
м
м
 
(не показаны 2 промежуточные версии этого же участника)
Строка 8: Строка 8:


{{important|Название кастомного предмета должно на 100% совпадать с названием соответствующего ему товара в панели магазина}}
{{important|Название кастомного предмета должно на 100% совпадать с названием соответствующего ему товара в панели магазина}}
{{important|При работе с кастомными предметами убедитесь, что в [[Ark:Донат-Магазин/Конфиг-файл|конфиг-файле]] включена настройка '''customGoods''' }}


Кастомные предметы прописываются в '''JSON-файле [[Ark:Донат-Магазин/Пример_custom.json_(все_виды_товаров)|custom.json]]''' (или прямо в [[Ark:Донат-Магазин/Пример_config.json|config.json]], в соответствующем методе):
Кастомные предметы прописываются в '''JSON-файле [[Ark:Донат-Магазин/Пример_custom.json_(все_виды_товаров)|custom.json]]''' (или прямо в [[Ark:Донат-Магазин/Пример_config.json|config.json]], в соответствующем методе):
Строка 257: Строка 259:
** fortitudePointsAdd - добавить очки стойкости
** fortitudePointsAdd - добавить очки стойкости
** craftingPointsAdd - добавить очки крафтинга
** craftingPointsAdd - добавить очки крафтинга
* modBalanceStats (true/false) - используется совместно с mods. Пытается сбаллансировать дино после корректировки. Балансировка заключается в приведении общей суммы характеристик к "природному" знаменателю, который имеет вид "уровень дино - 1". Если в результате изменения характеристик произошло увеличение одной из них - то все остальные характеристики будут уменьшены на соответствующее число (если есть такая возможность - характеристика не может быть меньше 0). И наоборот.


В качестве значения модификаторов используется объект { "value" : значение }, либо { "min": мин, "max": макс }, которые позволяют, соответственно, установить фиксированное значение или выбрать диапазон.
В качестве значения модификаторов используется объект { "value" : значение }, либо { "min": мин, "max": макс }, которые позволяют, соответственно, установить фиксированное значение или выбрать диапазон.
Строка 412: Строка 415:
  "Прохождение миссии Генезис": {
  "Прохождение миссии Генезис": {
   "type": "cheat",
   "type": "cheat",
   "command": "CompleteMission"
   "command": "forcecompleteactivemission 0"
  },
  },
  "Гигантозавр 50 очков в урон (самец) (плагин woolydino)": {
  "Гигантозавр 50 очков в урон (самец) (плагин woolydino)": {

Текущая версия на 21:23, 12 ноября 2024

Кастомные предметы
<< Ark:Донат-Магазин | К концу статьи | Предыдущая глава: Система быстрой кастомизация товаров (Аффиксы) | Короткая ссылка

Кастомные предметы - это определяемые на уровне настроек конкретного сервера предметы, наборы или команды. С помощью них можно добавить на сервер любой предмет, присутствующий в моде или специализированную команду. С помощью кастомных предметов в магазине можно добавить уникальные товары, характерные для вашего хостинга или предметы с модов.

Каждый кастомный предмет должен иметь уникальное название, по которому он будет связан с товаром в панели магазина. При этом содержимое товара, которое нужно ввести в панели, не имеет особого значения - оно может быть любым (например стак соломы). При получении товара на сервере оно будет автоматически заменено командами, которые вы прописали для кастомного предмета.

 Если кастомный предмет не сработал (например поврежден конфиг-файл), то будет выдан предмет, прописанный в панели магазина
 Название кастомного предмета должно на 100% совпадать с названием соответствующего ему товара в панели магазина
 При работе с кастомными предметами убедитесь, что в конфиг-файле включена настройка customGoods

Кастомные предметы прописываются в JSON-файле custom.json (или прямо в config.json, в соответствующем методе):

Пример:

{
 "Металлический слиток": {
   "type": "item",
   "stackSize": 200,
   "count": 400,
   "quality": 1,
   "blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Resources/PrimalItemResource_MetalIngot.PrimalItemResource_MetalIngot'"
 },
 "Чертёж ТЕК-винтовки": {
   "type": "blueprint",
   "quality": 10,
   "blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Weapons/PrimalItem_TekRifle.PrimalItem_TekRifle'"
 }
}

В данном примере определено 2 предмета - "Металлический слиток" и "Чертёж ТЕК-винтовки".

Виды предметов

Предмет Пример конфигурации
Прокачка персонажа или дино

Выдает опыт выжившему или (если сидит верхом) - дино.

"Прокачка персонажа или дино": {
  "type": "experience",
  "amount": 1000000000
}
  • amount - количество выдаваемого опыта
Товар-услуга

Любая услуга, на которую нет автоматической команды. Реализуется через отправку сообщения в специальный чат админу.

"Вытащить забаганного дино": {
  "type": "message",
  "webHook": "hook1",
  "webHookMessage": "Сервер %serverInfo%, %playerInfo% попросил вытащить забаганного дино.",
  "message": "Сообщение отправлено администратору, ожидайте. Если вдруг администратор не пришел - напишите в чат-группу сервера"
}
  • webHook - название вебхука
  • webHookMessage - сообщение для администратора. Поддерживаются слова-заменители:
    • %serverInfo% - название сервера
    • %playerInfo% - steamId, steam-ник, имя выжившего и трайб игрока
    • %characterName% - имя выжившего
    • %steamName% - steam-ник
    • %tribeName% - трайб
    • %steamId% - steam-ID
    • %title% - название товара
  • message - сообщение для игрока (в игровой чат)
Summon-команда

Аналогично admincheat summon.

"Белый луч": {
  "type": "summon",
  "className": "SupplyCrate_Level03_C"
}
  • className - класс вызываемого предмета, см. [1]
Предмет

Выдача предмета.

"Металлический слиток": {
  "type": "item",
  "stackSize": 200,
  "count": 400,
  "quality": 1,
  "blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Resources/PrimalItemResource_MetalIngot.PrimalItemResource_MetalIngot'",
  "mods": { }
}
  • stackSize - размер стака, по умолчанию 1
  • count - сколько предметов выдать (обязательный параметр)
  • quality - качество (если предмет его поддерживает)
  • blueprint - блюпринт предмета (обязательный параметр)
  • mods - модификации предмета (необязательно). Представляет собой объект, в котором каждый ключ устанавливает модификацию.
    • quality - установить качество
    • armor - установить броню
    • durability - установить прочность
    • damage - установить урон
    • coldResist - установить защиту от холода
    • warmResist - установить защиту от жары
    • qualityAdd - добавить к текущему качеству
    • armorAdd - добавить к текущей броне
    • durabilityAdd - добавить к прочности
    • damageAdd - добавить к урону
    • coldResistAdd - добавить к защите от холода
    • warmResistAdd - добавить к защите от жары
    • qualityMul - умножить качество
    • armorMul - умножить броню
    • durabilityMul - умножить умножить прочность
    • damageMul - умножить урон
    • coldResistMul - умножить защиту от холода
    • warmResistMul - умножить защиту от жары

В качестве значения модификаторов используется объект { "value" : значение }, либо { "min": мин, "max": макс }, которые позволяют, соответственно, установить фиксированное значение или выбрать диапазон.

Пример модификатора 2-3 на качество + x2 на броню:

"mods": { 
   "quality": { "min": 2, "max": 3 }, 
   "armorMul": { "value": 2 }
}
Чертеж

Выдача чертежа предмета.

"Чертёж ТЕК-винтовки": {
  "type": "blueprint",
  "quality": 10,
  "blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Weapons/PrimalItem_TekRifle.PrimalItem_TekRifle'"
}
  • quality - качество чертежа
  • blueprint - блюпринт предмета (обязательный параметр)
Энграмма

Выдача чертежа предмета.

"Энграмма ТЕК-винтовки": {
  "type": "engram",
  "blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Weapons/PrimalItem_TekRifle.PrimalItem_TekRifle'"
}
  • blueprint - блюпринт предмета (обязательный параметр)
Динозавр

Выдача существа.

"Тек-раптор: {
  "type": "dino",
  "level": 400,
  "neutered": true,
  "gender": 1,
  "imprint": true,
  "experience": 5000,
  "age": 1.0,
  "wild": false,
  "blueprint": "Blueprint'/Game/PrimalEarth/Dinos/Raptor/BionicRaptor_Character_BP.BionicRaptor_Character_BP'",
  "dcMinutes": 0,
  "dcHours": 2,
  "dcDays": 0,
  "dcInfinite": false,
  "mods": { }
}
"Раптор 80лвл селекция (здоровье)": {
  "type": "dino",
  "level": 80,
  "statPriority": "Health=10",
  "blueprint": "Blueprint'/Game/PrimalEarth/Dinos/Raptor/Raptor_Character_BP.Raptor_Character_BP'",
  "mods": { }
}
"Раптор 80лвл улучшенная селекция (здоровье++, выносливость+)": {
  "type": "dino",
  "level": 80,
  "statRounds": 1500,
  "statPriority": "Health=10,Stamina=5",
  "blueprint": "Blueprint'/Game/PrimalEarth/Dinos/Raptor/Raptor_Character_BP.Raptor_Character_BP'",
  "mods": { }
}
  • level - уровень выдаваемого существа, обязательный параметр
  • neutered - кастрирован или нет (если не указан - то в соответствии с настройками плагина)
  • gender - пол, 1 - М, 2 - Ж
  • imprint - привязать существо (да или нет)
  • experience - стартовый опыт
  • age - возраст (от 0 до 1), 0 выдаст детеныша, 1 - взрослая особь
  • wild - заспавнить дикого
  • blueprint - блюпринт динозавра (обязательный параметр)
  • statRounds - количество раундов селекции, по умолчанию 50, максимальное значение 4096. Количество особей в селекции.
  • statPriority - приоритет характеристик для селекции (весовые коэфициенты, обозначающие важность характеристики), строка вида "хар1=значение1,хар2=значение2". Все характеристики:
    • Health - здоровье
    • Stamina - выносливость
    • Oxygen - кислород
    • Food - еда
    • Water - вода
    • Weight - вес
    • MeleeDamageMultiplier - урон
    • SpeedMultiplier - скорость
    • TemperatureFortitude - температурная стойкость
    • CraftingSpeedMultiplier - скорость крафта
  • Право покраски только что выданного дино (команда /красить или /sdc):
    • dcMinutes - на сколько минут
    • dcHours - на сколько часов
    • dcDays - на сколько дней
    • dcInfinite - бессрочно (true/false)
  • mods - модификации динозавра (необязательно). Представляет собой объект, в котором каждый ключ устанавливает модификацию.
    • health - установить % от стандартных очков здоровья
    • stamina - установить % от стандартных очков выносливости
    • torpidity - установить % от стандартных очков торпора
    • oxygen - установить % от стандартных очков кислорода
    • food - установить % от стандартных очков еды
    • water - установить % от стандартных очков воды
    • weight - установить % от стандартных очков веса
    • melee - установить % от стандартных очков урона
    • speed - установить % от стандартных очков скорости
    • fortitude - установить % от стандартных очков стойкости
    • crafting - установить % от стандартных очков крафтинга
    • healthAdd - добавить % от стандартных очков здоровья
    • staminaAdd - добавить % от стандартных очков выносливости
    • torpidityAdd - добавить % от стандартных очков торпора
    • oxygenAdd - добавить % от стандартных очков кислорода
    • foodAdd - добавить % от стандартных очков еды
    • waterAdd - добавить % от стандартных очков воды
    • weightAdd - добавить % от стандартных очков веса
    • meleeAdd - добавить % от стандартных очков урона
    • speedAdd - добавить % от стандартных очков скорости
    • fortitudeAdd - добавить % от стандартных очков стойкости
    • craftingAdd - добавить % от стандартных очков крафтинга
    • healthMul - умножить очки здоровья
    • staminaMul - умножить очки выносливости
    • torpidityMul - умножить очки торпора
    • oxygenMul - умножить очки кислорода
    • foodMul - умножить очки еды
    • waterMul - умножить очки воды
    • weightMul - умножить очки веса
    • meleeMul - умножить очки урона
    • speedMul - умножить очки скорости
    • fortitudeMul - умножить очки стойкости
    • craftingMul - умножить очки крафтинга
    • healthPoints - установить очки здоровья
    • staminaPoints - установить очки выносливости
    • torpidityPoints - установить очки торпора
    • oxygenPoints - установить очки кислорода
    • foodPoints - установить очки еды
    • waterPoints - установить очки воды
    • weightPoints - установить очки веса
    • meleePoints - установить очки урона
    • speedPoints - установить очки скорости
    • fortitudePoints - установить очки стойкости
    • craftingPoints - установить очки крафтинга
    • healthPointsAdd - добавить очки здоровья
    • staminaPointsAdd - добавить очки выносливости
    • torpidityPointsAdd - добавить очки торпора
    • oxygenPointsAdd - добавить очки кислорода
    • foodPointsAdd - добавить очки еды
    • waterPointsAdd - добавить очки воды
    • weightPointsAdd - добавить очки веса
    • meleePointsAdd - добавить очки урона
    • speedPointsAdd - добавить очки скорости
    • fortitudePointsAdd - добавить очки стойкости
    • craftingPointsAdd - добавить очки крафтинга
  • modBalanceStats (true/false) - используется совместно с mods. Пытается сбаллансировать дино после корректировки. Балансировка заключается в приведении общей суммы характеристик к "природному" знаменателю, который имеет вид "уровень дино - 1". Если в результате изменения характеристик произошло увеличение одной из них - то все остальные характеристики будут уменьшены на соответствующее число (если есть такая возможность - характеристика не может быть меньше 0). И наоборот.

В качестве значения модификаторов используется объект { "value" : значение }, либо { "min": мин, "max": макс }, которые позволяют, соответственно, установить фиксированное значение или выбрать диапазон.

Пример модификатора 2-3 на качество + x2 на броню:

"mods": { 
   "healthPoints": { "min": 30, "max": 50 }, 
   "meleePoints": { "value": 25 }
}
 Обязателен только уровень и блюпринт, остальные параметры можно не указывать - тогда у них будет значение по умолчанию
 Селекции поддаются только характеристики, доступные для рандомизации/прокачки у выбранного дино. Увеличение количества раундов селекции улучшают выборку селекции, но повышает нагрузку на сервер в момент выдачи.
Динозавр + прокачка + седло

Выдача существа с седлом + прокачка по опыту по выбранным характеристикам.

"Раптор 140лвл (здоровье +30, урон +20, вес +10)": {
  "type": "spawnsetupdino",
  "blueprint": "Blueprint'/Game/PrimalEarth/Dinos/Raptor/Raptor_Character_BP.Raptor_Character_BP'",
  "baseLevel": 80,
  "statLevel": "Health=30,MeleeDamageMultiplier=20,Weight=10",
  "saddleBlueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Items/Armor/Saddles/PrimalItemArmor_RaptorSaddle.PrimalItemArmor_RaptorSaddle'",
  "saddleQuality": 2.0
}
  • blueprint - чертеж дино
  • baseLevel - базовый уровень выдаваемого существа (со случайными статами)
  • statLevel - уровни, выдаваемые на конкретные характеристики, строка вида "хар1=значение1,хар2=значение2". Все характеристики:
    • Health - здоровье
    • Stamina - выносливость
    • Oxygen - кислород
    • Food - еда
    • Water - вода
    • Weight - вес
    • MeleeDamageMultiplier - урон
    • SpeedMultiplier - скорость
    • TemperatureFortitude - температурная стойкость
    • CraftingSpeedMultiplier - скорость крафта
  • saddleBlueprint - чертеж седла
  • saddleQuality - качество седла
 Этот тип товара есть только в ARK: Survival Evolved
 Все параметры обязательны, и у этого типа товара нет выбора пола/возраста/покраски и т.д.
 Начисляемые через statLevel уровни можно потом перераспределять через респециализацию дино
 Прокачке поддаются только характеристики, доступные для прокачки у выбранного дино
 Если нужно выдать дино с приоритетными характеристиками для разведения, то следует использовать параметр statPriority товара dino
Набор предметов

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

"ТЕК-винтовка с 2x уроном + энграмма для использования": {
  "type": "pack",
  "items": [
    {
      "type": "engram",
      "blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Weapons/PrimalItem_TekRifle.PrimalItem_TekRifle'"
    },
    {
      "type": "item",
      "count": 1,
      "quality": 3,
      "blueprint": "Blueprint'/Game/PrimalEarth/CoreBlueprints/Weapons/PrimalItem_TekRifle.PrimalItem_TekRifle'",
      "mods": { "damageMul": { "value": 2 } }
    }
  ],
  "message": "Сообщение для товара-услуги"
}
 Если в наборе есть товары-услуги, то атрибут "message" (сообщение игроку в чат) у них работать не будет. Вместо этого, надо поставить "message" у самого товара-набора, как на примере выше
Право покраски дино

Выдача права на покраску любого дружественного дино на этом сервере

"Право покраски дино": {
  "type": "dinocolor",
  "minutes": 0,
  "hours": 0,
  "days": 3,
  "infinite": false
}
  • minutes - на сколько минут
  • hours - на сколько часов
  • days - на сколько дней
  • infinite - бессрочно (true/false)
Респециализация дино

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

"Респециализация дино": {
  "type": "dinorespec",
  "times": 1
}
  • times - сколько раз можно применить
Вырастить дино

Выдача права на вызов команды роста (мгновенно выращивает дино) для любого дружественного дино на этом сервере, на которого нацелен прицел.

"Рост дино": {
  "type": "dinogrow",
  "times": 1
}
  • times - сколько раз можно применить
 Чтобы "нацелиться" на baby-дино, надо смотреть чуть выше его "маленького" размера
Пермишены

Интеграция с плагином Ark Permissions. Добавить или удалить игрока из группы.

"Добавление в группу Premium": {
  "type": "permissions",
  "do": "add",
  "group": "Premium"
},
"Добавление в группу Premium на 3 дня": {
  "type": "permissions",
  "do": "add",
  "group": "Premium",
  "minutes": 0,
  "hours": 0,
  "days": 3,
  "endMessage": "Время Премиум истекло"
}
  • do - действие (add или remove)
  • group - название группы
  • minutes - на сколько минут
  • hours - на сколько часов
  • days - на сколько дней
  • endMessage - это сообщение будет отображено игроку по окончанию времени
 если игрок оффлайн - то endMessage будет ему отображено при следующем появлении на сервере
 Перед тем как использовать этот тип товара, не забудьте добавить все необходимые группы на сервер
PlayerCommand

Запуск игровой команды. Поддерживается с версии 2.8.

"Вознесение Бета": {
  "type": "playercommand",
  "command": "Ascend2"
},
"Роквелл-Вознесение Альфа (Aberration)": {
  "type": "playercommand",
  "command": "AbAscend3"
}
  • command - текст команды, типичные значения для Ark:
    • Ascend1, Ascend2, Ascend3 - вознесения Tek Cave
    • AbAscend1, AbAscend2, AbAscend3 - вознесения Абберации
    • EXTAscend1, EXTAscend2, EXTAscend3 - вознесения Extinction
    • Genascend1, Genascend2 - вознесения Genesis (команды Genascend3 для альфа вознесения не существует)
 Выдача вознесения даст игроку одноименную ачивку в Steam и запустит показ заключительных титров
Cheat

Запуск консольной команды. Поддерживается с версии 2.85b.

"Вылупление яйца": {
  "type": "cheat",
  "command": "HatchEgg"
},
"Прохождение миссии Генезис": {
  "type": "cheat",
  "command": "forcecompleteactivemission 0"
},
"Гигантозавр 50 очков в урон (самец) (плагин woolydino)": {
 "type": "cheat",
 "command": "woolydino %steamId% Blueprint'/Game/PrimalEarth/Dinos/Giganotosaurus/Gigant_Character_BP.Gigant_Character_BP' 225 0.0 0 1 35 35 20 30 35 50 19 0"
}
  • command - текст команды, поддерживаются подстановочные переменные:
    • %characterName% - ник игрока
    • %steamName% - имя игрока в Steam/EGS
    • %tribeName% - имя трайба
    • %steamId% - ID игрока в Steam/EGS
    • %playerId% - внутри-игровой номер персонажа (печатается на импланте)
 Консольные команды не возвращают значения, поэтому плагин магазина не может проконтролировать успешность их исполнения. Используйте их на свой страх и риск, обязательно тестируйте товары с это командой!
Шестигранники

Добавление внутриигровой валюты DLC Genesos

"1000000 Шестигранников": {
  "type": "hexagons",
  "count": 1000000
}
  • count - сколько выдать

Примеры

Ссылки



Далее: Вебхуки

<< Ark:Донат-Магазин | К началу статьи