private void Event_OnClientEventTrigger(Client sender, string eventName, params object[] arguments)
        {
            //args[0] to index na liście pozycji
            if (eventName == "OnPlayerSelectedCrimeBotDiscrict")
            {
                AccountEntity player = sender.GetAccountEntity();
                if (player.CharacterEntity.OnDutyGroup is CrimeGroup group && group.CanPlayerCallCrimeBot(player))
                {
                    if (group.CrimePedEntity != null)
                    {
                        // crime bot already spawned
                        sender.SendChatMessage("~#ffdb00~",
                                               "Wybrany abonent ma wyłączony telefon, bądź znajduje się poza zasięgiem, spróbuj później.");
                        return;
                    }

                    RoleplayContext ctx = Singletons.RoleplayContextFactory.Create();
                    using (CrimeBotsRepository repository = new CrimeBotsRepository(ctx))
                    {
                        CrimeBotModel    crimeBotData = repository.Get(crimeBot => crimeBot.GroupModel.Id == group.Id);
                        CrimeBotPosition position     = XmlHelper.GetXmlObjects <CrimeBotPosition>(
                            Path.Combine(Utils.XmlDirectory, "CrimeBotPositions"))[Convert.ToInt32(arguments[0])];

                        group.CrimePedEntity = new CrimePedEntity(player, group, position.VehiclePosition,
                                                                  crimeBotData.Name, NAPI.Util.PedNameToModel(crimeBotData.PedSkin), position.BotPosition);
                        group.CrimePedEntity.Spawn();
                        sender.TriggerEvent("DrawCrimeBotComponents", position.BotPosition.Position, 500, 2);
                    }
                }
                else
                {
                    sender.SendChatMessage("~#ffdb00~",
                                           "Wybrany abonent ma wyłączony telefon, bądź znajduje się poza zasięgiem, spróbuj później.");
                }
            }
Ejemplo n.º 2
0
 public UnitOfWork(RoleplayContext context)
 {
     Context                        = context;
     AccountsRepository             = new AccountsRepository(context);
     BuildingsRepository            = new BuildingsRepository(context);
     CharactersRepository           = new CharactersRepository(context);
     CrimeBotsRepository            = new CrimeBotsRepository(context);
     GroupsRepository               = new GroupsRepository(context);
     GroupWarehouseItemsRepository  = new GroupWarehouseItemsRepository(context);
     GroupWarehouseOrdersRepository = new GroupWarehouseOrdersRepository(context);
     ItemsRepository                = new ItemsRepository(context);
     PenaltiesRepository            = new PenaltiesRepository(context);
     TelephoneContactsRepository    = new TelephoneContactsRepository(context);
     TelephoneMessagesRepository    = new TelephoneMessagesRepository(context);
     VehiclesRepository             = new VehiclesRepository(context);
     WorkersRepository              = new WorkersRepository(context);
     ZonesRepository                = new ZonesRepository(context);
     GroupRanksRepository           = new GroupRankRepository(context);
     TicketsRepository              = new TicketsRepository(context);
     ItemTemplatesRepository        = new ItemTemplatesRepository(context);
 }
        public CrimePedEntity(AccountEntity player, CrimeGroup group, FullPosition vehiclePosition,
                              string name, PedHash hash, FullPosition position) : base(name, hash, position)
        {
            Player          = player;
            Group           = group;
            VehiclePosition = vehiclePosition;

            RoleplayContext ctx = Singletons.RoleplayContextFactory.Create();

            using (CrimeBotsRepository repository = new CrimeBotsRepository(ctx))
                DbModel = repository.Get(crimeBot => crimeBot.GroupModel.Id == group.Id);

            List <PropertyInfo> properties = new List <PropertyInfo> {
                null
            };

            properties.AddRange(typeof(CrimeBotModel).GetProperties()
                                .Where(f => f.GetValue(DbModel) != null && (f.PropertyType == typeof(int?) || f.PropertyType == typeof(decimal?))));

            if (properties.Count % 3 != 1)
            {
                player.Client.SendError($"Konfiguracja bota grupy {Group} jest nieporawna, skontaktuj się z administratorem.");
                return;
            }

            for (int i = 0; i < properties.Count; i += 3)
            {
                if (i == 0)
                {
                    continue;
                }

                Tuple <string, ItemEntityType> info = Constant.Items.GetCrimeBotItemName(properties[i - 2].Name);
                Items.Add(new CrimeBotItem(info.Item1, ((decimal?)properties[i - 2].GetValue(DbModel)).Value, ((int?)properties[i - 1].GetValue(DbModel)).Value, ((int?)properties[i].GetValue(DbModel)).Value, info.Item2, properties[i - 1].Name));
            }
            Items.ForEach(
                x => NAPI.Chat.SendChatMessageToPlayer(Player.Client, $"Nazwa {x.Name} Koszt {x.Cost}, Ilość {x.Count}, Pole {x.DatabaseField}"));
        }