private bool CheckUserTouch(RoomUser UserTouch, ItemTemp Item) { if (UserTouch != null) { if (!this._room.RpRoom) { return(true); } else { if (UserTouch.VirtualId != Item.VirtualUserId) { if (UserTouch.IsBot) { if (UserTouch.BotData.RoleBot != null && !UserTouch.BotData.RoleBot.Dead) { return(true); } } else { RolePlayer Rp = UserTouch.Roleplayer; if (Rp != null) { if ((Rp.PvpEnable || Rp.AggroTimer > 0) && !Rp.Dead && !Rp.SendPrison) { return(true); } } } } } } return(false); }
private void CheckUserHit(RoomUser UserTouch, ItemTemp Item) { if (UserTouch != null) { if (_room.RpRoom) { if (UserTouch.VirtualId != Item.VirtualUserId) { if (UserTouch.IsBot) { if (UserTouch.BotData.RoleBot != null) { UserTouch.BotData.RoleBot.Hit(UserTouch, Item.Value, this._room, Item.VirtualUserId, Item.TeamId); } } else { RolePlayer Rp = UserTouch.Roleplayer; if (Rp != null) { if (Rp.PvpEnable || Rp.AggroTimer > 0) { Rp.Hit(UserTouch, Item.Value, this._room, true); } } } } } else { _room.GetWiredHandler().TriggerCollision(UserTouch, null); } } }
private void RemoveProjectile(ItemTemp Item) { if (!_projectile.Contains(Item)) { return; } _projectile.Remove(Item); this._room.GetRoomItemHandler().RemoveTempItem(Item.Id); }
public void RemoveTempItem(int pId) { ItemTemp Item = this.GetTempItem(pId); if (Item == null) { return; } this.GetRoom.SendPacket(new ObjectRemoveMessageComposer(Item.Id, 0)); this._itemsTemp.TryRemove(pId, out Item); }
public List <ItemTemp> GetListItemTemp(string user) { List <ItemTemp> listItem = new List <ItemTemp>(); DataTable data = DataProvider.Instance.ExcuteQuery("select * from ItemInvoiceTemp" + user); foreach (DataRow item in data.Rows) { ItemTemp list = new ItemTemp(item); listItem.Add(list); } return(listItem); }
public ItemTemp GetTempItem(int pId) { if (_itemsTemp != null && _itemsTemp.ContainsKey(pId)) { ItemTemp Item = null; if (_itemsTemp.TryGetValue(pId, out Item)) { return(Item); } } return(null); }
public ItemTemp AddTempItem(int vId, int spriteId, int x, int y, double z, string extraData, int value = 0, InteractionTypeTemp pInteraction = InteractionTypeTemp.NONE, MovementDirection movement = MovementDirection.none, int pDistance = 0, int pTeamId = 0) { int id = this._itemTempoId--; ItemTemp Item = new ItemTemp(id, vId, spriteId, x, y, z, extraData, movement, value, pInteraction, pDistance, pTeamId); if (!this._itemsTemp.ContainsKey(Item.Id)) { this._itemsTemp.TryAdd(Item.Id, Item); } this.GetRoom.SendPacket(new ObjectAddComposer(Item)); return(Item); }
public void ExtractAllItemsToTemp(InventoryBase inventory, IInventorySlots inventorySlots) { for (var i = 0; i < inventorySlots.Capacity; i++) { if (inventorySlots.TryGetSlot(i, out var inventoryItem)) { var itemTemp = new ItemTemp(); itemTemp.propertySet.SetStats(inventoryItem.Stats); itemTemp.amount = inventory.Remove(null, inventoryItem.Item, inventoryItem.Stats, inventoryItem.Amount, i); itemTemp.itemDefinition = inventoryItem.Item; itemsToSort.Add(itemTemp); } } }
public ObjectAddComposer(ItemTemp Item) : base(ServerPacketHeader.ObjectAddMessageComposer) { WriteInteger(Item.Id); WriteInteger(Item.SpriteId); //ScriptId WriteInteger(Item.X); WriteInteger(Item.Y); WriteInteger(2); WriteString(string.Format("{0:0.00}", TextHandling.GetString(Item.Z))); WriteString(""); if (Item.InteractionType == InteractionTypeTemp.RPITEM) { WriteInteger(0); WriteInteger(1); WriteInteger(5); WriteString("state"); WriteString("0"); WriteString("imageUrl"); WriteString("https://swf.wibbo.me/items/" + Item.ExtraData + ".png"); WriteString("offsetX"); WriteString("-20"); WriteString("offsetY"); WriteString("10"); WriteString("offsetZ"); WriteString("10002"); } else { WriteInteger(1); WriteInteger(0); WriteString(Item.ExtraData); //ExtraData } WriteInteger(-1); // to-do: check WriteInteger(1); WriteInteger(Item.VirtualUserId); WriteString(""); }
private void WriteFloorItem(ItemTemp Item, int UserID) { WriteInteger(Item.Id); WriteInteger(Item.SpriteId); WriteInteger(Item.X); WriteInteger(Item.Y); WriteInteger(2); WriteString(String.Format("{0:0.00}", TextHandling.GetString(Item.Z))); WriteString(String.Empty); if (Item.InteractionType == InteractionTypeTemp.RPITEM) { WriteInteger(0); WriteInteger(1); WriteInteger(5); WriteString("state"); WriteString("0"); WriteString("imageUrl"); WriteString("https://swf.wibbo.me/items/" + Item.ExtraData + ".png"); WriteString("offsetX"); WriteString("-20"); WriteString("offsetY"); WriteString("10"); WriteString("offsetZ"); WriteString("10002"); } else { WriteInteger(1); WriteInteger(0); WriteString(Item.ExtraData); } WriteInteger(-1); // to-do: check WriteInteger(1); //(Item.GetBaseItem().Modes > 1) ? 1 : 0 WriteInteger(UserID); }
public void ItemTemplate() { StreamReader reader = File.OpenText(@"itemkr.txt"); string line; TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; while (!reader.EndOfStream) { line = reader.ReadLine(); var parse = line.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries); if (parse.Count() <= 1 || parse[1] == "bg") continue; ItemTemp newt = new ItemTemp(); int itr = 0; if (parse.Count() == 11) { newt.Name = textInfo.ToTitleCase(parse[0].ToLower()) +" "+ textInfo.ToTitleCase(parse[1].ToLower()); itr += 2; } else { newt.Name = textInfo.ToTitleCase(parse[itr++].ToLower()); } newt.Type = textInfo.ToTitleCase(parse[itr++].ToLower()); newt.StrReq = parse[itr++]; newt.DexReq = parse[itr++]; newt.Dura = parse[itr++]; List<string> clas = new List<string>(); if (parse[itr++] == "O") clas.Add("Class.Beginner"); if (parse[itr++] == "O") clas.Add("Class.Knight"); if (parse[itr++] == "O") clas.Add("Class.Swordsman"); if (parse[itr++] == "O") clas.Add("Class.Wizard"); if (parse[itr++] == "O") clas.Add("Class.Shaman"); foreach (var mem in clas) { if (clas.Count == 1) { newt.ClassReq = mem; break; } newt.ClassReq += mem+" | "; } if (clas.Count > 1) newt.ClassReq = newt.ClassReq.Substring(0, (newt.ClassReq.Count()-3)); if(clas.Count == 5) newt.ClassReq = "0"; tempitem.Add(newt); } reader.Close(); StreamReader reader2 = File.OpenText(@"itemen.txt"); while (!reader2.EndOfStream) { line = reader2.ReadLine(); var parse = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); ItemTemp item; int itre = 1; if (parse.Count() == 8) { item = tempitem.Where(xe => xe.Name == (parse[1]+" "+parse[2])).FirstOrDefault(); itre += 2; } else { item = tempitem.Where(xe => xe.Name == parse[itre]).FirstOrDefault(); itre++; } item.Level = parse[itre++]; if (Convert.ToInt32(parse[0]) < 37) { itre += 2; item.AC = parse[itre++]; item.Dam = parse[itre]; } else { itre+=3; item.AC = parse[itre]; item.Dam = "0"; } } reader2.Close(); /* using (StreamWriter outp = File.AppendText(@"itemsBack.txt")) { foreach (var item in tempitem) { outp.WriteLine(string.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}", item.Name, item.Type, item.StrReq, item.DexReq, item.Dura, item.AC, item.Dam, item.ClassReq)); } }*/ string path = "hi"; foreach (var item in tempitem) { int bas = 10; if (item.Type.ToLower() == "sword") { path = @"item\sword\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; bas = 10; } if (item.Type.ToLower() == "axe") { bas = 14; path = @"item\axe\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; } if (item.Type.ToLower() == "hammer") { bas = 35; path = @"item\hammer\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; } if (item.Type.ToLower() == "helmet") { bas = 4; path = @"item\helmet\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; } if (item.Type.ToLower() == "shield") { bas = 17; path = @"item\shield\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; } if (item.Type.ToLower() == "armor") { bas = 5; path = @"item\armor\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; } using (StreamWriter outp = File.AppendText(path)) { outp.WriteLine("using LKCamelot.library;"); outp.WriteLine("using LKCamelot.model;"); outp.WriteLine(""); outp.WriteLine("namespace LKCamelot.script.item"); outp.WriteLine("{"); if (item.Type.ToLower() == "armor" || item.Type.ToLower() == "shield" || item.Type.ToLower() == "helmet") { outp.WriteLine("\tpublic class " + Regex.Replace(item.Name, @"\s+", "") + " : BaseArmor"); } else { outp.WriteLine("\tpublic class " + Regex.Replace(item.Name, @"\s+", "") + " : BaseWeapon"); } outp.WriteLine("\t{"); outp.WriteLine("\t\tpublic override string Name { get { return \""+item.Name+"\"; } }"); outp.WriteLine(""); outp.WriteLine("\t\tpublic override int DamBase { get { return "+item.Dam+"; } }"); outp.WriteLine("\t\tpublic override int ACBase { get { return " + item.AC + "; } }"); outp.WriteLine(""); outp.WriteLine("\t\tpublic override int StrReq { get { return "+item.StrReq+"; } }"); outp.WriteLine("\t\tpublic override int DexReq { get { return " + item.DexReq + "; } }"); outp.WriteLine(""); outp.WriteLine("\t\tpublic override int InitMinHits { get { return "+item.Dura+"; } }"); outp.WriteLine("\t\tpublic override int InitMaxHits { get { return " + item.Dura + "; } }"); outp.WriteLine(""); outp.WriteLine("\t\tpublic override Class ClassReq { get { return " + item.ClassReq + "; } }"); if (item.Type.ToLower() == "armor" || item.Type.ToLower() == "shield" || item.Type.ToLower() == "helmet") { outp.WriteLine("\t\tpublic override ArmorType ArmorType { get { return ArmorType." + item.Type + "; } }"); } else { outp.WriteLine("\t\tpublic override WeaponType WeaponType { get { return WeaponType." + item.Type + "; } }"); } outp.WriteLine(""); outp.WriteLine("\t\tpublic " + Regex.Replace(item.Name, @"\s+", "") + "() : base ("+bas+")"); outp.WriteLine("\t\t{"); outp.WriteLine("\t\t}"); outp.WriteLine(""); outp.WriteLine("\t\tpublic " + Regex.Replace(item.Name, @"\s+", "") + "(Serial serial) : base (serial)"); outp.WriteLine("\t\t{"); outp.WriteLine("\t\t}"); outp.WriteLine("\t}"); outp.WriteLine("}"); } } }
public void AddGrenade(int vId, int x, int y, double z, MovementDirection movement, int Dmg = 0, int pDistance = 10, int pTeamId = -1) { ItemTemp Item = this._room.GetRoomItemHandler().AddTempItem(vId, 48741061, x, y, z, "1", Dmg, InteractionTypeTemp.GRENADE, movement, 4, pTeamId); this._queueProjectile.Enqueue(Item); }
public void AddProjectile(int vId, int x, int y, double z, MovementDirection movement, int Dmg = 0, int pDistance = 10, int pTeamId = -1) { ItemTemp Item = this._room.GetRoomItemHandler().AddTempItem(vId, 77151726, x, y, z, "1", Dmg, InteractionTypeTemp.PROJECTILE, movement, pDistance, pTeamId); this._queueProjectile.Enqueue(Item); }
public void OnCycle() { if (_projectile.Count == 0 && _queueProjectile.Count == 0) { return; } foreach (ItemTemp Item in _projectile.ToArray()) { if (Item == null) { continue; } bool EndProjectile = false; List <RoomUser> UsersTouch = new List <RoomUser>(); Point newPoint = new Point(Item.X, Item.Y); int newX = Item.X; int newY = Item.Y; double newZ = Item.Z; if (Item.InteractionType == InteractionTypeTemp.GRENADE) { newPoint = MovementManagement.GetMoveCoord(Item.X, Item.Y, 1, Item.Movement); newX = newPoint.X; newY = newPoint.Y; if (Item.Distance > 2) { newZ += 1; } else { newZ -= 1; } if (Item.Distance <= 0) { //explosion UsersTouch = _room.GetGameMap().GetNearUsers(new Point(newPoint.X, newPoint.Y), 2); EndProjectile = true; } Item.Distance--; } else { for (int i = 1; i <= 3; i++) { newPoint = MovementManagement.GetMoveCoord(Item.X, Item.Y, i, Item.Movement); UsersTouch = _room.GetGameMap().GetRoomUsers(newPoint); foreach (RoomUser UserTouch in UsersTouch) { if (CheckUserTouch(UserTouch, Item)) { EndProjectile = true; } } if ((_room.GetGameMap().CanStackItem(newPoint.X, newPoint.Y, true) && (_room.GetGameMap().SqAbsoluteHeight(newPoint.X, newPoint.Y) <= Item.Z + 0.5))) { newX = newPoint.X; newY = newPoint.Y; } else { EndProjectile = true; } if (EndProjectile) { break; } Item.Distance--; if (Item.Distance <= 0) { EndProjectile = true; break; } } } ServerPacket Message = new ServerPacket(ServerPacketHeader.SlideObjectBundleMessageComposer); Message.WriteInteger(Item.X); Message.WriteInteger(Item.Y); Message.WriteInteger(newX); Message.WriteInteger(newY); Message.WriteInteger(1); Message.WriteInteger(Item.Id); Message.WriteString(Item.Z.ToString().Replace(',', '.')); Message.WriteString(newZ.ToString().Replace(',', '.')); Message.WriteInteger(0); _messages.Add(Message); Item.X = newX; Item.Y = newY; Item.Z = newZ; if (EndProjectile) { foreach (RoomUser UserTouch in UsersTouch) { this.CheckUserHit(UserTouch, Item); } RemoveProjectile(Item); } } Dictionary <int, int> BulletUser = new Dictionary <int, int>(); if (this._queueProjectile.Count > 0) { List <ItemTemp> toAdd = new List <ItemTemp>(); while (this._queueProjectile.Count > 0) { ItemTemp Item = (ItemTemp)null; if (this._queueProjectile.TryDequeue(out Item)) { if (!BulletUser.ContainsKey(Item.VirtualUserId)) { BulletUser.Add(Item.VirtualUserId, 1); this._projectile.Add(Item); } else { BulletUser[Item.VirtualUserId]++; //if (BulletUser[Item.VirtualUserId] > 3) //this._room.GetRoomItemHandler().RemoveTempItem(Item.Id); //else toAdd.Add(Item); } } } foreach (ItemTemp Item in toAdd) { this._queueProjectile.Enqueue(Item); } toAdd.Clear(); } BulletUser.Clear(); _room.SendMessage(_messages); _messages.Clear(); }
public void ItemTemplate() { StreamReader reader = File.OpenText(@"itemkr.txt"); string line; TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; while (!reader.EndOfStream) { line = reader.ReadLine(); var parse = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (parse.Count() <= 1 || parse[1] == "bg") { continue; } ItemTemp newt = new ItemTemp(); int itr = 0; if (parse.Count() == 11) { newt.Name = textInfo.ToTitleCase(parse[0].ToLower()) + " " + textInfo.ToTitleCase(parse[1].ToLower()); itr += 2; } else { newt.Name = textInfo.ToTitleCase(parse[itr++].ToLower()); } newt.Type = textInfo.ToTitleCase(parse[itr++].ToLower()); newt.StrReq = parse[itr++]; newt.DexReq = parse[itr++]; newt.Dura = parse[itr++]; List <string> clas = new List <string>(); if (parse[itr++] == "O") { clas.Add("Class.Beginner"); } if (parse[itr++] == "O") { clas.Add("Class.Knight"); } if (parse[itr++] == "O") { clas.Add("Class.Swordsman"); } if (parse[itr++] == "O") { clas.Add("Class.Wizard"); } if (parse[itr++] == "O") { clas.Add("Class.Shaman"); } foreach (var mem in clas) { if (clas.Count == 1) { newt.ClassReq = mem; break; } newt.ClassReq += mem + " | "; } if (clas.Count > 1) { newt.ClassReq = newt.ClassReq.Substring(0, (newt.ClassReq.Count() - 3)); } if (clas.Count == 5) { newt.ClassReq = "0"; } tempitem.Add(newt); } reader.Close(); StreamReader reader2 = File.OpenText(@"itemen.txt"); while (!reader2.EndOfStream) { line = reader2.ReadLine(); var parse = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); ItemTemp item; int itre = 1; if (parse.Count() == 8) { item = tempitem.Where(xe => xe.Name == (parse[1] + " " + parse[2])).FirstOrDefault(); itre += 2; } else { item = tempitem.Where(xe => xe.Name == parse[itre]).FirstOrDefault(); itre++; } item.Level = parse[itre++]; if (Convert.ToInt32(parse[0]) < 37) { itre += 2; item.AC = parse[itre++]; item.Dam = parse[itre]; } else { itre += 3; item.AC = parse[itre]; item.Dam = "0"; } } reader2.Close(); /* using (StreamWriter outp = File.AppendText(@"itemsBack.txt")) * { * foreach (var item in tempitem) * { * outp.WriteLine(string.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}", item.Name, item.Type, item.StrReq, item.DexReq, item.Dura, item.AC, item.Dam, item.ClassReq)); * } * }*/ string path = "hi"; foreach (var item in tempitem) { int bas = 10; if (item.Type.ToLower() == "sword") { path = @"item\sword\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; bas = 10; } if (item.Type.ToLower() == "axe") { bas = 14; path = @"item\axe\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; } if (item.Type.ToLower() == "hammer") { bas = 35; path = @"item\hammer\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; } if (item.Type.ToLower() == "helmet") { bas = 4; path = @"item\helmet\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; } if (item.Type.ToLower() == "shield") { bas = 17; path = @"item\shield\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; } if (item.Type.ToLower() == "armor") { bas = 5; path = @"item\armor\" + Regex.Replace(item.Name, @"\s+", "") + ".cs"; } using (StreamWriter outp = File.AppendText(path)) { outp.WriteLine("using LKCamelot.library;"); outp.WriteLine("using LKCamelot.model;"); outp.WriteLine(""); outp.WriteLine("namespace LKCamelot.script.item"); outp.WriteLine("{"); if (item.Type.ToLower() == "armor" || item.Type.ToLower() == "shield" || item.Type.ToLower() == "helmet") { outp.WriteLine("\tpublic class " + Regex.Replace(item.Name, @"\s+", "") + " : BaseArmor"); } else { outp.WriteLine("\tpublic class " + Regex.Replace(item.Name, @"\s+", "") + " : BaseWeapon"); } outp.WriteLine("\t{"); outp.WriteLine("\t\tpublic override string Name { get { return \"" + item.Name + "\"; } }"); outp.WriteLine(""); outp.WriteLine("\t\tpublic override int DamBase { get { return " + item.Dam + "; } }"); outp.WriteLine("\t\tpublic override int ACBase { get { return " + item.AC + "; } }"); outp.WriteLine(""); outp.WriteLine("\t\tpublic override int StrReq { get { return " + item.StrReq + "; } }"); outp.WriteLine("\t\tpublic override int DexReq { get { return " + item.DexReq + "; } }"); outp.WriteLine(""); outp.WriteLine("\t\tpublic override int InitMinHits { get { return " + item.Dura + "; } }"); outp.WriteLine("\t\tpublic override int InitMaxHits { get { return " + item.Dura + "; } }"); outp.WriteLine(""); outp.WriteLine("\t\tpublic override Class ClassReq { get { return " + item.ClassReq + "; } }"); if (item.Type.ToLower() == "armor" || item.Type.ToLower() == "shield" || item.Type.ToLower() == "helmet") { outp.WriteLine("\t\tpublic override ArmorType ArmorType { get { return ArmorType." + item.Type + "; } }"); } else { outp.WriteLine("\t\tpublic override WeaponType WeaponType { get { return WeaponType." + item.Type + "; } }"); } outp.WriteLine(""); outp.WriteLine("\t\tpublic " + Regex.Replace(item.Name, @"\s+", "") + "() : base (" + bas + ")"); outp.WriteLine("\t\t{"); outp.WriteLine("\t\t}"); outp.WriteLine(""); outp.WriteLine("\t\tpublic " + Regex.Replace(item.Name, @"\s+", "") + "(Serial serial) : base (serial)"); outp.WriteLine("\t\t{"); outp.WriteLine("\t\t}"); outp.WriteLine("\t}"); outp.WriteLine("}"); } } }