public void OnPlayerTelephoneTurnoffHandler(Client sender, params object[] args) { TelephoneCall call = sender.GetAccountEntity().CharacterEntity.CurrentCellphone.CurrentCall; call?.Dispose(); //TODO: Wyłączanie telefonu }
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."); } }
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."); }