Модификации:Особые задания

Материал из Stardew Valley Wiki
Перейти к навигации Перейти к поиску

Индекс

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

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

  • Rewards are marked as "to do"

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

На этой странице объясняется, как игра хранит и использует специальные заказы. Это расширенное руководство для разработчиков модов.

Источник

Задания храняться в 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"
        }
      }
    ]
  }
}

Формат

Цель

Каждое задание может иметь любое количество целей данного типа.

Тип цели Описание
Collect Игрок должен получить предметы, соответствующие полю AcceptedContextTags. Эти предметы никогда не должны были находиться в инвентаре игрока. Это относится к любому способу сбора предметов (например, сбор урожая, убийство монстров, приготовление блюда и т.д.). Нет никаких ограничений на то, как предмет может быть собран; например, задание на изумруды будет в равной степени найден с драгоценными камнями, найденными в шахтах или произведенными в кристалляриуме.
Deliver Игрок должен отдать предметы, соответствующие полю AcceptedContextTags для данного персонажа. Не засчитывается в лимит подарков персонажа.
Fish Эквивалентно Collect, но только подсчитывает предметы, найденные во время рыбалки.
Gift Игрок должен отдать предметы, соответствующие полю AcceptedContextTags для данного персонажа. Это засчитывается в лимит подарков персонажа. Параметры могут включать минимальный уровень отношения к подарку.
JKScore Игрок должен достичь, по крайней мере, заданного количества очков в Джунимо Карт. Отслеживает наивысший балл, набранный во время действия задания.
ReachMineFloor Игрок должен достичь или превысить заданный этаж в шахте или Пещере Черепа (в зависимости от поля SkullCave) пока действует задание.
Ship Игрок должен отправлять свои предметы, через отгрузку, которые соответствуют полю AcceptedContextTags. Цель задания выполняется, когда предметы собраны, а не когда они помещены в ящик для отгрузки. Игрок по-прежнему получает деньги за отправленные товары, как обычно.
Donate Игрок должен добавить предметы, соответствующие полю AcceptedContextTags в ящик для отгрузки.
Slay Игрок должен убить нужное количество монстров с данным именем, пока действует задание.

Награды

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

Награда Описание
Friendship Увеличивает количество дружбы с запрашивающим NPC. TODO: сумма
Gems Вознаграждает фермера определенной суммой Драгоценных камней Ки.
Mail Устанавливает флаг почты, который можно использовать для запуска пользовательских событий, диалога или других изменений.
Money Вознаграждает фермера определенной суммой денег или стоимостью, которая зависит от отданного предмета.
ResetEvent TODO

Контекстные теги

Поля AcceptedContextTags определяют контекстные теги для необходимых элементов. Он состоит из строки следующего формата:

Синтаксис Эффект
! При добавлении префикса к тегу контекста указывает, что элемент отрицается.
, Отделяет любое количество необходимых контекстных тегов. Например, A, B, C соответствует элементам, которые имеют все из этих тегов.
/ Разделяет любое количество альтернативных контекстных тегов. Например, A/B/C соответствует элементам, у которых есть хотя бы один из этих тегов.

Например, !forage_item, category_vegetable/category_fruit, quality_gold будет соответствовать предметам, не относящимся к кормовому золоту, которые являются фруктами или овощами.

Смотри также