private void Player_NetUserDataChanged(Player obj) { if (_char != null) { return; } if (!CharsMgr.SelectCharacter(_user.Char, out _char)) { _player.Error($"Error while retrieving pony"); } else { _player.SetBounds(); _object = new WO_Player(this); _save = new AutoSaveChar(this); _items = _object.GetComponent <ItemsMgr>(); _trade = _object.GetComponent <TradeMgr>(); _skills = _object.GetComponent <SkillsMgr>(); SetPet(); _user.Map = _server.Map.ID; _char.Map = _user.Map; _player.SynchNetData(); CharsMgr.SaveCharacter(_char); } }
public void Destroy() { _player.NetUserDataChanged -= Player_NetUserDataChanged; _save.Destroy(); _object.Destroy(); _pet?.Destroy(); CharsMgr.SaveCharacter(_char); if (_dialog != null) { _dialog.Dialog.OnDialogEnd(this); } if (_shop != null) { _shop.Movement.Unlock(); } foreach (var item in _clones.Values.ToArray()) { item.Destroy(); } _pet = null; _save = null; _shop = null; _user = null; _char = null; _trade = null; _items = null; _clones = null; _dialog = null; _server = null; _player = null; _object = null; _skills = null; }
public bool PrepareForMapSwitch() { _save.Destroy(); _char.Data.Position = _object.Position; _char.Data.Rotation = _object.Rotation; return(CharsMgr.SaveCharacter(_char)); }
public bool SaveCharacter() { m_char.Data.Position = m_position; m_char.Data.Rotation = m_rotation; return(CharsMgr.SaveCharacter(m_char)); }
public override void OnFire() { _data.Data.Position = _data.Object.Position; _data.Data.Rotation = _data.Object.Rotation; CharsMgr.SaveCharacter(_data.Char); }