Модификации:Особые задания: различия между версиями

Материал из Stardew Valley Wiki
Перейти к навигации Перейти к поиску
(category & en link)
Строка 7: Строка 7:
  
 
==Источник==
 
==Источник==
Special orders are stored in <tt>Content\Data\SpecialOrders.xnb</tt>, which can be [[Modding:Editing XNB files#unpacking|unpacked for editing]]. Here's the raw data as of {{version|1.5.1}}:
+
Special orders are stored in <tt>Content\Data\SpecialOrders.xnb</tt>, могут быть [[Модификации:Редактирование_XNB_файлов#Редактирование распакованных данных|извлечены для редактирования]]. Вот исходные данные по состоянию на {{version|1.5.1}} для примера:
 
{{collapse|Данные|content=<syntaxhighlight lang="json">
 
{{collapse|Данные|content=<syntaxhighlight lang="json">
 
{
 
{

Версия 11:36, 13 сентября 2021

Индекс

Robin building.png
“Предстоит ещё много работы...”
— Робин

Неполный перевод

Эта статья или её часть до сих пор не переведены на русский язык. Вы можете оказать помощь в переводе путем ее редактирования.
Последний раз редактировалось Shtompel в 2021-09-13 11:36:03.

Axe.png
Это заготовка статьи.

Статья помечена как незавершенная по следующим причинам:

  • Rewards are marked as "to do"

Special orders are a more flexible and customizable quest system unlocked in late game. Special orders can be added to the data file with options like duration, repeatability, objectives, and rewards.

This page explains how the game stores and uses special orders. This is an advanced guide for mod developers.

Источник

Special orders are stored in Content\Data\SpecialOrders.xnb, могут быть извлечены для редактирования. Вот исходные данные по состоянию на 1.5.1 для примера:

Данные 
{
  "Willy": {
    "Name": "[Willy_Name]",
    "Requester": "Willy",
    "Duration": "Week",
    "Repeatable": "False",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Willy_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Willy_Objective_0_Text]",
        "RequiredCount": "100",
        "Data": {
          "AcceptedContextTags": "item_bug_meat"
        }
      },
      {
        "Type": "Donate",
        "Text": "[Willy_Objective_1_Text]",
        "RequiredCount": "100",
        "Data": {
          "DropBox": "WillyBarrel",
          "DropBoxGameLocation": "Beach",
          "DropBoxIndicatorLocation": "37 32",
          "AcceptedContextTags": "item_bug_meat"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "3000"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "willyBugWadCutscene"
        }
      }
    ]
  },
  "Pam": {
    "Name": "[Pam_Name]",
    "Requester": "Pam",
    "Duration": "TwoWeeks",
    "Repeatable": "False",
    "RequiredTags": "season_spring",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Pam_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Pam_Objective_0_Text]",
        "RequiredCount": "12",
        "Data": {
          "AcceptedContextTags": "juice_item, preserve_sheet_index_192"
        }
      },
      {
        "Type": "Donate",
        "Text": "[Pam_Objective_1_Text]",
        "RequiredCount": "12",
        "Data": {
          "DropBox": "PamKitchen",
          "DropBoxGameLocation": "Trailer",
          "DropBoxIndicatorLocation": "10 5",
          "AcceptedContextTags": "juice_item, preserve_sheet_index_192"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "3000"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "pamPotatoJuice"
        }
      },
      {
        "Type": "Friendship",
        "Data": {}
      }
    ]
  },
  "Pierre": {
    "Name": "[Pierre_Name]",
    "Requester": "Pierre",
    "Duration": "Month",
    "Repeatable": "False",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Pierre_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Pierre_Objective_0_Text]",
        "RequiredCount": "25",
        "Data": {
          "AcceptedContextTags": "!forage_item, category_vegetable, quality_gold"
        }
      },
      {
        "Type": "Donate",
        "Text": "[Pierre_Objective_1_Text]",
        "RequiredCount": "25",
        "Data": {
          "DropBox": "PierreBox",
          "DropBoxGameLocation": "SeedShop",
          "DropBoxIndicatorLocation": "18.5 27",
          "AcceptedContextTags": "!forage_item, category_vegetable, quality_gold"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "2500"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "pierreQualityCrops"
        }
      }
    ]
  },
  "Robin": {
    "Name": "[Robin_Name]",
    "Requester": "Robin",
    "Duration": "Week",
    "Repeatable": "False",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Robin_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Robin_Objective_0_Text]",
        "RequiredCount": "80",
        "Data": {
          "AcceptedContextTags": "item_hardwood"
        }
      },
      {
        "Type": "Donate",
        "Text": "[Robin_Objective_1_Text]",
        "RequiredCount": "80",
        "Data": {
          "DropBox": "RobinWood",
          "DropBoxGameLocation": "ScienceHouse",
          "DropBoxIndicatorLocation": "10.5 18",
          "AcceptedContextTags": "item_hardwood"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "2000"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "robinDeluxeBed"
        }
      },
      {
        "Type": "Friendship",
        "Data": {}
      }
    ]
  },
  "Emily": {
    "Name": "[Emily_Name]",
    "Requester": "Emily",
    "Duration": "Week",
    "Repeatable": "False",
    "RequiredTags": "event_992559",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Emily_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Deliver",
        "Text": "[Emily_Objective_0_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_ruby",
          "TargetName": "Emily"
        }
      },
      {
        "Type": "Deliver",
        "Text": "[Emily_Objective_1_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_topaz",
          "TargetName": "Emily"
        }
      },
      {
        "Type": "Deliver",
        "Text": "[Emily_Objective_2_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_emerald",
          "TargetName": "Emily"
        }
      },
      {
        "Type": "Deliver",
        "Text": "[Emily_Objective_3_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_jade",
          "TargetName": "Emily"
        }
      },
      {
        "Type": "Deliver",
        "Text": "[Emily_Objective_4_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_amethyst",
          "TargetName": "Emily"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "1000"
        }
      },
      {
        "Type": "Friendship",
        "Data": {}
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "emilyStones",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Demetrius": {
    "Name": "[Demetrius_Name]",
    "Requester": "Demetrius",
    "Duration": "Week",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Demetrius_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": [
      {
        "Name": "FishType",
        "Values": [
          {
            "RequiredTags": "season_spring",
            "Value": "PICK_ITEM Sunfish, Sardine, Flounder, Largemouth Bass, Halibut"
          },
          {
            "RequiredTags": "season_summer",
            "Value": "PICK_ITEM Rainbow Trout, Dorado, Tilapia, Tuna, Red Mullet"
          },
          {
            "RequiredTags": "season_fall",
            "Value": "PICK_ITEM Tiger Trout, Albacore, Midnight Carp, Salmon"
          },
          {
            "RequiredTags": "season_winter",
            "Value": "PICK_ITEM Squid, Perch, Lingcod"
          }
        ]
      }
    ],
    "Objectives": [
      {
        "Type": "Fish",
        "Text": "[Demetrius_Objective_0_Text]",
        "RequiredCount": "10",
        "Data": {
          "AcceptedContextTags": "{FishType:Tags}"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "{FishType:Price}",
          "Multiplier": "10"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "DemetriusReward",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Demetrius2": {
    "Name": "[Demetrius2_Name]",
    "Requester": "Demetrius",
    "Duration": "Week",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Demetrius2_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": [
      {
        "Name": "FishType",
        "Values": [
          {
            "RequiredTags": "",
            "Value": "Text|[Demetrius2_RE_FishType_0_Text]|Tags|fish_river"
          },
          {
            "RequiredTags": "",
            "Value": "Text|[Demetrius2_RE_FishType_1_Text]|Tags|fish_ocean"
          },
          {
            "RequiredTags": "",
            "Value": "Text|[Demetrius2_RE_FishType_2_Text]|Tags|fish_lake"
          }
        ]
      }
    ],
    "Objectives": [
      {
        "Type": "Fish",
        "Text": "[Demetrius2_Objective_0_Text]",
        "RequiredCount": "20",
        "Data": {
          "AcceptedContextTags": "{FishType:Tags}"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "1500"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "DemetriusReward",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Gus": {
    "Name": "[Gus_Name]",
    "Requester": "Gus",
    "Duration": "TwoWeeks",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Gus_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": [
      {
        "Name": "Greeting",
        "Values": [
          {
            "RequiredTags": "!mail_gusGiantOmelet",
            "Value": "[Gus_RE_Greeting_0]"
          },
          {
            "RequiredTags": "mail_gusGiantOmelet",
            "Value": "[Gus_RE_Greeting_1]"
          }
        ]
      }
    ],
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Gus_Objective_0_Text]",
        "RequiredCount": "24",
        "Data": {
          "AcceptedContextTags": "egg_item"
        }
      },
      {
        "Type": "Donate",
        "Text": "[Gus_Objective_1_Text]",
        "RequiredCount": "24",
        "Data": {
          "DropBox": "GusFridge",
          "DropBoxGameLocation": "Saloon",
          "DropBoxIndicatorLocation": "18 15",
          "MinimumCapacity": "30",
          "AcceptedContextTags": "egg_item"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "3000"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "gusGiantOmelet",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Lewis": {
    "Name": "[Lewis_Name]",
    "Requester": "Lewis",
    "Duration": "Month",
    "Repeatable": "True",
    "RequiredTags": "!season_winter",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Lewis_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": [
      {
        "Name": "Crop",
        "Values": [
          {
            "RequiredTags": "season_spring",
            "Value": "PICK_ITEM Potato, Green Bean, Garlic, Cauliflower"
          },
          {
            "RequiredTags": "season_summer",
            "Value": "PICK_ITEM Tomato, Blueberry, Radish, Melon, Hot Pepper, Wheat"
          },
          {
            "RequiredTags": "season_fall",
            "Value": "PICK_ITEM Pumpkin, Eggplant, Cranberries, Bok Choy, Amaranth, Grape, Yam, Artichoke"
          }
        ]
      },
      {
        "Name": "Text",
        "Values": [
          {
            "RequiredTags": "",
            "Value": "[Lewis_RE_Text_0]"
          },
          {
            "RequiredTags": "",
            "Value": "[Lewis_RE_Text_1]"
          },
          {
            "RequiredTags": "",
            "Value": "[Lewis_RE_Text_2]"
          },
          {
            "RequiredTags": "",
            "Value": "[Lewis_RE_Text_3]"
          },
          {
            "RequiredTags": "",
            "Value": "[Lewis_RE_Text_4]"
          }
        ]
      }
    ],
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Lewis_Objective_1_Text]",
        "RequiredCount": "100",
        "Data": {
          "AcceptedContextTags": "{Crop:Tags}"
        }
      },
      {
        "Type": "Ship",
        "Text": "[Lewis_Objective_0_Text]",
        "RequiredCount": "100",
        "Data": {
          "AcceptedContextTags": "{Crop:Tags}"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "{Crop:Price}",
          "Multiplier": "50"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "MSB_Lewis",
          "Host": "true",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Wizard": {
    "Name": "[Wizard_Name]",
    "Requester": "Wizard",
    "Duration": "Week",
    "Repeatable": "False",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Wizard_Text]",
    "ItemToRemoveOnEnd": "875",
    "MailToRemoveOnEnd": "ectoplasmDrop",
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Deliver",
        "Text": "[Wizard_Objective_0_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_ectoplasm",
          "Message": "[Wizard_Objective_0_Message]",
          "TargetName": "Wizard"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "2500"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "WizardReward2",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Clint": {
    "Name": "[Clint_Name]",
    "Requester": "Clint",
    "Duration": "Week",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Clint_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": [
      {
        "Name": "Monster",
        "Values": [
          {
            "RequiredTags": "",
            "Value": "Target|Bat|LocalizedName|[Clint_RE_Monster_0_LocalizedName]"
          },
          {
            "RequiredTags": "",
            "Value": "Target|Dust Spirit|LocalizedName|[Clint_RE_Monster_1_LocalizedName]"
          },
          {
            "RequiredTags": "",
            "Value": "Target|Skeleton|LocalizedName|[Clint_RE_Monster_2_LocalizedName]"
          },
          {
            "RequiredTags": "",
            "Value": "Target|Grub|LocalizedName|[Clint_RE_Monster_3_LocalizedName]"
          }
        ]
      }
    ],
    "Objectives": [
      {
        "Type": "Slay",
        "Text": "[Clint_Objective_0_Text]",
        "RequiredCount": "50",
        "Data": {
          "TargetName": "{Monster:Target}"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "6000"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "ClintReward",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Linus": {
    "Name": "[Linus_Name]",
    "Requester": "Linus",
    "Duration": "Week",
    "Repeatable": "False",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Linus_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Linus_Objective_0_Text]",
        "RequiredCount": "20",
        "Data": {
          "AcceptedContextTags": "trash_item"
        }
      },
      {
        "Type": "Donate",
        "Text": "[Linus_Objective_1_Text]",
        "RequiredCount": "20",
        "Data": {
          "DropBox": "Dumpster",
          "DropBoxGameLocation": "Railroad",
          "DropBoxIndicatorLocation": "28.5 36",
          "AcceptedContextTags": "trash_item"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "500"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "linusTrashCleanup",
          "NoLetter": "false"
        }
      },
      {
        "Type": "Friendship",
        "Data": {}
      }
    ]
  },
  "Evelyn": {
    "Name": "[Evelyn_Name]",
    "Requester": "Evelyn",
    "Duration": "Month",
    "Repeatable": "False",
    "RequiredTags": "season_spring",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Evelyn_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Evelyn_Objective_0_Text]",
        "RequiredCount": "12",
        "Data": {
          "AcceptedContextTags": "item_leek"
        }
      },
      {
        "Type": "Donate",
        "Text": "[Evelyn_Objective_1_Text]",
        "RequiredCount": "12",
        "Data": {
          "DropBox": "EvelynKitchen",
          "DropBoxGameLocation": "JoshHouse",
          "DropBoxIndicatorLocation": "3 15",
          "AcceptedContextTags": "item_leek"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "2000"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "georgeGifts",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Wizard2": {
    "Name": "[Wizard2_Name]",
    "Requester": "Wizard",
    "Duration": "Week",
    "Repeatable": "False",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Wizard2_Text]",
    "ItemToRemoveOnEnd": "876",
    "MailToRemoveOnEnd": "prismaticJellyDrop",
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Slay",
        "Text": "[Wizard2_Objective_0_Text]",
        "RequiredCount": "1",
        "Data": {
          "TargetName": "Prismatic Slime"
        }
      },
      {
        "Type": "Deliver",
        "Text": "[Wizard2_Objective_1_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_prismatic_jelly",
          "TargetName": "Wizard",
          "Message": "[Wizard2_Objective_1_Message]"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "5000"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "WizardReward",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Robin2": {
    "Name": "[Robin2_Name]",
    "Requester": "Robin",
    "Duration": "Week",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Robin2_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": [
      {
        "Name": "Resource",
        "Values": [
          {
            "RequiredTags": "",
            "Value": "PICK_ITEM Wood, Stone"
          }
        ]
      }
    ],
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Robin2_Objective_0_Text]",
        "RequiredCount": "1000",
        "Data": {
          "AcceptedContextTags": "{Resource:Tags}"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "2500"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "robinResource",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Gunther": {
    "Name": "[Gunther_Name]",
    "Requester": "Gunther",
    "Duration": "Week",
    "Repeatable": "False",
    "RequiredTags": "",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Gunther_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Gunther_Objective_1_Text]",
        "RequiredCount": "100",
        "Data": {
          "AcceptedContextTags": "bone_item"
        }
      },
      {
        "Type": "Donate",
        "Text": "[Gunther_Objective_0_Text]",
        "RequiredCount": "100",
        "Data": {
          "DropBox": "GuntherBox",
          "DropBoxGameLocation": "ArchaeologyHouse",
          "DropBoxIndicatorLocation": "6 8",
          "AcceptedContextTags": "bone_item"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "3500"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "guntherBones",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Caroline": {
    "Name": "[Caroline_Name]",
    "Requester": "Caroline",
    "Duration": "Month",
    "Repeatable": "True",
    "RequiredTags": "island",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Caroline_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": [
      {
        "Name": "Crop",
        "Values": [
          {
            "RequiredTags": "",
            "Value": "PICK_ITEM Pineapple, Taro Root, Ginger"
          }
        ]
      }
    ],
    "Objectives": [
      {
        "Type": "Collect",
        "Text": "[Lewis_Objective_1_Text]",
        "RequiredCount": "100",
        "Data": {
          "AcceptedContextTags": "{Crop:Tags}"
        }
      },
      {
        "Type": "Ship",
        "Text": "[Caroline_Objective_0_Text]",
        "RequiredCount": "100",
        "Data": {
          "AcceptedContextTags": "{Crop:Tags}"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "{Crop:Price}",
          "Multiplier": "50"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "carolineSO",
          "NoLetter": "false"
        }
      }
    ]
  },
  "Willy2": {
    "Name": "[Willy2_Name]",
    "Requester": "Willy",
    "Duration": "Week",
    "Repeatable": "False",
    "RequiredTags": "island, mail_Island_Resort",
    "OrderType": "",
    "SpecialRule": "",
    "Text": "[Willy2_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Fish",
        "Text": "[Willy2_Objective_0_Text]",
        "RequiredCount": "5",
        "Data": {
          "AcceptedContextTags": "item_lionfish"
        }
      },
      {
        "Type": "Fish",
        "Text": "[Willy2_Objective_1_Text]",
        "RequiredCount": "5",
        "Data": {
          "AcceptedContextTags": "item_blue_discus"
        }
      },
      {
        "Type": "Fish",
        "Text": "[Willy2_Objective_2_Text]",
        "RequiredCount": "5",
        "Data": {
          "AcceptedContextTags": "item_stingray"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Money",
        "Data": {
          "Amount": "2500"
        }
      },
      {
        "Type": "Mail",
        "Data": {
          "MailReceived": "WillyTropicalFish",
          "NoLetter": "false"
        }
      }
    ]
  },
  "QiChallenge": {
    "Name": "[QiChallenge_Name]",
    "Requester": "Qi",
    "Duration": "Week",
    "Repeatable": "True",
    "RequiredTags": "NOT_IMPLEMENTED, !rule_QI_BEANS",
    "OrderType": "Qi",
    "SpecialRule": "FIVE_PLAGUES, QI_BEANS",
    "Text": "[QiChallenge_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Ship",
        "Text": "[QiChallenge_Objective_0_Text]",
        "RequiredCount": "500",
        "Data": {
          "AcceptedContextTags": "item_qi_fruit"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "50"
        }
      }
    ]
  },
  "QiChallenge2": {
    "Name": "[QiChallenge2_Name]",
    "Requester": "Qi",
    "Duration": "Month",
    "Repeatable": "True",
    "RequiredTags": "!rule_QI_BEANS",
    "OrderType": "Qi",
    "SpecialRule": "QI_BEANS, DROP_QI_BEANS",
    "Text": "[QiChallenge2_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Ship",
        "Text": "[QiChallenge2_Objective_0_Text]",
        "RequiredCount": "500",
        "Data": {
          "AcceptedContextTags": "item_qi_fruit"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "100"
        }
      }
    ]
  },
  "QiChallenge3": {
    "Name": "[QiChallenge3_Name]",
    "Requester": "Qi",
    "Duration": "Week",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "Qi",
    "SpecialRule": "",
    "Text": "[QiChallenge3_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "JKScore",
        "Text": "[QiChallenge3_Objective_0_Text]",
        "RequiredCount": "50000",
        "Data": {
          "AcceptedContextTags": "placeholder"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "10"
        }
      }
    ]
  },
  "QiChallenge4": {
    "Name": "[QiChallenge4_Name]",
    "Requester": "Qi",
    "Duration": "Month",
    "Repeatable": "True",
    "RequiredTags": "!dropbox_QiChallengeBox",
    "OrderType": "Qi",
    "SpecialRule": "",
    "Text": "[QiChallenge4_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Donate",
        "Text": "[QiChallenge4_Objective_0_Text]",
        "RequiredCount": "4",
        "Data": {
          "DropBox": "QiChallengeBox",
          "DropBoxGameLocation": "QiNutRoom",
          "DropBoxIndicatorLocation": "1 3",
          "AcceptedContextTags": "item_prismatic_shard"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "40"
        }
      }
    ]
  },
  "QiChallenge5": {
    "Name": "[QiChallenge5_Name]",
    "Requester": "Qi",
    "Duration": "Week",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "Qi",
    "SpecialRule": "SC_NO_FOOD",
    "Text": "[QiChallenge5_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "ReachMineFloor",
        "Text": "[QiChallenge5_Objective_0_Text]",
        "RequiredCount": "100",
        "Data": {
          "SkullCave": "true"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "25"
        }
      }
    ]
  },
  "QiChallenge6": {
    "Name": "[QiChallenge6_Name]",
    "Requester": "Qi",
    "Duration": "TwoWeeks",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "Qi",
    "SpecialRule": "QI_COOKING",
    "Text": "[QiChallenge6_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Ship",
        "Text": "[QiChallenge6_Objective_0_Text]",
        "RequiredCount": "100000",
        "Data": {
          "AcceptedContextTags": "quality_qi",
          "UseShipmentValue": "True"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "25"
        }
      }
    ]
  },
  "QiChallenge7": {
    "Name": "[QiChallenge7_Name]",
    "Requester": "Qi",
    "Duration": "Week",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "Qi",
    "SpecialRule": "",
    "Text": "[QiChallenge7_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Gift",
        "Text": "[QiChallenge7_Objective_0_Text]",
        "RequiredCount": "50",
        "Data": {
          "MinimumLikeLevel": "Loved"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "40"
        }
      }
    ]
  },
  "QiChallenge8": {
    "Name": "[QiChallenge8_Name]",
    "Requester": "Qi",
    "Duration": "ThreeDays",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "Qi",
    "SpecialRule": "LEGENDARY_FAMILY",
    "Text": "[QiChallenge8_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Fish",
        "Text": "[QiChallenge8_Objective_0_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_ms._angler"
        }
      },
      {
        "Type": "Fish",
        "Text": "[QiChallenge8_Objective_1_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_glacierfish_jr."
        }
      },
      {
        "Type": "Fish",
        "Text": "[QiChallenge8_Objective_2_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_son_of_crimsonfish"
        }
      },
      {
        "Type": "Fish",
        "Text": "[QiChallenge8_Objective_3_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_radioactive_carp"
        }
      },
      {
        "Type": "Fish",
        "Text": "[QiChallenge8_Objective_4_Text]",
        "RequiredCount": "1",
        "Data": {
          "AcceptedContextTags": "item_legend_ii"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "20"
        }
      }
    ]
  },
  "QiChallenge9": {
    "Name": "[QiChallenge9_Name]",
    "Requester": "Qi",
    "Duration": "Week",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "Qi",
    "SpecialRule": "MINE_HARD",
    "Text": "[QiChallenge9_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "ReachMineFloor",
        "Text": "[QiChallenge9_Objective_0_Text]",
        "RequiredCount": "120",
        "Data": {}
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "50"
        }
      }
    ]
  },
  "QiChallenge10": {
    "Name": "[QiChallenge10_Name]",
    "Requester": "Qi",
    "Duration": "Week",
    "Repeatable": "True",
    "RequiredTags": "",
    "OrderType": "Qi",
    "SpecialRule": "SC_HARD",
    "Text": "[QiChallenge10_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "ReachMineFloor",
        "Text": "[QiChallenge10_Objective_0_Text]",
        "RequiredCount": "100",
        "Data": {
          "SkullCave": "true"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "40"
        }
      }
    ]
  },
  "QiChallenge11": {
    "Name": "[QiChallenge11_Name]",
    "Requester": "Qi",
    "Duration": "Day",
    "Repeatable": "True",
    "RequiredTags": "NOT_IMPLEMENTED",
    "OrderType": "Qi",
    "SpecialRule": "QI_DOUBLE",
    "Text": "[QiChallenge11_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Custom",
        "Text": "[QiChallenge11_Objective_0_Text]",
        "RequiredCount": "120",
        "Data": {
          "AcceptedContextTags": "placeholder"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "10"
        }
      }
    ]
  },
  "QiChallenge12": {
    "Name": "[QiChallenge12_Name]",
    "Requester": "Qi",
    "Duration": "TwoWeeks",
    "Repeatable": "True",
    "RequiredTags": "!dropbox_QiChallengeBox",
    "OrderType": "Qi",
    "SpecialRule": "",
    "Text": "[QiChallenge12_Text]",
    "ItemToRemoveOnEnd": null,
    "MailToRemoveOnEnd": null,
    "RandomizedElements": null,
    "Objectives": [
      {
        "Type": "Donate",
        "Text": "[QiChallenge12_Objective_0_Text]",
        "RequiredCount": "100",
        "Data": {
          "DropBox": "QiChallengeBox",
          "DropBoxGameLocation": "QiNutRoom",
          "DropBoxIndicatorLocation": "1 3",
          "MinimumCapacity": "36",
          "AcceptedContextTags": "color_red/color_dark_red"
        }
      },
      {
        "Type": "Donate",
        "Text": "[QiChallenge12_Objective_1_Text]",
        "RequiredCount": "100",
        "Data": {
          "DropBox": "QiChallengeBox",
          "DropBoxGameLocation": "QiNutRoom",
          "DropBoxIndicatorLocation": "1 3",
          "AcceptedContextTags": "color_orange/color_copper/color_dark_orange"
        }
      },
      {
        "Type": "Donate",
        "Text": "[QiChallenge12_Objective_2_Text]",
        "RequiredCount": "100",
        "Data": {
          "DropBox": "QiChallengeBox",
          "DropBoxGameLocation": "QiNutRoom",
          "DropBoxIndicatorLocation": "1 3",
          "AcceptedContextTags": "color_yellow/color_dark_yellow/color_gold"
        }
      },
      {
        "Type": "Donate",
        "Text": "[QiChallenge12_Objective_3_Text]",
        "RequiredCount": "100",
        "Data": {
          "DropBox": "QiChallengeBox",
          "DropBoxGameLocation": "QiNutRoom",
          "DropBoxIndicatorLocation": "1 3",
          "AcceptedContextTags": "color_green/color_dark_green/color_lime/color_yellow_green/color_jade"
        }
      },
      {
        "Type": "Donate",
        "Text": "[QiChallenge12_Objective_4_Text]",
        "RequiredCount": "100",
        "Data": {
          "DropBox": "QiChallengeBox",
          "DropBoxGameLocation": "QiNutRoom",
          "DropBoxIndicatorLocation": "1 3",
          "AcceptedContextTags": "color_blue/color_dark_blue/color_dark_cyan/color_light_cyan/color_cyan/color_aquamarine"
        }
      },
      {
        "Type": "Donate",
        "Text": "[QiChallenge12_Objective_5_Text]",
        "RequiredCount": "100",
        "Data": {
          "DropBox": "QiChallengeBox",
          "DropBoxGameLocation": "QiNutRoom",
          "DropBoxIndicatorLocation": "1 3",
          "AcceptedContextTags": "color_purple/color_dark_purple/color_dark_pink/color_pale_violet_red/color_poppyseed/color_iridium"
        }
      }
    ],
    "Rewards": [
      {
        "Type": "Gems",
        "Data": {
          "Amount": "35"
        }
      }
    ]
  }
}

Format

Objectives

Each order can have any number of objectives of the given types.

Objective type Description
Collect The player must obtain items that match the AcceptedContextTags field. The items must never have been in a player inventory. This applies to any method of collecting items (e.g. harvesting crops, slaying monsters, collecting from a machine, cooking a dish, etc). There's no restriction to how the item can be collected; e.g. a special order for emeralds will be equally find with gems found in the mines or produced in a crystalarium.
Deliver The player must give items that match the AcceptedContextTags field to a given character. This doesn't count towards the character's gift limit.
Fish Equivalent to Collect, but only counts items found by fishing.
Gift The player must give items that match the AcceptedContextTags field to a given character. This does count towards the character's gift limit. Parameters can include a minimum gift taste level.
JKScore The player must achieve at least the given Junimo Kart score. This tracks the highest score reached while the special order is active.
ReachMineFloor The player must reach or exceed the given floor in the mines or the Skull Cavern (depending on the SkullCave field) while the special order is active.
Ship The player must ship items through their shipping bin which match the AcceptedContextTags field. The quest objective progresses when the items are collected, not when they're put in the bin. Player still get money for the shipped items as they would normally.
Donate The player must add items that match the AcceptedContextTags field to a dropbox.
Slay The player must kill a minimum number of monsters of the given name while the special order is active.

Rewards

Each order can have any number of rewards of the given types.

Reward Description
Friendship Increases the amount of friendship with the requesting NPC. TODO: amount
Gems Rewards the farmer a set amount of Qi Gems.
Mail Sets a mail flag, which can be used to trigger custom events, dialogue, or other changes.
Money Rewards the farmer a set amount of money or a value that depends on the donated item.
ResetEvent TODO

Context tags

The AcceptedContextTags fields specify context tags for required items. This consists of a string with the following format:

syntax effect
! When prefixed to a context tag, indicates that an item must not have that tag.
, Separates any number of required context tags. For example, A, B, C matches items that have all of those tags.
/ Separates any number of alternate context tags. For example, A/B/C matches items that have at least one of those tags.

For example, !forage_item, category_vegetable/category_fruit, quality_gold would match non-forage gold-quality items which are either fruits or vegetables.

Смотри также