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."); } } } } }
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); } } }
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"); } }
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); } } } }
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"); } } } }