InitUpdateCommit
This commit is contained in:
parent
090a3dd3aa
commit
e8b85a5945
2 changed files with 34 additions and 27 deletions
|
@ -71,37 +71,44 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
JObject jObj = JsonConvert.DeserializeObject(data) as JObject;
|
||||
JToken token = JToken.FromObject(jObj);
|
||||
JToken updateDatas = token["updateDatas"];
|
||||
Datagramm Dgramm = new Datagramm();
|
||||
Dgramm.isImportant = token["isImportant"].ToObject<bool>();
|
||||
Dgramm.DatagrammId = token["DatagrammId"].ToObject<int>();
|
||||
if (PlayerId == 0)
|
||||
if (updateDatas.HasValues)
|
||||
{
|
||||
PlayerId = token["PlayerId"].ToObject<int>();
|
||||
AppManager.Instance.ChangeState(GameState.ClientPlaying);
|
||||
AppManager.Instance.SetGUI(new HUD());
|
||||
}
|
||||
if (Dgramm.isImportant)
|
||||
{
|
||||
if (Dgramm.DatagrammId == currentServerDatagrammId + 1)
|
||||
Datagramm Dgramm = new Datagramm();
|
||||
Dgramm.isImportant = token["isImportant"].ToObject<bool>();
|
||||
Dgramm.DatagrammId = token["DatagrammId"].ToObject<int>();
|
||||
if (PlayerId == 0)
|
||||
{
|
||||
PlayerId = token["PlayerId"].ToObject<int>();
|
||||
if (AppManager.Instance.gamestate != GameState.HostPlaying)
|
||||
{
|
||||
AppManager.Instance.ChangeState(GameState.ClientPlaying);
|
||||
AppManager.Instance.SetGUI(new HUD());
|
||||
}
|
||||
}
|
||||
if (Dgramm.isImportant)
|
||||
{
|
||||
if (Dgramm.DatagrammId == currentServerDatagrammId + 1)
|
||||
{
|
||||
currentServerDatagrammId++;
|
||||
Dgramm.updateDatas = GetSentUpdates(token["updateDatas"]);
|
||||
ExecuteDatagramm(Dgramm);
|
||||
CheckDatagramm();
|
||||
}
|
||||
else if (Dgramm.DatagrammId > currentServerDatagrammId + 1 &&
|
||||
waitingDatagramm.Find(x => x.DatagrammId == Dgramm.DatagrammId) == null)
|
||||
{
|
||||
Dgramm.updateDatas = GetSentUpdates(token["updateDatas"]);
|
||||
waitingDatagramm.Add(Dgramm);
|
||||
}
|
||||
SendAcknowledgement(Dgramm.DatagrammId);
|
||||
}
|
||||
else
|
||||
{
|
||||
currentServerDatagrammId++;
|
||||
Dgramm.updateDatas = GetSentUpdates(token["updateDatas"]);
|
||||
ExecuteDatagramm(Dgramm);
|
||||
CheckDatagramm();
|
||||
}
|
||||
else if (Dgramm.DatagrammId > currentServerDatagrammId + 1 &&
|
||||
waitingDatagramm.Find(x => x.DatagrammId == Dgramm.DatagrammId) == null)
|
||||
{
|
||||
Dgramm.updateDatas = GetSentUpdates(token["updateDatas"]);
|
||||
waitingDatagramm.Add(Dgramm);
|
||||
}
|
||||
SendAcknowledgement(Dgramm.DatagrammId);
|
||||
}
|
||||
else
|
||||
{
|
||||
Dgramm.updateDatas = GetSentUpdates(token["updateDatas"]);
|
||||
ExecuteDatagramm(Dgramm);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
private List<UpdateData> importantUpdates;
|
||||
private List<Datagramm> sendedData;
|
||||
private List<Datagramm> arrivingDataId;
|
||||
private int currentDatagrammId = 1;
|
||||
private int currentDatagrammId = 0;
|
||||
public delegate void OnDataSend(string data);
|
||||
public event OnDataSend GetDataSend; // event
|
||||
Thread serverThread;
|
||||
|
@ -190,8 +190,8 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
string data = JsonSerializer.Serialize(initDgramm);
|
||||
byte[] buffer = Encoding.UTF8.GetBytes(data);
|
||||
socket.SendTo(buffer, clientsEP[i]);
|
||||
currentDatagrammId++;
|
||||
}
|
||||
currentDatagrammId++;
|
||||
AppManager.Instance.ChangeState(GameState.HostPlaying);
|
||||
AppManager.Instance.SetGUI(new HUD());////
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue