예제 #1
0
        public static void DatabaseManagerInit()
        {
            DebugManager.DebugMessage("[DatabaseM] Initalizing database manager...");

            _database = MongoClient.GetDatabase("mtg_main");

            _countersTable      = _database.GetCollection <BsonDocument>("counters");
            VehicleTable        = _database.GetCollection <Vehicle>("vehicles");
            AccountTable        = _database.GetCollection <Account>("accounts");
            CharacterTable      = _database.GetCollection <Character>("characters");
            JobTable            = _database.GetCollection <Job>("jobs");
            PhoneNumbersTable   = _database.GetCollection <PhoneNumber>("phonenumbers");
            ContactTable        = _database.GetCollection <PhoneContact>("phonecontacts");
            MessagesTable       = _database.GetCollection <PhoneMessage>("phonemessages");
            GroupTable          = _database.GetCollection <Group>("groups");
            PropertyTable       = _database.GetCollection <Property>("properties");
            DoorsTable          = _database.GetCollection <Door>("doors");
            CrimeTable          = _database.GetCollection <Crime>("crimes");
            CriminalRecordTable = _database.GetCollection <CriminalRecord>("criminalrecords");
            TreesTable          = _database.GetCollection <Tree>("lumberjacktrees");
            MappingTable        = _database.GetCollection <Mapping>("mapping");
            NumberPlatesTable   = _database.GetCollection <LicensePlate>("numberplates");
            ContainersTable     = _database.GetCollection <Container>("containers");
            ContainerZonesTable = _database.GetCollection <ContainerZone>("containerzones");

            DebugManager.DebugMessage("[DatabaseM] Database Manager initalized!");
        }
예제 #2
0
파일: DrugsManager.cs 프로젝트: MTG-RP/V-RP
 public DrugsManager()
 {
     DebugManager.DebugMessage("[DrugsM]: Drugs are booting up.");
     Event.OnResourceStart      += StartTimer;
     Event.OnPlayerDisconnected += ClearEffects;
     DebugManager.DebugMessage("[DrugsM]: Drugs have successfully booted up.");
 }
예제 #3
0
        public GroupManager()
        {
            DebugManager.DebugMessage("[GroupM] Initalizing group manager...");

            load_groups();

            DebugManager.DebugMessage("[GroupM] Group Manager initalized!");
        }
예제 #4
0
파일: JobManager.cs 프로젝트: nxxnly/MTGRP
        public JobManager()
        {
            DebugManager.DebugMessage("[JobM] Initalizing job manager...");

            load_jobs();

            DebugManager.DebugMessage("[JobM] Job Manager initalized!");
        }
예제 #5
0
        public PhoneManager()
        {
            DebugManager.DebugMessage("[PhoneM] Initalizing Phone Manager...");

            CharacterMenu.OnCharacterLogin += CharacterMenu_OnCharacterLogin;

            DebugManager.DebugMessage("[PhoneM] Phone Manager initalized.");
        }
예제 #6
0
        public PhoneManager()
        {
            DebugManager.DebugMessage("[PhoneM] Initalizing Phone Manager...");

            Event.OnClientEventTrigger     += API_onClientEventTrigger;
            CharacterMenu.OnCharacterLogin += CharacterMenu_OnCharacterLogin;

            DebugManager.DebugMessage("[PhoneM] Phone Manager initalized.");
        }
예제 #7
0
        public WeaponManager()
        {
            //Event.OnPlayerWeaponAmmoChange += API_onPlayerWeaponAmmoChange;
            CharacterMenu.OnCharacterLogin     += CharacterMenu_OnCharacterLogin;
            InventoryManager.OnStorageGetItem  += InventoryManager_OnStorageGetItem;
            InventoryManager.OnStorageLoseItem += InventoryManager_OnStorageLoseItem;

            DebugManager.DebugMessage("[WeaponM] Weapon Manager initalized!");
        }
예제 #8
0
        public LoginManager()
        {
            DebugManager.DebugMessage("[LoginM] Initalizing Login Manager...");

            Event.OnPlayerConnected        += OnPlayerConnected;
            Event.OnPlayerFinishedDownload += OnPlayerFinishedDownload;
            Event.OnClientEventTrigger     += API_onClientEventTrigger;

            DebugManager.DebugMessage("[LoginM] Login Manager initalized.");
        }
예제 #9
0
        public void load_groups()
        {
            Groups = DatabaseManager.GroupTable.Find(Builders <Group> .Filter.Empty).ToList();

            foreach (var g in Groups)
            {
                g.register_markerzones();
                g.UpdateMapIcon();
            }

            DebugManager.DebugMessage("Loaded " + Groups.Count + " groups from the database.");
        }
예제 #10
0
        public JobManager()
        {
            DebugManager.DebugMessage("[JobM] Initalizing job manager...");

            Event.OnPlayerEnterVehicle += API_onPlayerEnterVehicle;

            Event.OnClientEventTrigger += ApiOnOnClientEventTrigger;

            load_jobs();

            DebugManager.DebugMessage("[JobM] Job Manager initalized!");
        }
예제 #11
0
        public Init()
        {
            DebugManager.DebugMessage("[INIT] Initalizing script...");

            //API.SetServerName(SERVER_NAME + " ~b~| ~g~" + SERVER_WEBSITE);

            InventoryManager.OnStorageItemUpdateAmount += InventoryManager_OnStorageItemUpdateAmount;

            SettingsManager.Load();

            DebugManager.DebugManagerInit();
            DatabaseManager.DatabaseManagerInit();
        }
예제 #12
0
        public VehicleManager()
        {
            DebugManager.DebugMessage("[VehicleM] Initilizing vehicle manager...");

            // Register callbacks
            Event.OnPlayerEnterVehicle += OnPlayerEnterVehicle;
            Event.OnVehicleDeath       += OnVehicleDeath;
            Event.OnPlayerExitVehicle  += OnPlayerExitVehicle;
            Event.OnPlayerDisconnected += API_onPlayerDisconnected;
            Event.OnClientEventTrigger += API_onClientEventTrigger;

            //Setup respawn timer.
            VehicleRespawnTimer.Interval = 5000;
            VehicleRespawnTimer.Elapsed += VehicleRespawnTimer_Elapsed;
            VehicleRespawnTimer.Start();

            //Register for on character enter to show his cars.
            CharacterMenu.OnCharacterLogin += CharacterMenu_OnCharacterLogin;

            // Create vehicle table +
            //load_all_unowned_vehicles();
            dropcarShape = API.CreateCylinderColShape(dropcarPosition, 2f, 3f);

            dropcarShape.onEntityEnterColShape += (shape, entity) =>
            {
                Client player;
                if ((player = API.GetPlayerFromHandle(entity)) != null)
                {
                    Character character = player.GetCharacter();

                    if (!character.IsOnDropcar)
                    {
                        return;
                    }

                    var   veh     = GetVehFromNetHandle(API.GetPlayerVehicle(player));
                    float payment = API.GetVehicleHealth(API.GetPlayerVehicle(player)) / 2;
                    VehicleManager.respawn_vehicle(veh);
                    API.Shared.SetVehicleEngineStatus(veh.NetHandle, false);
                    inventory.InventoryManager.GiveInventoryItem(character, new Money(), (int)payment);
                    character.IsOnDropcar = false;
                    API.TriggerClientEvent(player, "dropcar_removewaypoint");
                    player.SendChatMessage("Vehicle delivered. You earned $" + (int)payment);
                }
            };


            DebugManager.DebugMessage("[VehicleM] Vehicle Manager initalized!");
        }
예제 #13
0
        public Init()
        {
            DebugManager.DebugMessage("[INIT] Initalizing script...");

            API.SetServerName(SERVER_NAME + " ~b~| ~g~" + SERVER_WEBSITE);
            API.SetGamemodeName("Arcadit V-RP " + SERVER_VERSION);

            Event.OnResourceStart      += OnResourceStartHandler;
            Event.OnResourceStop       += API_onResourceStop;
            Event.OnClientEventTrigger += API_onClientEventTrigger;
            InventoryManager.OnStorageItemUpdateAmount += InventoryManager_OnStorageItemUpdateAmount;

            SettingsManager.Load();

            DebugManager.DebugManagerInit();
            DatabaseManager.DatabaseManagerInit();
        }
예제 #14
0
        public PlayerManager()
        {
            DebugManager.DebugMessage("[PlayerM] Initalizing player manager...");

            //Setup save timer.
            PlayerSaveTimer.Interval = 900000;
            PlayerSaveTimer.Elapsed += PlayerSaveTimer_Elapsed;
            PlayerSaveTimer.Start();

            //setup paycheck timer
            _payCheckTimer = new Timer {
                Interval = 1000, AutoReset = true
            };
            _payCheckTimer.Elapsed += _payCheckTimer_Elapsed;;
            _payCheckTimer.Start();

            DebugManager.DebugMessage("[PlayerM] Player Manager initalized.");
        }
예제 #15
0
        public MappingManager()
        {
            DebugManager.DebugMessage("[MAPPING MANAGER] Initializing mapping manager...");

            Mapping = DatabaseManager.MappingTable.Find(FilterDefinition <Mapping> .Empty).ToList();

            foreach (var m in Mapping)
            {
                if (m.IsActive)
                {
                    m.Load();
                }
            }

            DebugManager.DebugMessage("[MAPPING MANAGER] Loaded " + Mapping.Count() + " mapping requests (" + Mapping.FindAll(m => m.IsActive == true).Count() + " active)");

            DebugManager.DebugMessage("[MAPPING MANAGER] Mapping initialized.");
        }
예제 #16
0
        /*public void load_all_group_vehicles()
         * {
         *  int j = 0;
         *
         *  foreach (var i in DatabaseManager.GroupTable.Find(Builders<Group>.Filter.Empty).ToList())
         *  {
         *
         *      var filter = Builders<Vehicle>.Filter.Eq("GroupId", i.Id);
         *      var groupVehicles = DatabaseManager.VehicleTable.Find(filter).ToList();
         *
         *      foreach (var v in groupVehicles)
         *      {
         *          spawn_vehicle(v);
         *          Vehicles.Add(v);
         *          j++;
         *      }
         *  }
         *
         *  DebugManager.DebugMessage("Loaded " + j + " group vehicles from the database.");
         * }*/

        public static void load_all_unowned_vehicles()
        {
            var filter = Builders <GameVehicle> .Filter.Eq("OwnerId", "0");

            var unownedVehicles = DatabaseManager.VehicleTable.Find(filter).ToList();

            foreach (var v in unownedVehicles)
            {
                spawn_vehicle(v);

                v.Job   = JobManager.GetJobById(v.JobId);
                v.Group = GroupManager.GetGroupById(v.GroupId);

                API.Shared.SetBlipTransparency(v.Blip, 100);

                Vehicles.Add(v);
            }

            DebugManager.DebugMessage("Loaded " + unownedVehicles.Count + " unowned vehicles from the database.");
        }
예제 #17
0
        public void OnPlayerConnected(Client player)
        {
            DebugManager.DebugMessage("[LoginM] " + player.SocialClubName + " has connected to the server [NOT LOGGED IN]. (IP: " + player.Address + ")");
            LogManager.Log(LogManager.LogTypes.Connection, player.SocialClubName + " has connected to the server [NOT LOGGED IN]. (IP: " + player.Address + ")");

            Account account = player.GetAccount();

            API.SetEntitySharedData(player, "REG_DIMENSION", 1000);
            NAPI.Entity.SetEntityDimension(player, 1000);

            if (account.is_registered())
            {
                NAPI.Chat.SendChatMessageToPlayer(player, "This account is already registered. Use /login [password] to continue to character selection.");
            }
            else
            {
                NAPI.Chat.SendChatMessageToPlayer(player, "This account is unregistered! Use /register [password] to register it.");
            }

            NAPI.Chat.SendChatMessageToPlayer(player, "Press ~g~F12~w~ to disable CEF and login manually.");
            NAPI.ClientEvent.TriggerClientEvent(player, "onPlayerConnectedEx", account.is_registered());
        }
예제 #18
0
        public PlayerManager()
        {
            DebugManager.DebugMessage("[PlayerM] Initalizing player manager...");

            Event.OnPlayerConnected    += OnPlayerConnected;
            Event.OnPlayerDisconnected += OnPlayerDisconnected;
            Event.OnClientEventTrigger += API_onClientEventTrigger;
            Event.OnPlayerDeath        += API_onPlayerDeath;
            Event.OnPlayerHealthChange += API_onPlayerHealthChange;

            //Setup save timer.
            PlayerSaveTimer.Interval = 900000;
            PlayerSaveTimer.Elapsed += PlayerSaveTimer_Elapsed;
            PlayerSaveTimer.Start();

            //setup paycheck timer
            _payCheckTimer = new Timer {
                Interval = 1000, AutoReset = true
            };
            _payCheckTimer.Elapsed += _payCheckTimer_Elapsed;;
            _payCheckTimer.Start();

            DebugManager.DebugMessage("[PlayerM] Player Manager initalized.");
        }
예제 #19
0
 public LoginManager()
 {
     DebugManager.DebugMessage("[LoginM] Login Manager initalized.");
 }
예제 #20
0
파일: JobManager.cs 프로젝트: nxxnly/MTGRP
        public void load_jobs()
        {
            Jobs = DatabaseManager.JobTable.Find(Builders <Job> .Filter.Empty).ToList();

            foreach (var j in Jobs)
            {
                j.JoinPos = new MarkerZone(j.JoinPos.Location, j.JoinPos.Rotation, j.JoinPos.Dimension)
                {
                    ColZoneSize         = j.JoinPos.ColZoneSize,
                    ColZoneHeight       = j.JoinPos.ColZoneHeight,
                    UseColZone          = j.JoinPos.UseColZone,
                    BlipColor           = j.JoinPos.BlipColor,
                    BlipSprite          = j.sprite_type(),
                    BlipName            = j.Name,
                    BlipRange           = j.JoinPos.BlipRange,
                    BlipTransparency    = j.JoinPos.BlipTransparency,
                    BlipShortRange      = j.JoinPos.BlipShortRange,
                    BlipScale           = j.JoinPos.BlipScale,
                    UseBlip             = j.JoinPos.UseBlip,
                    MarkerColor         = j.JoinPos.MarkerColor,
                    MarkerDirection     = j.JoinPos.MarkerDirection,
                    MarkerType          = j.JoinPos.MarkerType,
                    MarkerScale         = j.JoinPos.MarkerScale,
                    UseMarker           = j.JoinPos.UseMarker,
                    TextLabelColor      = j.JoinPos.TextLabelColor,
                    TextLabelText       = "~g~" + j.Name + "~n~/joinjob",
                    TextLabelSeeThrough = j.JoinPos.TextLabelSeeThrough,
                    TextLabelRange      = j.JoinPos.TextLabelRange,
                    TextLabelSize       = j.JoinPos.TextLabelSize,
                    UseText             = j.JoinPos.UseText
                };

                j.JoinPos?.Create();

                if (j.MiscOne != MarkerZone.None)
                {
                    j.MiscOne = new MarkerZone(j.MiscOne.Location, j.MiscOne.Rotation, j.MiscOne.Dimension)
                    {
                        ColZoneSize         = j.MiscOne.ColZoneSize,
                        ColZoneHeight       = j.MiscOne.ColZoneHeight,
                        UseColZone          = j.MiscOne.UseColZone,
                        BlipColor           = j.MiscOne.BlipColor,
                        BlipSprite          = j.MiscOne.BlipSprite,
                        BlipName            = j.MiscOne.BlipName,
                        BlipRange           = j.MiscOne.BlipRange,
                        BlipTransparency    = j.MiscOne.BlipTransparency,
                        BlipShortRange      = j.MiscOne.BlipShortRange,
                        BlipScale           = j.MiscOne.BlipScale,
                        UseBlip             = j.MiscOne.UseBlip,
                        MarkerColor         = j.MiscOne.MarkerColor,
                        MarkerDirection     = j.MiscOne.MarkerDirection,
                        MarkerType          = j.MiscOne.MarkerType,
                        MarkerScale         = j.MiscOne.MarkerScale,
                        UseMarker           = j.MiscOne.UseMarker,
                        TextLabelColor      = j.MiscOne.TextLabelColor,
                        TextLabelText       = j.MiscOne.TextLabelText,
                        TextLabelSeeThrough = j.MiscOne.TextLabelSeeThrough,
                        TextLabelRange      = j.MiscOne.TextLabelRange,
                        TextLabelSize       = j.MiscOne.TextLabelSize,
                        UseText             = j.MiscOne.UseText
                    };

                    j.MiscOne.Create();
                }

                if (j.MiscTwo != MarkerZone.None)
                {
                    j.MiscTwo = new MarkerZone(j.MiscTwo.Location, j.MiscTwo.Rotation, j.MiscTwo.Dimension)
                    {
                        ColZoneSize         = j.MiscTwo.ColZoneSize,
                        ColZoneHeight       = j.MiscTwo.ColZoneHeight,
                        UseColZone          = j.MiscTwo.UseColZone,
                        BlipColor           = j.MiscTwo.BlipColor,
                        BlipSprite          = j.MiscTwo.BlipSprite,
                        BlipName            = j.MiscTwo.BlipName,
                        BlipRange           = j.MiscTwo.BlipRange,
                        BlipTransparency    = j.MiscTwo.BlipTransparency,
                        BlipShortRange      = j.MiscTwo.BlipShortRange,
                        BlipScale           = j.MiscTwo.BlipScale,
                        UseBlip             = j.MiscTwo.UseBlip,
                        MarkerColor         = j.MiscTwo.MarkerColor,
                        MarkerDirection     = j.MiscTwo.MarkerDirection,
                        MarkerType          = j.MiscTwo.MarkerType,
                        MarkerScale         = j.MiscTwo.MarkerScale,
                        UseMarker           = j.MiscTwo.UseMarker,
                        TextLabelColor      = j.MiscTwo.TextLabelColor,
                        TextLabelText       = j.MiscTwo.TextLabelText,
                        TextLabelSeeThrough = j.MiscTwo.TextLabelSeeThrough,
                        TextLabelRange      = j.MiscTwo.TextLabelRange,
                        TextLabelSize       = j.MiscTwo.TextLabelSize,
                        UseText             = j.MiscTwo.UseText
                    };

                    j.MiscTwo.Create();
                }

                for (var i = 0; i < j.JobZones.Count; i++)
                {
                    float width  = j.JobZones[i].GetData <float>("Width");
                    float height = j.JobZones[i].GetData <float>("Height");
                    j.JobZones[i] = NAPI.ColShape.Create2DColShape(j.JobZones[i].Position.X, j.JobZones[i].Position.Y, width, height);
                    j.register_job_zone_events(i);
                }

                j.register_job_marker_events();
            }

            DebugManager.DebugMessage("Loaded " + Jobs.Count + " jobs from the database.");
        }
예제 #21
0
 public DrugsManager()
 {
     DebugManager.DebugMessage("[DrugsM]: Drugs system initialized.");
 }
예제 #22
0
 public VehicleMenu()
 {
     Event.OnClientEventTrigger += OnClientEventTrigger;
     DebugManager.DebugMessage("[VehicleMenu] Vehicle Menu initalized.");
 }
예제 #23
0
 public void OnPlayerConnected(Client player)
 {
     DebugManager.DebugMessage("[LoginM] " + player.socialClubName + " has connected to the server [NOT LOGGED IN]. (IP: " + player.address + ")");
     LogManager.Log(LogManager.LogTypes.Connection, player.socialClubName + " has connected to the server [NOT LOGGED IN]. (IP: " + player.address + ")");
 }
예제 #24
0
 public VehicleMenu()
 {
     DebugManager.DebugMessage("[VehicleMenu] Vehicle Menu initalized.");
 }
예제 #25
0
        public void OnClientEventTrigger(Client player, string eventName, params object[] arguments)
        {
            switch (eventName)
            {
            case "OnVehicleMenuTrigger":
                var vehicleHandle = (NetHandle)arguments[0];
                var option        = (string)arguments[1];

                Character character = player.GetCharacter();
                Vehicle   vehicle   = API.Shared.GetEntityData(vehicleHandle, "Vehicle");

                var playerSeat = API.Shared.GetPlayerVehicleSeat(player);

                //Check that player vehicle is the same as the menu vehicle...
                if (API.Shared.GetPlayerVehicle(player) != vehicleHandle)
                {
                    DebugManager.DebugMessage("[VehicleMenu] " + character.CharacterName + "(" + player.socialClubName + ", " + player.handle + ") used VehicleMenu option in a different vehicle handle.");
                    return;
                }

                var vehAccess  = VehicleManager.DoesPlayerHaveVehicleAccess(player, vehicle);
                var parkAccess = VehicleManager.DoesPlayerHaveVehicleParkLockAccess(player, vehicle);

                if ((option.Equals("park") || option.Equals("lock")) && !parkAccess)
                {
                    API.Shared.SendChatMessageToPlayer(player, "~r~ You do not have access to this vehicle.");
                    return;
                }

                if ((option.Equals("engine") || option.Equals("park")) && playerSeat != -1)
                {
                    API.Shared.SendChatMessageToPlayer(player, "~r~ You can only access these options in the driver seat.");
                    return;
                }

                switch (option)
                {
                case "engine":
                    if (vehAccess)
                    {
                        VehicleManager.engine_cmd(player);
                    }
                    else
                    {
                        VehicleManager.hotwire_cmd(player);
                    }
                    break;

                case "lock":
                    var lockState = API.Shared.GetVehicleLocked(vehicleHandle);

                    if (lockState)
                    {
                        API.Shared.SetVehicleLocked(vehicleHandle, false);
                        ChatManager.RoleplayMessage(character, "unlocks the doors of the vehicle.", ChatManager.RoleplayMe);
                    }
                    else
                    {
                        API.Shared.SetVehicleLocked(vehicleHandle, true);
                        ChatManager.RoleplayMessage(character, "locks the doors of the vehicle.", ChatManager.RoleplayMe);
                    }


                    break;

                case "park":

                    var pos       = API.GetEntityPosition(vehicleHandle);
                    var rot       = API.GetEntityRotation(vehicleHandle);
                    var dimension = API.GetEntityDimension(vehicleHandle);

                    vehicle.SpawnPos       = pos;
                    vehicle.SpawnRot       = rot;
                    vehicle.SpawnDimension = dimension;

                    vehicle.Save();

                    API.Shared.SendChatMessageToPlayer(player, "Car spawn location saved to current location.");
                    break;

                case "door":
                    var doorIndex = (int)arguments[2];

                    var doorName = "";
                    switch (doorIndex)
                    {
                    case 0:
                        doorName = "front left door";
                        break;

                    case 1:
                        doorName = "front right door";
                        break;

                    case 2:
                        doorName = "back left door";
                        break;

                    case 3:
                        doorName = "back right door";
                        break;

                    case 4:
                        doorName = "hood";
                        break;

                    case 5:
                        doorName = "trunk";
                        break;
                    }

                    var doorState = API.GetVehicleDoorState(vehicleHandle, doorIndex);

                    if (doorState)
                    {
                        API.SetVehicleDoorState(vehicleHandle, doorIndex, false);
                        ChatManager.RoleplayMessage(character, "closed the " + doorName + " of the vehicle.", ChatManager.RoleplayMe);
                    }
                    else
                    {
                        API.SetVehicleDoorState(vehicleHandle, doorIndex, true);
                        ChatManager.RoleplayMessage(character, "opened the " + doorName + " of the vehicle.", ChatManager.RoleplayMe);
                    }

                    break;
                }
                break;
            }
        }