Scriptname CB_PlayerAlias_Script extends ReferenceAlias
{Следим за игроком}
Import Game
ObjectReference Property BoxWeapon Auto ; хранилище в ячейке CB_Cell
ObjectReference Property BoxArmor Auto
ObjectReference Property BoxPotion Auto
ObjectReference Property BoxScroll Auto
ObjectReference Property BoxFood Auto
ObjectReference Property BoxIngr Auto
ObjectReference Property BoxBook Auto
ObjectReference Property BoxMisc Auto
Ammo Property CB_Weapon Auto ; репозиторий
Armor Property CB_Armor Auto
Potion Property CB_Potion Auto
Scroll Property CB_Scroll Auto
Potion Property CB_Food Auto
Ingredient Property CB_Ingredient Auto
Book Property CB_Book Auto
MiscObject Property CB_Misc Auto
Int iNumKeysPressed = 0
Event OnObjectEquipped(Form akBaseObject, ObjectReference akReference)
If akBaseObject == CB_Weapon
GetPlayer().UnEquipItem(CB_Weapon, False, True) ; снять одетый репозиторий
DisablePlayerControls(abMenu = True) ; запретить и скрыть меню
EnablePlayerControls(abMenu = True) ; разрешить меню
BoxWeapon.Activate(GetPlayer()) ; открыть хранилище
ElseIf akBaseObject == CB_Armor
GetPlayer().UnEquipItem(CB_Armor, False, True)
DisablePlayerControls(abMenu = True)
EnablePlayerControls(abMenu = True)
BoxArmor.Activate(GetPlayer())
ElseIf akBaseObject == CB_Potion
; GetPlayer().AddItem(CB_Potion, 1, True)
DisablePlayerControls(abMenu = True)
EnablePlayerControls(abMenu = True)
BoxPotion.Activate(GetPlayer())
ElseIf akBaseObject == CB_Scroll
GetPlayer().UnEquipItem(CB_Scroll, False, True)
DisablePlayerControls(abMenu = True)
EnablePlayerControls(abMenu = True)
BoxScroll.Activate(GetPlayer())
ElseIf akBaseObject == CB_Food
; GetPlayer().AddItem(CB_Food, 1, True)
DisablePlayerControls(abMenu = True)
EnablePlayerControls(abMenu = True)
BoxFood.Activate(GetPlayer())
ElseIf akBaseObject == CB_Ingredient
; GetPlayer().AddItem(CB_Ingredient, 1, True)
DisablePlayerControls(abMenu = True)
EnablePlayerControls(abMenu = True)
BoxIngr.Activate(GetPlayer())
ElseIf akBaseObject == CB_Book
GetPlayer().UnEquipItem(CB_Book, False, True)
DisablePlayerControls(abMenu = True)
EnablePlayerControls(abMenu = True)
BoxBook.Activate(GetPlayer())
ElseIf akBaseObject == CB_Misc
GetPlayer().UnEquipItem(CB_Misc, False, True)
DisablePlayerControls(abMenu = True)
EnablePlayerControls(abMenu = True)
BoxMisc.Activate(GetPlayer())
EndIf
EndEvent
Event OnItemRemoved(Form akBaseObject, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer)
iNumKeysPressed = Input.GetNumKeysPressed()
If iNumKeysPressed == 2
ObjectReference itemREF = FindClosestReferenceOfTypeFromRef(akBaseObject, GetPlayer(), 256)
If akBaseObject as Weapon
BoxWeapon.AddItem(itemREF, aiItemCount, True)
ElseIf akBaseObject as Ammo
BoxWeapon.AddItem(itemREF, aiItemCount, True)
ElseIf akBaseObject as Armor
BoxArmor.AddItem(itemREF, aiItemCount, True)
ElseIf akBaseObject as Potion
If (akBaseObject as Potion).isFood()
BoxFood.AddItem(itemREF, aiItemCount, True)
Else
BoxPotion.AddItem(itemREF, aiItemCount, True)
EndIf
ElseIf akBaseObject as Scroll
BoxScroll.AddItem(itemREF, aiItemCount, True)
ElseIf akBaseObject as Ingredient
BoxIngr.AddItem(itemREF, aiItemCount, True)
ElseIf akBaseObject as Book
BoxBook.AddItem(itemREF, aiItemCount, True)
ElseIf akBaseObject as MiscObject
BoxMisc.AddItem(itemREF, aiItemCount, True)
EndIf
itemREF.Disable()
itemREF.Delete()
EndIf
If akBaseObject == CB_Weapon
ReturnItem(akBaseObject, akDestContainer)
ElseIf akBaseObject == CB_Armor
ReturnItem(akBaseObject, akDestContainer)
ElseIf akBaseObject == CB_Potion
ReturnItem(akBaseObject, akDestContainer)
ElseIf akBaseObject == CB_Scroll
ReturnItem(akBaseObject, akDestContainer)
ElseIf akBaseObject == CB_Food
ReturnItem(akBaseObject, akDestContainer)
ElseIf akBaseObject == CB_Ingredient
ReturnItem(akBaseObject, akDestContainer)
ElseIf akBaseObject == CB_Book
ReturnItem(akBaseObject, akDestContainer)
ElseIf akBaseObject == CB_Misc
ReturnItem(akBaseObject, akDestContainer)
EndIf
EndEvent
Function ReturnItem(Form _BaseItem, ObjectReference _DestContainer)
If !_DestContainer
If GetPlayer().GetItemCount(_BaseItem) == 0
GetPlayer().AddItem(_BaseItem, 1, True)
EndIf
Else
If GetPlayer().GetItemCount(_BaseItem) == 0
_DestContainer.RemoveItem(_BaseItem, 1, True, GetPlayer())
EndIf
EndIf
EndFunction