假设你的Character项目是这样的:

Arrok’s chest Armor 被设置为 LeatherTunic. 对于这个例子,让我们把LeatherTunic 定义成这样:

更改自定义字段

改变 Arrok’s chest 自定义字段与另一个 Armor 项目, 比如 ChainMail, 你可以设置 chest Property 成 ChainMail’s 对象. 单自定义字段将自动保存。

void SetArmor()
{
  GDECharacterData arrok;
  GDEArmorData chainMail;

  // 读取 Arrok's 数据
  GDEDataManager.DataDictionary.TryGetCustom(GDEItemKeys.Character_Arrok, out arrok);

  //读取ChainMail's数据
  GDEDataManager.DataDictionary.TryGetCustom(GDEItemKeys.Armor_ChainMail, out chainMail);

  // 设置 Arrok's chest Property 为 chainMail object
  arrok.chest = chainMail;
}

你可以用类似的方式修改自定义列表。您可以通过添加新条目修改自定义列表。

删除条目,或改变现有的条目。修改自定义列表之后,你必须调用它的Set 方法.

void SetArmorList()
{
  GDEShopData shop;
  GDEArmorData chainMail;
  GDEArmorData leatherTunic;

  // 读取 shop, chainMail, 以及leatherTunic's 数据 ...

  //如果 shop 有一个 List armorInventory
  //你将能够添加条目
  shop.armorInventory.Add(chainMail);

  //删除条目
  shop.armorInventory.RemoveAt(2);

  //改变任何特定索引到一个新条目
  shop.armorInventory[0] = leatherTunic;

  //一旦你完成修改,调用 Set!
  shop.Set_armorInventory();
}

修改自定义字段的数据

修改自定义类型的字段遵循相同的规则修改基本和列表字段。基础领域被自动保存,表字段需要调用它们的Set设置方法这里有一个例子,我如何 在Arrok chest armor 修改值。

void ModifyArmor()
{
  GDECharacterData arrok;

  //读取Arrok's 数据
  GDEDataManager.DataDictionary.TryGetCustom(GDEItemKeys.Character_Arrok, out arrok);

  //使用 Properties on chest
  //在 Arrok's armor上修改数据
  arrok.chest.attack_power_delta = 20;
  arrok.chest.name += " (Enchanted)";

  // .. 一段时间后,
  //以类似的方式重置自定义字段
  arrok.chest.Reset_attack_power_delta();
  arrok.chest.Reset_name();

  //重置自定义类型的所有领域
  arrok.chest.ResetAll();
}