public void CB_BUY_THEMA(LoginConnection conn, Packet packet) { var unkInt = packet.GetInt(); var newMapId = packet.GetInt(); var oldMapId = packet.GetInt(); // Get barrack var barrackData = LoginServer.Instance.Data.BarrackDb.Find(newMapId); if (barrackData == null) { return; } // Check medals if (conn.Account.Medals < barrackData.Price) { Log.Warning("CB_BUY_THEMA: User '{0}' tried to buy barrack without having the necessary coins."); return; } conn.Account.Medals -= barrackData.Price; conn.Account.SelectedBarrack = newMapId; Send.BC_ACCOUNT_PROP(conn, conn.Account); Send.BC_NORMAL_Run(conn, "THEMA_BUY_SUCCESS"); }
public void CB_BUY_THEMA(LoginConnection conn, Packet packet) { var unkInt = packet.GetInt(); var newMapId = packet.GetInt(); var oldMapId = packet.GetInt(); // Get barrack var mapData = LoginServer.Instance.ClientData.MapDB.FirstOrDefault(x => x.MapId == newMapId); if (mapData == null) { return; } var barrackData = LoginServer.Instance.ClientData.BarrackDB.FirstOrDefault(x => x.ClassName == mapData.ClassName); if (barrackData == null) { return; } if (!conn.Account.Money.CanAfford(barrackData.Price)) { Log.Warning("CB_BUY_THEMA: User '{0}' tried to buy barrack without having the necessary coins."); return; } conn.Account.PurchaseBarrack(newMapId, barrackData.Price); Send.BC_ACCOUNT_PROP(conn, conn.Account); Send.BC_NORMAL_Run(conn, BCNormalMsg.THEMA_BUY_SUCCESS); }
public void CB_BARRACKNAME_CHANGE(LoginConnection conn, Packet packet) { var extra = packet.GetBin(12); var name = packet.GetString(10); var l1 = packet.GetLong(); var checkName = packet.GetString(10); var i1 = packet.GetInt(); var s1 = packet.GetShort(); var l2 = packet.GetLong(); var nameLength = packet.GetLong(); var l3 = packet.GetLong(); // Check availability var exists = LoginServer.Instance.Database.TeamNameExists(name); if (exists) { Send.BC_BARRACKNAME_CHECK_RESULT(conn, TeamNameChangeResult.TeamNameAlreadyExist, conn.Account.Name); return; } if (name != checkName) { Send.BC_BARRACKNAME_CHECK_RESULT(conn, TeamNameChangeResult.TeamChangeFailed, conn.Account.Name); return; } // Set team name conn.Account.TeamName = name; LoginServer.Instance.Database.UpdateTeamName(conn.Account.Id, name); Send.BC_BARRACKNAME_CHANGE(conn, TeamNameChangeResult.Okay, name); Send.BC_ACCOUNT_PROP(conn, conn.Account); Send.BC_NORMAL_Run(conn, BarrackMessage.THEMA_BUY_SUCCESS); }
public void CB_BARRACKNAME_CHANGE(LoginConnection conn, Packet packet) { var name = packet.GetString(64); if (!conn.Account.IsTeamNameValid(name)) { Send.BC_BARRACKNAME_CHANGE(conn, TeamNameChangeResult.TeamChangeFailed); return; } var exists = LoginServer.Instance.Database.TeamNameExists(name); if (exists) { Send.BC_BARRACKNAME_CHANGE(conn, TeamNameChangeResult.TeamNameAlreadyExist); return; } if (String.IsNullOrEmpty(conn.Account.TeamName)) { conn.Account.AssignTeamName(name); Send.BC_BARRACKNAME_CHANGE(conn, TeamNameChangeResult.Okay); } else { conn.Account.PurchaseTeamNameChange(name, 150); Send.BC_BARRACKNAME_CHANGE(conn, TeamNameChangeResult.Okay); Send.BC_ACCOUNT_PROP(conn, conn.Account); Send.BC_NORMAL_Run(conn, BCNormalMsg.THEMA_BUY_SUCCESS); } LoginServer.Instance.Database.SaveAccount(conn.Account); }
public void CB_BARRACKNAME_CHANGE(LoginConnection conn, Packet packet) { var name = packet.GetString(64); // Don't do anything if nothing's changed if (name == conn.Account.TeamName) { return; } // Check validity var valid = (name.Length >= 2 && name.Length <= 16 && !name.Any(a => char.IsWhiteSpace(a))); if (!valid) { Send.BC_BARRACKNAME_CHANGE(conn, TeamNameChangeResult.TeamChangeFailed, name); return; } // Check availability var exists = LoginServer.Instance.Database.TeamNameExists(name); if (exists) { Send.BC_BARRACKNAME_CHANGE(conn, TeamNameChangeResult.TeamNameAlreadyExist, name); return; } // Set team name conn.Account.TeamName = name; LoginServer.Instance.Database.UpdateTeamName(conn.Account.Id, name); Send.BC_BARRACKNAME_CHANGE(conn, TeamNameChangeResult.Okay, name); Send.BC_ACCOUNT_PROP(conn, conn.Account); Send.BC_NORMAL_Run(conn, BarrackMessage.THEMA_BUY_SUCCESS); }