public AirDropMod() { Tick += OnTick; Blip AirDrop1Blip = World.CreateBlip(LOSSANTOSSQUARE, 2); { AirDrop1Blip.Sprite = BlipSprite.CrateDrop; AirDrop1Blip.Scale = 100f; } int objectHash = Function.Call <int>(Hash.GET_HASH_KEY, "prop_crashed_heli"); GTA.Model objectModel = new GTA.Model(objectHash); if (!objectModel.IsLoaded) { objectModel.Request(500); while (!objectModel.IsLoaded) { Wait(0); } } Function.Call(Hash.CREATE_OBJECT, objectModel, 194.9678f, -933.614f, 30.68681f, false, true, false); objectModel.MarkAsNoLongerNeeded(); }
/// <summary> /// Set to specified Model /// </summary> /// <param name="modelHash">Model hash</param> /// <param name="modelName">Name of the model</param> public static void SetModel(int modelHash, string modelName) { GTA.Model m = new GTA.Model(modelHash); m.Request(); if (m.IsInCdImage && m.IsValid) { while (!m.IsLoaded) Script.Wait(0); int? vehicle = null; if (Game.Player.Character.IsInVehicle()) { vehicle = Game.Player.Character.CurrentVehicle.Handle; } WeaponSet set = Weapon.GetCurrentWeaponSet(); Function.Call(Hash.SET_PLAYER_MODEL, Game.Player.Handle, m.Hash); Function.Call(Hash.SET_PED_DEFAULT_COMPONENT_VARIATION, Game.Player.Character.Handle); if (!string.IsNullOrEmpty(modelName)) { Utils.ShowNotificationAboveMap(string.Format(GlobalConst.Message.PLAYER_MODEL_SET, modelName)); } Script.Wait(0); if (vehicle.HasValue) { Function.Call(Hash.SET_PED_INTO_VEHICLE, Game.Player.Character.Handle, vehicle, -1); } Weapon.ApplyWeaponSet(set); Script.Wait(SET_MODEL_WAIT); m.MarkAsNoLongerNeeded(); } }
private void OnTick(object sender, EventArgs e) { if (IsVehicleIndestructible) { SetVehicleIndestructible(true); } if (IsSeatBeltEnabled) { if (CanFlyThroughWindscreen) { Function.Call(Hash.SET_PED_CONFIG_FLAG, Game.Player.Character, PedFlagCanFlyThroughWindscreen, false); } } if (IsLockedDoorsEnabled) { Game.Player.Character.CanBeDraggedOutOfVehicle = false; } if (IsNeverFallOffBikeEnabled) { Function.Call(Hash.SET_PED_CAN_BE_KNOCKED_OFF_VEHICLE, Game.Player.Character, 1); } if (IsSpeedBoostEnabled) { if (Game.IsKeyPressed(Keys.NumPad9)) { Game.Player.Character.CurrentVehicle.Speed += 0.5f; } if (Game.IsKeyPressed(Keys.NumPad3)) { Game.Player.Character.CurrentVehicle.Speed = 0.0f; } } if (CanVehiclesJump) { if (Game.IsKeyPressed(Keys.B)) { if (Game.Player.Character.CurrentVehicle.IsOnAllWheels) { Game.Player.Character.CurrentVehicle.ApplyForceRelative(Game.Player.Character.CurrentVehicle.UpVector * 12.5f); } } } if (IsVehicleWeaponsEnabled) { if (Game.Player.Character.IsInVehicle() && Game.IsKeyPressed(Keys.Add)) { Vehicle vehicle = Game.Player.Character.CurrentVehicle; // Request and load weapon asset. GTA.Model weaponAsset = Function.Call <int>(Hash.GET_HASH_KEY, GetVehicleWeaponAsset()); if (!Function.Call <bool>(Hash.HAS_WEAPON_ASSET_LOADED, weaponAsset)) { Function.Call(Hash.REQUEST_WEAPON_ASSET, weaponAsset); while (!Function.Call <bool>(Hash.HAS_WEAPON_ASSET_LOADED, weaponAsset)) { Wait(0); } } Vector3 vehicleDimensions = vehicle.Model.GetDimensions(); // Left weapon. Vector3 leftWeaponFromCoords = vehicle.GetOffsetInWorldCoords(new Vector3(-(vehicleDimensions.X) + 1.25f, vehicleDimensions.Y + 1.25f, 0.3f)); Vector3 leftWeaponToCoords = vehicle.GetOffsetInWorldCoords(new Vector3(-(vehicleDimensions.X) + 1.25f, vehicleDimensions.Y + 100.0f, 0.3f)); // Right weapon. Vector3 rightWeaponFromCoords = vehicle.GetOffsetInWorldCoords(new Vector3(vehicleDimensions.X - 1.25f, vehicleDimensions.Y + 1.25f, 0.3f)); Vector3 rightWeaponToCoords = vehicle.GetOffsetInWorldCoords(new Vector3(vehicleDimensions.X + 1.25f, vehicleDimensions.Y + 100.0f, 0.3f)); World.ShootBullet(leftWeaponFromCoords, leftWeaponToCoords, Game.Player.Character, weaponAsset, 10000); World.ShootBullet(rightWeaponFromCoords, rightWeaponToCoords, Game.Player.Character, weaponAsset, 10000); weaponAsset.MarkAsNoLongerNeeded(); Wait(150); } } }