Пример #1
0
        public void OnPlayerTelephoneTurnoffHandler(Client sender, params object[] args)
        {
            TelephoneCall call = sender.GetAccountEntity().CharacterEntity.CurrentCellphone.CurrentCall;

            call?.Dispose();

            //TODO: Wyłączanie telefonu
        }
Пример #2
0
        public void OnPlayerTelephoneCallHandler(Client sender, params object[] args)
        {
            //args[0] to numer na jaki dzwoni
            AccountEntity player = sender.GetAccountEntity();

            if (Convert.ToInt32(args[0]) == 555 && player.CharacterEntity.OnDutyGroup is CrimeGroup group)
            {
                if (group.CanPlayerCallCrimeBot(player))
                {
                    List <string> names = XmlHelper.GetXmlObjects <CrimeBotPosition>(Path.Combine(Utils.XmlDirectory, "CrimeBotPositions"))
                                          .Select(n => n.Name).ToList();
                    sender.TriggerEvent("OnPlayerCalledCrimeBot", names);
                    return;
                }
            }

            if (sender.GetAccountEntity().CharacterEntity.CurrentCellphone.CurrentCall != null)
            {
                sender.SendInfo("Obecnie prowadzisz rozmowę telefoniczną. Zakończ ją klawiszem END.");
                return;
            }
            // FixMe animka dzwonienia przez telefon
            //NAPI.playPlayerAnimation(senderPlayer.Client, (int)(AnimationFlags.AllowPlayerControl | AnimationFlags.Loop),
            //    "cellphone@first_person", "cellphone_call_listen_base");

            int number = Convert.ToInt32(args[0]);

            if (EntityHelper.GetAccounts().Any(p => p.CharacterEntity.CurrentCellphone.Number == number))
            {
                CharacterEntity getterCharacter = EntityHelper.GetAccounts()
                                                  .Single(p => p.CharacterEntity.CurrentCellphone.Number == number).CharacterEntity;

                if (getterCharacter.CurrentCellphone.CurrentCall != null)
                {
                    sender.SendChatMessage("~#ffdb00~",
                                           "Wybrany abonent prowadzi obecnie rozmowę, spróbuj później.");
                    return;
                }

                CharacterEntity senderCharacter = sender.GetAccountEntity().CharacterEntity;

                TelephoneCall call = new TelephoneCall(senderCharacter, getterCharacter);
                sender.GetAccountEntity().CharacterEntity.CurrentCellphone.CurrentCall = call;

                call.Timer.Elapsed += (o, eventArgs) =>
                {
                    sender.SendChatMessage("~#ffdb00~",
                                           "Wybrany abonent ma wyłączony telefon, bądź znajduje się poza zasięgiem, spróbuj później.");
                    call.Dispose();
                };
            }
            else
            {
                sender.SendChatMessage("~#ffdb00~",
                                       "Wybrany abonent ma wyłączony telefon, bądź znajduje się poza zasięgiem, spróbuj później.");
            }
        }
Пример #3
0
        public void OnPlayerCellphonePickUpHandler(Client sender, params object[] args)
        {
            Cellphone     cellphone     = sender.GetAccountEntity().CharacterEntity.CurrentCellphone;
            TelephoneCall telephoneCall = cellphone.CurrentCall;


            if (telephoneCall.Getter.CurrentCellphone.CurrentCall != null)
            {
                telephoneCall.Getter.SendWarning("Aby odebrać musisz zakończyć bieżące połączenie.");
                return;
            }

            //NAPI.playPlayerAnimation(telephoneCall.Getter.Client, (int)(AnimationFlags.AllowPlayerControl),
            //    "cellphone@first_person", "cellphone_call_listen_base");

            telephoneCall.Open();

            telephoneCall.Getter.SendInfo("Odebrano telefon, aby zakończyć rozmowę naciśnij klawisz END.");
            telephoneCall.Sender.SendInfo("Rozmówca odebrał telefon, aby zakończyć rozmowę naciśnij klawisz END.");
        }