public ActionResult EditDeliveryOrderDetail(DeliveryOrderPusatDetailModel deliveryorderPusatDetail) { if (Session["UserLogon"] != null) { deliveryorderPusatDetail.Account = (AccountModel)Session["UserLogon"]; } DeliveryOrderPusatDetailResponse _deliveryorderpusatdetailresponse = new DeliveryOrderPusatDetailResponse(); var deliveryorderpusatdetailrequest = new DeliveryOrderPusatDetailRequest { Data = deliveryorderPusatDetail }; var requestnamabarang = new ProductRequest { Data = new ProductModel { Id = Convert.ToInt32(deliveryorderPusatDetail.ProductId) } }; var requestnamavendor = new VendorRequest { Data = new VendorModel { Id = deliveryorderPusatDetail.VendorId } }; ProductResponse namabarang = new ProductHandler(_unitOfWork).GetDetail(requestnamabarang); VendorResponse namavendor = new VendorHandler(_unitOfWork).GetDetail(requestnamavendor); deliveryorderpusatdetailrequest.Data.namabarang = deliveryorderpusatdetailrequest.Data.namabarang != null ? deliveryorderpusatdetailrequest.Data.namabarang : namabarang.Entity.Name; deliveryorderpusatdetailrequest.Data.namavendor = namavendor.Entity.namavendor; new DeliveryOrderPusatDetailValidator(_unitOfWork).Validate(deliveryorderpusatdetailrequest, out _deliveryorderpusatdetailresponse); return(Json(new { data = _deliveryorderpusatdetailresponse.Data }, JsonRequestBehavior.AllowGet)); }
public ActionResult EditPurchaseRequestDetail(PurchaseRequestPusatDetailModel purchaseRequestPusatDetail) { if (Session["UserLogon"] != null) { purchaseRequestPusatDetail.Account = (AccountModel)Session["UserLogon"]; } PurchaseRequestPusatDetailResponse _purchaserequestpusatdetailresponse = new PurchaseRequestPusatDetailResponse(); var purchaserequestpusatdetailrequest = new PurchaseRequestPusatDetailRequest { Data = purchaseRequestPusatDetail }; var requestnamabarang = new ProductRequest { Data = new ProductModel { Id = Convert.ToInt32(purchaseRequestPusatDetail.ProductId) } }; var requestnamavendor = new VendorRequest { Data = new VendorModel { Id = purchaseRequestPusatDetail.VendorId } }; ProductResponse namabarang = new ProductHandler(_unitOfWork).GetDetail(requestnamabarang); VendorResponse namavendor = new VendorHandler(_unitOfWork).GetDetail(requestnamavendor); purchaserequestpusatdetailrequest.Data.namabarang = purchaserequestpusatdetailrequest.Data.namabarang != null ? purchaserequestpusatdetailrequest.Data.namabarang : namabarang.Entity.Name; purchaserequestpusatdetailrequest.Data.namavendor = namavendor.Entity.namavendor; new PurchaseRequestPusatDetailValidator(_unitOfWork).Validate(purchaserequestpusatdetailrequest, out _purchaserequestpusatdetailresponse); return(Json(new { data = _purchaserequestpusatdetailresponse.Data }, JsonRequestBehavior.AllowGet)); }
public JsonResult searchvendor(string prefix) { var _draw = "1"; var _start = "0"; var _length = "10"; var _sortColumn = "Id"; var _sortColumnDir = "asc"; var _searchValue = prefix; int _pageSize = _length != null?Convert.ToInt32(_length) : 0; int _skip = _start != null?Convert.ToInt32(_start) : 0; var request = new VendorRequest { Draw = _draw, SearchValue = _searchValue, SortColumn = _sortColumn, SortColumnDir = _sortColumnDir, PageSize = _pageSize, Skip = _skip }; var response = new VendorResponse(); if (request.SearchValue != null) { response = new VendorHandler(_unitOfWork).GetListData(request); } return(Json(new { data = response.Data, recordsFiltered = response.RecordsFiltered, recordsTotal = response.RecordsTotal, draw = response.Draw }, JsonRequestBehavior.AllowGet)); }
private void LoadVendors(Identity playfieldIdentity) { VendorHandler.SpawnVendorsForPlayfield( this, PlayfieldLoader.PFData[playfieldIdentity.Instance].Statels.Where( x => x.Identity.Type == IdentityType.VendingMachine).ToArray()); }
public static void StartTheServer() { try { Console.ForegroundColor = ConsoleColor.Green; zoneServer.Monsters = new List <NonPlayerCharacterClass>(); zoneServer.Vendors = new List <VendingMachine>(); zoneServer.Doors = new List <Doors>(); using (SqlWrapper sqltester = new SqlWrapper()) { if (sqltester.SQLCheck() != SqlWrapper.DBCheckCodes.DBC_ok) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Database setup not correct"); Console.WriteLine("Error: #" + sqltester.lasterrorcode + " - " + sqltester.lasterrormessage); Console.WriteLine("Please press Enter to exit."); Console.ReadLine(); Process.GetCurrentProcess().Kill(); } sqltester.CheckDBs(); } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Loaded {0} items", ItemHandler.CacheAllItems()); Console.WriteLine("Loaded {0} nanos", NanoHandler.CacheAllNanos()); Console.WriteLine("Loaded {0} spawns", NonPlayerCharacterHandler.CacheAllFromDB()); Console.WriteLine("Loaded {0} vendors", VendorHandler.CacheAllFromDB()); Console.WriteLine("Loaded {0} teleports", DoorHandler.CacheAllFromDB()); Console.WriteLine("Loaded {0} statels", Statels.CacheAllStatels()); LootHandler.CacheAllFromDB(); Tradeskill.CacheItemNames(); csc.AddScriptMembers(); csc.CallMethod("Init", null); ThreadMgr.Start(); zoneServer.Start(); Console.ResetColor(); } catch (MySqlException e) { Console.WriteLine("MySql Error. Server Cannot Start"); Console.WriteLine("Exception: " + e.Message); string current = DateTime.Now.ToString("HH:mm:ss"); StreamWriter logfile = File.AppendText("ZoneEngineLog.txt"); logfile.WriteLine(current + " " + e.Source + " MySql Error. Server Cannot Start"); logfile.WriteLine(current + " " + e.Source + " Exception: " + e.Message); logfile.Close(); zoneServer.Stop(); ThreadMgr.Stop(); Process.GetCurrentProcess().Kill(); } }
public JsonResult CreateOrEditPurchaseRequestPusat(PurchaseRequestPusatModel _purchaserequestpusat, List <PurchaseRequestPusatDetailModel> purchaserequestpusatDetailModels) { if (Session["UserLogon"] != null) { _purchaserequestpusat.Account = (AccountModel)Session["UserLogon"]; } _purchaserequestpusat.Id = Convert.ToInt32(_purchaserequestpusat.Id) > 0 ? _purchaserequestpusat.Id : 0; _purchaserequestpusat.GudangId = OneLoginSession.Account.GudangID > 0 ? OneLoginSession.Account.GudangID : 0; var request = new PurchaseRequestPusatRequest { Data = _purchaserequestpusat }; PurchaseRequestPusatResponse _response = new PurchaseRequestPusatResponse(); new PurchaseRequestPusatValidator(_unitOfWork).Validate(request, out _response); if (purchaserequestpusatDetailModels != null) { foreach (var item in purchaserequestpusatDetailModels) { var purchaserequestpusatdetailrequest = new PurchaseRequestPusatDetailRequest { Data = item }; purchaserequestpusatdetailrequest.Data.PurchaseRequestPusatId = Convert.ToInt32(_response.Entity.Id); purchaserequestpusatdetailrequest.Data.Account = (AccountModel)Session["UserLogon"]; // var requestnamabarang = new ProductRequest { Data = new ProductModel { Id = item.ProductId } }; var requestnamavendor = new VendorRequest { Data = new VendorModel { Id = item.VendorId } }; ProductResponse namabarang = new ProductHandler(_unitOfWork).GetDetail(requestnamabarang); VendorResponse namavendor = new VendorHandler(_unitOfWork).GetDetail(requestnamavendor); purchaserequestpusatdetailrequest.Data.namabarang = namabarang.Entity.Name; purchaserequestpusatdetailrequest.Data.namavendor = namavendor.Entity.namavendor; PurchaseRequestPusatDetailResponse _purchaserequestpusatdetailresponse = new PurchaseRequestPusatDetailResponse(); new PurchaseRequestPusatDetailValidator(_unitOfWork).Validate(purchaserequestpusatdetailrequest, out _purchaserequestpusatdetailresponse); } } return(Json(new { data = _response.Data }, JsonRequestBehavior.AllowGet)); }
public JsonResult CreateOrEditDeliveryOrderPusat(DeliveryOrderPusatModel _deliveryorderpusat, List <DeliveryOrderPusatDetailModel> deliveryderpusatDetailModels) { if (Session["UserLogon"] != null) { _deliveryorderpusat.Account = (AccountModel)Session["UserLogon"]; } _deliveryorderpusat.Id = Convert.ToInt32(_deliveryorderpusat.Id) > 0 ? _deliveryorderpusat.Id : 0; var request = new DeliveryOrderPusatRequest { Data = _deliveryorderpusat }; DeliveryOrderPusatResponse _response = new DeliveryOrderPusatResponse(); new DeliveryOrderPusatValidator(_unitOfWork).Validate(request, out _response); if (deliveryderpusatDetailModels != null) { foreach (var item in deliveryderpusatDetailModels) { var deliveryorderpusatdetailrequest = new DeliveryOrderPusatDetailRequest { Data = item }; deliveryorderpusatdetailrequest.Data.DeliveryOrderPusatId = Convert.ToInt32(_response.Entity.Id); deliveryorderpusatdetailrequest.Data.Account = (AccountModel)Session["UserLogon"]; // var requestnamabarang = new ProductRequest { Data = new ProductModel { Id = item.ProductId } }; var requestnamavendor = new VendorRequest { Data = new VendorModel { Id = item.VendorId } }; ProductResponse namabarang = new ProductHandler(_unitOfWork).GetDetail(requestnamabarang); VendorResponse namavendor = new VendorHandler(_unitOfWork).GetDetail(requestnamavendor); deliveryorderpusatdetailrequest.Data.namabarang = namabarang.Entity.Name; deliveryorderpusatdetailrequest.Data.namavendor = namavendor.Entity.namavendor; DeliveryOrderPusatDetailResponse _deliveryorderpusatdetailresponse = new DeliveryOrderPusatDetailResponse(); new DeliveryOrderPusatDetailValidator(_unitOfWork).Validate(deliveryorderpusatdetailrequest, out _deliveryorderpusatdetailresponse); } } return(Json(new { data = _response.Data }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// /// </summary> /// <param name="client"></param> public static void Send(Client client) { PacketWriter packetWriter = new PacketWriter(); packetWriter.PushBytes(new byte[] { 0xDF, 0xDF }); packetWriter.PushShort(10); packetWriter.PushShort(1); packetWriter.PushShort(0); packetWriter.PushInt(3086); packetWriter.PushInt(client.Character.Id); packetWriter.PushInt(0x5F4B1A39); packetWriter.PushIdentity(40016, client.Character.PlayField); packetWriter.PushByte(0); packetWriter.PushInt(4); packetWriter.PushCoord(client.Character.Coordinates); packetWriter.PushByte(97); packetWriter.PushIdentity(51100, client.Character.PlayField); packetWriter.PushInt(0); packetWriter.PushInt(0); packetWriter.PushIdentity(40016, client.Character.PlayField); packetWriter.PushInt(0); packetWriter.PushInt(0); int vendorcount = VendorHandler.GetNumberofVendorsinPlayfield(client.Character.PlayField); if (vendorcount > 0) { packetWriter.PushInt(51035); packetWriter.PushInt(1); packetWriter.PushInt(1); packetWriter.PushInt(vendorcount); packetWriter.PushInt(VendorHandler.GetFirstVendor(client.Character.PlayField)); } // TODO: Use correct World Position for each "outdoors" playfield -Suiv- // Playfield WorldPos X packetWriter.PushInt(Playfields.GetPlayfieldX(client.Character.PlayField)); // Playfield WorldPos Z packetWriter.PushInt(Playfields.GetPlayfieldZ(client.Character.PlayField)); byte[] packet = packetWriter.Finish(); client.SendCompressed(packet); }
public override void ExecuteCommand(Client client, Identity target, string[] args) { if ((args.Length == 2) && (args[1].ToLower() != "list")) { VendorHandler.SpawnVendor(client, args[1]); } else { if (args.Length >= 2) { string filter = ""; if (args.Length > 2) { for (int i = 2; i < args.Length; i++) { if (filter.Length > 0) { filter = filter + " AND "; } if (filter.Length == 0) { filter = "WHERE "; } filter = filter + "name like '%" + args[i] + "%' "; } } SqlWrapper sql = new SqlWrapper(); DataTable dt = sql.ReadDatatable("SELECT Hash, Name FROM vendortemplate " + filter + " order by Name ASC"); client.SendChatText("List of vendortemplates: "); foreach (DataRow row in dt.Rows) { client.SendChatText(row[0] + " " + row[1]); } } } }
public JArray ListVendorByAim(int aim) { DataSet ds = VendorHandler.ListVendorByAim(aim); return(CommonHandler.TransferArrayFromDS(ds)); }
public VendorHttpController(IHostingEnvironment hostingEnvironment, InventoryDBContext context) { m_Handler = new VendorHandler(context, this); m_HostingEnvironment = hostingEnvironment; _context = context; }
public bool AddVendor([FromBody] Vendor vendor) { return(VendorHandler.AddVendor(vendor)); }
public bool InActiveVendor(int id, string uid) { return(VendorHandler.InActiveVendor(id, Guid.Parse(uid))); }
public bool UpdateVendor([FromBody] Vendor vendor) { return(VendorHandler.UpdateVendor(vendor)); }
public JArray ListAllVendros() { DataSet ds = VendorHandler.ListAllVendors(); return(CommonHandler.TransferArrayFromDS(ds)); }
/// <summary> /// The read. /// </summary> /// <param name="packet"> /// The packet. /// </param> /// <param name="client"> /// The client. /// </param> /// <param name="dynel"> /// The dynel. /// </param> public static void Read(byte[] packet, Client client, Dynel dynel) { sender = client; PacketReader packetReader = new PacketReader(packet); packetReader.PopHeader(); packetReader.PopByte(); temp1 = packetReader.PopInt(); count = packetReader.PopInt(); // Count of commands sent action = packetReader.PopInt(); temp4 = packetReader.PopInt(); user = packetReader.PopIdentity(); target = packetReader.PopIdentity(); packetReader.Finish(); bool feedback = true; switch (action) { case 1: // Get break; case 2: // Drop break; case 3: // Use OnUse(); AOCoord newcoord = client.Character.Coordinates; feedback = false; if (Statels.StatelppfonUse.ContainsKey(client.Character.PlayField)) { foreach (Statels.Statel s in Statels.StatelppfonUse[client.Character.PlayField]) { if (s.onUse(client, target)) { return; } } } bool teleport = false; int playfield = 152; switch (target.Instance) { // Need to add feedback to the character // Are the Newer Grid points in this list??? // No newer Grid points in list, will be replaced by a check against a list of statels read from rdb anyway // - Algorithman case -1073605919: // Teleport Tower(noobisland)(right) if (client.Character.Stats.Side.Value != 2) { client.SendChatText("You need to be omni to use this teleporter!"); teleport = false; } else { newcoord.x = 202; newcoord.z = 878; newcoord.y = 16; playfield = 687; } break; case -1073736991: // Teleport Tower(noobisland)(left) if (client.Character.Stats.Side.Value != 1) { client.SendChatText("You need to be clan to use this teleporter!"); teleport = false; } else { newcoord.x = 390; newcoord.z = 340; newcoord.y = 0; playfield = 545; } break; case -1073671455: // Teleport Tower(noobisland)(middle) if (client.Character.Stats.Side.Value != 0) { client.SendChatText("You need to be neutral to use this teleporter!"); teleport = false; } else { newcoord.x = 685; newcoord.z = 480; newcoord.y = 73; playfield = 800; } break; case -1073741189: // 2ho -> Stret west if (client.Character.Stats.Cash.Value < 50) { // check if you got enough credits to use the ferry client.SendChatText("You need atleast 50 credits to board this ferry!"); teleport = false; } else { client.Character.Stats.Cash.Set(client.Character.Stats.Cash.Value - 50); newcoord.x = 1143; newcoord.z = 541; newcoord.y = 8; playfield = 790; } break; case -1073478890: // Stret West -> 2ho if (client.Character.Stats.Cash.Value < 50) { // check if you got enough credits to use the ferry client.SendChatText("You need atleast 50 credits to board this ferry!"); teleport = false; } else { client.Character.Stats.Cash.Set(client.Character.Stats.Cash.Value - 50); newcoord.x = 760; newcoord.z = 1982; newcoord.y = 7; playfield = 635; } break; case -1073216841: // Harry's -> Plesant Meadows if (client.Character.Stats.Cash.Value < 50) { // check if you got enough credits to use the ferry client.SendChatText("You need atleast 50 credits to board this ferry!"); teleport = false; } else { client.Character.Stats.Cash.Set(client.Character.Stats.Cash.Value - 50); newcoord.x = 370; newcoord.z = 1564; newcoord.y = 7; playfield = 630; } break; case -1073216906: // Plesant Meadows -> Harry's if (client.Character.Stats.Cash.Value < 50) { // check if you got enough credits to use the ferry client.SendChatText("You need atleast 50 credits to board this ferry!"); teleport = false; } else { client.Character.Stats.Cash.Set(client.Character.Stats.Cash.Value - 50); newcoord.x = 3196; newcoord.z = 3172; newcoord.y = 7; playfield = 695; } break; case -1073282442: // Pleasant Meadows -> Omni-Tek outpost in Lush Fields if (client.Character.Stats.Cash.Value < 50) { // check if you got enough credits to use the ferry client.SendChatText("You need atleast 50 credits to board this ferry!"); teleport = false; } else { client.Character.Stats.Cash.Set(client.Character.Stats.Cash.Value - 50); newcoord.x = 3389; newcoord.z = 800; newcoord.y = 8; playfield = 695; } break; case -1073413449: // Omni-Tek outpost in Lush Fields -> Pleasant Meadows if (client.Character.Stats.Cash.Value < 50) { // check if you got enough credits to use the ferry client.SendChatText("You need atleast 50 credits to board this ferry!"); teleport = false; } else { client.Character.Stats.Cash.Set(client.Character.Stats.Cash.Value - 50); newcoord.x = 370; newcoord.z = 1562; newcoord.y = 7; playfield = 630; } break; case -1073347913: // Harry's trading outpost -> Omni-1 Trade (free) newcoord.x = 3569; newcoord.z = 912; newcoord.y = 9; playfield = 695; break; case -1073282377: // Omni-1 Trade -> Harry's trading outpost (free) newcoord.x = 3290; newcoord.z = 2922; newcoord.y = 7; playfield = 695; break; default: feedback = true; teleport = false; break; } if (teleport) { client.Teleport(newcoord, client.Character.Heading, playfield); } // Use item in inventory if (target.Type == 104) { InventoryEntries ie = client.Character.GetInventoryAt(target.Instance); AOItem mi = ItemHandler.GetItemTemplate(ie.Item.LowID); // TODO mi.applyon(client.Character, ItemHandler.eventtype_onuse, true, false, ie.Placement); TemplateAction.Send(client.Character, ie); if (mi.isConsumable()) { ie.Item.MultipleCount--; if (ie.Item.MultipleCount <= 0) { client.Character.Inventory.Remove(ie); DeleteItem.Send(client.Character, ie.Container, ie.Placement); // Packets.Stat.Set(client, 0, client.Character.Stats.GetStat(0),false); } } foreach (AOEvents aoe in mi.Events) { if (aoe.EventType == Constants.EventtypeOnUse) { sender.Character.ExecuteEvent( sender.Character, sender.Character, aoe, true, false, 0, CheckReqs.doCheckReqs); SkillUpdate.SendStat(client, 0x209, client.Character.Stats.SocialStatus.Value, false); // Social Status return; } } int le = packet[7] + packet[6] * 256; byte[] reply = new byte[le]; Array.Copy(packet, reply, le); reply[0] = 0xdf; reply[1] = 0xdf; reply[8] = 0x00; reply[9] = 0x00; reply[10] = 0x0C; reply[11] = 0x0E; reply[12] = (byte)(client.Character.Id >> 24); reply[13] = (byte)(client.Character.Id >> 16); reply[14] = (byte)(client.Character.Id >> 8); reply[15] = (byte)client.Character.Id; reply[0x1c] = 0; reply[32] = 1; reply[36] = 3; PacketWriter pw = new PacketWriter(); pw.PushBytes(reply); byte[] rep = pw.Finish(); client.SendCompressed(rep); SkillUpdate.SendStat(client, 0x209, client.Character.Stats.SocialStatus.Value, false); // Social Status return; } else if (target.Type == 51035) { // Shops VendingMachine vm = VendorHandler.GetVendorById(target.Instance); ShopInventory.Send(client, vm); Trade.Send(client, client.Character, vm); Trade.Send(client, vm, client.Character); Trade.Send(client, vm, client.Character); int le = packet[7] + packet[6] * 256; byte[] reply = new byte[le]; Array.Copy(packet, reply, le); reply[0] = 0xdf; reply[1] = 0xdf; reply[8] = 0x00; reply[9] = 0x00; reply[10] = 0x0C; reply[11] = 0x0E; reply[12] = (byte)(client.Character.Id >> 24); reply[13] = (byte)(client.Character.Id >> 16); reply[14] = (byte)(client.Character.Id >> 8); reply[15] = (byte)client.Character.Id; reply[0x1c] = 0; reply[0x20] = 1; client.Character.LastTrade = target; PacketWriter pw = new PacketWriter(); pw.PushBytes(reply); byte[] rep = pw.Finish(); client.SendCompressed(rep); } else if (target.Type == 51050) { // Open corpse } break; case 4: // Repair break; case 5: // UseItemOnItem #if DEBUG Console.WriteLine("Use Item on Item not defined yet"); Console.WriteLine("Packet data:"); string line = string.Empty; int count2 = 0; foreach (byte packbyte in packet) { if ((count2 % 16) == 0) { Console.WriteLine(line); line = string.Empty; } line = line + packbyte.ToString("X2") + " "; count2++; } if (line != string.Empty) { Console.WriteLine(); } Console.WriteLine(line); #endif break; default: break; } if (feedback) { #if DEBUG string Feedback1 = string.Format("T1 {0}, Count {1}, Action {2}, T4 {3}", temp1, count, action, temp4); string Feedback2 = string.Format( "User {0}:{1}, Target {2}:{3} ({4}:{5})", user.Type, user.Instance, target.Type, (uint)target.Instance, target.Type.ToString("X4"), ((uint)target.Instance).ToString("X8")); Statels.Statel b = null; if (Statels.Statelppf.ContainsKey(client.Character.PlayField)) { foreach (Statels.Statel z in Statels.Statelppf[client.Character.PlayField]) { if ((z.Type == target.Type) && ((Int32)z.Instance == target.Instance)) { b = z; break; } } } if (b != null) { foreach (Statels.StatelEvent e in b.Events) { Console.WriteLine("DebugOutput: \r\n" + e); } Console.WriteLine(b.Coordinates.ToString()); } else { Console.WriteLine( "No Statel defined in database for #" + target.Type + ":" + (UInt32)target.Instance + " (" + target.Type.ToString("X4") + ":" + target.Instance.ToString("X8") + ")"); } client.SendChatText(Feedback1); client.SendChatText(Feedback2); #endif } }
public int GetTotalCount() { return(VendorHandler.GetTotalCount()); }
/// <summary> /// /// </summary> /// <param name="packet"></param> /// <param name="client"></param> public void Read(byte[] packet, Client client) { // Don't edit anything in this region // unless you are 300% sure you know what you're doing #region Do not edit MemoryStream memoryStream = new MemoryStream(packet); BinaryReader binaryReader = new BinaryReader(memoryStream); memoryStream.Position = 20; // we get character ID of a client and store // it in this ClientBase so we can use it later int charID = IPAddress.NetworkToHostOrder(binaryReader.ReadInt32()); binaryReader.Close(); memoryStream.Dispose(); client.Character = new Character(charID, 0); client.Character.Client = client; client.Character.ReadNames(); client.Server.Info( client, "Client connected. ID: {0} IP: {1}", client.Character.Id, client.TcpIP + " Character name: " + client.Character.Name); // now we have to start sending packets like // character stats, inventory, playfield info // and so on. I will put some packets here just // to get us in game. We have to start moving // these packets somewhere else and make packet // builders instead of sending (half) hardcoded // packets. // lets get char ID as byte array byte[] chrID = new[] { packet[20], packet[21], packet[22], packet[23] }; /* send chat server info to client */ ChatServerInfo.Send(client); /* send playfield info to client */ PlayfieldAnarchyF.Send(client); /* set SocialStatus to 0 */ client.Character.Stats.SetBaseValue(521, 0); Stat.Send(client, 521, 0, false); /* Action 167 Animation and Stance Data maybe? */ byte[] tempBytes = new byte[] { 0xDF, 0xDF, 0x00, 0x0A, 0x00, 0x01, 0x00, 0x37, 0x00, 0x00, 0x0c, 0x0e, chrID[0], chrID[1], chrID[2], chrID[3], 0x5E, 0x47, 0x77, 0x70, // CharacterAction 0x00, 0x00, 0xC3, 0x50, chrID[0], chrID[1], chrID[2], chrID[3], 0x00, 0x00, 0x00, 0x00, 0xA7, // 167 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00, 0x00, 0x01, 0x00, 0x00 }; client.SendCompressed(tempBytes); tempBytes = new byte[] { // current in game time 0xDF, 0xDF, 0x00, 0x0A, 0x00, 0x01, 0x00, 0x2D, 0x00, 0x00, 0x0c, 0x0e, chrID[0], chrID[1], chrID[2], chrID[3], 0x5F, 0x52, 0x41, 0x2E, // GameTime 0x00, 0x00, 0xC3, 0x50, chrID[0], chrID[1], chrID[2], chrID[3], 0x01, 0x46, 0xEA, 0x90, 0x00, // 30024.0 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xD4, 0x40, // 185408 0x47, 0x9C, 0x9B, 0xA8 // 80183.3125 }; client.SendCompressed(tempBytes); /* set SocialStatus to 0 */ Stat.Set(client, 521, 0, false); /* again */ Stat.Set(client, 521, 0, false); /* visual */ SimpleCharFullUpdate.SendToPlayfield(client); /* inventory, items and all that */ FullCharacter.Send(client); tempBytes = new byte[] { // this packet gives you (or anyone else) // special attacks like brawl, fling shot and so 0xDF, 0xDF, 0x00, 0x0A, 0x00, 0x01, 0x00, 0x65, 0x00, 0x00, 0x0c, 0x0e, chrID[0], chrID[1], chrID[2], chrID[3], 0x1D, 0x3C, 0x0F, 0x1C, // SpecialAttackWeapon 0x00, 0x00, 0xC3, 0x50, chrID[0], chrID[1], chrID[2], chrID[3], 0x01, 0x00, 0x00, 0x0F, 0xC4, // (4036/1009)-1 = 3 special attacks 0x00, 0x00, 0xAA, 0xC0, // 43712 0x00, 0x02, 0x35, 0x69, // 144745 0x00, 0x00, 0x00, 0x64, // 100 0x4D, 0x41, 0x41, 0x54, // "MAAT" 0x00, 0x00, 0xA4, 0x31, // 42033 0x00, 0x00, 0xA4, 0x30, // 42032 0x00, 0x00, 0x00, 0x90, // 144 0x44, 0x49, 0x49, 0x54, // "DIIT" 0x00, 0x01, 0x12, 0x94, // 70292 0x00, 0x01, 0x12, 0x95, // 70293 0x00, 0x00, 0x00, 0x8E, // 142 0x42, 0x52, 0x41, 0x57, // "BRAW" 0x00, 0x00, 0x00, 0x07, // 7 0x00, 0x00, 0x00, 0x07, // 7 0x00, 0x00, 0x00, 0x07, // 7 0x00, 0x00, 0x00, 0x0E, // 14 0x00, 0x00, 0x00, 0x64 // 100 }; client.SendCompressed(tempBytes); // done #endregion // Timers are allowed to update client stats now. client.Character.DoNotDoTimers = false; // spawn all active monsters to client NonPlayerCharacterHandler.SpawnMonstersInPlayfieldToClient(client, client.Character.PlayField); if (VendorHandler.GetNumberofVendorsinPlayfield(client.Character.PlayField) > 0) { /* Shops */ VendorHandler.GetVendorsInPF(client); } // WeaponItemFullCharUpdate Maybe the right location , First Check if weapons present usually in equipment //Packets.WeaponItemFullUpdate.Send(client, client.Character); client.Character.ProcessTimers(DateTime.Now + TimeSpan.FromMilliseconds(200)); client.Character.CalculateSkills(); AppearanceUpdate.AnnounceAppearanceUpdate(client.Character); // done, so we call a hook. // Call all OnConnect script Methods Program.csc.CallMethod("OnConnect", client.Character); }
public JObject ListVendorById(int id) { DataSet ds = VendorHandler.ListVendorById(id); return(CommonHandler.TransferObjFromDS(ds)); }