| 179 | } |
| 180 | |
| 181 | void SkillBarSetSkill(OsiArgumentDesc const & args) |
| 182 | { |
| 183 | auto characterGuid = args[0].String; |
| 184 | auto slot = args[1].Int32; |
| 185 | auto skillId = ToFixedString(args[2].String); |
| 186 | |
| 187 | auto * stats = gOsirisProxy->GetLibraryManager().GetStats(); |
| 188 | auto skillDataFs = ToFixedString("SkillData"); |
| 189 | if (!stats->ObjectExists(skillId, skillDataFs)) { |
| 190 | OsiError("'" << skillId.Str << "' is not a valid skill ID!"); |
| 191 | return; |
| 192 | } |
| 193 | |
| 194 | auto skillBarItem = SkillBarGetSlot(characterGuid, slot); |
| 195 | if (skillBarItem == nullptr) return; |
| 196 | |
| 197 | skillBarItem->Type = esv::SkillBarItem::kSkill; |
| 198 | skillBarItem->SkillOrStatId = skillId; |
| 199 | skillBarItem->ItemHandle = ObjectHandle{}; |
| 200 | |
| 201 | auto character = FindCharacterByNameGuid(characterGuid); |
| 202 | character->PlayerData->Dirty = true; |
| 203 | } |
| 204 | |
| 205 | void SkillBarSetItem(OsiArgumentDesc const & args) |
| 206 | { |
nothing calls this directly
no test coverage detected