Pemahaman Slot Mask dan Biped Object di Skyrim

Pemahaman Slot Mask dan Biped Object di Skyrim

Dalam permainan Skyrim, Slot Mask dan Biped Object adalah dua konsep penting dalam sistem armor dan perlengkapan. Pada artikel ini, kita akan membahas lebih lanjut tentang slot mask dan bagaimana cara menggunakan keduanya.

Slot Mask

Slot Mask adalah kode biner yang digunakan untuk menentukan slot armor yang dipegang oleh suatu item. Misalnya, jika sebuah item memiliki slot armor pada tubuh, lengan, dan lengank, maka nilai slot mask-nya adalah penjumlahan dari nilai slot-mask masing-masing bagian.

Contoh: Jika sebuah item mengambil alih slot armor untuk tubuh (kSlotMask32), lengan (kSlotMask33), dan lengank (kSlotMask34), maka nilai slot mask-nya adalah penjumlahan nilai masing-masing bagian (0x00000004 + 0x00000008 + 0x00000010 = 4 + 8 + 16) untuk mendapatkan nilai slot mask yang sebenarnya (28).

Biped Object

Biped Object adalah objek bipedal yang terdiri atas bagian-bagian tubuh, seperti kepala, tubuh, lengan, dan lengank. Nama-nama objek bipedal dapat ditemukan dalam tab 'Body Data' jendela Race atau ketika menentukan sebuah item ke slot equip.

Contoh Pemrograman

Berikut adalah contoh pemrograman yang menunjukkan cara iterasi melalui semua armor yang sedang dipakai oleh suatu aktor dan mencari nama dari item-item yang dienkant:

String[] GetWornEnchantedFormNames(Actor target)
 String[] wornEnchantedForms = new String[30]
 int index
 int slotsChecked

 slotsChecked += 0x00100000
 slotsChecked += 0x00200000 ;ignore reserved slots
 slotsChecked += 0x80000000

 int thisSlot = 0x01
 while (thisSlot < 0x80000000)
 if (Math.LogicalAnd(slotsChecked, thisSlot) != thisSlot) ;only check slots we haven't found anything equipped on already
 Armor thisArmor = target.GetWornForm(thisSlot) as Armor
 if (thisArmor)
 if (thisArmor.GetEnchantment()) ;check for basic enchantments
 wornEnchantedForms[index] = thisArmor.getName()
 index += 1
 elseif (WornObject.GetEnchantment(target, 0, thisSlot)) ;check for player-added enchantments
 wornEnchantedForms[index] = WornObject.GetDisplayName(target, 0, thisSlot)
 if (!wornEnchantedForms[index]) ;if it wasn't given a custom name, take the item's original name:
 wornEnchantedForms[index] = thisArmor.getName()
 endif
 index += 1
 endif
 slotsChecked += thisArmor.GetSlotMask() ;add all slots this item covers to our slotsChecked variable
 else ;no armor was found on this slot
 slotsChecked += thisSlot
 endif
 endif
 thisSlot *= 2 ;double the number to move on to the next slot
 endWhile
 return wornEnchantedForms
EndFunction

Lihat Juga

  • Suggested Slot Mask Usage
  • Skyrim Bodyparts

Leave a comment