public override void run() { Account player = this._client._player; if (player == null) { return; } PlayerConfig config = player._config; if (config == null) { return; } if ((this.type & 1) == 1) { PlayerManager.updateConfigs(this.query, config); } if ((this.type & 2) == 2) { this.query.AddQuery("keys", (object)config.keys); } if ((this.type & 4) == 4) { PlayerManager.updateMacros(this.query, config, this.type); } ComDiv.updateDB("player_configs", "owner_id", (object)this._client.player_id, this.query.GetTables(), this.query.GetValues()); }
public override void run() { if (this._client == null) { return; } try { if (this.LocalIP[0] == (byte)0 || this.LocalIP[3] == (byte)0) { this.erro = 2147483648U; Logger.warning("[Aviso] LocalIP off: " + (object)this.LocalIP[0] + "." + (object)this.LocalIP[1] + "." + (object)this.LocalIP[2] + "." + (object)this.LocalIP[3]); } else if (this._client._player != null) { this.erro = 2147483648U; } else { Account accountDb = AccountManager.getAccountDB((object)this.pId, 2, 0); if (accountDb != null && accountDb.login == this.login && accountDb._status.serverId == (byte)0) { this._client.player_id = accountDb.player_id; accountDb._connection = this._client; accountDb.GetAccountInfos(29); accountDb.LocalIP = this.LocalIP; accountDb.LoadInventory(); accountDb.LoadMissionList(); accountDb.LoadPlayerBonus(); this.EnableQuestMission(accountDb); accountDb._inventory.LoadBasicItems(); accountDb.SetPublicIP(this._client.GetAddress()); accountDb.Session = new PlayerSession() { _sessionId = this._client.SessionId, _playerId = this._client.player_id }; accountDb.updateCacheInfo(); accountDb._status.updateServer((byte)ConfigGS.serverId); this._client._player = accountDb; ComDiv.updateDB("accounts", "lastip", (object)accountDb.PublicIP.ToString(), "player_id", (object)accountDb.player_id); } else { this.erro = 2147483648U; } } this._client.SendPacket((SendPacket) new BASE_USER_ENTER_PAK(this.erro)); if (this.erro <= 0U) { return; } this._client.Close(500, false); } catch (Exception ex) { Logger.info("BASE_USER_ENTER_REC: " + ex.ToString()); this._client.Close(0, false); } }
public void checkoutN(byte[] buffer, int FirstLength) { int tamanho = buffer.Length; try { byte[] newPacketENC = new byte[tamanho - FirstLength - 4]; Array.Copy(buffer, FirstLength + 4, newPacketENC, 0, newPacketENC.Length); if (newPacketENC.Length == 0) { return; } int lengthPK = BitConverter.ToUInt16(newPacketENC, 0) & 0x7FFF; byte[] newPacketENC2 = new byte[lengthPK + 2]; Array.Copy(newPacketENC, 2, newPacketENC2, 0, newPacketENC2.Length); byte[] newPacketGO = new byte[lengthPK + 2]; Array.Copy(ComDiv.decrypt(newPacketENC2, Shift), 0, newPacketGO, 0, newPacketGO.Length); if (!CheckSeed(newPacketGO, false)) { return; } RunPacket(newPacketGO); checkoutN(newPacketENC, lengthPK); } catch {} }
private void OnReceiveCallback(IAsyncResult ar) { try { GameClient.StateObject asyncState = (GameClient.StateObject)ar.AsyncState; int length = asyncState.workSocket.EndReceive(ar); if (length <= 0) { return; } byte[] buffer = new byte[length]; Array.Copy((Array)asyncState.buffer, 0, (Array)buffer, 0, length); int FirstLength = (int)BitConverter.ToUInt16(buffer, 0) & (int)short.MaxValue; byte[] numArray1 = new byte[FirstLength + 2]; Array.Copy((Array)buffer, 2, (Array)numArray1, 0, numArray1.Length); this.lastCompleteBuffer = buffer; byte[] numArray2 = ComDiv.decrypt(numArray1, this.Shift); if (!this.CheckSeed(numArray2, true)) { this.Close(0, false); } else { this.RunPacket(numArray2, numArray1); this.checkoutN(buffer, FirstLength); new Thread(new ThreadStart(this.read)).Start(); } } catch { this.Close(0, false); } }
private void OnReceiveCallback(IAsyncResult ar) { try { StateObject state = (StateObject)ar.AsyncState; int bytesCount = state.workSocket.EndReceive(ar); if (bytesCount > 0) { byte[] babyBuffer = new byte[bytesCount]; Array.Copy(state.buffer, 0, babyBuffer, 0, bytesCount); int length = BitConverter.ToUInt16(babyBuffer, 0) & 0x7FFF; byte[] buffer = new byte[length + 2]; Array.Copy(babyBuffer, 2, buffer, 0, buffer.Length); byte[] decrypted = ComDiv.decrypt(buffer, Shift); RunPacket(decrypted); checkoutN(babyBuffer, length); new Thread(read).Start(); } } catch { Close(0); } }
public override void run() { try { Account player = _client._player; if (player != null) { Clan clan = ClanManager.getClan(player.clanId); if (clan._id > 0 && clan.owner_id == _client.player_id && ComDiv.deleteDB("clan_data", "clan_id", clan._id) && ComDiv.updateDB("contas", "player_id", player.player_id, new string[] { "clan_id", "clanaccess", "clan_game_pt", "clan_wins_pt" }, 0, 0, 0, 0) && ClanManager.RemoveClan(clan)) { player.clanId = 0; player.clanAccess = 0; SEND_CLAN_INFOS.Load(clan, 1); } else { erro = 2147487850; } } else { erro = 2147487850; } _client.SendPacket(new CLAN_CLOSE_PAK(erro)); } catch (Exception ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[CLAN_CLOSE_REC.run] Erro fatal!"); } }
public static string CreateItemById(string str, Account player) { string txt = str.Substring(str.IndexOf(" ") + 1); string[] split = txt.Split(' '); int item_id = Convert.ToInt32(split[1]); long player_id = Convert.ToInt64(split[0]); if (item_id < 100000000) { return(Translation.GetLabel("CreateItemWrongID")); } else { Account playerO = AccountManager.getAccount(player_id, 0); if (playerO != null) { if (playerO.player_id == player.player_id) { return(Translation.GetLabel("CreateItemUseOtherCMD")); } else { int category = ComDiv.GetItemCategory(item_id); playerO.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, playerO, new ItemsModel(item_id, category, "Command item", category == 3 ? 1 : 3, 1)), false); playerO.SendPacket(new SERVER_MESSAGE_ITEM_RECEIVE_PAK(0), false); return(Translation.GetLabel("CreateItemSuccess")); } } else { return(Translation.GetLabel("CreateItemFail")); } } }
public static string SetFakeNick(string str, Account player, Room room) { string name = str.Substring(11); if (name.Length > ConfigGS.maxNickSize || name.Length < ConfigGS.minNickSize) { return(Translation.GetLabel("FakeNickWrongLength")); } if (PlayerManager.isPlayerNameExist(name)) { return(Translation.GetLabel("FakeNickAlreadyExist")); } if (!ComDiv.updateDB("accounts", "player_name", (object)name, "player_id", (object)player.player_id)) { return(Translation.GetLabel("FakeNickFail")); } player.player_name = name; player.SendPacket((SendPacket) new AUTH_CHANGE_NICKNAME_PAK(name)); if (room != null) { using (ROOM_GET_NICKNAME_PAK roomGetNicknamePak = new ROOM_GET_NICKNAME_PAK(player._slotId, player.player_name, player.name_color)) room.SendPacketToPlayers((SendPacket)roomGetNicknamePak); } if (player.clanId > 0) { using (CLAN_MEMBER_INFO_UPDATE_PAK memberInfoUpdatePak = new CLAN_MEMBER_INFO_UPDATE_PAK(player)) ClanManager.SendPacket((SendPacket)memberInfoUpdatePak, player.clanId, -1L, true, true); } AllUtils.syncPlayerToFriends(player, true); return(Translation.GetLabel("FakeNickSuccess", (object)name)); }
public override void write() { writeH(279); writeC((byte)_type); writeC((byte)_index); if (_type == FriendChangeState.Insert || _type == FriendChangeState.Update) { PlayerInfo info = _f.player; if (info == null) { writeB(new byte[17]); } else { writeC((byte)(info.player_name.Length + 1)); writeS(info.player_name, info.player_name.Length + 1); writeQ(_f.player_id); writeD(ComDiv.GetFriendStatus(_f, _state)); writeC((byte)info._rank); writeC(0); writeH(0); } } else { writeB(new byte[17]); } }
public override void run() { try { Account player = this._client._player; if (player == null || this.slotIdx >= 3 || player._titles == null) { return; } PlayerTitles titles = player._titles; int equip = titles.GetEquip(this.slotIdx); if (equip > 0 && TitleManager.getInstance().updateEquipedTitle(titles.ownerId, this.slotIdx, 0)) { titles.SetEquip(this.slotIdx, 0); if (TitleAwardsXML.Contains(equip, player._equip._beret) && ComDiv.updateDB("accounts", "char_beret", (object)0, "player_id", (object)player.player_id)) { player._equip._beret = 0; Room room = player._room; if (room != null) { AllUtils.updateSlotEquips(player, room); } } } else { this.erro = 2147483648U; } this._client.SendPacket((SendPacket) new BASE_TITLE_DETACH_PAK(this.erro)); } catch (Exception ex) { Logger.info("BASE_TITLE_DETACH_REC: " + ex.ToString()); } }
public static string SetFakeRank(string str, Account player, Room room) { int num = int.Parse(str.Substring(9)); if (num > 55 || num < 0) { return(Translation.GetLabel("FakeRankWrongValue")); } if (player._bonus.fakeRank == num) { return(Translation.GetLabel("FakeRankAlreadyFaked")); } if (!ComDiv.updateDB("player_bonus", "fakerank", (object)num, "player_id", (object)player.player_id)) { return(Translation.GetLabel("FakeRankFail")); } player._bonus.fakeRank = num; player.SendPacket((SendPacket) new BASE_USER_EFFECTS_PAK(0, player._bonus)); room.updateSlotsInfo(); if (num == 55) { return(Translation.GetLabel("FakeRankSuccess1")); } return(Translation.GetLabel("FakeRankSuccess2", (object)num)); }
public static string SetFakeRank(string str, Account player, Room room) { int rank = int.Parse(str.Substring(9)); if (rank > 55 || rank < 0) { return(Translation.GetLabel("FakeRankWrongValue")); } else if (player._bonus.fakeRank == rank) { return(Translation.GetLabel("FakeRankAlreadyFaked")); } else if (ComDiv.updateDB("player_bonus", "fakerank", rank, "player_id", player.player_id)) { player._bonus.fakeRank = rank; player.SendPacket(new BASE_USER_EFFECTS_PAK(0, player._bonus)); if (room != null) { room.updateSlotsInfo(); } if (rank == 55) { return(Translation.GetLabel("FakeRankSuccess1")); } else { return(Translation.GetLabel("FakeRankSuccess2", rank)); } } return(Translation.GetLabel("FakeRankFail")); }
public static string GetAllTitles(Account p) { if (p._titles.ownerId == 0) { TitleManager.getInstance().CreateTitleDB(p.player_id); p._titles = new PlayerTitles { ownerId = p.player_id }; } PlayerTitles titles = p._titles; int count = 0; for (int i = 1; i <= 44; i++) { TitleQ title = TitlesXML.getTitle(i, true); if (title != null && !titles.Contains(title._flag)) { count++; titles.Add(title._flag); if (titles.Slots < title._slot) { titles.Slots = title._slot; } } } if (count > 0) { ComDiv.updateDB("player_titles", "titleslots", titles.Slots, "owner_id", p.player_id); TitleManager.getInstance().updateTitlesFlags(p.player_id, titles.Flags); p.SendPacket(new BASE_2626_PAK(p)); } return(Translation.GetLabel("TitleAcquisiton", count)); }
public static void LoadShutdown(ReceiveGPacket p) { string text1 = p.readS((int)p.readC()); string text2 = p.readS((int)p.readC()); Account account = AccountManager.getAccount(text1, 0, 0); if (account == null || !(account.password == ComDiv.gen5(text2)) || account.access < AccessLevel.GameMaster) { return; } int num = 0; foreach (GameClient gameClient in (IEnumerable <GameClient>)GameManager._socketList.Values) { gameClient._client.Shutdown(SocketShutdown.Both); gameClient.Close(5000, false); ++num; } Logger.warning("[SM] Clients downed due a shutdown: " + (object)num + ". (By: " + text1 + ")"); GameManager.ServerIsClosed = true; GameManager.mainSocket.Close(5000); Logger.warning("[SM] Server receive code has been shutdowned for 5 seconds!"); Thread.Sleep(5000); Game_SyncNet.udp.Close(); Logger.warning("[SM] Starting step 2."); foreach (GameClient gameClient in (IEnumerable <GameClient>)GameManager._socketList.Values) { gameClient.Close(0, false); } Logger.warning("[SM] Server has been completely shutdowned."); }
private static string BaseBanForever(Account player, Account victim, bool warn) { if (victim == null) { return(Translation.GetLabel("PlayerBanUserInvalid")); } if (victim.access > player.access) { return(Translation.GetLabel("PlayerBanAccessInvalid")); } if (player.player_id == victim.player_id) { return(Translation.GetLabel("PlayerBanSimilarID")); } if (!ComDiv.updateDB("accounts", "access_level", (object)-1, "player_id", (object)victim.player_id)) { return(Translation.GetLabel("PlayerBanFail")); } if (warn) { using (SERVER_MESSAGE_ANNOUNCE_PAK messageAnnouncePak = new SERVER_MESSAGE_ANNOUNCE_PAK(Translation.GetLabel("PlayerBannedWarning", (object)victim.player_name))) GameManager.SendPacketToAllClients((SendPacket)messageAnnouncePak); } victim.access = AccessLevel.Banned; victim.SendPacket((SendPacket) new AUTH_ACCOUNT_KICK_PAK(2), false); victim.Close(1000, true); return(Translation.GetLabel("PlayerBanSuccess", (object)-1)); }
public override void run() { try { Account player = this._client._player; if (player != null) { Clan clan = ClanManager.getClan(player.clanId); if (clan._id > 0 && clan._info != this.clan_info && (clan.owner_id == this._client.player_id || player.clanAccess >= 1 && player.clanAccess <= 2)) { if (ComDiv.updateDB("clan_data", "clan_info", (object)this.clan_info, "clan_id", (object)clan._id)) { clan._info = this.clan_info; } else { this.erro = 2147487860U; } } else { this.erro = 2147487835U; } } else { this.erro = 2147487835U; } } catch { this.erro = 2147487860U; } this._client.SendPacket((SendPacket) new CLAN_REPLACE_INTRO_PAK(this.erro)); }
public void setOnlineStatus(bool online) { if (_isOnline != online && ComDiv.updateDB("contas", "online", online, "player_id", player_id)) { _isOnline = online; } }
public override void write() { this.writeH((short)279); this.writeC((byte)this._type); this.writeC((byte)this._index); if (this._type == FriendChangeState.Insert || this._type == FriendChangeState.Update) { PlayerInfo player = this._f.player; if (player == null) { this.writeB(new byte[17]); } else { this.writeC((byte)(player.player_name.Length + 1)); this.writeS(player.player_name, player.player_name.Length + 1); this.writeQ(this._f.player_id); this.writeD(ComDiv.GetFriendStatus(this._f, this._state)); this.writeC((byte)player._rank); this.writeC((byte)0); this.writeH((short)0); } } else { this.writeB(new byte[17]); } }
public static string CreateGoldCupom(string str) { string txt = str.Substring(str.IndexOf(" ") + 1); string[] split = txt.Split(' '); int gold = Convert.ToInt32(split[1]); long player_id = Convert.ToInt64(split[0]); if (gold.ToString().EndsWith("00")) { if (gold < 100 || gold > 99999999) { return(Translation.GetLabel("CreateSItemWrongID")); } Account playerO = AccountManager.getAccount(player_id, 0); if (playerO != null) { int cuponId = ComDiv.createItemId(15, (gold / 1000000), (gold % 1000) / 100, (gold % 1000000) / 1000); playerO.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, playerO, new ItemsModel(cuponId, 3, "Gold CMD item", 1, 1)), false); playerO.SendPacket(new SERVER_MESSAGE_ITEM_RECEIVE_PAK(0), false); return(Translation.GetLabel("CreateSItemSuccess", gold)); } else { return(Translation.GetLabel("CreateItemFail")); } } else { return(Translation.GetLabel("CreateSItemFail")); } }
public override void run() { try { Account player = this._client._player; if (player == null) { return; } PlayerEvent playerEvent = player._event; GoodItem good = ShopManager.getGood(this.goodId); if (good == null || playerEvent == null) { return; } PlayTimeModel runningEvent = EventPlayTimeSyncer.getRunningEvent(); if (runningEvent == null) { return; } uint rewardCount = (uint)runningEvent.GetRewardCount(this.goodId); if (playerEvent.LastPlaytimeFinish != 1 || rewardCount <= 0U || !ComDiv.updateDB("player_events", "last_playtime_finish", (object)2, "player_id", (object)this._client.player_id)) { return; } playerEvent.LastPlaytimeFinish = 2; this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(1, player, new ItemsModel(good._item._id, good._item._category, "Playtime reward", good._item._equip, rewardCount, 0L))); } catch (Exception ex) { Logger.info("EVENT_PLAYTIME_REWARD_REC] " + ex.ToString()); } }
private static void WriteCharaInfo(SendGPacket pk,Room room,SLOT slot,CupomEffects effects) { int id = room.room_type == (byte)7 || room.room_type == (byte)12 ? (room.rodada == 1 && slot._team == 1 || room.rodada == 2 && slot._team == 0 ? (room.rodada == 2 ? slot._equip._red : slot._equip._blue) : (room.TRex != slot._id ? slot._equip._dino : -1)) : (slot._team == 0 ? slot._equip._red : slot._equip._blue); int num = 0; if (effects.HasFlag((System.Enum)CupomEffects.Ketupat)) { num += 10; } if (effects.HasFlag((System.Enum)CupomEffects.HP5)) { num += 5; } if (effects.HasFlag((System.Enum)CupomEffects.HP10)) { num += 10; } if (id == -1) { pk.writeC(byte.MaxValue); pk.writeH(ushort.MaxValue); } else { pk.writeC((byte)ComDiv.getIdStatics(id,2)); pk.writeH((short)ComDiv.getIdStatics(id,4)); } pk.writeC((byte)num); pk.writeC(effects.HasFlag((System.Enum)CupomEffects.C4SpeedKit)); }
public static string SetPlayerRank(string str) { string[] strArray = str.Substring(str.IndexOf(" ") + 1).Split(' '); long int64 = Convert.ToInt64(strArray[0]); int int32 = Convert.ToInt32(strArray[1]); if (int32 > 60 || int32 == 56 || (int32 < 0 || int64 <= 0L)) { return(Translation.GetLabel("ChangePlyRankWrongValue")); } Account account = AccountManager.getAccount(int64, 0); if (account == null) { return(Translation.GetLabel("ChangePlyRankFailPlayer")); } if (!ComDiv.updateDB("accounts", "rank", (object)int32, "player_id", (object)account.player_id)) { return(Translation.GetLabel("ChangePlyRankFailUnk")); } RankModel rank = RankXML.getRank(int32); account._rank = int32; SEND_ITEM_INFO.LoadGoldCash(account); account.SendPacket((SendPacket) new BASE_RANK_UP_PAK(account._rank, rank != null ? rank._onNextLevel : 0), false); if (account._room != null) { account._room.updateSlotsInfo(); } return(Translation.GetLabel("ChangePlyRankSuccess", (object)int32)); }
public void checkoutN(byte[] buffer, int FirstLength) { int length = buffer.Length; try { byte[] numArray1 = new byte[length - FirstLength - 4]; Array.Copy((Array)buffer, FirstLength + 4, (Array)numArray1, 0, numArray1.Length); if (numArray1.Length == 0) { return; } int FirstLength1 = (int)BitConverter.ToUInt16(numArray1, 0) & (int)short.MaxValue; byte[] data = new byte[FirstLength1 + 2]; Array.Copy((Array)numArray1, 2, (Array)data, 0, data.Length); byte[] numArray2 = new byte[FirstLength1 + 2]; Array.Copy((Array)ComDiv.decrypt(data, this.Shift), 0, (Array)numArray2, 0, numArray2.Length); if (!this.CheckSeed(numArray2, false)) { return; } this.RunPacket(numArray2, numArray1); this.checkoutN(numArray1, FirstLength1); } catch { } }
public override void run() { try { if (this._client == null || this._client._player == null || this.msgsCount == 0) { return; } string TABELA = "player_messages"; string req1 = "object_id"; int[] array = this.messages.ToArray(); string req2 = "owner_id"; // ISSUE: variable of a boxed type object playerId = (ValueType)this._client.player_id; string[] COLUNAS = new string[2] { "expire", "state" }; object[] objArray = new object[2]; int index = 0; DateTime dateTime = DateTime.Now; dateTime = dateTime.AddDays(7.0); object local = (ValueType)long.Parse(dateTime.ToString("yyMMddHHmm")); objArray[index] = local; objArray[1] = (object)0; ComDiv.updateDB(TABELA, req1, array, req2, playerId, COLUNAS, objArray); } catch (Exception ex) { Logger.info("[BOX_MESSAGE_VIEW_REC] " + ex.ToString()); } }
public INVENTORY_ITEM_EQUIP_PAK(uint erro, ItemsModel item = null, Account p = null) { this.erro = erro; if (erro != 1) { return; } if (item != null) { int wclass = ComDiv.getIdStatics(item._id, 1); if (wclass == 13 || wclass == 15) { if (item._count > 1 && item._equip == 1) { ComDiv.updateDB("player_items", "count", (long)--item._count, "id", item._objId, "owner_id", p.player_id); } else { PlayerManager.DeleteItem(item._objId, p.player_id); p._inventory.RemoveItem(item); item._id = 0; item._count = 0; } } else { item._equip = 2; } this.item = item; } else { this.erro = 0x80000000; } }
public override void run() { try { Account p = _client._player; if (p != null) { Clan c = ClanManager.getClan(p.clanId); if (c._id > 0 && c._info != clan_info && (c.owner_id == _client.player_id || p.clanAccess >= 1 && p.clanAccess <= 2)) { if (ComDiv.updateDB("clan_data", "clan_info", clan_info, "clan_id", c._id)) { c._info = clan_info; } else { erro = 2147487860; } } else { erro = 2147487835; } } else { erro = 2147487835; } } catch { erro = 2147487860; } _client.SendPacket(new CLAN_REPLACE_INTRO_PAK(erro)); }
public static string GetAllTitles(Account p) { if (p._titles.ownerId == 0L) { TitleManager.getInstance().CreateTitleDB(p.player_id); p._titles = new PlayerTitles() { ownerId = p.player_id }; } PlayerTitles titles = p._titles; int num = 0; for (int titleId = 1; titleId <= 44; ++titleId) { TitleQ title = TitlesXML.getTitle(titleId, true); if (title != null && !titles.Contains(title._flag)) { ++num; titles.Add(title._flag); if (titles.Slots < title._slot) { titles.Slots = title._slot; } } } if (num > 0) { ComDiv.updateDB("player_titles", "titleslots", (object)titles.Slots, "owner_id", (object)p.player_id); TitleManager.getInstance().updateTitlesFlags(p.player_id, titles.Flags); p.SendPacket((SendPacket) new BASE_2626_PAK(p)); } return(Translation.GetLabel("TitleAcquisiton", (object)num)); }
public static void LoadShutdown(ReceiveGPacket p) { string str1 = p.readS((int)p.readC()); string str2 = ComDiv.gen5(p.readS((int)p.readC())); Account accountDb = AccountManager.getInstance().getAccountDB((object)str1, (object)str2, 2, 0); if (accountDb == null || !(accountDb.password == str2) || accountDb.access < 4) { return; } int num = 0; foreach (LoginClient loginClient in (IEnumerable <LoginClient>)LoginManager._socketList.Values) { loginClient._client.Shutdown(SocketShutdown.Both); loginClient._client.Close(10000); ++num; } Logger.warning("[SM] Clients downed due a shutdown: " + (object)num + ". (By: " + str1 + ")"); LoginManager.ServerIsClosed = true; LoginManager.mainSocket.Close(5000); Logger.warning("[SM] Server receive code has been shutdowned for 5 seconds!"); Thread.Sleep(5000); Auth_SyncNet.udp.Close(); Logger.warning("[SM] Starting step 2."); foreach (LoginClient loginClient in (IEnumerable <LoginClient>)LoginManager._socketList.Values) { loginClient.Close(0, true); } Logger.warning("[SM] Server has been completely shutdowned."); }
public override void run() { try { Account player = this._client._player; if (player == null || this.titleIdx >= 45) { return; } if (player._titles.ownerId == 0L) { TitleManager.getInstance().CreateTitleDB(player.player_id); player._titles = new PlayerTitles() { ownerId = player.player_id }; } TitleQ title = TitlesXML.getTitle(this.titleIdx, true); if (title != null) { TitleQ title1; TitleQ title2; TitlesXML.get2Titles(title._req1, title._req2, out title1, out title2, false); if ((title._req1 == 0 || title1 != null) && (title._req2 == 0 || title2 != null) && (player._rank >= title._rank && player.brooch >= title._brooch && (player.medal >= title._medals && player.blue_order >= title._blueOrder)) && (player.insignia >= title._insignia && !player._titles.Contains(title._flag) && (player._titles.Contains(title1._flag) && player._titles.Contains(title2._flag)))) { player.brooch -= title._brooch; player.medal -= title._medals; player.blue_order -= title._blueOrder; player.insignia -= title._insignia; long flags = player._titles.Add(title._flag); TitleManager.getInstance().updateTitlesFlags(player.player_id, flags); List <ItemsModel> awards = TitleAwardsXML.getAwards(this.titleIdx); if (awards.Count > 0) { this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(1, player, awards)); } this._client.SendPacket((SendPacket) new BASE_QUEST_UPDATE_INFO_PAK(player)); TitleManager.getInstance().updateRequi(player.player_id, player.medal, player.insignia, player.blue_order, player.brooch); if (player._titles.Slots < title._slot) { player._titles.Slots = title._slot; ComDiv.updateDB("player_titles", "titleslots", (object)player._titles.Slots, "owner_id", (object)player.player_id); } } else { this.erro = 2147487875U; } } else { this.erro = 2147487875U; } this._client.SendPacket((SendPacket) new BASE_TITLE_GET_PAK(this.erro, player._titles.Slots)); } catch (Exception ex) { Logger.warning("[BASE_TITLE_GET_REC] " + ex.ToString()); } }
public static string SetPlayerRank(string str) { string text = str.Substring(str.IndexOf(" ") + 1); string[] split = text.Split(' '); long player_id = Convert.ToInt64(split[0]); int rank = Convert.ToInt32(split[1]); if (rank > 60 || rank == 56 || rank < 0 || player_id <= 0) { return(Translation.GetLabel("ChangePlyRankWrongValue")); } else { Account pE = AccountManager.getAccount(player_id, 0); if (pE != null) { if (ComDiv.updateDB("contas", "rank", rank, "player_id", pE.player_id)) { RankModel model = RankXML.getRank(rank); pE._rank = rank; SEND_ITEM_INFO.LoadGoldCash(pE); pE.SendPacket(new BASE_RANK_UP_PAK(pE._rank, model != null ? model._onNextLevel : 0), false); if (pE._room != null) { pE._room.updateSlotsInfo(); } return(Translation.GetLabel("ChangePlyRankSuccess", rank)); } return(Translation.GetLabel("ChangePlyRankFailUnk")); } return(Translation.GetLabel("ChangePlyRankFailPlayer")); } }