public void ProcessBytes(Session _Session, ref JArray _Data) { try { IncomingPacket IncomingPacket = new IncomingPacket(_Data); if (IncomingEvents.ContainsKey(IncomingPacket.opcode)) { IIncomingPacketEvent Event = IncomingEvents[IncomingPacket.opcode]; if (_Session != null) { Event.Invoke(_Session, IncomingPacket); } } else { LogConsole.Show(LogType.ERROR, "[Opcode]: {0}", (ClientOpcode)IncomingPacket.opcode); } } catch (Exception e) { LogConsole.Show(LogType.DEBUG, "[ProcessByte]: {0}", e.Message); } }
public bool IsPixel(int a, int b) { bool t = false; try { if (0 > a || a >= w || 0 > b || b >= h) { t = false; } else { int count = 4 * (b * w + a) + 3; if (count <= this.data_array.Length) { int ddd = this.data_array[count]; if (0 < ddd) { t = true; } } } } catch (Exception ep) { LogConsole.Show(LogType.ERROR, ep.ToString()); } return(t); }
public void Update() { try { double[] dp; bool found = false; e = new ShotEventArgs(); int tim = 0; for (int i = 0; i < 3000; i += 30) { dp = GetPosAtTime(i); if (ground.IsPixel((int)dp[0], (int)dp[1]) == true) { //e.User = user; e.angle = (int)ang; e.cx = (int)dp[0]; e.cy = (int)dp[1]; e.look = look; e.power = (int)power; e.xb = (int)xb; e.yb = (int)yb; e.xf = (int)x; e.yf = (int)y; e.ax = (int)ax; e.ay = (int)ay; e.col = true; e.time = i; found = true; Shot(this, e); ground.AddGroundHole((int)dp[0], (int)dp[1], 36, 40); break; } tim = i; } if (!found) { //e.User = user; e.angle = (int)ang; e.cx = 0; e.cy = 0; e.look = look; e.power = (int)power; e.xb = (int)xb; e.yb = (int)yb; e.xf = (int)x; e.yf = (int)y; e.ax = (int)ax; e.ay = (int)ay; e.col = false; e.time = tim; Shot(this, e); } } catch (Exception ex) { LogConsole.Show(LogType.ERROR, ex.ToString()); } }
public void ShowLogConsole() { // show or hide log console ? if (AssemblyConf == "debug" || Settings.Default.ShowLogConsole) { LogConsole.Show(dockPanel, DockState.DockBottom); } else { LogConsole.Hide(); } }
//----------------------------------------------------------------------------------------------------- public void RoomPlayer(UserManager.UserClass user_send) { //[2,[2,7,[],0,146634,"Carlos 22",0,0,1,1,"m",0,[1,2,0,0,0,0],0,0,1,181494328,"Bill Board",13,0,0,1,"m",5,[12,30],1,0]] user_send.Position = SlotJoin(); LogConsole.Show(LogType.INFO, "newPosition: {0}", user_send.Position); UpdateSlot(user_send); UserInSala.Add(user_send); StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.None; writer.WriteStartArray(); writer.WriteValue((int)ServerOpcode.room_players); writer.WriteStartArray(); writer.WriteValue(UserInSala.Count); //unk1 - user_on? writer.WriteValue(7); //unk2 writer.WriteStartArray(); writer.WriteEndArray(); foreach (UserManager.UserClass _user in UserInSala) { writer.WriteValue(_user.Position); writer.WriteValue(_user.user_id); writer.WriteValue(_user.Name); writer.WriteValue(_user.rank); writer.WriteValue(0); // unk - guild ? writer.WriteValue(_user.Is_Master); // unk - is_master ? writer.WriteValue(0); // unk - is_ready ? writer.WriteValue(_user.gender); writer.WriteValue(_user.mobil); writer.WriteStartArray(); writer.WriteValue(_user.head); writer.WriteValue(_user.body); writer.WriteValue(_user.eyes); writer.WriteValue(_user.flag); writer.WriteValue(_user.foreground); writer.WriteValue(_user.background); writer.WriteEndArray(); writer.WriteValue(0); // unk - is_bot ? writer.WriteValue(0); // unk - power_user ? //team a - b c%2 } writer.WriteEndArray(); writer.WriteEndArray(); } user_send.sep.Send(sb.ToString()); }
public void Invoke(Session _Session, IncomingPacket _Packet) { int version = _Packet.GetInt(); int user_id = _Packet.GetInt(); string user_key = _Packet.GetString(); _Session.Send("[" + (int)ServerOpcode.login_profile + "]"); _Session.User.LoadUser(version, user_id, user_key); _Session.Send("[" + (int)ServerOpcode.login_avatars + "]"); _Session.User.LoadinfoAvatars(); _Session.Send(_Session.User.PlayerInfo()); _Session.Send(_Session.User.UpdateBoddy()); LogConsole.Show(LogType.INFO, "Version: {0} User_id: {1} User_key: {2}", version, user_id, user_key); }
//----------------------------------------------------------------------------------------------------- public void GameShoot(UserManager.UserClass _user, int _x, int _y, int _body, int _look, int _angle, int _a, int _b, int _d) { try { int x = _x; //1022 int y = _y; //121 int body = _body; //0 int look = _look; //1 int angle = _angle; //24 //int a; //43 - power //int b; //7 - Timer //int d; //0 - ShotType / 0 = shot 1 - 1 = shot 2 - 2 = shot ss int power = (int)Math.Round((double)((_a * 234) / 100)); int a = (look == 0 ? 180 - angle : angle); cshot.SetShot(_user, a, power, 0, 398, x, y, look); cshot.Start(); /* * var E_PLAY = Object.freeze({ * next_turn_number: 0, * player_number: 1, * x: 2, * y: 3, * look: 4, * add_delay: 5, * next_turn_of_player: 6, * chat: 7, * thor_x: 8, * thor_y: 9, * thor_angle: 10, * thor_damage: 11, * new_weather: 12, * wind_power: 13, * wind_angle: 14, * shots: 15, * gold: 16 * }), */ //[8,[2,0,1022,121,1,845,1,[],799,-420,24,0,3,0,326,[{"start":{"x":1042,"y":95,"ang":24,"power":101,"ax":0,"ay":398},"exp":0,"img":0,"time":1340}],0]] LogConsole.Show(LogType.DEBUG, "Send: x: {0} - y: {1} angle: {2}", _x, _y, _angle); } catch (Exception ex) { LogConsole.Show(LogType.ERROR, ex.ToString()); } }
public PacketsManager() { IncomingEventsInfo = new Dictionary <string, int>(); foreach (var Packet in typeof(IncomingPackets).GetFields()) { var PacketId = (int)Packet.GetValue(0); var PacketName = Packet.Name; if (!IncomingEventsInfo.ContainsValue(PacketId)) { IncomingEventsInfo.Add(PacketName, PacketId); } } IncomingEvents = new Dictionary <int, IIncomingPacketEvent>(); foreach (Type Type in Assembly.GetCallingAssembly().GetTypes()) { if (Type == null) { continue; } if (Type.GetInterfaces().Contains(typeof(IIncomingPacketEvent))) { var ConstructorInfo = Type.GetConstructor(new Type[] { }); if (ConstructorInfo != null) { var Constructed = ConstructorInfo.Invoke(new object[] { }) as IIncomingPacketEvent; int Header = GetHeader(Constructed); if (!IncomingEvents.ContainsKey(Header) && Header >= 0) { IncomingEvents.Add(Header, Constructed); } } } } int Outgoings = typeof(OutgoingPackets).GetFields().Count(); LogConsole.Show(LogType.INFO, "Loaded: {0} IncomingPackets", IncomingEvents.Count); LogConsole.Show(LogType.INFO, "Loaded: {0} OutgoingPackets", Outgoings); }
//----------------------------------------------------------------------------------------------------- public void PassTurn(UserManager.UserClass _user) { //[28,[4,0,1585,98,0,585,1,[],652,-436,18,0,2,0,99]] try { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.None; writer.WriteStartArray(); writer.WriteValue((int)ServerOpcode.pass); writer.WriteStartArray(); writer.WriteValue(0); //next_turn_number writer.WriteValue(0); //slot user writer.WriteValue(0); //x writer.WriteValue(0); //y writer.WriteValue(0); //look writer.WriteValue(0); //delay writer.WriteValue(0); //next turn of player writer.WriteStartArray(); //chat writer.WriteEndArray(); writer.WriteValue(0); //thor_x writer.WriteValue(0); //thor_y writer.WriteValue(0); //thor_angle writer.WriteValue(0); //thor_damage writer.WriteValue(0); //new_wheater writer.WriteValue(0); //wind_power writer.WriteValue(0); //wind_angle writer.WriteEndArray(); writer.WriteEndArray(); } SendAll(sb.ToString()); } catch (Exception ex) { LogConsole.Show(LogType.ERROR, ex.ToString()); } }
//----------------------------------------------------------------------------------------------------- private void NewMas() { int pos = 0; bool foun = false; for (int i = 0; i < 4; i++) { if (d[0][i] == 1) { pos = GetPosT(0, i, i, true); foun = true; break; } else if (d[1][i] == 1) { pos = GetPosT(1, i, i, true); foun = true; break; } } if (foun) { try { UserManager.UserClass _usr = UserInSala.Single(a => a.Position == pos); if (_usr != null) { _usr.Is_Master = 1; PassMaster(_usr); } } catch (Exception ex) { LogConsole.Show(LogType.ERROR, ex.ToString()); } } }
//----------------------------------------------------------------------------------------------------- private void RemoveSlot(int posSlot, int master = 0) { int TeamLeav = posSlot % 2; int posArray = (TeamLeav == 1) ? (posSlot <= 3 ? (posSlot == 3 ? posSlot - 2 : posSlot - 1) : (posSlot - 1) / 2) : (TeamLeav < 4 ? ((TeamLeav == 2) ? TeamLeav - 1 : TeamLeav) : (TeamLeav / 2)); d[TeamLeav][posArray] = 0; for (int x = 0; x < 4; x++) { if (d[TeamLeav][x] == 0) { int np = (x + 1) < 3 ? x + 1 : 3; if (d[TeamLeav][np] == 1 && x < 3) { d[TeamLeav][x] = 1; d[TeamLeav][np] = 0; int px = GetPosT(TeamLeav, x, x, true); int pnp = GetPosT(TeamLeav, np, np, true); try { UserManager.UserClass _usr = UserInSala.Single(a => a.Position == pnp); if (_usr != null) { _usr.Position = px; } } catch (Exception ex) { LogConsole.Show(LogType.ERROR, ex.ToString()); } } } } if (master == 1) { NewMas(); } }
public static void Load() { LogConsole.Show(LogType.INFO, "Start LoadMaps!"); string pathd = Program.PATH + "\\Data\\Maps\\"; string[] filePaths = Directory.GetFiles(pathd, "*.png"); foreach (string dd in filePaths) { Bitmap map_tmp = (Bitmap)Image.FromFile(dd); string ids = Path.GetFileName(dd).Replace("mapa", "").Replace(".png", ""); maprw mapatm = new maprw(); mapatm.id = int.Parse(ids); mapatm.w = map_tmp.Width; mapatm.h = map_tmp.Height; mapatm.ground = new BitMapx(map_tmp); Dictionary <int, Point> points = new Dictionary <int, Point> { }; string[] lines = File.ReadAllLines(@pathd + "mapa" + ids + ".txt"); foreach (string line in lines) { string[] sp1 = line.Split('='); if (sp1[0] != "") { string idx = sp1[0].Replace(" ", "").Replace("loc", ""); string[] poins = sp1[1].Replace(" ", "").Split(','); points.Add(int.Parse(idx), new Point(int.Parse(poins[0]), int.Parse(poins[1]))); } } mapatm.pos = points; mapatm.ground.Unlock(); Program.RMaps.Add(mapatm); //map_tmp.Dispose(); //points.Clear(); } LogConsole.Show(LogType.INFO, "LoadMaps Complete!"); }
void StartLog() { logConsole = new LogConsole(); logConsole.Show(); //Console.WriteLine("file: "+logFilePath+Path.DirectorySeparatorChar+logFileName); logFile = File.AppendText(logFilePath+Path.DirectorySeparatorChar+logFileName); logFile.WriteLine(); string logStartLine = "* " +System.DateTime.Now.ToShortDateString() +" - " +System.DateTime.Now.ToShortTimeString() +" * Log started for " +Assembly.GetExecutingAssembly().GetName().Name.ToString() +" v." +Assembly.GetExecutingAssembly().GetName().Version.ToString(); #if DEBUG logStartLine += " (debug build)"; #else logStartLine += " (release build)"; #endif WriteLogLine(logStartLine); }
public void GameShoot(UserManager.UserClass _user, int _x, int _y, int _body, int _look, int _angle, int _a, int _b, int _d) { /* * 0.74,// Armor * 0.78,// Mage * 0.99, * 0.87, * 0.74, * 1.395,// Boomer * 0.827, * 0.72, * 0.625, * 0.765, * 0.625, * 0.74, * 0.65, * 0.695, * 0.67, * 0.905, * 0.0,// Slots * 0.0 // Aid*/ int x = _x; int y = _y; //int xb = _xb; int look = _look; int angle = _angle; int body = _body; int a = (look == 0 ? 180 - angle : angle) - body; if (90 < a) { a = 180 - a; } double xn = (look == 0 ? x - 22 : x + 22); double yn = -Math.Sin((angle * Math.PI / 180)); int delay = 1; int next_turn_of_player = 0; double DEGTORAD = 0.0174532925199433; double[] WindEffect = { 0.74 }; double[] Gravity = { 73.5 }; double x_f = 0.5 * Math.Cos(a) * 0.5 + _user.x; double y_f = -1 * ((0.5 * Math.Sin(a)) * 0.5 - ((0.5) * 73.5 * ((int)0.5 ^ 2)) - _user.y); double digg = Math.PI / 180; int d = 0; int c = 0; double x_o = (Math.Cos(d * digg) * c) * 0.74; double y_o = (Math.Sin(d * digg) * c) * 0.74 - 73.5; LogConsole.Show("Send: x: {0} - y: {1}", _x, _y); LogConsole.Show("Player: x: {0} - y: {1}", _user.x, _user.y); LogConsole.Show("Fin: x: {0} - y: {1}", x_f, y_f); int fin_p = 0; if (_a == 1) { fin_p = 2; } else if ((_a + _a) + 1 <= 10) { fin_p = (_a + _a) + 1; } else if ((_a + _a) + 2 <= 20) { fin_p = (_a + _a) + 2; } else if ((_a + _a) + 3 <= 30) { fin_p = (_a + _a) + 3; } else if ((_a + _a) + 4 <= 40) { fin_p = (_a + _a) + 4; } else if ((_a + _a) + 5 <= 50) { fin_p = (_a + _a) + 5; } else if ((_a + _a) + 6 <= 60) { fin_p = (_a + _a) + 6; } else if ((_a + _a) + 7 <= 70) { fin_p = (_a + _a) + 7; } else if ((_a + _a) + 8 <= 80) { fin_p = (_a + _a) + 8; } else if ((_a + _a) + 9 <= 90) { fin_p = (_a + _a) + 9; } else if ((_a + _a) + 10 <= 100) { fin_p = (_a + _a) + 10 + 11; } else if ((_a + _a) + 20 <= 200) { fin_p = (_a + _a) + 20; } else if ((_a + _a) + 30 <= 300) { fin_p = (_a + _a) + 30; } else { fin_p = (_a + _a) + 40; } LogConsole.Show("a: {1} Fin_p: {0}", fin_p, _a); StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { //gp(x, y, a, b, c, d, e, f) //gp(f.pos.x, f.pos.y, f.angle, 1, 0, 0, d.oponent.x - 15, d.oponent.y - 15); writer.Formatting = Formatting.None; writer.WriteStartArray(); writer.WriteValue((int)ServerOpcode.play); writer.WriteStartArray(); writer.WriteValue(0); writer.WriteValue(_user.Position); writer.WriteValue(x); writer.WriteValue(y); writer.WriteValue(look); writer.WriteValue(delay); writer.WriteValue(next_turn_of_player); writer.WriteStartArray(); writer.WriteEndArray(); writer.WriteValue(899); writer.WriteValue(-342); writer.WriteValue(249); writer.WriteValue(0); writer.WriteValue(1); writer.WriteValue(0); writer.WriteValue(213); writer.WriteStartArray(); writer.WriteStartObject(); writer.WritePropertyName("start"); writer.WriteStartObject(); writer.WritePropertyName("x"); writer.WriteValue(x); //x writer.WritePropertyName("y"); writer.WriteValue(y); //y writer.WritePropertyName("ang"); writer.WriteValue(a); writer.WritePropertyName("power"); writer.WriteValue(fin_p);//575 writer.WritePropertyName("ax"); writer.WriteValue(x_o); writer.WritePropertyName("ay"); writer.WriteValue(y_o); writer.WriteEndObject(); writer.WritePropertyName("exp"); writer.WriteValue(3); writer.WritePropertyName("img"); writer.WriteValue(4); writer.WritePropertyName("time"); writer.WriteValue(2880); writer.WritePropertyName("hole"); writer.WriteStartArray(); writer.WriteValue(360); writer.WriteValue(40); writer.WriteValue(55); writer.WriteValue(42); writer.WriteEndArray(); writer.WritePropertyName("damages"); writer.WriteStartArray(); writer.WriteEndArray(); writer.WriteEndObject(); writer.WriteEndArray(); writer.WriteValue(0); writer.WriteEndArray(); writer.WriteEndArray(); } SendAll(sb.ToString()); }
//----------------------------------------------------------------------------------------------------- public void cshot_Shot(object o, ShotEventArgs e) { try { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.None; writer.WriteStartArray(); writer.WriteValue((int)ServerOpcode.play); //8 writer.WriteStartArray(); if (e.User.Position == 0) { writer.WriteValue(1); //2 - next_turn_number } else { writer.WriteValue(0); //2 - next_turn_number } writer.WriteValue(e.User.Position); //0 - player_number writer.WriteValue(e.xb); //1022 - x writer.WriteValue(e.yb); //121 - y writer.WriteValue(e.look); //1 - look writer.WriteValue(1); //845 - delay //writer.WriteValue(0); //1 - next_turn_of_player if (e.User.Position == 0) { writer.WriteValue(1); //2 - next_turn_of_player } else { writer.WriteValue(0); //2 - next_turn_of_player } writer.WriteStartArray(); writer.WriteEndArray(); writer.WriteValue(799); //799 - thor_x writer.WriteValue(-420); //-420 - thor_y writer.WriteValue(0); //24 - thor_angle writer.WriteValue(40); //0 - thor_damage writer.WriteValue(1); //33 writer.WriteValue(0); //0 writer.WriteValue(234); //326 writer.WriteStartArray(); writer.WriteStartObject(); writer.WritePropertyName("start"); writer.WriteStartObject(); writer.WritePropertyName("x"); writer.WriteValue(e.xf); //1042 writer.WritePropertyName("y"); writer.WriteValue(e.yf); //95 writer.WritePropertyName("ang"); writer.WriteValue(e.angle); //24 writer.WritePropertyName("power"); writer.WriteValue(e.power); //101 writer.WritePropertyName("ax"); writer.WriteValue(e.ax); //0 writer.WritePropertyName("ay"); writer.WriteValue(e.ay); //398 writer.WriteEndObject(); writer.WritePropertyName("exp"); writer.WriteValue(0); //0 writer.WritePropertyName("img"); writer.WriteValue(0); //0 writer.WritePropertyName("time"); writer.WriteValue(e.time); //1340 //"hole":[887,95,60,40],"damages":[]}],150] if (e.col == true) { writer.WritePropertyName("hole"); writer.WriteStartArray(); writer.WriteValue(e.cx); //x hole writer.WriteValue(e.cy); //y hole writer.WriteValue(36); //w writer.WriteValue(40); //h writer.WriteEndArray(); writer.WritePropertyName("damages"); writer.WriteStartArray(); writer.WriteEndArray(); } writer.WriteEndObject(); writer.WriteEndArray(); writer.WriteValue(150); writer.WriteEndArray(); writer.WriteEndArray(); } SendAll(sb.ToString()); } catch (Exception ex) { LogConsole.Show(LogType.ERROR, ex.ToString()); } }
//----------------------------------------------------------------------------------------------------- public void GameStart() { try { if (this._channel_map < 0) { Random rand = new Random(); this._channel_map = 0;//rand.Next(0, 11); } _map_data = Program.RMaps.Single(a => a.id == this._channel_map); cshot = new CShot(_map_data.ground); cshot.Shot += cshot_Shot; } catch { LogConsole.Show(LogType.ERROR, "Map: {0} no Found", this._channel_map); } //[4,[[ //[0,146634,"Carlos 22",null,0,377,134,1000,0,0,10,55,-8,0,[1,2,0,0,0,0],52,33,52,33,52,33], //[1,151426,"Bil Board",null,13,20,35,1800,250,30,15,65,-7,5,[12,30], 68,45,68,45,68,45] StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.None; writer.WriteStartArray(); writer.WriteValue((int)ServerOpcode.game_start); writer.WriteStartArray(); writer.WriteStartArray(); int c = 0; foreach (UserManager.UserClass usp in UserInSala) { Point pt = _map_data.pos[c]; usp.x = pt.X; usp.y = pt.Y; writer.WriteStartArray(); writer.WriteValue(usp.Position); writer.WriteValue(usp.user_id); writer.WriteValue(usp.Name); string dsd = null; writer.WriteValue(dsd); writer.WriteValue(usp.rank); writer.WriteValue(usp.x); writer.WriteValue(usp.y); writer.WriteValue(1000); writer.WriteValue(0); writer.WriteValue(0); writer.WriteValue(10); writer.WriteValue(55); writer.WriteValue(-8); writer.WriteValue(usp.mobil); writer.WriteStartArray(); writer.WriteValue(usp.head); writer.WriteValue(usp.body); if (usp.Is_Bot != 1) { writer.WriteValue(usp.eyes); writer.WriteValue(usp.flag); writer.WriteValue(usp.foreground); writer.WriteValue(usp.background); } writer.WriteEndArray(); writer.WriteValue(52); writer.WriteValue(33); writer.WriteValue(52); writer.WriteValue(33); writer.WriteValue(52); writer.WriteValue(33); writer.WriteEndArray(); c++; } //],0,562,-452,0,0,[2,2,0,0,3],0,257,7,null]] writer.WriteEndArray(); writer.WriteValue(0); writer.WriteValue(562); writer.WriteValue(-452); writer.WriteValue(0); writer.WriteValue(0); writer.WriteStartArray(); writer.WriteValue(2); writer.WriteValue(2); writer.WriteValue(0); writer.WriteValue(0); writer.WriteValue(3); writer.WriteEndArray(); writer.WriteValue(0); writer.WriteValue(257); writer.WriteValue(_channel_map); string xdd = null; writer.WriteValue(xdd); writer.WriteEndArray(); writer.WriteEndArray(); SendAll(sb.ToString()); } }