the Witcher 3 modding 自动拾取物品的API总结
00 分钟
2023-7-21
2023-11-23
type
status
date
slug
summary
tags
category
icon
password
Email
💓
落絮无声春堕泪,行云有影月含羞。——吴文英《浣溪沙》

全局函数

  • theServer : CServerInterface
  • theUI : CGuiWitcher

自动采集战利品mod

有关类的继承关系
SItemUniqueId:每个物品(游戏内的每一个道具或者掉落物)所具有的唯一Id

CGameplayEntity

  • GetInventory()→CInventoryComponent:获取一个组件的详细列表,相当于一个list,存储了很多的小组件。

W3Container 容器(物品组)类

  • HasQuestItem()→bool:检查是否具有任务道具项目
  • usedByCiri()→bool:检查角色是否是希里,如果是则返回true;或使用 (W3ReplacerCiri)thePlayer来检查。
  • OnContainerClosed
  • InformClueStash
  • DisableIfEmpty
  • UpdateContainer

W3ActorRemains

  • HasTrophyItems()→bool:检查是否具有战利品

CInventoryComponent 组件列表类

  • GetAllItemsQuantity()→int:获取存储的所有的组件的数量
  • GetAllItems(out list: array<SItemUniqueId>):将组件列表转换为真正的列表:array,其中每一个元素都可以用SItemUniqueId来表示
  • ItemHasTag(itemId, tag)→bool:检查此id的元素是否具有tag标签,满足返回true。
    • 注意:是否是掉落物的标签使用 Lootable 来检查
  • GetItemEncumbrance(itemId):获取id的物品的重量
  • GetItemLocalizedNameByUniqueID(itemId)→string:获取id的物品的原始名称(非本地)
  • GetItemQuality(itemId)→int:获取id元素的品质
  • GetItemQuantity(itemId)→int:获取id元素的总数量
  • NotifyItemLooted(itemId):通知此id物品已经被拾取:处于Lootable状态
  • GiveItemTo(inventory, SItemUniqueId):将此物品放入另一个容器中,第一个参数如果是GetWitcherPlayer().inv,则说明放入主角的背包中。

GetWitcherPlayer

  • startInvUpdateTransaction
  • FinishInvUpdateTransaction
  • InformClueStash
  • AddGwentCard(cardName, account):获取account张名称为cardName的昆特牌,放入主角背包。

Global

  • GetLocStringByKeyExt(string):获取以string为原始名称的本地名称(本地化是物品真正的名称)
  • CNewNPC = GetNPC()
  • event:OnDrinkPotionHold

theGame

  • theGame.GetGuiManager().ShowNotification(str, time);

thePlayer

  • IsInCombat()→bool: 是否处于战斗状态

theInput

  • theInput:RegisterListener(listener, eventName, actionName):注册监听器,用于事件处理,


评论
  • Twikoo
  • Valine