コード例 #1
0
        /// <summary>
        /// Обработчик логина игрока
        /// </summary>
        private void PlayerLogin(Client player, object[] args)
        {
            var email    = args[0].ToString();
            var password = args[1].ToString();
            var account  = _accountsProvider.Get(email, password);

            if (account == null)
            {
                API.triggerClientEvent(player, ServerEvent.BAD_LOGIN);
                return;
            }
            var playerInfo = _playersProvider.GetInfo(account.Id);

            _playerInfoManager.Add(player, playerInfo);
            API.setPlayerHealth(player, playerInfo.Health);
            API.triggerClientEvent(player, ServerEvent.HIDE_AUTH);
            if (!string.IsNullOrEmpty(playerInfo.Name))
            {
                ProcessLogin(player, playerInfo);
                LoadPlayerVehicles(player, playerInfo);
                _inventoryManager.EquipWeapon(player);
                _giftsManager.ProcessDaysGift(player, account);
            }
            else
            {
                API.setEntityDimension(player, (int)-playerInfo.AccountId);
                _creatingCharManager.ShowCreator(player);
            }
            account.LastLogin = DateTime.Now;
            _accountsProvider.Update(account);
            _giftsManager.StartGiftsTimer(player);
        }
コード例 #2
0
 /// <summary>
 /// Поместить игрока в начальную локацию
 /// </summary>
 private void SetPlayerInStartLocation(Client player)
 {
     API.triggerClientEvent(player, ServerEvent.HIDE_CHAR_CREATE);
     API.triggerClientEvent(player, ServerEvent.SHOW_INTERFACE);
     API.setEntityDimension(player, 0);
     API.setEntityPosition(player, MainPosition.StartSpawn);
     player.resetSyncedData(LoginManager.DISABLE_HOTKEYS);
     player.freeze(false);
     _giftsManager.StartGiftsTimer(player);
 }