Example #1
0
 public void buy(Client sender)
 {
     foreach (NetHandle label in API.getAllLabels())
     {
         if (Global.Util.IsInRangeOf(sender.position, API.getEntityPosition(label), 5))
         {
             Oldskool house = API.getEntityData(label, "Property");
             if (house != null && house.Forsale == true)
             {
                 if (Money.TakeBankMoney(sender, house.Price))
                 {
                     Items.InventoryHolder ih = API.shared.getEntityData(sender, "InventoryHolder");
                     ih.AddItemToInventory(Items.ItemByID(house.HID));
                     API.sendNotificationToPlayer(sender, "Congratulations new home owner! \n Money transfered from bank acount and Key added to inventory.");
                     house.Forsale = false;
                     house.updateTextLabel();
                 }
                 else
                 {
                     API.sendNotificationToPlayer(sender, "Bank balance too low! Deposit cash at any ATM.");
                 }
             }
         }
     }
 }
Example #2
0
        public void loadVehicles()
        {
            XElement xelement           = XElement.Load("vehicles.xml");
            IEnumerable <XElement> Vehs = xelement.Elements();

            foreach (var v in Vehs)
            {
                var pX       = Convert.ToDouble(v.Attribute("posX").Value);
                var pY       = Convert.ToDouble(v.Attribute("posY").Value);
                var pZ       = Convert.ToDouble(v.Attribute("posZ").Value);
                var rX       = Convert.ToDouble(v.Attribute("heading").Value);
                var model    = (VehicleHash)Convert.ToInt32(v.Attribute("Model").Value);
                var rental   = Convert.ToBoolean(v.Attribute("rental").Value);
                var color    = Convert.ToInt32(v.Attribute("color").Value);
                var car      = API.createVehicle(model, new Vector3(pX, pY, pZ), new Vector3(0, 0, rX), color, 0);
                var newPlate = Convert.ToString(RandomString(8));
                API.setVehicleNumberPlate(car, newPlate);
                API.setEntityData(car, "rental", rental);
                Items.InventoryHolder ih = new Items.InventoryHolder();
                ih.Owner = car.handle;
                API.shared.setEntityData(car, "InventoryHolder", ih);
                if (rental == false)
                {
                    API.setVehicleLocked(car, true);
                    if (car.model == -1050465301)
                    {
                        car.setExtra(0, false);
                        car.setExtra(1, false);
                        car.setExtra(2, false);
                        car.setExtra(3, true);
                        car.setExtra(4, false);
                        car.setExtra(5, false);
                        car.setExtra(6, false);
                        car.setExtra(7, false);
                        car.openDoor(5);
                        for (var i = 0; i < 15; i++)
                        {
                            ih.AddItemToInventory(Items.ItemByID(56));
                            ih.AddItemToInventory(Items.ItemByID(57));
                            ih.AddItemToInventory(Items.ItemByID(58));
                        }
                    }
                    API.shared.setEntityData(car, "Vehicle", car);
                }
            }
        }
Example #3
0
        public void ColHit(ColShape shape, NetHandle ent)
        {
            var player = API.getPlayerFromHandle(ent);

            if (player == null)
            {
                return;
            }
            if (shape.hasData("Bench"))
            {
                if (player.vehicle != null)
                {
                    return;
                }
                API.sendNotificationToPlayer(player, "Press E to sit down");
            }
            else if (shape.hasData("vending") && shape.getData("filled") == false)
            {
                API.consoleOutput("vendingmachinhit");
                Items.InventoryHolder ih = API.shared.getEntityData(ent, "InventoryHolder");
                if (shape.getData("vending") == "3B21C5E7")
                {
                    foreach (Items.InventoryItem ii in ih.Inventory)
                    {
                        if (ii.Details.ID == 57)
                        {
                            ih.RemoveItemFromInventory(Items.ItemByID(57));
                            API.triggerClientEvent(player, "display_subtitle", "~g~Goods Delivered! ~r~$40", 5000);
                            shape.setData("filled", true);
                            API.delay(1000000, true, () => { shape.setData("filled", false); });
                        }
                    }
                }
                else if (shape.getData("vending") == "426A547C")
                {
                    foreach (Items.InventoryItem ii in ih.Inventory)
                    {
                        if (ii.Details.ID == 56)
                        {
                            ih.RemoveItemFromInventory(Items.ItemByID(56));
                            API.triggerClientEvent(player, "display_subtitle", "~g~Goods Delivered! ~r~$45", 5000);
                            shape.setData("filled", true);
                            API.delay(1100000, true, () => { shape.setData("filled", false); });
                        }
                    }
                }
                else if (shape.getData("vending") == "418F055A")
                {
                    foreach (Items.InventoryItem ii in ih.Inventory)
                    {
                        if (ii.Details.ID == 58)
                        {
                            ih.RemoveItemFromInventory(Items.ItemByID(58));
                            API.triggerClientEvent(player, "display_subtitle", "~g~Goods Delivered! ~r~$60", 5000);
                            shape.setData("filled", true);
                            API.delay(1300000, true, () => { shape.setData("filled", false); });
                        }
                    }
                }
            }
            else if (shape.hasData("vending") && shape.getData("filled") == true)
            {
                API.sendNotificationToPlayer(player, "This Machine has already been filled");
            }
        }
Example #4
0
        public void ScriptEvent(Client sender, string eventName, object[] args)
        {
            if (eventName == "Enter")
            {
                if (sender.vehicle != null)
                {
                    rentVehicle(sender);
                }
            }

            if (eventName == "VehicleMenuKeyPressed")
            {
                if (sender.vehicle != null)
                {
                    object[] argumentList = new object[15];
                    argumentList[0] = 7;
                    argumentList[1] = sender.vehicle.displayName;
                    argumentList[2] = "Vehicle options";
                    argumentList[3] = false;
                    argumentList[4] = 5;
                    argumentList[5] = "Lock doors";
                    argumentList[6] = "Unlock doors";
                    argumentList[7] = "Pop/shut trunk";
                    argumentList[8] = "Pop/shut hood";
                    argumentList[9] = "Inventory";
                    for (var i = 0; i < 5; i++)
                    {
                        argumentList[10 + i] = "";
                    }
                    API.triggerClientEvent(sender, "menu_handler_create_menu", argumentList);
                }
            }
            if (eventName == "menu_handler_select_item")
            {
                var callbackId = (int)args[0];
                var index      = (int)args[1];
                if (callbackId == 7)
                {
                    if (index == 0)
                    {
                        API.setVehicleLocked(sender.vehicle, true);
                        //   API.shared.playSoundFrontEnd(sender, "CONFIRM_BEEP", "HUD_MINI_GAME_SOUNDSET");
                    }
                    if (index == 1)
                    {
                        API.setVehicleLocked(sender.vehicle, false);
                        //    API.shared.playSoundFrontEnd(sender, "CONFIRM_BEEP", "HUD_MINI_GAME_SOUNDSET");
                    }
                    if (index == 2)
                    {
                        if (sender.vehicle.isDoorOpen(5))
                        {
                            sender.vehicle.closeDoor(5);
                        }
                        else
                        {
                            sender.vehicle.openDoor(5);
                        }
                    }
                    if (index == 3)
                    {
                        if (sender.vehicle.isDoorOpen(4))
                        {
                            sender.vehicle.closeDoor(4);
                        }
                        else
                        {
                            sender.vehicle.openDoor(4);
                        }
                    }
                    if (index == 4)
                    {
                        if (API.hasEntityData(sender.vehicle, "InventoryHolder"))
                        {
                            Items.InventoryHolder ih = API.getEntityData(sender.vehicle, "InventoryHolder");
                            if (ih != null)
                            {
                                var      itemsLen     = ih.Inventory.Count;
                                object[] argumentList = new object[5 + itemsLen * 2];
                                argumentList[0] = 8;
                                argumentList[1] = sender.vehicle.displayName;
                                argumentList[2] = "Inventory ~b~Select an Item ";
                                argumentList[3] = false;
                                argumentList[4] = itemsLen;
                                var i = 0;
                                foreach (Items.InventoryItem item in ih.Inventory)
                                {
                                    argumentList[5 + i]            = item.Details.Name;
                                    argumentList[5 + itemsLen + i] = "Quantity: " + item.Quantity;
                                    i++;
                                }
                                API.triggerClientEvent(sender, "menu_handler_create_menu", argumentList);
                            }
                        }
                    }
                }
                if (callbackId == 8)
                {
                    Items.InventoryHolder ih   = API.getEntityData(sender.vehicle, "InventoryHolder");
                    Items.InventoryHolder pih  = API.getEntityData(sender, "InventoryHolder");
                    Items.InventoryItem   item = ih.Inventory[index];
                    if (item.Details.ID == 56 || item.Details.ID == 57 || item.Details.ID == 58)
                    {
                        if (pih.Inventory.Exists(ii => ii.Details.ID == item.Details.ID))
                        {
                            API.triggerClientEvent(sender, "show_subtitle", "~r~ You can only carry one of those", 3500);
                        }
                        else
                        {
                            ih.RemoveItemFromInventory(item.Details);
                            pih.AddItemToInventory(item.Details);
                        }
                    }
                    else
                    {
                        ih.RemoveItemFromInventory(item.Details);
                        pih.AddItemToInventory(item.Details);
                    }
                }
            }
        }
Example #5
0
        public void ScriptEvent(Client sender, string eventName, object[] args)
        {
            if (eventName == "InventoryKeyPressed")
            {
                if (Database.IsPlayerLoggedIn(sender))
                {
                    object[] argumentList = new object[17];
                    argumentList[0]  = CHAR_ROOT;
                    argumentList[1]  = sender.name;
                    argumentList[2]  = "~b~Level: " + "~r~" + sender.getData("Level");
                    argumentList[3]  = false;
                    argumentList[4]  = 6;
                    argumentList[5]  = "Inventory";
                    argumentList[6]  = "Give Cash";
                    argumentList[7]  = "Messenger";
                    argumentList[8]  = "Call 911";
                    argumentList[9]  = "Animate Character";
                    argumentList[10] = "~y~ SWITCH TEAM";
                    for (var i = 0; i < 6; i++)
                    {
                        argumentList[11 + i] = "";
                    }
                    API.triggerClientEvent(sender, "menu_handler_create_menu", argumentList);
                }
            }
            else if (eventName == "menu_handler_select_item")
            {
                var callbackId = (int)args[0];
                var index      = (int)args[1];
                if (callbackId == CHAR_ROOT)
                {
                    if (index == 0)
                    {
                        if (API.hasEntityData(sender, "InventoryHolder") && !API.getEntityData(sender, "Jailed"))
                        {
                            Items.InventoryHolder ih = API.getEntityData(sender, "InventoryHolder");
                            var      itemsLen        = ih.Inventory.Count;
                            object[] argumentList    = new object[5 + itemsLen * 2];
                            argumentList[0] = 1;
                            argumentList[1] = "Inventory";
                            argumentList[2] = "Select Item for Details";
                            argumentList[3] = false;
                            argumentList[4] = itemsLen;
                            var i = 0;
                            foreach (Items.InventoryItem item in ih.Inventory)
                            {
                                argumentList[5 + i]            = item.Details.Name;
                                argumentList[5 + itemsLen + i] = "Quantity: " + item.Quantity;
                                i++;
                            }
                            API.triggerClientEvent(sender, "menu_handler_create_menu", argumentList);
                        }
                    }
                    else if (index == 1)
                    {
                        var nearbylist = API.getPlayersInRadiusOfPlayer(10, sender);
                        nearbylist.Remove(sender);
                        var      itemsLen     = nearbylist.Count;
                        object[] argumentList = new object[5 + itemsLen + itemsLen];
                        argumentList[0] = CHAR_PAY;
                        argumentList[1] = "Give cash";
                        argumentList[2] = "Select nearby ~g~player:";
                        argumentList[3] = false;
                        argumentList[4] = itemsLen;
                        var i = 0;
                        foreach (Client player in nearbylist)
                        {
                            argumentList[5 + i]            = player.name;
                            argumentList[5 + itemsLen + i] = "";
                            i++;
                        }
                        API.shared.triggerClientEvent(sender, "menu_handler_create_menu", argumentList);
                    }
                    else if (index == 2)
                    {
                        var list = API.getAllPlayers();
                        API.setEntityData(sender, "list", list);
                        list.Remove(sender);
                        var      itemsLen     = list.Count;
                        object[] argumentList = new object[5 + itemsLen + itemsLen];
                        argumentList[0] = CHAR_MESSENGER;
                        argumentList[1] = "Message";
                        argumentList[2] = "Select ~g~player:";
                        argumentList[3] = false;
                        argumentList[4] = itemsLen;
                        // var i = 0;

                        for (var i = 0; i < list.Count; i++)
                        {
                            argumentList[5 + i]            = list[i].name;
                            argumentList[5 + itemsLen + i] = "";
                        }
                        API.shared.triggerClientEvent(sender, "menu_handler_create_menu", argumentList);
                    }
                    else if (index == 3)
                    {
                        API.shared.triggerClientEvent(sender, "get_user_input", 1, "911 Emergency, how can I help?", 144, null);
                    }
                    else if (index == 4)
                    {
                        var      itemsLen     = AnimationList.Count;
                        object[] argumentList = new object[5 + itemsLen * 2];
                        argumentList[0] = CHAR_ANIM;
                        argumentList[1] = "Animate";
                        argumentList[2] = "Select Animation";
                        argumentList[3] = false;
                        argumentList[4] = itemsLen;
                        var i = 0;
                        foreach (KeyValuePair <string, string> anim in AnimationList)
                        {
                            argumentList[5 + i]            = anim.Key;
                            argumentList[5 + itemsLen + i] = "";
                            i++;
                        }
                        API.triggerClientEvent(sender, "menu_handler_create_menu", argumentList);
                    }
                    else if (index == 5)
                    {
                        if (API.shared.getEntityData(sender, "Crimes") == null && API.getEntityData(sender, "Jailed") == false)
                        {
                            if (sender.getData("IS_COP") == false)
                            {
                                if (sender.model == (int)PedHash.FreemodeMale01)
                                {
                                    CharacterCreator.setSpecialOutfit(sender, "MPol1.xml");
                                }
                                if (sender.model == (int)PedHash.FreemodeFemale01)
                                {
                                    CharacterCreator.setSpecialOutfit(sender, "FPol1.xml");
                                }
                                API.shared.setPlayerNametagColor(sender, 55, 135, 240);
                                API.shared.setEntityData(sender, "IS_COP", true);
                                API.shared.setEntityData(sender, "IS_CROOK", false);
                                API.shared.setEntityPosition(sender, new Vector3(447.1f, -984.21f, 30.69f));
                                API.shared.givePlayerWeapon(sender, WeaponHash.Nightstick, 1, false, true);
                                API.shared.givePlayerWeapon(sender, WeaponHash.StunGun, 500, true, true);
                                API.shared.triggerClientEvent(sender, "display_subtitle", "~r~F1 Player Menu ~g~F2 Vehicle Menu ~b~F3 COP Menu", 6000);
                                return;
                            }
                            else
                            {
                                API.shared.removeAllPlayerWeapons(sender);
                                API.shared.setEntityData(sender, "IS_COP", false);
                                API.shared.setEntityPosition(sender, new Vector3(-851.622314, -124.067039, 37.6538773));
                                API.shared.triggerClientEvent(sender, "display_subtitle", "~r~F1 Player Menu ~g~F2 Vehicle Menu", 6000);
                                for (var i = 3; i <= 11; i++)
                                {
                                    var drawable = sender.getData("draw" + i);
                                    var texture  = sender.getData("tx" + i);
                                    if (drawable != -1)
                                    {
                                        API.setPlayerClothes(sender, i, drawable, texture);
                                    }
                                    else
                                    {
                                        API.setPlayerClothes(sender, i, 0, 0);
                                    }
                                }
                                for (var i = 0; i <= 9; i++)
                                {
                                    API.clearPlayerAccessory(sender, i);
                                }
                                return;
                            }
                        }
                        API.shared.triggerClientEvent(sender, "show_subtitle", "The Police won't take you!", 5000);
                    }
                }
                else if (callbackId == CHAR_MESSENGER)
                {
                    API.shared.triggerClientEvent(sender, "get_user_input", 2, "", 144, index);
                }
                else if (callbackId == CHAR_ANIM)
                {
                    API.playPlayerAnimation(sender, 0, AnimationList[index].Value.Split()[0], AnimationList[index].Value.Split()[1]);
                }
            }
            else if (eventName == "menu_handler_user_input")
            {
                if (args[1] != null)
                {
                    var icallback = (int)args[0];
                    var msg       = (string)args[1];
                    if (icallback == 1)
                    {
                        var players = API.getAllPlayers();

                        foreach (var player in players)
                        {
                            if (API.getEntityData(player, "IS_COP") == true)
                            {
                                API.shared.triggerClientEvent(player, "display_subtitle", "~r~~h~[911 CALL] from " + sender.name + "~h~~y~ : " + msg + "\n ~w~ Waypoint set!", 13000);
                                float posX = sender.position.X;
                                float posY = sender.position.Y;
                                API.sendNativeToPlayer(player, Hash.SET_NEW_WAYPOINT, posX, posY);
                            }
                        }
                    }
                    if (icallback == 2)
                    {
                        List <Client> list  = API.getEntityData(sender, "list");
                        int           index = (int)args[2];
                        API.sendPictureNotificationToPlayer(list[index], msg, "CHAR_FACEBOOK", 0, 0, "Messenger", "From: " + sender.name);
                        API.resetEntityData(sender, "list");
                    }
                }
            }
        }