Page MenuHomeFeedback Tracker

Re-implement missing script functionality from DayZ
Reviewed, NormalPublic

Description

Hello,

I have generated a list of classes, methods, and functions that would be nice to have re-exposed or added back. I have made care to not request something that already exists but was moved (e.g. Math.SignFloat is now float.Sign).

Each class is separated into bold headers. Each bullet point starts off with the name of the function to be implemented within that class. If necessary further information will be provided in the same line such as the original source of the function name and its class.

typename

  • SetVariableValue: Class method EnScript.SetClassVar. No such method existed in typename but did in the class EnScript which has been removed.

EnumTools: Just a helper class, functionality already exists through typename

  • EnumToString
  • StringToEnum
  • GetEnumSize
  • GetLastEnumValue

array<Class T>

  • Reserve
  • InsertArray
  • Invert
  • MoveIndex
  • ShuffleArray

map<Class TKey,Class TValue>

  • GetKeyArray
  • GetValueArray
  • GetKeyByValueChecked

string

  • HexToInt
  • SubstringInverted
  • Set
  • Parse: Creates a ParseHandle for the string. Was class method string.ParseString[Ex].

ParseHandle: Merges BeginParse/ParseLine/EndParse and string.ParseString[Ex] from DayZ

  • ParseToken: Return a bool if it is the end of the string or file. Has out parameters for token and type

vector

  • RandomDir
  • RandomDirXZ: Class method vector.RandomDir2D
  • RotateAroundZeroDeg
  • RotateAroundZeroRad
  • RotateAroundZero
  • RotateAroundPoint
  • ArrayToVec

System

  • GetTickCount: Global function TickCount. Unlike Reforger it returns the number of CPU ticks which is more beneficial. GetTickCount should instead be renamed to GetMSCount

Physics

  • ApplyTorqueImpulse: Global function dBodyApplyTorqueImpulse, was exposed directly from Bullet API
  • GetInvInertiaDiagLocal: Global function dBodyGetInvInertiaDiagLocal, was exposed directly from Bullet API
  • ComputeImpulseDenominator: Global function dBodyComputeImpulseDenominator, was exposed directly from Bullet API
  • ComputeAngularImpulseDenominator: Global function dBodyComputeAngularImpulseDenominator, was exposed directly from Bullet API
  • GetLocalInertia: Global function dBodyGetLocalInertia, was exposed directly from Bullet API
  • GetInvInertiaTensorWorld: Global function dBodyGetInvInertiaTensorWorld, was exposed directly from Bullet API

PhysicsWorld

Math

  • GetNumberOfSetBits
  • GetNthBitSet
  • NormalizeAngle
  • DiffAngle
  • ModFloat
  • RemainderFloat
  • SqrFloat
  • SqrInt
  • Atan
  • WrapFloat
  • WrapFloatInclusive
  • WrapFloat0X
  • WrapFloat0XInclusive
  • WrapInt
  • WrapInt0X
  • IsInRange
  • IsInRangeInt
  • AreaOfRightTriangle
  • HypotenuseOfRightTriangle

Math2D

  • IsPointInCircle: Class method Math.IsPointInCircle
  • IsPointInRectangle: Class method Math.IsPointInRectangle

Math3D

  • ClipLine
  • IntersectCylinderOBB
  • IntersectRayCylinder
  • IntersectSphereBox
  • NearestPoint
  • AngleFromPosition

Debug

  • DumpStackString: Global function DumpStackString

Shape

  • SetDirection
  • SetPosition
  • CreateFrustum
  • CreateArrow
  • CreateMatrix

BaseWorld

  • GetWaterDepth: Class method CGame.GetWaterDepth, was originally CGame.IsPointUnderWater

Tuple7: Class Param7

Tuple8: Class Param8

BaseAnimPhysComponent: There may be additional work after this with animations and network synchronization

  • LinkToLocalSpaceOf: Class method Human.LinkToLocalSpaceOf.
  • UnlinkFromLocalSpace: Class method Human.UnlinkFromLocalSpace.

AnimationControllerComponent

  • CallCommand: Class method DayZPlayer.AnimCallCommand
  • SetFloat: Class method DayZPlayer.AnimSetFloat
  • SetInt: Class method DayZPlayer.AnimSetInt
  • SetBool: : Class method DayZPlayer.AnimSetBool
  • IsEvent: Doesn't exist in DayZ
  • IsTag: Doesn't exist in DayZ

Details

Severity
Feature
Resolution
Open
Reproducibility
N/A
Operating System
Windows 7
Category
General

Event Timeline

Jacob_Mango renamed this task from Re-implement missing functionality from DayZ to Re-implement missing script functionality from DayZ.May 30 2022, 11:14 AM
Jacob_Mango updated the task description. (Show Details)
Jacob_Mango updated the task description. (Show Details)

+1 on this one. Not sure why those were not carried over. Free real estate if you'd ask me.

Jacob_Mango updated the task description. (Show Details)May 30 2022, 11:26 AM
Liven added a subscriber: Liven.May 30 2022, 11:47 AM

I would add

Camera

  • LookAt

(I didn't find equivalent in Enfusion)

Please also add a native function to Set and Array to change them to the other type (Array to Set, via removing duplicates)

Jacob_Mango updated the task description. (Show Details)Jun 1 2022, 9:08 AM
Geez changed the task status from New to Assigned.Jun 1 2022, 5:40 PM
Geez changed the task status from Assigned to Reviewed.Apr 28 2023, 9:23 AM
Geez added a subscriber: Geez.

Hello everyone,
The devs stance on this is as follows:

Not all DayZ script functions and API does make sense for Arma Reforger. Supporting DayZ mods in Arma Reforger is also not possible thus adding everything from DayZ has very limited or questionable value. We expose and add script functions based on specific requirements and use-cases both from our game as well as mods. If you have a specific script method you need in your mod we may consider adding it.