public static void NewQuestLog(_Quest_Log ql) { try { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); Log.log("Sending New Quest Log response.", Log.LogType.SENT); BuildBasePacket((int)GameServerSendPacketNumbers.NewQuestLog, ref buffer); buffer.WriteInteger(ql.Character_ID); buffer.WriteInteger(ql.Quest_ID); buffer.WriteInteger(ql.Log_ID); sendData(ConnectionType.GAMESERVER, GameServerSendPacketNumbers.NewQuestLog.ToString(), buffer.ToArray()); } catch (Exception e) { Log.log("Building New Quest Log packet failed. > " + e.Message, Log.LogType.ERROR); return; } }
private static void UpdateQuestLog(ConnectionType type, byte[] data) { ByteBuffer.ByteBuffer buffer = new ByteBuffer.ByteBuffer(); buffer.WriteBytes(data); ReadHeader(ref buffer); int Quest_ID = buffer.ReadInteger(); int Character_ID = buffer.ReadInteger(); int Objective_Progress = buffer.ReadInteger(); int Quest_Status = buffer.ReadInteger(); _Quest_Log ql = Data.ContainsKey(Character_ID, Quest_ID); if (ql != null) { ql.Quest_Status = Quest_Status; ql.Progress = Objective_Progress; } else { ql = new _Quest_Log(-1, Character_ID, Quest_ID, Quest_Status, 0); ql.Log_ID = Database.instance.Insert_Record("CALL CreateQuestLog(" + Quest_ID + ", " + Character_ID + ", 0, " + Quest_Status + ");"); Data.tbl_Quest_Log.TryAdd(ql.Log_ID, ql); } }