DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ OnInputUserDataProcess()

bool WeaponManager::OnInputUserDataProcess ( int userDataType,
ParamsReadContext ctx )
inlineprivate

См. определение в файле WeaponManager.c строка 630

631 {
632 Weapon_Base wpn;
633 int mi;
634 InventoryLocation il;
635 int slotID;
636 bool accepted = false;
637 if( userDataType == INPUT_UDT_WEAPON_ACTION)
638 {
639 if (!ctx.Read(m_PendingWeaponAction))
640 return false;
641
643 return false;
644
646 {
647 g_Game.ClearJunctureEx(m_player, m_PendingTargetMagazine);
649 }
650 m_InProgress = true;
651 m_IsEventSended = false;
652 Magazine mag = NULL;
653
654 Weapon_Base.CastTo( wpn, m_player.GetItemInHands() );
655 if ( wpn )
656 mi = wpn.GetCurrentMuzzle();
657
658 switch (m_PendingWeaponAction)
659 {
661 {
662 if ( !ctx.Read(mag) )
663 break;
664
665 if ( !mag || !wpn )
666 break;
667
668 slotID = wpn.GetSlotFromMuzzleIndex(mi);
669 il = new InventoryLocation();
670 il.SetAttachment(wpn,mag,slotID);
671 if( g_Game.AddInventoryJunctureEx(m_player, mag, il, false, 10000) )
672 accepted = true;
673
675 break;
676 }
678 {
679 if ( !ctx.Read(mag) )
680 break;
681
682 il = new InventoryLocation();
683 if (!il.ReadFromContext(ctx))
684 break;
685
686 if ( !mag || !wpn )
687 break;
688
689 if ( !wpn.GetMagazine(mi) )
690 break;
691
692 if ( g_Game.AddActionJuncture(m_player,mag,10000) )
693 accepted = true;
696
697 break;
698 }
700 {
701 il = new InventoryLocation();
702 if ( !il.ReadFromContext(ctx) )
703 break;
704
705 if ( !il.IsValid() )
706 break;
707
708 if ( !wpn )
709 break;
710
711 Magazine det_mag = wpn.GetMagazine(mi);
712 mag = Magazine.Cast(il.GetItem());
713 if ( !det_mag || ( mag != det_mag) )
714 break;
715
716 if (g_Game.AddInventoryJunctureEx(m_player, il.GetItem(), il, true, 10000))
717 accepted = true;
720 break;
721 }
723 {
724 ctx.Read(mag);
725
726 if ( !mag )
727 break;
728
729 if( g_Game.AddActionJuncture(m_player,mag,10000) )
730 accepted = true;
732 break;
733 }
735 {
736 ctx.Read(mag);
737
738 if ( !mag )
739 break;
740
741 if( g_Game.AddActionJuncture(m_player,mag,10000) )
742 accepted = true;
744 break;
745 }
746 case AT_WPN_UNJAM:
747 {
748 accepted = true;
749 //Unjam();
750 break;
751 }
753 {
754 accepted = true;
755 break;
756 }
758 {
759 accepted = true;
760 break;
761 }
762 default:
763 Error("unknown actionID=" + m_PendingWeaponAction);
764 break;
765 }
766 DayZPlayerSyncJunctures.SendWeaponActionAcknowledgment(m_player, m_PendingWeaponActionAcknowledgmentID, accepted);
767 }
768
769 return accepted;
770 }
const int INPUT_UDT_WEAPON_ACTION
const int AT_WPN_DETACH_MAGAZINE
const int AT_WPN_ATTACH_MAGAZINE
const int AT_WPN_LOAD_BULLET
const int AT_WPN_SWAP_MAGAZINE
const int AT_WPN_LOAD_MULTI_BULLETS_START
const int AT_WPN_EJECT_BULLET
const int AT_WPN_SET_NEXT_MUZZLE_MODE
DayZGame g_Game
Определения DayZGame.c:3942
proto native bool IsValid()
verify current set inventory location
proto native void SetAttachment(notnull EntityAI parent, EntityAI e, int slotId)
sets current inventory location type to Attachment with slot id set to <slotId>
bool ReadFromContext(ParamsReadContext ctx)
Определения InventoryLocation.c:310
proto native EntityAI GetItem()
returns item of current inventory location
proto bool Read(void value_in)
PlayerBase m_player
Определения WeaponManager.c:5
int m_PendingWeaponActionAcknowledgmentID
Определения WeaponManager.c:9
bool m_IsEventSended
Определения WeaponManager.c:18
bool m_InProgress
Определения WeaponManager.c:17
Magazine m_PendingTargetMagazine
Определения WeaponManager.c:10
ref InventoryLocation m_PendingInventoryLocation
Определения WeaponManager.c:13
int m_PendingWeaponAction
Определения WeaponManager.c:12
void Error(string err)
Messagebox with error message.
Определения EnDebug.c:90

Перекрестные ссылки AT_WPN_ATTACH_MAGAZINE, AT_WPN_DETACH_MAGAZINE, AT_WPN_EJECT_BULLET, AT_WPN_LOAD_BULLET, AT_WPN_LOAD_MULTI_BULLETS_START, AT_WPN_SET_NEXT_MUZZLE_MODE, AT_WPN_SWAP_MAGAZINE, AT_WPN_UNJAM, Error(), g_Game, InventoryLocation::GetItem(), INPUT_UDT_WEAPON_ACTION, InventoryLocation::IsValid(), m_InProgress, m_IsEventSended, m_PendingInventoryLocation, m_PendingTargetMagazine, m_PendingWeaponAction, m_PendingWeaponActionAcknowledgmentID, m_player, Serializer::Read(), InventoryLocation::ReadFromContext(), DayZPlayerSyncJunctures::SendWeaponActionAcknowledgment() и InventoryLocation::SetAttachment().