private void ObjectInteraction(Client client, string eventName, object[] arguments)
        {
            NetHandle  target   = (NetHandle)arguments[0];
            int        model    = Convert.ToInt32(arguments[1]);
            Vector3    position = (Vector3)arguments[2];
            Vector3    rotation = (Vector3)arguments[3];
            EntityType entType  = (EntityType)Convert.ToInt32(arguments[4]);

            if (client.position.DistanceTo(position) > 10f)
            {
                return;
            }
            if (InteractionObjects.Contains(model))
            {
                var iData = new InteractData
                {
                    Client     = client,
                    Handle     = target,
                    Model      = model,
                    Position   = position,
                    Rotation   = rotation,
                    EntityType = entType
                };
                OnPlayerInteractWithObject?.Invoke(model, iData);
                //logger.Debug($"Player {client.socialClubName} interact with valid Object ({model})");
            }
        }
        private void InteractionController_OnPlayerInteractWithObject(int model, InteractData data)
        {
            if (!AtmModels.Contains(model))
            {
                return;
            }
            API.sendNotificationToPlayer(data.Client, "Mit Bankautomat Interagiert");

            int accountNumber = GetCharacterBankAccount(data.Client);

            OpenAtmMenuForPlayer(data.Client, accountNumber);
        }
Beispiel #3
0
 public virtual void Interact(InteractData data)
 {
     Destroy(gameObject);
 }