예제 #1
0
        /// <summary>
        /// Завершение рабочего дня
        /// </summary>
        public void JobGryzYval(Client player)
        {
            PlayerInfo pInfo = API.getEntityData(player.handle, Constants.PlayerAccount);

            if (pInfo.Job == (int)Jobs.JOB_JOBGRYZ_ONE)
            {
                var myBox = GryzBoxes.Where(i => i.Player == player).FirstOrDefault();
                if (myBox != null)
                {
                    API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Сначала отнесите ящик на склад.");
                    return;
                }

                API.sendNativeToPlayer(player, Hash.DO_SCREEN_FADE_OUT, 200);
                API.delay(200, true, () =>
                {
                    pInfo.Job = (int)Jobs.NULL;
                    API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Вы закончили рабочий день.");
                    API.clearPlayerAccessory(player, 0); // удаляем аксесуары с головы
                    pInfo.UpdateDress();                 // меняем одежду на пользовательскую

                    pInfo.money    = pInfo.money + pInfo.jobMoney;
                    pInfo.jobMoney = 0;
                    pInfo.UpdateBD();
                    var Markers = pInfo.playerEntity.Where(x => x.Key == Constants.Marker); // Удаляем все пользовательские маркеры связанные с работой
                    foreach (var Marker in Markers.ToArray())
                    {
                        MarkerInfo bi = Marker.Value;
                        if (bi.Job == Jobs.JOB_JOBGRYZ_ONE)
                        {
                            bi.DeleteMarker();
                        }
                    }

                    var Blips = pInfo.playerEntity.Where(x => x.Key == Constants.Blip); // Удаляем все пользовательские блипы связанные с работой
                    foreach (var Blip in Blips.ToArray())
                    {
                        BlipInfo bi = Blip.Value;
                        if (bi.Job == Jobs.JOB_JOBGRYZ_ONE)
                        {
                            bi.DeleteBlip();
                        }
                    }
                    API.sendNativeToPlayer(player, Hash.DO_SCREEN_FADE_IN, 750);
                });
            }
            else
            {
                API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Вы здесь не работаете.");
            }
        }
예제 #2
0
        /// <summary>
        /// Выход из маркера
        /// </summary>
        private void onMarkerExit(ColShape colshape, NetHandle entity)
        {
            if (colshape.hasData(Constants.MarkerClass))
            {
                MarkerInfo mInfo = colshape.getData(Constants.MarkerClass);
                Client     player;

                int type = (int)API.getEntityType(entity);
                if (type == 6)
                {
                    player = API.getPlayerFromHandle(entity);
                }
                else
                {
                    return;
                }

                if (mInfo.local && mInfo.player != player)
                {
                    return;
                }

                if (mInfo.Job == Jobs.JOB_JOBGRYZ_ONE)
                {
                    if (mInfo.HasData("JobGryzAction"))
                    {
                        switch ((int)mInfo.GetData("JobGryzAction"))
                        {
                        case 0:
                            mInfo.DeleteMarker();
                            break;

                        case 1:
                            mInfo.DeleteMarker();
                            break;
                        }
                    }
                    else if (mInfo.HasData("JobGryzZone")) // Работник пытается украсть ящик.
                    {
                        PlayerInfo pInfo = API.getEntityData(player.handle, Constants.PlayerAccount);
                        if (pInfo.Job == (int)Jobs.JOB_JOBGRYZ_ONE)
                        {
                            pInfo.Job = (int)Jobs.NULL;
                            API.sendNativeToPlayer(player, Hash.DO_SCREEN_FADE_OUT, 200);
                            API.delay(200, true, () =>
                            {
                                var myBox = GryzBoxes.Where(i => i.Player == player).FirstOrDefault();
                                if (myBox != null)
                                {
                                    //Удаляем украденный ящик
                                    API.detachEntity(myBox.Object);
                                    API.setEntityPosition(myBox.Object, new Vector3(55.31, -1259.78, -10.0));
                                    API.deleteEntity(myBox.Object);
                                    GryzBoxes.Remove(myBox);
                                    API.stopPlayerAnimation(player);

                                    API.sendChatMessageToPlayer(player, "~y~[Server] ~r~Вы пытались украсть груз.");
                                    API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Ваш рабочий день окончен.");
                                    API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Вы ни чего не получите за работу.");
                                    API.clearPlayerAccessory(player, 0); // удаляем аксесуары с головы
                                    pInfo.UpdateDress();                 // меняем одежду на пользовательскую
                                    pInfo.jobMoney = 0;
                                }
                                else
                                {
                                    API.sendChatMessageToPlayer(player, "~y~[Server] ~b~Вы покинули зону. Ваш рабочий день окончен.");
                                    API.clearPlayerAccessory(player, 0); // удаляем аксесуары с головы
                                    pInfo.UpdateDress();                 // меняем одежду на пользовательскую
                                    pInfo.money    = pInfo.money + pInfo.jobMoney;
                                    pInfo.jobMoney = 0;
                                    pInfo.UpdateBD();
                                }

                                var Markers = pInfo.playerEntity.Where(x => x.Key == Constants.Marker); // Удаляем все пользовательские маркеры связанные с работой
                                foreach (var Marker in Markers.ToArray())
                                {
                                    MarkerInfo bi = Marker.Value;
                                    if (bi.Job == Jobs.JOB_JOBGRYZ_ONE)
                                    {
                                        bi.DeleteMarker();
                                    }
                                }

                                var Blips = pInfo.playerEntity.Where(x => x.Key == Constants.Blip); // Удаляем все пользовательские блипы связанные с работой
                                foreach (var Blip in Blips.ToArray())
                                {
                                    BlipInfo bi = Blip.Value;
                                    if (bi.Job == Jobs.JOB_JOBGRYZ_ONE)
                                    {
                                        bi.DeleteBlip();
                                    }
                                }
                                API.sendNativeToPlayer(player, Hash.DO_SCREEN_FADE_IN, 750);
                            });
                        }
                    }
                    else
                    {
                        API.triggerClientEvent(player, "JobGryzOff");
                    }
                }
            }
            else
            {
                API.deleteColShape(colshape);
            }
        }