public override Packet GetInfoPacket(PlayerObject ob) { return(new S.ObjectMonster { ObjectID = ObjectID, MonsterIndex = MonsterInfo.Index, Location = CurrentLocation, NameColour = NameColour, Direction = Direction, Dead = Dead, PetOwner = PetOwner?.Name, Skeleton = NeedHarvest && Skeleton && (Drops == null || !Drops.ContainsKey(ob.Character.Account)), Poison = Poison, EasterEvent = EasterEventMob, HalloweenEvent = HalloweenEventMob, ChristmasEvent = ChristmasEventMob, ExtraInt = Stage, Buffs = Buffs.Where(x => x.Visible).Select(x => x.Type).ToList() }); }
public void DropItem(IDictionary <string, object> data) { var player = API.PlayerPedId(); var nonRounded = API.GetEntityCoords(player, true); var playerCoords = new Vector3((float)Math.Round(nonRounded.X, 1), (float)Math.Round(nonRounded.Y, 1), (float)Math.Round(nonRounded.Z, 1)); var ownerTo = toOwner(playerCoords); IDictionary <string, dynamic> dataData = (IDictionary <string, dynamic>)data["data"]; dataData.Add("ownerTo", ownerTo); dataData.Add("typeTo", "drop"); dataData.Add("coords", ownerTo); if (Drops.ContainsKey(ownerTo)) { dataData.Add("slotTo", -1); } else { dataData.Add("slotTo", 1); } TriggerServerEvent(Events.MoveItem, data); }
public void TakeString(string Arrow, string Drop, string Player) { var arr = Arrow.Split(','); HashSet <int> IsUsed = new HashSet <int>(); for (int i = 0; i < arr.Length; i++) { var small = arr[i].Split(' '); int tag = Utily.Parse(small[0]); int dmg = Utily.Parse(small[1]); int id = Utily.Parse(small[2]); if (Arrows.ContainsKey(tag)) { Arrows[tag].dmg = dmg; Arrows[tag].id = id; } else { Arrows.Add(tag, new AArrow(dmg, id)); ArrowEvent.Enqueue(tag); } IsUsed.Add(tag); } List <int> ForRemove = new List <int>(); foreach (var i in Arrows) { if (!IsUsed.Contains(i.Key)) { ForRemove.Add(i.Key); ArrowEvent.Enqueue(-i.Key); } } foreach (var i in ForRemove) { Arrows.Remove(i); } var dro = Drop.Split(','); IsUsed.Clear(); for (int i = 0; i < arr.Length; i++) { var small = dro[i].Split(' '); int tag = Utily.Parse(small[0]); int cnt = Utily.Parse(small[1]); int id = Utily.Parse(small[2]); if (Drops.ContainsKey(tag)) { Drops[tag].Count = cnt; Drops[tag].id = id; } else { Drops.Add(tag, new ADrop(cnt, id)); DropEvent.Enqueue(tag); } IsUsed.Add(tag); } ForRemove.Clear(); foreach (var i in Drops) { if (!IsUsed.Contains(i.Key)) { ForRemove.Add(i.Key); DropEvent.Enqueue(-i.Key); } } foreach (var i in ForRemove) { Drops.Remove(i); } var pla = Player.Split(','); IsUsed.Clear(); for (int i = 0; i < arr.Length; i++) { var small = pla[i].Split(' '); int tag = Utily.Parse(small[0]); int kill = Utily.Parse(small[1]); int death = Utily.Parse(small[2]); if (ArenaPlayer.ContainsKey(tag)) { ArenaPlayer[tag].RealName = small[3]; IsUsed.Add(tag); } else { ArenaPlayer.Add(tag, new APlayer(small[3])); } ArenaPlayer[tag].Kill = kill; ArenaPlayer[tag].Death = death; } ForRemove.Clear(); foreach (var i in ArenaPlayer) { if (!IsUsed.Contains(i.Key)) { ForRemove.Add(i.Key); } } foreach (var i in ForRemove) { ArenaPlayer.Remove(i); } }