Hello guys, im trying to understand some pieces of a script and i would like some help...
- Code:
-
short modIndex
short scopeMod
short modEffect
short weapFlags
ref currWeapon
;get the player weapon
set currWeapon to player.GetEquippedObject 5
;scope flag set?
if GetWeaponHasScope currWeapon
; check the possible modifications to see if it can have a scope mod attached to it
set scopeMod to 0
set modIndex to 1
Label 10
set modEffect to GetWeaponItemModEffect modIndex currWeapon
if modEffect == 14
set scopeMod to modIndex
else
set modIndex to modIndex + 1
if modIndex < 4
GoTo 10
endif
endif
if scopeMod
; scope comes from a mod.. see if player has that mod attached
set weapFlags to Player.GetEquippedWeaponModFlags
if LogicalAnd  weapFlags scopeMod
; has scope mod attached
else
; no scope mod attached
endif
else
; weapon has scope built into it
endif
else
; scope not available for this weapon
endif
In this part:
- Code:
-
set modEffect to GetWeaponItemModEffect modIndex currWeapon
if modEffect == 14
set scopeMod to modIndex
else
set modIndex to modIndex + 1
if modIndex < 4
GoTo 10
endif
endif
Lets say that the slot index 3 it's for the scope. It will loop until modIndex reach 3, then
- Code:
-
if modEffect == 14
will be true and, in the line
- Code:
-
set scopeMod to modIndex
, scopeMod will assume the same value of modIndex, which means 3. CORRECT?
This part below doesn't make sense to me. If what? If scopeMod is different from zero?
- Code:
-
if scopeMod
At last, what this piece do?
- Code:
-
set weapFlags to Player.GetEquippedWeaponModFlags
if LogicalAnd  weapFlags scopeMod
I know that the function GetEquippedWeaponFlags returns the value 1,2 or 4 (or a combination of then: 2,5,6 or 7). Assuming that there are three mods into the weapon, the
function will return the value 7.
This part
- Code:
-
if LogicalAnd weapFlags scopeMod
will check if both are different from zero or what?