/// <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); }
/// <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); }