Parachute sync added. Small changes
This commit is contained in:
@ -24,6 +24,8 @@ namespace CoopClient.Entities.Player
|
||||
internal bool IsOnLadder { get; set; }
|
||||
internal bool IsVaulting { get; set; }
|
||||
internal bool IsInParachuteFreeFall { get; set; }
|
||||
internal bool IsParachuteOpen { get; set; }
|
||||
internal Prop ParachuteProp { get; set; } = null;
|
||||
internal bool IsRagdoll { get; set; }
|
||||
internal bool IsOnFire { get; set; }
|
||||
internal bool IsAiming { get; set; }
|
||||
@ -62,6 +64,37 @@ namespace CoopClient.Entities.Player
|
||||
return;
|
||||
}
|
||||
|
||||
if (IsParachuteOpen)
|
||||
{
|
||||
if (ParachuteProp == null)
|
||||
{
|
||||
ParachuteProp = World.CreateProp(Util.ModelRequest(1740193300), Character.Position, Character.Rotation, false, false);
|
||||
ParachuteProp.IsPositionFrozen = true;
|
||||
ParachuteProp.IsCollisionEnabled = false;
|
||||
|
||||
ParachuteProp.AttachTo(Character.Bones[Bone.SkelSpine2], new Vector3(3.6f, 0f, 0f), new Vector3(0f, 90f, 0f));
|
||||
|
||||
Character.Task.ClearAllImmediately();
|
||||
Character.Task.ClearSecondary();
|
||||
}
|
||||
UpdateOnFootPosition(true, true, false);
|
||||
|
||||
if (!Function.Call<bool>(Hash.IS_ENTITY_PLAYING_ANIM, Character.Handle, "skydive@parachute@first_person", "chute_idle_right", 3))
|
||||
{
|
||||
Function.Call(Hash.TASK_PLAY_ANIM, Character, LoadAnim("skydive@parachute@first_person"), "chute_idle_right", 8f, 10f, -1, 0, -8f, 1, 1, 1);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
if (ParachuteProp != null)
|
||||
{
|
||||
if (ParachuteProp.Exists())
|
||||
{
|
||||
ParachuteProp.Delete();
|
||||
}
|
||||
ParachuteProp = null;
|
||||
}
|
||||
|
||||
if (IsOnLadder)
|
||||
{
|
||||
if (!Function.Call<bool>(Hash.GET_IS_TASK_ACTIVE, Character.Handle, ETasks.CLIMB_LADDER))
|
||||
|
@ -238,6 +238,7 @@ namespace CoopClient
|
||||
player.Value.Character?.Kill();
|
||||
player.Value.Character?.Delete();
|
||||
player.Value.PedBlip?.Delete();
|
||||
player.Value.ParachuteProp?.Delete();
|
||||
}
|
||||
Players.Clear();
|
||||
|
||||
@ -416,6 +417,7 @@ namespace CoopClient
|
||||
DebugSyncPed.IsRagdoll = (flags.Value & (ushort)PedDataFlags.IsRagdoll) > 0;
|
||||
DebugSyncPed.IsOnFire = (flags.Value & (ushort)PedDataFlags.IsOnFire) > 0;
|
||||
DebugSyncPed.IsInParachuteFreeFall = (flags.Value & (ushort)PedDataFlags.IsInParachuteFreeFall) > 0;
|
||||
DebugSyncPed.IsParachuteOpen = (flags.Value & (ushort)PedDataFlags.IsParachuteOpen) > 0;
|
||||
DebugSyncPed.IsOnLadder = (flags.Value & (ushort)PedDataFlags.IsOnLadder) > 0;
|
||||
DebugSyncPed.IsVaulting = (flags.Value & (ushort)PedDataFlags.IsVaulting) > 0;
|
||||
DebugSyncPed.IsInVehicle = false;
|
||||
|
@ -55,6 +55,12 @@ namespace CoopClient.Menus.Sub
|
||||
GetAllServer();
|
||||
};
|
||||
MainMenu.Closed += (object sender, EventArgs e) =>
|
||||
{
|
||||
CleanUpList();
|
||||
};
|
||||
}
|
||||
|
||||
private void CleanUpList()
|
||||
{
|
||||
if (MainMenu.Items.Count > 0)
|
||||
{
|
||||
@ -63,8 +69,8 @@ namespace CoopClient.Menus.Sub
|
||||
MainMenu.Remove(MainMenu.Items[i]);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void GetAllServer()
|
||||
{
|
||||
List<ServerListClass> serverList = null;
|
||||
@ -88,18 +94,18 @@ namespace CoopClient.Menus.Sub
|
||||
|
||||
if (serverList == null)
|
||||
{
|
||||
MainMenu.Items[0].Title = "Something went wrong!";
|
||||
ResultItem.Title = "Something went wrong!";
|
||||
return;
|
||||
}
|
||||
if (serverList.Count == 0)
|
||||
{
|
||||
MainMenu.Items[0].Title = "No server was found!";
|
||||
ResultItem.Title = "No server was found!";
|
||||
return;
|
||||
}
|
||||
|
||||
if (ResultItem != null)
|
||||
{
|
||||
MainMenu.Remove(MainMenu.Items[0]);
|
||||
CleanUpList();
|
||||
ResultItem = null;
|
||||
}
|
||||
|
||||
|
@ -502,6 +502,7 @@ namespace CoopClient
|
||||
player.IsRagdoll = (packet.Flag.Value & (ushort)PedDataFlags.IsRagdoll) > 0;
|
||||
player.IsOnFire = (packet.Flag.Value & (ushort)PedDataFlags.IsOnFire) > 0;
|
||||
player.IsInParachuteFreeFall = (packet.Flag.Value & (ushort)PedDataFlags.IsInParachuteFreeFall) > 0;
|
||||
player.IsParachuteOpen = (packet.Flag.Value & (ushort)PedDataFlags.IsParachuteOpen) > 0;
|
||||
player.IsOnLadder = (packet.Flag.Value & (ushort)PedDataFlags.IsOnLadder) > 0;
|
||||
player.IsVaulting = (packet.Flag.Value & (ushort)PedDataFlags.IsVaulting) > 0;
|
||||
player.IsInVehicle = false;
|
||||
@ -571,6 +572,7 @@ namespace CoopClient
|
||||
player.IsRagdoll = (packet.Flag.Value & (ushort)PedDataFlags.IsRagdoll) > 0;
|
||||
player.IsOnFire = (packet.Flag.Value & (ushort)PedDataFlags.IsOnFire) > 0;
|
||||
player.IsInParachuteFreeFall = (packet.Flag.Value & (ushort)PedDataFlags.IsInParachuteFreeFall) > 0;
|
||||
player.IsParachuteOpen = (packet.Flag.Value & (ushort)PedDataFlags.IsParachuteOpen) > 0;
|
||||
player.IsOnLadder = (packet.Flag.Value & (ushort)PedDataFlags.IsOnLadder) > 0;
|
||||
player.IsVaulting = (packet.Flag.Value & (ushort)PedDataFlags.IsVaulting) > 0;
|
||||
player.IsInVehicle = false;
|
||||
|
@ -138,8 +138,9 @@ namespace CoopClient
|
||||
IsRagdoll = 1 << 4,
|
||||
IsOnFire = 1 << 5,
|
||||
IsInParachuteFreeFall = 1 << 6,
|
||||
IsOnLadder = 1 << 7,
|
||||
IsVaulting = 1 << 8
|
||||
IsParachuteOpen = 1 << 7,
|
||||
IsOnLadder = 1 << 8,
|
||||
IsVaulting = 1 << 9
|
||||
}
|
||||
|
||||
#region ===== VEHICLE DATA =====
|
||||
|
@ -269,6 +269,11 @@ namespace CoopClient
|
||||
flags |= (ushort)PedDataFlags.IsInParachuteFreeFall;
|
||||
}
|
||||
|
||||
if (ped.ParachuteState == ParachuteState.Gliding)
|
||||
{
|
||||
flags |= (ushort)PedDataFlags.IsParachuteOpen;
|
||||
}
|
||||
|
||||
if (Function.Call<bool>(Hash.GET_IS_TASK_ACTIVE, ped.Handle, ETasks.CLIMB_LADDER)) // USING_LADDER
|
||||
{
|
||||
flags |= (ushort)PedDataFlags.IsOnLadder;
|
||||
|
@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<AssemblyVersion>1.39.0.0001</AssemblyVersion>
|
||||
<AssemblyVersion>1.42.0.0001</AssemblyVersion>
|
||||
<FileVersion>1.0.0.0</FileVersion>
|
||||
<RepositoryUrl>https://github.com/GTACOOP-R/GTACoop-R</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
@ -124,8 +124,9 @@ namespace CoopServer
|
||||
IsRagdoll = 1 << 4,
|
||||
IsOnFire = 1 << 5,
|
||||
IsInParachuteFreeFall = 1 << 6,
|
||||
IsOnLadder = 1 << 7,
|
||||
IsVaulting = 1 << 8
|
||||
IsParachuteOpen = 1 << 7,
|
||||
IsOnLadder = 1 << 8,
|
||||
IsVaulting = 1 << 9
|
||||
}
|
||||
|
||||
#region ===== VEHICLE DATA =====
|
||||
|
Reference in New Issue
Block a user