Ignore:
Timestamp:
Apr 30, 2015, 1:55:16 AM (10 years ago)
Author:
alloc
Message:

Fixes for 11.4

Location:
binary-improvements/7dtd-server-fixes/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/7dtd-server-fixes/src/API.cs

    r232 r233  
    1313                }
    1414               
    15                 public override void SavePlayerData (int _clientId, PlayerDataFile _playerDataFile) {
    16                         PlayerDataStuff.GM_SavePlayerData (_clientId, _playerDataFile);
     15                public override void SavePlayerData (ClientInfo _cInfo, PlayerDataFile _playerDataFile) {
     16                        PlayerDataStuff.GM_SavePlayerData (_cInfo, _playerDataFile);
    1717                }
    1818
    19                 public override void PlayerLogin (int _clientId, string _name, string _playerId, string _token, string _compatibilityVersion) {
     19                public override void PlayerLogin (ClientInfo _cInfo, string _compatibilityVersion) {
    2020                }
    2121               
    22                 public override void PlayerSpawning (int _clientId, string _name, int _chunkViewDim, PlayerProfile _playerProfile) {
    23                         AllocsLogFunctions.RequestToSpawnPlayer (_clientId, _name, _chunkViewDim, _playerProfile);
     22                public override void PlayerSpawning (ClientInfo _cInfo, int _chunkViewDim, PlayerProfile _playerProfile) {
     23                        AllocsLogFunctions.RequestToSpawnPlayer (_cInfo, _chunkViewDim, _playerProfile);
    2424                }
    2525               
  • binary-improvements/7dtd-server-fixes/src/AllocsLogFunctions.cs

    r230 r233  
    88        public class AllocsLogFunctions
    99        {
    10                 public static void RequestToSpawnPlayer (int _clientId, string _name, int _chunkViewDim, PlayerProfile _playerProfile)
     10                public static void RequestToSpawnPlayer (ClientInfo _cInfo, int _chunkViewDim, PlayerProfile _playerProfile)
    1111                {
    1212                        try {
    13                                 ClientInfo ci = ConnectionManager.Instance.GetClient (_clientId);
    14 
    15                                 Log.Out ("Player connected, clientid=" + _clientId +
    16                                         ", entityid=" + ci.entityId +
    17                                         ", name=" + ci.playerName +
    18                                         ", steamid=" + ci.playerId +
    19                                         ", ip=" + ci.ip
     13                                Log.Out ("Player connected" +
     14                                        ", entityid=" + _cInfo.entityId +
     15                                        ", name=" + _cInfo.playerName +
     16                                        ", steamid=" + _cInfo.playerId +
     17                                        ", ip=" + _cInfo.ip
    2018                                );
    2119
    22                                 PersistentContainer.Instance.Players [ci.playerId].SetOnline (ci);
     20                                PersistentContainer.Instance.Players [_cInfo.playerId, true].SetOnline (_cInfo);
    2321                                PersistentData.PersistentContainer.Instance.Save ();
    2422                        } catch (Exception e) {
     
    3028                {
    3129                        try {
    32                                 Player p = PersistentContainer.Instance.Players [_cInfo.playerId];
     30                                Player p = PersistentContainer.Instance.Players [_cInfo.playerId, true];
    3331                                if (p != null) {
    3432                                        p.SetOffline ();
  • binary-improvements/7dtd-server-fixes/src/AssemblyInfo.cs

    r232 r233  
    1818// and "{Major}.{Minor}.{Build}.*" will update just the revision.
    1919
    20 [assembly: AssemblyVersion("0.11.3.0")]
     20[assembly: AssemblyVersion("0.11.4.0")]
    2121
    2222// The following attributes are used to specify the signing key for the assembly,
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs

    r230 r233  
    2020                private int
    2121                        lastPositionX, lastPositionY, lastPositionZ;
     22                [OptionalField]
     23                private uint experience;
    2224                [NonSerialized]
    2325                private ClientInfo
     
    9496                }
    9597
     98                public uint Experience {
     99                        get {
     100                                return experience;
     101                        }
     102                }
     103
     104                public float Level {
     105                        get {
     106                                float perc = (float)experience / 600000;
     107                                perc = Mathf.Sqrt (perc);
     108                                return Mathf.Clamp ((perc * 60) + 1, 1, 60);
     109                        }
     110                }
     111
    96112                public void SetOffline ()
    97113                {
     
    121137                }
    122138
     139                public void Update (PlayerDataFile _pdf) {
     140                        experience = _pdf.experience;
     141                        inventory.Update (_pdf);
     142                }
     143
    123144                public Player (string steamId)
    124145                {
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs

    r202 r233  
    1111                private Dictionary<string, Player> players = new Dictionary<string, Player> ();
    1212
    13                 public Player this [string steamId] {
     13                public Player this [string steamId, bool create] {
    1414                        get {
    1515                                if (players.ContainsKey (steamId))
    1616                                        return players [steamId];
    1717                                else {
    18                                         if (steamId != null && steamId.Length == 17) {
     18                                        if (create && steamId != null && steamId.Length == 17) {
    1919                                                Log.Out ("Created new player entry for ID: " + steamId);
    2020                                                Player p = new Player (steamId);
     
    3535                }
    3636
    37                 public Player GetPlayerByClientId (int _clientid)
    38                 {
    39                         foreach (Player p in players.Values) {
    40                                 if (p.ClientInfo != null && p.ClientInfo.clientId == _clientid) {
    41                                         return p;
    42                                 }
    43                         }
    44                         return null;
    45                 }
    46 
    47                 public Player GetPlayerByNameOrId (string _nameOrId, bool _ignoreColorCodes)
    48                 {
    49                         string sid = GetSteamID (_nameOrId, _ignoreColorCodes);
    50                         if (sid != null)
    51                                 return this [sid];
    52                         else
    53                                 return null;
    54                 }
     37//              public Player GetPlayerByNameOrId (string _nameOrId, bool _ignoreColorCodes)
     38//              {
     39//                      string sid = GetSteamID (_nameOrId, _ignoreColorCodes);
     40//                      if (sid != null)
     41//                              return this [sid];
     42//                      else
     43//                              return null;
     44//              }
    5545
    5646                public string GetSteamID (string _nameOrId, bool _ignoreColorCodes)
  • binary-improvements/7dtd-server-fixes/src/PlayerDataStuff.cs

    r232 r233  
    88        {
    99
    10                 public static void GM_SavePlayerData (int _clientId, PlayerDataFile _playerDataFile)
     10                public static void GM_SavePlayerData (ClientInfo _cInfo, PlayerDataFile _playerDataFile)
    1111                {
    1212                        try {
    13                                 ClientInfo ci = ConnectionManager.Instance.GetClient (_clientId);
    14                                 PersistentContainer.Instance.Players[ci.playerId].Inventory.Update(_playerDataFile);
     13                                PersistentContainer.Instance.Players[_cInfo.playerId, true].Update (_playerDataFile);
    1514                        } catch (Exception e) {
    1615                                Log.Out ("Error in GM_SavePlayerData: " + e);
Note: See TracChangeset for help on using the changeset viewer.