public void ClaimAuction(LKCamelot.LoginProto msg) { LKCamelot.script.item.AuctionItem ai; try { ai = LKCamelot.model.World.NewAuctions[Convert.ToInt32(msg.ClaimAuctionP.Serial)]; } catch { return; } if (ai != null) { if (ai.item.ParSer == player.Serial) { ai.flags = 0; LKCamelot.script.item.AuctionItem it; LKCamelot.model.World.NewAuctions.TryRemove(ai.item.m_Serial, out it); var titem = ai.item; titem.m_InvSlot = player.FreeBankSlot; titem.m_Loc = null; titem.m_Parent = player; titem.ParSer = player.Serial; LKCamelot.model.World.NewItems.TryAdd(titem.m_Serial, titem); LoginProto curResp = new LoginProto(); curResp.ClaimAuctionResponseP = new ClaimAuctionResponse(); curResp.ClaimAuctionResponseP.slot = titem.InvSlot.ToString(); iweb.Send(CreateBuffer(curResp)); CharCurMessage(player); GetAuctions(player); } } }
public void CreateAuction(LKCamelot.LoginProto msg, LKCamelot.model.Player play) { int ser = 0; ulong gold = 0; int agold = 0; try{ ser = Convert.ToInt32(msg.CreateAuctionP.ItemSerial); gold = Convert.ToUInt64(msg.CreateAuctionP.Gold); agold = Convert.ToInt32(msg.CreateAuctionP.AGold); } catch { return; } var item = play.Inventory.Where(xe => xe.m_Serial == ser && (xe.Parent == play || xe.ParSer == play.Serial)).FirstOrDefault(); if (item != null) { LKCamelot.script.item.Item it; var aucit = new script.item.AuctionItem(item, gold, 1, agold); aucit.sellerSerial = play.Serial; aucit.state = script.item.aucState.forsale; LKCamelot.model.World.NewItems.TryRemove(item.m_Serial, out it); LKCamelot.model.World.NewAuctions.TryAdd(item.m_Serial, aucit); } GetItemsMessage(msg, play); GetAuctions(play); }
public void GetItemsMessage(LKCamelot.LoginProto msg, LKCamelot.model.Player play) { LoginProto curResp = new LoginProto(); curResp.GetItemsResponseP = new GetItemsResponse(); var templ = new List <TraderItem>(); foreach (var item in play.Inventory) { var ti = new TraderItem(); ti.Name = item.Name; if (item.Stage > 0) { ti.Name += "<br>" + item.NPrefix() + "(" + item.Stage + ")"; } ti.Quantity = item.Quantity.ToString(); ti.Serial = ((int)(item.m_Serial)).ToString(); ti.Sprite = item.m_ItemID.ToString(); ti.Stage = item.Stage.ToString(); templ.Add(ti); } curResp.GetItemsResponseP.traderItem = templ; iweb.Send(CreateBuffer(curResp)); }
public byte[] CreateBuffer(LKCamelot.LoginProto msg) { System.IO.MemoryStream outp = new System.IO.MemoryStream(); Serializer.Serialize(outp, msg); var buff = new byte[outp.Length]; Array.Copy(outp.GetBuffer(), 0, buff, 0, outp.Length); return(buff); }
public void LoginMessage(LKCamelot.LoginProto msg) { var accs = LKCamelot.model.PlayerHandler.getSingleton().add.Values; player = accs.Where(xe => xe.Name == msg.LoginP.user).FirstOrDefault(); bool result; if (player.Pass.Length > 10) { result = LKCamelot.util.Cryption.CheckHashPass(player.Pass, player.Name, msg.LoginP.shapassword); } else { result = (player.Pass == msg.LoginP.shapassword); } LoginProto logResp = new LoginProto(); logResp.LoginReponseP = new LoginResponse(); if (player != null) { if (player.loggedIn) { logResp.LoginReponseP.loginresp = LoginResponse.LoginStatus.LOGGEDIN; } else if (!result) { logResp.LoginReponseP.loginresp = LoginResponse.LoginStatus.WRONGPASS; } else if (result) { player.loggedIn = true; player.apistate = 1; player.keepalive = Server.tickcount.ElapsedMilliseconds; logResp.LoginReponseP.loginresp = LoginResponse.LoginStatus.SUCCESS; logResp.LoginReponseP.classtype = ((int)player.m_Class).ToString(); } } else { logResp.LoginReponseP.loginresp = LoginResponse.LoginStatus.WRONGPASS; } iweb.Send(CreateBuffer(logResp)); }
public void BuyAuction(LKCamelot.LoginProto msg) { LoginProto curResp = new LoginProto(); curResp.BuyAuctionResponseP = new BuyAuctionResponse(); curResp.BuyAuctionResponseP.result = "2"; LKCamelot.script.item.AuctionItem ai; try{ ai = LKCamelot.model.World.NewAuctions[Convert.ToInt32(msg.BuyAuctionP.ItemSerial)]; } catch { iweb.Send(CreateBuffer(curResp)); return; } if (ai != null && ai.flags == 1) { if (player.Gold > ai.goldprice && msg.BuyAuctionP.useagold == false) { player.m_Gold -= Convert.ToUInt64(ai.goldprice); var owner = Server.playerHandler.add.Values.Where(xe => xe.Serial == ai.item.ParSer).FirstOrDefault(); owner.m_Gold += Convert.ToUInt64(ai.goldprice); ai.buyerSerial = player.Serial; ai.state = script.item.aucState.sold; ai.item.ParSer = player.Serial; ai.flags = 2; curResp.BuyAuctionResponseP.result = "1"; } } iweb.Send(CreateBuffer(curResp)); CharCurMessage(player); GetAuctions(player); }