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); }
public virtual void Interact(InteractData data) { Destroy(gameObject); }