16 proto native
void SetNextChannel();
17 proto native
void SetPrevChannel();
18 proto native
float GetTunedFrequency();
19 proto native
void EnableBroadcast(
bool state);
20 proto native
void EnableReceive(
bool state);
21 proto native
bool IsBroadcasting();
22 proto native
bool IsReceiving();
23 proto native
int GetTunedFrequencyIndex();
24 proto native
void SetFrequencyByIndex(
int index);
47class UnderSlugLauncher
extends Weapon
61 super.OnInventoryEnter(player);
63 PlayerBase pb = PlayerBase.Cast(player);
64 if ( pb && IsTurnedOn() )
66 pb.MapNavigationItemInPossession(
this);
72 super.OnInventoryExit(player);
74 PlayerBase pb = PlayerBase.Cast(player);
77 pb.MapNavigationItemNotInPossession(
this);
81 override void OnWasAttached(
EntityAI parent,
int slot_id)
83 super.OnWasAttached(parent, slot_id);
85 PlayerBase player = PlayerBase.Cast(parent);
86 if ( parent.GetHierarchyRoot() )
88 player = PlayerBase.Cast(parent.GetHierarchyRoot());
91 if ( player && IsTurnedOn() )
93 player.MapNavigationItemInPossession(
this);
99 super.OnWasDetached(parent, slot_id);
101 PlayerBase player = PlayerBase.Cast(parent);
102 if ( parent.GetHierarchyRoot() )
104 player = PlayerBase.Cast(parent.GetHierarchyRoot());
109 player.MapNavigationItemNotInPossession(
this);
119 super.OnInventoryEnter(player);
126 PlayerBase pb = PlayerBase.Cast(player);
129 pb.MapNavigationItemInPossession(
this);
135 super.OnInventoryExit(player);
142 PlayerBase pb = PlayerBase.Cast(player);
145 pb.MapNavigationItemNotInPossession(
this);
149 override void OnWasAttached(
EntityAI parent,
int slot_id)
151 super.OnWasAttached(parent, slot_id);
158 PlayerBase player = PlayerBase.Cast(parent);
159 if ( parent.GetHierarchyParent() )
161 player = PlayerBase.Cast(parent.GetHierarchyParent());
166 player.MapNavigationItemInPossession(
this);
172 super.OnWasDetached(parent, slot_id);
179 PlayerBase player = PlayerBase.Cast(parent);
180 if ( parent.GetHierarchyParent() )
182 player = PlayerBase.Cast(parent.GetHierarchyParent());
187 player.MapNavigationItemNotInPossession(
this);
216 string newWheel =
"";
219 case "HatchbackWheel":
220 newWheel =
"HatchbackWheel_Ruined";
223 case "CivSedanWheel":
224 newWheel =
"CivSedanWheel_Ruined";
227 case "Hatchback_02_Wheel":
228 newWheel =
"Hatchback_02_Wheel_Ruined";
231 case "Sedan_02_Wheel":
232 newWheel =
"Sedan_02_Wheel_Ruined";
235 case "Truck_01_Wheel":
236 newWheel =
"Truck_01_Wheel_Ruined";
239 case "Truck_01_WheelDouble":
240 newWheel =
"Truck_01_WheelDouble_Ruined";
243 case "Offroad_02_Wheel":
244 newWheel =
"Offroad_02_Wheel_Ruined";
252 super.EEHealthLevelChanged(oldLevel, newLevel, zone);
261 if (IsLockedInSlot())
267 RemoveChild(child,
false);
269 GetTransform(matrix);
271 child = GetSibling();
275 lambda.SetTransferParams(
true,
true,
true);
276 GetInventory().ReplaceItemWithNew(
InventoryMode.SERVER, lambda);
295 super.OnWasAttached(parent, slot_id);
305 super.OnWasDetached(parent, slot_id);
316 override bool CanPutAsAttachment(
EntityAI parent)
319 if (parent.IsInherited(
Transport) && parent.IsRuined())
322 if (GetInventory().GetCurrentInventoryLocation(loc))
330 if (!super.CanPutAsAttachment(parent))
336 string GetReplacement()
338 string newWheel =
"";
341 case "HatchbackWheel_Ruined":
342 newWheel =
"HatchbackWheel";
345 case "CivSedanWheel_Ruined":
346 newWheel =
"CivSedanWheel";
349 case "Hatchback_02_Wheel_Ruined":
350 newWheel =
"Hatchback_02_Wheel";
353 case "Sedan_02_Wheel_Ruined":
354 newWheel =
"Sedan_02_Wheel";
357 case "Truck_01_Wheel_Ruined":
358 newWheel =
"Truck_01_Wheel";
361 case "Truck_01_WheelDouble_Ruined":
362 newWheel =
"Truck_01_WheelDouble";
365 case "Offroad_02_Wheel_Ruined":
366 newWheel =
"Offroad_02_Wheel";
372 override void EEHealthLevelChanged(
int oldLevel,
int newLevel,
string zone)
374 super.EEHealthLevelChanged( oldLevel, newLevel, zone );
379 string newWheel = GetReplacement();
384 if (IsLockedInSlot())
388 lambda.SetTransferParams(
true,
true,
true);
389 GetInventory().ReplaceItemWithNew(
InventoryMode.SERVER, lambda);
406 return m_OldItem != null;
411 super.CopyOldPropertiesToNew(old_item, new_item);
412 m_oldOri = old_item.GetOrientation();
417 super.OnSuccess(new_item);
427class Sedan_02_Wheel
extends CarWheel {};
430class HatchbackWheel
extends CarWheel {};
433class CivSedanWheel
extends CarWheel {};
436class Truck_01_Wheel
extends CarWheel {};
439class Truck_01_WheelDouble
extends CarWheel {};
442class Offroad_02_Wheel
extends CarWheel {};
448 override bool CanDetachAttachment(
EntityAI parent)
450 InventoryLocation loc =
new InventoryLocation();
452 bool isPresent = GetInventory().GetCurrentInventoryLocation( loc );
454 if ( !isPresent || loc.GetSlot() == -1 )
457 string slotName = InventorySlots.GetSlotName( loc.GetSlot() );
465 override int GetMeleeTargetType()
472 super.EEHealthLevelChanged(oldLevel,newLevel,zone);
474 if ( newLevel == GameConstants.STATE_RUINED &&
m_Initialized )
476 EffectSound sound_plug;
480 PlaySoundSet( sound_plug,
"offroad_hit_window_small_SoundSet", 0, 0 );
486 override bool DisplayNameRuinAttach()
536class Sedan_02_Door_1_1_YellowRust
extends CarDoor {};
537class Sedan_02_Door_1_2_YellowRust
extends CarDoor {};
538class Sedan_02_Door_2_1_YellowRust
extends CarDoor {};
539class Sedan_02_Door_2_2_YellowRust
extends CarDoor {};
540class Sedan_02_Hood_YellowRust
extends CarDoor {};
541class Sedan_02_Trunk_YellowRust
extends CarDoor {};
674class Offroad_02_Door_1_1
extends CarDoor {};
675class Offroad_02_Door_1_2
extends CarDoor {};
676class Offroad_02_Door_2_1
extends CarDoor {};
677class Offroad_02_Door_2_2
extends CarDoor {};
678class Offroad_02_Trunk
extends CarDoor {};
680class Offroad_02_Hood
extends CarDoor
691class Offroad_02_Door_1_1_Rust
extends CarDoor {};
692class Offroad_02_Door_1_2_Rust
extends CarDoor {};
693class Offroad_02_Door_2_1_Rust
extends CarDoor {};
694class Offroad_02_Door_2_2_Rust
extends CarDoor {};
695class Offroad_02_Trunk_Rust
extends CarDoor {};
700 override bool DisplayNameRuinAttach()
715 EntityAI parent = GetHierarchyParent();
717 Class.CastTo( car, parent );
722 float amount = car.GetFluidFraction(
CarFluid.COOLANT );
723 float newAmount = Math.RandomFloat( amount * 0.2, amount * 0.75 );
725 car.Leak(
CarFluid.COOLANT, newAmount );
761class BrakeFluid
extends ItemBase {};
785 override bool DisplayNameRuinAttach()
801class WindscreenBox
extends ItemBase {};
816 override bool DisplayNameRuinAttach()
839 float m_ItemVisibilityModifier;
843 m_ItemVisibilityModifier = ConfigGetFloat(
"visibilityModifier");
846 void ~Clothing_Base()
848 HandleVoiceEffect(
false, PlayerBase.Cast(GetHierarchyRootPlayer()));
851 override bool IsClothing()
856 float GetItemVisibility()
858 return m_ItemVisibilityModifier;
861 void UpdateNVGStatus(PlayerBase player,
bool attaching =
false,
bool force_disable =
false)
864 for (
int i = 0; i < GetInventory().GetAttachmentSlotsCount(); ++i)
866 hasNVGSlot = GetInventory().GetAttachmentSlotId(i) == InventorySlots.GetSlotIdFromString(
"NVG");
871 if (player && hasNVGSlot)
873 NVGoggles nvgAttachment;
874 nvgAttachment = NVGoggles.Cast(FindAttachmentBySlotName(
"NVG"));
879 if (nvgAttachment.m_Strap && nvgAttachment.m_IsLowered)
881 nvgAttachment.SetPlayer(player);
882 player.SetNVGLowered(
true);
884 if (player.IsControlledPlayer())
886 player.RemoveActiveNV(
NVTypes.NV_GOGGLES);
887 player.RemoveActiveNV(
NVTypes.NV_GOGGLES_2D);
888 player.RemoveActiveNV(
NVTypes.NV_GOGGLES_OFF);
890 player.AddActiveNV(nvgAttachment.GetCurrentNVType());
894 else if (force_disable)
896 nvgAttachment.SetPlayer(null);
897 player.SetNVGLowered(
false);
899 if (player.IsControlledPlayer())
901 player.RemoveActiveNV(
NVTypes.NV_GOGGLES);
902 player.RemoveActiveNV(
NVTypes.NV_GOGGLES_2D);
903 player.RemoveActiveNV(
NVTypes.NV_GOGGLES_OFF);
908 if (nvgAttachment.m_Strap && nvgAttachment.m_IsLowered)
910 nvgAttachment.SetPlayer(player);
911 player.SetNVGLowered(
true);
913 if (player.IsControlledPlayer())
915 player.RemoveActiveNV(
NVTypes.NV_GOGGLES);
916 player.RemoveActiveNV(
NVTypes.NV_GOGGLES_2D);
917 player.RemoveActiveNV(
NVTypes.NV_GOGGLES_OFF);
919 player.AddActiveNV(nvgAttachment.GetCurrentNVType());
924 player.SetNVGLowered(
false);
925 if (player.IsControlledPlayer())
927 player.RemoveActiveNV(
NVTypes.NV_GOGGLES);
928 player.RemoveActiveNV(
NVTypes.NV_GOGGLES_2D);
929 player.RemoveActiveNV(
NVTypes.NV_GOGGLES_OFF);
936 player.SetNVGLowered(
false);
938 if (player.IsControlledPlayer())
940 player.RemoveActiveNV(
NVTypes.NV_GOGGLES);
941 player.RemoveActiveNV(
NVTypes.NV_GOGGLES_2D);
942 player.RemoveActiveNV(
NVTypes.NV_GOGGLES_OFF);
948 override void OnWasAttached(
EntityAI parent,
int slot_id)
950 super.OnWasAttached(parent, slot_id);
952 if ( slot_id == InventorySlots.HEADGEAR || slot_id == InventorySlots.MASK )
953 HandleVoiceEffect(
true, PlayerBase.Cast(GetHierarchyRootPlayer()));
958 super.OnWasDetached(parent, slot_id);
960 HandleVoiceEffect(
false, PlayerBase.Cast(parent));
964 bool IsObstructingVoice()
971 void MutePlayer(PlayerBase player,
bool state)
974 if (
g_Game && player.GetIdentity() != null)
976 g_Game.SetVoiceEffect(player, GetVoiceEffect(), state);
982 void HandleVoiceEffect(
bool enable, PlayerBase player)
984 if ( IsObstructingVoice() && player )
985 MutePlayer(player, enable);
1018 proto native
bool SetPinned ();
1023 proto native
bool SetUnpinned ();
1028 proto native
bool SetIgnited ();
1032 proto native
bool IsPinned ();
1036 proto native
bool IsActivated ();
1060 string path =
"CfgWorlds " +
g_Game.GetWorldName();
1082 super.OnItemLocationChanged(old_owner,new_owner);
1092 player.SetMapOpen(state);
1094 player.OnItemInHandsChanged();
1099 ShowSelection(
"map_opened");
1100 HideSelection(
"map_closed");
1104 ShowSelection(
"map_closed");
1105 HideSelection(
"map_opened");
1111 if (GetAnimationPhase(
"map_opened") == 0)
1123 Param1<ref array<ref MapMarker>> params =
new Param1<ref array<ref MapMarker>>(
m_MapMarkerArray );
1125 if (
g_Game.IsServer() && GetHierarchyRootPlayer())
1127 pid = GetHierarchyRootPlayer().GetIdentity();
1128 RPCSingleParam(
ERPCs.RPC_SEND_MAP_MARKERS,params,
true,pid);
1132 RPCSingleParam(
ERPCs.RPC_SEND_MAP_MARKERS,params,
true);
1138 super.OnRPC(sender, rpc_type, ctx);
1142 Param1<ref array<ref MapMarker>> params =
new Param1<ref array<ref MapMarker>>(
m_MapMarkerArray );
1144 if (rpc_type ==
ERPCs.RPC_SEND_MAP_MARKERS)
1146 if (ctx.Read(params))
1155 if ( !super.OnStoreLoad(ctx, version) )
1167 super.OnStoreSave(ctx);
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
eBleedingSourceType GetType()
proto native void SetCanSpeak(bool onOff)
void ReplaceWheelLambda(EntityAI old_item, string new_item_type, PlayerBase player)
class ItemBarrel extends InventoryItemSuper TuneNext
proto native bool CanSpeak()
proto native void TunePrev()
AttachActionData ActionData ActionAttach()
override void OnSuccess(EntityAI new_item)
void AddAction(typename actionName)
void RemoveAction(typename actionName)
override bool ShowZonesHealth()
CarFluid
Type of vehicle's fluid. (native, do not change or extend).
PlayerSpawnPreset slotName
Wrapper class for managing sound through SEffectManager.
override void SetAutodestroy(bool auto_destroy)
Sets whether Effect automatically cleans up when it stops.
array< ref MapMarker > GetMarkerArray()
bool GetMapStateAnimation()
override void OnWasAttached(EntityAI parent, int slot_id)
proto native float GetWidth()
Returns wheel width.
override int GetMeleeTargetType()
override void OnWasDetached(EntityAI parent, int slot_id)
override void OnStoreSave(ParamsWriteContext ctx)
ref array< ref MapMarker > m_MapMarkerArray
void InsertMarker(vector pos, string text, int color, int idx)
override void OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)
void SetMapStateOpen(bool state, PlayerBase player)
displays open/closed selections; 1 == opened
string GetRuinedReplacement()
override bool DisplayNameRuinAttach()
override bool OnStoreLoad(ParamsReadContext ctx, int version)
override bool DescriptionOverride(out string output)
override bool NameOverride(out string output)
override void OnItemLocationChanged(EntityAI old_owner, EntityAI new_owner)
override bool ShowZonesHealth()
override void SetActions()
proto native float GetRadius()
Returns current wheel radius.
override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
override void SetActions()
override bool ShowZonesHealth()
void MapMarker(vector pos, string text, int color, int idx)
The class that will be instanced (moddable).
Manager class for managing Effect (EffectParticle, EffectSound).
static EffectSound PlaySound(string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false)
Create and play an EffectSound.
Native class for boats - handles physics simulation.
script counterpart to engine's class Weapon
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
override void EEKilled(Object killer)
Serializer ParamsReadContext
Serializer ParamsWriteContext
vector GetPosition()
Get the world position of the Effect.
InventoryLocationType
types of Inventory Location
void OnInventoryEnter(Man player)
Event called on item when it is placed in the player(Man) inventory, passes the owner as a parameter.
void OnInventoryExit(Man player)
Event called on item when it is removed from the player(Man) inventory, passes the old owner as a par...
override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
override void CopyOldPropertiesToNew(notnull EntityAI old_item, EntityAI new_item)
override void OnWasDetached(EntityAI parent, int slot_id)