private static async void PlayerGetOff(int player, int cab) { Ped Char = (Ped)Entity.FromNetworkId(player); CabinPan Cabin = Cabins[cab]; if (Char == Game.PlayerPed) { while (ActualCabin != Cabin) await BaseScript.Delay(0); RenderScriptCams(false, false, 1000, false, false); BaseScript.TriggerServerEvent("FerrisWheel:StopWheel", true); Vector3 offset = GetOffsetFromEntityInWorldCoords(Cabin.Entity.Handle, 0f, 0f, 0f); Cam1.Delete(); DestroyAllCams(false); int uLocal_377 = NetworkCreateSynchronisedScene(offset.X, offset.Y, offset.Z, 0f, 0f, 0f, 2, false, false, 1065353216, 0, 1065353216); NetworkAddPedToSynchronisedScene(Char.Handle, uLocal_377, "anim@mp_ferris_wheel", "exit_player_one", 8f, -8f, 131072, 0, 1148846080, 0); NetworkStartSynchronisedScene(uLocal_377); Char.Detach(); await BaseScript.Delay(5000); Cabin.NPlayer = 0; BaseScript.TriggerServerEvent("FerrisWheel:UpdateCabins", Cabin.Index, Cabin.NPlayer); if (IsAudioSceneActive("FAIRGROUND_RIDES_FERRIS_WHALE")) StopAudioScene("FAIRGROUND_RIDES_FERRIS_WHALE"); if (IsAudioSceneActive("FAIRGROUND_RIDES_FERRIS_WHALE_ALTERNATIVE_VIEW")) StopAudioScene("FAIRGROUND_RIDES_FERRIS_WHALE_ALTERNATIVE_VIEW"); if (Char.Handle == PlayerPedId()) RideEnd = true; BaseScript.TriggerServerEvent("FerrisWheel:StopWheel", false); Wheel.State = "IDLE"; ActualCabin = null; } else { if (Char.NetworkId != Game.PlayerPed.NetworkId) if (!NetworkHasControlOfNetworkId(player)) while (!NetworkRequestControlOfNetworkId(player)) await BaseScript.Delay(0); Vector3 offset = GetOffsetFromEntityInWorldCoords(Cabin.Entity.Handle, 0f, 0f, 0f); int uLocal_377 = NetworkCreateSynchronisedScene(offset.X, offset.Y, offset.Z, 0f, 0f, 0f, 2, false, false, 1065353216, 0, 1065353216); NetworkAddPedToSynchronisedScene(Char.Handle, uLocal_377, "anim@mp_ferris_wheel", "exit_player_one", 8f, -8f, 131072, 0, 1148846080, 0); NetworkStartSynchronisedScene(uLocal_377); Char.Detach(); await BaseScript.Delay(5000); Cabin.NPlayer = 0; BaseScript.TriggerServerEvent("FerrisWheel:UpdateCabins", Cabin.Index, Cabin.NPlayer); } }
/// <summary> /// 魚を発射してしばらくしたら爆破する /// </summary> private IEnumerable <object> ShootFish(Vehicle veh, Ped fish) { if (!fish.IsSafeExist()) { if (veh.IsSafeExist()) { vehicles.Remove(veh.Handle); } yield break; } fish.Detach(); fish.IsInvincible = false; fish.RequestCollision(); fish.FreezePosition = false; CreateEffect(fish, "ent_sht_electrical_box"); yield return(null); if (fish.IsSafeExist()) { fish.Velocity = fish.ForwardVector * (100 + veh.Speed); } //速度が一定以下になったら爆発 foreach (var x in WaitForSeconds(10)) { if (!fish.IsSafeExist()) { if (veh.IsSafeExist()) { vehicles.Remove(veh.Handle); } yield break; } if (fish.Velocity.Length() < 6) { break; } yield return(null); } if (veh.IsSafeExist()) { vehicles.Remove(veh.Handle); } if (!fish.IsSafeExist()) { yield break; } GTA.World.AddExplosion(fish.Position, GTA.ExplosionType.Grenade, 1.0f, 1.0f); }
public static async Task PedCheck() { await BaseScript.Delay(0); foreach (Ped allPed in World.GetAllPeds()) { Logger.Log("BlacklistModule > Executed Ped Check with " + allPed.Model.Hash, Logger.LogLevel.DEBUG); Ped ped = allPed; if (BlacklistModule.pedBlacklist.Contains(ped.Model.Hash)) { if (!ped.IsPlayer) { ped.Detach(); ped.Delete(); } else { if (ped == Game.PlayerPed) { ViolationManager.SendViolation(ViolationType.BLACKLISTED_PED); } } } BlacklistModule.weaponBlacklist.ForEach((Action <int>)(def => { if (!ped.Weapons.HasWeapon((WeaponHash)def)) { return; } ped.Weapons.RemoveAll(); })); } /* if(Game.PlayerPed.Model.Hash != 0x705E61F2 && Game.PlayerPed.Model.Hash != 0x9C9EFFD8 && Game.PlayerPed.Model.Hash != 0xC1C46677) * { * API.SetPlayerModel(API.PlayerPedId(), 0x705E61F2); * }*/ Logger.Log("BlacklistModule > Executed Ped Check @ " + API.GetGameTimer().ToString(), Logger.LogLevel.DEBUG); }